Though currently living in Europe, I’m still sometimes proud to be an American, especially when people rise up to defend our constitution. Here’s a letter back to my US senator:

Dear Senator Casey,

Thank you for your carefully thought-out response and commitment both to the safety of the American people and to the constitutional principle of checks and balances, especially concerning the need of the executive branch to operate with transparency.

I think it is key that the senate does not embarrass itself further by denying the revelations of Snowden, and instead push for a more detailed revelation of the precise framework in which decisions to examine data are made, including all of the following:

(1) Complete list of allowable justifications for inspecting user data
(2) Number of times various justifications had been used (i.e. total volume of requests divided by type)
(3) Detailed listing of review process for justifications, including any audits, to include the percentage of requests accepted

These should be provided both for NSLs and other previously secret programs like XKeyscore. The exact justifications should be provided in as much detail as possible, to be sure that inspection is not used to curb civil liberties or other constitutionally guaranteed exercises of assembly and free speech.

Clearly, although the NSA is very good at performing certain tasks, auditing what may be abuses of its analysts is not something that the NSA should be entrusted with. I would strongly advocate for much more rigorous congressional oversight, including transparency when it comes to both justifications and quantity (as suggested by Google).

It may not be that all of the precise capabilities of the NSA should be made known to the general public (although many of them are now), but the justifications used, including the possibility of an audit from organizations other than the NSA certainly is in the interest not only of the general public, but also American governmental credibility on the world stage, which have undoubtedly been hurt by these revelations, not to mention our global businesses.

It is a shock and a tragedy that Snowden looks to Russia for fulfillment of the asylum clause of the UN Declaration of Human Rights. America deserves better. Please continue the fight for our constitution in the halls of justice.

Yours truly,

Joel Anselm Dietz

As some of you know I’ve made the unusual transition from Silicon Valley to Germany, with a substantial amount of time spent in both Munich and Berlin. Every once and a while I get inquiries here or on Quora from folks interested in living in Germany. Here is my no holds barred attempt to explain differences in Germany to the interested person, including all the considerations you might want to keep in mind if you are thinking about moving here.

First, let’s start with what Germans are good at:

(1) Germans are very organized. Germans are remarkably good at anything that requires large scale organization.

(2) Germans love herb(s). Really. They have massive amounts of great fresh herbs everywhere, and make a lot of wonderful salad dressings and types of cheese that you can’t get in the United States.

(3) Germans are good at the little things. Very little neglect. Things are clean and efficient.

(4) Germans are super environmentally conscious and are usually thinking about the ecosystem as a whole. Lots of attention to public spaces.

(5) Germans are very good at not f***ing things up. The degree of insulation definitely means that there are less giant problems.

(6) Public transportation infrastructure and performance is excellent. Besides, you can drink beer on the subway.

(7) Even though a lot was destroyed there are still a lot of cool cultural artifacts hanging around, particularly in small towns.

(8) Beer. Better in the south though. My money is on Franconia.

(9) Strong focus on technical skills in technical schools means that Germany doesn’t suffer from a glut of college graduates without any real skills.


(1) General risk-adverse behavior hurts ability to innovate in the tech space, including the need to plan everything in advance. Means that they are better at generating iterative development on existing infrastructure. This is especially true with investment.

(2) Hipster trends are prominent, esp, in Berlin, but tend to mindlessly ape the US, meaning that if you want to be super-hip you probably should stay in the US.

(3) Customer service often does not appear to be important here, both attentiveness when waiting tables or smiles from people that are waiting on you.

(4) Germans don’t seem to be very good at marketing in general. I don’t know why, but the user experience is often neglected.


(1) German food is wonderful if you like meat and potatoes (I esp. like Knödel). There is also reasonable diversity of the ethnic food you probably get if you live in a metropolitan area in the US (Thai, Indian, Chinese, Vietnamese, Turkish). Kabobs in Berlin are also great but you can’t eat them every day.

