Advantages of BootStrap: multi-language support add-on

I was very impressed with how quick and easy it was to create a web site with “twitter bootstrap.js” — but only today did a fellow grad student teach me another benefit:  support for multi-language web sites.  [I found tutorials at very useful, and the one below basically had my site up and running in less than its the running time (it is well over an hour and designed for non-technical novices). The others from this teacher were on individual bootstrap 3 features, rather than the one-stop-shop provided below.]

There are many ways to do multi-lingual web sites, of course.  I was really intrigued with / impressed with EasyLing, which seemed to have a pretty painless and “standards-based” way to approach the problem (but probably overkill for many uses).  And I discovered a WordPress multiple-language plugin (?) or service / api, but it was apparently discontinued over a year ago… still it seemed there should be a better way.

And Wencheng Hu, an experienced translator and web developer, provided me the key solution element:  a complete BootStrap 3 solution for language labels and names, etc.  — documented here at  complete with flags icons (in three sizes) for the 43 languages it supports!

How well this works for a “web app” or even a “blog” on an ongoing basis, i am not sure.  probably a blog should just be done as separate blogs for a variety of reasons, but swapping out labels and UI elements in an application is often useful (if, for a variety of reasons, painful).  My 8-language support for my language learning” apps on iOS taught me a lot about the challenges of making an app work for 8 different audiences…

I am very interested to see the final details of my implementation for my new web site.  I will post the implementation particulars, as one-page bootstrap web sites are a very handy and useful tool for SMEs, and this neat trick certainly works quite well for a small number of languages. Further, popular and inexpensive hosting services support the necessary tools with ease and by default, by and large, so the follow up post should be quite short. And soon!

Status of Critical Thinking in the Workplace

Status of Critical Thinking in the Workplace –

the Most Important Skill for Business Growth

This blog post by Person is a welcome gesture highlighting Critical Thinking, both to highlight its importance to actual work and business, and to call this to the attention of Higher Ed.

Tidbits:  Specifically, when it comes to skills like critical thinking, it is consistently rated by employers as being a skill of increasing importance, and yet a recent study showed 49% of employers rate their employees’ critical thinking skills as only average or below average.

The graphic also was interesting in its display of how 2 year grads compared with 4 year grads on the measure of “critical thinking skills”: 4 year college graduates CT-skills-by-college-group-0325-0144

