Random things #9
Written on 22 March 2015, 10:48am
1. Aspect oriented programming (AOP)
In the wikipedia example about AOP, transactions, security and logging represent cross-cutting concerns. If we need to change one of these (ex. security) – then it will be a major effort, since the concerns are tangled and the related methods appear scattered around all the code.
AOP attempts to solve this problem by allowing to express cross-cutting concerns in stand-alone modules called aspects. Aspects can contain
– advice – code joined to specified points in the program and
– inter-type declarations – structural members added to other classes.
Drawbacks: If a programmer makes a logical mistake in expressing crosscutting, it can lead to widespread program failure.
Conversely, another programmer may change the join points in a program in ways that the aspect writer did not anticipate, with unforeseen consequences.
2. HTTPS and MTU Path discovery
I recently encountered this interesting problem with HTTPS and MTU. It is explained entirely by Mark Maunder – ‘Routers treat HTTPS and HTTP traffic differently‘. I will just summarize it:
– HTTPS servers set the ‘Do not fragment’ IP flag
– if a server sends a big HTTPS packet and a router does not allow that packet size, then the router will not break that packet (see previous point).
– so the router will simply drop the packet and send back an ICMP (Internet Control Message Protocol) message telling the host to reduce the MTU size and resend the packet
– but if the network administrator decided to block all the ICMP traffic, then the host will never see the problem
– the solution in my case was to decrease the MTU size (1400)
The same issue described also here.
3. Information security standards
Things are looking a bit messy in this area – with a lot of entities proposing standards in this field. Among all, it looks like the 27000 family of standards proposed by ISO/IEC (International Organization for Standardization, International Electrotechnical Commission) has the wider adoption. 27001 published recently (2013) has the long name Information technology – Security techniques – Information security management systems – Requirements and formally specifies a management system that is intended to bring information security under explicit management control.
4. Curl anniversary
Pages that are empty without JS: dead to history (archive-org), unreliable for search results (despite any search engine claims of JS support, check it yourself), and thus ignorable. No need to waste time reading or responding
5. Big data
Interesting infographic about BIG Data:
Big data skills are highly valued:
Hadoop is a super important technology at the center of the whole “big data” craze.
Hadoop is open source software used to gather and store vast amounts of data and analyze it on low-cost commodity hardware. For instance, banks may use Hadoop for fraud detection, and online shopping services could use it to analyze customers’ buying patterns.
Written by Dorin Moise (Published articles: 220)