Google engineers insist 20% time is not dead—it’s just turned into 120% time - it is interesting to see how has this evolved; "I have done many engineering/coding 20% projects and other non-engineering projects, with probably 20-40% producing “real” results (which over 7 years I think has been more than worth it for the company). But these projects are generally not rewarded." [highlight mine]
The Worst Daily Scrum Ever - a story whose bad part is a too common reality; if energy is low, nobody asks for / offers help, and people only report status / plans then you are doing the daily scrum wrong and should stop now (but it also documents a nice example of a good, effective scrum)
Why Responsive Design is a Waste of Time - a refreshingly critical take on responsive design; the author now aknowledges that it is sometimes worth the pain but the points are still valid - responsive design requires (lot of) extra work, the attempt to create a one-size-fits-all site of course adds considerable complexity (having two separate simple frontends might be better than one that is too complex), also many sites are good enough as they are (especially taking into account the capabilities of mobile browsers)
How to lose $172,222 a second for 45 minutes - i.e. your bugs are likely not so serious after all :-) A financial company screwed big and ended up bankrupt. The cause? Chaotic DevOps, not removing old unused code, reusing a feature flag instead of creating a new one, lack of monitoring. The story in short: They deployed new trading code but failed to notice that it has not been deployed to one of the 8 servers; due to the flag reuse, the old, 10 years unused code has been activated instead. Due to the lack of monitoring they did not notice the cause, tried to roll back while leaving the flag enabled thus effectively activating the bad code on all the servers. => have proper automated and self-checking deployments, delete old code, do not repurpose old switches.
How to go about 'proving' why dynamically typed languages are better - a cultivated and interesting discussion; as argueed, thinking in this direction is itself wrong and in different contexts, different languages will be more appropriate. I also like Phil Lord's "Programming is a highly fashion-centric occupation for any number of reasons." and "For me, the main advantage is that you are not forced to build complex hierarchies just to support the type system ([..]), and that having only a few abstractions makes it worthwhile adding lots of functions operating over them." and L. Petit's "IMHO, the question is irrelevant. It implicitly assumes that statically typed vs dynamically typed is a black / white choice, and that either 'static wins over dynamic' or 'dynamic wins over static' will be a true statement whatever the context." Also a good observation that types are only a subset of function contract enforcement and one of possible implementations.
What to Know Before Debating Type Systems - explanation of common misunderstandings that hinder discussions of static x dynamic typing including a classification of type systems
Inside the Arctic Circle, Where Your Facebook Data Lives - the designs of data centers used to be proprietary secrets until Fb developed its own and open-sourced them, enabling many Asian manufactures to start creating cheaper datacenters and thus started a revolution in this domain. Facebook's data centers are not general purpose but suitable ot the kind of work they need, but it is still widely applicable. Cool to see how they use natural conditions to get energy needs down and make HW that fits best their needs - that is what I call innovation!
Academia.edu (via @RiczWest) - a rich source of free research papers - just register as an independant researcher; also lean/agile/systems thinking and other interesting topics
Writing Code? Know Your Boundaries - an inspiring way of thinking; we use many technologies in combination (HTML, CSS, JS, SQL, server-side language, ...) and "the risk for picking the wrong tool for the job is strongest near the boundaries"; a discussion of the aforementioned boundaries with examples follows, e.g.: "Avoid putting HTML in JavaScript strings for 'poor man’s templating'", messing up SQL with html ("SELECT'<strong>'+ Username + '</strong>'FROMUsers"), CSS+HTML: using inline styles, SQL+server-side: string concatenation to create dynamic SQL queries, "writing dynamic JavaScript in a string on the server". I shall keep this in mind!
Johannes Brodwall: A canonical web test - a simple web app end-to-end smoke test - using an embedded Jetty, a test DB (preferably in-memory), WebDriver to test it (simple: browser.get("/people"), assertThat(browser.findElement(<person id>.contains(<person's name>)); simple, nice, useful
Learning
LearnGitBranching - an online game to learn branching & rebase in git; use the menu in the lower-right corner to navigate between the levels etc. You can also execute commands "show goal", "hint", "level" to navigate around; pretty cool and great for learning the command line commands
Society & people
Not a typical topic I share here but really worth it this time.
The ocean is broken - a saddening story worth reading to learn what does your tuna sandwitch cost and where does all the plastic we use end up. From a sailing trip from Melbourne to US where there were plenty of fish (and birds) 10 years ago - and 2 this year, killed to a noticable degree by huge fishing ships that catch tuna - and kill and throw away all the other "junk" fish. Nowadays fish are replaced by plastic and other waste that actually prevents usage of the engine unless somebody can watch for dangerous nets and ropes leftovers. Earth, where are you falling to?
The Guardian: Why have young people in Japan stopped having sex? - sad and interesting to observe what happens when the system is set up so that people "can't be bothered" to have inter-sexual relationships, partnership, and children. Japan needs a good deal of systems thinking to fix its broken society where women do not want children because it would cost them their career and neither men nor women are willing to subjects themselves to the social pressure and demands associated with relationships.
Amazonica: A comprehensive Clojure client for the entire Amazon AWS api - best with a REPL!
Clojure Understood: the Rush Hour Platform - application of the design best practices promoted in the Clojure community (separation of concerns, simplicity, ...) on a project - "highly accurate vehicle traffic simulations"; I have only started reading it but it looks highly interesting
A bitter taste [of EuroClojure] - we as a community must embrace diversity and stop fostering our egos by mocking other than our holy editor (and, I would add, by mocking other languages and in general mocking whatever); respect and open minds, please!
C. Emerick's Austin, the ClojureScript REPL over nREPL - 1) Start nREPL (via lein repl, from your editor...), 2.a) Execute austin's exec to start a ClojureScript REPL in it, backed by headless PhantomJS or a real browser - or, alternatively, 2.b) create a C.S. REPL connected to your webapp, as described in the browser-connected-repl-sample. You should watch this 8 min demo.
WhiteHat Aviator – A Safer Web Browser - WhiteHat, a well-known security company, has released a browser that aims at improving privacy by preventing user tracking (f.ex. but not sending referral URL) and blocking ads even at the cost of occassional slight discomfort, i.e. something that the mainstream browsers are not interested in. So far for OS X only.
EnvPane - a preference pane for environment variables for Mac OS X 10.8 (Mountain Lion) - set env. vars for GUI/terminal apps, no need to log out upon change
Favorite Quotes
Weinberg: Bureaucracy is what we do when we no longer remember why we are doing it
- via Ben Simo, no source specified so it may be fake but anyway it is valid