Thursday, April 19, 2007

Disappointed in Google's new Web History

When I saw Google's new Web History today, I thought: Cool! I'm in need of one since it can lessen my time spent bookmarking! But the first thing I looked for (and expected) is a url filtering option. But nope, it's no where to be found. The only "feature" I see is a manual remove of individual links. The whole idea for the users is that it should enhance our web browsing experience. How counter-productive it is to have to manually remove all private links after each visit (or remember to turn it off before accessing private links).

I am usually a fan of Google products, but I'm disappointed in Google this time on not thinking about it or test drive it more before releasing it. Maybe if it was a beta release, then it may have been excusable, but there isn't any "beta" signs to be found as well.

I have submitted an email to them regarding this. Hopefully they can act fast.. unless there are some reasons why they don't want to do so. But I can't see any good reasons that are more important than loosing potential users and the data that comes with them.

Using Mako in Django

It seems that Mako is one of the more powerful and faster template system for Python web development. In fact, Pylons is suppose to change in adapting Mako over Myghty soon. Since I'm using Django which uses its own template system, I was thinking I was out of luck. But fortunately, someone has written an adaptor for using Mako in Django!

I find it odd that there doesn't seem to be much talk about it. Maybe because it's only been out for a month or so. There isn't any documentation about it in his site, maybe he's just too busy. But I contacted him and he was quick in replying in how to getting it running. Thank you, Yi! So I want to help him out in return by writing a little guide on it so he doesn't have to answer annoying emails from newbies like me :)

1. Download his files and save them in a path where you can import them, like in python2.5\lib or just under python directory if you're using cygwin. If you're sure you're going to use just Mako or Genshi (which is an XML template system, so it's slower, but has many devoted followers), you can combine the and the one you're going to use into a single file to avoid filename conflicts of future libraries with filenmae (or you can rename to something else).

2. Follow instructions in installing Mako if it isn't installed already.

3. Add the following to your file of your Django project (here are my settings):

MAKO_TEMPLATE_DIRS = ('C:/Projects/mysite',)
# A tuple, specify the directories in which to find the mako templates,
# just like TEMPLATE_DIRS .
# default value is ('mako_templates',)

# A string, if specified, all of the compiled template module files will be
# stored in this directory.


you can put these anywhere in the file I believe, I put them under the TEMPLATE_DIRS definition to keep all template stuff together. The TEMPLATE_DIRS definition by the way, will not be used anymore as you're now using Mako's. But leaving it defined to some path will not hurt.

4. In your, add the following:

from mako_django import render_to_response

def some_function_named_in_urlpatterns(request):
return render_to_response('your_template.anything')

(I named it view_mktmpl.html, I believe the extension can be anything, but haven't really tried :).

5. Place your template file (your_template.anything), in where you specified in MAKO_TEMPLATE_DIRS. To learn more about writing a Mako template, see the Mako documentation.

hope this helps.

Time saver for Python web newbie developers

I recently begin learning Python web frameworks (I'm not a big fan of Ruby's execution speed) and did a bit of googling on them. Of the three most popular ones, namely Django, Turbogears, and Pylons, Django is by far the most popular of the three. According to both the wealth of information and google trends, Django is magnitudes more popular than the other two (yes, I know google trends doesn't filter out non web framework related results, but I believe it's still helpful). And it is easy to see why. Django has the best documentation, debugging information, and 3rd party help guides to help you get started. It's even got a second book coming out later this year and it's online now in form of a beta release.

After trying it out for a few days, I recommend Django for those who are new to web development. This is a recommendation only for newbies since I'm new to this myself. If you've been working with Django for a while, you may find it a bit "closed" according to many people. In fact, it is because of Django's reputation's of being a closed and non-flexible environment that I started learning Pylons first. (I did not look at Turbogears as much as all the information point out that the idea behind these two frameworks are very similar -- utilize the best of the other web framework components out there. Turbogears is said to be more mature and better documentation Pylons, but is in a flux of a major 2.0 change. Maybe I'll give it a try if Django doesn't work out.) Pylons seems to have only a tutorial, a cookbook, and a 3rd party Quick Site Guide. And that's it! There's not much more out there. So after spending three days on it, finding myself getting stuck more often than I like, and see no where I can go to expand my learning experience, I went over to Django and am glad I did!

References on my decision making:
Python web development and frameworks in 2007
Django and NIH
Python Web frameworks, Part 2 (scroll down to Conclusion)
TurboGears and Pylons (a technical comparison)
(There's many others, but as the title says, this is suppose to be a time saver for you, so I leave out the not too important ones)

Honorable Mention: - "the anti-framework framework"Reddit uses it.

Tuesday, April 10, 2007

Startup Hub in San Francisco bay area

To all SF bay area startups,
After reading An Entrepreneurs Dream - NYC, I realized that this is something I wanted to do also. Thus I have made a posting in YC news about my interest in starting one up in the bay area but only managed to get 2 responses. I figure I may have to gather more information to carry this further. I found a suitable place in Burlingame and took some pictures of it. It's in a good location, very close to 101 and 280. If I get enough definite interest, I will pursue this location, providing that it's still available then, so reply fast!
Deciding on the final layout before getting responses is hard. So instead of pre-deciding the layout, I will ask what you guys want.
Monthly membership will be approximately:

4x6 ft space - $200
6x6 ft space - $235
6x9 ft space - $275, $370 for 2
6x12ft space - $440 for 2 person, $520 for 3
Ask if you want a bigger size than above (let me know how many people in your group).

Window spaces will most likely be first come first serve to entice early joiners. But it may not be available for certain spaces.

I will try not to change this pricing and space structure too much. Changes will be kept within +/- a few %, depending on final layout. A 30 days notice will be required when canceling membership. Deposits and other details will be worked out later, but will be reasonable. Everything will be finalized before you sign anything.

Update: I have changed the pricing structure a little, due to the fact that I had underestimated other costs. Please bear with me since I'm new at this. I'm trying to go as low as I can, but I may be doing just too much... Also, if your application requires high amount of data traffic through your local workstation, you will be required to setup a dedicated line pay for that.

The following will be provided:
-some kind of partition or cubicle(can be removed if desired) with adjustable chair, table, and some shelfing space
-wired and wireless high speed connection
-networked printer
-copier, fax?
-microwave, fridge, bathroom
-free coffee, tea, water
-an open lounge area of at least 12x18 ft (maybe bigger) for reading, relaxing, and open discussions(white board and projector will be provided).

Benefits of joining:
1. Don't have to be so lonely at home (I've been there, so I know).

2. A must if your home is noisy.

3. No matter how clean and quiet your home is, you will always be interrupted by some kind of distraction or will procrastinate if the setting isn't a true work environment.

4. You will need office space if you are in a group, this may be the most bang for the buck for you.

5. Raise your work morale. When others are working hard, you will tend to do the same (read it somewhere in one of the YC or reddit news).

6. Get to know other smart people in the group. Expand our network of connections. It is truly hard to succeed alone. And if your project is cool, others in the group may dump or put their own projects on hold to join you!

7. Share and get new ideas, collaborate, and speed up development when working alongside with others. Don't reinvent the wheel, it's almost certain that if we have a large group of people, then something you don't know may be trivial to others or at least they can help point you to the right direction. Sure, you can usually find the answer online, but it may take you hours to find and filter them. And if the answer doesn't exist yet, you'll have to wait days for someone online to reply and for you to reply back to clarify. We can setup an IM group so replies will be fast if someone knows the answer.

8. Promote ourselves. I will setup a website for us and will provide a profile page for each group. Once a group launches their beta, it will be in the front page of the site and we can help you promote it across different sites.

9. Better presence than your messy or noisy home when demoing to customers/investors or interviewing potential partners.

10. Being in a group of startups is easier to grab attention from guest speakers and investors. I will try to work towards this.

11. Share knowledge. We can setup a gathering in the lounge once in a while to discuss our progress and what we learned. I will also share my tech books (over 150! yes, I'm a nerd..) and put them in the lounge area and encourage members to do the same. This will be like our little tech/biz library. And if say half of us decide that we need a certain book, I can purchase it (I'll probably set a limit on monthly purchases).

12. Lastly, instead of spending money in a coffee shop, we will provide you with free (and hopefully) good coffee ;)

