Put up or shut up

Moving to a new blog

This will be my last post for this blog… Hope you enjoy my previous articles.

Meanwhile, I am consolidating all my other blogs into one which unifies my personal mission to bring a clear pathway toward a meaningful IT career.

Henceforth, all my blog posts will be published at ITJUMPSTART.WORDPRESS.COM.

Courtesy: nytimes.com.

 First, in a decentralized system, errors are by nature smaller. Switzerland is one of the world’s wealthiest and most stable countries. It is also highly decentralized — with 26 cantons that are self-governing and make most of their own budgetary decisions. The absence of a central monopoly on taxation makes them compete for tax and bureaucratic efficiency. And if the Jura canton goes bankrupt, it will not destabilize the entire Swiss economy.

In decentralized systems, problems can be solved early and when they are small; stakeholders are also generally more willing to pay to solve local challenges (like fixing a bridge), which often affect them in a direct way. And when there are terrible failures in economic management — a bankrupt county, a state ill-prepared for its pension obligations — these do not necessarily bring the national economy to its knees. In fact, states and municipalities will learn from the mistakes of others, ultimately making the economy stronger.

It’s a myth that centralization and size bring “efficiency.” Centralized states are deficit-prone precisely because they tend to be gamed by lobbyists and large corporations, which increase their size in order to get the protection of bailouts. No large company should ever be bailed out; it creates a moral hazard.

Consider the difference between Silicon Valley entrepreneurs, who are taught to “fail early and often,” and large corporations that leech off governments and demand bailouts when they’re in trouble on the pretext that they are too big to fail. Entrepreneurs don’t ask for bailouts, and their failures do not destabilize the economy as a whole.

Second, there must be skin in the game across the board, so that nobody can inflict harm on others without first harming himself. Bankers got rich — and are still rich — from transferring risk to taxpayers (and we still haven’t seen clawbacks of executive pay at companies that were bailed out). Likewise, Washington bureaucrats haven’t been exposed to punishment for their errors, whereas officials at the municipal level often have to face the wrath of voters (and neighbors) who are affected by their mistakes.

If we want our economy not to be merely resilient, but to flourish, we must strive for antifragility. It is the difference between something that breaks severely after a policy error, and something that thrives from such mistakes. Since we cannot stop making mistakes and prediction errors, let us make sure their impact is limited and localized, and can in the long term help ensure our prosperity and growth.

Nassim Nicholas Taleb, a former derivatives trader, is a professor at the Polytechnic Institute of New York University and the author, most recently, of “Antifragile: Things That Gain From Disorder.”


Courtesy: Reddit.

What is something everyone should know before starting a small business?

i’ts not about the idea, i’s about how prepared you are. Everyone has ideas, most dont do the work required to get the job done. The 2nd thing you need to know is that sales are the most important aspect of a small business. No sales, no company.


Courtesy: TechCrunch

Lectures are often the least educational aspect of college; I know, I’ve taught college seniors and witnessed how little students learn during their four years in higher education. So, while it’s noble that MIT and Harvard are opening their otherwise exclusive lecture content to the public with EdX, hanging a webcam inside of a classroom is a not a “revolution in education”.

A revolution in education would be replacing lectures with the Khan Academy and dedicating class time to hands-on learning, which is exactly what Stanford’s medical school proposed last week. Stanford realizes that great education comes from being surrounded by inspiring peers, being coached by world-class thinkers, and spending time solving actual problems.

To give a little background, last week, Harvard and MIT made headlines with the launch of EdX, a joint online education initiative that will place lectures from the best instructors online, complete with reading material, automated quizzes, wiki-style forums, and a tailored assessment of progress. Essentially, EdX slightly expands the existing MIT OpenCourseWare with some basic forum and feedback technology–technology that has been around since the dial-up days of the late 90′s (and what universities have had since the invention of the Scantron). MIT OpenCourseWare has been wildly popular, with over 125 million lifetime visitors; so, the new EdX will certainly be useful for the existing base of MIT students who use it in deciding their course schedule and those in the public who want to enhance a neatly organized syllabus of readings with some occasional online chats.

