Hidden patterns: 99 Percent Invisible

I’m into listening to podcasts for quite a while now, with a modestly fixed set of just enough sources to not make listening to all the interesting episodes an impossible task. Usually, the time for me to listen to that kind of things is on my way to work in the morning which takes between 15 minutes by bicycle or roughly an hour if I decide to walk – enough time for following through one or two episodes, depending upon the podcast of course.

However, a new addition to my playlist that I have excessively been listening to the last two weeks is 99 percent invisible. I stumbled across this while browsing the web for podcasts, and indeed just the very description did read rather promising:

99% Invisible is about all the thought that goes into the things we don’t think about — the unnoticed architecture and design that shape our world.

In the end, not all episodes completely deal with exactly this particular topic. But they all are pretty insightful, no matter whether dealing with the meaning of the term “average” in relation to people, the history of the most important of the Bauhaus photographies, unpleasant design and architecture preventing antisocial behaviour in public space or even the story of a lone phone booth right in the Mojave Desert. The podcast seems an independent production on a very high quality level, all the stories really are enjoyable listening to, but they also feature an awful load of information that will make you think and wonder more than just once. Highly recommended if you got some time to spare for such things. ;)


Just discovered this a while ago after installing and using FBReader on some of my Android devices. There apparently is a free eBook edition of “Accelerando” by Charles Stross. An interesting note from the web site for my and your entertainment…:

“… “Accelerando” is a creature of its time, and that time is the late 1990s. I spent most of the 90s on a kind of sabbatical from writing fiction (my first love), with my head stuck up the fundament of the software industry. In the early 90’s I worked for SCO (back when it was a UNIX company, rather than the unholy terror that came back from the dead to haunt the free software movement). Then I discovered the web, back around 1993. I remember a wee daily email bulletin titled “what’s new on the web” that came from an address at NCSA; I used to visit all the interesting new web sites every day, until the volume grew too great some time in late 1994. I was supposed to be writing UNIX manuals, but I distracted myself by learning Perl – and was inadvertently responsible for the development of the robot exclusion protocol (by writing a web spider that annoyed people who knew more about what they were doing than I did).”

– as I indeed also used learning / writing Perl code to distract myself from more important things at more or less the same time, maybe I am pretty much target audience of this book, but it’s highly recommended to anyone into both science fiction (or that sub-genre they used to call *cough* “cyber-punk” throughout a certain period of time) and into entertaining novels depicting one possible idea of what a “future” might look like. You don’t need much of an IT or computer science background to enjoy this, but of course this doesn’t hurt (neither here nor elsewhere). I’ll finish my reading now and then see where to dive in to refresh my Perl skills, and be it just for the sake of distraction ….. :)

In the beginning there was the … command line?

Re-occuring read on my pile of (electronic) books, yet as far as I can tell I never so far wrote about it:

In the beginning there was the command line.

Neal Stephenson, most likely known at least to some as author of novels such as “Snow Crash” (which might be considered a later cyberpunk classic even though I am unsure whether he would like being placed in this category), “The Diamond Age” or “Cryptonomicon”, also provided a bunch of essays on different topics, and this is one of them.

Essentially, “In the beginning… ” is a write-up about technology. It’s a lengthy article about computer operating systems and some of their characteristics especially when it comes to how people interact with them – either in a command-line based fashion, as still the case on many Linux/Unix systems, or on a visual point-and-click/tap user interface (as, effectively, on most of the rest of the systems).

Feeling bored already?

No worries. Though, of course, having bit of a technical background (or let’s even just say “interest”) won’t hurt, this article’s also a worthy read if you’re not too much of a geek, as Stephenson is pretty good at looking at things from a “bigger picture” point of view. “Bigger picture” in this case, includes quite a bunch of different things. It includes aspects such as marketing and selling products and why people decide to buy certain things. It includes socio-cultural aspects of “communication” in terms of images vs. words, in terms of use and reception of various mass media or even some of the social implications arising from this kind of technological environment:

"[...]At first he had seemed like such an intelligent and interesting guy, she said, but then 'he started going all PC-versus-Mac on me.'[...]".

Needless to say: This is quite a worthy read, and, even assuming it has come to some age now (written in 1999), still an article I get back to then and now, start reading across it, spot some things I missed before or things that make more sense now than they made a few years ago. The full text can be downloaded here (very much suiting the topic being just an unformatted zipped text/plain file), so no reason to not give it a closer look. Stephenson has both an entertaining style of writing and a talent or enthusiasm to write well-founded books with a load of insights from a load of different fields and aspects of mostly culture and science, and this article is no exception here, leaving it with a lot of moments that are great to read and yet make one think:

"[...]There is massively promiscuous metaphor-mixing going on here, and I could deconstruct it 'til the cows come home, but I won't. Consider only one word: "document." When we document something in the real world, we make fixed, permanent, immutable records of it. But computer documents are volatile, ephemeral constellations of data. Sometimes (as when you've just opened or saved them) the document as portrayed in the window is identical to what is stored, under the same name, in a file on the disk, but other times (as when you have made changes without saving them) it is completely different. In any case, every time you hit "Save" you annihilate the previous version of the "document" and replace it with whatever happens to be in the window at the moment. So even the word "save" is being used in a sense that is grotesquely misleading---"destroy one version, save another" would be more accurate.[...]"