13. Oh, speaking of food, ordering and eating pizza together during late nighters will be fun, but I'm sure we'll get sick of them soon enough... or not...

Other benefits I've missed? Share them in comments.

Here are the pictures I took. I forgot to take pictures of the outside, but it's pretty good. There are just a few reserved parking spaces (policy will probably be first come first park) for this premise, but street parking is available. The suite is on 2nd floor and the 1st floor renter seems pretty nice, I happened to bump into him during the visit.

The suite is divided into 2 sides, the front side is bigger, while the back side is smaller and is trapezoid shaped. The middle is a hallway joining the 2 sides, with the bathroom on one side of the hallway.

front side's end (the garage door won't be opened, side door is emergency exit):

front left:

front right:

entrance and hallway to back side:


The back side isn't too interesting, it's about half the size of front side and there are 2 windows.

Well, that's it. So what I need from you guys is to email me back the following information based on this Burlingame location:
1. How definite you are in joining (maybe, probably, for sure!)
2. When do you plan to join? (place is available now, so if I get enough finalized sign-ups, we may be able to start May 1st! Again, let me know asap or else we'll have to start from scratch if the place is taken).
3. The work space size you want and # of people in your group.
4. Age (if you're 17 or younger, I'll have to find out if I need to get your parent's permission or something).
5. What type of project (don't have to be too specific) you plan to work on here. I will absolutely NOT allow telemarketing or other types of work that is destructive to the group. If you lie to me and I find out later, your membership will be revoked.
6. Approximately how long you plan to stay, say like 4-6 months, ~9 months, 1yr+, etc.).
7. If you plan to join asap, will you be able to make the first month's member fee payment and a security deposit (thinking of around $350 per member) now? I will probably need at least a few signed contracts before I secure the place, even if I can get enough "for sure" replies. The reason is that for-sure's are never truly for sure unless it's been finalized. And I will be taken way too much risk if I just blindly believe it. The security deposit will be fully refunded upon cancellation, unless you have damaged something. The member fee will probably be prorated if you cancel during the first month or so enabling you to try us out. After the initial trial period, it will probably not be prorated upon cancellation since you are required to give a 30 days notice. But it will be prorated for sure if someone will take your spot within a few days. Both fees will be fully refunded if I am not able to secure the location agreed upon in the sign-up contract.

And if you are interested in helping me manage this place (membership waived or reduced) or being a partner with me, let me know. But think twice about how much commitment you plan to give. Will you be able to do that once your project takes off (needing more time on project or becoming a millionaire), or fails (thus forcing you to find a real job)? Do you see yourself doing this for more than a year? more than 2 years? Think about these before answering.

Please email me back your questions and responses instead of commenting here. Comment here only if you have comments or suggestions about this.
My email is: jklemail at g m a i l .com
Oh, also email me of misspellings and grammatical mistakes, I double checked a few times, but I know there are probably a bunch I've still missed.

Thank you guys so much, looking forward to our new venture!

Oh, please don't forget to up vote my YC news link so more people knows about it so we can get started sooner! My last post regarding this only got 3 votes so it was buried in less than half a day.