(2) Germans are remarkably not unified. Cultural gap between North and South is incredible, and also between places like Hamburg and Berlin.

(3) Germans are much more comfortable with the naked body and like their saunas, etc.

(4) Germans value credentials. Here, I think they really like higher ed. and degrees, which is generally good, but often has the side-effect of devaluing independent people who strike their own course through life.

(5) Germans are generally conservative. They don’t get excited by the latest sauce and demand to see “real” value. I think they miss some things that they should miss, but other things that are valuable.

Open for comment.

As circumstances have forced (woo startup life), I have become a “mobile” developer. This means I am learning about all kinds of things that I never thought I would.

Here are my main take-aways from iOS development so far:

XCode is an okay IDE. Generally speaking it works fine, although it is nothing to write home about.

iOS main libraries are deficient. There are just a lot of things missing that you would expect to be there in the main library (i.e. proper HTTP handling) that instead you have to import a third-party library for.

iOS third-party libraries seriously suck. General speaking, the code quality of iOS libraries, even if they have a gazillion stars/follows on Github is quite load.

iOS dev is full of gotchas. There are a lot of little weird quirky things that you need to do to get things working in iOS, many of which are non-intuitive. In some ways it is similar to the “Rails Way” in that you have a certain way of doing things that you just have to know, but suffers from not having as strong of a tutorial writing community as the Rails community.

Interface builder is especially full of gotchas. I don’t have strong feelings about doing things in a GUI design context, but a lot of times it feels like they never really polished anything.

Design integration takes a lot of work. This was my biggest surprise. You can get very far with simple touches and templates in a web context. Getting user interaction to work right in iOS is a major time investment (and in our case, blew back our development schedule by two weeks).

Distribution is a major pain in the ass. Apple wants everyone to use their happy App Store and makes it really difficult to distribute things even when all you want to do is beta test something.

Basic paradigms are a bit odd but not hard to learn. Since I tend to be a “dive in” coder, I usually make a huge mess in the beginning since I have no idea what is going on and then gradually learn bits and pieces of the platform as I go along. When there is a conceptual issue (view controller? navigation controller?) this sometime leads to major confusion, but thankfully the total design paradigm is not too complicated.

C for app development is okay. Not a huge fan of the C++ syntax I’ll have to admit, but it gets the job done and I have no major complaints here.

Stackoverflow is amazing. Although here too there are a lot of very mediocre comments, I’ve learned a tremendous amount in a very short period of time with a minimum of overhead. Just the fact that the site loads quickly (as opposed to many other types of community forums I’ve used to learn things in the past) is a major time saver.

In general, my feelings about iOS are that it isn’t super complicated, it is populated by mediocre coders, that insufficiency in tooling and design issues made by Apple mean that things take a lot longer than they should, and that in the end it is kind of fun. But learning a new language always is, esp. if you can do something cool with it!

( Btw, if I were recommending someone starting from scratch, I’d start w/ a very simple app with a two pages, then a table view, which loads stuff from server calls and/or local storage. That will give you the basics and you should be able to get a job as an iOS developer after that and learn everything else you need to know from the documentation/stackoverflow. )

Just published an article at, “How to Build a Vibrant Open Source Community.”

Adsense always appeared to me as relatively benign as, because of Google’s data-mining (of course things I had implicitly given them), it directed me to things to links that I might actually want to click on. This was especially true given the massive information in my email (Gmail). I suppose this means implicitly also that I trusted Google to have lots of personal information without giving way to corruption, and that they would do something useful with this information without compromising my personal identity.

Facebook, despite its promotion of addictive features of its platform at the expense of other useful sides, has nonetheless managed to grow tremendously by catering to the mass audience without compromising the UI for the power user (I’m not sure that there really is such a thing as a FB power user, but at least there are those of us who only want to dip into the FB world occasionally and by necessity, and it does not have the degree of unpleasant UX that characterized Myspace). 

