Getting serious about programming, I mean Clojure

If you read this blog then you probably know that I think that “laziness” is a good attribute for a programmer. Few things thrill me more than finding out that there’s code I don’t need to write. Scala is good, but it’s got too much Java in it and it’s not beautiful to read. Clojure however is just a superb language, and I like the way I don’t squirm at someone else’s code. ClojureScript is the icing on the cake, it makes end to end internet solution crafting a joy. I am not suggesting that other programming languages aren’t good or anything, I am only saying that Clojure has become my favourite programming language.

I’ve never been far away from programming over the years. Last three years definitely saw a significant change in my habits, instead of simply analysing the architecture of some newfangled technology I found myself spending more time and enjoying writing code. It used to be that, after a couple of lines I’d be already bored to tears and often moved on swiftly to something else. I didn’t care because it didn’t matter that I’d be an expert in a particular technology, I seldom claim to be an expert in one technology. When a user issue arose, I am usually able to do my bit or could count on someone who’s the programmer on the job.

When I decided to reorient my career, I went back to some earlier loves, being creative, try and crack difficult technology problems, build and ship solutions myself. One by one I opened up my archives looking for something useful, my exploratory paths took me to my university thesis dissertation: implementing TCP/IP stack on an X.25 network. I was shocked to see that my memory of that stuff is still fresh like it was yesterday, what a shame I didn’t carry on working on that stuff. Then, I realised that actually what I’m doing is only a continuation of those earlier efforts. So I thought, let’s find out what the cool kids are toying with and why they think it cool.

Rediscovering functional programming sort of reignited some long lost buzz. Over last years I learned (or re-learned) to program in OCaml, F#, Lua, Haskell, Erlang, Python, Scala and Clojure. Ruby and Rails framework have been with me since 2006 but they never really became a passion. Of all those languages, Clojure is the one that seriously grabbed my attention and retained it for a long stretch of time. I’m discovering the reason that happened every day.

Suddenly I started writing code by thinking naturally about how I would go about solving a problem, with little or no infrastructure stuff getting in the way. What’s more, some times I’d think of a problem and a solution direction, then imagined that someone must have already solved that, set out to find out and I’d usually come across a code that’d be just like I imagined it. I thought mathematics was the most beautiful thing I learned during my study years, I didn’t get a career in Finance but I didn’t realise that that subject would come back rushing in my life. With functional programming it is sort of happening, though I’ve not had to resort to anything complicated yet.

If you read this blog then you probably know that I think that “laziness” is a good attribute for a programmer. Few things thrill me more than finding out that there’s code I don’t need to write. Scala is good, but it’s got too much Java in it and it’s not beautiful to read. Clojure however is just a superb language, and I like the way I don’t squirm at someone else’s code. ClojureScript is the icing on the cake, it makes end to end internet solution crafting a joy.

I am not suggesting that other programming languages aren’t good or anything, I am only saying that Clojure has become my favourite programming language.

Will Windows 8 eventually drop the acid colours from Metro?

It is interesting to watch what i would call Microsoft’s renaissance – in the French language interpretation of it. It is not yet clear if the markets (consumers!) are wholeheartedly responding. But the telling signs are multiple in my opinion, the first sign for me is a combination of the following:

  • when I saw the first preview of Windows Phone 7
  • the developer tools group’s genuine embrace of open source
  • the work they are doing with the programming languages, think F#, what their language designers say these days
  • the very impressive Azure product line
  • and the first develop preview of Windows 8

I like the general user experience of Metro Style UI. The one thing I haven’t warmed up to yet is the acid colours, those colours are “too loud” to my taste. That would be my single criticism for now. I hope there would be a way to tone that down when it eventually ships.

Sense of security and privacy: Who’s Zoomin who?

I can hardly believe that only one company, Path in this case, were downloading user’s address book. I’m sure others are, were, or will be doing so too The reality we live in is that we often have a false sense of security and privacy. It’s not like the bad guys would be waiting to hear about some security vulnerability before attempting to discover and exploit them. Likewise, the talk is on address book download today, tomorrow another company be found using your mobile location or device’s camera for some unpublished uses.

