* haproxy - frontline proxy * varnish - app server cache * nginx - static files * uwsgi - app server * flask - primary framework * tornado - async/comet connections * bulbflow - graph database toolkit * rabbitmq - queue/messaging * redis - caching & sessions * neo4j - high performance graph database * hadoop - data processing
- uWSGI - performs better than gunicorn and has support for async apps using gevent
- nginix - front end server
- pyramid - web framework
- mongodb - database
- mongoengine - mongodb and python mapper
- zeromq - messaging and communication
- jinja2 - for template engine
- gevent - for async processing
- gevent-zeromq - to make zeromq non-blocking and gevent compatible
- socket-io - JS lib for realtime communication
I still need to develop robust session management. I considered various options and came to conclusion if I want something fast, truly distributed and not using sticky session I should come up with my own session manager demon hosted on each node. I would use ZeroMQ to communicate to it.
My preferred setup that works for most cases. All reliable and fast.
(2) Microsoft has been associated with sleazy stuff for years. I'm thinking of the installation of all kinds of nonsense software when you buy "Microsoft Windows" pre-installed. I doubt this issue is the kind of thing they consider a problem. Sad, but true.
(not that I advocate toolbar bundling, but it is one way that some apps make money)
And, if you pay them for the privilege of hosting your content with them, they'll let you opt out of it. This is how they try and make money.
Take your software down: its 2011, you can distribute yourself, cut out the middle man, and (unless you're getting 20000 downloads a day) still not pay very much for it.
It doesn't exactly look great on our software that a toolbar is installed alongside it -- especially for a professional business product.
I think users would appreciate it if they could keep track of what they have read and summarized. Like an archive for every article they have read. It would let users take a look into their past and let them see what kind of texts they were reading a long time ago. It would help users to remember things that they have long forgotten. Also, humans tend to like collecting and gathering.
One little thing: Why did you (or your friend) name it "TLDRplz"? Please remind yourself what TL;DR means. It's a statement, not a noun that's synonymous to "summary". I think it's annoying to see it used that way.
1 - You need a distinctive favicon, because it is so important
2 - When you submit a summary, it should show you the summaries, rather than just give you a new Captcha...it makes you think you got the captcha wrong, even though you write somewhere that it was a success. I think we've been too conditioned to think seeing the captcha change means success.
Of course, if you can do both, and you love the name, that's awesome, but personally, I'd take an OKCupid brand name over "freeonlinedating.com" any day. It's harder to build up initially (the exact match may indeed have an easier time in many industries getting first page rankings for a single keyword phrase), but SEO and inbound marketing are a much broader field
You need people to search for you, know about you, tell their friends, bookmark your stuff, share your site on social services, email their friends/family and generally think positively about the brand. It's incredibly hard to do that with most exact match sites (hotels.com or pets.com being exceptions).
If you want to have your cake and eat it, too, you could go with something like "hipdating.com" (from the example above). Folks like Codecademy.com or even SEOmoz.org fit that profile.
We reconciliate by exporting CSV files from bank statements and mass import them to our administration web interface.
In short, we accomplish what we want to accomplish (meaning, the 'fun' stuff), unless we push ourselves.
Half the book is spent helping you investigate the root cause or causes of your procrastination, which can include fear about control (losing OR gaining it), as well as fear of success, fear of failure, fear of separation, fear of attachment. They discuss the influence of family and culture, gender, and the role of ADD & executive dysfunction.
The second half of the book is a practical guide to coping with your procrastination and habitualizing better behaviors.
If you're serious about procrastination, my only advice is to listen to the experimentally & research-backed psychiatrists.
Actually I think in my case all the stuff you read about procrastination does not really aplly to my procrastination:
I think I am one of the worlds worst procastinators and it took me about 10 years to figure out what might be the main reason for my behaviour. It has nothing to with all the stuff you read in all these procrastination books. It's not about the fear of failing, it's not about the fear of winning, it's not some kind of rebellion against some outside force as you pointed out. It's something completly different:
I never learned to do (unpleasant) stuff!
When I look back on my childhood now, it's very obvious what went wrong: I grew up as a very very spoiled kid which never had to do anything "unpleasant". Did not want to clean up my room? No problem. Did not want to help my parents with preparing lunch? no problem. Did not want to do homework? no problem.
From all those years growing up I can remember only one occasion at which my mother tried to force me to do something. But since I was already 12 or so that this time, she gave up after 10 minutes.
I never learned to endure the "stress" or "pain" of all those unpleasant things I have to do (washing clothing, cooking, ...) so it's very hard for me to do them intstead of just browsing the internet and get instant satisfaction.
In combination with some above average intelligence and a very big portion of luck I was still able to study with good grades and I'm currently in my second year of a PhD thesis. For me it's hell on earth! Giving lectures, preparing papers, filling out forms, applying for grants, ... I postpone all of this stuff all the time not because I am afraid i could not do them or because they are pushed on me from the outside. I postpone them because I never learned to actually _do_ unpleasant stuff.
Does this makes sense? English is not my first language and the topic is quite hard to describe.
That actually resonates with me much better than anything I've read on procrastination so far. I am burning lot of my mental cycles on thinking about my own procrastination, and it crossed my mind that when I start to do things that I'm (in broad sense) forced to - by my boss, lecturer or even myself, I feel like loosing some kind of self-awareness, control of my life... I never pin-pointed the feeling exactly, but it resonates closely with what you wrote.
Also, I'm so used to my personal GTD-like productivity management methods that I sometimes feel I'm not able to think or work without using pen & paper or Emacs for organizing my thoughts. Now, the thing I'm worried about is that it doesn't really feel like I have 'boosted my cognitive skills' or whatever - it feels like I'm so handicaped that I can't think without help of external tools. I look around and see people (that look) smarter and more successful than me, and they don't seem to be using any productivity tricks at all. Maybe it's [something]-bias , but it gets me really worried. Anyone on HN felt something similar?
 - need to catch up with LessWrong on that ;).