This, in and of itself, is impressive. What is less impressive is that FB seems not to be able to have leveraged the massive amount of user information it has into meaningful advertisements. Whereas, with Google the Adsense empowered advertisement were mostly benign, Facebook advertisements range from annoying to very annoying. One component of this is the images that Facebook allows to be posted along with it, which partially destroy the UX of the site. 

The compromise position, which may ultimately be the salvation, is promoted likes. Promoted likes is not only product placement, but things already liked by people in my friends network. This gives me an instant connection to something and is likely to drive me to click on something that I normally would not (i.e. liking something I wouldn’t look up and clicking in the ad space). Indeed, most Facebook users virtually never click on anything in the ad space — promoted likes are usually successful only when run through other countries (e.g. Egyptian and Indonesian users for some reason click very often in the allocated ad space).

I think this is largely a “philosophical” issue. Google has demonstrated that it can provide something of value to its customers, and advertising has been high-value for this reason — the customers come first.  Facebook has addicted its customers and attempted to also milk them for cash after they are sucking on the teat. This is probably the primary reason why, despite having a massive amount of information on virtually every internet user, they haven’t been able to monetate it properly and have resorted to cheap tricks (i.e. sticking ads inside the news feed so that you might accidentally click on them). 

Once again, it is a values thing. I think this just reiterates the fact that despite the ability of certain companies or ideologies to grow very rapidly, if they aren’t based on lasting values (i.e. providing tangible value to the consumer of said service)  they will ultimately be washed away with the next tide like yet another little castle built with and upon the sand. 

Jason Fried is a web hero. I owe him an apology. Two different times in the past year or so on Hacker news I pushed him a bit too hard on this involvement with Group-on: (1, 2), in particularly referring to his statement on the “absolutely disgusting” nature of some current situations as “hilarious.” That was dumb and hurtful.

This is especially sad, since I agree with Mr. Fried on a number of important things: putting the customer first, keeping your employees happy, and growing by creating a great product that your customers like, rather than a bunch of marketing fluff. I also like the hard-hitting style of the 37 signals crew, and even if I was following their advice to “Pick a Fight,” in retrospect I think I was picking it with the wrong people.

I write more because my personal angst is probably shared by many. I am a disappointed 37 Signals fanboy. I like Rails. I like working closely with clients. I like understanding their needs better than I can in a faceless, nameless corp. I don’t see anything wrong with a slow company that models itself on a cleaning lady and like the word “sustainable” even though I don’t really know what it means.

Probably Rails and the whole new open source ecosystem around it could never have gotten off the ground if Fried hadn’t had the original vision to do a slow company. Meteor and other copycats may burn out like the shooting stars they are named after. Other rockets may shoot for the stratosphere and get bought by BigCorp (i.e. Heroku). Some will die, some will be absorbed into the Borg, and for all of this I’m sure 37 Signals will still be around, still doing a good job at what they do best.

But I can’t help still being a bit disappointed. Rails is still alive and well, but there seems a lack of vision. I once had a vision of desperate hackers, wanting to have the world at their finger tips, and it seems that we have settled for a few sport cars (or, for others, millions in the bank). I guess if the vision for 37 Signals, YCombinator, TechCrunch/Fund, and other valley staples was having money in the bank, I guess you guys are doing pretty well.

I guess maybe someway somehow I was hoping for something more. But probably I shouldn’t have. In the end, you get what you pay for. Once I installed a cool new language and my own blog in ten minutes. I thought that was pretty cool. Now I have a few scattered apps worth a little bit to a few people. I guess I could live pretty well doing this sort of thing, but the magic is gone.

Maybe I’m just getting old. Sorry Jason, to think that somehow you could bring it back.

If you are working in another context and have been considering out of personal interest or necessity joining “the Enterprise,” here are a few things you should know:

(1) The enterprise is about meeting people’s needs as they already exist

Generally speaking, you don’t do any true B2C stuff in the enterprise, it is all B2B and built on top of existing products and stacks, so your chance to start something “from scratch” is virtually nil. Don’t try. No one cares. This generally also means heaps of integration with existing business processes, software products, etc.