I find it ironic that while one company gets shouted at for leaking its mobile users address book, lots of others might be routinely doing it without anybody saying a word. It doesn’t take a scientist to figure out what is going on.

Developers are tinkerers by nature, they seldom stick to written procedures – otherwise they may not be very good. From the moment a platform software development kit is made available, people will poke around to see what they can do with it. As you poke around, you are bound to find undocumented features, wholes and what-not, and depending on your inclination you may make some unconventional moves. If word gets out and people like your moves then you are a genius, if people don’t like what you did then you get named names. That’s how it goes.

I can hardly believe that only one company, Path in this case, were downloading user’s address book. I’m sure others are, were, or will be doing so too. What happens is that something pops up, a big howl ensues. Then a few words of apology are issued, the noise dies down, people go back to their businesses, some quietly continuing whatever-may-be-questionable.

This is a bit like what goes on with IT security. When a paper is published on some software vulnerability, some debates follow and drum rolls for vendor patches coming to the rescue. Once such holes are deemed patched by the software vendor, the focus shifts away from the issue and not much is said about it. But even then, a lot of people can’t actually be bothered with software updates so they remain exposed.

The reality we live in is that we often have a false sense of security and privacy. It’s not like the bad guys would be waiting to hear about some security vulnerability before attempting to discover and exploit them, it’s likely that by the time a vulnerability is public it’s already old news for serious hackers. Likewise, the talk is on unauthorised address book download today, tomorrow another company may be found using your mobile location or device’s camera for some unpublished uses.

The tittle of this post is borrowed from an Aretha Franklin’s hit song from the 80’s.

UPDATE:

Seeing the headlines and some of the blogs out there, there is apparent outrage about Apple (only them?) having allowed this to happen. I am very curious if anyone checked that this problem doesn’t exist on Android, Windows Phone, BlackBerry, or other connected systems. I guess it’s much easier to cry ‘Haro sur le baudet’.

Twitter Bootstrap UI framework is proving to be a hit, well done to them

Twitter (open source) Bootstrap UI toolkit is proving to be a hit, GitHub statistics isn’t the only indicator of that.

When it was initially made public, I thought Twitter Bootstrap could prove quite useful and I blogged in that direction. Many months later, I can now see that a lot of people adopted it. They’re recently released a version 2.0, which may well be a response to Zurb foundation. A glance at Github suggests that Twitter Bootstrap is one of the most popular project there.

I don’t have any affiliation with either organisations, but I do like to see something so useful in widespread use. This can only help users and developers, companies that build on such toolkits may be able to optimise their web application interface design costs too.

An iOS UI overhaul beckons

It looks to me that Apple ought to revamp the iOS Safari popup menus, especially the sharing and bookmarking menu. The current implementation can’t scale any further yet there’s a need to add more sharing options in there. This post is my guess.

I was looking at the sharing-bookmarking menu of Safari on my iPhone, clearly Facebook is going to be in here at some stage, perhaps one other. But the problem is that there is no room left. So, either Apple won’t expand the feature, which I doubt, or they’d have to redesign it, which I’m inclined to think. My guess would then be, away with the drop down menu concept, a new slider (up/down, left/right) would be much nicer and scale better. Would that be too radical?

20120213-212012.jpg

The power of tribes (The Economist)

According to Schumpeter, The Economist: Businesspeople need to reckon with the Anglosphere, the Sinosphere and the Indosphere. Reading a contract is useful, but you also need to be able to read people. I tend to agree on both accounts, these are useful thoughts for a business manager.

In this artcile, The Economist argues that

Businesspeople need to reckon with the Anglosphere, the Sinosphere and the Indosphere.

The article goes a little further and says that

Reading a contract is useful, but you also need to be able to read people

The arguments here echo a bit some of the thoughts expressed in an earlier post of mine, in turn inspired by a discussion on comfort zones (read that post for more on that topic). I guess that’s how it goes. I found it insightful, read the full article on The Economist here: The power of tribes.