Agree completely. Having said this, your suggested solution is incredibly hard to put into practice for many procrastinators out there.
I have bills to pay and a family to support, and working for the Man seems like the only option, at the moment, to meet my financial obligations. I don't particularly enjoy my day job, and I wouldn't do it if I didn't have to. To maintain an illusion that I am not just a slave tied to a very short leash, I procrastinate. Ignoring my email inbox full of pending tasks and spending the day outside in the sunshine instead can feel very liberating, but obviously it doesn't solve anything, and doesn't get me a step closer to greater freedom.
"life as a sequence of awesomely fun and exciting things" sounds great, but the reality is that only a very small percentage of people are lucky enough to lead this kind of life.
Relevant tactical point:
Replace "I have to" with "I choose to" and "I should" with "Would I like to?"
It really, really, really works.
Instead of, "I have to take out the garbage" - "I choose to take out the garbage." (Or alternatively, "I choose not to" - that's okay too, if you choose to do it that way.)
Here's a few reasons why I think some people procrastinate. Mix and match:
- The need to feel control.- Some urge to punish or test someone (a parent?)
- Perfectionism (high standards, the need to over-achieve, or egotism), or a fear of being judged. If it's not done, nobody has to see your crappy work.
- Laziness. Sometimes an issue for people who can pass without working.
- Habit. See all the above.
- Dopamine addiction. The internet has given rise to the junk food equivalent of achievement.
- Unrealistic expectations, leading to a lack of motivation. Sorry, but they lied when they said the course / job you are getting into is the most important one in the world. They say that about every course / job.
Curious if you have other writings posted anywhere? I'd love to read more about your thoughts on other topics.
The academic literature disagrees that procrastination is about rebelling, and 'efficacy' is only one factor; see http://lesswrong.com/lw/3w3/how_to_beat_procrastination/ and especially its reference section (Luke is great about jailbreaking PDFs and hosting them; I'm slowly reading through those specific PDFs).
Becoming better at something means that either your body or your brain have to do do something that it's not used to and doesn't feel comfortable with. It doesn't matter how much you love what you do it's still going to feel harder and thus there are a million other things you would rather do.
When I were young I practiced the guitar 10 hours a day for a long period of time. I loved (and still love) music but it was hard even with this love for my field.
If I wanted to I could simply have been playing things that I already knew. Playing around and not getting any better.
But to become better at something you need to get the discipline to get on with it and that will "hurt".
There are no easy ways to become better.
The next question, for you perhaps, is "what do you fear so much about the idea of not being in control of your life?"
In the school and in the college it was exactly the same behavior, I refused to study but when I found an interesting topic outside the college (like programming) I had a lot of will to study it by myself. I never really learned anything in the school class, I am 100% autodidact. The single fact that I was obligated to learn something made me completly ignore that stuff.
Surely you jest.
Oh, sure, some people will procrastinate as rebellion.
Just as sure, some people procrastinate a simple matter of choosing from a menu: choosing steak over fish is for some a simple preference, not weighed down with rebellion against diet or splurging against budget. At a given moment I have the choice to do interesting thing X or less interesting thing Y; I choose X not out of the oppression of why Y is an option at all, but just because it is what I would rather do.
You may struggle against authority an procrastinate as an act of rebellion. Others because it's just what they would rather do.
same way my browser windows are a mess with 70+ tabs open. Most of them are only open because the content is too interesting to close and I am too lazy to read!
That may ring the wrong religious bells but the problem of procrastination in the West was first of all, and there's a lot of documentation surrounding this, a religious problem. Saint Jerome is the first to directly speak of idleness but it's even there in Paul's letters: How do you secure a base of pagans for your Judaic sect in a world swimming with very similar cults and mythologies? Keep em busy with your sect.
This is related to the consistent demand for communal surveillance stretching throgh all the church fathers; everyone should make sure everyone else is busy being faithful. So I wonder how and at what point that discussion of procrastination transforms into the modern formulation?
Hopefully one day we'll have a repeatable, very high success method of letting people get work done when they consciously desire it.
Personally, I found a simple habit cured me of 50% of HN and Reddit addiction and let me work on things I had procrastinated for a long time:
First thing when I do every morning when I sit down at a computer is e-mail a simple TODO list to myself and also send a report of what I did on yesterdays TODO list.
This e-mail is very simple, a few items and simple descriptions. Only caveat is making the items "actionable" that is something you can do, not something you can just try or consider.
Also, if I do not complete every item on the list, I do not beat myself over it.
This takes a few minutes of time and was very easy to make a habit of using a Don't Break a Chain technique. After a week or so, it doesn't feel forced at all anymore.
Go read up on the topic of procrastination, because it's actually an interesting field of research within psychology. I know you want to, because that way, you can procrastinate even more!
I'm appalled that nobody has yet mentioned http://procrastination.ca â€" home of the Uni Ottawa procrastination research group. Also home of the excellent iProcrastinate podcast: http://iprocrastinate.libsyn.com/
It turns out that procrastination is an immensely complex and multi-faceted issue, and no one single solution is going to help everybody. I like the OPs advice, but don't think it applies to every procrastinator! Also, it might be the right advice for you if you want to combat your procrastination, but it won't help you combat other "bad" aspects of your psyche, and eventually, you're going to fall into your old habits.
I'm talking out of experience here: I originally went to a psychiatrist because my life wasn't working out anymore (it was really that general.) Several (mostly inconclusive) diagnoses and 2 years of psychotherapy later, I feel like I'm finally starting to grasp why and how my life went wrong.
Not everybody who procrastinates has serious mental issues. But just as a hint: if, for a prolonged period of time, say, a year, you aren't able to get back on track, or you aren't able to fulfill your dreams or expectations, try a therapist, if you can afford it. (I happen to live in a country with free health care, so I didn't have to deal with that, gladly.)
It's with our right hemisphere, it's the one of you that is creative, that had hopes as a child to really do something useful for the world, the one that is out of control, seeks freedom.
The thing is that you aren't doing art/music(that's what people frequently do with it) and art/music is well known as freedom, what you are probably doing is:
A stupid startup to proove yourself, make some money and shit. Even if you own twitter or facebook, it's still shit compared to art, believe me. It's shit.
If you were doing something that would eradicate some sickness in africa and would save millions of people or had anything altruist in it, i doubt your heart wouldn't be pumping from the second you started.
Believe me, it's because what you do is shit, your brain knows and it wants to free you from this bullshit.
I don't procrastinate to wash dishes for my girlfriend, no matter how much it's boring, i fucking love her. But you know, if i had to wash it for ME, i would procrastinate all day. You need love.
My personality is a high 'C' (for compliance), meaning that I have an appreciation for authority. I think your original essay misses the fact that we all have different personalities and motivations.
1. Virtual procrastination. This happens when I want to achieve more than I can physically do. The end of the work week is here, yet I don't have the sense to just let go and pick it up again next week. I feel burdened by my inability to complete the surplus tasks.
2. Vanilla procrastination. I hired an assistant. She helps me stay on track. I am a fan of this.
The other parts are contradictions.
Words can't describe how well this resonates with me.
Since you directly addressed me,
thanks for the insight. Do share more.
The upside is that I usually find I need only 1/3 of what I thought I needed. It doesn't feel quite so bad to throw out huge chunks of stuff I know is so bad I wouldn't want anyone to see it anyway. The worst thing in a project is something I think is really clever but just not needed. I become irrationally attached.
Caveat: The above applies to my own business projets where I am the sole coder. I write better code for clients - it still starts out rough, but I refactor more frequently.
But yes, otherwise I find I don't have time to fix it later. Occasionally, when I know there's a better way of doing it but am having trouble thinking of it immediately I throw a # TODO in there.
Along with setting up a business, make a website and run a blog with it. Highlight the products you release, and give anyone who searches your past a clear idea that you were being productive and successfully managing a small business. Keeping it looking respectable is all about how you frame it and portray it.
I'm also an experienced programmer (7+ years). I left to do my own thing for 9 months, and the venture ended without success. But what I built was interesting, and I made sure to give talks at local meetups to put my face out there during those 9 months.
When I needed to find consulting work, I cold called (emailed) someone at a major US newspaper (a big one) asking if they needed work, explaining what I'd been up to. They were impressed and hired me shortly after. And when I quotes a rate which more than doubled my previous pay (which was nothing to sneeze at) they accepted.
So go for it, but take my advice and get your face out there while you do it. Speak at meetups, write blog posts, and get noticed.
It will shock you how much it can help your career.
Quitting your job and striking out alone has to be the kind of decision that comes from passion. Yes, you have to be ready technically and financially. You'll need a plan for food, shelter, the internet, and the support from your friends and family.
But all that's got to play second fiddle, a distant background, to that burning need to create. The desire to meld a future in your own hands, that consuming passion that blots out all the worries of consequences and obliterates apprehension with just the pure possibility of what could be made.
Don't get me wrong, have a plan. But if you're not driven mad by the incessant need to let the fruits of your mind explode out of your fingertips, if thoughts of your future, your career, what ifs, and what nots are still around, rotting at the foundation of your desires, then you're just not ready.
You will need that passion to survive on your own. It will be difficult. You'll have tough times, worries from your family, and worries from yourself. The self doubt can at times be a terrible burden, but the demon in your mind demands to be satisfied, and it will have it's way. You must hand yourself over to it and it will drag you to success. But only if you can give yourself fully.
In short, you don't take time off to do something because it will be a good move for your next paying job. You take time off to give yourself over to your passions. You've only held a paying job this long so you can become that junkie and still live.
(It's how I get by)
Oh, and if you fail, the experience will only make you stronger.
As long as you have products to show for that 6-9 month period then you're good to go imo.
As a bonus, you may even built some passive cash flow that will help you stay financially secure.
Careers are overrated anyway.
But more importantly I think I'd ask myself, if not now, when? I have a feeling its never going to get easier to go out on a limb, so the question is more will you be happy looking back if you didn't give it a shot? Live a little.
Get some apps (or GitHub contributions) out there during this time and you'll be fine.
If I saw something like this on a candidates resume, I'd be impressed (and jealous), and would probably spend most of the interview talking about these projects and your motivation behind them. My only concern would be that you'd leave in 6 months to go play with some new shiny technology our company was not currently using. So you'd need to frame your answers to satisfy that concern.
If webOS can't be sold, which would be surprising in this environment, then HP could donate the source to Apache or Eclipse and maybe get a write off out of it.
They should skunkworks it. Instead of punting, they should round up the HP employees who built it, form a LLC, retain an ownership stake, but give the group full autonomy to continue on in whatever fashion they think they can survive with.
I'm not sure what developers would do with just the open source WebOS application code if there's no hardware - the existing WebKit doesn't seem to be optimized that well (see Enyo perf in iPad 2/Mobile Safari vs Enyo Perf on the Touchpad).
"Leaky (YC S11) is Hipmunk for Car Insurance"
I honestly don't care if your new company is "* (YC S11) Is The Facebook for Unicorns," since it really tells me nothing. I have to figure out what a Hipmonk is before I can understand what they do. Hold on while I call the Dalai Lama to ask about the difference between a monk and a hipmonk.
Of the YC S11 batch with announcements up, it seems the Snapjoy folks are doing it right (from the front page):
"Snapjoy (YC S11) Will Organize Your Photos For You"
Now the Snapjoy announcement above provides concise and useful information about what they could do for me, the potential customer.
I'm usually quite pleased with what comes out of YC. That said, in this competitive market, I don't think that being nice (just because) helps anyone the week after launch.
I personally look forward to the day HN tears apart my project so I can say I truly learned something.
Has the culture around here gotten so hostile that a "be nice" request is needed?
Win the crowd and you will win your freedom.
To those startups who do not fight with valor? You will be subject to the mob, as was Airbnb. Even the Emperor will not be able to silence the cries for blood!
Startups... I salute you.
LET THE LAUNCHES BEGIN!
With very few exceptions, I enjoy seeing what the YC crowd releases, but isn't this going a bit to far? Aren't we the perfect audience to provide constructive criticism? On the other hand, if you're asking us to be empathetic at the same time, I couldn't agree more.
As for launching around the same time, I'm of the opinion that if your own (non-YC) startup is good enough, it will stand alongside, or even above some of the YC guys and perhaps "cash in" on the startup fervour around at the time.
no sense in wasting the launch PR boost when everyone is getting swarmed with pitches
Just maybe? The VC industry is going to wake up and go back to value investing - not FOMO throwing cash at everything, no matter the price
But Dave McLure says it's business as usual
Not sure exactly how valuable it is.
if you want coverage you need to make it as easy as possibly for the writer. this post should have included a one paragraph about your startup, link to the homepage, link to a simple signup form, a link to a page outlining features and a link to your contact details (more than one form)
you need to make it as easy as possible for bloggers to get the information they need to write a post. if you make it difficult where they have to go out and find the info then they will just move onto the next story (of which there are many at the moment)
You could also try HackerNewsers.
There's also this item:
I have tried to understand this myself without a good answer.
Google chrome UI team had an article on how they didn't find good user controls or windowing system for Windows and had to write everything from scratch. The chromium source was way too complex for our needs so we ended up not exploring it.
Still open source GUI code. (So good open source GUI code in Windows has been hard to find, but that's a good bet).
You probably want your app to run on both XP and 7 ?
8 is vaporware as a target platform for releasing and scheduling purposes.
We started with Windows Forms for our work because we were familiar with the code. (We did use MVC pattern using MVCsharp). We meant to switch to WPF but we never made the leap. There are UI-controls you can buy (with source) which you can use as plug and play. There are a few popular vendors.
Windows Forms still look ugly (lipstick on a pitbull kind of thing)
WPF is supposed to be a panacea with XAML being markup and that letting you generate "fluid-UI" just like HTML with auto-resizing and scaling as in the browser for your web-app.
I'd explore WPF and figure out a MVC-pattern library for separation of concerns.
Hope this helps.
I would not worry about Microsoft deprecating an API in "6-8 months". Microsoft has been extraordinarily diligent in maintaining old APIs; I know of new desktop application development being done in WinForms, and 20-year old 16-bit MFC applications that are still being used.
If you are building an application now, choose the best API now. Do not worry about what will happen in 6-8 months, because by then there will be another new API coming. Waiting for the ultimate API means you will never start.
1.Single codebase between Mac & Windows
2.Out of browser support
3.Rich UI capabilities http://www.silverlight.net/showcase
Seeismic Desktop 2 is a good example .
My advice - wait one month for BUILD (http://www.buildwindows.com/).
(disclosure - I work at Microsoft)
1) The name isn't really descriptive of the game play. With the obvious caveat that many games, indeed, have names that don't relate directly to their content, many of the most successful ones do. Angry Birds, Halo, Super Mario Bros, World of Warcraft, etc.
2) The term "thick lips", while not directly insulting anyone, still has many negative connotations in the US of referring to folks of African descent. A similar scenario might be present if you made a game about collecting firewood and called it "Fags".
3) Your game might just be boring. (Please don't take this the wrong way as I haven't played your game)
I think there's nothing wrong with the game--it looks fine to me.
It's possible that people are put off by the name: "Thick Lips" sounds like it might be a racist slur against black (African) people.
More likely--and I really hope I don't sound too harsh--is the writing on your advertising. You are more than good enough at English to communicate clearly--I never had any trouble understanding what you were trying to say.
Unfortunately, the grammar is just enough "off" that it's clearly written by someone who is not a native speaker. (You make some small mistakes that native speakers rarely make, but you don't make any of the mistakes that native speakers usually do.)
Worse for you, most people in the U.S. have basically been trained that anything on the internet written by someone in Africa or Asia is probably a scam. Even if you convince them that it's not a scam, people in the U.S. seem to associate Chinese companies with low-quality products.
The good news is that you are already 90% of the way there. As I said before, your writing is clear and easy to understand. This is good because professional translators are expensive. :-) You just need to get a native speaker of American English to polish your writing.
I would suggest going to the English-language Google page (google.com, not google.cn or whatever you use locally) and searching for "copy editor". (In this context, "copy" means any writing that is meant for advertising.) In the advertisements on the right, I get several services that specialize in writing and editing for websites and advertisements.
Out of those, the sites I looked at were definitely built by people with above-average English skills. If they can edit and fix things by native speakers, they can definitely help you!
My suggestion, is make it so you have to shoot the critters etc with a gun (or, less violent, with say a lazer gun/beam). Just my idea though. I'm sure others will chime in. It looks like you have done a pretty good job.
If you want to stick with the wack em game, without shooting etc, you could always make different artwork. Like wack it, Jersey Shore style, or Real Wrold wack it,.
Thick lips sounds like a lot of things to a lot of different people, none of which are particularly flattering.
Fat Lips might be a better choice for this market.
Any person genuinely interested in their work will ALWAYS think they are less capable than they actually are. It's human nature. This is because someone who truly respects their craft is of course going to be humbled by it. I know that I know nothing sort of thing. I'd argue that the absolute top tier world class developers are the some of the most humble. Of course there are outliers but I think humility is a requisite quality of true mastery for the most part.
What does this mean?
It means your background doesn't matter. If you are motivated to do your best and ready and willing to work hard and learn and improve then you are already better off than 90% of the workforce out there.
Every company has their own processes so many times it not really about what you know but how eager you are to learn.
Companies hire for character not necessarily for current knowledge. I've seen with my own eyes people get hired for ruby jobs that did not know a lick of ruby. They come from php backgrounds etc.
So fwiw and this is just my experience as a web application developer with no formal education :It's not about what you know, its about your desire to learn, your motivation, and your character attributes that count.
Be genuinely motivated to better yourself, ALWAYS convey your desire for personal excellence, and you will never have a problem finding a job.
Best of luck.
(p.s. get a a github account and push code like a madman)
As for your worries about signalling mechanisms, there are 4 SIMPLE answers to that: github, meetups, stackoverflow, and apps in the app store. You sound like a smart guy - get busy!
I have a degree in CS and a love theory. I guess philosophers also tend to prefer the theoretical aspects of CS. The problem with this is that you can study theory for years on end and still not be very good on practical tasks that are essential to getting a job or building a website.
Having said that however, don't for a moment think it will be easy. I've been programming as a hobby since I was nine and, after finishing full-time education, I spent the best part of a year learning and brushing up on my skills. Crucially, this was not something I did in my spare time, but continuously; I was effectively in full-time education.
There are two distinct pools of knowledge that it's in your interests to nurture: theoretical knowledge and practical knowledge. You will only be effective when you have a solid grounding in both. I may have made the mistake of focussing to heavily on the theoretical, but by working is possibly the best way to gain practical knowledge, so I'm addressing the imbalance.
There are a few topics which I focused on that have proved to be invaluable to me:
* Data structures and database design,
* The web stack (by which I mean the entire stack, how does TCP work or the OS schedule threads),
* Functional programming,
* Compiler internals,
I would have also greatly benefited if I'd had known more about asynchronous programming. Specifically, how are synchronous programs translated to work asynchronously, ie, how do threads work? How is CPS conversion an alternative to using threads?
Would you just dive into a proof using truth-functional propositional calculus if you were totally ignorant of the rules of inference?
Would you try to operate on someone without being training in medecine and surgical techniques?
Ignore anyone that tells you to learn "language X" or "just dive in and build something". It's bad advice, unless you like stumbling around in the dark.
The right way takes longer but you need to build from a solid foundation. Right now, you don't know what you don't know.
Which language or platform you choose will be largely irrelevant. Learning a new language shouldn't take you more than a few weeks. Mastering a new language is another matter entirely, but essentially still just a matter of practice.
Invent your own pseudo-language (or read about pseudo code) and learn how to decompose a problem into discrete steps. Learn to recognize and apply patterns in your solutions. Familiarize yourself with common data structures and algorithms. Do all of this before you ever try to write a line of code.
While you're doing that, read voraciously. Books. Blogs. Read everything you find anywhere that good programmers congregate (like Stack Overflow). Ignore the loud hand-waving pundit. Listen to the quiet voice of sanity. You'll soon learn to separate the wheat from the chaff.
Unfortunately, the wrong way sometimes works. The danger is that you'll build mental models of how things work based on the language and environment that you use. We need these models to cope in the absence of deep understanding. It's how the brain works and we do it almost automatically. However, if you approach the process at a more abstract level your model is more encompassing and you can easily simplify it to fit the situation. Shifting your thinking from abstract to concrete is easy, the other way is much harder because you're missing the big picture.
If you are able to...
* Demonstrate your abilities in programming language X by showing them your code through a public repository (i.e. Google-code, github, bitbucket, etc...)
* Demonstrate your communication abilities/soft skills by showing them the supporting documentation (i.e. a development blog, user documentation, etc...)
* Demonstrate your ability to explain/defend the design/implementation choices made in the development of your application
...then you have a pretty good foot in the door for getting into the software development industry.
On the converse, however, not all hiring managers will/are able to take this much time when investigating potential candidates.
SICP and LPTHW are not in the same league. SICP is what you want to really grok if you want to become a software engineer and LPTHW is sufficient if you want to become a great Python programmer. PHP and Ruby are also fine starting points. But to be valuable as a potential hire you need to understand the APIs and main frameworks for the language you choose to become proficient int.
Stanford, MIT and Google have excellent video courses publicly available if you prefer lectures to reading books. Either way, you need to write lots of programs, ideally for something that you are really interested in and get feedback from more experienced people.
If you are just going to learn a programming language, there is still plenty of competition. Instead, I would suggest that you build a web-based product. It involves a lot of moving parts that you will get familiar with. It is quite an arduous task.
Don't focus on the tool (programming language); instead, step back a little bit, see the bigger picture and build something with that tool. People are much more appreciate of such efforts.
Edit: In case you need some hand holding in the initial stages, I am more than willing to help.
Your path is not unrealistic, some of the best programmers I know were liberal arts grads and taught themselves on the job.
I still like coding, but I've found being a PM far more satisfying in my day job.
It took me several years to decide that I enjoyed software development as a profession, and that I enjoyed it enough to develop an aptitude for it.
Also, consider that it may be the environment - product, technology, team, company, existing code - that is putting you off. Even if you decide against what you're doing I'd limit the conclusion to "I hate my current job" rather than "I'm no good at programming."
Why not think about such sub-categories such as DBA, Analysis/Reporting/Sharepoint Services developer, or even pre-sales roles. These involve some coding but a lot of customer interaction, giving advice/ideas, designing solutions and improving the customers business.
Regardless, it's pretty common for your first job in any field to be less than ideal, so I wouldn't write off programming just yet. On the other hand, if your company is large enough to offer opportunities to work in other areas, you might dip your toe in and find something you like better without having to look for another job. Desire for change happens to everyone after a while, even if we enjoy what we do.
You might consider starting a business of your own, which would afford you the opportunity to fine tune and have a go at your areas of strength, and most importantly, keep you relatively interested in day to day activity. If starting a business is intimidating, consider offering your services for free for some small tasks/projects, and treat them as though they were paid and professional. You'd feed your interest and learn along the way.
The point I am trying to make is that you've plenty of options out there, and they are not very apparent just yet... but from my experience, the more your put yourself out there (particularly in areas that overlap strengths and stuff that is completely foreign) you will start to see some interesting options arise... and you will start to get a better picture of what your interests, strengths and weaknesses are. Best of all... there's no deadline to work this stuff out... so be proactive and enjoy yourself!
So consider your experience as a programmer as a great investment in whatever field you want to go into.
Sorry for not really answering your question, I just wanted to point out that although you might not be a "programmer" it definitely pays to "think like a programmer."