Frazzled
Nov. 11th, 2009 | 02:19 pm
mood: stressed
music: "So Much Love To Give (Morjac Remix)" by Freeloaders
posted by:
zimzat
Yesterday and today I've been working with our client's transaction system since today is a bank holiday. Yet despite the time spent on that, I still attempted to go to the bank today to cash a check.
I need cash for a taxi to the airport tomorrow but unfortunately their ATM wasn't accepting withdrawals either. Oh well, I still have a small stash just for cases like this.
Link | Leave a comment | Add to Memories | Tell a Friend
Return of the City State?
Nov. 11th, 2009 | 08:00 am
posted by:
natfriedman_rss
A city-state is a city which is also a country, having its own autonomous government.
Ancient Greece had a lot of city states. Hong Kong is a modern city state. China has benefited a lot from Hong Kong, setting up economic “free zones” in several major Chinese cities to emulate the Hong Kong model.
Today our societies are massive tapestries of interdependence. A lot of our infrastructure is naturally centralizing. Noxious coal burning power plants need to be located away from urban centers. Concentrated industrial farming precludes diverse zoning. And TV has homogenized the culture and language of large swaths of the planet.
But distributed energy, farming, and manufacturing technologies are coming. Rooftop solar, small-scale nuclear power, desktop manufacturing, recycling warehouses, high-rise urban farming.
It’s lovely to imagine a new era of independent city states, each with its own cultural and economic values. Each of these cities will be free to experiment with its own way of life, and to discover new and better ways of structuring a society. The Internet has allowed like-minded individuals to find each other and to form cliques, and modern transportation technologies make migration more inexpensive than at any time in human history.
People will assemble in the city states that best fit their own values and dreams, and cities will compete to attract the best people. This has already been happening in the US with its hyper-mobile population. People move to places with specific values like Silicon Valley or Portland or New York. Books like Who’s Your City encourage us to choose our home city based on what kind of person we are. City identity is strengthening.
Cities with different identities have different laws, economic models, and cultures. This is already true today: Gavin Newsom allows gay marriage in San Francisco and Bloomberg bans trans-fats in New York. The question is whether new technologies will make it feasible for cities in the future to have even greater autonomy and freedom to define their own rules of civilization.
Link | Leave a comment | Add to Memories | Tell a Friend
Computer Frustration
Nov. 10th, 2009 | 08:53 pm
posted by:
natfriedman_rss
58%
That’s the portion of computer experts who report getting helpdesk calls from friends or family at least once a week, according to the survey I ran on twitter the last two weeks.
My survey was not very scientific (163 samples) and definitely has a selection bias (most people who answered use Linux in one way or another, for example, although that doesn’t mean their friends and family do).
But that doesn’t change the fact that 58% is a big chunk of pain.
And a big opportunity for people who want to make computers simpler and more reliable.
What sorts of issues prompted computer novices to call their computer-expert friends and family for help? I went through 163 free-form responses in a spreadsheet and tagged them all to find the trends.
Here are the top 15 issues, in order of frequency (percent of issues mentioned):

Skype setup came up surprisingly often; I guess a lot of people are installing it lately. I was distressed to see how common printing issues still are, and curious to note that five different people reported that their friends and family cannot attach files to emails.
About a third of these issues could be addressed by webbook efforts like ChromeOS and litl, although the webbook model will probably raise new issues as well.
It will be interesting to see where Internet/WiFi setup, currently #1 with a bullet, ranks five years from now as the wireless infrastructure matures.
I also asked whether computer frustration has waxed or waned among family and friends over the last five years. There was some disagreement on this.
The top theories for a decline in computer frustration were: increasing skill and comfort with computers (25%), and “they switched to a Mac” (23%). Some people also noted that software quality has improved (13%).
But on the other hand, people are doing much more with their computers, and there are many more computer users.
So your parent who five years ago struggled to do email is now comfortable with email and struggling with online banking or video editing.
Some people also cited an increase in the complexity of computer software.
Computer frustration is not limited to our less-skilled friends and family. Even though 90% of the survey-takers consider themselves either 4/5 or 5/5 on the expertise scale, 32% of them report getting frustrated by their computer at least once a week.
|
Rate your computer expertise.
Novice Expert |
How often do you get frustrated trying to do something on your computer? |
The list of issues which frustrate experts was more varied and detailed. A few key things came up again and again, however: bugs, bad docs, poor user interfaces, and interoperability/compatibility issues. Not the same as the novice list.
I was hoping to find a strong correlation between operating system use and personal frustration, so I asked people which operating systems they use. They could select multiple operating systems, and 61% of respondents did.
The sample sizes were small, but there was a trend. Here’s the percentage of experts who claim to be frustrated with their computers at least once a week (sample size in parentheses):

