A Few Python Resources and a Twitter App to Track Them
I work with students quite a bit. When I talk to them about Python, they want to first know why. I tell them Why I love Python and why they should look at Python. If they are convinced, then they ask me whether I have any pointers to resources or how they can learn Python. I point them to a couple of really good free ebooks on Python. After a while the students come back and ask me whether I can give them a few problem sets.
So I started putting together a simple resource list for people interested in learning Python. I added a few tiny projects and a couple of other places they can go to get projects.
I gather a lot of information in Python since we are using it to build products, write a few tools and teach students programming. I would like to organize them a bit and share them in these pages. You can track this list using a simple twitter app called checkpage (Yes, we wrote this app in Python and used a popular Python web framework called Django). All you have to do is to tweet:
@checkpage start http://dorai.wordpress.com/?s=python
Check page simply checks a page at regular intervals and notifies you, if it changes. It is free. For example, you can use it to track the popular python links on delicious
@checkpage start http://delicious.com/popular/python
Good luck and leave a comment here if you have any suggestions.
Random Thoughts on Startup Ideas
I was re-reading Paul Graham’s essay on “Organic Startup Ideas” today. Paul (as usual) gets you thinking. This essay, may in fact trigger a lot of posts. I will share one of our own experience on an organic startup idea.
The best way to come up with startup ideas is to ask yourself the question: what do you wish someone would make for you?
This is how we came up with our product InfoMinder. I was doing some research on XML towards the end of 90s. I found many interesting sites and bookmarked them. Soon I realized that I had over 300 bookmarks. I figured that even if I spend a minute on each page, it will take me about 5 hours to go through them all. So had one of my developer friends code a simple script to import the bookmarks and check pages daily and send an alert when they change. This way I needed to visit only the pages that changed.
Once we had this simple notification scheme, we realized that just getting an alert was not enough. When I visited the changed page, I had no idea about the actual changes on the page. We added a small feature. When we detect changes in a page, we highlight the changes and deliver a link to the highlighted page. This worked well for a while.
Very quickly we noticed a pattern. We were getting a lot of notifications for trivial changes. So we had to add a filter to ignore trivial changes. And we gave the product to a bunch of friends. We started getting some really useful feedback and that triggered a whole set of updates to the product.
We did one mistake, though. We kept the bookmarks private for each user. So we missed the entire social bookmarking revolution, even though we had all the features delicious had.
So here is the lesson. While you can start with a useful product idea, try it out and even find a decent number of customers, some times it take a little bit of additional inventiveness to make it a movement.
If you are are startup or thinking of doing one, certainly read Paul Graham’s essay on Organic Startup Ideas.
Don’t forget to share your stories in your blog and post a link here or just add a couple of paras in comments.
Seven Ways You Can Help a Startup
I keep meeting people in the startup community. They share one attribute – passion. Some of them have great ideas and others not so great. Some of them are good at building their products and others are still trying to figure out how to implement their ideas or build concept prototypes. Some of them are looking for partners and others are looking for some kind of funding. Most of them can use some guidance from more experienced people.
Why should you help a startup? Think about it for a minute. If you want to help some one at all, whom would you pick?Two types of people come to my mind – students and startups. I will cover helping students in a different post later. Here is a small checklist on how you can help a startup.
- Talk to them. Ask them what they do. If you are a potential user/customer of their product or service, wear a customer hat and ask them questions. This costs you very little. Depending on your level of interest and time, you may meet one startup a week or one a month. You don’t know how to get hold of startups? Leave a comment here on this blog and I will send you a list of resources.
- Become a guide. If you are expert marketing person, teach a tech startup how to market their products/services. Guide them on how to find their first few customers. If you are an expert in selling, share a few tips with them. If you are a designer or programmer, you can offer to review and make suggestions.
- Become a beta tester. You may need to spend only a few minutes a day or an hour or two a week. Helping them test an initial product and pointing out areas where things are not very clear is a great help. Be a part of their evolution.
- Become an early adopter. Many startups struggle to find initial customers. They provide their service for a discount or even free in exchange for being a referral. If you can use their product or service, this may be one of the best ways of helping them.
- Become a part-time coach. This is the amplification of “becoming a guide”. A coach can actually provide a service for a price. Just make sure that it is something they can afford. Pick an area where you can help them effortlessly.
- Help them raise or earn money. If you really, really like the startup team and have some faith in their offering, help them raise some money. If you don’t want to invest or do not have any friends interested in investing, then give them some consulting jobs so that they can earn money. Most of the software companies are bootstrapped (self funded through personal money or consulting assignments).
- Become a mentor. If you are a successful entrepreneur, you probably have a lot of things many startups can learn from. Find a couple of them and share your experience.
There may be many other ways of helping startups. If you have ideas, share them in the comments section.
All of us have a responsibility to encourage and help entrepreneurs. It is not the job of few isolated angel investors, incubators and VCs. Entrepreneurs provide employment, create wealth, provided much needed products and services. Helping them may be one of those random acts of kindness. You will not regret spending time with these energetic souls. It is my new found hobby and I am enjoying it thoroughly.
LinkLog: ABCs of Startup Marketing
I really like this presentation (video) and the slides. You can fine more information on ABCs of Startup Marketing
-Avoid Addiction
-Blog Beforehand
-Create Convenience
-Data Drives Decision
-Employ the ExceptionalYou can read a short description of each of these over on the OnStartups blog.
During the lightning talk session at DevCamp #dcc1, I asked the audience to predict “What Technologies Will Have Major Imact in the Next 5 Years”. Here are some answers (in no particular order):
1. Google Wave
2. HTML5 and CSS
3. iPad like devices, interactive books
4. Windows 7 Phone
5. Mobile Applications
6. Mobile Commerce
7. Augmented Reality
Add to this list if your favorite one is not here.
Added four more from Satya (see comments)
8. Small Business applications (services)
9. Human-Machine Interaction space
10. Online Gaming. (Virtual Reality)
11. Social Applications
End of PC Era? I am not so sure.
I saw this Tweet from one my friends today with a link to an article about three reasons why the PC era will end. Here is my retweet:
via @jcfrinak: “Three Reasons the PC Era Is Coming To An End” – http://bit.ly/anVc6g I use iPad but would not trade it for my laptop yet
Let me explain. I love iPad for a few reasons – speed, long battery life ease of reading books and playing a few games. But it is not going to replace my laptop yet. I still create quite a bit of content in my daily life – write documents, blog, tweet, code and communicate through chats and Google Wave. iPad would not be my preferred device for any of these activities.
I get the point though. The amount of time I am spending on my laptop is reducing. Now about a third of that time is on other devices – my Android phone, my iPod Touch (music and podcasts when I walking) and iPad (for reading). Also more and more of the apps (more than 50%) I use, are on the Cloud.
It is possible that a future tablet may become my primary device. But for that to happen, I need the following:
- Ability to download any app I want from the web
- Better business apps than what I currently see on mobile devices and iPad
- A good input device (preferably an integrated keyboard)
- Ability to run the browser of my choice (currently Firefox)
- A simpler way to switch apps (a toolbar would be a good start)
LinkLog: Web Scale Computing at Facebook
Facebook is the largest site in the world. Some of the statistics are staggering. Please take a look at this article on Facebook use and customization of open source to scale.
- Facebook still uses PHP, but it has built a compiler for it so it can be turned into native code on its web servers, thus boosting performance.
- Facebook uses Linux, but has optimized it for its own purposes (especially in terms of network throughput).
- Facebook uses MySQL, but primarily as a key-value persistent storage, moving joins and logic onto the web servers since optimizations are easier to perform there (on the “other side” of the Memcached layer).
If you have a bit more time to explore, you may also want to take a look at this presentation filmed during QCon SF 2008.
Aditya Agarwal discusses Facebook’s architecture, more exactly the software stack used, presenting the advantages and disadvantages of its major components: LAMP (PHP, MySQL), Memcache, Thrift, Scribe.
LinkLog: Using Twitter for Events
How To Incorporate Twitter Into Your Event
This is a great post with very useful information on how to use Twitter for your events. The comments show a few more ideas.
Based on some of the things we did for a few events, here are a few more things you can do.
- Host a pre-event (or during the event) tweetup
- Create a list of people who want to tweet
- Have a couple of people from the show organization tweet logistics and other details
- Have an ask-event twitter address for people to send event related questions
- Create hash tags for sessions too (that may help very specific session related tweets)
- Include Tweeters and Bloggers in the Credits page for the event (recognition helps a lot)
- Have an informal Tweeter’s lunch table or breakfast on the first day of the event or as pre-event.
LinkLog: Some Social Thoughts
From Some Social Thoughts:
Remember that as a source of information, social media should be considered as just another source. Information that you find should be verified and validated, just as you would information from mainstream media. As far as social technologies go, don’t wait to long to embrace them. Social is rapidly causing a fundamental shift in the way we communicate and share knowledge, and discover and navigate information. The sooner you begin to build your network, and communicate with your customers, the better off you will be positioned as adoption and usage of these technologies and networks continues to explode.
I totally agree. I also think that there is an opportunity for tools and services. How do you verify/validate the information?
- Check the source (of the original post) – an obvious one
- Look at their typical biases – pretty easy to do with a simple word/phrase cloud of their posts (more about this in another post)
- Check the information from an independent source (more difficult when we are living in an echo chamber)
Do you know of any social media tools that can help you do this easily?
LinkLog: Measuring the Story Telling of 10s
From Horace Luke on Design As Story Telling:
I tell my teams to measure a storytelling of 10s. In the first 10 seconds they have the phone, do they understand what they are getting? Then the first 10 minutes: Is it easy to engage with the product, do a simple task? At 10 days, are they frustrated with the product or telling their friends about it? What are they starting to discover? At 10 weeks, what are the powerful features they didn’t use before? Are they putting folders and widgets for their own stuff in the phone? At 10 months, they may be ready for a change. Did your brand fulfill its promise, so they stay with you?
I think we need a model like this for software. Any ideas?