(2) Your users are not you

I’ve seen this problem come up a number of times, but most of the time the people using the product you will be building are very different from you and have a very different set of problems. You either need to understand these problems yourself or get used to working with someone who does.

(3) The enterprise is about money

Money is needed to live and is, generally speaking, the standard by which everything is measured in the enterprise. And by everything, I mean everything. Your cool widget isn’t worth anything to anybody unless it makes someone money. There is a certain reasonably large amount of bullshit eliminated this way.

(3) The enterprise has money

You don’t have to worry (or at least you have to worry less) about people with their latest greatest idea wanting you to implement their idea for time with their cat. I like cats, but I also like to get paid. This is one of the main reasons why people end up in the enterprise.

(4) Your tools are what you are given

Since you are working on top of someone else’s stack, generally you are stuck with whatever they provide. This can really suck. Unfortunately, due to No. 3, probably no one cares much about creating new tools for you to work with, since this costs them time and they can’t figure out why they should give you anything more than you need.

(5) You will be forced to drink kool-aid

Marketing, frequently involving technologies which are poorly-defined and do not exist, is the lifeblood of “innovation” in the enterprise. Generally speaking, this involves putting a vague concept out there and contrasting your awesome vague concept with the “conservative” parties that are just selling the same old sauce instead of your new sauce. The implication of this, is that if you are in the periphery, you are more or less forced to become a cheerleader. Although waving pom-poms can be nice (well, depends on who is doing this, do not click on this link), it can go to your head. Generally speaking, this sluicy juice does make people a bit crazy, so you have to watch out.

Generally speaking, you should be aware of all of these things before starting. The enterprise can introduce you to a lot of people with interesting needs in a variety of industry sectors (I’ve been fortunate to work with a number of very large and interesting corporations) without a lot of bullshit you might deal with if you are limited to small and mid-size companies and deals. The unfortunate consequence is that you will probably move far away from B2C solutions, which can be a better way to improve your skills as in many circumstances you are forced to be much more competitive when working on a product which, generally speaking, must iterate much more rapidly.

In the end, if you stay in the enterprise with the attempt to be as “good” as you can, you will probably become awesome at doing a lot of things quickly, but will probably stop doing them all that well (the incentive structure generally emphasizes quantity of features but less frequently quality of experience, something which generally means that you need to care about your customers).

As goes a famous phrase of T.S. Eliot, “Where is the knowledge we have lost in information?” And with the information age, we are overloaded. Whether or not we belong to the enterprise, we are likely swimming in information with the generally implied idea that we must have a response to it.

Moreover, even if we explicitly resist the clinging and clanging of the newest generation of digital beeps indicating new information that is available, we are likely to be drawn in or part of a digital resistance, which angrily decries all the new modes of information sharing.

Indeed, there is a logic to this. Very little information of the vast amount of new information available is valuable in and of itself. Some of this may be valuable in aggregate — I can find out, for instance, how many people talked about Justin Bieber this week on Twitter and how this corresponds to the number of people talking about any other pop artist. Other information is completely useless.

What are, however, the exceptions? As I see them, there are several “new” things emerging in this wave of technology:

(1) Extensibility
– I can reach people that I never could reach before. If I met someone once in China with a specific knowledge of acupuncture points on the foot, I can now easily reach out to him five years later when I have a specific question about foot massage. This is amazing and allows for greater hyper-specialization (by, among other things, empowering generalists at the same time)

(2) Connectivity
– I feel, or can feel, connected to people far away that previously I felt distant. This is particularly important within the sphere of work, in which more and more people work remotely. I can be working “with” people everywhere and their little personal things, as insignificant as they can be, can give me the feel of a virtual office (even, at times, a virtual cubicle!).

(3) Breaking news
– In certain sectors, including technology, getting the information while it is hot and being part of the “breaking wave” can give one new energy — a bit like surfing. If you are on the beach, it just isn’t going to be exciting for you or anyone else watching you. And, with each new wave, you can “surf” everywhere.