I also asked people for their age, and we can make the groundbreaking observation that younger people don’t get frustrated with computers as much as older people, or at least they don’t admit to it. Here’s the percentage of experts who claim to be frustrated with their computers at least once a week:

So what does all this mean?
Mostly I see a huge opportunity. People are so frustrated with computers that products and services that make things simpler and more reliable have a huge market.
Best Buy has figured this out. They don’t break out Geek Squad revenues anymore, but it’s safe to say that they’re pulling in well over a billion dollars a year helping people with their computers (at a healthy 10-20% margin – very decent in Best Buy’s universe).
But that’s just a small piece of the pie. Most people still lean on the nerd in the family. As one commenter on my survey wrote,
Not only am I contacted daily, everybody expects the help that I provide to be free. Why is it that most people feel that computer people love to work on computers, therefore, they do not mind helping me just this one time for free? If they experience an electrical issue, or clog their toilet, do they expect the electrician or plumber to fix their problem for free? No they gladly pay them and move on.
That probably won’t last.
(You can view or download the raw data.)Link | Leave a comment | Add to Memories | Tell a Friend
(no subject)
Nov. 9th, 2009 | 03:33 pm
posted by:
bad_lcuk in
php
I wasnt too sure where to go! I am a bit stuck. I am trying to write a little
I am just trying to use a php script to save information from an html form to a text file. I am using my universities provided server for my three little files. My form html page, the writetofile.php it calls, and the data.txt file where id want my data to be saved. It seems no matter what i do, no matter how many examples i look at, i cant seem to get it to write to my txt file.
( Code under the cut! )
Link | Leave a comment {14} | Add to Memories | Tell a Friend
Motorcycle Run to Furnace Creek
Nov. 9th, 2009 | 01:51 pm
mood:
busy
posted by:
zimzat
On Saturday several co-workers and other friends went on a motorcycle run to Furnace Creek. The original plan was to Scotty's Castle but at the last minute they decided on a shorter destination. We met up at work then headed out. On the way back we went through Artists Drive up that way; really windy mountain road. Once we got back to Pahrump we decided to split up from there. Some of us still road together until we finally got close to Las Vegas and finally headed separate ways. The route reflects an indication toward my final destination on the north west end of town.
Overall it was a lot of fun. I got to really open up the motorcycle for once. In some cases it was really fun, and others very frightening.
Google Map of Motorcycle Run route to and from Furnace Creek
Link | Leave a comment | Add to Memories | Tell a Friend
Trying to get the hang of PDO
Nov. 9th, 2009 | 10:12 am
mood:
totally confusing myself
posted by:
julisana in
php
Lisa's back with her super dumb question time!
I'm trying to get the hang of PDO, and I understand that it'll be easier for my DB Connections in the future, but there are just some (probably basic) things that I'm getting stuck on.
Let's say I have this in my class ( Click for code snippit )
The goal is to 1) pull the customer's login information for $network out of our database and display it for them on the page (we really try and dumb things down for them), and 2) set $username, $password, and $profile_url, which are data members for my class, with their initial values.
Would the values bound $username, $password, and $profile_url persist after the while loop has ended? Or because of the use of bindColumn, would the values be trashed? Or do I even need the while loop at all? Some of the things I'm reading seem to conflict as to whether or not I need it.
Thanks again!
Link | Leave a comment {2} | Add to Memories | Tell a Friend
Teach yourself bengali
Nov. 5th, 2009 | 08:37 am
posted by:
bengalibangla in
kolkata
Link | Leave a comment {6} | Add to Memories | Tell a Friend
Teach yourself bengali
Nov. 5th, 2009 | 08:05 am
posted by:
bengalibangla in
bangladeshi
Link | Leave a comment {1} | Add to Memories | Tell a Friend
A brief history of time got me thinking about soul...
Nov. 4th, 2009 | 06:18 pm
mood:
thoughtful
posted by:
samsat_iit
According to what I understood of relativity, one of the claims Einstein made was light travels at a finite speed and nothing travels faster than it and that includes all the chemicals and electrical signals in our body which help us perceive things. What that implies is, there is a finite delay between what we perceive through our senses and the processing of that information in our brain leading to a reaction.
Having said that, let's try to differentiate between life and death. Scientists have recorded that there is no change in the material composition in the body of an organism before and after the instant it dies. So all that differs between an alive and dead organism is the soul or consciousness which activates the senses of the body, breathes life into them and helps them perceive. We could also define consciousness as the difference between a dead and alive body. In other words, when one dies the consciousness disappears, the question I try to answer is whether it ceases to exist, or just leaves the body and has an independent existence of it's own.
Assuming life means that senses and brain are active, life also means consciousness, so we should have sense perceptions till the moment of death (the exact moment when consciousness departs the body). Now let's concentrate on the perceptions which got absorbed by the senses just early enough before the moment of death, that they reached the realm of consciousness to be converted into reaction thoughts, reactions etc, at the very moment of death. What does consciousness do with it, are they lost? They obviously can't be converted to physical reactions because the body is already dead, but that's contradictory because life means being able to perceive and react . One explanation for this would be that the body would have died moments earlier than consciousness, because one has to be conscious at the moment of death. If that's the case the, consciousness thrives irrespective of the body, at the very least momentarily.
The same argument could be applied to birth, but then birth is a slow and complicated process, death is simpler and can be instantaneous.
Just realized, putting forth theories where there is no one to critique them is fun, especially when one has not considered the people in coma in his theory!
Link | Leave a comment | Add to Memories | Tell a Friend
I am speaking @ FOSS.IN/2009
Nov. 4th, 2009 | 10:32 am
posted by:
prashanthudupa
http://foss.in/news/foss-in2009-first-s
Link | Leave a comment {2} | Add to Memories | Tell a Friend
Idea: Book recommender
Nov. 2nd, 2009 | 06:53 pm
posted by:
natfriedman_rss
Website idea.
You take a picture of your bookshelf and upload it to the site. The site OCRs all your book spines. Once it has data from enough users it can recommend books that you might like.
This is better than Amazon recommendations because it will catch all your books, not just the ones you bought on Amazon.
You can make money through affiliate links to Amazon, though.
(bookscanr.com is free as of this writing)
Link | Leave a comment | Add to Memories | Tell a Friend
Mixed subjects: Vacation; Car problems; Reality; Computers; Movies; Reading
Nov. 1st, 2009 | 07:19 pm
mood:
blank
music: "Boys Of Summer" by DJ Sammy
posted by:
zimzat
Speaking of car problems, my car is out of commission again. It sounds like it is starting but just won't catch to actually run. I'll probably have to call AAA for a tow to a repair shop (which I just signed up for a few weeks ago). It's very unfortunate timing as I haven't been shopping in a few weeks so my food supplies are getting a little low. On the plus side
While at the poly meetup this afternoon it hit me that I'm going to be 24 next year. That's six years past 18 and only six more until my soft deadline to visit Europe. Another five after that to my hard deadline to visit Japan. I'm fulfilling my fears from when I was 15 and 16 of not getting things accomplished.
Thursday night I bought a bunch of computer parts to rekindle my previous attempt at making a desktop computer. Motherboard, CPU, GPU, Memory, and PSU. I even bought a new bigger LCD Monitor and a little multi-touch tablet to play around with (inspired by the 10/GUI video). Most of the parts come in Monday (oh, wait... I don't have my car.... ouch)
Friday after work I saw The Vampire's Assistant and Astroboy. Both were very enjoyable and fun, even if the first had its share of somewhat serious moments. I'm kind of curious if it's based on a book and if there is a sequel or will be a sequel movie. It has all the stuff for a good sequel too. I wouldn't mind seeing the continuing stories of Astroboy either.
I've been re-reading the Honor Harrington series again. I converted some electronic formats from LIT to EPUB and imported them to my Android book reader (Aldiko). It's very convenient for those times when I have a few moments to wait and not too battery draining either. I want to get Mercedes Lackey's books in electronic format so I can read those without carrying around the paper version. I recently bought "Foundation" (A Novel of Valdemar) except I've barely cracked it open. Why? Because it's easier to pull out my Android phone which I always carry around with me than to remember to grab the book or get up to read a few pages before falling asleep. (I have found an EPUB version for another 7.99$ as the soft cover version I already purchased. I'm going to hold off on purchasing it just yet, but probably will once I get done with the second Honor Harrington book)
That's enough for now.
Link | Leave a comment | Add to Memories | Tell a Friend
Free tile sayings
Nov. 1st, 2009 | 03:36 pm
mood:
contemplative
posted by:
zimzat
*
I think, therefore I'm single
I like this one because it describes my current situation, but I don't expect it stay true forever. This is why I don't want to get any sort of tattoo simply because I don't expect things to stay interested in everything very long.
*
Only visiting this planet
In the past I've often been thought of as an alien. People would look at me funny when I did something unusual or explained how I thought. It's an inside joke to just myself really, though.
Choices, choices.
Edit: He let me keep both. Cool.
Link | Leave a comment {2} | Add to Memories | Tell a Friend
Booting Linux Kernel 2.6 on Emulated ARM machine on X86
Oct. 31st, 2009 | 03:11 pm
location: India, Bangalore
mood: awake
posted by:
abhay2101
The components
To build our emulator we will need the following components:
* Hardware emulator (we’ll use Qemu)
* Minimal Linux root file system containing a C library and Busybox
* The Linux kernel
Installing Qemu
As first step, we will download and install the Qemu emulator. Qemu is an Open Source machine emulator supporting seven target architectures, including x86, MIPS, Arm and PowerPC, creating by Fabrice Ballard.
Depending on the Linux distribution you use as a workstation, you might be able to use the native package management system of the distribution to get do that.
For Debian, Ubuntu and derivatives:
$ sudo apt-get install qemu
For Fedore and derivatives (as root):
# yum install qemu
For other distributions lacking a Qemu package or those wishing to obtain the very latest package. Note that the “i386″ label refers to the host running the emulator and not the target platform:
$ wget http://bellard.org/qemu/qemu-0.9.1-i
$ cd /
$ sudo tar zxvf qemu-0.9.1-i386.tar.gz
Or, as root:
# tar zxvf qemu-0.9.1-i386.tar.gz
Alternatively, you can download the sources and build the emulator from scratch. This has the added advantage that you can later adapt the emulator to more accurately reflect your actual hardware:
$ wget http://bellard.org/qemu/qemu-0.9.1.t
$ tar zxvf qemu-0.9.1.tar.gz
$ cd qemu-0.9.1/
$ ./configure
$ make
$ sudo make install
Or, as root:
# make install
Kernel and file system images
The Qemu emulator we have just installed provides a virtual machine mimicking our target hardware. To actually get Linux running on this virtual machine however, we will need to download an image of the Linux kernel and a suitable root file system image for our target architecture.
Luckily, the Qemu project provides several test images for several architectures supported by Qemu that can be used to get a fast start with Qemu as an embedded Linux system emulator.
Go to the Qemu project download page and choose one of the Qemu test disk images suitable for your embedded platform and download it to your Linux host (in this example we use arm):
$ wget http://bellard.org/qemu/arm-test-0.2.ta
Now extract the image:
$ tar zxvf arm-test-0.2.tar.gz
$ cd arm-test
Booting Linux on the emulator
Start up Qemu with the following command line, adjusting the architecture name, kernel file name and root file system image name according to your specific architecture (again, we use arm in this example):
$ qemu-system-arm -kernel zImage.integrator \
-initrd arm_root.img -tftp / -redir tcp:9999::9999
The above command line starts Qemu in system emulation mode, booting into the kernel image zImage.integrator while loading into the virtual machine RAM the arm_root.img file system and instructing Qemu to make your entire host root file system available for access via TFTP from the emulated machine (more on this ahead).
You should now be seeing a window similar to the following in which the emulated LCD display of the board is shown:
Qemu screenshot
Qemu screenshot
You can log-in with the user “root”. No password is required.
Transferring files to and from the host
The emulator and file system are set up to automatically configure a virtual Ethernet interface in the virtual machine with an internal IP. Through that virtual network interface, the emulator is set up to enable transferring of files to and from the host machine file system using the TFTP protocol.
For example, the following command will copy the file “/home/gby/hello_emu” from the host file system to the current directory inside the emulator:
$ tftp -g -r /home/gby/hello_emu -l hello_emu 10.0.2.2
The following command will copy the file “/root/test.log” from the emulator to the host file system directory “/home/gby/”:
$ tftp -p -l/root/test.log -r /home/gby/test.log 10.0.2.2
In addition, you can use the “wget” comment to transfer files using the FTP and HTTP protocol to the emulator from any compatible server accessible in the network:
$ wget http://codefidence.com/some/file
Qemu supports numerous other way to interact with the host and it’s environment, including bridged virtual network interfaces (as opposed to the default NAT used in the example above) which enables both using NFS to communicate with the host as well as remote debugging from the host, VLAN support, exposing the host file system as a FAT file system, mounting disk, flash or CDROM images from the host file system and even using USB devices connected to the host. For more information on these advanced options, please refer to the Qemu user manual.
Debugging user applications
Using the GNU debugger GDBserver agent, we can debug applications running inside the emulator using the GDB debugger on the host. To do this, first copy (using one of the methods outlined above) the “gdbserver” executable to the emulator. Note that you will need a “gdbserver” executable which was built to run on the target architecture (such as Arm, in the example above) and not on the host!
Also note that since the test images do not contain debugging symbols for the system libraries, you will only be able to debug statically compiled application using them. This limitation can be removed by building your own kernel and file system image (see below for more information on this topic).
$ tftp -g -r /home/gby/src/gdb/gdb/gdbserver/gdberver \
-l gdbserver 10.0.2.2
Next, assign the gdbserver binary execute permissions:
$ chmod u+x gdbserver
Now, run the gdbserver agent, instructing it to use port 9999 (which have redirected to the emulator using the qemu command line) to listen for connections from the debugger:
$ gdbserver 0.0.0.0:9999 /bin/myprog
Or, if you wish to attach to an already running program, use:
$ gdbserver 0.0.0.0:9999 --attach 1234
Finally, run the GDB debugger on your host and instruct it to connect to the host local port 9999 (which the emulator is redirected to the virtual machine):
$ arm-linux-gdb target/bin/myprog
GNU gdb 6.6-debian
Copyright (C) 2006 Free Software Foundation, Inc.
...
(gdb) set solib-absulote-prefix /dev/null
(gdb) set solib-search-path target/lib/
(gdb) target remote 127.0.0.1:9999
Debugging the kernel
Using the Qemu emulator to debug kernel code is quite straight forward as Qemu incorporates a minimal GDB agent as part of the emulator itself. To debug the Linux kernel running inside the emulator, add the “-s” parameter to the command line used to start Qemu:
$ qemu-system-arm -kernel zImage.integrator \
-initrd arm_root.img -tftp / -redir tcp:9999::9999 -s
Now when the emulator will start, it will wait for a debugger connection on the default port “1234″ (or a different port specific with the “-p” option) , before proceeding with the boot. Once the emulator has started, you can debug the Linux kernel running inside using GDB on the host:
$ arm-linux-gdb linux/vmlinux
GNU gdb 6.6-debian
Copyright (C) 2006 Free Software Foundation, Inc.
...
(gdb) target remote 127.0.0.1:1234
You can use GDB as you normally would. For example, type “cont” to launch the kernel:
(gdb) cont
Building your own kernel and file system images
So far we have seen how to use the Qemu emulator with the test kernel and file system images that are available on the Qemu site. To make full use of the emulator, we can create our own custom kernel and file system images that will better reflect the real target we are trying to develop for.
First, query Qemu regarding which boards it can emulate for you chosen architecture. Replace “arm” in the example above with one of: mips, x86_64, ppc or sparc. For i386, simply use “qemu” as the command:
$ qemu-system-arm -M \?
Choose the board that most closely resembles your real target environment. Note that you can add support to Qemu of your specific true board. This requires some programming though and we shall not cover it in this tutorial.
The creation of kernel and file system for our emulated target is no different then doing the same task for a real hardware and in fact. Many tools are freely available to accomplish this task. In this example we shall use the Buildroot framework. Buildroot is a set of make files and patches that makes it easy generate a cross-compilation tool chain and root file system for your target Linux system using the uClibc C library:
First, we shall download the latest Buildroot release from the project web site and extract it:
$ wget http://buildroot.uclibc.org/downloads/s
$ tar jxvf buildroot-snapshot.tar.bz2
$ cd buildroot/
Next, let’s configure Buildroot for our chosen target board:
$ make menuconfig
You will be presented with a menu enabling you to pick your architecture, sub-architecture, specific board to build for, GCC and uClibc versions and related details. For each entry of the configuration tool, you can find associated help that describes the purpose of the entry.
At minimum, the following configuration options needs to be set:
* Target Architecture option – choose your target architecture (e.g. arm.)
* Target Architecture Variant option – chose a specific model of the architecture (e.g. arm926t.)
* Target options menu – if the target board you wish to emulate (that is supported by Qemu) is listed, turn on support for that board (e.g. enable the “ARM Ltd. Device Support” menu and inside it choose the “Integrator arm926″ option).
* Toolchain menu – turn on “Build gdb server for the Target” option and if you would like to test C++ programs on the emulator, also the “C++ cross-compiler support” option.
* Target filesystem options menu – enable the “cpio the root filesystem” option and choose the “gzip” compression method. You may also request the file system image to be copied to a specified directory once it is generated here.
*
Kernel menu – choose the “linux (Advanced configuration)” option and pick one of the offered Linux kernel versions of the list offered. Also, select the “zImage” binary format. Here you can also specify a directory to copy the generated kernel to.
In addition, you will need to supply a proper Linux kernel configuration file. Note that you extract the kernel configuration configuration file used to generate the kernel supplied as part of the test images by issuing the following command when inside the emulator:
$ zcat /proc/config.gz > linux.config
Alternatively, Linux provides specific kernel configuration for optimal use with Qemu for some architectures. Run the following command to inspect the default kernel configuration included in a specific Linux kernel version:
$ make help
When you’ve done configuring Buildroot, exit the configuration utility (making sure to OK saving the changes) and type: “make”. Buildroot will now download all required sources and build your new kernel and file system image for you. You should now be able to run the emulator using the kernel and file system image you have just created. Use the file name and path of the zImage binary as a parameter to Qemu “-kernel” option and the file name and path of the file system image to the Qemu “-initrd” parameter, like so:
$ qemu-system-arm -kernel zImage \
-initrd rootfs.arm.cpio.gz -tftp / -redir tcp:9999::9999 -s
Link | Leave a comment | Add to Memories | Tell a Friend
Startup Visa
Oct. 31st, 2009 | 01:35 am
posted by:
natfriedman_rss
In 1999, when Miguel de Icaza and I founded Ximian, one of the first challenges we faced was getting a visa for Miguel so he could come to the US from Mexico.
Miguel was not eligible for an H1B visa — the most common type of immigrant work visa — because he did not have a college degree. And H1B wait times were long and unpredictable. Foreign programmers were flooding into the US, and despite several emergency extensions to the H1B quota, some people were getting stuck in line. The fact that Miguel was co-founder of a funded startup was meaningless to the INS.
Our lawyers suggested various things. One idea was to create a subsidiary in Mexico, and to employ Miguel there. After a year, he could move to the US under an L1 visa, an intra-company transfer.
Needless to say, a one-year delay and the expense and complexity of setting up a Mexican subsidiary to satisfy immigration laws didn’t appeal to us. We had raised about $100,000 from friends and family, and we didn’t want to spend a single day or dollar on anything but building a great product.
Besides, it made no sense! We had investors eager to put millions into our company so that we could hire dozens of programmers and, hopefully, create a wildly successful American software company. Should we spend that money in the US or somewhere else? Why was the government making this so hard?
Eventually we did get Miguel into the US, on a strange, little-used visa called the O1. The O1 is generally given to top-tier classically trained musicians, professional athletes, and Nobel Prize winners. Miguel already had a lot of very visible accomplishments, and had appeared in a lot of newspapers and magazines. TIME magazine had named him one of the top 100 innovators in the world. So we put all of these clippings together and mailed them to the INS. Thankfully, they issued the visa. But the O1 is a nuisance — immigration officers looked at him strangely whenever he entered the country, and he had to go back to Mexico to renew it at the US consulate every 6 months.
I’m glad that we found a solution for Miguel, but the O1 is not a viable option for most startup founders. And with H1B rationing much more stringent now than it was 10 years ago, things are even tougher for would-be immigrant entrepreneurs.
Which is why I have been extremely energized by the growing movement in the startup community to lobby for the creation of a Startup Visa, which would be issued to any founder owning more than a threshhold amount of a VC-funded, accredited startup.
This idea was (I believe) first put forward by Paul Graham in his essay, The Founder Visa (which you can watch him typing here – very neat). The torch has since been taken up by Eric Ries, Brad Feld, Dave McClure, Shervin Pishevar, and others. The StartupVisa.com blog was put up to start organizing the energy and enthusiasm around this idea. The current proposal is to modify the EB-5 visa, which allows immigration for wealthy foreign investors who put at least $500,000 of their own money into an American company, to also cover foreign founders.
I hope and believe this movement will get a lot of support from the software world. There are too many high-profile examples of successful tech startups that were founded by immigrants. In fact, a study from Duke University and UC Berkeley found that 25% of US technology companies founded between 1995 and 2005 had at least one key founder who was foreign-born. Sergey Brin, cofounder of Google, is a native of Moscow. Charles Wang, the co-founder of Computer Associates, was born in Shanghai. Pierre Omidyar, eBay founder, is French-born. Most of the original PayPal founders were non-Americans. Are these the kinds of companies we want to chase from our shores?
The immigration debate today is centered on the concept of “stop loss.” The argument goes like this: foreigners who come to the US are taking our jobs. We have to stop them.
Unfortunately, this is an argument that considers only downside. But America was founded on the upside of immigration. What would happen if we brought thousands of new entrepreneurs into our country, each one of them already backed by accredited venture financing? How many tens of thousands of new American high-tech jobs would be created, overnight?
I’m not sure what the next steps are for this movement, but in the next several months I’m going to look for opportunities to support this initiative in any way I can.
Update: I’ve started a list of American startups with immigrant founders. Please help me fill it out!
Link | Leave a comment | Add to Memories | Tell a Friend
GPL fine print
Oct. 30th, 2009 | 09:48 pm
posted by:
natfriedman_rss
It being a Friday night, I’ve been rereading version 2 of the GPL, and noticed some things that I’d forgotten about. Perhaps you’ve forgotten too.
For example, did you know that if you distribute a modified copy of a GPLv2′d program, then:
you must cause the modified files to carry prominent notices stating that you changed the files and the date of any change.
Surprised? Me too. I’m willing to bet at least one person reading this has unknowingly violated this part of the license.
Here’s another one:
If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.)
And finally, if you distribute a GPL’d program in binary form, then you have to make the source code available too. But for how long? The GPL has an answer:
Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code [...] on a medium customarily used for software interchange;
Link | Leave a comment | Add to Memories | Tell a Friend
Personal data warehouse
Oct. 29th, 2009 | 12:15 am
posted by:
natfriedman_rss
Between all my various computers I have about 850GB of data. That’s source code, slides, home movies from the 80s, emails in a variety of obsolete formats, recorded phone conversations from skype, photos, scans from dozens of hand-scrawled notebooks, and a whole bunch of other stuff.
Like most people I can search some of this stuff on my desktop, and I back it up to a USB drive at home.
But this isn’t satisfying me.
What I want is a giant elastic bit bucket in the cloud, with a powerful search engine on top of it. And no service provides this today.
Dropbox and its ilk put the data in the cloud so you don’t have to worry about physical platters and so that you can get at the data wherever you are.
But the one feature that all of these services are missing is, for me, the most critical. And that’s search.
See, I want this service to dig deep into my data to make it all findable. To parse all my old mbox files (or for windows users, PSTs) and to transcribe and index all my phone calls and videos. I want it to perform face recognition on all my photos and to OCR all my scanned documents and the pictures I took of scribbled napkin-notes, and make those searchable too.
And I want it to provide fabulous web-based data-type-specific UI for viewing all these things, so email conversations look like threads and photos of people show up in a nice web gallery. And I’ll need a timeline view of my life that I can zoom into and out of, seeing the few scanned film-camera photos and homework emails of the 90s, the frenetic startup emails of the early ’00s, and the steadily growing hordes of me-bits growing into the future, all there, all a jumble, but all findable when I need them.
This search has to be blazingly fast, find-as-you-type fast, so I really feel like my whole life is at my fingertips all the time.
And everything should be taggable and of course I want all my stuff to be public-key encrypted, though I’m not sure how that will work with the indexing engine which will probably need to run in the cloud too.
Of course my data is still growing, so this bucket will need tubes running into it so it stays up to date. A gmail tube, and a flickr tube, and a Google Docs tube, and a running-sync-of-my-laptop tube.
What I want, basically, is Google for my life. Well, not quite. I want Google, with Evernote OCR and Google voice’s ASR, and markmail’s fast mail archive searching UI, and dropbox’s simple bit-bucket interface, and iPhoto’s face recognition.
And, frankly, I don’t care about social features. I just want my stuff all in one place, securely, and easily findable.
I want Memex, for me.

