<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' version='2.0'><channel><atom:id>tag:blogger.com,1999:blog-23700903</atom:id><lastBuildDate>Tue, 09 Jun 2009 05:47:45 +0000</lastBuildDate><title>The road less traveled</title><description>A blog about one man's thoughts on startups, economics, social issues, and college life.</description><link>http://sam.bluwiki.com/blog/index.php</link><managingEditor>noreply@blogger.com (Sam Odio)</managingEditor><generator>Blogger</generator><openSearch:totalResults>82</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-23700903.post-1741868190854502495</guid><pubDate>Wed, 20 May 2009 00:33:00 +0000</pubDate><atom:updated>2009-05-19T23:46:00.325-05:00</atom:updated><title>Hacker House: Lessons learned (and how to start your own!)</title><description>&lt;a href="http://divvyshot.com/photo/m8Wqt/"&gt;&lt;img src="http://divvyshot-media.s3.amazonaws.com:80/xPg9%2Fimg_0367_AwbTL.128x128.JPG" align="right"&gt;&lt;/a&gt;&lt;br /&gt;I've started 3 hacker houses so far and have learned a few things along the way.  A few readers have reached out to me and asked for some tips on how to start a house in their city.  Hopefully this will help.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Getting started&lt;/span&gt;&lt;br /&gt;Ideally, there's a core contingent of about 2-3 coders that are willing to go in with you on a house.  I wouldn't recommend renting a house before you've found at least one other coder.  Conversely, it's hard to get 5 people on board before hand and even harder to find a house once 5 guys are involved in the decision. &lt;br /&gt;&lt;br /&gt;Once you have the house and a few people living there, finding others is pretty easy.  I started the Palo Alto house with only one commitment from a friend.  I had 3 commitments when starting the SF house.  Both houses quickly filled to capacity.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Advertising&lt;/span&gt;&lt;br /&gt;I found coders in the Charlottesville house by using flyers around UVA's campus.  Some of them directed visitors to a &lt;a href="http://etalambdachi.org/"&gt;puzzle&lt;/a&gt; which they solved to gain more information about the organization.  Other flyers were simpler:&lt;br /&gt; &lt;blockquote&gt;wget http://etalambdachi.org&lt;/blockquote&gt;&lt;br /&gt;(we'd then display a special page for the wget user agent).&lt;br /&gt;&lt;br /&gt;The point was to get the "right" kind of people interested.  If you have access to a local tech-oriented campus, you might want to try doing something similar.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Location&lt;/span&gt;&lt;br /&gt;Something in a college town or major city works best.  It should be easier to find hackers and there will probably be a lot of pedestrian friendly restaurants, bars, shopping, etc.  For some reason, having restaurants and cafes that are open late and within walking distance is very important.  I've noticed that coders congregate around these areas (SF, Cambridge, Berekeley, Palo Alto, etc.).  You won't get many members if they have to drive your house to code and then drive downtown when they want to get food at midnight.&lt;br /&gt;&lt;br /&gt;If you're lucky enough to be near a college town, coordinate the lease with their school year.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Space&lt;/span&gt;&lt;br /&gt;Find a place with 3-6 rooms. Anything larger gets unmanageable.  If a few want to share a room, that's great.  Our rent formula for sharing a room is:  P = 1/2n + $200 (where P is what each roommate pays and n is the original rent for the room).  This means when a room is shared the house gets an extra $400 - lowering everyone else's rent.&lt;br /&gt;&lt;br /&gt;Make sure there is &lt;b&gt;ample common space for everyone&lt;/b&gt;.  Ideally, you have two separate common areas: one for coding (put desks &amp; LCDs here) and one for relaxing (playing Wii, reading a book, etc).  The Palo Alto house had no area to relax.  We found that this made staying in the place for more than a few months very difficult.  You don't need an dining room - most coders will eat at their desks or over the sink anyways.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Cohabitation vs Coworking&lt;/span&gt;&lt;br /&gt;You should pick one.  In Charlottesville I tried an early model of the HH (it was a two bedroom apartment).  The apartment had one resident and 8 desks/monitors for drop-ins.  Based on that experience I'd recommend either going 100% coworking (nobody living there) or 100% cohabitation (no drop-ins).  For some reason, the mixture just didn't work.  It was hard to create an environment with the "right" feel to it.  Residents were bothered by coders coming or going at all hours and the coders were bothered when a resident would wake up and spend 30 minutes working in his bath robe.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Miscellaneous&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Make sure the rate per room is below the market average (coders usually optimize for price over nice)&lt;br /&gt;&lt;li&gt;You should be able to get quality high speed internet there.  &lt;- This is key (obviously).&lt;br /&gt;&lt;li&gt;The place should have a relaxed landlord that is comfortable with multiple unrelated guys living there (this is more likely near a campus).&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Want to start a house?&lt;/span&gt;&lt;br /&gt;A couple houses have already started:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://groups.google.com/group/poehackerhouse/"&gt;Palo Alto (available Fall 09)&lt;/a&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://divvyshot.com/event/hacker_house/"&gt;San Francisco (available Fall 09)&lt;/a&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://techhouse.org/"&gt;Providence, RI (Brown) - Techhouse&lt;/a&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.cocovivo.com/"&gt;Panama - Cocovivo&lt;/a&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;Others have  contacted me about organizing houses in their area:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://groups.google.com/group/hh-3"&gt;San Francisco&lt;/a&gt;&lt;br /&gt;&lt;li&gt;New York (contact Jimmy Kaplowitz - you can find an email on google)&lt;br /&gt;&lt;li&gt;Austin (contact: joshuak531 at google's mail service)&lt;br /&gt;&lt;li&gt;Boston (see comments below)&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;If there's already a house in your area, I'd suggest contacting them first.  If there isn't a house in your area, you can email me and I'll add you to this list.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='//blogger.googleusercontent.com/tracker/23700903-1741868190854502495?l=sam.bluwiki.com%2Fblog%2Findex.php'/&gt;&lt;/div&gt;</description><link>http://sam.bluwiki.com/blog/2009/05/hacker-house-lessons-learned-and-how-to.php</link><author>noreply@blogger.com (Sam Odio)</author></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-23700903.post-28390392155628323</guid><pubDate>Wed, 13 May 2009 20:19:00 +0000</pubDate><atom:updated>2009-05-13T15:56:19.880-05:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>productivity</category><title>Use a kitchen timer to maximize your productivity</title><description>&lt;a href="http://www.amazon.com/Arcosteel-Contemporary-60-Minute-Timer/dp/B001E96PSW/"&gt;&lt;img src="http://divvyshot-media.s3.amazonaws.com:80/mT0YOJ%2Fphoto.450x450.jpg" align="right"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I can sometimes find it extremely difficult to stay on task.  Unproductive "necessities" like checking email, reading twitter, and blogging often squeeze out the productive hours in my day.&lt;br /&gt;&lt;br /&gt;My worst days used to look like this:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt; Wake up around 9-10AM&lt;br /&gt;&lt;li&gt;  2 hours in the morning to "get ready" (go for a jog with the dog / take a shower / eat breakfast / check email / etc)&lt;br /&gt;&lt;li&gt;  Start work around Noon&lt;br /&gt;&lt;li&gt;  Open up Textmate and figure out what I'm doing for the day (15 minutes)&lt;br /&gt;&lt;li&gt;  Check twitter / hacker news / reddit (1 hour)&lt;br /&gt;&lt;li&gt;  Grab lunch (1 hour)&lt;br /&gt;&lt;li&gt;  *maybe* get a few hours worth of work done (2 hours)&lt;br /&gt;&lt;li&gt; Check email and do some administrative stuff (2-4 hours)&lt;br /&gt;&lt;li&gt;  Dinner and hang out with friends (1-6 hours)&lt;br /&gt;&lt;li&gt;  Spend the rest of the night on twitter / hacker news / reddit / blogs&lt;br /&gt;&lt;li&gt; Go to sleep&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;I felt like I should spend at least 6 hours every day coding and needed something to make sure that would happen.  My solution was &lt;b&gt;a kitchen timer&lt;/b&gt;.  I recently bought one (pictured above) from &lt;a href="http://www.amazon.com/Arcosteel-Contemporary-60-Minute-Timer/dp/B001E96PSW/"&gt;Amazon.com&lt;/a&gt; and I'm pretty happy with it.  I find I prefer its mechanical feel and physical presence on my desk to some of the software solutions out there.&lt;br /&gt;&lt;br /&gt;In fact, this thing has worked wonders.&lt;br /&gt;&lt;br /&gt;Every morning after my run I set the timer for a 60 minutes.  That's the time I have to take a shower, get dressed, read email and check twitter, read the news, etc.  After that hour is up I close my email client.  The rest of the day is spent coding.   Online Textmate, my terminal, and Safari are open.&lt;br /&gt;&lt;br /&gt;In the afternoon I give myself another 30 minutes to check email, write a blog post, and do anything else I want to do.  I'm spending my 30 minutes this afternoon on this post :).&lt;br /&gt;&lt;br /&gt;This, along with finding a separate space to work (see my &lt;a href="http://sam.bluwiki.com/blog/2009/05/my-impression-of-san-francisco.php"&gt;coworking post&lt;/a&gt;) have been two of my three most helpful productivity aids.  I'll blog about the third tomorrow.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='//blogger.googleusercontent.com/tracker/23700903-28390392155628323?l=sam.bluwiki.com%2Fblog%2Findex.php'/&gt;&lt;/div&gt;</description><link>http://sam.bluwiki.com/blog/2009/05/use-kitchen-timer-to-maximize-your.php</link><author>noreply@blogger.com (Sam Odio)</author></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-23700903.post-3318800991928556674</guid><pubDate>Mon, 11 May 2009 19:47:00 +0000</pubDate><atom:updated>2009-05-13T15:57:19.501-05:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>productivity</category><category domain='http://www.blogger.com/atom/ns#'>san francisco</category><title>My impression of San Francisco coworking spaces</title><description>I recently spent a day visiting every coworking space in San Francisco.  I thought I'd post my impressions (since I have at least one friend that's also looking at spaces).&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;My Favorites&lt;/span&gt;&lt;br /&gt;Five star recommended!&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/14064049@N06/2963223426/"&gt;&lt;img src="http://farm4.static.flickr.com/3288/2963223426_76b6e559f2_m.jpg" align="right"  alt="Sandbox Suites"&gt;&lt;/a&gt; &lt;br /&gt;&lt;a href="http://www.sandboxsuites.com/"&gt;Sandbox Suites&lt;/a&gt; ($495/mo) - Pros: Cool environment and convenient location.  I like how the lounge area is separated from the desks.  There are varying levels of privacy allowing you to choose the desk that best suits your need (and budget).  There's a decent conference and phone room.  They also have an active event calendar.  Cons: It's expensive.  Especially for a private desk.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.svtgroup.net/"&gt;SVT Group Coworking space&lt;/a&gt; ($300/mo) - Pros:  The people seemed nice and the price is reasonable.  Cons:  Coworking is not the main intent of this space.  It's basically SVT's office space with room for a few extra desks.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Seemed Interesting&lt;/span&gt;&lt;br /&gt;I wouldn't mind working from any of these places, but they weren't my first choice.&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/mindmob/2278618463/"&gt;&lt;img src="http://farm3.static.flickr.com/2411/2278618463_6cc22bd2aa_m.jpg" align=right alt="2431 Mission"&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/search/?q=2431%20Mission&amp;w=all"&gt;2431 Mission&lt;/a&gt; ($175/mo) - These guys almost made it in the "favorites" category.  Pros: The desks in the public area are probably the best deal of all the spaces I saw.  I also liked the atmosphere - very eclectic.  Wether you do will be a matter of personal taste.  To get an idea of what it's like &lt;a href="http://www.flickr.com/search/?q=2431%20Mission&amp;w=all"&gt;check out some photos&lt;/a&gt;.  Cons:  Everything (including the fuseball table) is in earshot of the work areas.  Don't think you could get a private desk and play your music without it being heard throughout.  Also, the people didn't seem too friendly.  This is probably because there was no designated greeter when I stopped by - everyone was busy working.  Most other coworking spaces had someone who's job it was to manage the place and show you around.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/puertobaires/3392683546/"&gt;&lt;img src="http://farm4.static.flickr.com/3594/3392683546_f378bed453_m.jpg" align=right alt="CitizenSpace"&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.citizenspace.us/"&gt;CitizenSpace&lt;/a&gt; ($425/mo) - Pros: The place is dedicated to coworking and has been around for a while.  Convenient location.  Cons: They had the worst work/play separation of any of the spaces I looked at.  There's only one big space that includes private/public desks, a kitchen, and a "chill area" with couch, TV, and Wii.  The floor was concrete and sound would easily travel from one side of the room to the other.  If you have a loud keyboard (as I do) everyone knew when you were working.  There were no dividers between the private desks.  I never saw anyone  use the Wii - probably out of fear that it would disrupt everyone else.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/xpomicron/3000872998/sizes/l/"&gt;&lt;img src="http://farm4.static.flickr.com/3212/3000872998_20804b396f_m.jpg" align=right alt="PariSoma"&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://parisoma.com/"&gt;PariSoMa&lt;/a&gt; ($350/mo) - Pros: Cute place and the people seemed nice.  There's a lot of light from some huge windows, which could be a pro(not depressing) or a con (screen glare).  There's a cool little nook where you could relax and read a book.  However you couldn't take a phone call there without interrupting the rest of the office.  Cons:  Only marginally more private than CitizenSpace.  Most people there aren't coders (which was important for me).   This would be better suited for indie designers (hence the name).  Also, the space was a little small and not as well equipped as Sandbox Suites.  &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Yuck&lt;/span&gt;&lt;br /&gt;I would rather work from home.&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/dreamfish/3257986025/"&gt;&lt;img src="http://farm4.static.flickr.com/3408/3257986025_a6fdbe2e82_m.jpg" align="right" alt="DreamFish"&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://dreamfish.com/"&gt;Dreamfish, SF&lt;/a&gt; - Way too cramped (unless you like working while standing up).  I'd have a hard time working here even if I was good friends with everyone else in the room.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://ilist.com/"&gt;iList&lt;/a&gt; - Drop in only.  No permanent space available.  At the time I saw the place they were moving to a new office.  I don't even think they had available chairs.&lt;br /&gt; &lt;br /&gt;&lt;a href="http://hatfactory.net/"&gt;HatFactory&lt;/a&gt; - There was just one big common desk that everyone works at.  I didn't feel like I could bring my own keyboard/mouse/monitor and leave them there.  Also I think some guy lives here.&lt;br /&gt;&lt;br /&gt;NASA CoLab - Seems inactive / nonexistant.  Their wiki has gone offline.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='//blogger.googleusercontent.com/tracker/23700903-3318800991928556674?l=sam.bluwiki.com%2Fblog%2Findex.php'/&gt;&lt;/div&gt;</description><link>http://sam.bluwiki.com/blog/2009/05/my-impression-of-san-francisco.php</link><author>noreply@blogger.com (Sam Odio)</author></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-23700903.post-8152559668693292891</guid><pubDate>Wed, 06 May 2009 22:58:00 +0000</pubDate><atom:updated>2009-05-13T16:02:17.950-05:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>coding</category><title>The coder's bookshelf</title><description>I've spent a decent amount of time and money assembling a book collection that's relevant to the coders in the Hacker House.  I thought I'd publish what we have so far.  Apologies in advance for the made up genres.  Some of these books were contributed by John Devor &amp; Dan Grover but most were purchased used off of Amazon.  In total I spent about $400.&lt;br /&gt;&lt;br /&gt;The collection was partly based off of these recommendations:&lt;br /&gt;- &lt;a href="http://grok-code.com/11/the-top-9-in-a-hackers-bookshelf/"&gt;The Top 9½ In a Hacker’s Bookshelf&lt;/a&gt;&lt;br /&gt;- &lt;a href="http://www.joelonsoftware.com/navLinks/fog0000000262.html"&gt;Book Reviews by Joel Spolsky&lt;/a&gt;&lt;br /&gt;- &lt;a href="http://stackoverflow.com/questions/1711/what-is-the-single-most-influential-book-every-programmer-should-read"&gt;What is the single most influential book...&lt;/a&gt;&lt;br /&gt;- &lt;a href="http://news.ycombinator.com/item?id=135185"&gt;What would you put on a hacker's bookshelf?&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Feel free to suggest any other books in the comments below!&lt;br /&gt;&lt;br /&gt;&lt;img src="http://divvyshot-media.s3.amazonaws.com:80/vTlbzO%2FIMG_2401.450x450.jpg" align="right"&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Oreilly reference books (programming):&lt;/span&gt;&lt;br /&gt;- Learning Python&lt;br /&gt;- Python in a Nutshell (indispensable)&lt;br /&gt;- Programming Collective Inteligence&lt;br /&gt;- Version Control with Subversion&lt;br /&gt;- Python pocket reference&lt;br /&gt;- CVS pocket reference&lt;br /&gt;- Facebook Cookbook&lt;br /&gt;- FBML Essentials&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Other reference books (programming):&lt;/span&gt;&lt;br /&gt;- How to Design Programs&lt;br /&gt;- Structure and Interpretation of Computer Programs (I'm currently working through this book... it will take me a while)&lt;br /&gt;- The Little LISPer&lt;br /&gt;- The Little Schemer&lt;br /&gt;- The C Programming Language&lt;br /&gt;- Core MAC OS X And UNIX Programming&lt;br /&gt;- Programming Ruby&lt;br /&gt;- Agile Web Development with Rails&lt;br /&gt;- The Definitive Guide to Django&lt;br /&gt;- Practical Django Projects&lt;br /&gt;- Pro Django&lt;br /&gt;- Simply Javascript (sitepoint)&lt;br /&gt;- PHP Developer's cookbook&lt;br /&gt;- Object-oriented PHP&lt;br /&gt;- Beginning OpenGL&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Obviously there are many other reference books worth owning.  We chose the above books because they cover the languages relevant to us.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Anecdotal "Nonfiction" / historical startup-related stories:&lt;/span&gt;&lt;br /&gt;- DEC Is Dead, Long Live DEC&lt;br /&gt;- Burn Rate&lt;br /&gt;- The Perfect Store&lt;br /&gt;- Once You're Lucky, Twice You're Good&lt;br /&gt;- Microsoft REBOOTED&lt;br /&gt;- Founders At Work&lt;br /&gt;- Revolution In The Valley (My favorite book in this section.) &lt;br /&gt;- Hackers by Steven Levy&lt;br /&gt;- Crypto by Steven Levy&lt;br /&gt;- The Fall of Advertising &amp; The Rise of PR&lt;br /&gt;- The Search by John Batelle (Needs more research/interviews from Google founders &amp; employees.)&lt;br /&gt;- Blog Blazers&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Programming/startup-related stories &amp; essays:&lt;/span&gt;&lt;br /&gt;- The Pragmatic Programmer&lt;br /&gt;- Joel on Software (A great first read for any CS student entering the workforce.)&lt;br /&gt;- Facts and Fallacies of Software Engineering&lt;br /&gt;- The Mythical Man-Month&lt;br /&gt;- Design Patters&lt;br /&gt;- Hackers &amp; Painters&lt;br /&gt;- The Monk and the Riddle&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Other hacker books:&lt;/span&gt;&lt;br /&gt;- The Best of 2600 (A Hacker Odyssey)&lt;br /&gt;- 2600 Magazines&lt;br /&gt;- Computer Networks (A Systems Approach) by Peterson &amp; Davie&lt;br /&gt;- Computer Networking by Kurose &amp; Ross&lt;br /&gt;- Mathematical Structures for Computer Science&lt;br /&gt;- Applied Cryptography by Bruce Schneier&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Motivational / Organizational:&lt;/span&gt;&lt;br /&gt;- The Last Lecture by Randy Pausch (A quick &amp; inspirational read.  Life-changing stuff.  Read the &lt;a href="http://en.wikipedia.org/wiki/Randy_Pausch"&gt;wikipedia article&lt;/a&gt; first.)&lt;br /&gt;- Getting things DONE&lt;br /&gt;- How to Win Friends &amp; Influence People (A classic, but &lt;a href="http://en.wikipedia.org/wiki/How_to_Win_Friends_and_Influence_People"&gt;can easily be paraphrased&lt;/a&gt;.)&lt;br /&gt;- The Art of the Start&lt;br /&gt;- The Creative Habit&lt;br /&gt;- Bit Literacy (A gift.  A good book for the computer (semi/il)literate.)&lt;br /&gt;- Influence by Robert Cialdini&lt;br /&gt;- 7 Habits of Highly Effective People&lt;br /&gt;- Talent is Overrated&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Writing / Literature:&lt;/span&gt;&lt;br /&gt;- Best Software Writing by Joel Spolsky&lt;br /&gt;- On Writing Well by William Zinsser&lt;br /&gt;- Writing Down The Bones&lt;br /&gt;- A Glossary of Literary Terms&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Finance &amp; Economics:&lt;/span&gt;&lt;br /&gt;- Basic Economics by Thomas Sowell (If you want to learn Econ, read this book.)&lt;br /&gt;- Freakonomics&lt;br /&gt;- The Visual Display of Quantitative Information&lt;br /&gt;- Buffett by Roger Lowenstein&lt;br /&gt;- The Intelligent Investor&lt;br /&gt;- How to Invest $50-$50,000&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Political:&lt;/span&gt;&lt;br /&gt;- Several books by Bob Woodward (The War within, Bush at War, etc)&lt;br /&gt;- The Quotable Atheist&lt;br /&gt;- The Squandering of America&lt;br /&gt;- The End of Faith&lt;br /&gt;- The Selfish Gene&lt;br /&gt;- Atlas Shrugged&lt;br /&gt;- The world is Flat (There's a debate as to whether these books belong in the economics section.  My vote is no.)&lt;br /&gt;- Hot, Flat &amp; Crowded (same as above)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Science &amp; History:&lt;/span&gt;&lt;br /&gt;- 100 Scientists who Changed The World&lt;br /&gt;- A short History of Nearly Everything&lt;br /&gt;- Gödel, Escher, Bach: an Eternal Golden Braid&lt;br /&gt;- On Speed: the Many Lives of Amphetamine&lt;br /&gt;- Guns, Germs, and Steel&lt;br /&gt;- Sex, Time, and Power&lt;br /&gt;- Outliers&lt;br /&gt;- The Double Helix&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Un-categorized:&lt;/span&gt;&lt;br /&gt;- Around the world in 80 days&lt;br /&gt;- A Confederacy of Dunces&lt;br /&gt;- Walden&lt;br /&gt;- Civil Disobedience&lt;br /&gt;- A Brave New World&lt;br /&gt;- The Power of One&lt;br /&gt;- One Flew Over the Cuckoo's Nest&lt;br /&gt;- Profiles In Courage&lt;br /&gt;- Geek Silicon Valley (If you're a geek in the valley you need this book.)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Recent purchases (haven't yet arrived):&lt;/span&gt;&lt;br /&gt;- Zen and the Art of Motorcycle Maintenance&lt;br /&gt;- Art of Computer Programming, Volume 1&lt;br /&gt;- Code Complete&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='//blogger.googleusercontent.com/tracker/23700903-8152559668693292891?l=sam.bluwiki.com%2Fblog%2Findex.php'/&gt;&lt;/div&gt;</description><link>http://sam.bluwiki.com/blog/2009/05/coders-bookshelf.php</link><author>noreply@blogger.com (Sam Odio)</author></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-23700903.post-6741545222370971813</guid><pubDate>Sun, 12 Apr 2009 16:34:00 +0000</pubDate><atom:updated>2009-05-13T16:01:42.166-05:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>y combinator</category><title>YC interview advice</title><description>I've been asked a few times what an applicant should know before walking into the YC offices for an interview.  Here's a short list:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;1) Build something&lt;/b&gt;&lt;br /&gt;You should have a demo.  It doesn't take more than 2-3 days to quickly mock something up that you can show the partners so there's no excuse not to.&lt;br /&gt;&lt;br /&gt;This is actually great advice for the entire program. Start building your product early -- don't wait until that YC acceptance or the start of the program.  I think the ideal time for a YC company to launch is in the first week of the batch.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;2) Become an expert in your market (and your product)&lt;/b&gt;&lt;br /&gt;Hard facts work.  Have them available.  What's the size of your market?  What's the revenue of your closest competitor?  What about their monthly traffic?  How much time to visitors spend on your site?&lt;br /&gt;&lt;br /&gt;&lt;b&gt;3) Have a path to positive cash flow&lt;/b&gt;&lt;br /&gt;It has become clear that in this market you should have revenue by demo day.  Ideally you're ramen profitable.  It'll be much harder to find investment if you're not.  I am ABSOLUTELY positive that YC will be thinking about this when interviewing.&lt;br /&gt;&lt;br /&gt;Be prepared for the question "how are you going to make money?" and the answer probably shouldn't involve ads.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;3) Do mock interviews&lt;/b&gt;&lt;br /&gt;Ask others to interview you.  Ideally, practice with previous YC founders or someone that understands the hacker mentality.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;4) Show some passion&lt;/b&gt;&lt;br /&gt;Make it clear that you're excited about your product and that you're not going anywhere.  If you don't believe in the idea/product, why should anyone else? One of YC's biggest problems is with founders that aren't in it for the long haul.  You should communicate this both in the way you talk about your product and in the preparation you've done before the interview (see above).&lt;br /&gt;&lt;br /&gt;&lt;b&gt;5) Be humble&lt;/b&gt;&lt;br /&gt;The last thing you want to do is argue with the partners.  Accept criticism and show that you've thought about the objections they raise.  If you don't have an answer, be honest.  Offer to do the research and follow up later in the day.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;6) Finally, find a cool place to crash&lt;/b&gt;&lt;br /&gt;Don't get a hotel.  Find other hackers to crash with on &lt;a href="http://news.ycombinator.com"&gt;HN&lt;/a&gt;, &lt;a href="http://sfbay.craigslist.org/"&gt;craigslist&lt;/a&gt;, or &lt;a href="http://www.airbnb.com/"&gt;airbnb&lt;/a&gt;.  You can also stay at the &lt;a href="http://hackerhouse.bluwiki.com/go/Hackerhouse"&gt;hacker house&lt;/a&gt;.  Getting an idea of what its like to be a hacker in the valley is almost important as the interview itself.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Edit 10:32 AM:&lt;/b&gt;  I almost forgot another very important point: &lt;b&gt;don't bring a deck&lt;/b&gt;.  The 10 minute interview is going to mostly consist of the YC partners asking questions and you answering them.  You won't be able to script the whole thing slide by slide.&lt;br /&gt;&lt;br /&gt;In fact, anything the YC partners have to sit through won't go over well.  This also includes a video of your product.   From talking to PG, this is one of the most common mistakes.  Don't do it.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Edit 11:04 AM:&lt;/b&gt;  PG wants to clarify some of this advice.  To avoid leading anyone astray I've reposted his comments below:&lt;br /&gt;&lt;br /&gt;&lt;i&gt;"the answer probably shouldn't involve ads"&lt;/i&gt;&lt;br /&gt;Actually we're not as down on ads as other investors seem to be. We liked Heyzap, and they make money from ads.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;"The last thing you want to do is argue with the partners."&lt;/i&gt;&lt;br /&gt;That's an overstatement. We don't like people who supinely agree with everything we say. That's as bad as refusing to listen to anything we say. What we look for is a middle ground: people who respond intelligently to our suggestions.&lt;br /&gt;Some of the suggestions we make are stupid. If people agree with those, we conclude they're stupid. (We don't do this on purpose to catch people. We just don't understand very well yet what each group is doing.)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='//blogger.googleusercontent.com/tracker/23700903-6741545222370971813?l=sam.bluwiki.com%2Fblog%2Findex.php'/&gt;&lt;/div&gt;</description><link>http://sam.bluwiki.com/blog/2009/04/advice-for-yc-interviewees_12.php</link><author>noreply@blogger.com (Sam Odio)</author></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-23700903.post-3269622767023921140</guid><pubDate>Wed, 08 Apr 2009 08:34:00 +0000</pubDate><atom:updated>2009-05-13T16:01:51.908-05:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>y combinator</category><title>The last YC dinner</title><description>We had our last YC dinner tonight.  Joshua Schachter spoke about Del.icio.us and his experience at Yahoo.  Here are some photos: &lt;a href="http://dvsht.com/the_actual/"&gt;http://dvsht.com/the_actual/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='//blogger.googleusercontent.com/tracker/23700903-3269622767023921140?l=sam.bluwiki.com%2Fblog%2Findex.php'/&gt;&lt;/div&gt;</description><link>http://sam.bluwiki.com/blog/2009/04/last-yc-dinner.php</link><author>noreply@blogger.com (Sam Odio)</author></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-23700903.post-4939326817008284671</guid><pubDate>Wed, 08 Apr 2009 08:05:00 +0000</pubDate><atom:updated>2009-05-13T16:02:41.283-05:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>silicon valley</category><category domain='http://www.blogger.com/atom/ns#'>anybots</category><title>Monty updates; Anybots at the Stanford TODAY (Wed) 12-6PM</title><description>Savraj (from Wattvision) and I spent some time at tonight's YC dinner playing with Monty.  The robot now has stereoscopic vision with 3D goggles - which is very cool. The goggles also give you control of Monty's head.  You can look up and down and the robot will do the same.  If you look in a direction that Monty's head cannot physically follow the goggles will show a stiched-together view from the robots perherphial cameras.&lt;br /&gt;&lt;br /&gt;Other nifties: You can turn around or bow and monty will imitate you.&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/ZQRwS6COIOA&amp;hl=en&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/ZQRwS6COIOA&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Want to see more?&lt;/span&gt;  Anybots will be showing QA (their newest robot) at the Stanford Cool Product Expo tomorrow (wednesday).   Its open to the public so anyone is welcome to come.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;Date: 4/8/09&lt;br /&gt;&lt;br /&gt;Location: &lt;a href="http://maps.google.com/maps?f=q&amp;hl=en&amp;q=326+Galvez+St.,+Stanford,+CA&amp;om=1&amp;ll=37.436089,-122.161746&amp;spn=0.016731,0.034289"&gt;Stanford Arrilaga Alumni Center&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Time: 12-6PM&lt;br /&gt;&lt;br /&gt;&lt;a href="http://coolproductexpo.stanford.edu/"&gt;More details&lt;/a&gt;.&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://bluwiki.com/images/thumb/7/7b/Anybots-QA.jpg/400px-Anybots-QA.jpg"&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='//blogger.googleusercontent.com/tracker/23700903-4939326817008284671?l=sam.bluwiki.com%2Fblog%2Findex.php'/&gt;&lt;/div&gt;</description><link>http://sam.bluwiki.com/blog/2009/04/anybots-at-stanford-cool-product-expo.php</link><author>noreply@blogger.com (Sam Odio)</author></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-23700903.post-7716391042887049054</guid><pubDate>Fri, 23 Jan 2009 19:02:00 +0000</pubDate><atom:updated>2009-01-23T14:18:51.717-05:00</atom:updated><title>Adding custom attributes to django modelform fields</title><description>Finding an elegant way to solve a particular problem that's been stumping you for a while is always a nice feeling.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://twitter.com/savraj"&gt;Savraj&lt;/a&gt; and I were talking about django's modelforms today.  My modelform conversations always seem to gravitate toward lamenting about how it is hard to customize them.  That's been a problem that's bothered both of us in the past.  My solution was to customize the CSS of the form.  This worked for some elements (such as the form's length), but not others.  Another solution is to explicitly declare each field with the customized attribute, but this seams to defeat the whole purpose of modelforms.&lt;br /&gt;&lt;br /&gt;I just figured out a more flexible solution that I'll share here.  It allows me to modify the attributes of a django widget without explicitly declaring the field (which is great).  In the example I modify the onclick attribute.  You can use it to modify any attribute you want (eg. size, max_length, value, etc).&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;class PhotoForm(forms.ModelForm):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;class Meta:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;model = Photo&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;def __init__(self, *args, **kwargs):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;super(PhotoForm, self).__init__(*args, **kwargs)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.fields['name'].widget.attrs['onClick'] = "this.value =;"&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='//blogger.googleusercontent.com/tracker/23700903-7716391042887049054?l=sam.bluwiki.com%2Fblog%2Findex.php'/&gt;&lt;/div&gt;</description><link>http://sam.bluwiki.com/blog/2009/01/adding-custom-attributes-to-django.php</link><author>noreply@blogger.com (Sam Odio)</author></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-23700903.post-2853589064718452583</guid><pubDate>Thu, 08 Jan 2009 17:06:00 +0000</pubDate><atom:updated>2009-05-13T16:01:10.109-05:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>anybots</category><title>The coolest thing you'll see at CES all day</title><description>&lt;img src="http://bluwiki.com/images/3/36/Anybots_-_QA_-_CES.jpg"&gt;&lt;br /&gt;&lt;br /&gt;Anybots just announced QA, a new tele-operated robot.  I've been fortunate enough to have spent some time with it and it's pretty impressive.  If you're going to CES, it's worth checking out in person.  They're in the &lt;b&gt;Robotics tech zone at the Sands Expo center&lt;/b&gt; (Booth #72239, Exhibit hall C).&lt;br /&gt;&lt;br /&gt;The form factor is similar to &lt;a href="http://www.youtube.com/watch?v=8gJA230jprc"&gt;Monty&lt;/a&gt; except much simpler.  This means the cost will be in the thousands, not the hundreds of thousands.    Unlike monty, QA is 100% battery powered, and gets 4-6 hours of runtime on every charge.   Monty's pneumatics required it to be tethered at all times.  Also, its much lighter at around 35lbs.  Monty is too heavy to pick up.&lt;br /&gt;&lt;br /&gt;The obvious disadvantage is that QA doesn't have arms and therefore no real way to manipulate its environment.  While I'm sure that it was a hard decision to move forward without arms, it was probably smart.  Arms are hard to get working reliably and require a custom user interface.  QA can can be controlled by any laptop that's connected to the internet.  &lt;br /&gt;&lt;br /&gt;I can imagine a number of applications where a mobile telepresence robot is still valuable - even without arms.  However it will take people more creative than me to think of all the ways QA could be used.  We might see these robots patrolling dangerous neighborhoods in a few years, calling in the cops when any suspicious activity is observed.  Who knows.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Edit, 10:09AM&lt;/b&gt; Anybots has updated their website with more details.  Head over to their &lt;a href="http://anybots.com/abouttherobots.html"&gt;about the robots&lt;/a&gt; page.&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;img src="http://bluwiki.com/images/thumb/7/7b/Anybots-QA.jpg/250px-Anybots-QA.jpg"&gt;&lt;br /&gt;&lt;img src="http://bluwiki.com/images/thumb/a/a1/Anybots-QA_bending.jpg/250px-Anybots-QA_bending.jpg"&gt;&lt;br /&gt;&lt;img src="http://bluwiki.com/images/thumb/3/30/Anybots_-_QA-Closeup.jpg/250px-Anybots_-_QA-Closeup.jpg"&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='//blogger.googleusercontent.com/tracker/23700903-2853589064718452583?l=sam.bluwiki.com%2Fblog%2Findex.php'/&gt;&lt;/div&gt;</description><link>http://sam.bluwiki.com/blog/2009/01/coolest-thing-youll-see-at-ces-all-day.php</link><author>noreply@blogger.com (Sam Odio)</author></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-23700903.post-6666420350897783840</guid><pubDate>Sat, 13 Dec 2008 03:13:00 +0000</pubDate><atom:updated>2008-12-12T22:19:28.257-05:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>django</category><title>Django tip: AttributeError: 'str' object has no attribute 'has_header'</title><description>Here's another quick Django tip that I couldn't find an answer for on google:&lt;br /&gt;&lt;blockquote&gt;AttributeError: 'str' object has no attribute 'has_header'&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;The error is the result of returning a string in a view instead of using HttpResponseRedirect.  For example I accidentally wrote:&lt;br /&gt;&lt;blockquote&gt;return urlresolvers.reverse('crowd-detail')&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;When what I meant was:&lt;br /&gt;&lt;blockquote&gt;return HttpResponseRedirect(urlresolvers.reverse('crowd-detail'))&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Hope that helps someone out there.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='//blogger.googleusercontent.com/tracker/23700903-6666420350897783840?l=sam.bluwiki.com%2Fblog%2Findex.php'/&gt;&lt;/div&gt;</description><link>http://sam.bluwiki.com/blog/2008/12/django-tip-attributeerror-str-object.php</link><author>noreply@blogger.com (Sam Odio)</author></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-23700903.post-1453630373617304239</guid><pubDate>Wed, 26 Nov 2008 05:17:00 +0000</pubDate><atom:updated>2009-05-13T15:58:54.758-05:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>ipodhash</category><title>In defense of Ipodhash</title><description>The author of the Ipodhash project recently sent me an email explaining why Ipodhash does not violate Apple's DMCA copyright.  I thought I'd republish it here.  I can't vouch for the accuracy of his defense, but it sounds like an interesting argument.&lt;br /&gt;&lt;br /&gt;&lt;div style="background-color: #F6F6F6; padding: 1em; border: 1px dashed #CCC;"&gt;&lt;br /&gt;The iPod hash is added to iTunes database to protect it against&lt;br /&gt;modification by third party utilities (to prevent third party&lt;br /&gt;utilities from synching with iPod or iPhone). Now there are a few&lt;br /&gt;points&lt;br /&gt;&lt;br /&gt;1) iTunesDB does not fall under the category of copyrighted material.&lt;br /&gt;The iPod hash protects the database. A database is not copyrighted&lt;br /&gt;information. It is created on the user iPhone/iPod by iTunes, and&lt;br /&gt;iTunes adds this hash to make sure that no other application can&lt;br /&gt;modify the database. But that does not make the "database" a&lt;br /&gt;copyrighted material.&lt;br /&gt;&lt;br /&gt;2) The hash protects the database from writing, i.e. Thirdparty&lt;br /&gt;applications can still read the  database in presence of this hash.&lt;br /&gt;DRM schemes usually prevent reading by thirdparty applications. Hence&lt;br /&gt;this scheme does not fall under DRM protection.&lt;br /&gt;&lt;br /&gt;3) The DMCA does not outlaw dissemination of information, which could&lt;br /&gt;lead to circumvention devices.&lt;br /&gt;&lt;br /&gt;4) We are doing this for interoperability with other platforms (such&lt;br /&gt;as linux). DMCA explicitly allows reverse engineering for&lt;br /&gt;compatibility purposes.&lt;br /&gt;&lt;br /&gt;Hence I believe that there was nothing illegal, about the project.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='//blogger.googleusercontent.com/tracker/23700903-1453630373617304239?l=sam.bluwiki.com%2Fblog%2Findex.php'/&gt;&lt;/div&gt;</description><link>http://sam.bluwiki.com/blog/2008/11/in-defense-of-ipodhash.php</link><author>noreply@blogger.com (Sam Odio)</author></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-23700903.post-6081211506603095051</guid><pubDate>Tue, 25 Nov 2008 20:16:00 +0000</pubDate><atom:updated>2009-05-13T15:59:22.457-05:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>ipodhash</category><title>EFF agrees to represent BluWiki, responds to Apple</title><description>Great news:  The Electronic Frontier Foundation has agreed to represent BluWiki regarding Apple's &lt;a href="http://bluwiki.com/go/Ipodhash/Takedown"&gt;takedown request&lt;/a&gt; of the &lt;a href="http://bluwiki.com/go/Ipodhash"&gt;Ipodhash project&lt;/a&gt;.  The EFF has also published a formal response to Apple's cease and desist email: &lt;a href="http://www.eff.org/deeplinks/2008/11/apple-confuses-speech-dmca-violation"&gt;Apple Confuses Speech with a DMCA Violation&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Also, after writing a &lt;a href="http://yro.slashdot.org/article.pl?sid=08/11/23/017227"&gt;public letter&lt;/a&gt; to the author of the project, he has contacted us.  He sent me an extensive defense of his project that explains why he believes it doesn't violate the DMCA.  I hope to publish it as soon as I can get his permission.&lt;br /&gt;&lt;br /&gt;Right now our biggest fear is that after we contest this issue, Apple might go to Slicehost or Namecheap and slap them with takedown notices for my accounts.  If they do that, all of my sites could be forced offline, including BluWiki.  I'm currently trying to contact them to at least make them aware of this issue.&lt;br /&gt;&lt;br /&gt;I look forward to working with the EFF and Apple to resolve this issue and get the Ipodhash project back online :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='//blogger.googleusercontent.com/tracker/23700903-6081211506603095051?l=sam.bluwiki.com%2Fblog%2Findex.php'/&gt;&lt;/div&gt;</description><link>http://sam.bluwiki.com/blog/2008/11/eff-agrees-to-represent-bluwiki.php</link><author>noreply@blogger.com (Sam Odio)</author></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-23700903.post-90945544086149960</guid><pubDate>Sat, 22 Nov 2008 19:06:00 +0000</pubDate><atom:updated>2009-05-13T15:59:04.548-05:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>ipodhash</category><title>Support free speech, find author of Ipodhash</title><description>&lt;img src="http://w2.eff.org/press/logos/thumbs/EFF-logo-trans.gif" style="float:right;"&gt;&lt;br /&gt;On the 14th &lt;a href="http://www.omm.com/ianramage/"&gt;Ian Ramage&lt;/a&gt; of O'Melveny &amp; Myers LLP contacted me regarding the &lt;a href="http://bluwiki.com/go/Ipodhash"&gt;Ipodhash project&lt;/a&gt; (hosted at BluWiki).  They represent Apple and requested that I take the Ipodhash project offline.&lt;br /&gt;&lt;br /&gt;Because BluWiki is a free service and doesn't have much cash or a legal team, I swallowed my pride and complied.  Since then, the story has been picked up by &lt;a href="http://yro.slashdot.org/article.pl?sid=08/11/20/201246"&gt;slashdot&lt;/a&gt; and &lt;a href="http://arstechnica.com/journals/apple.ars/2008/11/21/apple-lawyers-hand-ipod-hash-cracking-site-a-dmca-notice"&gt;arstechnicia&lt;/a&gt;.  Both sites linked to the page where I asked for legal assistance from anyone who has experience in these issues.  &lt;br /&gt;&lt;br /&gt;I've received a flood of emails from interested individuals who want to help.  Most importantly, I was contacted by &lt;a href="http://www.eff.org/about/staff/fred-von-lohmann"&gt;Fred von Lohmann&lt;/a&gt; from the EFF.  They're currently evaluating whether they will represent us against any potential Apple litigation.  This would be great, &lt;b&gt;because it will enable BluWiki to continue to host the project&lt;/b&gt; while working with EFF to address Apple's concerns.&lt;br /&gt;&lt;br /&gt;However, before the EFF commits to representing us against Apple, they want to speak to the author of the Ipodhash project on BluWiki.  I'm posting this public plea hoping that the author, or someone who knows the author, might read it.&lt;br /&gt;&lt;br /&gt;&lt;div style="background-color: #F6F6F6; padding: 1em; border: 1px dashed #CCC;"&gt;&lt;br /&gt;&lt;b&gt;Plea to the author of IpodHash:&lt;/b&gt;&lt;br /&gt;Please contact Fred at the EFF.  Fred is looking to protect &lt;b&gt;your right to free speech online&lt;/b&gt;. But he can't do so if we don't work with him.  Because Fred has expressed interest in representing both you and BluWiki, all communication is confidential and protected under the attorney-client privilege. Communication with Fred can not be released in court.&lt;br /&gt;&lt;br /&gt;If you do not contact Fred, and the EFF does not represent us, we will be &lt;b&gt;forced to comply with all of Apple's demands&lt;/b&gt;.  If Apple chooses to litigate against us, we will probably exhaust all funds in our defense.  Out of money, BluWiki could ultimately be &lt;b&gt;forced offline&lt;/b&gt;.  This would be one more small step backwards in the fight for the right to free speech.&lt;br /&gt;&lt;br /&gt;Fred's phone number is +1 415 436 9333 x123 and his email is fred@eff.org.  You can find his PGP key &lt;a href="http://www.eff.org/about/staff/fred-von-lohmann"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I sincerely hope that you contact the EFF so that we can restore this project and work with Apple in a way that does not violate BluWiki's founding principle: &lt;a href="http://bluwiki.com/go/BluWiki:About"&gt;giving everyone the tools to express themselves online without censorship&lt;/a&gt;.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='//blogger.googleusercontent.com/tracker/23700903-90945544086149960?l=sam.bluwiki.com%2Fblog%2Findex.php'/&gt;&lt;/div&gt;</description><link>http://sam.bluwiki.com/blog/2008/11/support-free-speech-find-author-of.php</link><author>noreply@blogger.com (Sam Odio)</author></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-23700903.post-2321769861459246917</guid><pubDate>Fri, 31 Oct 2008 17:25:00 +0000</pubDate><atom:updated>2009-05-13T16:02:51.146-05:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>apple</category><title>Dear apple</title><description>&lt;style type="text/css"&gt;.flickr-photo { }.flickr-frame { float: right; text-align: center; margin-left: 15px; margin-bottom: 15px; }.flickr-caption { font-size: 0.8em; margin-top: 0px; }&lt;/style&gt;&lt;div class="flickr-frame"&gt; &lt;a href="http://www.flickr.com/photos/25798010@N05/2989762434/" title="photo sharing"&gt;&lt;img src="http://farm4.static.flickr.com/3187/2989762434_afb384d1c1_t.jpg" class="flickr-photo" alt="Picture 1" /&gt;&lt;/a&gt;&lt;br /&gt; &lt;span class="flickr-caption"&gt;  &lt;a href="http://www.flickr.com/photos/25798010@N05/2989762434/"&gt;Apple Receipt&lt;/a&gt;,&lt;br /&gt; originally uploaded by &lt;a href="http://www.flickr.com/people/25798010@N05/"&gt;odiosam&lt;/a&gt;. &lt;/span&gt;&lt;/div&gt;Please stop sending me receipts for free downloads from the app store.  They're clogging my inbox.&lt;br /&gt;&lt;br /&gt;While you're at it, you might as well not require that I input my account password to download them as well.  It's a hassle on the tiny keyboard, and pointless (somebody's going to steal my phone and rack up charges downloading &lt;i&gt;free&lt;/i&gt; software?)&lt;br clear="all" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='//blogger.googleusercontent.com/tracker/23700903-2321769861459246917?l=sam.bluwiki.com%2Fblog%2Findex.php'/&gt;&lt;/div&gt;</description><link>http://sam.bluwiki.com/blog/2008/10/dear-apple.php</link><author>noreply@blogger.com (Sam Odio)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-23700903.post-7244846590232486445</guid><pubDate>Wed, 22 Oct 2008 17:57:00 +0000</pubDate><atom:updated>2009-05-13T15:59:46.684-05:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>django</category><category domain='http://www.blogger.com/atom/ns#'>how-to</category><title>Using Gmail with Django</title><description>It's easy to set up django to send emails through Gmail.  Just use the following settings:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;DEFAULT_FROM_EMAIL = 'user@gmail.com'&lt;br /&gt;EMAIL_HOST = 'smtp.gmail.com'&lt;br /&gt;EMAIL_HOST_USER = 'user@gmail.com'&lt;br /&gt;EMAIL_HOST_PASSWORD = 'password'&lt;br /&gt;EMAIL_USE_TLS = True&lt;br /&gt;EMAIL_PORT = 25&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Gmail supports other ports, which you can use as well.  This is important if you're running thee server on your local machine, and your ISP blocks port 25.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='//blogger.googleusercontent.com/tracker/23700903-7244846590232486445?l=sam.bluwiki.com%2Fblog%2Findex.php'/&gt;&lt;/div&gt;</description><link>http://sam.bluwiki.com/blog/2008/10/using-gmail-with-django.php</link><author>noreply@blogger.com (Sam Odio)</author></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-23700903.post-5522770834983661614</guid><pubDate>Tue, 21 Oct 2008 20:28:00 +0000</pubDate><atom:updated>2009-05-13T16:03:06.084-05:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>twitter</category><title>testing out twitter feed.</title><description>I've been trying to integrate all my online "personalities" and I think I've finally got it.&lt;br /&gt;&lt;br /&gt;Here's what I have:&lt;br /&gt;- Startup twitter feed (divvyshot)&lt;br /&gt;- Personal twitter feed (sodio)&lt;br /&gt;- This blog&lt;br /&gt;- The divvyshot blog (coming soon)&lt;br /&gt;- Friendfeed&lt;br /&gt;- Facebook&lt;br /&gt;- Linked in&lt;br /&gt;&lt;br /&gt;What I'm doing is using &lt;a href="http://twitterfeed.com"&gt;twitterfeed&lt;/a&gt; to repost my blog posts on their respective twitter feeds.  Then I'm using FriendFeed to aggregate the two twitter feeds, along with LinkedIn.  I think have installed the facebook FriendFeed plugin, which should aggregate all that data on my fb wall.&lt;br /&gt;&lt;br /&gt;We'll see how it all goes...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='//blogger.googleusercontent.com/tracker/23700903-5522770834983661614?l=sam.bluwiki.com%2Fblog%2Findex.php'/&gt;&lt;/div&gt;</description><link>http://sam.bluwiki.com/blog/2008/10/testing-out-twitter-feed.php</link><author>noreply@blogger.com (Sam Odio)</author></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-23700903.post-846673145106662180</guid><pubDate>Fri, 26 Sep 2008 17:26:00 +0000</pubDate><atom:updated>2008-09-26T12:46:22.528-05:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>productivity</category><title>taking quick notes</title><description>I usually email myself stuff I want to remember.  That's nothing new - I'm sure most of heard of it before.&lt;br /&gt;&lt;br /&gt;But what about quick notes that don't merit an email, or even a post-it?&lt;br /&gt;&lt;br /&gt;For example, whenever I'm on the phone with some company I get a confirmation number... they're usually worthless but sometimes can come in handy.  I don't want to clutter my inbox or my desk with these confirmation numbers.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Instead, I google them.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;For example, I just talked to USPS about an address delivery problem.  They gave me a confirmation number, which I promptly googled: "usps confirmation #CO329235921"  There's a google bar in most browsers these days... so and I leave my browser running throughout the day so this is pretty convenient.  Then if I ever need to talk to them again, I hit CMD-Y (for history), and search "usps conf..."&lt;br /&gt;&lt;br /&gt;Of course google searches aren't 100% private - so be sure to only google stuff you can afford to publicize. &lt;br /&gt;&lt;br /&gt;Another tip: I set my browser to keep a 120-day history  (I find I'm always looking for stuff I visited several months ago, and storage is cheap, so why not).  You may want to consider changing your default expiration if you think you're going to need your notes for longer than a month.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='//blogger.googleusercontent.com/tracker/23700903-846673145106662180?l=sam.bluwiki.com%2Fblog%2Findex.php'/&gt;&lt;/div&gt;</description><link>http://sam.bluwiki.com/blog/2008/09/taking-quick-notes.php</link><author>noreply@blogger.com (Sam Odio)</author></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-23700903.post-5569047864528565180</guid><pubDate>Thu, 18 Sep 2008 15:40:00 +0000</pubDate><atom:updated>2009-05-13T16:00:12.881-05:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>django</category><title>Tried change_stage in module django.contrib.admin.views.main. Error was: 'module' object has no attribute 'change_stage'</title><description>Another Django upgrade hint:&lt;br /&gt;&lt;blockquote&gt;Tried change_stage in module django.contrib.admin.views.main. Error was: 'module' object has no attribute 'change_stage'&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Your forgot to update urls.conf as follows:&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;# OLD:&lt;br /&gt;from django.conf.urls.defaults import *&lt;br /&gt;&lt;br /&gt;urlpatterns = patterns('',&lt;br /&gt;    (r'^admin/', include('django.contrib.admin.urls')),&lt;br /&gt;)&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;# NEW:&lt;br /&gt;from django.conf.urls.defaults import *&lt;br /&gt;from django.contrib import admin&lt;br /&gt;&lt;br /&gt;admin.autodiscover()&lt;br /&gt;&lt;br /&gt;urlpatterns = patterns('',&lt;br /&gt;    (r'^admin/(.*)', admin.site.root),&lt;br /&gt;)&lt;br /&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='//blogger.googleusercontent.com/tracker/23700903-5569047864528565180?l=sam.bluwiki.com%2Fblog%2Findex.php'/&gt;&lt;/div&gt;</description><link>http://sam.bluwiki.com/blog/2008/09/tried-changestage-in-module.php</link><author>noreply@blogger.com (Sam Odio)</author></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-23700903.post-4497106263574843792</guid><pubDate>Thu, 18 Sep 2008 15:40:00 +0000</pubDate><atom:updated>2008-09-18T10:42:00.672-05:00</atom:updated><title>Note to self</title><description>This is an excellent post about being a web entrepreneur:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.krisjordan.com/2008/09/17/jason-fried-10-things-weve-learned-at-37signals/"&gt;Jason Fried - 10 Things We’ve Learned at 37Signals&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='//blogger.googleusercontent.com/tracker/23700903-4497106263574843792?l=sam.bluwiki.com%2Fblog%2Findex.php'/&gt;&lt;/div&gt;</description><link>http://sam.bluwiki.com/blog/2008/09/note-to-self.php</link><author>noreply@blogger.com (Sam Odio)</author></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-23700903.post-4810146034856770796</guid><pubDate>Thu, 24 Jul 2008 14:35:00 +0000</pubDate><atom:updated>2009-05-13T16:03:18.883-05:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>django</category><title>Django: Error while importing URLconf 'django.contrib.admin.urls': No module named urls</title><description>I didn't see a lot on google about this error so I thought I'd post something.  If you're getting it, it's likely you updated to the latest Django SVN release, and haven't upgraded your admin site's configuration.&lt;br /&gt;&lt;br /&gt;Read more here: http://code.djangoproject.com/wiki/NewformsAdminBranch&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='//blogger.googleusercontent.com/tracker/23700903-4810146034856770796?l=sam.bluwiki.com%2Fblog%2Findex.php'/&gt;&lt;/div&gt;</description><link>http://sam.bluwiki.com/blog/2008/07/django-error-while-importing-urlconf.php</link><author>noreply@blogger.com (Sam Odio)</author></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-23700903.post-8943637899362887816</guid><pubDate>Thu, 03 Jul 2008 14:39:00 +0000</pubDate><atom:updated>2008-07-04T13:03:05.294-05:00</atom:updated><title>One button sign up (continued)</title><description>There have been a number of comments about my previous post a &lt;b&gt;&lt;a href="http://sam.bluwiki.com/blog/2008/07/one-button-sign-up.php"&gt;one button sign up&lt;/a&gt;&lt;/b&gt;.  I thought I'd re-post them here and clarify.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;OpenID is easier: http://openid.net/&lt;/blockquote&gt;&lt;br /&gt;OpenID is easier and it's not mutually exclusive to what I'm suggesting here.  OpenID or not, many websites will still need to collect additional information.  The idea is not to force the user to give you that information in order to use basic site functionality.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;If a user sees an auction ending in 1 minute but is then required to jump through some hoops before bidding - thats just as bad an experience.&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;You're right - so maybe eBay should require accounts just to browse listings?  Obviously, that idea doesn't make sense.  You shouldn't force the user to sign up early just so that in the off chance they want to bid on an item that's ending soon, they can.&lt;br /&gt;&lt;br /&gt;Instead, I'm suggesting you give the user as much access to the site as possible, as soon as possible.  Prompt the user for additional information with messages like "Update your address for quick bidding."  If your users decide to wait, that's their decision - don't make it for them.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;I want to feel involved. Plus, if I'm using a website to the extent that I'm going to want a username and password I pretty much expect that I may have to fill out more information upon registration so it is not as bothersome.&lt;/blockquote&gt;&lt;br /&gt;I disagree.  Long and tedious registration forms are a horrible way of involving the user.  The less information a user needs to enter for the same functionality, the better.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;By giving people random user names, you force them to do more work long term.&lt;br /&gt;&lt;br /&gt;Step 1: Click the one button and get my user name Step 2: Go write it down somewhere Step 3: Cookie expires/is cleaned - now user forgets the random user name or email. Step 4: Go look it up, enter info&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;The user should never actually see (or need to remember) their random username.  What I was referring to is simply a unique backend identifier. Tracking a user without a username isn't that radical - even Amazon does it.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold; font-size=120%"&gt;Amazon (and other stores) do one button sign ups&lt;/span&gt;&lt;br /&gt;&lt;img src="http://bluwiki.com/images/c/cf/Amazon_2.png" align=right&gt;&lt;br /&gt;When I first visit Amazon, the site gives me as much functionality as possible.  I can look at products and even add them to my cart - &lt;span style="font-weight:bold;"&gt;without logging in&lt;/span&gt;.  Like I was suggesting - Amazon &lt;i&gt;does&lt;/i&gt; upsell for more information, prompting you with messages like "Sign in to turn on 1-Click ordering."&lt;br /&gt;&lt;br /&gt;After I've visited a product page, I'm in Amazon's database.  In this example, simply viewing a product is the equivalent of  "signing up" - even though the user doesn't realize that.  That's great. Sign up buttons don't always have to be big and green. Ideally, the first step of the sign up process should occur transparently.&lt;br /&gt;&lt;br /&gt;Every time I return to the site, Amazon recognizes who I am and suggests similar products to ones I've already viewed:&lt;br /&gt;&lt;br /&gt;&lt;img src="http://bluwiki.com/images/d/db/Amazon.png"&gt;&lt;br /&gt;&lt;br /&gt;Now, if I choose (or am required) to create a login, Amazon seamlessly associates it with all my previous "anonymous" data.  For example, I still have my previous browse history:&lt;br /&gt;&lt;img src="http://bluwiki.com/images/9/94/Amazon_3.png"&gt;&lt;br /&gt;&lt;br /&gt;By making it as easy as possible to start using the site, creating a "transparent user" to track my history, and up-selling to gather more information in order to gain additional functionality, Amazon is doing almost exactly what I described in the previous post.&lt;br /&gt;&lt;br /&gt;But why limit this process to online stores which by their nature must collect most user information during checkout? &lt;span style="font-weight:bold;"&gt;Every site should collect as little information as feasible and do it as late in the user experience as possible.&lt;/span&gt;  That's the whole premise behind one button sign ups.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='//blogger.googleusercontent.com/tracker/23700903-8943637899362887816?l=sam.bluwiki.com%2Fblog%2Findex.php'/&gt;&lt;/div&gt;</description><link>http://sam.bluwiki.com/blog/2008/07/one-button-sign-up-continued.php</link><author>noreply@blogger.com (Sam Odio)</author></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-23700903.post-6537956210938464341</guid><pubDate>Wed, 02 Jul 2008 21:06:00 +0000</pubDate><atom:updated>2008-07-04T13:01:52.177-05:00</atom:updated><title>One button sign up</title><description>&lt;img src="http://bluwiki.com/images/e/e3/Sign_up.png" align="left"&gt; I've stumbled across a new sign-up process: one button.  &lt;b&gt;That's it.&lt;/b&gt;  From now on, the user will only have to click a button on all of my new projects to sign up.&lt;br /&gt;&lt;br /&gt;"But Sam," you might ask, "How will you collect user information?"&lt;br /&gt;&lt;br /&gt;Easy. &lt;i&gt;Ask for it when you need it&lt;/i&gt;.  If you only ask for the user's address when the user wants to do something that requires their address, then you have a carrot to encourage the user to give you that information.&lt;br /&gt;&lt;br /&gt;If you ask for the address up front, then not only does the user have little incentive to give it to you, but you discourage the user from &lt;i&gt;signing up at all&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Take, for example, ebay's registration form:&lt;br /&gt;&lt;img src="http://bluwiki.com/images/7/78/Ebay.png"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Does ebay really need my address if I just want to watch an item?  Requiring me to fill out all this information just to preform basic actions (like watching an item or searching closed auctions) discourages me from using the site at all.&lt;br /&gt;&lt;br /&gt;Why not not create a "one button" sign up with a default user account and random username?  Allow me to use as much of the site as possible, while asking for (but not requiring) information to gain additional access.&lt;br /&gt;&lt;br /&gt;"But Sam", you counter again, "what if the user forgets their random username?"&lt;br /&gt;&lt;br /&gt;That's easy, authenticate with cookies and/or a unique URL (see craigslist).  At the same time, prompt the user (maybe at the top of every page) for a unique username or email address for logins.&lt;br /&gt;&lt;br /&gt;EDIT: I've continued this discussion in my next post, &lt;b&gt;&lt;a href="http://sam.bluwiki.com/blog/2008/07/one-button-sign-up-continued.php"&gt; One button sign up (continued)&lt;/a&gt;&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='//blogger.googleusercontent.com/tracker/23700903-6537956210938464341?l=sam.bluwiki.com%2Fblog%2Findex.php'/&gt;&lt;/div&gt;</description><link>http://sam.bluwiki.com/blog/2008/07/one-button-sign-up.php</link><author>noreply@blogger.com (Sam Odio)</author></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-23700903.post-3588817569462469473</guid><pubDate>Tue, 24 Jun 2008 03:41:00 +0000</pubDate><atom:updated>2008-06-26T11:00:44.227-05:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>twitter</category><title>Free Mohammed Maree</title><description>&lt;style type="text/css"&gt;.flickr-photo { }.flickr-frame { float: right; text-align: center; margin-left: 15px; margin-bottom: 15px; }.flickr-caption { font-size: 0.8em; margin-top: 0px; }&lt;/style&gt;&lt;div class="flickr-frame"&gt; &lt;a href="http://www.flickr.com/photos/lancerlord/2449032062/" title="photo sharing"&gt;&lt;img src="http://farm4.static.flickr.com/3128/2449032062_ac9d089ed7_t.jpg" class="flickr-photo" alt="Student 'Twitters' his way out of Egyptian jail" /&gt;&lt;/a&gt;&lt;br /&gt; &lt;span class="flickr-caption"&gt;  &lt;a href="http://www.flickr.com/photos/lancerlord/2449032062/"&gt;Student 'Twitters' his way out of Egyptian jail&lt;/a&gt;,&lt;br /&gt; originally uploaded by &lt;a href="http://www.flickr.com/people/lancerlord/"&gt;LCLD&lt;/a&gt;. &lt;/span&gt;&lt;/div&gt;By now, you've all probably heard of James Buck - a &lt;a href="http://www.cnn.com/2008/TECH/04/25/twitter.buck/index.html"&gt;university student jailed in egypt&lt;/a&gt;.  After twittering that he was arrested, friends, journalists, bloggers and many in the online community rallied for his release. &lt;br /&gt;&lt;br /&gt;While it's nice to see the world unite behind such a good cause it's unfortunate that James' friend (Mohammed) hasn't received the same level of attention.&lt;br /&gt;&lt;br /&gt;Needless to say he's still in some Egyptian jail, having endured several weeks of torture: &lt;a href="http://jameskarlbuck.com/?p=61"&gt;http://jameskarlbuck.com/&lt;/a&gt;&lt;br clear="all" /&gt;&lt;br&gt;&lt;br /&gt;&lt;b&gt;Interested in helping?  &lt;a href="http://jameskarlbuck.com/?p=46"&gt;Check out James' blog&lt;/a&gt;&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='//blogger.googleusercontent.com/tracker/23700903-3588817569462469473?l=sam.bluwiki.com%2Fblog%2Findex.php'/&gt;&lt;/div&gt;</description><link>http://sam.bluwiki.com/blog/2008/06/free-mohammed-maree.php</link><author>noreply@blogger.com (Sam Odio)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-23700903.post-3091715746948908882</guid><pubDate>Thu, 19 Jun 2008 01:36:00 +0000</pubDate><atom:updated>2009-05-13T16:03:38.504-05:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>embarq</category><title>Well I cancelled embarq... and I now have a new ISP</title><description>&lt;style type="text/css"&gt;.flickr-photo { }.flickr-frame { float: right; text-align: center; margin-left: 15px; margin-bottom: 15px; }.flickr-caption { font-size: 0.8em; margin-top: 0px; }&lt;/style&gt;&lt;div class="flickr-frame"&gt; &lt;a href="http://www.flickr.com/photos/25798010@N05/2591764122/" title="photo sharing"&gt;&lt;img src="http://farm4.static.flickr.com/3259/2591764122_b91077bae6_t.jpg" class="flickr-photo" alt="My new ISP" /&gt;&lt;/a&gt;&lt;br /&gt; &lt;span class="flickr-caption"&gt;  &lt;a href="http://www.flickr.com/photos/25798010@N05/2591764122/"&gt;My new ISP&lt;/a&gt;,&lt;br /&gt; originally uploaded by &lt;a href="http://www.flickr.com/people/25798010@N05/"&gt;odiosam&lt;/a&gt;. &lt;/span&gt;&lt;/div&gt;I've had embarq for about 2 years, and I think I'm fed up with them.  I was paying ~$200/mo for business class DSL with a few static IPs.  For that price, the connection should be FAST and rock solid.&lt;br /&gt;&lt;br /&gt;It wasn't.&lt;br /&gt;&lt;br /&gt;After about a weekend of downtime (which caused a permanent 35% decrease in BluWiki's traffic) - I was done.  Here's my solution: I'm hosting my servers on slicehost for ~$130 / month, and for my personal internet, well, I'm using my friends' connections :)&lt;br /&gt;&lt;br /&gt;In the attached photo, you see what I came up with to facilitate doing that.&lt;br /&gt;Parts include:&lt;br /&gt;- DLB 2300 Deliberant AP (no longer sold, had this laying around)&lt;br /&gt;- Buffalo WHR-G125 (not sold in the US, you have to buy it off ebay)&lt;br /&gt;- &lt;a href="http://www.hyperlinktech.com/item.aspx?id=1123"&gt;U.FL to RP-SMA adapter&lt;/a&gt; (for the buffalo's antenna)&lt;br /&gt;- Hawking Hi-Gain Directional Corner Antenna 15db&lt;br /&gt;- &lt;a href="http://www.hyperlinktech.com/productfamily.aspx?id=312"&gt;Yagi 2.4GHz 14.5dBi&lt;/a&gt; &lt;br /&gt;- 4 port switch&lt;br /&gt;- Power strip&lt;br /&gt;- Cheap tripod&lt;br /&gt;&lt;br /&gt;Basically, I followed the instructions over at i-hacked (www.i-hacked.com/content/view/261/42/), except I substituted the WHR-G125 for the router and the 90 degree corner antenna instead of the yagi.  This setup will scan within a 90 degree radius for the strongest open network.&lt;br /&gt;&lt;br /&gt;I then use the DLB 2300 in WISP mode to aim the Yagi antenna at the network and repeat it on the switch.&lt;br /&gt;&lt;br /&gt;I've decided against repeating the network wirelessly to eliminate any WIFI interference.&lt;br /&gt;&lt;br /&gt;It works pretty well :)&lt;br clear="all" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='//blogger.googleusercontent.com/tracker/23700903-3091715746948908882?l=sam.bluwiki.com%2Fblog%2Findex.php'/&gt;&lt;/div&gt;</description><link>http://sam.bluwiki.com/blog/2008/06/well-i-cancelled-embarq-and-i-now-have.php</link><author>noreply@blogger.com (Sam Odio)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-23700903.post-53366499845568516</guid><pubDate>Thu, 05 Jun 2008 04:21:00 +0000</pubDate><atom:updated>2008-06-04T23:30:36.079-05:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>mediawiki</category><category domain='http://www.blogger.com/atom/ns#'>bluwiki</category><category domain='http://www.blogger.com/atom/ns#'>terminal</category><title>Error creating thumbnail: /path/to/wiki/bin/ulimit.sh: xrealloc: ../bash/subst.c:514: cannot reallocate 512 bytes</title><description>MediaWiki's software was giving me this error, and I couldn't find a solution on google.  I thought I'd post one.&lt;br /&gt;&lt;br /&gt;I was able to fix the problem by moving the bin folder to bin.bak, downloading a new copy of mediawiki, and copying the bin folder from the new installation.&lt;br /&gt;&lt;br /&gt;I suspect that the error occurs when you set the permissions on ulimit.sh to global read-write (777).  The ulimit.sh in the new bin directory was set with limited permissions: &lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;total 20K&lt;br /&gt;-rwxr-xr-x 1 root root 88 Jun  5 04:18 svnstat&lt;br /&gt;-rwxr-xr-x 1 root root 52 Jun  5 04:18 ulimit-tvf.sh&lt;br /&gt;-rw-r--r-- 1 root root 53 Jun  5 04:18 ulimit.sh&lt;br /&gt;-rwxrwxrwx 1 root root 53 Jun  2 01:54 ulimit.sh.bak&lt;br /&gt;-rwxr-xr-x 1 root root 48 Jun  5 04:18 ulimit4.sh&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Correcting the error may be as easy as changing the permissions, but if that doesn't work, you can follow the steps I outlined above.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='//blogger.googleusercontent.com/tracker/23700903-53366499845568516?l=sam.bluwiki.com%2Fblog%2Findex.php'/&gt;&lt;/div&gt;</description><link>http://sam.bluwiki.com/blog/2008/06/error-creating-thumbnail.php</link><author>noreply@blogger.com (Sam Odio)</author></item></channel></rss>