(4) Flattened world
– In many respects, I disagree with folks like Thomas Friedman that describe a flat world as a good thing — but in some instances it can be very good. These mediums often allow us to reach across barriers for causes good or bad — increasing the accountability of political figures and companies.

If there is a good, of course there is a bad. One needs to be aggressive in filtering information that might be useful and removing completely useless sources of information.

Here are some evaluations:

(1) Twitter -> Hit or miss. If I am plugged in all day I catch everything. If I unplug, I only get little bits. I wish I had a better filter.
(2) Facebook -> I aggressively “hide” people not in my immediate vicinity or with whom I am not working. I get value from finding about things from people/orgs I watch, as the signal to noise ratio remains reasonably high.
(3) Hacker News -> I created a filter for Hacker News since it was as bit like Twitter for me.
(4) RSS -> I have almost abandoned RSS.
(5) Email -> I have 50+ filters setup in Gmail and probably that number of folders and subfolders. This remains my primary “feed.” I actually think Facebook could replace this, largely because there are a lot of things missing in email protocols that they can build into Facebook messages (e.g. the “read” notification). This would be a huge win for Facebook, since although within messaging right now they are doing a good job with convenience, if they actually had a superior technology set they could make a good show of replacing email altogether (this was, in part, part of the goal of Google Wave).

If you are interested in more, here’s a related Hacker News thread.

P.S. It is clear that Salesforce, Yammer, etc. are following rather than leading the “Facebooks” of the world, so I don’t think it makes sense to focus on them in particular.

Sometimes with potentially controversial posts I circulate for feedback before posting. I wanted to do that with this post, but did not for lack of time. Thankfully I got some good feedback during the first couple days it was up and have added some additional comments at the end now that I am republishing it.

As many followers know, I was an excited early adopter of Cloudspokes, what I hoped would be an innovative new platform for engaging developers on interesting projects in different languages. Although I won bunch of prizes early on and even helped promote the platform, at a certain point I stopped participating in Cloudspokes. Since I am frequently asked questions about this, I thought I’d explain why publicly.

The simple premise of Cloudspokes is this:

(1) Company contacts Cloudspokes with a project and prize amounts (e.g. a javascript widget with a $1000 first prize and $500 second prize)
(2) Cloudspokes lists project
(3) Developers submit entries
(4) Reviewers award prizes based on how well entries meet specs

In a certain sense, this is part of a phenomenon known as “crowdsourcing” which has a fantastic appeal from the standpoint of many companies. Instead of paying someone in house to do the work (who likely cannot) or hiring a consultant (who will cost a lot), we use the old competitive instinct to get lots of people to submit work. We engage more people, get more work, and hopefully get a better result for less cost.

There are several immediate problems that present themselves. First, it must be noted that there are two sets of client-worker relations present here. The first is between the platform (Cloudspokes) and the company which has listed the project. The team responsible from the platform needs to convince the client that their developer base can deliver on projects in order to get the client to list their projects. The second is between Cloudspokes and the developers themselves. In a very real way (which the Cloudspokes team does not seem to have recognized) the developers are the real customers of the platform. For, while the company which listed the project is offering money for a project, there are certain safeguards which exist that prevent them from losing that money if nothing is delivered.

The same does not exist for the developer. The old adage is true: time is money. And since developers are exchanging valuable time for the chance at money, they must determine just how much that time is worth within the context of a Cloudspokes project.

Here are some examples from my experience that illustrate how Cloudspokes does not “put the customers first” when the customers are developers (I cannot comment on any of their other customers). First, I originally stopped participating in Cloudspokes contests after I never got a response from an entry of mine in approximately April of last year, which was a blueprint for testing the skills of Salesforce developers. After being irritated for several months, I contacted Cloudspokes via email and found out that they had some unpublicized scoring system, by which if they didn’t like any entries all that much, they wouldn’t pay anybody and they wouldn’t notify them either. This means, of course, that supposed “first prize” was never awarded to anyone. That, which to me constituted a severe breach of business ethics, was enough for me to discontinue working with Cloudspokes for several months.