But, saying that EdX is “the biggest change in education since the invention of the printing press” ignores the fact that lectures are often the least educational aspect of college: after four years of instruction, research shows that many students haven’t mastered basic reasoning or communication skills. Students forget most of what they hear in lecture and then only recall 40% of the tested material two years later. Lectures do little for students actually enrolled in the school, let alone the millions of online users who will study part-time, without a supportive community or frequent feedback from a professor.

So, last week, two Stanford professors made a courageous proposal to ditch lectures in the medical school. “For most of the 20th century, lectures provided an efficient way to transfer knowledge, But in an era with a perfect video-delivery platform — one that serves up billions of YouTube views and millions of TED Talks on such things as technology, entertainment, and design — why would anyone waste precious class time on a lecture?,” write Associate Medical School dean, Charles Prober and business professor, Chip Heath, in The New England Journal of Medicine. Instead, they call for an embrace of the “flipped” classroom, where students review Khan Academy’s YouTube lectures at home and solve problems alongside professors in the classroom. Students seem to love the idea: when Stanford piloted the flipped classroom in a Biochemistry course, attendance ballooned from roughly 30% to 80%.

Skeptical readers may argue that Khan Academy can’t compete with lectures from the world’s great thinkers. In response, Prober and Heath point to a recent one-week study that compared the outcomes of two classes, a control class that received a lecture from a Nobel Prize-winning physicist and an experimental section where students worked with graduate assistants to solve physics problems. Test scores for the experimental group (non-lecture) was nearly double that of the control section (41% to 74%).

“Students are being taught roughly the same way they were taught when the Wright brothers were tinkering at Kitty Hawk,” they explain. After a revolution, an organization should bear little resemblance to its former self. Harvard and MIT have merely placed the 20th century education model online. Stanford, on the other hand, is completely doing away with the old model of the “sage on the stage” and embracing a learning environment that mirrors life forever connected to the world’s information.

Native Code or HTML?

The idea that you have to choose between native controls and HTML represents a false dichotomy.

LinkedIn’s iPhone application consists of 70 percent HTML and 30 percent native. The Android application is roughly 40 percent native and 60 percent HTML. The Android application relies more extensively on native elements because the platform’s HTML rendering engine isn’t quite as capable as the one on iOS.

(via Ars Technica)

Notepad++ JS Beautifier

Came across blog post of Erick Ruiz de Chavez regarding integrating JSBeautifier with Notepad++.

To fix losing all indentation (all text is vertically aligned), uncheck the Replace by space checkbox, and set your tab size to your preference.



Programming Paradigms


Courtesy: The Architecture of Open Source Applications, Volume 2

Event-driven programming is a programming paradigm in which program flow is determined by external events. It is characterized by an event loop and the use of callbacks to trigger actions when events happen. Two other common programming paradigms are (single-threaded) synchronous and multi-threaded programming.

Let’s compare and contrast single-threaded, multi-threaded, and event-driven programming models with an example.  The figure above shows the work done by a program over time under these three models. The program has three tasks to complete, each of which blocks while waiting for I/O to finish. Time spent blocking on I/O is greyed out.

In the single-threaded synchronous version of the program, tasks are performed serially. If one task blocks for a while on I/O, all of the other tasks have to wait until it finishes and they are executed in turn. This definite order and serial processing are easy to reason about, but the program is unnecessarily slow if the tasks don’t depend on each other, yet still have to wait for each other.

In the threaded version of the program, the three tasks that block while doing work are performed in separate threads of control. These threads are managed by the operating system and may run concurrently on multiple processors or interleaved on a single processor. This allows progress to be made by some threads while others are blocking on resources. This is often more time-efficient than the analogous synchronous program, but one has to write code to protect shared resources that could be accessed concurrently from multiple threads. Multi-threaded programs can be harder to reason about because one now has to worry about thread safety via process serialization (locking), reentrancy, thread-local storage, or other mechanisms, which when implemented improperly can lead to subtle and painful bugs.

The event-driven version of the program interleaves the execution of the three tasks, but in a single thread of control. When performing I/O or other expensive operations, a callback is registered with an event loop, and then execution continues while the I/O completes. The callback describes how to handle an event once it has completed. The event loop polls for events and dispatches them as they arrive, to the callbacks that are waiting for them. This allows the program to make progress when it can without the use of additional threads. Event-driven programs can be easier to reason about than multi-threaded programs because the programmer doesn’t have to worry about thread safety.