You have limited options. I suggest using the internet for reference material only (no HN or Slashdot allowed). Your boss is not going to change. What is your job worth to you now? Do you need more compensation? If so, I suggest working on leverage first:
1) Apply for other jobs, even if you must move. Only with a job offer do you have leverage to get more pay.
2) Would ODesk or eLance provide enough income to live where you are?
3) When burned out, get out of your desk and walk around find out who knows who.
4) The only way you can get another job is through your contacts. #1 is a terrible way to get a job. Expand your list of contacts.
Perhaps what you mean is you hate the escape characters used to switch between html and sql.
Perhaps what you mean is you hate the MVC separation.
I do not agree with swix that drag and drop is that solution. If there is one thing that has burned me too many times it is visual programming. Visual programming, to me, converts somatic gestures into black-box code. I love casting magic spells, but the lack of tools make them hard to fix: You must start from scratch for a small change.
I believe the solution is textual: Where different text means different things, and text can be edited to correct your mistakes. This means SQL will stay.
On another subject, I can see how Model/View separation is causing great pain. Separating a simple view into 2+ files makes a distinction without a measurable benefit. How often has your model changed without touching the view? And when it did, would having it all in one file make that change harder?
From my little experience, the majority cases leave Models and Views in a 1-1 correspondence. I agree with swix that current languages make those cases needlessly difficult.
I am in a very similar situation: Mortgage, kids, wife and in an almost failing startup. First, you need to know how much risk the wife can stomach. Second, the money does not matter to children; they may be better off if you have more time to spend with them. Third, always have small contracts on the side to balance the startup losses. Fourth, it is important that you contract to other companies, instead of being employed. This will help with the small contracts, but also allows you to own the copyright you build for the startups; maybe not directly useful to you, but adds to your personal library and makes you more productive to your customers.
So true with the contracts on the side. A lot of start ups end up taking years, need something for living/server costs so you can keep following the dream.
1) To practice my writing skill - I may be awesome at programming, but my prose comes out too slow. I hope practice will allow me to write faster, yet still coherently.
2) There are many people on the internet that are just plain wrong, and I must correct them! :)
3) To leave an impression when I am gone, albeit small.
I do not know how you can call yourself a geek if you can tolerate boredom 3 or 4 times before even considering making a program instead. For some reason, you (and others here) assume efficiency is an attribute of geekdom. I suggest that efficiency is actually a contraindicates geekdom.
Being a geek is more about fun, it is not about how well you can optimize.
My boss doesn't like me wasting my time on a program for one off reports. In fact I had to sell him on the "let me program something for that" because he can't program and doesn't want any major part of our "process" to be outside his understanding. The way I program a project has to do with what technology I want to try (and of course a bit of what fits) and I have tons of fun doing it. Putting off programming my way out of work has more to do with not fully understanding the requirements (ie, why said report should be run and how often) then being lazy or bored.
IMHO, it is hard to find a domain that is challenging, useful, and small. But a couple of examples listed above are pretty good:
1) Write your own web server, blog software, etc: By leveraging existing libraries (or not!) you can get a lot of effect for very few lines
2) Script your daily chores: It does not matter what language you write the “scripts” in. Choose your current favorite and get a feel for how you can interact with the OS
I dislike the free-form overlapping windows, but tiling is still worse. Tiling could be better if windows had a 'reduced' mode: which needs minimal screen area to show status. Some examples: I like the last two lines of IM and terminal windows to show. I like to see the folder status on Thunderbird peeking out from behind other windows. I only need the smallest portion of the top left title bar to show for plain documents (they have no 'status').
1) Apply for other jobs, even if you must move. Only with a job offer do you have leverage to get more pay.
2) Would ODesk or eLance provide enough income to live where you are?
3) When burned out, get out of your desk and walk around find out who knows who.
4) The only way you can get another job is through your contacts. #1 is a terrible way to get a job. Expand your list of contacts.