However, thinking that some of the warts related to Cloudspokes might be related to the newness of the platform, approximately six months later I decided to give Cloudspokes another try. What I found was extremely disappointing. Many of the warts of the original platform (e.g. contradictory and confusing specs for challenges, lots of spam messages, the inability to type carriage returns in messages) continued to exist after ported to Ruby on Rails. For instance, the March madness challenge, which I attempted to participate in, had all of the following problems:

(1) The timer, which was supposed to measure the amount of time it took to complete the challenges, frequently reported times that were off by an order of magnitude.
(2) The questions, in which one was supposed to fix an error, frequently included multiple errors, including misspellings of method names, making it often impossible to determine which error one was supposed to fix.
(3) The results page at the end of the challenge did not display consistently.

Moreover, when people used the message board of the challenges to report these problems (the only place where one could) the response of the Cloudspokes team was to claim that the message board they were spamming the message boards — also claiming that the timer was being gamed instead of that it was, as later turned out, simply broken.

I also participated in another challenge that was simply terminated before the deadline without any notice posted on either the blog or page for the challenge. Although the Cloudspokes team later claimed that they would continue to score the challenges (despite the fact that the challenge was ended by the Cloudspokes team before the deadline), I believe they did not award any prizes whatsoever. During a long email chain, I was told that I could and should be able to to see the results of the challenge — however, when I reported, after several attempts to view them, that I could not, the Cloudspokes team simply stopped any attempt at “customer support” and no longer responded to my messages.

Given my limited experience, I suspect that there are probably of hundreds of improperly scored and terminated challenges in which developers are simply handed the short hand of the stick and left to lick their wounds when customer support stops responding. Also, although they have a new scoring mechanism supposedly issued by your “peers” (something I suspect is merely a marketing slogan), it appears to me primarily a way for them to avoid awarding any prize money, even if the original problem was that the challenge was impossible under the constraints, contained contradictory specs, or would have required far more time than feasible given the prize money awarded.

My own principle is the “golden law” of doing to others as one would wish to receive oneself. In this case, it includes not wasting the time of anyone, especially talented people who don’t have time to waste following up on your lack of customer support.

Consequently, given the amount of time that Cloudspokes has wasted even in attempting to help them fix things that should have been working before they released them, my provisional judgment is that talented developers should leave the platform to programmers without jobs or job prospects.

Personally, I prefer to do the best job possible and to get paid for doing so (when I’m not working on contributions to the wider open source ecosystem).

Also, although I’ve already given lots of generally ignored free advice to the Cloudspokes team, I’ll leave it with these:

(1) The customer includes the developer
(2) The customer should come first
(3) Don’t lowball people
(4) Don’t waste people’s time
(5) Fix gnawing bugs before releasing new features
(6) Wait until they work before you release things

That said, I hope that the platform is something I would consider using in another year.

Follow-up comments:

Since this was originally posted, Cloudspokes responded with some helpful statistics that may indicate that my repeated problems with the platform (at least as regarded canceled contests and forgotten scoring) were somewhat exceptional. I’d like to give them the benefit of the doubt and so will probably be back at Cloudspokes for further assessment within a shorter period of time than originally anticipated.

Very few companies are able to successfully manage multiple languages in house, although frequently many are forced at least negotiate between using one back-end language (PHP/Ruby/JAVA) and one front-end one (Javascript of some flavor), this is rarely perceived as ideal from a management perspective — diversity may be great when you are a pumped up programmer wanting to work (or dabble) in a panoply of different languages, but unless you are able to fully manage the extent of all your projects, including needed future updates for eternity, the use of “proprietary” or specialized languages provides a substantial added cost to your company. This is simply to say that a principle which applies in other industries applies also within software: fungibility.

