I have a Galaxy Nexus on T-Mobile which I occasionally use to tether my laptop and I have never gotten a warning like that. I have the unlimited voice/data/text plan but don't pay for tethering (which stock Android supports natively of course).
Cherry MX Blue switches are similar in feel to the Model M style buckling spring switches but have I think a slightly shorter travel and require a little less force. Cherry MX Brown switches have a lighter touch and less of a click when the switch activates.
Probably you need to try them out for a while to decide which keys work best for you.
I used a Unicomp keyboard happily for a few years but am most comfortable with an MX Blue keyboard now.
I am a big fan of mechanical key switches; blank keys are partially a gimmick but also can be a useful tool to force you to touch type. I use a Filco tenkeyless board with cherry blue switches and blank key caps today and am very happy with it.
I have a Das Ultimate in the closet but overall I didn't like it. The usb controller was flakey and occasionally froze or doubled key strokes, hopefully they have fixed this issue but it was just too much. Other than that, it has a glossy finish that shows dirt and smudges too much and the size is overwhelming; I like to keep my trackpad close to the right side of the keyboard and having the number pad on that side meant a long movement.
I started using blank keyboards about three years ago and it did in fact force me to touch type and has increased my typing speed a lot. Even after ten years of programming I was a 4-6 finger hunt & peck typist. Once I started using a blank keyboard I quickly broke the habit of looking at the keys and picked up proper touch typing form naturally.
That will not run any callbacks of course since the data is never being pulled back into your code and AR objects are not instantiated. If you need callbacks to run (for example to delete or update related objects) then look at the much slower ActiveRecord::Base#destroy_all.
I got a lot of value out of it last winter when I was looking for a new job. It helped me learn a lot more about the companies and often the people who I was talking to. Two companies where we progressed to in-person interviews told me in advance the first names of the people who I would be talking to and I was able to figure out who they were and read their resumes before I went in. That made a huge difference for me in feeling comfortable during the interviews and helped me ask good questions pitched towards the actual interests of the interviewers.
Actually it isn't very anonymous at all. From a few minutes of looking at that account I know both of their first names and their address (also the name of their cat).
San Francisco & Washington DC. Engineers, engineers in test, designers (we especially need visual and user experience designers!)
OPOWER is an energy efficiency & smart grid company working with utilities and their customers to help them save energy. We are fully funded with a great business and strong growth and it is also a fun place to work. Our core product is written in java; we use ruby for internal tools and test automation and for some new product initiatives.
http://opowerjobs.com, you can apply for interesting positions there or feel free to email me seth.cousins @ opower.com and I'm happy to answer questions and help you get through the recruiting inbox faster.
I'm not going to comment on whether you should try to fix things at your current company but I have some good perspective on the job market and some of the options that you are looking at so I will comment on those things (both from your original question and in some of the comments)
I just finished a job search focusing on medium size companies (specifically I was looking for funded, growing startups with say 20 < total staff < 200). I have a good network and got some great leads and had three great offers in hand after a one month search process. I don't say that to boast, just to point out that there are lots of opportunities out there. Everything that I saw and heard in the process confirmed that this is a great market for a developer looking for a job. Several other people whom I know were looking at the same time and all have accepted or are close to accepting new positions. For more confirmation look at Fred Wilson's post today, it even links to the USV jobs board: http://www.avc.com/a_vc/2011/03/the-war-for-talent.html
Unless there is something specific that you are looking for in a large company (and it sounds like there isn't particularly) then maybe you should be looking at funded startups as well? This can be a great option: the company is funded so you probably don't have to worry about getting paid this month or next month (although that concern may come sooner or later, keep alert!); they are small and hopefully growing so you still get to wear lots of hats and can have a large say in defining your role and can still see your personal impact on the company's future; they won't have the bureaucracy or organizational overhead of a large co; lots more too. True you won't have as large a stake as you have now but 0.001% of something valuable is better than 25% of nothing!
As to finding a job, in my experience getting in through a recruiter is the hardest way and least likely to succeed. Having your resume submitted by someone in the company or finding a founder here on HN or whatever other inside track you can find is much more useful. Now that I think about it, I realize that in 16 years in the industry I have never once gotten a job through a recruiter (that isn't entirely true, my first contract position went through a recruiter but they were given my resume by someone at the company that was hiring contractors). Every time except that first one I started the conversation with the person or people who would be making the hire/no-hire decision and going back to recruiting to setup the interview loop, etc. was just a formality.
So fire up your network (and if you don't have a good one then start building one! Go to startup events, Python tech talks, whatever excites you). Start looking for opportunities, talk to people, maybe go on some interviews to see what is out there and to see how you do.
In one of the comments you express concern about your age, "near 30 and haven't broken out yet". Well, I say don't worry so much about that. I was 27 when I got my first computer industry job as a contract Software Test Engineer at Microsoft; I am 42 now and doing very well in Senior Engineer/Architect level positions. Don't be fooled by the myth that you have to make it by 25 or whatever.
Your resume may be a bit thin, that is a concern but remember that everyone started with a blank resume. You need to figure out how to explain your accomplishments over the past three years that doesn't focus on not shipping and does focus on what _you_ did do.
Don't worry too much about being a job hopper at this point; three years is a long time at one job and squarely within the normal range. If I saw someone with a string of <2 year jobs or a couple of 6 month jobs I would ask about it, and there could be a reasonable explanation, but 3 year jobs? No worries there.
One very good piece of advice that I got as I started my search: you only get to pick a new job half a dozen or at the most a dozen times in your career so pick good jobs!
The idea and the execution are inextricably linked even in the academic case. The ideas that your academic friends are protecting have value because they, with a reputation for execution, have decided to focus on them. I have some ideas on string theory which are precisely worthless, no matter how correct they may turn out to be.