Food for thought, indeed. And in days in which we’re not even talking command-lines vs. GUI driven interfaces anymore but consider an omnipresent (ubiquitous) approach to “computing” with small, touch-driven, “always-online” devices available to and voluntarily used by an audience even larger, a lot of these aspects turn to be even more interesting and worth thinking about. Same, definitely, goes for some of the way less “techie” insights that also can be found all along these lines:

"[...]On the other hand, if you are raised within some specific culture, you end up with a basic set of tools that you can use to think about and understand the world. You might use those tools to reject the culture you were raised in, but at least you've got some tools.[...]"

Take yourself a few hours off to read this article. There definitely are wastes of time much worse…

“Building microservices” re-visited and reflected…

It seems that “Building microservices” finally made it to general availability. Actually, I’ve been following the book quite a while now, signed up (and bought the ebook version) pretty early during its early-access phase, and, finally, am pretty pleased with what the result looks like…

Read more ““Building microservices” re-visited and reflected…”

Reading “Programming The Semantic Web”

I’ve already been writing about one of Toby Segarans books in the past. Remembering these days, I have been pretty enthusiastic regarding both his style of writing and his style of providing people with knowledge. It’s nice seeing this happen again also dealing with another book of his, “Programming the semantic web”.

At the moment, for various reasons, I am into refreshing some of my knowledge related to ontologies, RDF, inference, reasoning and most of the technologies and concepts related to what usually is referred to as “semantic web”. I was searching for a quick guide on things, ideally a “hands-on” one covering one of the technologies we’re already using. Considering this a “match” as far as the latter is concerned was just a couple of moments: Same as the “Collective Intelligence” book, the “Semantic Web” one provides an extensive amount of sample code implemented in Python, which is fine for us as we use both Python and Jython in a production environment and I’m quite familiar with both. So, feels like home from this point of view, even though “Semantic Web” is less “Python only” than its predecessor.

Programming the semantic web

Asides this, in terms of being “hands-on”, the book is rather good as well. Also following the same style “Collective Intelligence” did, the “Semantic Web” book provides a vast load of step-by-step samples to try out all the concepts and approaches introduced throughout the course. Again, the authors provide a whole load of well-prepared sample data, mainly in .csv and .txt, on the books web site, and, again, I am amazed by the refreshingly pragmatic way of hacking things up to make them initially work, to give the reader something to play with, something to figure out how things go, and then eventually to dive deeper into what happens, extending and optimizing here and there. Python surely has a sweet spot here in its interactive mode, allowing for trying out all the examples almost immediately without having to bother with too big a stack of technology to be mastered before getting anything to run (which, unfortunately, seems the case once in a while in the Java+IDE+Application-Server – world). In some ways, despite enjoying solving “real-world” problems using Java, I quite often thoroughly admire the refreshingly straightforward approach to doing things in Python, and this book to me once again points out why Python is quite a good learning language, too: In case of most of the explanations, it doesn’t seem a long way to go from a more or less formal description of a problem to a working prototype implementation that can be used on a sample dataset, which is technically the definite strength of this book.

As far as the non-technical things go, it is obvious that Segaran and his co-authors do have a profound experience in explaining complex things in an easy, straightforward fashion. I am still astounded by the way they took from “structured”, schema-driven database design to modeling RDF triples, pointing out both why one might want to follow this path and how to do so in a step-by-step way. I have seen quite some explanations of what triple stores are about, and most of them are way more arcane, way worse. If this is something you suffer from, “Semantic Web Programming” is definitely up to set that right. And this is the style of things throughout the book: Concise, smart explanations of things, building upon each other, with each subchapter obviously being placed and structured in a way to be just the “logical next step” if you consciously read the chapters before. All the book seems just a continuous flow of information without any obvious breaks or loose ends. I guess this is quite a subjective point of view especially in terms of how one wants to dive into things (again), but at least to me this seems close to optimum.

Plus, there’s another good thing also massively making me remember the “Collective Intelligence” book: All along with the main issue of the book, you get plenty of chances to sharpen your (Python) coding skills, and you are subject to quick-and-dirty explanations of a bunch of technologies all along the way. No matter whether geocoding, graphviz, rdflib, networkx, dbpedia or freebase – reading this book provides one with a fair understanding of these things as a mere “by-product”, and, as I have to state, as a rather valuable by-product as most of these tools and services are just things thare are around, mostly free and ready to be used in order to solve problems, so this doesn’t just provide you with a clear understanding of what happens (theoretically) but also, again, with a set of tools to really solve these problems in day-to-day life. Ultimately, you even end up finding a framework like CherryPy described here in order to quickly serve dynamic content.

So, overally, this book doesn’t too much differ from the “Collective Intelligence” one in many ways and is same as highly recommended. No matter whether refreshing your knowledge or, I dare to say, are into learning these tricks all anew, Segaran et al will provide you with a profound and extensive introduction to the subject, leaving you both with lots of things to try yourself, with lots of ways how to apply what you learnt to real-world problems and, last but not least, eventually also will provide you with a whole load of new ideas of things that could, and possibly should, be done in your business applications. Very inspiring.