Saturday, December 28, 2013

Phone app review

In this article we will look at some iphone apps and provide comments about these. These comments will be in the light of the book "Design of Everyday Things" which I happened to read recently. Also did watch the related course on Udacity.

Plan to keep on adding to the list of apps reviewed. Note that these comments are my personal opinion only. And these comments will take a systems view of the phone apps where we consider not only the apps but also the experience associated with them.
  • Highlight is an app to targeted to help you learn about the people around you. So you see all information that is publicly shared of a person close to you who is sharing highlight. The app is running in the background. I downloaded this app only on my Android phone.
    • Comments: 
      • The app is not very clear for a person who downloads it. You see a bunch of photos of people 
      • On selecting a photo, I see the same photo again, a map probably with the location where the person was a while ago and a bunch more information.  What do I do with this information?
      • There is a button that takes me to my profile but then how do I edit my information. Probably I cannot but I do not know the model in the mind of the creator of the app.
      • There is also a camera (signifier in the language of "design of everyday things") on the main screen. I clicked on that, it took pictures and then I have no idea what happened to the photographs. Talk about "gulf of evaluation". 
      • And of course "running in the background" all the time probably thereby sucking the battery of my phone. 
      • Not to speak of notifications about strangers I do not care about on my home screen popping up. 
      • Well I "deleted" the app. No sense wasting space on my cell phone, battery life as well as "wasted cycles" deleting notifications about strangers I don't care about. 

Monday, December 23, 2013

Systems approach to business analysis

A systems approach to analyzing the business of a company is indeed very important. A good example of one such analysis is here for zulily. The author of this article does a good job of looking at all aspects of the system that is Zulily. I found it an interesting read.

Friday, December 20, 2013

daily task tracker

I like to track progress regularly (daily?). This to help figure out the cause of inefficiencies if any in order to address it. So obviously interested in a startup such as idonethis.

They send a daily reminder email. The replies from each person on the team is then summarized in a digest emailed to all the next morning. They do charge approx USD 5/person/month for this service. Might be okay for small teams but for larger teams it might be cheaper to build something in house.

Salary information

Here in the US we treat salaries as information that should be closely guarded. However, breaking this trend is a startup Buffer.

They have published the salaries of their employees on their blog. An interesting experiment no doubt. Still I am not bought into this given the issues we can run into when the team grows.  Issues such as the different constraints of different employees (some want more vacation over more salary or vice versa), different maturity levels of employees, impact on the social circle etc.

Thursday, December 12, 2013

Containers in 5 min?

We hear a lot of buzz about containers these days. This article provides a very nice introduction to this concept. And not long to read too.

To quote
Containers virtualize an OS; the applications running in each container believe that they have full, unshared access to their very own copy of that OS. This is analogous to what VMs do when they virtualize at a lower level, the hardware. In the case of containers, it’s the OS that does the virtualization and maintains the illusion.
 Containers require low overhead to create and manage. These are more appropriate for the cloud workloads. PaaS being the main driver for containers these days although the concept itself has been around for a long time.

Sunday, December 1, 2013


Lately I have been looking at Node.js. This seems like a very good tool for programmers. It leverages the concept of Event driven programming.

So why should you use Node. Instead of providing my explanation, I will quote excerpts from this article. Of course, the article is dated for those of you who read that.
  • One reason is efficiency. In a web application, your main response time cost is usually the sum of time it takes to execute all your database queries. With node, you can execute all your queries at once, reducing the response time to the duration it takes to execute the slowest query.
  • Another reason is JavaScript. You can use node to share code between the browser and your backend. JavaScript is also on its way to become a really universal language.
  • And the last reason is raw speed. V8 is constantly pushing the boundaries in being one of the fastest dynamic language interpreters on the planet. 
  • In addition to that, node's I/O facilities are really light weight, bringing you as close to fully utilizing your system's full I/O capacities as possible.

Wednesday, August 28, 2013

Giraffes in your data

An interesting piece about giraffes in data and how this can pollute the inferences you make from it. The authors also refer to Simpson's paradox in this article.

news and the sharing economy

I guess when a news organization has to publish a news item, they go for the wow factor. and this might skew the news negatively.

On the other hand, when people have to share news, they reportedly share "positive" news with a higher probability as compared to "negative" news. This article looks at that in more detail.

Some interesting quotes from the article follow next.

 "The reason: social media. Researchers are discovering that people want to create positive images of themselves online by sharing upbeat stories."

“You don’t want to be that guy at the party who’s crazy and angry and ranting in the corner — it’s the same for Twitter or Facebook,”

“It’s not that people don’t share negative stories,” says Jack Shepherd, editorial director at BuzzFeed. “It just means that there’s a higher potential for positive stories to do well.”

“Anecdotally, I can tell you people are just as likely to click on negative stories as they are to click on positive ones,” says Shepherd. “But they’re more likely to share positive stories. What you’re interested in is different from what you want your friends to see what you’re interested in.”

Tuesday, August 13, 2013

Apache license

We have different types of licensing possible for software packages. Many companies going the route of Apache license - a license that allows you to use the contributions of the community without contributing anything back.

Contrast this with the GPL license where if you modified the code and included it in your product you might have to contribute the work back to the community. 

Wired has a good article about this.

Wednesday, July 31, 2013

Randy Pausch and working in groups

Randy Pausch is one of the people I admire. His last lecture is just awesome. I frequently remind myself of his statement "Brick walls are there for a reason". 

Anyhow, recently came across another article of his. This is about tips for working successfully in a group. Great advice indeed.

Monday, July 29, 2013

Eclipse on Linux

It's been a long time since I used Eclipse. Planning to get back to some Java programming. Hence installed Eclipse on Scientific Linux (SL) 6.3 today. It should have been easy except for the fact that I did not pay attention to the fact that I had 64 bit Java on my VM while I got the 32 bit Eclipse release. This resulted in an error "JVM terminated Exit code=13".  Wish the error message could have been less cryptic.

Anyhow, googling it I saw the reason for the error.  Quick search turned out this article. That ensured eclipse could start from the command line. But I wanted to add it to the Gnome launcher. More searching turned up this article.

So now I can start Eclipse on my SL 6.3 VM by selecting "Applications"-> "Programming".

Searching through big data

Found yourself having to search through lots of data. Came across an article that describes use of simple unix commands for this. For details check this article.

Two heads are better than one in data science

We have heard the saying "two heads are better than one". This has also been shown in the field of data science. The term used to describe this is Overkill analytics.

A simple description of the approach here is given in this article. The author uses this approach repeatedly in several places including a competition on Kaggle.

Simply put, the approach involves using simple models to predict and then using the ensemble of these models for the final prediction.  So sophisticated models are skipped in favor of brute force methods on simple models.  Further, the simple models chosen should be such that they complement each other. This way each model brings its own strengths to bear on the final prediction. This while contributing to cancelling the noise.  Hence the title --  two models (or two heads) are better than one.

An example of using the model in R is also given. I plan to give a similar example using Python.

Sunday, July 28, 2013

Big Data

The current trend towards increased connectivity has an interesting byproduct. Lots of data. Data which can enable you to predict better, data which can enable you to analyze better. 

There is a big movement to take advantage of this deluge of data. The is the Big Data movement.  I have been working lately on several Big Data technologies. These include Hadoop, Mapreduce, NoSQL etc. 

Why the new technologies? This is because existing technologies are not sufficient to handle the amount of data that we are faced with. These new technologies bring a multitude of open problems with them. So an interesting area going forward.

Will start posting more details about these concepts as well as how to get your hands dirty with this stuff.