22 Jul

DataGenetics – The Two Egg Problem

You are given two eggs, and access to a 100-storey building. Both eggs are identical. The aim is to find out the highest floor from which an egg will not break when dropped out of a window from that floor. If an egg is dropped and does not break, it is undamaged and can be dropped again. However, once an egg is broken, that’s it for that egg.

If an egg breaks when dropped from floor n, then it would also have broken from any floor above that. If an egg survives a fall, then it will survive any fall shorter than that.

The question is: What strategy should you adopt to minimize the number egg drops it takes to find the solution?. (And what is the worst case for the number of drops it will take?)

There are no tricks, gotchas or other devious ruses. Don’t rat-hole with issues related to terminal velocity, potential energy or wind resistance. This is a math puzzle plain and simple.

Think about the puzzle for a few minutes, and then read on.

via DataGenetics – The Two Egg Problem. Like brain-teasers and computer science algorthims, read on indeed.

16 Nov

Amazon’s cloud is the world’s 42nd fastest supercomputer

The list of the world’s 500 fastest supercomputers came out yesterday with a top 10 that was unchanged from the previous ranking issued in June. But further down the list, a familiar name is making a charge: Amazon, with its Elastic Compute Cloud service, built a 17,024-core, 240-teraflop cluster that now ranks as the 42nd fastest supercomputer in the world.

Amazon previously built a 7,040-core, 41.8-teraflop cloud cluster that hit number 233 on the list, then fell to 451st. But Amazon submitted an updated Linpack benchmark test with the addition of a new type of high-performance computing instance known as "Cluster Compute Eight Extra Large," which each have two Intel Xeon processors, 16 cores, 60GB of RAM and 3.37TB of storage. The full cluster on the Top 500 list is Linux-based, with 17,024 cores, 66,000GB of memory, and a 10 Gigabit Ethernet interconnect.

via Amazon’s cloud is the world’s 42nd fastest supercomputer. I posted about this on Twitter, but it’s still a little astonding. Amazon built EC2 primarly to serve as their internal infrastructure, today a piece of it made it on the list of the fastest supercomputers in the world.

24 Oct

TechCrunch – Creator Of Lisp, John McCarthy, Dead At 84

The creator of Lisp and arguably the father of modern artificial intelligence, John McCarthy, died last night. He studied mathematics with the famous John Nash at Princeton and, notably, held the first “computer-chess” match between scientists in the US and the USSR. He transmitted the moves by telegraph.

McCarthy believed AI should be interactive, allowing for a give and take similar to AI simulators like Eliza and, more recently, Siri. His own labs were run in an open, free-wheeling fashion, encouraging exploration and argument. He won the Turing Award from the Association for Computing Machinery in 1972 and the National Medal of Science in 1991.

He was born in 1927 in Boston and taught himself higher math using Caltech textbooks when his family moved to the area, allowing him to take advanced classes when he enrolled as a teenager. He received a Ph.D. from Princeton in 1951.

via TechCrunch – Creator Of Lisp, John McCarthy, Dead At 84. Reminded of what I wrote not even two weeks ago after Dennis Ritchie died, of how the innovators of Computer Science were mostly still alive and it became a little less true.

13 Oct

Tim Bray – Dennis Ritchie

It is impossible — absolutely impossible — to overstate the debt my profession owes to Dennis Ritchie. I’ve been living in a world he helped invent for over thirty years.

via Tim Bray – Dennis Ritchie. I remember in one of my early Computer Science courses, the professor mentioned that one of the great things about Computer Science is that the field is so young the people who invented the core theory are still alive. That became a little less true today.

27 Jul

52 Weeks of UX – Time to Delight

How long does it take for a new visitor/customer to be delighted using your product or service?

via 52 Weeks of UX – Time to Delight. Probably the most important and hardest metric. The most important because that is the real job of a product or service to delight the customer. The hardest because you have to go out and ask your customers one by one and find out how to replicate that awesome experience or that one thing that wowed your customers for all of the others.

One of the things missing from Texas Tech’s Computer Science degree is a course in Human & Computer Interaction, or along similar lines. We learn a lot about how to write good software but nothing of how to make people experience delight in using it. And the real key behind good software isn’t how bug free it is, but does the customer absolutely love using that application, if they do you’ve made a customer for life. Apple is the obvious and perfect example of this.

