What you need to understand (and most of us hackers too) is that there is a difference between the 'hacker' and 'get shit done' mentality.
Programming is something I've done for the last 10 or so years (in various forms). It is essentially the only activity (in terms of 'work' or career) that I enjoy. The engineer in me just enjoys making things 'perfect' (where perfect is a definition perhaps only I understand, but generally its something built on solid engineering principles. Well-tested, reliable, modular, efficient, etc). When code looks 'just right', I enjoy the code regardless of whether it is bringing me any $$$. In that sense, for me, engineering is a fun activity, and not 'work'.
The hacker in me will enjoy a well built piece of software for its engineering brilliance regardless of whether the software got anything done at all.
In the last year or so I've been able to isolate these personalities and perhaps merge them. I do not scold the hacker just because he wants to try out new languages every month and is opinionated about his favorite ones. I get pissed off when this stops him from getting shit done.
I'm glad for the hacker in me who cares deeply about the tools (languages, IDEs etc) that he uses. Its this hacker that makes my job 'fun'. It is this hacker that has helped improve the quality of my code and my thought process for building good software. The 'getting shit done' would never have been enjoyment enough if it were not for the hacker.
Looking at this 'from the outside' (US), some of this stuff is absolutely shocking. How scared is the average person to continue tolerating stuff like this? And when/where does it stop?
The BIGGEST QUESTION for me is this: Will there every come a point where the government will say "Ok, the world is safe again, we're giving you your liberties back."?
> The BIGGEST QUESTION for me is this: Will there every come a point where the government will say "Ok, the world is safe again, we're giving you your liberties back."?
I think I know the answer to that one but you will not like it one bit.
What's the last time a country repealed a law that limited citizens rights somehow without there being a confrontation about it?
Confrontations happen with every political change. The real question is whether it's feasible to repeal laws that limit citizens rights; the US presents numerous examples that suggest it is.
In 1972 the draft ended. In 1996 export of strong cryptography from the US was legalized. Since the 1990's, 18 states have either decriminalized marijuana or legalized medicinal marijuana. A couple states during that time span legalized assisted suicide. Judicial rulings in the past ten years alone have overturned laws banning firearms and sodomy, and in five states, same sex marriage was legalized.
I can see it from both perspectives. It is shocking, but the government isn't just doing full body scans for kicks. Airlines are ridiculously hard to secure - if terrorists use another one as a bomb after the US has spent so much money already protecting them, then we're in big trouble. Not only would more terrorists try to hijack planes, but we would lose some standing with other countries because of "insecure" transit systems.
The BIGGEST QUESTION for me is: Will there ever come a point where our airlines WILL be safe again? If there is ever a lapse in our security, will someone new try to embarrass us using the same attack? Will the world ever be safe?
I have a friend who regularly talks about how easy it would be to 'destroy' (kill power grid, poison water supply bomb pretty much anything) NYC (he's from up there) without using the airlines.
Even before 9/11, it was by far much easier to 'destroy' a city than it is to hijack an airplane to do whatever.
I interviewed at Yahoo and I didn't think it was that bad. I met some really cool/smart people and the technologies that they showcased were, again, really cool.
I felt very little difference between the engineering culture at Yahoo vs other "popular" companies. And Yahoo's products are good- think YUI, Yahoo Mail (client side stuff), Hadoop, etc.
They asked me one thing that Yahoo! could improve upon and I suggested that they focus on making one service really really great, which can then, in turn, drive traffic to other services. And to drop poking their head into everything (My yahoo, groups, games, social networking etc can be dropped).
Its sad to see how Yahoo's value has fallen recently, since internally it seemed very vibrant and had the kind of atmosphere I would've liked to work in.
For some reason Yahoo has incredibly talented engineers, all working on things that don't make Yahoo any money. When it comes to the paycheck, Yahoo is just a web publisher; not much more tech focused than AOL or IAC.
For some reason Yahoo has incredibly talented engineers, all working on things that don't make Yahoo any money
My observation was that that was because the divisions that did make money were a cesspool of internal politics, back-stabbing, and constant re-orgs and re-writes as different managers gained power. For a while Yahoo held onto some good engineers in those divisions by throwing lots of money at them, but in the long run I think that just enabled those engineers to negotiate fat compensation packages at other companies.
Wouldn't you be more comfortable leaving a 6 figure job? This way, you'd have more savings, and the knowledge that if you've done it before (earned a 6 figure salary), you can do it again. I think someone who earns just enough (perhaps around 70-80 k) would be least likely to leave.
I'm interested in learning how this works. i.e. how do you encrypt the data client side? is it a randomly generated key? (I guess not since the user would need to know it to decrypt the data on another machine). If the user picks a key, is it the same as their password? If the key is the same as their password, do you store the password in localStorage? etc etc?
(Sorry, just thinking out loud here and not sure how this'll work)
I started doing the same as soon as I started working.
Something else that I recommend: Bump this up by 5% every few months and see how it works out. We can often get by with so little (especially people like me who have lived the miserly university life) and we can actually be /happy/ with it, that it just does not make sense to hold back.
I also like the idea of dedicated goals: For e.g. sponsor x children, feed x families etc. This helps solve the problem in manageable chunks and is easier for others to understand. (i.e. if every person helped x other people, we'd get rid of poverty/hunger).
Both the framework and no framework approaches have merit.
Choosing a framework limits your choices. If I'm using Django, it won't work (or work well) with a non-rel backend. If I'm using jQuery and I need to update one of the libraries (say jQuery UI) I might have to update jQuery as well, etc.
What you think saves oodles of times doesn't always. The odd bug, the odd crash etc that keeps popping up may have roots in the framework that you chose and that you're using without having knowledge of its internals. The framework might make your app much slower and cost you in terms of hardware.
Not using a framework is harder work initially, but with the right libraries it isn't that big of a leap. Picking up a smaller framework with libraries can be a surprisingly easy and a lot more flexible when your needs end up being different from what the framework intended.
Ofcourse, there is a flip side to it all and I understand your point :) Micro-frameworks are the best IMO, not the beasts that Rails/Django are.
[ EDIT: Make sure you take node.js out for a little spin, you might like it :) ]
I agree with the general sentiment of playing it safe when your income is on the line, pecially because there's a lot of fanboyish hype around these projects.
However, its not just about "new tech", its about tech that works the way your mind works. Some things mature quickly and have the right mindset (Django, clojure, node.js, couchdb for me) and others have a longer/more painful learning cycle where the community struggles along with the leaders (rails (again, this is just my very personal understanding!)). Some things mature but don't align with what you think is right (php, java).
I've found node.js to be special. It has gained maturity relatively quickly, the libraries seem to be lightweight, good quality, its a language that will run both on the server and the browser (hello code reuse).
Programming is something I've done for the last 10 or so years (in various forms). It is essentially the only activity (in terms of 'work' or career) that I enjoy. The engineer in me just enjoys making things 'perfect' (where perfect is a definition perhaps only I understand, but generally its something built on solid engineering principles. Well-tested, reliable, modular, efficient, etc). When code looks 'just right', I enjoy the code regardless of whether it is bringing me any $$$. In that sense, for me, engineering is a fun activity, and not 'work'.
The hacker in me will enjoy a well built piece of software for its engineering brilliance regardless of whether the software got anything done at all.
In the last year or so I've been able to isolate these personalities and perhaps merge them. I do not scold the hacker just because he wants to try out new languages every month and is opinionated about his favorite ones. I get pissed off when this stops him from getting shit done.
I'm glad for the hacker in me who cares deeply about the tools (languages, IDEs etc) that he uses. Its this hacker that makes my job 'fun'. It is this hacker that has helped improve the quality of my code and my thought process for building good software. The 'getting shit done' would never have been enjoyment enough if it were not for the hacker.