A colleague of ours (HN name spolsky) met with Bill Gates in the past and was pretty nervous about that interaction:
And what a fantastic thing to do.
Hope you meet lots of interesting people!
It seems to me that HN is relatively neutral in terms of your opinion; People here seem to avoid the vice of downvoting based simply on a difference of opinion, at least in my experience. The community generally seems to award karma based on how thoughtful and carefully-constructed your comments are. I have one one occasion been downvoted into oblivion for politely and carefully expressing an opinion that is generally morally unpalatable, but someone came to my defence and I eventually ended up with a small amount of positive karma for the comment.
I think the easiest rule of thumb is to try and be the opposite of cable news. The calmer and more dispassionate your tone, the more detailed and precise you are in your reasoning, the more carefully you reference reliable sources, the better your chances of being strongly upvoted.
"Vertical list of applications??? Microsoft what have you been smoking?"
(As we're quoting rap lyrics today) I think that you'll be doing just fine if you relax a little.
> Is HN only about saying nice things about everything?
This implies fault lies with HN. You make the assumption that you are right (despite your PS).
A better question is:
> I'd like to contribute; can anyone offer advice to improve my comments?
Humility, and no assumption.
> I don't know maybe it's me, maybe I have too radical opinions on stuff.
Again, this is conceited. It's not your 'radicalism.' It's your ego talking.
> I am not saying neither that I'm always right nor that I never deserved the downvote.
But your entire comment suggested that you weren't in the wrong.
> I may be alone in this, but I like expressing my thoughts/feelings, as a matter of fact, most of the time I want to make it really clear that what I say is just my the way I see it.
No, you aren't. You aren't "alone" in this. Rather, your ability to communicate effectively is lacking. Indeed, it's very egotistical. You're focused completely on "your opinion" and frankly, your opinion holds no value.
In all your comments, I see you place a lot of value on your opinion. Your opinion can't be wrong, and it's yours, and you'll share it. But who are you that we should care about your opinion?
This doesn't mean you can't offer opinion. It's just that you need to qualify you opinion with reasoning. You can't just state an opinion and expect everyone to see the wisdom.
Listen, you seem like your interested in providing value here. Disagree with whatever you want. But don't just disagree, explain why you disagree. With examples is best!
Do more than ask pointless questions (especially questions that are answered). Anyone can ask questions.
> Vertical list of applications??? Microsoft what have you been smoking?
Provides no value.
> Vertical list of applications? I'm not sure this will grow well. As users add applications, it will make for a lot of scrolling.
Goes further and provides actual meaning. People might still disagree, but now you've explained your opinion.
You've generated discussion.
Hopefully all of this (thread) helps! =)
People on HN enjoy criticism just fine, but they don't particularly enjoy standing next to a spigot of feces. The problem is that vitriol and excessive emotion skews debate. It makes the debate about the emotion itself, rather than about the issue at hand. When people get into a shouting match their brains shut down and people stop arguing rationally (the fight-or-flight response kicks in, blood starts being withdrawn from the extremities and some of the higher brain-function areas, the reptile brain starts taking over, and it becomes much more difficult to admit being wrong or that the other person might be right). This sort of thing is not helpful if the goal is productive rational debate.
"The reason you were downvoted and will continue to be downvoted is because you don’t discuss topics with any intellectual integrity."
The comment was interesting since it was such a pure, mirror reflection of what the commenter was doing. For instance, they posted anonymously, whereas I always write using my real name, yet they called me a troll. They also accused me of repeating myself, though they had also repeated themselves many times. You can see the comment here:
As the post indicates, I'm feeling ambivalent about Hacker News right now. Sometimes the conversations are really interesting, but there is also a lot of noise. Sometimes I learn a lot by participating in the conversations, but other times I feel like I'm talking to people who have no interest in understanding what I'm trying to say, and who are willing to use downvoting as a method of shouting me down.
I'm ambivalent. I enjoy this forum, but I'm also thinking I should probably invest my energy elsewhere. I've been reading this site for almost 2 years now, and I've learned a great deal, and every day there are interesting new articles posted. All the same, I get bored with conversations where I think the other person isn't really interested in hearing what I might have to say. And no doubt, vice versa, of course - clearly I upset someone, if they were willing to pursue the conversation to my own blog (where I was writing about Hacker News).
There's a whole spectrum of ways to disagree, all of which have value in the right situation. Here, a good portion of that spectrum has been lobbed off in the name of niceness and nothing more. Is it worth it? Decide for yourself. I say nay.
Bonus disease: PG worship. Don't get me wrong, he's a brilliant guy; we're all here (directly or indirectly) because of him. But it goes too far.
Everyone can be a dick, sometimes. Heck, I'm probably a dick the majority of the time, but I decided a while back to be nicer to people on the Internet. That's part of the reason I upvote people who prove me wrong and thank them for it. If my horizons are expanded, or my assumptions challenged here and they stand on their own two feet then great. If not, then even better - I'm less wrong, so to speak.
The thing about this community is that brings together people like Zed Shaw and Seth Godin, two people I regard as polar opposites, each with their own focus. The people on the Seth side of the fence will be perhaps more likely to be turned off by the Zed Shaws of the world, as is vice versa.
Challenging them is fine and should be encouraged. Giving them grief, less so.
Usually when I read a techcrunch article posted here, I feel as though I die a little inside. Still, people like Gabriel, Patrick, Colin and even Thomas stand out to me as guys that I enjoy reading.
When criticising, it might help to consider the following:
* What does my comment add to the discussion?
* Can my comment be interpreted in a way other than how I intended it? (In which case a rewrite may be in order)
* How will other readers perceive what I write? (as an extension of the last one).
You get out what you put in. If you want to criticise, fine. But please do so in a constructive manner.
Any HN'ers got any more ideas for constructive criticism?
Since this is HN, you might consider reading pg's essay how to disagree, and apply it to your comments before adding them: http://www.paulgraham.com/disagree.html Note that articulate, dispassionate criticism is one of the most difficult skills to master - so don't be discouraged if it takes a while to make progress. It's a valuable skill, and well worth the effort.
tl;dr HN upvotes intellectual disagreement.
(See what I did there?)
1. Avoid unnecessary profanity.
2. Avoid ridicule and sarcasm, especially when directed at other HNers.
3. Avoid complaining about "trolls" downvoting you. In fact, avoid discussing karma in general.
4. Avoid using emotionally laden terms of disapproval. Instead use direct objective language ("There were rendering artifacts in the rotation effects") or clearly state the subjective aspects of what you are discussing ("Something about the rotation effects rubs me the wrong way.")
5. Be concise and relatively formal in your language.
"Microsoft what have you been smoking?"; "You are so fuckin wrong"; "OMG so much stupidity."; "Windows Phone 7 is a really good vapor-ware. And ridiculous patents + broken patent system are the key to success" (when Windows Phone 7 had already shipped to OEMs); "I guess if they get killed, they had it coming."; "(YAWN) You could have written that code in most languages with most databases years ago!"
We're looking for a level of respect that isn't shown by those phrases. The Hacker News Guidelines (http://ycombinator.com/newsguidelines.html) are a good place to start:
* Be civil. Don't say things you wouldn't say in a face to face conversation.
It's common to bash people on the internet, but we tend not to like that here. We do disagree here. Recently there was a large thread on Ubercab and whether their service is so ethical and responsible. Lots of people with lots of differing viewpoints were upvoted. They raised issues (rather than just being blindly for or against someone). It was enlightening to see the nuance and insight that lots of different people brought to the discussion and how complex the issue was. You can disagree without attacking a person.
* When disagreeing, please reply to the argument instead of calling names. E.g. "That is an idiotic thing to say; 1 + 1 is 2, not 3" can be shortened to "1 + 1 is 2, not 3."
Comments that include things like "OMG so much stupidity" just make people feel attacked and defensive. The statement doesn't add to the discussion and just makes things more combative. It's as if you're trying to discourage people from disagreeing with you because you'll call them stupid if they do. "I think this is important to consider"; "OMG, you're just so stupid". It isn't helpful. Plus, there are plenty of places on the internet if your interest is flamewars.
* Resist complaining about being downmodded. It never does any good, and it makes boring reading.
Lame jabs, cheap shots, bad jokes, and vapid comments DO seem to get rightly pounded down.
I personally, think the downvote activation should be a combination of length of membership and karma. It does seem that as of late, there has been an increase in "I don't agree with you, so down you go".
Anyway, I am getting off on a tangent. There are a good deal of developers who disagree with this, some instead of forming a rebuttal use the down arrow as their rebuttal.
For me personally I see it, when used in that context, as a "I don't have a strong rebuttal, so I will try to make you post go away" line of reasoning. I had one guy get so annoyed at me, that he went in and bombed me on any post that he and I did not have an exchange on (you can not down vote if you reply to a post).
To me those kinds of actions are site killers, fortunately for HN, it has not reached a critical mass, and it still has a good deal of intellectuals looking for good conversation. I have just chalked it up to, oh well you take you licks. At the point that all of my post get downvoted then I will know that I have been voted off the island, and that it is time for me to leave, which is fine as the community will not be representative of the people I am looking to interact with. As of yet that is not the case, so I just go with the flow.
The circle-jerk behavior is what is damaging the credibility of the startup scene and it's making it harder for me to convince my fellow programmers that it's the place to be.
I don't think just low karma users are guilty of down-voting in inappropriate situations. I had a discussion with Justin Kan awhile back and he was demonstrating the viewpoint that you're finding problematic.
But yes. Critical comments: frequently upvoted. Non-critical, negative comments: essentially worthless for the sake of discussion, and are frequently downvoted here. Not many other places online, but I think it's part of why the community is in general so much more useful and mature than many others.
Either way you look at it, there's a bit of good and bad in HN.
My diatribe against django: http://news.ycombinator.com/item?id=1490415
Me telling some digg engineer that the plan to switch to cassandra was retarded, way back in '09: http://news.ycombinator.com/item?id=813967
Calling the content of a submitted article 'crap': http://news.ycombinator.com/item?id=772693
I guess I might get away with negativity without being modded into oblivion, my secret is that my posts have some sort of information content.
For the most part the moderation system works. But it forces you to think very hard about how valuable your comment is.
Unfortunately there is always a temptation with karma systems to use them for "social proof". Social proof is implemented by downvoting opinions you disagree with and vice versa. The only ego-preserving way of dealing with this is to view your minority opinions as "ahead of your time" and resolve to politely keep up the thought leadership.
EDIT: I bit and looked at your comments. Suggestions on the thought leadership appear in another message.
BTW: It's not the Karma points that bothered me, it's the grayish color that some of my comments got and that some downvoters just downvote and don't respond.
This applies to nearly every one of your comments on Microsoft.
Really good trolls? does getting downvoted really get you all that riled up? As far as I can tell, once you are over 100 and can downvote, getting more carma does not alter your user experience.
I'd suggest you grow a thicker skin, especially if you want to say mean things on the internet.
constructive critics is very hard. By cc i mean comments that will not make feel poster like complete idiot, but rather gently stimulate him to rethink something about his idea, and went away with feeling of appreciation of your insightful efforts to help him.
one of my teachers told me: its easy to punch your opponent in the face. its much harder to kindly explain him why is he wrong in his intents, so that after that conversation he would ask you to become his sensei.
Seriously though, nobody likes a negative Nancy. From looking at your comments it isn't that they aren't positive, it's that they are just ranting.
Just like Reddit, downvotes should be cast on comments/submissions that don't add anything as opposed to providing an unpopular opinion.
If people knew what was wrong with what they were saying, then they wouldn't say it.
People on HN are happy to pull something apart if it's incorrect, they just do it in an even tempered manner.
Additionally: This isn't reddit or slashdot, a lot of people here are looking to gain funding or contacts, therefore HN has much lower anonymity. Therefore more likely to be civil and appropriate.
I think we need to accept some false positives [such as foul language] in order to preserve a reasonable level of freedom of speech on HN.
Here I mean freedom of speech in the weak form, ie. that you stop posting something you truly believe, because of fear it will attract down-votes.
Useful ideas/opinions that occur in the long tail may offend some people - but I think HN is too uniform and PC without them.
from your comments:
"I found the UI unappealing and the heavy use of rotation effects amateurish."
edit: that is mean, although because it was about Microsoft/Windows Phone 7 as a whole, there is almost zero direct effect on the people who worked on it, and therefore may reduce it's meaness factor by 0.001%, but amateurish and unnapealing? come on, that reveals negative energy.
I'm not being snarky. It's a perfectly legitimate way to operate if you're clear that being able to dictate your own header color isn't why you're here. It's OK to opt out of the parts of the system that are not working for you.
Please continue to bring your own opinion's to us, for the benefit of all.
Opinion's are cool, but intelligent ideas and lessons-learned are better.
If I were to answer my own question, I would say that I probably focus more energy than I should on sounding more insightful than I normally am and I get frustrated with a lot of the inane types of discussions such as: "What does it mean to be a successful tycoon who conquers the world and what's wrong with people who aren't successful tycoons who take over the world?"
Would you prefer that?
Now go away or I shall taunt you a second time!
I'm doing pro-bono work for them to move their flat html to a CMS so the people running the organization can update news, events, calendar, etc. on their own without need for tech support, but am still just evaluating CMS's and hosts (probably gonna be Django-cms or Vosao on GAE for the amazing price point).
Their flat html site was designed by a company in UK, but is not as modern looking as it could be, and the information architecture is busy imho. They don't have all the content available for it yet either, but had to make it public for their annual African Nutritional Epidemiology conference in early October. It's also all table-based, and converting the non-tabular elements to div/span something I'd like to do, but getting it converted over to a CMS is a higher priority.
I've got my hands full getting the backend up and running and would love to have a review by a pro web designer. In addition to being able to blog about it, I'd be happy to include 'Design by Sahillavingia' at the bottom and introduce you (via email at least) to the organization principals.
I'd very much like to take you up on your offer of doing design work but I would feel embarrassed to see you do it for free which means I can not enter in this round.
But if after you're done doing this really fantastically nice thing you feel you still have energy left over to do one more site and get paid for it then let me know, email in my profile.
we just redesigned http://www.easycalapp.com - a frustration-free booking calendar for solo entrepreneurs - but we need a sales page.
Fair trade is an industry that places emphasis on the producers of goods, rather than the distributors of them. A group of people in Auckland, New Zealand, are donating their time and resources to try and convert Auckland to be a fair trade city. With a population of over 1M people, this would make a significant difference to the lives of many producers in developing areas.
I've been managing social media and IT for the group, but we've yet to find a good design for our branding. The website above is a temporary page with some basic information, however as you can see it's nothing flash.
The entire project is coming from community efforts, so this would fit us perfectly, and if we're successful in our goal, many people around the world will benefit.
Would be interested in an outsiders thoughts on the best creative to express the idea of the site and have banner-ad viewers turn into active users.
My initial thought would be to simply have different banner ads highlighting a product along with its price graph. It quickly shows the utility of the site and how you can save money by knowing the best time to buy. Turning product info such as:
into a mini-banner ad could provide some insight, more so than a simple brand focused ad.
It's been a project of mine for five years now, and I'm working on a rewrite and need a new design.
Here's a snapshot: http://1.bp.blogspot.com/_Vtq6sCdzyKs/TMUub_v3L9I/AAAAAAAAAG...
Main focus is on getting users past the home page to sign up for the service. What's there still doesn't do a good enough job convincing the users why they should sign up.
The next problem is getting users to actually connect through the service. Channeling users to download a scanner app and download their QR code is probably the next major step.
It's a simple fun iphone app.
It is a Facebook app that lets Realtors shows their listings. I have tried to make it presentable, but I usually end up doing tasks that are more fun and let the design suffer. Thanks!
The site is on tumblr right now at http://thenycnomad.tumblr.com.
Please help! I'm always hard on my own designs but I dont think my current one is good at all. My product is a meeting management web app.
It's a service for state and local governments to improve their customer service relationship with their citizens. It implements the Open311 GeoReport v2 API, meaning the data is open and Free.
We could really use a nice theme for the web administration interface! I have no idea if that fits within your 5 allotted hours though.
Excellent offer, I hope you have fun creating and blogging about the process.
I would like to suggest creating a logo for the Gramps project  (a Genealogy Program) which I just found a few days ago and in a reply to me one the developers mentioned that they have "No real official logo." and from the looks of the project they could use a new wiki template.
Please consider upvoting to help improve the project.
 - http://gramps-project.org/ - http://goo.gl/JDN1 - http://www.gramps-project.org/wiki
Earlier, I used to tune my life with the purpose of filling two of my biggest bottlnecks to reaching my dreams, experience(/knowledge) and money.
I used to work long hours at my regular job to learn as fast and as much as I could. Then I used to go to another city on the weekends to do weekend work and make more money as future capital.
My way of living also used to be dead cheap (it still is, but with a different focus though). For a year earlier, I used to live in a 10' by 8' bedroom with just an airbed and the rest of the room filled with the all the rest of my belongings.
I also stopped cooking and became dependent on cheap, lean frozen foods from walmart and ethnic stores. In my view, when doing two jobs, the cooking and cleaning is an utter waste of life and time that can be better spent acquiring knowledge, including how to make money.
Later, I started a company while working fulltime. Then I started tuning my life to let me do that. Cut down social life and other thigns to a bare minimum, still lived cheap provided it didn't cut my ability to what I had to do, cut down the earlier weekend job.
Now I spend time learning stuff that would enable me to run my company better, execute ideas better, reaching out to my friends who might be insterested in joining what I am doing.
i still dont' cook and clean, waste of time especially when you know how to eat cheap. The airbed burst a few years ago, now I sleep in a sleeping bag on the floor - good way to remind I haven't reached my dreams yet and not oversleep too!
I've two big problems. First is I work from home. So sometimes I work 12-16 hours a day. By "work" I mean I sit in front of my laptop, but it doesn't mean I'm productive. Second problem is that being INTJ, I don't have much friends, so I usually end up staying at home for days (and coding most of the time) until I run out of groceries.
After I got back from my "sanity trip", I started doing several things to avoid burnout.
- Cycling. Used to do 30+ kilos almnost every day. Now it's getting cold here, so I do few short rides a week.
- Walking. If I'm not cycling, I try to get out of the house every day. Just to wander in downtown or get rolls from a bakery 15 minutes away.
- Eating out. I occasionally go for lunch with friends working nearby.
- Limiting my hours at keyboard. I moved most of my reading to Kindle, either in bed or outside. Previously, even after work-hours I was slipping from reading back to work easily. Kindle helps to avoid this.
- Meeting with friends at least once a week. Even if you think you don't have friends, try calling people you know and ask them out. There's a big chance that they have nothing to do as well :)
- Heavy metal. This helps me stay sane A LOT. Listening to records is good. Live shows are even better. After a nice (well, nice in metal way) gig I've energy for whole week. If you don't like heavy metal, listen to rock, classic, jazz or whatever you like. Listen not while working, but truly listen to music. And go to live shows. That's where music becomes Music.
So far, so good. I'm putting in less hours, but delivering more.
I discovered that what I needed was good nurturing. Good people. Good food. Good books. Good sleep. Good exercise. Good solitude. Good work (something you do for the love of it, not for some illusionary reward).
If you do it, you will see that all the discipline and things that you need will just come into your life. This is how children do (field-tested) and there is NO reason why we should do it differently. You are NOT a problem to be solved!
For me, the realization was couple of things. After years of work in a small company that declared the biggest growth in Turkey, I joined up a startup only to see how it can fail in this country. After that, I have been freelancing for the last year, with the long term hopes of getting myself in the SF area. So I think hopes do help. I told the three employer offers I got last month that I would like to work remote from home office, two of which accepted. I took one of the jobs, subletted my house in the busiest part of Istanbul and moved south to the Mediterranean coast. I practiced Aikido three days a week while I was in Istanbul. Now they are asking me to teach it here, since I seem to be the highest level in the region. I like swimming, and I can do it here for free instead of paying lots of cash to a gym with a pool in Istanbul.
So in order to 'retune', I chose the way to change things drastically. Everything is not settled yet, and moving things around has not made me productive at all, and I should really be coding instead of responding to this but how did this happen:
- I realized I had to change somethings completely. Turkey is becoming a one city (Istanbul) country and I started to hate that fact. I started to hate the fact that everyone feels like they can only make money in that one city in the country. Like the rest of the country is just a hinterland serving that city. I like the city, but I think it is now at the edge of madness.
- I am now 36, and all those ideas are going to die if I don't do something about it.
- I don't enjoy working for other people's ideas anymore when I don't believe in them.
- Noticing that even my U.S. Computer Science education wasn't up to par, and I had to retrain myself, which is an ongoing effort.
- I get paid 3 times less than a U.S. programmer. Though it also means I can find programmers cheap here in case I need to hire them, I have trouble finding capable programmers that also get things done.
- There are no programmers my age that I know of. Well OK, I know one, and I am currently working for him.
- The need to start my own company and projects some time.
- If the programmer minds are meeting in the SF area, I should be there as well.
- I felt like I had to get rid of some of the strange loops in my life. My girlfriend (with whom I ended up leaving each other) warned that the loops are in the mind and I'll take them along to anywhere I go. This also has truth in it.
- The realization that I don't hack anymore. Even my hobby projects have turned into dull events.
So I decided I will make my own bay area first, however fake, and work from there. Thus I moved.
- I made a "field test" first to see if it would actually work. Basically. on my off month, I came here and worked on my hobby projects. I found that I was less stressful and more productive. What I didn't figure out was that this project was something different, and hobby projects always are fun. Boring projects can be harder to do on the country side.
- I have no proper networking to be really freelancing. Basically it is just that previous people that I worked with that like to give me work. This might not work since I won't be meeting anyone in the industry from here. But that is ok. I think I can build up my network from the net. Or move somewhere else. Or die trying.
So basically now I got my own view of a bay, looking west from my rented house. Hopefully I will get some work done today. So I changed it all. And I am all out of tune, because starts are a delicate points in time.
Another thing, before I did this, I was telling everyone that I was going to do it. Move south, work freelance from home. I told it to so many people, so often, and it became a reality. Basically writing it here also is a step in that direction.
The trick to doing less dishes is not using a dishwasher but to have less dishes. If you're not a family of 4 you don't need to dirty 4 plates. Put only 1 of each thing in your main cabinet and the extras in a separate cabinet. Wash them by hand after using.
Also for productivity, use timers like WorkRave http://www.workrave.org . Taking breaks is a key to getting stuff done. The harder the problem and the more you have avoided it and let it build up, the more frequent the breaks you will need to tackle it.
Also if you use todo list, the most important thing to right next to each task is an estimate of the time it will take to complete. As soon as I did this I realized I how notoriously bad I was at estimating the time it takes to complete certain tasks and improved.
My wife and I saved money while learning to create projects on our own + start working remotely too (gradually).
We then moved to the country-side so that we can take better advantage of what we had earned. We can currently sustain between 5 and 8 years of doing whatever we like (after buying a house, which we consider), so we own the most part of our time.
This basically translates into a lot more time for hacking/projects/marketing, but also time with kid, cooking, yoga, music etc.
Still, maybe if you have bought a house, at least you don't have to worry about it anymore. On the other hand, sometimes I have the impression that people who own actually worry MORE. That's also what Greenspun said, or so I seem to remember (can't find the blog entry right now).
1/ I'm nomadic. This means I don't have household things to worry about which frees a LOT of time. No washing-up for me :)
2/ I work 8am to 9pm Monday-Saturday with a 2 hour break for lunch and a 1hr trip to the gym
3/ I take regular walks and use our app (which I won't advertise here) to stay active.
4/ During the evenings (9-11:30) I write music, play L4D2 with friends, go to the pub, watch cartoons and draw.
5/ SUNDAY - KEY POINT #1: I go walkabout. I go for a 10-20mile walk along the beaches and cliffs of South England. I eat in pubs, drink a couple of real ales now-and-then... maybe have a nice coffee somewhere... maybe read a book. I never work that day. If I work just once, I can guarantee I will burn out within a fortnight.
6/ SUNDAY - KEY POINT #2: During my walkabout I spend at least 2 hours thinking about life - in particular what's important to me, what truly drives me and how I can add value during my short time on earth. I think about my family, my friends and how I can do the best for them without burning myself out.
7/ Every-so-often a take a few extra hours (even days) out to spend quality time with family and friends. Because 6 always shows that 5 and 4 are not enough ;)
Point 6 is utterly important IMO - everyone should spend an hour or two meditating on what is truly important to them.
i moved out to the country to spend more time coding because it was too easy to be distracted living downtown.
i basically didn't work or do anything productive for 5 years so i don't mind working a lot for a while
Day to day I use to do lists to ensure that I have a daily focus, but once a month I write down whats important to me and preen anything that isnt.
I also have a strong, supportive partner. I only met her 9 months ago and I was already well into the startup. She has been a god send.
Wake up at 6Have teaRead a bitMake and eat breakfastBe at work by 9 (it's a 5min walk to my work place)work till 12.30Have lunch n a short breakStart work again by 2.30Work till 7Gym for an hrShower n dineRead/ TV/ MovieGet to bed by 11
No gym on wednesday evenings. I seem to crave for a break mid week than weekend. I go to a pub/ movie or meet friends Wednesday evenings. I work Saturdays. Stay out late in the evenings. Wake up a lil late on Sunday. I take an hour or two out on a Sunday for my hobbies.
working out religiously, listening to the music of your choice and eating healthy will help you avoid a burn-out.
- I wake up at 5 and go to bed at 9.
- I also work from home so I don't waste time on commute.
- I run for 1 hour every 2 or 3 days and do some exercises in other days.
- I cook a lot at home. Eat lots of salads and fruits.
- All errands are reduced to minimum. Very few things now can't be done using internet. Strange thing about your landlord. I haven't seen mine in months.
- I usually work during weekends. Then I make longer 2-3 week breaks once every 2 months to compensate. My day job is flexible enough to allow it.
- I don't own lots of stuff so things are easy to take care of around home.
8-9: drink coffee, walk dog
12-1:30: hit the gym or afternoon hike with said dog.
5-7: Read HN/news/talk with friends
7-9: Smoke pot, code or watch some HBO & unwind
9-12: Bowl of cereal, fall asleep around midnight
Wash, rinse, repeat
In fact, when they make a new car, they send one to BMW, Audi, Volkswagen etc. and expect them to do the same in return. As if saying: "You're going to do it anyway, so here, have one."
I assume something similar might be going on at big tech companies such as Sony or Microsoft. But I do not think they know what their competitors are planning for next year other than observing what trends are currently hot and what new technologies are becoming available.
An even better model would be to allow anyone to read, but limit only registered users to be able to comment or rate. Allowing any visitor to browse and read pages.
Although ultimately to get initial traction / users perhaps remove the need to login at all unless you are submitting your work.
You speak of monetization and I would imagine the obvious routes would be through affiliate schemes with the eventual book publishers or 'premium' services for book publishers that want their book to get 'tested' by the most people / essentially top of the list.
With both of those options there is no requirement for a typical 'visitor' who is reading / ranking books to have to register or login at all.
One tiny thing: On the sign up overlay, the input box margins seem tighter on the right than the rest. This is what I mean: http://i.imgur.com/iD8TL.png I wouldn't be so particular if I didn't think the rest of the wasn't already looking so good.
It'd also be nice (though not overly essential) if the logos denoting where you were mentioned were clickable so that I could read the writeups.
Otherwise, great work and I wish your team success.
Unfortunately, the background took 45 seconds to download on a slowish DSL connection, and was very distracting as it progressively loaded. That's not surprising, considering that the PNG is 3MB. You can definitely improve the responsiveness here.
I like the concept quite a bit, but wonder how useful it will be if used according to the "page 99 rule." Unless you're wanting sentence or paragraph level evaluation I'm not sure that the feedback would be all that helpful. By page 99, any fuller evaluation would depend on knowing the contents of pages 1-98.
For instance, a reader sees page 99 full of things like "Thou art a despicable knave, wench!" Reader sends feedback saying, "The language is really awkward, even for a Tolkienesque fantasy." What the reader missed, though, is that page 99 is part of the school play written by a DnD fanatic teacher and is absolutely hilarious in context.
I'm definitely not writing off the concept, but would hope that there is a way to add more context to the page.
Also, the domain bugs me a bit. Is page99.com available? Seems more memorable and less spammy to me.
a couple initial thoughts:
-fivesecondtest was the first thing that came to mind when i checked it out (before reading your blurb) so glad to see you guys aware of the market.
-as opposed to "rating" initial impressions, i'd focus on the oft-used phrase, "initial impressions mean everything" as a part of the pitch.
-is there any way to delay the signup proces for after an initial look? i think a number of people who would otherwise be willing to check it out are turned off by having to sign up for another site off the bat (and i imagine a number of the HN community would agree with the sentiment)
-i think goodreads & lulu would provide great opportunities to leverage their existing communities...maybe future partnership with the latter?
hope that helps!
Just a personal annoyance since I've seen a lot of sites do it, just show a bunch of logos, or link to the homepage (say of the Guardian) without letting me read the review.
Just apply if you don't get accepted then you know that YC isn't interested, maybe someone else is.
Feedback:Why do I need to sign up to start reading?The page IS stunning, but it takes a long time to load.Instead of a feedback form, have you considered just having a next page button?
p.s. theres a huge market for authors on the web, as to what ive seen anway
Scalability - you'll be fine with either
Fun - Rails
After completing a bunch of PHP projects, I recently completed a project for a client where I spent about 6 months with Django. It was fine and I'm glad I did it, but I can't say I would call it "fun". There were a few points that I found painful. The django admin is customizable and for certain types of apps, it works well. But I wanted my clients to use it to manage data in a legacy database. The inspectdb command was cool and generated models for me along with some data management forms. However, getting the forms to work in ways that matched the workflow of my clients was difficult. I found myself wanting to do things like a "reverse" inline -- there were several things that I couldn't figure out and StackOverflow searches didn't reveal good solutions. On my next django project, I decided not to use the admin because it took me longer to figure out how to customize it then it did to just use ModelForms outside of the admin. I haven't found many of the contrib apps to be all that useful or flexible.
And for reporting, some of the more complicated queries just didn't work well with the ORM, and I found myself doing ugly things to avoid writing SQL (I know Django doesn't prevent you from writing raw SQL).
I just didn't get the same "fun" feeling I did when I first developed a Rails app, first grabbed a Vimeo API or flickr gem off of Github, and first pushed it up to Heroku and saw it magically work. And I didn't feel like I was any more productive than I was with PHP -- the main benefits were that 1) my code was more readable and 2) it led me to another opportunity in a completely different area that involves writing python -- but rather than Django, I get to work with Twisted, and this has expanded my horizons greatly.
Also: if you're already comfortable with Cake, the jump to Rails is probably quite short. I'll bet you become very productive on it very quickly.
The Python job market in New York is hot, and Django is very popular. I don't see too much other than Rails opportunities for those that bring Ruby knowledge, but there is certainly enough Rails work to keep you busy. The upside is that there are lots of CMS and infrastructure stuff that is Ruby based, but they tend to be products in their own right rather than tools to hack on. In my opinion, Rails carries Ruby in the market. Without Rails, Ruby would probably fade back into relative obscurity.
In general however I prefer Python as a language and Rails as a framework.
I think Rails is hands down the best architected and easy to use framework out there. I think Python is one of the most well curated and thought out languages. I should say this, I doubt I would have every learned Ruby if not for Rails (though its my "go to" language now for simple scripts, having replaced Perl), I'm pretty sure I'd have learnt Python at some point regardless of Django.
If your app has a lot of non-user facing CRUD (i.e. a CMS or publishing app), Django offers some incredible shortcuts with the built-in admin app.
I also think Python is a better systems programming language (i.e. calling out to unix during web stuff), due to it's scientific background.
Otherwise RoR and Django are roughly the same MVC frameworks -- opinionated conventions about models with a database abstraction layer, and views and controllers (templates and views in Django terms).
Likewise, Ruby and Python are roughly the same -- object oriented scripting languages.
But for your specific questions, I'd say Rails wins by a long shot. There are a lot more Rails companies/jobs in the Bay area (though more Python than Ruby jobs, again because of science). Rails 3 shows the community is still going strong.
Sinatra is the most fun for simple web services and it integrates with Rails no problem.
And most importantly, you can use Heroku for Ruby deployment, which is an incredible short cut for launching a site and its impossible to go back to being a sys-admin once you realize it's not necessary.
There is no right answer, and you can't go wrong with either. Try both, run through _many_ tutorials for each, and decide.
Remember that everything sucks. Find the one that sucks less for you.
I'm still more productive and knowledgeable in Python/Django, but find Ruby/Rails/Sinatra more fun, and I enjoy the new ways of thinking it causes in this old Perl programmer.
I'm still trying to grasp many of the concepts in Ruby, and the rapid pace of development and prevalence of trends is daunting. Many things in the Ruby world are hackish and/or poorly documented. I question DHH's wisdom.
For Python, the indenting thing still bugs the bejeebus out of me. I'm not a trendy kind of guy, but it is a bit too untrendy to me.
They're both great, overall, though. Find the one that matches you, because nobody else can decide that for you.
Bias warning...I've used Rails for far too long now, so it's very familiar to me and I'm comfortable with it. That said, here's the heavily opinionated and subjective reasons why I'm back:
* urls.py - the python regular expression syntax makes your route definitions very ugly as they grow. I find Rails' route DSL much more intuitive.
* Lack of model-level validation - OSQA uses Form objects to validate models rather than letting the models validate themselves (as Rails does). In OSQA, the Form objects are rather heavily bound to the UI interaction, so if you need to create models outside of the web app itself (I did) it gets painful. I kept having to hack these form objects to get them to validate properly. I've been told that Django now provides model-level validation, but OSQA doesn't use them (for now).
* ORM - I find ActiveRecord to be a much cleaner and intuitive ORM.
* Django's template language - I don't work with designers, so I don't need to be hobbled by a template language that is limited by design. I know you can use other template engines, but I was working with what OSQA provided, so I was stuck.
* Community - the Rails community in general is more active.
* Language preference - at the end of the day, Ruby just feels more natural and clean to me. You could attribute this to familiarity, but I actually knew python long before I knew ruby. I do like python, but tend to "think" in ruby.
I re-assessed my progress after a month and realized I was just not reaching the same level of productivity I was used to. I decided to switch course and learn MongoDB, which was probably the decision I should've made to begin with, and my productivity instantly improved. I was able to move the features I'd created in Django over within a few nights of focused effort, and I couldn't be happier with Shapado (and, surprisingly, mongodb).
This is simply my experience. If it were a completely new project, my experience might've been different. YMMV.
Do a tutorial in each language, it'll take you a day at most. Then pick a framework that matches the language you liked better.
Django is a wonderful framework as long as you work inside the box. There's a large enough of a community for support, plenty of documentation, and alot of the pieces for a website are already written for you and work just fine.
Where Django seems to break down is:
1. When you upgrade Django, or2. When you start customizing Django
With just about every release of Django, something breaks. Thankfully, these changes are usually outlined in the release notes, but this often results (from what I've seen) in projects running on fairly old versions of Django because nobody wants to break a working website or app by upgrading their framework. Where I come from (sysadmin turned web dev,) you don't want to run outdated software and you don't want things to break. With Django, you're constantly stuck between a rock and a hard place.
Theoretically, you can write all the middleware, decorators, backend authentication modules, etc you want and plug it into Django and have it work flawlessly; however, this isn't always the case in practice. This blog post from one person explains their gripes with extending ,and eventually replacing, Django: http://blog.brandonbloom.name/2009/08/dropping-django.html
It's important to keep in mind that Django was ultimately developed for news websites. This makes it a great framework for building CMSes, blogs, etc but causes it to break down when you start moving outside of that use case.
(Also, FWIW, Django doesn't natively support schema migrations, although their are tools such as "South" that implement this functionality.)
I think that if you're interested in using a Python-based like framework, you should also consider Pylons and Tornado.
Check out what's generated for you when initially starting a rails app: http://twitpic.com/30sz41 vs. a Django app: http://twitpic.com/30szgk
I think Django is a little less overwhelming for beginners.
Then again at very large scale you don't want to restrict yourself to one language in which case you can lash together various components using a distributed job scheduler like Gearman (http://gearman.org/).
* Adoption - Rails is being heavily adopted, especially with the startup community, but also state agencies, hospitals etc.
* Community - Rails has a strong community of core devs, plugins devs, conferences, books etc.
* Jobs - Tons of Jobs in my experience. We have a hard time finding good Rails/Ruby devs. I have checked the market, seems like there are plenty of Rails jobs across the country. Check out: http://jobs.37signals.com/
* Scalability - Yes, Rails can scale. Check out: http://rails100.pbworks.com/Alexa+Rankings Ever heard of Hulu, JustinTV or Big Cartell?
* Fun - Ruby was designed for programmer happiness
Community: These are roughly equivalent. The Rails community is probably significantly larger, but there's more than enough activity and information coming from both to keep you plenty satisfied.
Jobs: It's easier to find a Rails job.
Scalability: You can scale both. Both frameworks are pretty heavyweight, but they're also both designed with scaling in mind (e.g. decent caching is built in).
Fun: If you like CakePHP, then assuming you don't just irrationally hate Python or Ruby you should feel right at home with either one.
Full disclosure: I do Rails for a living.
On a semi-related note, at Art.sy we use Zend, a PHP framework, for our web app (all our AI is in a separate Java service). We've found Zend to be great and I've noticed that large companies like AppNexus, NextJump, and (initially) Facebook use Zend too. Yet I've never seen it mentioned on HN. Curious if anyone can explain this.
For me, I periodically use Django for content-centric sites with standard CRUD operations primarily performed by a small number of privileged users, but I prefer Rails and Sinatra for most projects. I prefer the Ruby web development ecosystem, with libraries like Haml, Sass and Compass.
I'm a passionate Pythonist with a deep respect for Ruby. I personally find Python to be extremely elegant in both syntax and paradigm, but Ruby is the next thing I'd use if Python were to disappear today.
In my experience, Python generally has more backend libraries and tools, while Ruby has more frontend. Of course, there are hundreds of exceptions to this, but the premise of what I'm saying is this: Python developers tend to come from other unixy backgrounds, and Ruby devs often are web-centric.
As far as the frameworks themselves are concerned, Rails has a bit more magic "convention over configuration", while in Python "explicit is better than implicit", so Django is a little more engineer-friendly.
I highly recommend you read the Zen of Python to see if the language is a good fit for you: http://www.python.org/dev/peps/pep-0020/
Something to keep in mind.
This is not to say RoR is not awesome, it's mostly a preference of language.
That said, it depends on your needs. Rails has a slightly steeper learning curve than Django (mostly because there are a ton of helpers and options in the API). If you want something that will get you started quickly, I'd go with Django. Later on, you'll have to do a lot of Django hacking to get some things that come for free in Rails.
On the other hand I think Django is simpler to understand in-depth, with Rails I feel like a lot of it is magic and it'll take a lot more work to understand how it works (but it isn't stopping me being productive with it).
* The documentation was better than Rails * Python is more useful outside of Django than Ruby is outside of Rails * The Python syntax seemed easier to read
Since then, I've become a big fan of Django and Python. With that said, plenty of smart people are using Rails. I agree with some of the other commenters that you should do the tutorial for each framework before deciding.
As for jobs, both Rails and Django have tons of open positions available and hot startups using them.
Go do a side project with one of them and release it. Then go do another side project with the other and release that. Then go get a job or contract with one or the other. You'll be able to say you've used each, you'll be able to give pros and cons to each, etc.
Edit: Instead of downvoting, explain why you think this same discussion needs to be rehashed month after month, sometimes week after week. When it comes to other topics we have no problem reminding people to search HN rather than ask the same questions repeatedly.
I'd even say consider Flask for larger projects if you have patience, a good head for package/module layouts, and are after a really "no fluff" framework.
Tie it up to Nginx using Gunicorn: http://gunicorn.org/
(Here's the instructions in the Flask docs: http://flask.pocoo.org/docs/deploying/others/#gunicorn)
You will get some killer, low memory performance (many times smaller memory footprint than Django) out of that setup.
I wont respond to your question as I've a little more inclination to Ruby/Rails than Pyhton and I don't want to influence your decision, you should really try them both and find by yourself.
Since you say you are "bored", why not try both out for a day or two and see what's more "fun" to you?
In Rails, I believe the database backend can be either. Look at Twitter - their using Cassandra.
Ruby is a nice language though. I do all my non-web stuff in that.
I highly recommend Peter Cooper's Book: Beginning Ruby, Link:http://www.amazon.com/Beginning-Ruby-Novice-Professional/dp/..., if you'd like to get started with it.
sometimes i finish a project and it never moves (http://metra.jcs.org/) because i can't find an appropriate domain name.
though as someone else suggested, try http://hntrades.com/ to buy/sell/trade unused domain names.
I personally own about 50 domain names...most that I bought with the intention of using for a specific project that never materialized. With a handful of them I paid a writer in the Philippines to write a dozen articles for each, and I threw together simple wordpress sites with RSS autoposting and they make about $10/mo each, which pays for the renewal fees for all of the other domains.
I suppose in theory I could register 1000 domain names and repeat the process of paying for content, setting up wordpress RSS autoposting, and possibly make $10,000 a month, but I never seem to get around to it, and there's the possibility that it won't be as profitable as I think.
These were domains dealings with quite serious subjects and just seeing them sitting there full of ads, making it so very much difficult for me to acquire, absolute gorgeous domain names, just felt not only immoral but purely and simply criminal.
Of course I got over it and moved onto domains which were available and suitable and just as good, but, and this is not to you personally but companies who buy such domains names en mass hopping to profit, simply, find a way to make money which allows you to get sleep at night.
Disclaimer: I've got a bunch of domains that I purchased for personal projects and never got around to. But at some point, I realized I was just wasting money and promised myself not to buy any more until I finished at least one of the projects.
I have over 300 domains, but the value in a good domain is well worth the cost over the years. TouchArcade.com is one I picked up before I had a solid plan for its use. Now it's annual revenue dwarfs the "wasted" money on domains.
It felt ...liberating. :)
Tempted to work up some decent ideas into ebooks, and have sites specific to each - just making sure they don't look spammy/rubbish. No point if they do.
The fix: don't buy the domain until you are ready to launch the project. This allows you to build without having to adapt your project to a domain name. It's much easier to find a domain that describes your project after it has been completed. It also saves you money if you never carry out your grand ideas.
I own 17 domains, 5 of which are currently actively hosting meaningful content or webapps. I went through a scrub of the ones that are unused, and realized that I need to let some go.
Here's a list of ones I'm letting expire. If you have a meaningful project idea for one of them let me know.
I've also been fortunate to have a couple of my domains result in unsolicited bids ... generating enough profit to cover the carrying costs for the 20 still in my portfolio. Just got a completely unexpected offer for one last night.
It's only later that I look for a name for the project itself, and I buy the domain at the same time (it's a kind of whois brainstorming).
In my case, it was to tweet that we'd be selling our latest discs (http://twitter.com/Thisoneisonus/status/27176693962) on a certain date, and then coding through the night a couple of days before because I didn't want to look like an idiot to our 5,000 obsessive Twitter followers :D
If I come up with a sweet idea, I sit on it. If after a few weeks the idea is still burning a hole in my pocket, I'll purchase the domain.
This year I listed all of the ones that didn't have websites yet on sedo, and set all of them to a couple of hundred pounds each buy-it-now. The idea is that either I focus on building an idea quickly, or risk that someone who thinks he has a better idea than me snaps the domain name up in the meantime.
Hasn't worked. But, so far three of those domains have been sold, so that essentially covers all my domain name renewal fees this year.
Perhaps I should drop the prices to increase the pressure on myself.
Looking at the rate startup fail, I guess it's quite alright to not get the domain I want. If things do work out, I can always rebrand it later.
Back when I was a business noob I would register domains for just about any bright idea. It got expensive.
What I do now for those, 'on the shelf domains', is simply a white page with an email and a brief message explaining the domain is for sale.
A few inquiries so far, nothing much, we'll see how today's negotiation pans out.
In fact, I think most of the HN crowd would greatly enjoy the "bomb lab" (http://csapp.cs.cmu.edu/public/1e/labs.html -- you can read the writeup but not get the source). The idea is that you have a binary and have to use gdb and some nice dumping tools to "defuse" a bunch of stages of the program, each with increasing difficulty. It's a fabulous exercise, and really makes students pick up a deep appreciation for stepping through assembly and data structures that are just lying around in memory.
I find C to be an elegant language. But we have so many other things to worry about, like the algorithms, data structures, security, concurrency, etc. If a language can help me with things like memory leaking and segfaults, then of course I'll go with that language over C. I have so many other things to focus on.
My local community college (where I started) - De Anza College did that as well. I am sure there are many others, just they may not be the most well known ones.
Not all the top graduates will want to go into systems programming, however. Great chunk of user-level systems programming (e.g., network services, distributed systems) is also being done in languages other than C. I suspect, many no longer view having real-world C experience (as opposed to just knowing it) as imperative for their career.
That said, I am not sure exactly what level of C proficiency are you looking for. I am guessing, strong knowledge of UNIX Systems Programming (IPC, interfacing with the VM, etc...) and BSD sockets? You can only learn this through experience and/or working meticulously, through Richard Stevens' books (I _highly_ recommend the former, even if you don't intend to touch C again). You can't expect to hire people with that knowledge straight out of college, but you can hire students with "good C programming ability and strong understanding of operating systems internals, who are interested in learning systems/network programming" (to put in terms of a job description) i.e., they should know what producer/consume problem is, but they may not always know all about UNIX signals, IPC mechanisms and the Linux VM.
Others have suggested to look for students who took an operating systems course. That's likely the best bet.
[at UIUC everyone does C++ Data Structures, but CS starts with Java, CE starts with C ]
Here is what I remember from college:
We love this stuff.
The entire history of CS could be summed up as a move towards higher and higher levels of abstraction. They still expose you to assembly language in good CS programs as sort of a history lesson or to give you a deeper understanding of how it works underneath, but that doesn't mean people actually want to use it.
C is of course nowhere near as far along that path as assembly language, but it's a spectrum and seems to moving in that direction.
I think I would personally have disliked C if college were my first introduction to it, because I associated it with curmudgeonly systems professors and a sort of harder-core-than-thou attitude. But for some odd reason I had already learned C in high school (I think I picked it randomly), and it's a perfectly enjoyable language to use, without the cultural baggage. You can even write things other than schedulers in it!
Also the ECE ("Electrical and Computer Engineering") students here (and probably elsewhere) use a lot of C, so that might be something else to look into, although they're mostly familiar with embedded environments.
Maybe this goes without saying, but no one here (to my knowledge) gets very in-depth into a lot of stuff you might take for granted, for example I haven't met a single student (or many professors) who is familiar with mmap(). There are a lot of really smart students who could probably work out great with a few months of real-world experience and mentoring, but students who could sit down and work on production C code right out of graduation are probably less than 1 in 100.
These are bad schools. I'm really not willing to compromise on this statement.
Is this because teachers don't like teaching in C? Or because students prefer the speed of development of a language like Python or Java? Where are the students who do like C? Where can I find those guys (and girls)?
It's because C and systems are inherently hard and cannot be made... not. When your libraries are limitless your programming exercises can be made as trivial as possible.
I also always choose C if companies let me choose my language during interviews. I can fit the entire C language and its libraries into my brain all at once with no reference manuals.
C++? I don't think I could get everything even if I had the specification and Bjarne himself standing next to me.
In my university, we did mostly Java(that was the "teaching language" that is used), I only did 3 courses that were primarily taught in C and there were only around 2 more courses that required C.
So what generally happens to most CS students is that they teach you Java in your first year and then any course where they tell you to use whatever language you prefer they choose Java, because thats what they are comfortable with and they have assignment/project deadlines looming, so they don't feel they have time to experiment in a new language.
Your best bet is to hire workterm/Internship students whom you can Train. It might seem like a waste, but its a real cheap way to get an idea of how good the person is, you get them early enough to train some bad habits out of them(if they exist) and evaluate whether they would be a good fit for your company. They also may accomplish something awesome along the way?
I did a 16 month internship before I graduated from University(which was really an 8 month extended to 16 month), most students like myself set up these internships in a way that after the internship they only have 1 semester of classes remaining, so they can ideally work part time with the company they internet with for that final 4 months and hopefully turn their internship into a fulltime Job upon completion.
We went to a super small university (1500 people) and we got to do summer internships and independent study course work with one of our professors writing/modifying embedded wireless drivers in NetBSD. This resulted in a group of students that were more proficient at reading and understanding huge bodies of existing code when compared to students I've TA'd and worked with. This also means we all enjoy working in C (Though honestly most of us prefer C++). We work in jobs like embedded GPS devices. Embedded development for Televisions. Jet engine test software. Embedded signal / sensor processing and integration. It's only now, later on in life, that I realize most of the other people in these fields with us aren't CS guys but rather CE or EE.
tl;dr...Find a student, just 1, that is really into this and then find more students from his university... It's likely the environment / layout of the university's program is largely responsible.
His class is why I love C, and you'll find many more like me if you come talk to him.
But even better would be to find students who hack on open-source projects written in C (e.g. Linux-related efforts) -- that's much more representative of a graduating student's ability to be productive using C. There are a lot of students working on such projects, and it might be worth starting there.
C is used often here in upper divisions for Algorithms, Compilers, and Operating Systems at the very least. I suspect it's used anywhere that theory is deemed very important, because it forces you to understand the theory.
Personally, I don't like coding in it, though I think it's very important to learn in it - it forces you to learn how to do many things at the level of memory management. Learning how to make linked lists in C taught me a lot, for example, and ensuring that my program had no memory leaks also taught me a lot.
On the other hand, this is 2010 and there are programming languages that do memory management for you. Managing memory when you're doing relatively abstract stuff (in most cases) isn't fun OR elegant - it's just tedious. jdietrich talks about this some in another contemporary thread: http://news.ycombinator.com/item?id=1830120
Therefore, I prefer Python - I don't want to program embedded systems.
Right now, I'm of the opinion that I ought to be language agnostic. However, I'm also of the opinion that I should know at least two programming languages very well:
I should know one high level language to Get Stuff Done quickly without worrying about tedious stuff like memory management - in these cases, performance is a secondary concern; modern computers are very powerful, and it's much more cost effective to simply write it quickly. Compilers are much better than I am at optimization, and they can do a lot, so why not leave it to them? For this, I've selected Python; I'm working on getting familiar with its many libraries.
I should also know one low-level language for things where performance is critically important, and it's worthwhile to take the extra time to calculate things like that. For this, I'm currently using C, but I plan on switching to Lisp.
These are all obligatory, one can additionally attend optional courses on Prolog, Dylan, Common Lisp and some other I do not recall now.
So yeah, learning C better would take time needed for all these courses and thus would narrow one's view. From my experience, most people do not like to use C for anything other than Algorithms classes, and even then they are more likely to use C + STL than plain C. Those who do can take Advanced Operating Systems classes and tinker with Linux kernel, or Microcontroller Programming.
Otherwise, writing C programs has been called a "historical reenactment" (http://research.swtch.com/2008/03/rotating-hashes.html) and I think for most working programmers this is accurate.
It helps to know some C or C++ if you're using scripting languages like Python or Ruby in order to wrap 3rd party C libraries, but wrapper generators like SWIG will do 99% of the work for you, and what little C code you might have to write by hand doesn't need to be particularly fluent or idiomatic.
I like C, but I haven't invested much time in it because it seems that the job market isn't that good for C programmers. Maybe I'm completely mistaken, but it seems like I couldn't hope to compete with a lot of the guys who have been doing it for 10+ years. I wouldn't even feel comfortable applying for a position that was primarily C.
That said, if someone offered me a job that was primarily C I wouldn't definitely consider it. And I'm sure if they have the patients, I would end up being a good team member. But web development is where my experience lies and it is where I will continue to pursue jobs. As a self taught programmer, the barrier to entry with web development seemed much lower when I was starting out. Again, that could be my own misconception.
On the other hand, I know a few people who want to solely work in C because it allows them so much control over how things work, and they're capable of understanding how each and every call they make will basically function. You typically have to look pretty hard for these people specifically, but I find the ones I know are some of the best programmers around. If you're curious about getting in touch with some (I know at least two that I would /highly/ recommend, are looking for summer internships), ping me at email@example.com
In my side Python projects, if I need speed, I'll write that part in C and compile it to an SO and call it from Python. Nice and painless, easy to port by just compiling 32-bit, 64-bit, dlls and if I care Mac's thing, more enjoyable than pseudo-pythonic libs like pyrex.
I'd suggest looking for computer engineering students if you want people that know C. I'm in the CE program here, but it's almost as much CS as it is CE.
More than enjoying C as a language, you should find people who can identify when it is, or is not, the correct tool for the job. If you hire people solely because they enjoy C, you may find that "when all you have is a hammer, everything looks like a nail".
Putting my money where my mouth is, I have written more C++ in the last month than during the previous decade, because I am doing a lot of node.js work. I am writing code in C++ that speeds up or makes possible the things I want to do in Node. Nothing more.
For production, I wish I had the time or need to optimize code I write, but too often, a server upgrade and reconfiguration is sufficient. At least I depend on some one else writing something great in C (linux, nginx, etc).
Been looking at GoLang and Clang to make the experience a little less painful.
With one decent CS school that I am aware of, the University of Maryland used to require (until last semester or so) all CS graduates to take two lower level classes which are taught in C (with some asm). Now it is just one course. I don't know whether or not students enjoyed it, though I think it is unfortunate that they are dropping one of the two courses (actually combining both into one course.)
I think part of why there is this move away from C is some students (rightfully) complain that they may never need to explicitly use it, and Universities figure they can teach the concepts with other languages. I believe that lower level languages should be taught, but I understand why not everyone agrees with me.
I personally love C. It's a much smaller language than java, the libraries actually make sense (reading input into a string comes with stdio, as opposed to having to import java.util.Scanner).
I also feel that everything I'm asked to do in java, I can easily do in C with less code. However, this is because I'm more familiar with C than I am with java.
I did a bit of lower level stuff for OS/algorithms courses in undergrad but first did C/C++ extensively during my Master's and now my PhD (and Objective C for side projects but that's another story). I love the C/C++ work I do as when I write in C/C++ vs. say python speed is the key issue so I'm doing much more work on algorithm design and parallelization.
For a new grad if they are into the work and a partially seasoned programmer, they'll learn on the job if they don't hack C already.
C is nice, but you feel the datedness of the standard libraries, some basic operations such as string manipulation and what not is more work and verbosity than it should be.
We also learned C# later on in college, and there was always this, "this new thing is nice and shiny but C rocks" feeling among a lot of people in my class.
Also, most of the people (since it was community college) weren't your typical, "I've always wanted to be a computer programmer/scientist/engineer" types.
Most of my programming courses are taught in Java. I've brought it up to the faculty though about moving us away from being a Java school. The issue that they presented was that the teachers may not be as familiar with C/C++ as they are with Java. My reasoning behind all of it being that Java is not a good learning language since it adds too much abstraction to get a good idea for what your code is actually doing (i.e. memory).
It doesn't particularly matter though as students who are interested in programming will learn what they want on the side.
For your situation though, I'd avoid people who classify themselves as being a 'Java/Python/C programmer'. There are too many languages and too many problems to limit yourself to merely one or two languages. A good programmer will be familiar with at least a few languages and be able to pick up a new language/framework quickly. Basically it breaks down to simply finding someone who has an interest in programming.
Also, I like C.
That said, I personally enjoy using C when it seems to be appropriate. I would much rather write a piece of OS code in C and drop it into a linux distro than using Java to do something that would rarely be used in the real world. I've had problems with C that I wouldn't in a language like python, but if the task is better suited for C, I'd rather work through those problems and learn because of it. My personal opinion of students not learning C because it's hard is that they don't belong in a CS program. If you won't take the time to learn the best tool for the job, you won't do the job right, and no one will have benefitted because of it.
CS 2110 - Computer Organiz&ProgramAn introduction to basic computer hardware, machine language, assembly language, and C programming.
4.000 Credit Hours 3.000 Lecture hours 3.000 Lab hours
Course Attributes: Tech Elect CS, Engr, &Sciences
My school(Tennessee Technological University, graduated a year and a half ago) still requires a semester of C/C++...there were a couple other classes where you needed to know it to interpret the professor's example code, but were allowed to code in other languages if you wanted. I enjoy C, but feel more proficient in other languages as far as getting things done quickly. I guess I just don't use C enough to keep a good grasp of it.
I think students would get more benefit out of being forced to only use C(and assembly?) for the first couple years. It would help them get a better understanding of what the higher-level languages have going on under the hood.
I've been doing web development(Ruby) the past few years. I've played around with extending Ruby with C, but not much.
If you are looking to hire, I might be interested...its about time for a change-up in my life.
I would look for schools who start their students in C or even C++ right off the bat. I know some people who took intro to programming in Java and would never learn C now, not sure why.
As some others have mentioned, I love doing stuff in C. However, I'm also keenly aware of its pitfalls and shortcomings. As such I prefer to do most my stuff in higher level languages like Python and Haskell only dropping to C for speedy data structures (if profiling proofs it necessary) or for convenience when doing low level OS code.
However, I know a lot of my fellow students have an extreme dislike for C and only wanting to program in languages like Java/C#, even languages like Python and Ruby seem under represented.
The students who seem to appreciate systems level code and C seem to be a minority in my university. Which of course means there is more competition to hire these students when it comes to people looking for C developers.
I really like C. Sure it's not as sleek and sexy as Ruby (My uni uses ruby over python), but, it's fast, and it does what you tell it, and nothing more. I actually am really interested in low level systems programming, but unfortunately it's not easy to get experience on that short of being employed in it.
I love coding in C and my first job out of college was C for mobile devices. I have since moved to web programming and rarely use C directly (closest I get is Imagemagick with bindings)
At my univ the introductory programming course is taught using Scheme but there are plenty of course that use C, such as Algorithms and Data Structures and Operating Systems. Hell we even have a course that uses assembly (Computer Architecture).This is all on the undergrad degree.
Also consider looking at physics and aero-astro majors. Lots of embedded or algorithmic work, so I hypothesize lower level languages like C are more common.
As an introductory language, you are taught Java but when you move up to higher level courses such as Algorithms, Data Structures, etc you will us C.
I've also taught myself C++ and I prefer it over C but I have no issue working in any language provided I learn the syntax.
C isn't really appropriate for most small projects.
You have the touch. Are you a professional writer?
Later I came to Japan to study Computer Go in grad school. I planned to to stay for 2~3 years. It's been 7 years now. I don't play go anymore, but I do harder stuff (karaoke, clubbing, etc). It's been a sort of gateway drug for me.
PS: by the way, the reason an American 2-dan can slaughter a Japanese 2-dan is simply because the scales are different, mainly due to inflation in Japanese ranks. If you're AGA 2-dan (or say, European 1-dan) you should really upgrade yourself to 4-dan when coming to Japan.
Deep down I wish I still played ...
My older brother taught me to play when I was eight, and we played fairly equally for about 10 years, Then, within a year's time, I was consistently giving him 9 stones.
Also in the late 1970s, I wrote a Go playing program I called Honnibo Warrior which played poorly. I sold it cheaply for the Apple II (written in UCSD Pascal) and actually made some real money selling the source code.
Life, my daughter, 2 personal projects and work got in the way.
I miss the social aspect of Go, I find the internet incarnations are too sterile. I love having a tea and a chat while playing, I spend enough time staring at the screen.
Would probably play again if I found the right group.
Pushing the upper kyus would require way too much work than I am willing to commit at the moment to the game.
Love Go, it is truly eye opening.
Talking about smoke, my Go teacher "Mr No" used to smoke 200 cigarettes a day in Go clubs in Korea.
There's a saying, "Go is life". Learning the game will tell you an incredible amount about yourself, about determinism and chance and skill, about depth and limits and building knowledge and passing on knowledge.
For a software person there is a lot to learn about complexity and patterns. There are deep lessons about not fooling yourself, about the idea that a strategy for success emerges in surprising ways from ridiculously simple rules and facts of the underlying material.
There isn't much of a gap between Go's simple rules (alternating play, capture, ko) and software's fundamental elements (sequence, iteration, choice) in terms of simplicity, and likewise these simple rules combine to yield complexities that challenge the best human minds.
When I started playing, it was frustrating and confusing. Now, it's still frustrating and confusing, but it's also so much fun.
Unfortunately there aren't too many Go players where I am, and this makes Go as a point of social focus difficult, as it often is in chess over here.
Nice to see your post about Go. I'm from China and have been playing Go for more than 20 years. I started to play in high school and improved a lot in college. My current ranking is AGA 5~6D. I don't play very often recently except play turn-based games on my own web site (www.go-cool.org).
Because of my addiction to the game, I even created a variation of Go, Daoqi, which removes border of Go board and makes all positions have same importance. This new game gives players a new and different enjoyment.
Like I said, I'm happy to see your post and comments from fellow Go players. Hope I can play with you one day.
If anyone's interested in a game, I can play most evenings, British time.
I'm "grooviest" on KGS. I'm only 7 kyu so you'll need to up-skill me to 1 dan so I can give you a nice game (hint hint). My relationship with Go is turbulent. Currently we are in an addictive (God, it's sooo addictive) phase and she is breaking my heart. My one regret in life is that I was 30 years old before I learned how to play. All those wasted years playing chess. sigh I recently moved from my native land of Ireland to snowy central Finland and one of the first things I did was find me a Go club - hello the Tengen Go Club of Jyväskylä, nice people all round.
Go is an exception. Even a moderately experienced amateur can beat the best computer opponent easily. I think this says something about the richness of the game.
I'm not very good though. Do you have any suggestions for improving?
Not currently active, unless you count the occasional game against Many Faces Of Go (igowin) on the iPad.
I was into the game enough that when I had a free week in a Japan, I spent it playing every day at a club.
I only reached around 10 kyu though; don't have the time for it these days.
though i do not play it online.
my dad thought me how to play it at the age of 8. for some time i played it at a go club, but that never really caught on. now i play with a couple of friends or with my dad.
I hope to start playing again sometime.
Funny thing is, a co-worker caught me playing it, then while he was slaughtering me in a lunchbreak another couple of guys came out of the woodwork too ^_^
I find it very cool that there's just one piece that can be used for everything.
Its also relatively easy to put together a makeshift go board. At most all one needs is white and black paint, brushes, rocks, a piece of plywood or plastic, and something straight to make the lines.
You could even teach them how to make their own board and pieces.
Back when I was active I was an AGA 5dan (probably 6dan in japan). If anyone in SF wants an in-person game I'd love to play - shoot me an email at firstname.lastname@example.org. Our office has a couple learning go players and our janitor might be around 1 dan.
I got a new job and just couldn't focus on it. Bummer!
Anyone want the source code?
Also, if any go players in CA are interested, next years US Go Congress will be in Santa Barbara, 1st week in August!
Same question as OP, but addressed to kyu players-?
You anyways don't know other users unlike facebook where most of the people liking and commenting on your status are your fiends.
More features they have, more complex it is for users and developers have to maintain it.
My theory is that for a developer, a LinkedIn profile is less useful because it basically just states who you know and what you focus on. Twitter accounts show nothing other than that you exist. You likely want to hide your Facebook - my boss was not my friend until after he hired me ;)
A github account is so much more than a blog. A great one need not have many repositories, nor many followers. It just needs to show that you:
- Can Program
- Document your code
- Use version control well (or at all)
- Love to program
A github account is an easy way for non-designers and non-frontend developers to have a portfolio of their past work. It's also a great way to exercise your mind outside of work.
Nota bene: Make sure you legally can write open source. YMMV, but state law might actually back that silly form you signed when you were hired. It helps when your open source code has nothing to do with your actual job.
See also: http://news.ycombinator.com/item?id=1708328
Even though I've just opened an account and there is nothing on there yet, though I link to all things that are me
Last year Agilent, which is still a big area employer, cut another 2700 people:
It is worth remembering that Silicon Valley's first name is "silicon" for a reason. The area made its name with hardware and fabs. The folks in the area who are fifty and sixty years old are proportionally more likely to have extensive experience in hardware and fabs than in web development, and many of the fabs are closing down. Moreover, because it took a lot of people to run a fab -- more in the past than today -- there are a lot of those people.
Yes, life here on HN is great, but that's because of the tiny sample size. For example, what is the total number of people who have been employed at any YC startup over the last decade? I bet it doesn't add up to eight thousand people.
So it depends on your skills. If you want a job running a lithography tool on a production line your job prospects are different than if you want a job writing Ruby apps for a YC startup.
The vast majority of those startups are Web/Mobile/Social/Gaming startups. Take 100 startups with $500k in the bank looking for one two three (web/mobile/flash) developers and you have a rough idea of what the hiring market is like in SF. Add Facebook, Linked In, Twitter, Yelp and Google starting to compete more heavily for engineers, and you'll start to see why recruitment is going to get a lot tougher in the next year or two for startups.
From Mountain View South to San Jose and in the East Bay, the startups have traditionally been more hardware/silicon oriented. Those industries have been consolidating a lot, and those companies have been laying off people. It's people that come from those industries that have gotten laid off.
The 60 minutes episode talked about the San Jose area, and if you read the article , it primarily talks about older workers who were in PR, office managers, personnel, etc...
All that to say, is that after we get funded, we're going to be staying in San Jose. Office space is cheaper, housing is cheaper. It's a lot easier to get around by car. There's parking for less than $20/3 hours. And, there's a lot of experienced talent that's looking for work.
ref:  http://www.cbsnews.com/stories/2010/10/21/60minutes/main6978...
It's not a management book, per se, but it's great for gaining undersanding into why people work and what truly motivates them.
EDIT: His talk at the TED conference:
Scroll down, check out the articles in the "Reading Lists" column.
Well, if you'd like, check out http://youmixer.com and tell me what you would improve about it to make it viral. I'm working on another project right now, but I'm always curious how I could have made youmixer better.
You can just reply on here if you want to keep your anonymity.
Thanks for offering your help. I am sure good things will come to you!
Thanks for the awesome response and you don't need to ask for help. I'm the one offering it. If I don't reply to your mail soon then don't worry. It's just that I have an awesome bunch of people to help and I my hands can work only so fast.
Thank you so much.
Would be great if you had any feedback on the site you could provide. Although not purely writing, any experience or advice on how to improve its SEO would be most appreciated as the current search traffic is low.
Thank you for helping out other HN'ers.
Thanks in advance!
I hope you get lots of neat stuff to do ^_^
Thanks in advance for your feedback.
Would love to hear what you have to say
Let me tell you about a fine English gentleman by the name of Joe Ades, now sadly no longer with us. Joe wore Savile Row suits and lived in a three-bedroomed apartment on Park Avenue. He spent most nights at the Café Pierre with his wife, sharing a bottle of his usual - Veuve Clicquot champagne. You might assume that Joe was a banker or an executive, but in fact Joe sold potato peelers on the street for $5 each, four for $20.
I urge you, I implore you, I beg you, stop what you're doing and watch Joe in action - http://www.youtube.com/watch?v=HCUct4NlxE0
That is what business looks like. Sometimes, once in a million, you luck upon a product so amazing the world beats a path to your door. For most of us, the best we can hope for is to be some chump with a thousand boxes of vegetable peelers. Anybody can sit out on the street with a box of peelers, but Joe sold them. Joe made his peelers sing, he made them seem like magic. He took a humble piece of stamped metal and created theatre. He did something so simple and strange and wonderful that people would buy a fistful of his peelers, just so they could tell their friends about this little Englishman they saw in Union Square.
Look at the Fortune 500, tell me what you see. I see grocery stores, drugstores, oil companies, banks, a funny little concern that sells sugar water. I see a whole lot of hard work and very few great ideas.
Forget about striking it big with a great idea, it's just as childish and naïve as imagining that the tape you're recording in your garage is going to make you a rockstar. Get out there and talk to customers. Find out what they need, what annoys them, what excites them. Build the roughest, ugliest piece of crap that you can possibly call a product. If you're not ashamed of it, you've spent too long on it. Try and sell it. Some people will say "I'm not buying that piece of crap, it doesn't even do X". If X isn't stupid, implement X. Some people, bizarrely, will say "yes, I will buy your piece of crap". It is then and only then that you are actually developing a product. Until you've got a customer, it's just an expensive hobby. Paying customer number one is what makes it a product.
You are building a business. It does not spring from your forehead like Athena, or get pooped out of your pet Nibbler like Dark Matter on Futurama. Listen to what everyone else here has to say. Sure, pick something with favorable long-tail SEO dynamics. Sure, pick something with a viral loop. Sure, build yourself a tribe.
But then, for god's sake, pick something you can stick with, nurture, protect, and grow over the long run. That thing you don't have, that you keep calling "a fucking great idea"? Most of us call it "a winning lottery ticket". Stop thinking about playing the lottery. Get back to work.
I'd say one thing - Techcrunch is definitely NOT the only game in town for PR. They are very fickle and clique-y. There are huge startups that never made a dent in TC. PR is all about building buzz from the ground up, exclusives are a load of crap and mostly reserved for established players anyhow.
If you're not getting any coverage from anywhere, yes maybe there's something at the core that isn't compelling (and you need to talk to customers / users first to determine that), but chances are you aren't spending enough time sending fun personal emails to lower-level bloggers and journalists. If you aren't in the elite old-boys club, you shouldn't be focused on approaching the journalists who are.
But PR and "viral" launches are hard work. The idea of the massively hockey-stick organic viral launch is largely a myth propagated by a few outliers (aka survivor bias).
And good PR does not make a success, either. I've built 2 things that made big PR splashes (everything BUT TC haha) and neither landed me either fame or fortune. The one product was blogged about by the New York freakin Times, and it never achieved escape velocity. PR isn't a long-term marketing strategy. Its a one-time high and believe me the downslope doesn't feel good either
Honestly, there are 2 types of folks who make it: the lucky ones, and the persistent ones. Its hard as hell (and heck I haven't beaten it yet) but you have to ignore the burnout and be one of the persistent ones
If you want to avoid this experience again, choose an idea that:
1) Has a broad-content SEO strategy (think StackOverflow and Yelp). New/valuable content gets created every day.
2) Has a channel for "buying" customers with economics that work. Plenty of people make adwords work. Plenty of others can afford salespeople. Find a market where people are succeeding at buying customers and compete in it.
3) Has a viral loop. Think Farmville or Groupon. Why is it in your customers best interest to evangelize your product? They can be motivated by psychology or $.
4) Create a "tribe". Read up on Seth Godin. Look at Joel Spolsky, 37Signals, etc. They sell good (NOT great) products because they've accumulated followers and evangelists.
It's not about a "great idea". Well, it can be. But look at all of the shitty products that are minting money! You can aim for a "addictive/amazing" product (and should), but it better be backed by sound customer acquisition economics for the (likely) case that your product is merely good.
About your launch day: You expect to blow it out on launch day? That's not a reasonable expectation. It's a marathon not a 100 yard dash.
edit: TechCrunch should not be a goal. At YC there's a word for the period after TechCrunch coverage... "The trough of despair". It's the period of time after TC where your traffic flatlines and you realize that TC isn't a springboard to anything-- it's just the first step (if you're lucky) on a really long slog to building a business.
The first thing you need to do is make your product compelling. There is a reason for all the talk about rapid iteration, minimum viable product, and the lean startup; creating a compelling product is hard. There is no formula for it, and customers are infuriatingly fickle. It's hard enough with established markets for things people really need (eg. food, toiletries, houses, cell phones), but when you're creating something brand new there's this huge hurdle to get people to understand how it fits into their life. There's no telling what will make something compelling, so you need to just put something out and iterate on it. Get 5 customers, get 10 customers. If these people find your product compelling and can give you real world feedback and evangelize the product, that is worth more than 50,000 visits from bored TCers who spend 5 minutes then jump to the next story.
You are doing it backwards.Start with the market first. Your idea is only as good as it applies to the market it serves. You should not have spent 60k on a developer, you should have spent it leveraging a way to talk to your proposed customers.
Yes I agree, shit products get sold all day every day and rake in billions. But you see the product may be shit BECAUSE everything else is so much more important. The system, the sales force, the production line, the logistics, the tracking. I love Mcdonald's. Nah not their food, their system.
I know you are just venting and now may not be the best time to say "you are doing it wrong", but well, it actually is the best time.
You are doing it wrong. I know because I've done it wrong for a long time too! I actually am more of a programmer than a business guy but its kind of funny... "I want to run a business" kind of entails that we think more like business men and less like programmers.
Best of luck to you. STOP doing shit that doesn't work and doesn't matter.
I recently benefited from just that - I was debating applying to YC, decided not to due to our family situation (just bought a house, adopting one kid, fostering 2 others, own an annoying poodle) and my wife said "hey, you know what, give it a shot. We'll make it work".
Open source your software, generalize it, and push it so that anyone can set it up. Make it easy to install, and make it do what it says it can do really well.
Sure, it's not the best way to get rich. I've been working on the open source social networking software, Appleseed, for about 6 years now, and it's been a massive effort with very little financial gain. But your measure of success can change, you can subvert the typical questions of press and fame and fortune that have come to define success, and see success in other ways.
And it's not perfect. I had been working on Appleseed for half a decade when Diaspora managed to raise $200k on the same idea by having the connections and press I couldn't get. But in the world of open source, there is still a level of meritocracy that you don't see in the start-up world: Either your software works, or it doesn't, and they may have had $200k, but I had 13 years of professional experience, and a 6 year head start, and when you're measured in code, hype can only get you so far.
You may even see your open source software put the fear of God into that mediocre LA competitor with all the press and venture capital, which just personally would make me feel better.
The one thing my father always said that I had to relearn with life experience is "it's not about what you know, it's about who you know". It's a very frustrating truism, but there are ways to sidestep it. It just requires some creativity and willingness to play outside of the rules.
And of course, you never know, if your open source software gains traction, you might find it easier to start a company from there, since you'll have gained respect, notoriety, and social connections from that work.
I've tried in the past like you to get on TC and I was unsuccessful. The truth is I tried sending emails to all the "big name" blogs and nada.
I learned a different approach very quickly. I found that if you approach the "small" blogs, they're much more open to covering you. Then using that small amount of coverage as leverage, you approach more well known blogs.
Doing that, I managed to go from not hearing from TC in one week, to having the top story on Yahoo UK's homepage for an entire day the next.
It wasn't easy, it was a shit ton of emails that I wrote, all carefully crafted and targeted to each individual blogger I approached.
In a month the site went from idea, to launch, to 440k uniques (racking up 2.6 million pageviews) to being sold off for quite a tidy profit given it had a very short shelf life.
Anyway, my advice would be to not to give up, just change tactics and approach the smaller guys first, build a solid foundation and work your way from there.
Also, take my advice with a grain of salt as I mentioned I'm no marketing genius.
"In just 8 months without any funding we went from zero to a beautiful system, signed up a couple of early customers by attending local meetups and events, and prepared for a Big Day."
That is your first and foremost problem. You cannot go into a cave and develop your product with no significant marketing or at least a soft launch. You're going to end up building the wrong thing (or even worse, find out the idea was crap all along).
You need to launch an MVP ASAP. And a lot of times, that MVP is only just a landing page (with no other functionality)! If you don't get any signups or excitement, that is reason to pause.
My impression is that a lot of comments are just restatements of the usual clichés: "get the first paying customer", "luck vs perseverance", "minimum viable product", "execution vs great ideas", etc.
As someone who has already asked this kind of question on HN, that type of cookie-cutter advice really isn't helpful at all (assuming you have been following HN for a while).
We need more specific, actionable advice. Here is mine:
Grab a copy of "The Four Steps to the Epiphany" by Steven Blank and apply his methodology. It's broadly a "How-to" guide on discovering who your customers are, what they really want and how to make them buy. According to your story, it seems you are focusing too much on getting PR when you really should go out your office and talk with your customers directly (instead of via TC).
True for you and many others but not a universal truth by a long shot. Blogging is far from a time consuming activity if you're both a reasonable writer and neck deep in the subject matter. Let's just take an example that sat on the front page of HN for most of today:
232 words. And as my own blog was on the front page a similar length of time today, I'm confident they got at least 2000 pageviews from that (I got 5000) and I know I've seen several posts of theirs do well here. Yet if you check their blog, they have several posts per month at most, none are very long or technical.
Other startups like SeatGeek and MailChimp nail the blogging in a similar way. There's no way they're not getting some serious exposure with them, yet it seems in most cases it's regular techs updating the blog and not some team of "noise" generating PR flacks.
 Wait. You missed having yourself or your family getting sick. Or maybe you live someplace with socialized health care.
My suggestions for AdSense would be to spend $500 at once rather than trickling the money out. This gives Google enough knowledge of your conversion rates that you can switch to pay-per-conversion. Bear in mind that you also have to be ruthless about excluding websites where you aren't going to get any conversions during your pay-per-click period. So track your spend daily and exclude-exclude-exclude sites that don't convert. I don't know if you've done this, but it basically halved our advertising costs and turned us from advertising at a loss into advertising more or less at cost (perhaps profitably assuming word of mouth, etc.).
If that doesn't work iterate and launch again.
FWIW, word-of-mouth marketing usually feels like a total crapshoot. Topical, often trivial ideas seem to do the best. And honestly Techcrunch doesn't help as much as you may think. They're good for a spike of 5-10k users, but much more important is your willingness to support an unpopular product for another 6-12 months. Because it will be unpopular. :-p
You might not feel comfortable linking to your company here but I'd love to see what you're working on. I put my email address in my profile, maybe I can offer some feedback.
I also have a wife and a baby. And she feels my highs and lows as much as I do.
The excitement of a new idea and the let-downs when things don't explode into a fervour of web 2.0 money madness. But we do okay - I work from home and we have enough money to get by and we're pretty happy. That's enough! That's okay! You don't need to be a billionaire to be happy and doing okay! (Disclaimer: yes, I would like to be a billionaire :)
I've got a few ideas: whatwhere.com.au is a search engine that's going nowhere at the moment, smsmyride.com let's you TXT people by number plate, smscard.com.au lets you call overseas from your mobile phone, 8centsms.com let's you send SMS from the web and decalcms.com which is my YC app, is a fantastic content management system that is proving really hard to sell!! They mostly look crap - we're working on the design etc. and it's hard.
It takes a long time to get something right when you're funding it yourself. Working Software is self funded. We're not a design company - workingsoftware.com.au is my business - we do a lot of backend work so it's hard to pay for good design (although I've recently employed a design/html guy full time and we're working on improve our "brand").
But we do consulting and pay the bills (most months :) and gradually we're moving towards productisation.
And that's how 37 signals did it - and you know what? They've been around for TEN YEARS. And although they started getting some press pretty early on it's not like they've been the masters forever, they just kept working on it.
My advice to you is: sure it's good to apply for YC, sure it's good to have ideas and build things - but don't put all your eggs in one basket. Focus on what you can achieve for very little outlay, do that, see what happens, then change it and keep on keeping on.
Also - employ someone to work with you, or find a partner. It makes a world of difference when you're not doing it all alone. I have 2 full time employees now - 1 coder and 1 HTML/design guy, and a part-time book-keeper. I work with others in partnerships as much as I can. I'm very open to collaboration and always talking to people about my business and striking up relationships.
Just because you don't get funded DOESN'T MEAN THE END OF ANYTHING. You just need to work out a business model where you can pay for 2 days of innovation with 3 days of billable time, and that's how you get somewhere.
Sure, I applied to YC, I'd love to get funded. We could build things way faster that way. But if I don't get funded, hell it's just back to business as usual.
You don't need that boom and bust mentality - good things happen to those who work and wait, just as much as those that have meteoric rises to fame.
There are plenty of examples of admirable people who have received success early and late in their careers in ALL fields. Examples of people who have lost it all after being on the highest of highs, examples of people who work hard their entire lives and never see ANY recognition!!
All you can do is love what you do enough that, if it works it works, and if it doesn't it doesn't. Make sure you save some money, make sure you enjoy the ride, make sure you're working to a realistic schedule and that you set time limits on your hours and that sort of thing.
The way I see people talking about it on YC and vids etc. is: you get funded or you go get a job. That's not necessarily the case, so don't lose heart: you can make money and be happy without Silicon Valley funding :)
Your launch is not the be all and end all, it's the beginning of a long hard slog. Look at the likes of Bingo Card Creator and Balsamiq. Why would Bingo Card Creator belong on TechCrunch? Rather than focusing on one site, you need to work on a long term plan to raise profile within your target market. The last thing you want is a load of uninterested visitors looking for the thing between now and the next big thing. If you business is relevant to it and it's ready, the likes of TechCrunch will come to you. In the meantime focus on the niches within your target market.
For example, my company sells two things - Penetration Testing and Incident Response. We're very, very good at it, but not many people know about us in our target markets because we (some might say) foolishly were a little bashful about promoting ourselves. Some of that was a product of size and structure, but most of it was that we were taking the wrong approach. We've picked a niche (GCSX CoCo Health Checks - I know, interesting stuff right?) and have started marketing it offline and online. Have a look at http://www.mandalorian.com/services/penetration-testing/gcsx... - That's one A/B tested page for one niche (GCSX CoCo Testing) within a niche (Penetration Testing) within a niche (Information Security). We're a B2B consultancy so we tend not to do things like blogging (at least so far) as it has the potential to be a time sink. Instead we focus on winning business in a target sector or niche, which is what you should be doing.
Our campaign has an initial ramp period, sustained promotion for a reasonable period and then will enter a business as usual setup. Persistence and testing is what will get you the results your after, Not Michael Arrington.
You can't count on a blessing from above. Those are venues for pitching to investors, not pitching to users. You gotta go ground up with forums, blogs, twitter, email.
Create quotas for yourself of the minimum number of people you talk to on each per day about your site. Signup for lots of forums, start posting in said forums. Seriously don't underestimate forums, they are still big because they are the ideal many-to-many venue of communication surrounding one topic. These are communities that are clearly labeled. You know instantly what kind of users are on there and how to cater your marketing to them. Although forums tend to be around more physical goods and concerns, if your application domain is productivity or something more abstract start hitting up bloggers non-stop.
In your story, I didn't see anything about sales efforts beyond "signed up a couple of early customers." Perhaps that was the missing link. It seems you relied on PR tactics, rather than finding, choosing, and closing customer deals one by one.
This is the only thing here I agree with.
TC is rather useless in the grand scheme of things. If not being able to get on TC is your marketing strategy then you need to rethink it.
Much of PR is about having the right connections. This doesn't mean you must have grabbed a beer with Arrington before but just having met and chatted briefly with a writer irl is helpful in getting PR
First, and foremost, I feel with you. I (never stepped out of a "normal" job so far) admire all you guys that have the balls to try that, to risk your savings for something you consider a chance to move something big.There are quite some stories about failures here, but usually they are presented as "lessons". Your post, emotionally, seems to be more like a resignation.That's why I want to wish you all the best.
The second reaction is kind of twisted/evil: I wonder if "I'm a solo founder, didn't go to Stanford, in my mid 30s" is enough to basically identify you to the right people - i.e. YC. I'm not even sure if that would be something you want (Trying to advertise for your idea once more) or not (Missing that fact while venting)..
1: English isn't my native tongue either, and text sucks for emotional conversations anyway. I might be wrong.
You don't need TechCrunch's permission to launch a successful company, which is basically just as difficult if you get it.
None of that stuff dictates what is successful, and most of them are wrong most of the time for the negligible % of startups they touch. It'd be nice to have that coverage or that network or that money, but all that really matters is you, your product and your users/customers.
As for TechCrunch, that seems brutal that they can hold you hostage like that
"Though a tree that falls in a forest and is not heard makes no sound, still, it falls."
I would suggest you stop worrying about press and worry about reaching individuals users. Word of mouth and all that. For inspiration, you might read the story here behind this guy's business:
(I saw this on HN somewhere previously. Thanks to whomever posted it before me.)
I am very much doing the grass-roots thing for one of my projects. I get a lot of flack and relatively little positive response. I actively discourage people from heaping public praise upon me because it causes nothing but trouble. I am frequently discouraged. But the humble, reaching out to the people approach I am taking is gradually working whereas attention-mongering never did anything but backfire and alienate people. Whatever you are doing is unlikely to be as touchy a topic as what I am doing, so you probably don't need to bend over backwards to avoid "good press" when it does come. You may just need to look for other means to validate that you are getting somewhere. Press is not everything.
Good luck with this.
Unfortunately, that's how it works and if somebody says it's not true they are not belonging in your category.
Each time I ship something, I'm discovering that I could have cut things down much further than I did and saved (months/weeks/days) of effort, and just wasn't ready to believe it in the planning stages.
Plus, moving fast gives me more opportunities to work on marketing skills and gain some real experience there. Project artifacts have zero real value until someone is using them, so the marketing effort is a way to mitigate risk, and shouldn't be an "oh my god did we get it right?" shuttle-launching kind of experience. If you feel like it's a shuttle launch, you may have taken on too much risk(for a web app).
It's not easy. Good luck!! Hope you stick with it.
To get early customers I like the domino theory that Clayton Christensen first described in his book Crossing the Chasm (assuming you have built a product that solves an actual, difficult to solve customer problem that is worth paying for):
1. Start with one (paying customer), that customer then;2. Gives a testimonial that you can use to sell other similar customers and;3. Actually provides you names (and sometimes even actual referrals) of other customers you can sell to.
As you build reference customers it gets easier to sell to other customers because now you start to get a rep as a must have in that particular industry.
Nowhere in your posting do I see anything about "we have X number of customers" or "we worked with X number of customers when developing our product". If you spent $60k plus your own time developing a product before showing it to any customers it's possible that there is no need for the product, and that more than anything may be why you are not getting the response you want from either investors, "journalists" or customers.
I know how this can happen, I've been there myself! (It seemed like a good idea when we started building it, how come nobody wants to buy?)
I think the main think I noticed was that OTHER startups getting funded was actually good for ME, since it validated the product and people started to google around for alternatives. They made the beginner mistakes I already passed. Only sales I did was $10 a day on adwords, just to get some traffic going.
So: don't give up too soon.
I disagree that me and you should give up. We have learned more from our failures that most entrepreneurs would have learned for their short-lasting success. It's time to introspect, write down a list of todos that will make your product better, talk to a bunch of users and see why they are hating your product and get back to coding.
You are just in mid-30s and you are going to live for atleast 50 more years. Hang in there for a decade.
What's touched upon in various ways in all the comments is that "PR" and "Media Coverage" is not the end all be all. In fact the successfully software startups I know STILL email individual potential customers on a daily basis.
I think one of the great myths of the internet is that you should just create a product, throw it up on the internet with some SEO and AdWords and the customers will come. Sure it might work for a few people, but by and large you are still growing a business. And you often grow a business one person at a time, hopefully later you can learn to scale sales.
Often what is missing from people's MVP's and business plans is how are you going to very specifically market to your target customers, and what the cost of customer acquisition is. If you can't identify a way to find your target customer, you're going to have a problem. Again, I don't think general SEO and SEM is going to work.
Don't give up on your idea, start emailing people. 50, 100 people a day. Convert them one at a time. If your business idea is not specifically just some sexy piece of technology, direct mail may work too (if you don't also have to educate people on why they need your product.)
Journalist want to write about what's hot, not about what is a potentially decent idea in a decent market. They want to talk about iphones, ipads, and facebook, and the latest jargon.
Anyways, start finding your target customers and email them. Don't worry about email campaign tools and crazy stuff, just starting email or calling them one at a time. Building a web based software business doesn't mean you can just skip sales.
What matters is customers, and you get customers because they know about you, and they learn about you through marketing.
To rephrase what you're emphasizing:
"Market the fuck out of your great idea"
Be everywhere, talk to everyone, always be selling. Don't be "viral", be invasive. Show up, pitch, and close. Get deals not by word of mouth, but by being there.
Make noise. Create spectacle. Generate exposure.
People forget that things like Twitter are not only products, but platforms that literally market themselves. Marketing is baked into their idea. Facebook went "viral" only because it capitalized on people's inherent narcissism. Most products don't have this luxury.
Always be promoting.
Too many companies have failed simply because they forgot to tell people about what they were doing.
I am eager to find out which one.
Truth is your product probably didn't have a great "good name".
See starting at 5:18 in http://www.youtube.com/watch?v=mzJmTCYmo9g -- that's about the subprime market. hilarious.
So, as the video demonstrates: no fucking great idea can challenge a really great "good name"
To make my point, let's put an example (me). Take a commodity idea. Say "a wiki". And then name it "SimplyWiki", or, adding some trickery, "SimpliWiki".
Now your get a great "good name" and it is the only thing that really matters.
Well... some persistence is good too, as mentioned before, so... keep trying and remember to have fun, it's easier to persist in doing fun things.
Sure, it's easy to say "focus on the business" and "don't give up" but maybe what you're doing is a losing proposition from the beginning -- and maybe you SHOULD give up!
Who knows, maybe you should have given up before you ever started? It's hard to say without knowing any real facts ... :(
While there will always be the silver spoon fed types who really "know" people, you can go a long way networking and being social. Not social networking. Get off your machine and go to events, conferences, where-ever the action is and make friends with people who can help you, and presumably who you can help too.
I know it is really hard to shift focus from the product and socialize, especially as a single founder. You have grown so accustomed to the efficiency of the Internet that any offline PR or networking seems like a grand old waste of time. I am guilty of that too. But I realize that many entrepreneurs have a competitive advantage by virtue of their social connections. Whether it be in the form of an introduction to a venture capitalist at a party or lunch with a tech journalist.
So I suggest you don't throw in the towel just yet. You now have a product. And obviously a supportive wife after four years. Drop the code for awhile. Step back and reassess where you are focusing your energy to steer your company towards a brighter future. It is not an easy or short road to follow. But if you really want it, you will get there.
Sad to hear your story. But that how it is down here on earth. No one cares. Really.
You should forget about TC, YC and 'a big launch'. You should've just launched. Do whatever you can to let the world know about your product. I think HN is a good place, and proggit too. I know you did that once. But perhaps it's the third attempt is the one that's gonna make the difference. The second, if we are lucky (I said 'we', you are not alone :))
So launch. Have faith in yourself. Give it some time. I wish you very good luck.
The #1 thing you need to do is find a way to sustain yourself and your energy through the long slog - Paul Graham's "How Not to Die"
The #2 thing you need to do is build relationships with customers and understand who's problem you're solving and how you're going to do it.
Figuring out how to make forward progress is easier than figuring out how not to give up and how to get anyone to give a shit.
Sometimes success is just on the other side of the fail mountain.
In VC it's "team, market, product".
In most cases people are happy to give you their reason why they think it's not such a great investment.
You might want to go back to people's reasons for rejection and make sure you took away the right lessons learned.
If there's some underlying oddball reason they're unable to articulate clearly, like you didn't pass due diligence because they have you confused with a mass murderer of the same name, or the reasons are otherwise it might help to work with an intermediary who is familiar with the VC process. Either your experience should put you in touch with possible mentors/board of advisors, or as a last resort you could give someone with a record of success a stake contingent on getting you over whatever hurdle is blocking you.
It's not the sound but the silence that bothers me. Constantly wondering whether a lack of responses indicates that something is wrong (requiring a pivot), or that I haven't stayed the course long enough for my current strategy to pay off.
Your biggest problem: taking eight months to "launch". If it's not sellable after a week, why spend eight months on it? You should start making money as soon as possible.
That means making the simplest, fastest-to-develop product and putting it out there. Don't change a thing until you have paying customers giving you feedback. If that day never comes, move on, and take your savings with you.
If you want to build a business, then you need a real plan for sales and marketing. Doing these well is just as hard as writing code. It takes a lot of careful thought, and it often takes money.
Even if you got your one-time appearance in TC, you'd find it wasn't enough. You need a sustainable strategy for acquiring customers. You need to calculate that the money you get from each customer is ultimately more than it costs to acquire them. Depending on your market, you may need a lot of money up-front to build a sustainable business.
These things don't take care of themselves. There's no simple one-time solution like showing up on TechCrunch. If you want a business, you have to build it.
If you want to advertise, learn to advertise. If you cannot and will not learn to advertise, hire an expert to do it for you. Don't make hurdles into an excuse to fail.
2) Do not sacrifice other promotion opportunities for Tech Crunch. It kills startups that keep it in a stealth mode.
Everybody thinks their idea is great. Even you thought your idea was great, right? You might be better off trying to growing your personal brand in addition to launching a company. If you have a name for yourself, it should be easier to get YC's and TC's attention.I'm sure if one of the famous HNers launched something, people would notice (and they have)
30% is product (programming - product must not suck), 30% is marketing, 30% is sales and 10% is luck (there is always some luck).
That is how it is. Yeah that is cliché.
And don't give up.
Your focus becomes your reality.
Never get in your own way.
So: What do you want your reality to be? Focus on it. Figure out how to get there. Never give up.
And, don't get in your own way by becoming your own worst enemy and defeating yourself mentally before your competitors.
I've made a lot of money over the years and have also lot is all to the point of going bankrupt twice (as in, having to file bankruptcy, rinso, everything gone). Still, I would not change any of it. Not one bit. Either this is in your bloodstream or it isn't.
you see, I just made a HN-style comment. Draw your own conclusions.
As has been pointed out, compile speed isn't necessarily CPU-bound and some compilation tasks are quicker on a slow machine with a faster drive. CPU performance is much less important than most people think.
Screen size is a more difficult issue, as so much depends on your development approach. I'm increasingly inclined to think that my large display may actually hinder my productivity, as it seems to facilitate distraction and procrastination. I seem to feel less bad about procrastinating if I have my text editor open. I'm giving very serious thought to replacing my 17" MBP with an 11" Air and a Kindle DX. A lot of writers use a full-screen text editor like WriteRoom, or even a typewriter, so there's a lot to be said for minimalist, low-distraction tools.
If that's what you mean, no laptop is going to be acceptable. Laptop keyboards are crap. Laptop ergonomics are crap. Laptop expandability is crap.
If the question is, "does Ruby run on 2.13GHz dual core machines", the answer is yes.
I like to work from not-my-desk once in a while, so I have a small netbook for that. But honestly, it's so much nicer to work at a properly ergonomic workspace that I rarely do this -- only for hackathons and the like. If I am by myself, I am in front of a proper workstation.
(I also don't like the "well, just ssh from your laptop to a server" approach that others are mentioning. I can feel the latency. If I run Emacs over ssh or X to another machine, I notice the key lag. If I edit files on a remote file system, I feel the latency for operations like "git status" and even saving. Perhaps I am just very picky.)
I'm an expatriate and live on the road; I'm literally never anywhere without my laptop, not even for five minutes, so the weight and form factors are critical. And I don't use my computer for entertainment, and don't care about having a DVD drive, etc. I do all my development with Flex, Dreamweaver, Dashcode and a LAMP stack, so my needs may not match those of desktop app devs. But for me it's really been ideal.
I'm fascinated by the minimalistic concept of the Air. I don't need zillion USB/FW ports, optical drive, 500+ gigs of disk, user replaceable components (every machine will be outdated as professional tool in few years anyway). I just need good keyboard (check), wifi (check), good all-around performance without bottlenecks (SSD, check), solid construction (check) and enough screen estate (not sure if 1440x900 is enough – I would love to see 15" Air with 1680x1050 screen).
I'm currently doing all of my development (iOS, web and Java) on a 2 year old 13" 2.4GHz Aluminum MacBook and it's been fine. Compared to my MacBook, the new MacBook Air has a slightly lower clock speed processor with twice as much L2 cache, an ultrafast hard disk and probably a better video chip (GeForce 320M compared to my 9400M) and a higher-resolution screen.
I say go for it.
I'm healthier and lots more productive on a desktop with a keyboard, mouse and large screen (all at the correct heights and distances).
Wil Shipley blogged a couple years ago here: http://wilshipley.com/blog/2008/01/macbook-air-haters-suck-m...
about developing his Delicious Library app on his Air. The post itself is a bit much, but there's an addendum at the bottom with some compile stats. Namely, the Air (because he got an SSD) compiled Delicious Library faster than his Macbook Pro.
But I would love to hear others' experience developing on an Air, since that's what I'm considering now, too. This Stack Overflow post:http://stackoverflow.com/questions/549008/macbook-air-for-ip...
mentions that Xcode can't autocomplete well on an old air, but I think it might be because it has a balls-slow 4200 rpm hard drive.
The only thing that concerns me is the processor. What things tax the CPU?
He's a patient guy.
Since I'm already accustomed to the weight, and carrying a book or too with me all the time, or my iPad... weight argument is moot.
I'd get more benefit, and it'd be cheaper... to just upgrade my current setup with a 512GB SSD, rather than going with a current model Air.
(because I wouldn't be buying anything but a fully-loaded top model)
It's too wimpy with the stock setup, imo.
With a higher rez screen, greater battery, more memory & larger permanent storage, I can only imagine the new ones are even more suited to become your main development machine (and you won't be going back once you tasted it ;)
Why not use the Air?
I need a ton of RAM. I'm actually currently limited because I need to spin up VM's on my local machine (for various reasons, often to test out, say, PXE booting in a confined environment.) If I wasn't in the business of testing systems vs. software stacks, then I'd be all over the Air.
It kind of depends on my working environment at any given time (lots of time on the go or sitting behind a desk with an external screen), but power will definitely not be an issue.
That panic didn’t last that long (I have some capacity for logical deduction and Google helped) but I do think that it’s not really a very clever idea to send out your mail from a domain you are not normally using. There might be technical reasons but I think the user experience is just not great. I’m not sure, though. Most people probably wouldn’t even notice.
And if it is already an issue, providing more details about the type and quantity of emails you are sending, and the blocking you are experiencing, will help you get better answers.
I mean, why not use @startupmail.com for your personal addresses and have your app use @startup.com? You can set up aliases like email@example.com so the obvious guess-address still works, but this way your users don't end up asking "is this legit?", your corp emails still won't get blocked for spam, etc.
I really dislike the UI of sending app related emails from a different domain. It's an ugly solution to what may be a non-problem, and if there really is a need to separate corp from app addresses, treat your app as the number one priority. Use gmail for your corp correspondence if you have to.
I've got dozens of "your friends are waiting for you on Facebook" notifications to email addresses that are not even linked on Facebook. I can see where people would mark these as spam.
Also given the less savvy end of the computer user spectrum, I can see where people will just click 'spam' as a quicker alternative to clicking delete and then 'Yes I want to delete'
Finally with the sheer volume of notifications generated, I can see where some overly sensitive mail servers may block the sending domain for too many messages.
The short answer: I back up my data. I encrypt all sensitive data on my laptop and don't access it in uncontrolled environments. I tunnel everything (usually with OpenSSH Dynamic Proxy) and then I run a firewall ruleset on my laptop that: 1) Permits tunneling to my server, 2) Permits anything on localhost, 3) Blocks all other incoming or outgoing traffic. Meaning if some program (Pidgin for example) isn't going through the tunnel, it can't even connect out.
It's worth mentioning that I usually operate this way all the time, whether I'm in a risky environment like DefCon or HOPE conferences, or my favorite small coffee shop. Tools like ProxySwitcher, small shell scripts, network locations and stuff that others have mentioned can be used by moderately-savvy folks to make the tunnel setup as painless as possible.
The only additional threats I can see would be threats against your PC directly, rather than your traffic.
Am I wrong?
Once it's set up, all you need to do is switch your network location to the tunnel location before you leave the house, then when you want to get online, press the button for the appropriate tunnel in SSH Tunnel Manager.
I have a reachable personnal computer with an ssh server. Then on my local machine I do:
ssh -D 9050 username@host
I made a short post about this:
If I was paranoid, I'd bother to set up a VPN and use that.
If I'm extremely paranoid, I use Tor (which may have some security concerns).
It's also setup so I can use remote desktop through the proxy to my desktop at home. I wrote up some instructions on how I did it here:
Getting openvpn working took about a day of hacking around on my vps and my mac. (just read the openvpn tutorial and follow the steps.) I still haven't gotten openvpn working on Windows but it's not something I've never needed.
It's pretty easy to set up, if you're comfortable with Linux. I'm using it on Ubuntu 9.10, and I followed the guide here:
In addition to helping secure my connection to the Internet at all times, it enables access to online services that are otherwise unavailable.
These services include BBC iPlayer out of the UK, and Hulu and other streaming services from the US, like sporting events.
I have found Witopia to be extremely reliable and fast.
I recommend their service.
This takes me remembering to do it out of the equation
For remote access and Internet access over wifi for non-SOCKSable stuff I use Strongswan. I have a small scale darknet set up with it (just me and a few friends) so it's already there for me, but I wouldn't recommend it unless you know your stuff.
For more robust solutions I set up my own openvpn instance on a home server which I can use that from any coffee shop and I have a Witopia account (which I use when abroad as they have servers all over the world which speeds things up a bunch). I make the greatest use of Witopia from within China as they have servers in Hong Kong.
I recently signed up for Clearwire's CLEAR service. They have a MiFi component that does "4G" with fallback to 3G if necessary. This gives me up to about 3MBs, with portability (up to 3 hours on battery). There is no data limit for "4G", and you get 5GB per month on the 3G fallback network.
Anywhere I travel inside the US, I'm using my home network, and isolated from public networks.
I setup vpn on my dd-wrt router.
You pay the price with a pretty complicated setup (assuming you're not already an IPSec guru, which I certainly am not), though.
I use HTTPS Everywhere, and for any sites that don't use SSL (cough SLASHDOT cough) I just use non-standard passwords and take the risk, and be aware that what I say over unencrypted IM might be intercepted (though it's unlikely).
Very similar to ax0ns setup.
Sites not using Typekit are most likely just using their own @font-face solution and hosting the fonts on their own server (which can also be a faster solution than loading in 3rd party font solutions).
Never use fonts and just hope a user might have it. It's not too hard to roll your own solution for serving up pretty fonts using @font-face. You will need to read up on it to learn the ins and outs, and what sort of goofy idiosyncrasies exits that you need to deal with.
I would recommend using the @font-face generator from fontsquirrel.com (http://www.fontsquirrel.com/fontface/generator). This helps you take a font you want to use and prepare it for the web, creating all the different font file types, as well as creating the css you need to use to embed the font for use.
When you use the font, be sure to use it as part of a font-family, so that you can plan what fonts to use as a fallback in case your @font-face declarations don't work out.
Understand that your font will be rendered differently between various browsers and operating systems. Sometimes using a css declaration like text-shadow (text-shadow: #FFF 0px 0px 1px;), and matching the text-shadow color to the background color the text is on, can help smooth out jaggies on the rendered font (works well for webkit browsers), YMMV. Definitely check out how your font looks in all the major browsers, as well as different OS platforms. For instance, I have found Windows XP to render some @font-face fonts much worse than say Windows 7.
Just know that things aren't quite perfect yet with @font-face, so think long and hard about using it in a production environment, and really test all platforms, browsers, etc to see how it looks. Understand how your choice to use a custom font might hurt readability for large blocks of small-sized text (like a blog post) because of rendering issues. Also, Remember to use custom fonts responsibly, you really shouldn't need more than 1 (2 max) custom fonts on a page. Some people get a little carried away.
Some free fonts you can use online. NOTE: Always check the font license to see if you are allowed to use it on your site. If you plan to make a profit on your site, always check to see if the font can be used commercially!:
Recommended reading (these should help you get in the head space of what you need to do, and what the @font-face landscape looks like right now):
Also take a look through their site, lots of information there for you.
Incorporated for $200(ish) online with Industry Canada. Very simple process. To do our term sheet/NDA/employment agreements we turned to James Smith from Labarge Weinstein (Ottawa). Excellent startup lawyer who travels all over Canada. No upfront costs for the minor paperwork, he's into building longterm relationships.
The other stuff you mentioned come under Formation Services package (fixed fee) offered by most startup law firms - the fee for this generally ranges between $3K - $5K. And you can negotiate to defer this fee with most of the law firms, until one of these triggers occur - funding, or revenue, or exit.
$15,000 - incorporation, shareholders agreement, minor angel investment, and employment agreements.
anyone set up shop in both?
You probably don't need to worry about the guy starting a competing company. If he does it will fail.
1. Hire a good lawyer and get good advice. The best defense is a good offense and all that.
Make sure he has no ability to use company funds. Cancel his company debit / credit card if he received one as a director of sales. Send an official letter by registered post letting him know that he does not have the ability to authorize expenses above $100 or so.
Then follow your lawyer's advice on firing him from the sales position.
Make sure your lawyer communicates the non-compete part with him properly - so that he realizes that if he leaves now, he won't be able to profit from the idea at all - and its better to stay with you and earn 22% of the pie than go for 100% and get a big fight on his hands that he will most likely lose.
2. > The person had a large rolodex in a segment of our market.
This tells us that the person's reputation can be adversely affected. Threat of bad press could maybe get him in line.
Also, it would be a good idea to find at least one or two common connections and try making them mediators.
3. This is the stick. You need to offer him a carrot too.
Make him an offer: he does not work with you. He retains his shares and plays a role as an investor. He gives up the board seat - and remains a silent investor. He gives you a connection / letter of referral for all the contacts he is sitting on - for a flat fee. No vesting of shares.
Position this "getting a fee for writing a letter of introduction to his connections" - as the carrot. A lot depends on how you phrase it.
4. Start contacting other investors who could maybe buy this person's share out. I doubt if you can find and close someone in 7 days, but the sooner you start looking, the better.
Sometimes threats are just threats. When I was starting Tarsnap, I spoke to an "angel" investor who, when it became clear that we wouldn't reach a deal, threatened to sue me to recover his "expenses" associated with considering an investment. A few months ago I got an email from an "inventor" threatening to sue me for infringing on his patent application.
In both cases, I responded that I thought they'd be laughed out of court; and I haven't heard from either since.
HN'ers all mean well, but few-to-none of us are lawyers. I've seen examples where many well-meaning geeks (I'm one too) have up-voted an answer to a legal question that is actually incorrect or not the best course of action.
Always take legal advice from a lawyer over the advice of 100 geeks. If the amount of money we're talking about here is $400k then you must have had a lawyer involved to do the deal so go back to them seeing as they are familiar (and should have put provisions in for this kind of outcome).
Do yourself a favor and ignore every piece of advice that isn't "talk to a good lawyer". Except the piece of advice that says you should ignore every piece of advice and talk to a lawyer. Or that second one.
Now my head hurts. What should I do?
Also, humor is life's great defuser. If you can figure out how to make him laugh at least a couple times in the next few weeks, it will be a surprisingly huge aid.
[ Even though this is at the unavoidably SERIOUS BUSINESS aka lawyer point, you need to get meta, make light of the situation, don't jump through the hoops he creates for you. His train of thought is carrying you and your business and it's headed to bye-bye camp. DERAIL this train in anyway possible, even if it involves providing framed motivational posters of LOLcats for his new office. Also, consider getting him drunk at some point if possible. ]
It can't be a cash question, you could get an hour of excellent legal advice for $1000 even in a big city.
Also (and this applies to all legal 411 queries on HN), where is the firm incorporated/located? Rules vary across different US states, and there are lots of HN folk who are not in the USA at all. I'm only guessing you're American when I mention 4 numbers, for all I know you could be in Uzbekistan. Even if I was a lawyer, how would I know which rules govern your case, or whether I was close enough to offer assistance?
And why don't you have a throwaway email address in case someone can give you an exact answer or refer you to a report of an identical case? Depending on the nature of your business, it might even be appropriate to involve the police based on the story you tell.
the "right" thing to do is to suit them, but that is not our DNA, and would jeopardize the company we have now
I'm having trouble taking this seriously.
Like others have said you need to get a lawyer pronto.
Direct all communication through you new lawyer, or with your lawyer present.
Some things to discuss with your lawyer:
1.Nature of the investment?
2.What terms did you and the investor agree to in writing?
3.Termination of employment, don’t just fire him w/o talkingwith your lawyer.
4.His unauthorized hires, purchases.
They have no right to ask for their investement back. They have offered to sell you all their shares for 400k within a week. You have made a counter offer, which they rejected.
You can give them a lower offer (370k, by the end of the year), but they can refuse.
Realistically, you might have to offer a bit more, as their investement has grown.
You can hit them with a suit if you want - they acted with apparent, but not actual authority. From wikipedia: "If the agent has acted without actual authority, but the principal is nevertheless bound because the agent had apparent authority, the agent is liable to indemnify the principal for any resulting loss or damage."
So you can ask them to pay you damages for anything they did without the right approval. You'll need a lawyer to do this.
You might want to ask them what charges they are thinking about making. There might be some minority investor rights they can sue over? But I'd ask a lawyer before doing this - I suspect this could force their hand, which you might not want to do.
Whatever the case, you want to buy them out, and make sure all the documentation for this is in good order.
If you look in the Attorney engagement letter it probably has language about their duty is to represent the interests of the company only, and not the founders, shareholders, officers or other individuals or entities associated with the Company.
It seems like he wants to willingly pull out as employee and investor/board member, as long as he gets his investment back. So working out a solution for the payment for the shares (with the help of the company Attorney) might get the ball rolling on a solution for you guys.
Seems like this guy is a surefire candidate to be included in such a list.
It does look to me like you need to determine what your objectives are for the situation. From my point of view, if you can stomach it, kicking them out of the board is a top priority. I wouldn't worry too much about the shares as long as you can live with them being a silent (albeit voting) investor. If you're going to buy them out, make sure it's on your terms and doesn't put too much strain on the company.
In any case. Get A Laywer
- Spend time to build real connections and relationships with the people you're trying to recruit. Find out what the look for in a job, and if you none of your clients fit the bill, say so point blank, but that you'll get back to them when you find one that does.
- Build a tribe (in the Seth Godin sense of the word). Build a group of people that look to you about finding jobs and hiring. Organize events that get lots of smart technical people together, that isn't just a recruiting event. Think about the 37 signals blog and the conferences they've organized. Think Super Happy Dev House.
- Don't cold call. Speaking personally, I'm much more likely to talk to you if you email me. Aggressive phone calls are a major turn off. If you must call, don't call before 10am in my time zone.
- Being open about the companies and positions you're trying to fill. No caginess about what the company is, and being open about any potential downsides you know of.
- Don't recruit for companies you don't believe in.
- Know what you're talking about technically. This means not recruiting people for positions that don't match the experience they list on their resume. It means not recruiting them for positions they're highly unlikely to be interested in, based on past positions.
In general, recruit people like you would want to be recruited. In the short term, this will likely be less effective than more traditional approaches. In the long run, as you start building a network and reputation for integrity, I bet it's significantly more effective.
The recruiters receive details of a job-opening from a company (hey, we're hiring), calculate how much the fee will be to them (OMG $20k!!) and then proceeds to cast a wide net by spamming twitter, email, cold-calling, linkedin etc to get as many CV's as possible then cut the list down and try to get them into interviews. Its driven by the payoff because if a recruiter does their job amazingly well, then they place you in a good job and you never need them again... companies on the other hand are always reruiting so better to help the company.
...the problem is all those people who sent in their CV and didn't make the first cut are naively under the assumption that you are proactively searching for an opportunity that can help nurture their dreams/desires and provide room to grow in a new role etc etc. Rubbish.
I don't know the answer, but thats my take on the situation - based on experience of going through the system a few times with different recruiters.
While 37s makes wonderful products, this post reminds me that time and time again DHH has a habit I dislike: thinking his opinion is the hole in which every puzzle piece can fit. There are times where his team brings out some outstanding, accurate and worthy information, this is not one of them.
What would a 37s recruiting agency look like? I couldn't tell you-but I can tell you, from the perspective of someone who actively executes virtual recruiting services for startups across the landscape, it wouldn't be a very good one.
He exhibits the very ignorance he's railing against in this blog post: assuming all recruiters are as clueless as this one for sending a shotgun blasted email to any candidate that stands a remote chance of replying, by sending a shotgun blast signal to the industry that he clearly does not understand by saying they're all the same.
On the other hand if you meant going to parties and events where you actively talk to potential investors or using PR and marketing to build buzz about your company. Then not engaging in a hard sell and instead letting them say they are interested, yes.
It's not going to happen. Your not going to get investors coming to you. It just doesn't work that way. One of the first things an investor is going to ask you is who else are you working with, talking to or looking to take investments from? If your answer is no one, you came to us. That's a HUGE red flag, especially with the barrier to investors evaporating before our very eyes. RE:(incubators, anglelist, etc)
The only way investors will come to you is if you:
1. Have had a successful exit at another startup you've founded. In which case you probably have a decent group of investors you worked with before so not going to back to them would be counter productive.
2. Your traction/PR is HUGE. (In which case, you should be focusing on becoming profitable. Why take investment if you've already achieved EPIC traction?) I'd also argue it's unlikely you got to this point w/o some kind of outside investment. If you did then you don't need investors.
I went and took an evening job at "geek squad" for $13 hour and started selling cars at a friends car lot on the weekends in a city about 50 miles away so none of my employees would know we were struggling. Often times over those next few months I was paying my employees from money I had earned working those two jobs which none of my employees even knew I had.
I eventually started researching effective ways to collect past due bills and I was harsh and even lost a few customers in my collection tactics, but ultimately learned a great deal about the types of customers I did and did not want which allowed me to realize that having tons of business was not necessarily as good as simply having a smaller, loyal customer base who pays their bills and respects your work.
I can recall one conversation where I was speaking to an attorney's secretary and she told me that after talking to "John" Aka the attorney in question, he simply did not have the money to pay the bill, but he "would get it paid as soon as possible" to which I quickly popped off "Well why don't you tell John that if he doesn't have the money he needs to stop parking his Aston Martin in front of my office."
luckily for me, my young hot headedness paid off and I received a hand delivered check the very next day.
While I struggled for some time to come and eventually spent my entire savings paying my employees salaries the business did eventually succeed and go on to be very sustainable.
When selling the company to a large firm out of Charlotte, NC I was even able to negotiate terms allowing all my employees to keep their same grade of pay for at least 2 years after the sale (they were all on salary and paid above market rate) While I worked harder in those 19 moths than I ever had in my life it was the most fulfilling time that I have ever been through and it shaped the me into the person I am today.
However, our client was a hedge fund manager with an in house attorney who kept trying to convince me that because of my age (I was 21 at the time) I had no idea what I was doing and was being unethical for subcontracting work. He refused to pay and threatened to have his in house attorney waste enough of our lawyers time to make it unfeasible for us to pursue litigation (we didn't have a lawyers fees clause in our contract in case of disputes). After a lot of back and forth, he ended up settling for 50% of the contract amount ($12.5k IIRC) and we didn't pay anything to our subcontractors as a result of their breach of contract. The $12.5k plus some other purely advisory (non-development) work we did paid for us to stop arbitraging consulting (which was great since we didn't have any subcontractors anymore since we fired them) and to live on for the rest of the summer and work on our startup.
We raised money from YC right before that money ran out.
(If you are not familiar with the story, in a last-ditched effort to save his car company, De Lorean attempted to traffic a large amount of cocaine. Turned out the seller was a federal agent. That is dedication)
I lost ~30lbs in the 2 months I was doing this. In the end the startup failed, I swallowed my pride and got my old job back, the one I'd left a year previous to work full time on my startup.
It all went downhill from there, but I still hung on for a few months. Didn't want to fire anyone. I took out crazy loans to keep this lead balloon afloat, but there was really no turning around. And it pretty much ruined my life.
It's a cautionary tale, really. I should have allowed this company to fail at a time when I still could have walked away without some serious damage. The company was done. It had no product, burned-out employees and no prospects. I wouldn't make that mistake again today. The lesson here being that desperation is never a good sign. When you're doing a startup, what you want is hunger and euphoria. Not desperation.
If I was back home (AU) then I couldn't have come anywhere near as far as I have - my cost of living here is like $500/month. I'm able to devote a tremendous amount of time to my startup.
Also drove to Foxwoods to play poker once with my co-founder when we were particularly desperate. We only had enough money for one buy-in ($300). Figured that if I was asking my parents for money again, asking for an extra $300 was worth the risk, if I had a chance to win and not ask for anything.
Bill also took random jobs on Craigslist (helping people set up pod-casts, writing papers for wealthy foreign students, etc.)
I taught the LSAT and did "law school admission consulting" which basically translated to helping people write personal statements.
Only now can I really look back at that time and appreciate what a huge opportunity it was. Most people only have one shot in life to take infinite risk. Eventually life kicks in and you have to start making more measured decisions. However, even with the huge amount of risk I took back then it almost certainly would not have been possible had it not been for my very supportive family and girlfriend. I knew that no matter what happened I could always go home and tell them I gave it my best shot and life would go on.
starts @23:00 or so