聽完畢業公演
心情跌到谷底
6/27/2008
6/25/2008
Ten Rules for Web Startups
#1: Be Narrow
Focus on the smallest possible problem you could solve that would potentially be useful. Most companies start out trying to do too many things, which makes life difficult and turns you into a me-too. Focusing on a small niche has so many advantages: With much less work, you can be the best at what you do. Small things, like a microscopic world, almost always turn out to be bigger than you think when you zoom in. You can much more easily position and market yourself when more focused. And when it comes to partnering, or being acquired, there's less chance for conflict. This is all so logical and, yet, there's a resistance to focusing. I think it comes from a fear of being trivial. Just remember: If you get to be #1 in your category, but your category is too small, then you can broaden your scope—and you can do so with leverage.
#2: Be Different
Ideas are in the air. There are lots of people thinking about—and probably working on—the same thing you are. And one of them is Google. Deal with it. How? First of all, realize that no sufficiently interesting space will be limited to one player. In a sense, competition actually is good—especially to legitimize new markets. Second, see #1—the specialist will almost always kick the generalist's ass. Third, consider doing something that's not so cutting edge. Many highly successful companies—the aforementioned big G being one—have thrived by taking on areas that everyone thought were done and redoing them right. Also? Get a good, non-generic name. Easier said than done, granted. But the most common mistake in naming is trying to be too descriptive, which leads to lots of hard-to-distinguish names. How many blogging companies have "blog" in their name, RSS companies "feed," or podcasting companies "pod" or "cast"? Rarely are they the ones that stand out.
#3: Be Casual
We're moving into what I call the era of the "Casual Web" (and casual content creation). This is much bigger than the hobbyist web or the professional web. Why? Because people have lives. And now, people with lives also have broadband. If you want to hit the really big home runs, create services that fit in with—and, indeed, help—people's everyday lives without requiring lots of commitment or identity change. Flickr enables personal publishing among millions of folks who would never consider themselves personal publishers—they're just sharing pictures with friends and family, a casual activity. Casual games are huge. Skype enables casual conversations.
#4: Be Picky
Another perennial business rule, and it applies to everything you do: features, employees, investors, partners, press opportunities. Startups are often too eager to accept people or ideas into their world. You can almost always afford to wait if something doesn't feel just right, and false negatives are usually better than false positives. One of Google's biggest strengths—and sources of frustration for outsiders—was their willingness to say no to opportunities, easy money, potential employees, and deals.
#5: Be User-Centric
User experience is everything. It always has been, but it's still undervalued and under-invested in. If you don't know user-centered design, study it. Hire people who know it. Obsess over it. Live and breathe it. Get your whole company on board. Better to iterate a hundred times to get the right feature right than to add a hundred more. The point of Ajax is that it can make a site more responsive, not that it's sexy. Tags can make things easier to find and classify, but maybe not in your application. The point of an API is so developers can add value for users, not to impress the geeks. Don't get sidetracked by technologies or the blog-worthiness of your next feature. Always focus on the user and all will be well.
#6: Be Self-Centered
Great products almost always come from someone scratching their own itch. Create something you want to exist in the world. Be a user of your own product. Hire people who are users of your product. Make it better based on your own desires. (But don't trick yourself into thinking you are your user, when it comes to usability.) Another aspect of this is to not get seduced into doing deals with big companies at the expense or your users or at the expense of making your product better. When you're small and they're big, it's hard to say no, but see #4.
#7: Be Greedy
It's always good to have options. One of the best ways to do that is to have income. While it's true that traffic is now again actually worth something, the give-everything-away-and-make-it-up-on-volume strategy stamps an expiration date on your company's ass. In other words, design something to charge for into your product and start taking money within 6 months (and do it with PayPal). Done right, charging money can actually accelerate growth, not impede it, because then you have something to fuel marketing costs with. More importantly, having money coming in the door puts you in a much more powerful position when it comes to your next round of funding or acquisition talks. In fact, consider whether you need to have a free version at all. The TypePad approach—taking the high-end position in the market—makes for a great business model in the right market. Less support. Less scalability concerns. Less abuse. And much higher margins.
#8: Be Tiny
It's standard web startup wisdom by now that with the substantially lower costs to starting something on the web, the difficulty of IPOs, and the willingness of the big guys to shell out for small teams doing innovative stuff, the most likely end game if you're successful is acquisition. Acquisitions are much easier if they're small. And small acquisitions are possible if valuations are kept low from the get go. And keeping valuations low is possible because it doesn't cost much to start something anymore (especially if you keep the scope narrow). Besides the obvious techniques, one way to do this is to use turnkey services to lower your overhead—Administaff, ServerBeach, web apps, maybe even Elance.
#9: Be Agile
You know that old saw about a plane flying from California to Hawaii being off course 99% of the time—but constantly correcting? The same is true of successful startups—except they may start out heading toward Alaska. Many dot-com bubble companies that died could have eventually been successful had they been able to adjust and change their plans instead of running as fast as they could until they burned out, based on their initial assumptions. Pyra was started to build a project-management app, not Blogger. Flickr's company was building a game. Ebay was going to sell auction software. Initial assumptions are almost always wrong. That's why the waterfall approach to building software is obsolete in favor agile techniques. The same philosophy should be applied to building a company.
#10: Be Balanced
What is a startup without bleary-eyed, junk-food-fueled, balls-to-the-wall days and sleepless, caffeine-fueled, relationship-stressing nights? Answer?: A lot more enjoyable place to work. Yes, high levels of commitment are crucial. And yes, crunch times come and sometimes require an inordinate, painful, apologies-to-the-SO amount of work. But it can't be all the time. Nature requires balance for health—as do the bodies and minds who work for you and, without which, your company will be worthless. There is no better way to maintain balance and lower your stress that I've found than David Allen's GTD process. Learn it. Live it. Make it a part of your company, and you'll have a secret weapon.
#11 (bonus!): Be Wary
Overgeneralized lists of business "rules" are not to be taken too literally. There are exceptions to everything.
written by evan williams
6/20/2008
motion planning using probability roadmap
The probobility roadmap is widely used for autonomous mobile robot path planning. It focus on multi-qurey. Initially, build the roadmap in configuration space, after that we can search a path each query, in which we don't rebuild the roadmap.
below is demo:
below is demo:
Labels:
motion planning
6/17/2008
why use android
星期六去了google developer day
聽了四場演講
分別是Gears, GData, Android Introduce, Android VM
Gears跟GData算是比較冷門的
它們兩個可以說是很偏應用性的東西 可能知道一下 以後有需要再用就好了
下午的Android在比較大的會場上
Android Introduce對我來說沒甚麼
因為網頁上的文件都看過了 他講的東西文件中也講了 所以沒聽到甚麼
都在練英聽
Android VM 是我覺得很有趣的 但大部份人應該會覺得很無趣吧
因為它是在講compiler and virtual machine
之前問我為甚麼玩android 跟其他手機上寫程式差在那
其實不太知道 只覺得它有很多API而已
聽完這場演講我比較知道它的優勢在那
最主要是android它放棄了Java Standard VM 改用自己開發的Delvik VM
以前我都不相信java會比C慢很多
經過他說明後了解了 java比較慢不單是因為VM的存在
java's code編釋成bytecode的結果才是重點
java採用stack based的方式產生指令 所以任何變數必須push, pop到stack裡
所以往往一個儲取,迴圈就多了很多不必的指令
而Delvik VM則改用register based的方式 變數記錄在register裡 再作儲取
所以產生的指令就比較少了
單單這個改變就可以令速度快好幾倍了
聽了四場演講
分別是Gears, GData, Android Introduce, Android VM
Gears跟GData算是比較冷門的
它們兩個可以說是很偏應用性的東西 可能知道一下 以後有需要再用就好了
下午的Android在比較大的會場上
Android Introduce對我來說沒甚麼
因為網頁上的文件都看過了 他講的東西文件中也講了 所以沒聽到甚麼
都在練英聽
Android VM 是我覺得很有趣的 但大部份人應該會覺得很無趣吧
因為它是在講compiler and virtual machine
之前問我為甚麼玩android 跟其他手機上寫程式差在那
其實不太知道 只覺得它有很多API而已
聽完這場演講我比較知道它的優勢在那
最主要是android它放棄了Java Standard VM 改用自己開發的Delvik VM
以前我都不相信java會比C慢很多
經過他說明後了解了 java比較慢不單是因為VM的存在
java's code編釋成bytecode的結果才是重點
java採用stack based的方式產生指令 所以任何變數必須push, pop到stack裡
所以往往一個儲取,迴圈就多了很多不必的指令
而Delvik VM則改用register based的方式 變數記錄在register裡 再作儲取
所以產生的指令就比較少了
單單這個改變就可以令速度快好幾倍了
6/16/2008
6/09/2008
Android's notebook
convert Java into android.
android.app.Activity <--> javax.swing.JFrame
android.app.AlarmManager <--> javax.swing.Timer
android.app.Dialog <--> javax.swing.JDialog
android.app.AlertDialog
android.app.DatePickerDialog
android.app.ProgressDialog
android.app.TimePickerDialog
android.app.ZoomDialog
android.awt.AndroidGraphics2D <--> java.awt.Graphics2D
android.content.Intent <--> java.awt.ActionListener
package android.graphics <--> package java.awt.geom & java.awt
android.view.View <--> javax.swing.JPanel
android.app.Activity <--> javax.swing.JFrame
android.app.AlarmManager <--> javax.swing.Timer
android.app.Dialog <--> javax.swing.JDialog
android.app.AlertDialog
android.app.DatePickerDialog
android.app.ProgressDialog
android.app.TimePickerDialog
android.app.ZoomDialog
android.awt.AndroidGraphics2D <--> java.awt.Graphics2D
android.content.Intent <--> java.awt.ActionListener
package android.graphics <--> package java.awt.geom & java.awt
android.view.View <--> javax.swing.JPanel
6/07/2008
motion planning using potential fileds
The potential field method is widely used for autonomous mobile robot path planning. The most researches have been focused on solving the motion planning problem in a stationary environment where both targets and obstacles are stationary.(as same as our example)
in our example
the bitmap shows the potential field in left upper corner, dark region represents higher potential, light region represents lower potential.
below is demo:
in our example
the bitmap shows the potential field in left upper corner, dark region represents higher potential, light region represents lower potential.
below is demo:
Labels:
motion planning
6/06/2008
overview of android
android documentation
in this web page, it overview the android platform, and support all information if you want.(but i think it's not enough ^^") install SDK is easy, just set up the path of OS.i think install SDK isn't problem, so let me see the API.
the API rough separate in three parts:
the API rough separate in three parts:
- java.*; and javax.*;
- android.*;
- com.apache.http.*;
6/05/2008
掙扎
最近我一直重複著一個動作
就是打開eclipse關掉它 又打開它關掉它 ...
寫程式對我來說並不難
但畢業的程式每看到它都不想寫 視窗不是馬上切換到kkman 就是切換到我想寫的程式
寫這種為畢業而寫的程式 寫完再也不會用的程式 真不知道寫來幹麻
看來
在解決研究題目前 要先解決寫程式的題目
我到底要for畢業還是for理想?
就是打開eclipse關掉它 又打開它關掉它 ...
寫程式對我來說並不難
但畢業的程式每看到它都不想寫 視窗不是馬上切換到kkman 就是切換到我想寫的程式
寫這種為畢業而寫的程式 寫完再也不會用的程式 真不知道寫來幹麻
看來
在解決研究題目前 要先解決寫程式的題目
我到底要for畢業還是for理想?
訂閱:
文章 (Atom)