If, as I have suggested, to the maxim “real artists ship” should be added “real apps scale,” scalability is not merely a function of more users, but necessarily of a codebase larger than a single or pair of geniuses can create. This is why many of the great geniuses of history, among them Plato and Aristotle, worked within the context of schools, distributing the knowledge that they had achieved over a larger extent of time and space via human intermediaries (i.e. students), and these schools, of course, had teachers beyond the genius-founder.

Business is, if frequently following a different set of impulses than potentially “love of wisdom” and educational institutions which follow in their potentially altruistic path, is nonetheless subject to a similar set of limitations. One simply cannot know everything and, even if, in a fractal-mode, one can understand the basic principles of a subject at a high level of abstraction, this “higher-knowing” does not necessarily give one the skills to solve all problems that arise at the microscopic level of the day to day.

Programmer-mathmagicians have frequently attempted to solve this problem by simply residing in the highest possible level of abstraction, not withstanding that anything written, at least as attested in many philosophical schools, cannot represent reality at the most abstract way. In this sense, we soon reach the limitations even of an incredibly abstract language (i.e. Lisp), insofar as the implementation must contain a machine and it is no longer a truely and “purely” a lisp machine as soon as it contains assembler.

The fractal is a symbol, in a certain fashion, of the juncture not only of the sometimes invisible mathematical patterns which hide between and beyond virtually all of nature, but of the fascinating interjection of beauty which appears once we dive beyond that which is easily put into words.

In a sense, to recognize this trend in the 21st century we must have some historical awareness, at least in the sense in which historical awareness allows us to understand the categories in which we think as a product of our education at a particular moment in history. This allows us to realize that the modern emphasis on the defined self distances us from the “genius” of the supreme flow state which was exalted as “divine madness” in the early Greek philosophical tradition and similarly exclaimed in Indian and Chinese philosophical traditions.

However, supposing we have let the defined “self” go, even for a moment, how do we descend into the world of diverse and variegated languages? The challenge of Plato’s academy and every educational institution since was just that — we simply have to descend beyond our contemplation of beauty and into the dirt of the every day.

In an ancient Chinese conception, this was known as the fusion of heaven and earth, and heaven here was not simply a place but an active force which, once opened up to, could serve to illuminate divide the great expanses.

The polyglot challenge and accompanying fractal imagery, is then, potentially an opportunity to recognize the grand patterns that exist on a higher level of abstraction and, by recognizing the grand patterns (and beauty that accompanies them) to dive into the details with the “right tool for the right job,” a task that is otherwise quite difficult to realize.

The sad problem is that frequently the world remains divided between those who, in a particular place of abstraction, refuse to deal with the nitty-gritty details of the “blub” things of ordinary life, and those who, because of immersion in “the way things are done,” fail to see any better way.

This is particularly sad at a moment in time, like the present, where “the way things are done” simply is shown to be insufficient. If, to use a military metaphor, there is an enemy at the gates and yet the soldiers refuse to fight because because the plans are not well-defined, the stocks of food or weapons are insufficient, or because their commanders are idiots, we might understand this. We can even picture them retiring into the countryside because the countryside is a safe and comfortable place to be. However, no problems are solved this way.

However, this suggests that even if a military metaphor might be appropriate, the appropriate response is rarely “forward,” in the charge sounded by the exuberant officer, but rather up, in the sense that a contemplation of things in context of a higher level of abstraction (or in accordance with the Way or Dao of the great philosopher of war Sunzi), will produce more beneficial results than those who respond to instigation by either charges or retreat.

As for the polyglot future I have claimed in other posts to be excited by, I think it is gradually reaching increased definition. It demands, among other things, people who are willing to know things well at a level of an abstraction and be capable of knowing the details while admitting they do not know everything. This is to suggest that the developer-architect will be an increasingly important role as multiple platforms are engaged in increasing levels of abstraction.

However, it also demands that these same people are capable of engaging at the most detailed level and, with regards to this, I can only be excited for a a most “fractastical” future.

@fractastical updates

November 2015
« Mar    

Get every new post delivered to your Inbox.

Join 1,274 other followers