were more likely to be rated “excellent” for critical thinking than 2 year grads — 28 vs 4% — but for “adequate” skill level, community college graduates fared better with  73% to 63%.  Overall the recent of 2 year grads rated as deficient, but I could help but wonder if the there was a bias in the reported scores for 2 year grads (e.g, graded on a curve, as this curve looked a bit strange.

This blog will feature more references to Critical Thinking going forward, as my research into better instruction and measurement for Critical Thinking and Problem Solving skills makes progress.

Coolest Education Offering Ever?

With a name like “Pixar In a Box”, it would be hard not to get noticed.  That said, this Disney / Khan Academy collaboration looks pretty interesting / exciting / ambitious:



Read more here.piab-icon





Modern Application Architecture (again!)

After this post, I have continued to get more input and find more articles.

Here are two:

Berlin Startup Languages - circa - 150901

Berlin Startups – Implementation Languages


Berlin Startup Web Frameworks

Berlin Startups Databases - 150901

Berlin Startups Databases – 150901







And lots of other interesting graphs…

In the article noted above, I linked here for graphs like this one (where venture funded startups are rated on an “okay”, “good” and “great” scale (grade inflation?) using blue / red / yellow) as reflected in standings.

Here are just three (of many many) samples:

Angle List Programming Language by Startup Rating

Angle List Programming Language by Startup Rating

Angle List Front End by Startup Rating

Angle List Front End by Startup Rating

Angle List Database / Storage by Startup Rating

Angle List Database / Storage by Startup Rating


And lastly, I saw this piece has is called:

Which web technology should I use?

A handy guide for non-technical founders

Interesting at least as far as learning how some folks see the world, including very rough shorthand impressions of the “pros and cons” of using different tool sets.  The primary starting point advocated is ‘do something fast and cheap to prove your concept and that you are willing to throw away” — not something I’ve ever been a big fan of (since using a technology I know best is usually fastest, and building “throw away” code is a bad habit I never developed) but might be right for some people / situations (e.g. when using mid-level or junior people who only write throw-away code…).



Fault Tolerance in Distributed Systems

Perhaps we are nearly at the point where saying “distributed systems” is as redundant as “software program” always has been, but for the moment I want to consider how a specific issue is heightened by the nature of modern, asynchronous systems, and that issue is “fault tolerance” generally as well as “cascading failures” specifically.

More and more such issues arise — and I was please to read a particularly lucid explanation of a popular and important design pattern used in many solutions: the Circuit Breaker pattern.  On Martin Fowler’s blog — haha. I was kind of surprised by that — but only because I don’t google interesting problems in architecture and design nearly as often as I’d like.

I can’t add any value to what he’s written here, so instead i will just quote briefly:

The basic idea behind the circuit breaker is very simple. You wrap a protected function call in a circuit breaker object, which monitors for failures. Once the failures reach a certain threshold, the circuit breaker trips, and all further calls to the circuit breaker return with an error, without the protected call being made at all. Usually you’ll also want some kind of monitor alert if the circuit breaker trips.

There are added bits about adding a capability to attempt automatic reset (at some specified interval) and discussions of other real-world refinements (e.g. different thresholds for different sorts of errors), but a hallmark of this sort of writing is that, at least for most of its intended audience, a simple example provided in detail, and pointers to additional kinds of flourishes and add-ons, is really all that is needed.

Courtesy of Martin Flower

Check it out!  And if you googled this topic, doubtless you have read or seen something about NetFlix’ Hystrix, which says on that getHub landing page:

Hystrix is a latency and fault tolerance library designed to isolate points of access to remote systems, services and 3rd party libraries, stop cascading failure and enable resilience in complex distributed systems where failure is inevitable.

It is a java implementation; there are other articles linked here and links to alternative Circuit-breaker patterns in RubyJavaGrails PluginC#AspectJ, and Scala listed at the bottom of the Fowler blog post.

Developing with Google App Engine, Google Cloud; Client-side MVC

That heading is perhaps overly narrow, but as I am still learning about this stack, I am relying on articles like this one, which describes the use of Angular.JS as most relevant to a shift toward client-side MVC from the “traditional” [not a direct quote, but meant to reflect the author’s perspective] MVC-on-the-server-side.

I find it hard to conceptualize a significant “solution” that had no “back end” or ‘server side” process — or that might seriously be architected so that all system-wide and periodic functions that might be considered “back end” parts of a solution, for example, would be specified for development in javascript on a client. But I gather that is not what “client-side MVC” means.  It speaks to an approach where server side elements simply do not deal with user input and have an sort of UI/UX, but are invoked by client-side functions.  In this I am reminded of MEAN, an “all javascript” framework embraced by some.  Some what? Javascript enthusiasts?

Today’s topic is not MEAN, but rather, Google App engine, deployed on Google Cloud, to provide an easily scalable, highly functional, straightforward web app solution toolkit that operates as an integrated whole.

This Approach is described in “AngularJS + Cloud Endpoints — A Recipe for Building Modern Web Applications”, here,

The high level view of this starts like this:

Augmenting this approach with the addition of Angular JS as a client-side MVC framework re-casts the architecture into something more like this:  endpoints-architecture

There is a lot of magic here; I don’t yet fully understand it all.  But it looks well worth digging into..


Web App Development Frameworks: too many to shake a stick at…

I almost decided to simply add a series of “update” links to my prior post on my quest to understand the current state of “modern web app development”, and in particular, tools, frameworks and environments of choice.  Now as ever, many technologists live in their silos, and while the best and most enlighten attempt to glance across at what others are doing, keep up with new ideas and tool kits, the reality is that most top-tier, hard working, delivering-in-a-crunch developer / architects are almost always too busy to do as much of this sort of thing as they’d like.  And while I am not one of those, I am also a busy person with many balls in the air, ideas kicking around, prototypes-in-process, apps-in-process, with a real job and various research projects…

My prior post focused on the relative popularity of various “platforms” and javascript frameworks, without any real regard for which things work together, which compete, or many other factors.  In short, it is a “dog’s breakfast” of random observations with a good link or two to more coherent material.   Arguably, not very useful.

I will rectify this with future posts about specific combinations of web app development tools and platforms, where there are available tutorials and low barriers to adoption.  And after about five of these, i hope to have come up with a more coherent scheme for comparison.