Announcing Learneroo.com

I’ve written many posts on Zappable about education and technology, but I was always interested in doing more than just writing. I recently began working on such a project, one that will let people learn in a more interactive manner:

Learneroo.com – Learn by Doing

It’s still a very early version, but hopefully it will improve quickly! Since I’m now trying to practice much of what I preached, I copied some posts from here  to the Learneroo blog. Finally, I entered Learneroo into a contest from Elance.com, please vote for it (it’s just a couple clicks):
Vote for Education

The Automated Store – Chart

In previous posts, I wrote about the creation of an automated store machine in the 1900′s. In the chart below, I have jumped ahead to when the actual machine is first installed. I think this chart can help people get an overview of certain concepts by seeing them in physical form.  I created the rough sketch below with a pencil, but when I get better drawing software I will be able to create a digital version, which will be updated with color and more.

The Web Framework from a Century Ago

Machine Overview
While initially the main purpose of the machine was so the store owner could track inventory, many new features were added. This picture focuses on customers who which to view the inventory/catalog information themselves.
The customers enter their information by punching holes into a “HTTP” card they are viewing. This card then goes into the Router which cuts it up and sends it to the appropriate controller. For example, if a user asked to views product #43, the router will pass “43″ to the Product Controller’s viewing arm.
The controller will then send this information to the Active Record Player, which will send back the relevant data, as seen in the previous post. In this case, it would send back a copy of product card #43. The controller’s Action View will then take over and combine the data with the relevant templates to create a page. This will involve cutting up the data-card and inserting the information into the correct location on the “view product” catalog page. The page will then be combined with some general headers and some styling layers from the assets box, and then the whole thing will be pressed into a single page and sent back to the customer.

The Automated Store – Accessing Data

This is part two in a series about a mad engineer and the machine-framework he created in the early 1900′s. Any resemblance to modern frameworks, living or dead, is purely coincidental. 

In the first post of this series, the store owner, Jim Blackford, outlined the basic requirement he would need for Version 1 of the Automated Store Machine. We’ll quickly review his requirements:

Blackford: Well, I want to keep track of my inventory. So I guess it should let me create inventory records and store them well. The I should be able to access them at any time to read them, update them, or delete them. And it should keep track of how much inventory I have, and let me modify that when I get a new delivery or sell an item.

Dr. Hanson: Crud, that’s a lot of work. But me and my assistant can get started on building that machine. We’ll keep you posted on our progress…

Part II - In The Hanson Basement.
Dr. Hanson discusses his plans with his assistant, Dave Kemp. 

Dave: What up doc?

Hanson: We have a new project. I met with Mr. Blackford, and he needs a machine to track his inventory.

Dave: An inventory machine? How will that help you achieve world domination?

Hanson: This machine will not just be focused on tracking inventory. For Mr. Blackford’s own sake, we will need to make it extendible so we can add new components to help with his store. But my plan for this machine is greater than that. Once we complete this machine, we will look at the principles of its design and use them to build other machines for all sorts of purposes. Ba-Ha-Ha!

David: How will you do that?

Hanson: We will need to work out the details. But we will use solid engineering patterns that will then be able to used when building other machines. After all, what is the purpose of any calculating tabulating machine? It needs to store and retrieve data in an easy fashion, and perform simple operations on the data. Once we have the right design worked out, everyone will want our machine! They will no longer need to have their own Personal Hodgepodge of Pasta built from scratch, they will be able to start out with solid architecture.

Construction Begins – Accessing data (rough version)

rails-toon-1

Software security, College Costs

The US government warned about using Java due to a vulnerability that was being exploited to install malicious software. Oracle has since released a ‘patch‘, but people don’t really need to run Java applets that much anymore. I don’t think these vulnerabilities are relevant to other software that runs on the desktop or phones.

Also, an exploit of Ruby on Rails sites was published last week. While a patch was released, some sites won’t update quickly enough. This  will probably cause an increase of hacked websites as hackers find vulnerable websites. I wonder if it was really necessary for people to publish the vulnerability so quickly.

College costs have been rising at a ridiculous pace, despite the poor economy and their poor results. A group of people create an infographic on this topic and sent me the link to share: College isn’t cheap. It shows how many college graduates are stuck with school-debt, but cannot find jobs. I think there are big problems with getting people into so much debt when there’s no guarantee their degree will help them.

Meanwhile, the Wall Street Journal reports that colleges have finally begun cutting tuition increases and offering more scholarships. This means they need to cut back on some programs. However, there are much greater changes that will need to happen, such as greater use of technology in education.

The Automated Store – The Plan

This is a the first post in a story about a mad engineer and the machine-framework he created in the early 1900′s. Any resemblance to modern frameworks, living or dead, is purely coincidental. 

Dr. Victor Hanson was a brilliant mathematician and engineer, though a tad crazy. He had invented a machine that could perform various calculations, but it had not sold well, and anyways he wanted to create something more ambitious. He decided to take out an ad in a newspaper to see if anyone needed his services:

newspaper-ad

Jim Blackford had been running his store without too much problems for some time, but he was getting a bit bored dealing with the same tasks every day.  He wished he had some way to automate some of these processes. One day, when reading the paper, he noted an interesting ad…