06 Mar

Computer Science and it’s Ethics or Lack Thereof

Recently, I had a class project in which I had to track down a code of ethics for my career field, computer science. In the course of this research, something astonished me. First, that it was pretty much impossible to find a local company that had a code of ethics for their staff programmers and second that the widely recognized international standard of code of ethics for computer scientists was tremendously weak.

The first point, is hopefully something that was more based on the size of the companies that I was talking with. These were small one or two person shops, a code of ethics was decided to be more of a waste of time than would be worth deploying.  However the second is more alarming to me, for reasons that I will discuss here.

So what exactly are the international standard that I am looking, the ACM code of ethics. ACM is an organization that is devoted to “advance computing as a science and a profession.” The organization is basically the professional society for computer scientists. So a pretty good organization that would presumably have a strong code of ethics to maintain the integrity of the the profession.

4.2 Treat violations of this code as inconsistent with membership in the ACM.
Adherence of professionals to a code of ethics is largely a voluntary matter. However, if a member does not follow this code by engaging in gross misconduct, membership in ACM may be terminated.

This is the last section of the ACM’s code of ethics dealing with Compliance with the Code and the Code here falls way short. The problem with this code of ethics is that there is no way to really punish someone who has actually violated the Code. Unlike many other professional degrees, there is no disbarment or license to revoke. This relates to a different problem that I discussed earlier where there is no set license that programmers receive to say that they are acutally good programmers. They can receive a degree, and they can have certifications in a bunch of different areas, but that doesn’t acutally say anything towards your skills as a programmer.

I liken a certificate as simply saying that you knew enough to pass the test at the time, it doesn’t say anything about your current skill set. I used to have a Red Cross CPR certification several years back, yet in all honesty I wouldn’t have trusted myself to preform it as I was trained to. That isn’t to say that everyone is going to be this way, I know several other people who I am sure they would be able to preform CPR correctly and without hesitation. But there is the critical difference, the certificate said something that wasn’t necessarily always going to be true. Granted this is a problem with all sorts of areas, but at least a professional license says that a person isn’t just trained in this one technology or this one particular area of a field but is a knowledgeable about the entire career field. A bar exam doesn’t just cover the particular field of law a lawyer is practicing for instance a patent lawyer takes the same bar exam a real estate lawyer does.

This is creating a real problem in the computer science field in different aspects. The one though that I see as the most important and that I want to talk about is the outside view of computer scientists. This has roots in a problem of messages sent through the media, which generally only portrays programmers as hackers and people who can take over any system within five minutes or sometime during the commercial break. Which granted it makes for good drama and plenty of other fields have bad portrayals of their particular field, crooked cops, unethical lawyers, and bad doctors. However how many crooked cops do you see in comparison to good cops? Now compare that same ratio to hackers and just plain programmers? Or rather just try to think of a plain programmer who just does their job, beyond a certain Bond girl, I can’t think of any and even that is a bit of a strech.

However this myth that all programmers are bent on taking over the world and with technology becoming ever more important in our everyday life, there is a fear that I have seen being expressed by more and more people. The fear of unethical programmers potentially developing a malicious program that say sucks off those fraction of a penny in interest to controlling the world’s energy. Bruce Schneier, a renowned expert in security, has a valuable theory here, that the preceived security and acutal security are both very important. That is, it doesn’t matter how safe you actually are if you don’t feel safe on the same basis if you feel safe and you aren’t that is also a bad thing. This is what I feel creates the problem in the average person’s eyes the precived security and actual security are vastly different in terms of technology.

The reality is that there really is no system that is designed to hold programmers accountable for their actions beyond the criminal system. Which there are inherent problems with the justice system, simply in light of the fact that technology changes so fast and well the political system is not exactly known for it’s speed. Granted at the same time there is a lot to be said for a system that is designed with flexibility in mind, technology given it’s pace of innovation needs a flexible system overlooking it. I don’t know if any professional organization could adequately confer a license on computer scientists that wouldn’t be out of date within 6 months, especially with the current state of evolution on the web.

I think this is a very tricky area but a question of confidence needs to be answered, for both the profession and for society as a whole to not have a sense of fear towards technology and computer scientists.