A week later, in a restaurant in New York:

Blackford: Dr. Hanson, I presume?

Hanson: Yes, nice to meet you. I can now tell you about my automated machine services. I built machines that can calculate and tabulate numbers, but I’m thinking of branching out into other areas. What kind of machine do you need?

Blackford: I’m tired of dealing with the same manual tasks while running my store. It would be nice if a machine could just take over various operations for me. Though I’m not sure how that would be possible considering our pre-digital age and all.

Hanson: Nothing to worry about, I cans create analogue machines.  Now what specific requirements do you need in your machine?

Blackford: Well it would be nice if I could receive some automated help  to keep track of all inventory, process transactions, display brochures to customers, and maybe hand them products from higher shelves too.

Hanson: Wo, not so fast! Let’s focus on the most essential features you need first and later we can iterate on that. What is the most basic important thing you are looking for when shopping for automated store-running machines?

Blackford: I guess some way to keep track of all my inventory.

Hanson: OK, so let’s focus on that. What exactly do you want the machine to do?

Blackford: Well, I want to keep track of my inventory. So I guess it should let me create inventory records and store them well. The I should be able to access them at any time to read them, update them, or delete them. And it should keep track of how much inventory I have, and let me modify that when I get a new delivery or sell an item.

Hanson: Crud, that’s a lot of work. But me and my assistant can get started on building that machine. We’ll keep you posted on our progress…

Stay tuned for the next post where Dr. Hanson builds a first version of his machine. You can follow me on Twitter or RSS

Lottery Ticket Investing

In a previous post, I listed a bunch of Startup Ideas, but I didn’t go into any details about them. In this post I will discuss one of the ideas – Lottery-ticket investing. I decided to start from one of the less realistic ideas, so I can move to more realistic ones in later posts. While writing this post, I realized there were even more issues than I initially thought.

Q: So why are you publishing it?
Well I thought it might still have some potential somewhere, and I can use a Q&A format to discuss its issues. And it touches on some questions in economics and psychology.

Lottery-Ticket Investing

Problem: People buy lottery tickets despite the poor odds, i.e. their negative expected return. They do this because they’re excited by the prospect of large winnings, and may not evaluate the odds correctly. But there should be some way to let them get tickets that offer a large prize, but still have an overall positive return.

Solution: Create an Investment Lottery: Invest the lottery ticket money in stocks, which historically have a strong positive return. Use a investing method with high-voltaility so there is a chance of large payouts.

Q: But how would you distribute the money?
One way would be to have an actual lottery at the end of the investment period and give the money to specific winners. However, this is too similar to a regular lottery, so the state governments wouldn’t allow it. Instead, one could give the actual returns of each ticket to the buyer. This way people who get or pick the right tickets can win big.

Q: So you’re basically just selling people stocks.
Yes, these tickets would let people easily invest small sums in a high-risk but high-reward manner.

Q: That sounds pretty boring.
It’s true that people are motivated to buy because of the hope of getting a huge prize, but people also buy tickets for smaller prizes. So one would need to examine where the cut-off would be. For example, people might be willing to pay $10 for a ticket that could potentially win $1000. If they here about one winner who won a huge prize, they might get excited enough by that possibility, even if it rarely happens.

Q: But how would you ever get 100x returns on investments in a short time-span?
There are a number of possibilites that one could explore. Perhaps there’s some way to do it with margin-investing, or with some variety of that. For example, the lottery stock tickets could insure other investors against losses, so the ticket-holders take larger losses or bigger gains if the stock has a large change. This will let the ticket-holders magnify their risk and provide insurance to safe investors.

Q: That doesn’t sound like a very good idea, and people can insure against losses without any lottery involved, e.g. by buying put options.
OK, so that idea might have some flaws. But there are risky investments that one could find, such as certain junk bonds. In addition, it will soon be legal for ordinary people to invest in small companies. They could serve as a very-high risk investment that could have extremely good returns. By making it easy for people to buy “Investing Tickets”, they can be encouraged to invest in a system that has good overall returns instead of losing so much money in the lottery. While they might not make it rich this way, they’ll have better long-term odds than in the lotto.

A Map of Resources for Learning Ruby

My previous chart of resources to learn programming was well-received, but some people suggested additional resources. I decided I would try a new format to display more resources for learning programming. It is a map of different resources, which are ordered from left to right based on experience. You can choose a resource from each vertical, and then move to the right as you gain experience. A sample path is shown in the image. It would be interesting to see how these kind of charts can be improved to quickly display relevant information about each item. Click on the image below get a clickable image map, an SVG should be coming soon.

Map of ruby resources

Job Market for Programming Languages

One consideration when choosing a programming language is the demand in the job market for people who know that language. I did some searches on different job sites to see what skills are in demand. Below are the results from Monster.com for jobs that tagged specific languages as skills. For more information, I created a Google Spreadsheet with job data from different websites.

Java is used extensively in big companies, so it has the most results. Javascript is the only language of front-end development, so it takes the second spot. PHP is clearly less popular than it used to be, while Python and Ruby vary by website.