Wednesday, December 30, 2009
Sunday, December 20, 2009
- Most of what you want to do with your phone is mostly play games, and listen to music. You don't do any kind of multitasking and you're not interested in sophistication at the user level (like having to manage backgrounded apps). In this case, the iPhone is for you -- and this is a LOT of people.
- Most of what you want to do is type emails. In this case, the Blackberry's zen-like physical keyboard experience is for you. Again -- LOT of people.
- The SCREEN. It's amazing.
- Great battery life considering what it's doing. I charge it during the day mostly out of paranoia, but have been able to go through entire days without a charge even in my workplace (which is a marginal signal area on Verizon).
- Very fast. People have noted that the iPhone GS is clocked up 50mhz higher, but I find Android to be more responsive even at a lower clock rate than the iPhone GS.
- USB jack's in an odd spot.
- I'd prefer the volume rocker on the other side.
- Headphone jack and power button are too close together.
- Continuity between context switching. If I click on a link in the Gmail app, it opens the browser. If i hit "back", it knows to take me back to the Gmail app. This applies for pretty much every app situation.
- Notifier bar. This is much more handy than Apple's notifiers which pop up.
- If you're in the Google fold with Gmail, Google Voice, Calendar, etc., the integration is of course the best you'll find on any phone.
- Google Navigator.
- Google voice search built right in.
- Background apps? Yay, background apps. This should be a no-brainer for any smartphone maker but Apple keeps holding out on doing it. Meanwhile, my Android phone gives me background checks of Facebook and Twitter direct messages, Google Voice/SMS, Google Talk, Google Latitude and .... SIP?! Yes, it's true, I actually have my Gizmo5 phone constantly connected on my Droid and it uses almost no battery in doing so. You can do the same with Skype. Another one I use that can't be done on the iPhone: Locale.
- Internet radio apps playing in the background.. it works on Android, not on iPhone. I'm one of the ten people who listen to internet radio but this is important to me.
- The Android Market allows people to submit their own applications and updates as often as they like.
- Speaking of backround apps and Market -- the app Market itself checks in the background to see if apps have an update available.
- Free dev tools that work on Mac, Linux and Windows.
- No browser crashing. Safari constantly would bomb out on me. I have very rarely had an app crash on Android. Android also gives me the "this app is not yet responding, force close?" dialog -- so at least i have a choice to wait a little longer. (The reddit app is very buggy and ends up in this situation often, but if I wait it out, it recovers).
- OS updates are delivered over the air. This is incomprehensibly less annoying than using iTunes -- an app I truly hate -- to update my phone.
- No voice dial over bluetooth is a serious WTF.
- For some reason, some apps don't get spell checking or auto-correction (e.g. "dont" -> "don't" automatically). I'd love to know why this isn't consistent across the OS like it is on the iPhone.
- Adding a ringtone for voice calls is as easy as picking an MP3 and assigning it. Yet I can't add my own ringtone for notifications in any way.
- I've had to pull the battery twice because the phone locked up.
- Google Wave's mobile site works great on the iPhone but not on Android? No matter what you think of Wave, this is a worthy WTF.
- No good games. Just about every other app you can think of is available, but damn if there aren't any good games for Android. I imagine this is something Google is going to have to focus on in the future. They did release a native development kit though for people who want to create a more real-time application like a game.
Thursday, December 17, 2009
Let me first say: without an email bridge of some sort, this thing will never take off. I highlyrecommend that Google figure out how they might like to do that bridge.
Otherwise, how is someone supposed to use Wave as their complete communication/collaboration solution if it doesn't have connectivity to... oh, I don't know... thebillion people connected via email? It's like if the mobile phone system didn't call through to landlines.
It could just be that vendors whitelist their SMTP server to connect to Wave. Bank of America, for example, should be able to hook in their email communication to Wave without extra coding on their part.
The counter argument? How many vendors now spam you via Facebook and Twitter? They didn't seem to have a problem coding up those solutions. So it probably wouldn't be too much of a stretch to have the Comcasts and BOFAs of the world start sending you Waves instead of emails.
And now... onto the review.
Everyone's first impression of Wave is pretty much the same thing: "OK, now what do I do?" It's nifty, but email and IM are far more accessible and everyone... literally everyone... is connected via these now. Sending someone a Wave might as well be like leaving a post-it note on their spare bedroom's door. They'll see the message eventually, if and when they ever log in again. It's like when someone sends you a message on Orkut? Gunna see it? Unlikely.
And my first real test of it was a long, long wave where a friend of mine and I tried using it like IM. It was very slow to use, couldn't keep up with our typing, and just generally annoying.
But I think I'm finally starting to get it.
A Wave isn't really an email or an IM. I mean, it could be, but that's not what it's most useful for. It's most useful for mini-collaboration. It's not meant for collaborating on a Word or Excel spreadsheet, but it's not supposed to be chat either. A friend of mine and I today made a Wave for collecting together 80s music we like. We can easily collaborate on the list, drop stuff in and such, but keep it nicely organized in terms of discussion and the list itself. Also, it's super-easy to drag and drop music directly into the Wave.
One of the things that's really annoying about IM is that I have it running on 3 machines at all times -- my home machine, my work machine and my Droid. An initial IM message goes to all three. However, the conversation that ensues after someone pings me only happens from one of those three. Now, Gmail tracks and saves that conversation, but that requires going back in the logs, and replying to those logs replies via email, not IM.
If you think about what Twitter and Facebook has created, it's very hard to track conversations and meta-conversations that fall out of even small blurbs. An Apple employee posts to twitter: "omglol! AT&T is the suxx0rs!". Discussion of the tiny, 160-char post ensues on twitter, blogs, private emails. How do you connect all of this conversation back to the original? Unless it was originally posted on /b/ and tracked with Encyclopedia Dramatica, it's almost impossible to find out where the original thought came from sometimes.
In short, there is a major disconnect between all of the forums of communication we use right now. Wave is trying to fix that. It might not work but it's worth a shot.
I actually tried embedding this post as a Wave, to show how this might work in the future. But I failed, the tech is a little broken still it seems.
Sunday, November 29, 2009
Tuesday, November 17, 2009
Sunday, November 01, 2009
Wednesday, October 07, 2009
Tuesday, October 06, 2009
- AT&T sucks ASS. Now this is not due to a lack of trying to improve on their part. I admire and acknowledge the fact that they have recently increased coverage in Noe Valley, Diamond Heights and Glen Park. My iPhone now works in Safeway (sometimes), which is a vast improvement. However, present improvements cannot overcome other misdeeds. For example, the hours and hours of wait time when I rarely have to call customer service, or the dropped calls in my house with full signal, or constantly drop on 101 while dirving? I am completely convinced that AT&T employs subpar network engineers. How is it that I can get 5 bars in my house and consistently drop calls? The Verizon network is far better.
- The iPhone is the buggiest phone I've ever had and I believe Google has far better engineers than Apple. If Android has even 25% less bugs, that will be a huge improvement. On the iPhone, apps crash constantly and there are new glitches all the time. iPhone 3.0 introduced possibly the most annoying bug of all time, which is that the iPhone now constantly asks for my wi-fi password at home. Today had a nice glitch where I couldn't get rid of the keyboard from the screen. Just poor programming all around. I have not yet heard of that range of problems with Android.
- Google integration > Apple integration. My MobileMess subscription is running out in 4 days and I, of course, do not plan to renew. One of the problems with the iPhone is that I can only have Exchange connected to one server plus MobileMess. I'm hoping that Android will let me connect to one Exchange server as well as Google Apps, which is where all of my real data is anyway.
- Real background apps, please. Kthxbye.
- I would much prefer a smartphone that I have a prayer of programming. I refuse to buy a Mac just to program my iPhone, and besides, I can't upload my own apps to it anyway. No thanks. I'll take the open option that I can hack the crap out of--legally--if I so choose.
- No more iTunes!
Wednesday, September 30, 2009
Wednesday, September 23, 2009
Up on the hilltop where the vultures perch,
That's where I'm gonna build my church,
Ain't gonna be no priest, ain't gonna be no boss;
Just Charles Nelson Reilly nailed to a cross.
I don't piss, I don't shit, I'm gettin' no relief,
People shake their heads in disbelief.
Just me on a hilltop with 15 girls,
In a Nelson Reilly orgy that'll make your hair curl.
I don't piss, I don't shit, I'm gettin' no relief,
People shake their heads in disbelief.
Yeah, Charles Nelson Reilly, he's our man,
He can't heal the sick with the touch of his hand,
He can't walk on water, can't make wine flow;
Just another greedy actor on the late late show!
I don't piss, I don't shit, I'm gettin' no relief,
People shake their heads in disbelief.
Just me on a hilltop with 15 girls,
In a Nelson Reilly orgy that'll make your hair curl.
I don't piss, I don't shit, I'm gettin' no relief,
People shake their heads in disbelief
[Ed: any thoughts on what the hell this means are welcome in the comments]
Friday, September 18, 2009
Friday, August 21, 2009
- Domain specificity. It was a language almost entirely used on mainframes for business and data processing. It had no real other use besides that. No real embedded uses, no system-level code. This really led to a situation where the language had nowhere to go -- its userbase was only concerned about one area and the language and community did not ever need to respond to changing needs. This is a significant difference between C++ and COBOL.
- No migration path. The main paths for migrating out of COBOL are a newer version of COBOL, which are in very little use, or a rewrite. Contrast this to C++, where, if you wanted to migrate to Python or Ruby, you could simply SWIG your C++ code and start writing Ruby around it, then migrate the C++ as you see fit.
Wednesday, August 19, 2009
Monday, July 20, 2009
Sunday, July 19, 2009
Tuesday, July 14, 2009
Today I was trying to think of dinner ideas and had an idea: Wasabi Pork Chops! I had no idea what that meant and no recipes were returned by google. So I made one up, and here it is.
Preparation time: 5 minutes.
Cooking time: 10-15 minutes.
- 4-6 boneless thin cut pork chops
- green onions
- Olive Oil
- Chunky sea salt and fresh cracked pepper
- 2 TB wasabi paste
- Maybe 1/4 cup soy sauce (err on the low side at first)
- 2 big squirts of Sriracha (aka '”Rooster Sauce”™)
- A tiny pinch of ginger powder
- Dash rice wine vinegar
- 2 dashes hickory smoke flavoring
- 1/4 of a lime (squeezed)
In a small bowl, mix the soy, wasabi, hickory smoke, sriracha, ginger, rice wine vinegar, and lime juice. Mix that bad boy up with a wisk. Taste it. It should be somewhat smoky but spicy, with a bit of the patented wasabi sinus hotness and some on-the-tongue hotness of sriracha. Change the ingredients up according to your tastes, but I would err on the side of having less soy. Do not overdo the ginger.
Heat grill to 500.
On a plate, lay out your pork chops, coat with olive oil. Generously apply sea salt and cracked pepper.
In a separate dish, prepare some green onions. Slight coating of olive oil and normal table salt. Do not cut them.
Grill up your pork chops and onions. Lower to medium heat after placing on grill. Apply sauce with brush, then flip chops. After cooking flipped, apply sauce to other side, then flip one last time and let sauce burn on for a minute. Let the onion tops burn up and generally get good grill marks on the bottoms.
Serve with grilled green onions laid across top of pork chop. Sauce can be drizzled lightly over the entire creation. I added a side pasta to make this a dish.
Tuesday, July 07, 2009
A few things have come to light since the accusation that one of Goldman Sachs’ programmers stole some of their quant platform’s code. One of the more interesting quotes from that Bloomberg article:
“The bank has raised the possibility that there is a danger that somebody who knew how to use this program could use it to manipulate markets in unfair ways,”
This is what the Assistant U.S. Attorney had to say about the alleged theft.
Now, this sentence has raised a lot of eyebrows. I first read about the story on Zero Hedge. Most recently, ZH had a guest post about the topic reiterating how bizarre it is for Goldman to point out that this program allows for market manipulation, and what that means exactly. Mainly, it’s you, the retail investor, who is being scammed by programs like this:
Markets are a zero sum game - somebody wins and somebody loses. Where do you think these “many millions of dollars” are coming from? They are coming from you - the average retail investor and the large institutional investor. These programs are taking advantage of real order flow and are siphoning off small profits throughout the day that belong in the pockets of the retail investor and the traditional money manager.
I thought I’d bring up some of my personal experience as a retail investor in that light.
I’ve long known I’ve been trading against computers, especially when trading lower volume stocks and options. Options bid/ask pricing is done way too quickly and “accurately” (in quotes because accuracy is according to Black-Scholes, the equation responsible for putting Long Term Capital Management out of business) to be a human. Or, if it is a human, they’re aided by a computer that’s constantly changing bid/ask prices for them. Here’s what I have to say about it:
If you are making a real investment, you shouldn’t care whether you’re trading against a computer or a human.
Notice lately how everyone (CNBC, e.g.) says that “buy and hold is dead”? The people who believe this (I am one of them – I’ll get to that in a minute) and still believe in the stock market are playing straight into the hands of quants. Why do you think they have everyone and their cousin on CNBC spouting this mantra (“buy and hold is dead”)? The more you trade, the more you’re trading with computers who can reprice faster than you.
But if you do find a real investment you believe in – a precious metal, a stock, a bond, whatever – then you shouldn’t care if you’re trading against a computer. The computer is looking at past performance and current pricing only – a computer can’t judge whether a product coming out in a year is going to be a monster hit. So the only people who really lose against the computer are speculators, or people who are not doing enough research and are getting swept up in bubbles. And while it’s true that most of us are speculators in the true sense of the word (without issuing more stock, a company isn’t gaining anything from my purchase of their stock from another stockholder), a belief, long term, that a company is improving their product, service, process and purchasing their stock can be considered “investment” in spirit.
Hard to believe I just defended quants given all of the damage they’ve done to our economy and investors, but there you go.
Oh, and about "buy and hold." I do believe it's dead right now because most stocks still seem priced too high. The only thing I am newly holding long at the moment is cash, because it seems like the best hedge against deflation.
Monday, July 06, 2009
Saturday, July 04, 2009
Thursday, June 25, 2009
Do people forget about the whole trial thing a few years ago? Because I’m just wondering if all of the “celebrities” on TMZ (Lou Ferrigno? WTF?) sending their condolences to the Jackson family have forgotten about this. Jackson’s death seems more like an opportunity to pump up your own career than to actually care about this guy. Case in point:
That said, yes, Jackson was a spectacular musician. It’s too bad he spent the last 20 years of his life being a freakshow and (probably, though not provably) molesting children.
Sunday, June 21, 2009
I’m sure that has been pointed out before but it seems that recent trends back this up: the computer business has become the fashion business, all the way from computers and products sold to the development level.
It used to be that fashion in computer science was a kick ass piece of machinery. Take this little number for example:
I think most of us agree that that computer was awesome when it came out in 1988?
Yes, it had an atypical look and was not to be confused with a PDP-11, but it’s not the physical design that made it awesome, it was the sheer power. Vector units! Gigabytes of RAM! They use it to compute weather simulations! The NSA uses it to crack encryption! This is what one of my friends told me when she was working at SGI long past its usefulness -- “I just have to keep working on the big iron”. Yes, big iron is addictive.
Point is, I don’t think people would have thought a Cray Y-MP was awesome if it was a 486 PC inside the box.
Contrast that to today, where many people think a Mac is awesome even though that’s exactly what’s in the box: a PC.
That’s at the consumer level, so what does it mean when the super geeks are going ga-ga over the Mac when all that’s in the box is a PC? What’s happening is that the attitude of depeche mode is trickling down into everything we do with computers. The best example would be programming languages.
Like fashion, programming languages seem to go in and out of style. In the 1990s, you probably couldn’t find a programmer other than Paul Graham who would advocate using lisp for a serious production project. Today we’re seeing new dialects of languages thought dead for a long time. Lisp has now become mainstream again with Clojure and arc. ML is getting a resurgence with backing from Microsoft via F#. Erlang is suddenly everyone’s best friend because it can do some nice stuff with concurrency (but itself is pretty slow on a single thread). Ruby came back from the dead when a Web 2.0 framework was developed on it. Then there are the “new” languages, like Scala (IMO a similar language to ocaml).
What’s funny is that all of these languages were around when I was in college, years ago, and I thought they were mostly as pointless then as I do today. They’re fashionable. They’ll come in style, be screwed around with for a while, programmers with write mission critical code with it, and abandon them (and usually your company) as fast as they came to them.
Look at Twitter. They must have a bunch of people working there who are pathological language adopters. First, they chose Ruby on Rails to develop their website – a framework and language with known scaling problems. They ran into scaling problems. Then instead of just taking their Ruby on Rails problems and fixing it with C, or C++, or just plain old Java, they begin using Scala. So now they are still using the JVM, but can’t hire in people who know the primary language that runs in it.
I am not saying I don’t get caught up in this too. I’m always interested in and reading up on languages… but that doesn’t mean I’m going to use them in production. Writing production code in these languages is like writing a collective book in Esperanto. Someone who is a linguist can work with you, and maybe the 3 or 5 of you who start the project are linguists. Good for you. But then some of your linguists quit, and the next person who has add to it is not a linguist, they’re just a writer (or in our case, a programmer). You must be able to work with these people if you have any intention of long term success and collaboration. At some point, you’re just going to need someone who is a language domain expert, not a general programming expert who can pick up anything. And if you think you can always hire generalist expert programmers, it is very, very difficult to find (unless you cruise by the Google campus) and hire these people (unless you have Google money).
The additional problem you have is that these languages never interface well with others – or at least easily. Just about every general library written in the world is exposed to C or C++. It’s rare to see one that is not, and those that are not are generally not successful (WPF anyone?). Java has a lot of libraries, and so does C#. But I am just not sure I’m ready to say that these are completely workable without C/C++ (for example, you still have to use Microsoft.Win32 if you want a lot of functionality in C#, or SWT for a decent UI toolkit in Java).
One of the things that’s immensely annoying about using a language like Python and C# on a daily basis is this need for C libraries. Python tries to make this easier, but it still requires matching up Python API versions, compiling plugins on Windows that were designed for Linux, etc. Like one of the guys on my team was trying to figure out how to do a full-screen eyedropper tool using PyQT. It took him days to figure this out, and he’s a smart guy.
This kind of incompatibility between the language and the platform is just painful, and if our code was in C instead of Python, we’d spend a lot less time dealing with compatibility issues and more time dealing with problem area issues.
That said, I’m announcing here that I will be porting Dylan to the JVM and CLR. Then I’m going to write some books on it and make lots of money. Since languages from the 70s and 80s have come back into style lately, we need some languages from the 90s next.
Monday, June 08, 2009
Can take away a removable battery from a “pro” laptop and try to have people think that’s a good thing.
If you thought the iPhone’s lack of a removable battery wasn’t profitable, I have thus presented exhibit A.
Saturday, May 30, 2009
Check it out here.
Now, you would think that the most basic program you’d want to install with Python (easy_install) would be hosted on a fast website. Furthermore, it’s not a really good reflection on Python’s ability to create websites to have such a critical piece of code hosted on such a slow website.
Someone may want to look into that. I’m just sayin’.
I just moved yesterday, check out whose mail I’m getting at the new location:
Swell. Should I send it back with “Forward to: San Quentin State Penitentiary?”
(FWIW, as far as I know Hans Reiser never lived at this address – at least not in the last 10-12 years).
Thursday, May 28, 2009
Pretty cool! I’ve looked into some of these continuous integration servers before but have been daunted by the amount of setup these things generally require. I got Hudson set up via Java Web Start and building my local repositories with MSBuild in about 15 minutes. The key feature is the ease with which I can download the plugins I need (Perforce, Git, MSBuild).
Very nice work, guys.
Wednesday, May 27, 2009
A few months ago, I took my daughter to the petting zoo here in San Francisco. Near an old tractor, they have an image like this:
The point of the image is that since the beginning of the industrial age, the number of people that a single farmer can feed has grown nearly exponentially. (Note: the diagram here has a shorter timeline than the one at the zoo)
When you look around at efficiency charts like this for many topics in the last 100, 150 years, there is almost always a common element: the efficiency is directly connected to use of carbon based fuels like coal and (especially) oil.
This is why it amuses me when we talk about a “carbon tax.” If we want our airlines to produce a product and fly people around, they have no alternative but to emit carbon. If we want a farmer to farm his land, he has no alternative but to emit carbon. Basically, no one has any choice but to emit carbon if they want to accomplish anything with any kind of efficiency. If you do not agree with me, please, point me to the electric airplane or electric combine that can do the job. Even for cars, it’s a loss. If you bought an electric car today, what percentage of your power would be supplied by nukes, wind or solar? 10-20%? Tops.
In short: “carbon" taxes just another way of saying “raising taxes”. Why do you think so many people who believe in large socialist governments are for this idea? Now there’s a correlation I’d be interested to research more.
I banged out my first submodule. Great. Then I wrote a unit test module in that submodule and tried to do some relative imports with it. Got an error: "attempted relative import in non-package".
Huh, that's funny. I could have sworn I had __init__.py files all the way up that chain. Yup, they're all there.
Well it turns out that if you use relative imports, you cannot run that module as main. You must import the module with relative imports within the context of the larger package. So much for writing your unit tests right there in the file.
Oh, but it turns out they have a fix for this! You can set the __package__ variable. If you're running your code as __main__, just catch it before your import and set your __package__ var. I have yet to see an example of this that works, but that's the concept in PEP 366. But wait, now I have to import my top level module to make this work as well! And it has to be in my sys.path. So, what, I end up with only 10 lines of custom code before the import just so I can run a unit test. Sounds good. (/Sarcasm off)
Importing in Python has been nothing short of a disaster for about 10 years, since the days of "ni" (new import). The very first thing I ever wanted to do with "ni" was import a directory of modules so I didn't have to do double-duty on maintenance. It still doesn't do that. and if you read the documentation on package importing, it actually says -- still -- that the reason they can't offer "from
Python has a number of disaster areas like this. Len() is a good one. Another is requiring "self" for methods of a class. Python is a very, very useful language, but I'd argue that for Python 3.0 they focused on fixing a lot of inane nitpicks (print with no parens, anyone, or dict.has_key(), or removing my precious reduce() function) instead of fixing the real problems and inconsitencies.
If you're going to break the language, make it count and make it way better and more consistent, not just better in ways that suit personal pet peeves.
Monday, May 25, 2009
I just saw another one of these on the way back to the house:
Hey you Palestinians and Israelis! Co-exist! Chechen rebels, co-exist! Hey, Mohammed Atta, co-exist!
“Naïve” is too tame a word to describe people who would put this on their car. I’m glad San Francisco is surrounded by water on 3 sides and the idiocy can only spread so far.
Sunday, May 24, 2009
Saturday, May 23, 2009
I found this band via a random Reddit link earlier, bought their first album and have been completely blown away by it. I’ve had it on loop now for hours.
Highly recommended. The album is “The End of the Beginning” and is available on Last FM or their website for $8. I chose to buy it, since I like to buy directly from the artist when possible.
Here are a couple videos from the album:
I’m looking to buy a new drill. You would think that a $300 drill from a company called “Milwaukee Tools” would be made in America. Nope.
Milwaukee, Craftsman, DeWalt, Makita… all made in China now.
It’s no wonder this country is completely screwed. If we can’t employ people making the basic tooling we need, how do we expect to employ them in a “service based economy” of using that tooling?
Thursday, May 21, 2009
What the hell is Cursive doing on Letterman?
They’re a ridiculously talented band – therefore WHAT ARE THEY DOING ON TV?
The new album seems really good. I had not heard it before I found this video a little while ago. But if you want to have your mind blown, check Such Blinding Stars for Starving Eyes. I first discovered Cursive about 6 years ago when I bought that album and put it on repeat while working 100 hour weeks during a death march project.
Oh, and these guys are from Omaha – home of Warren Buffett. Somehow that makes sense in bizarro world.
BTW, will music reviewers please stop labeling them as “emo”? What an abused genre label that’s turned out to be.
Monday, May 18, 2009
Here's my question: at what point do aircraft designers realize that they're going to have to mold and cast custom toolsets to fabricate an airplane? Does it happen at the design stage, while the aircraft is still on paper? Or do they start with off-the-shelf parts and ultimately the tools go through several iterations?
I'm asking because I am curious if a similar approach to the requirements/design lifecycle of can be taken for development of custom tools in support of a larger software project.
Friday, May 15, 2009
In any case, I've listened to 5 of the top 100 so far and 3 of them had that stupid auto-tune effect used by T-Pain, originally made popular by Cher. Of the Black Eyed Peas, Flo Rida, Lady Gaga, Miley Cyrus and Jamie Foxx (with T-Pain), I think the only ones that didn't use the effect were Lady Gaga and Miley Cyrus.
For those who don't know what I'm talking about, check out this spoof of auto-tuning.
I'm going to start calling this effect "auto detune", because it sounds so awful (except is very funny in the above).
Saturday, May 09, 2009
A lot of people are ripping this video on the internets but I found it to be really, really good.
One of the criticisms of the speech I read here is that talking about TDD is outdated, because everyone should be doing it now. I’m not sure what world that guy works in, because millions of lines of code shipped with no unit tests. None. I’m not even saying TDD here.. I’m saying unit tests in any form.
TDD should be a mandate on any project running things with “agile”. The ideas of agile cannot be reflected without code written in the TDD way. For example, how is it supposed to be that any engineer can pick up any task on the board? The only way to make something like that work is to use TDD. They cannot verify that their addition has not broken the rest of the system without it.
Furthermore, what’s the point of having an acceptance test at a management level—a sticky on a board given to a product owner to verify—if we don’t do the same thing for our code? How do you know something works, just because a it was verified at a user level? It’s brittle, and foolish. If one is to work on code in the agile framework, they should be writing acceptance tests—unit tests—ahead of their code.
Anyway, fabulous presentation, no matter what you think of the Ruby/Rails community (they do seem to have quite a bit of entertaining infighting).
Friday, May 08, 2009
Wow, they have a college degree. So what. Most people who go to college shouldn’t be in college. They should know what they need to know by the 12th grade in order to function in society. That, or our K-12 schools have completely failed us. Because you know a communications degree from Siena college doesn’t mean shit, right? What the hell do you learn in that major, how to party in Loudonville?
Doctors, engineers, mathematicians, lawyers, physicists, chemists, biologists, vets, even agriculture or forestry majors… these are the people who can learn something more useful to society in college than in K-12. The exception is being a college professor – but that’s kind of recursive. You go to college and major in English to become a college professor in English. Because what the hell else would you do with that degree?
College, however, is a business. As such, they’ve conned millions of people into thinking that you need a college degree to do anything in life – and they’ve convinced employers that worthwhile candidates must have a college degree. Furthermore, colleges have convinced everyone that you have to specialize in very expensive ways. If you don’t believe me, check out Academy of Art in San Francisco. This “college” has to be one of the biggest scams around. I’ll get into that someday in a future post.
Also, I just want to point out that this girl is trying to find a job on Craigslist on her overpriced MacBook. If she was that desperate, go to the frickin library and use a computer there. I bet daddy bought this for her.
I additionally want to point out that she was serving drinks at Jake’s Dilemma, a bar I used to frequent on the Upper West Side. The great thing about this bar is they have dozens of beers on tap. It’s actually a great place to have a quality beer on draft, if it weren’t overrun by idiotic fratboys like the ones this girl caters to.
Wednesday, May 06, 2009
How many should I buy, do you think? I'm wondering if 25 for each will be all I'll ever use in the rest of my life. Mostly for Windows installs on the DVD+R side, but even for that I've started using USB keys.
Not sure why I would need CD-Rs but they're so cheap I might as well buy a few more.
Please send your feedback to this dilemma in the comments.
Saturday, May 02, 2009
For those of you who are looking for a solution to Cisco VPN on 64-bit versions of Windows 7: it works in XP mode, at least in a non-tunneling way (so far).
- Install XP Mode for Windows 7 editions that support it (Pro, Ultimate)
- Launch into XP mode and install Cisco VPN
- Close down XP mode shell and you’ll see Cisco VPN added to your Windows 7 Start menu:
- Now you’ll be able to launch Cisco VPN from your Windows 7 session.
The next trick is to make a tunneling program between Windows 7 and the Cisco VPN that’s running on XP mode. Depending on how ambitious I feel later, I may take this on. If someone else does, let me know. Anything to screw Cisco on this stupid x64 VPN ruse of theirs. I got a quote that it would cost our company nearly $100K to support x64 clients (i.e. AnyConnect) because of Cisco’s refusal to make an x64 client. That’s unacceptable--especially considering most companies have VPN concentrators that are still under support!
Friday, May 01, 2009
Furthermore, certifiable nutjobs like Jenny McCarthy who spread fear about vaccination, or those who allow them time on public airwaves should be fined by the FCC. I do not care about the first amendment on this. Children are needlessly dying because assholes like McCarthy use the Today show to spread fear. The media should be held liable for putting people like this on TV. If a producer at NBC would take the time to read McCarthy's website, it becomes obvious it reads like nutjob pseudoscience:
- "Consider giving high doses of Vitamin C (3,000-5,000 mg per day) on the day before, of, and after vaccination."
- "Consider no more than one vaccine per doctor’s visit."
Finally if this video about morons in Australia who refused to vaccinate doesn't rip your heart out and sway your opinion on this, you have no soul
Have I made myself clear?
Wednesday, April 29, 2009
A couple weeks ago, I had an MRI because I’ve had some knee pain. I had asked for a CD of the MRI to look at on my own and something strange showed up:
I didn’t pay much attention to it at the time because I actually thought it was some kind of artifact from MRI itself.
Today I went to the orthopedic surgeon for a follow-up. His diagnosis:
- It’s not cancer (uhhhh… that’s good, because I hadn’t even thought of that)
- It’s a bone bruise.
He said something like: “How’d you get a bone bruise? We usually see that in football players.” Answer: I have no clue. I assume it was in a basketball game when I collided with someone else’s knee, which happens every so often.
Anyway, I had never heard of a bone bruise, so I asked him a bunch of questions about it. For example: can I play basketball; should I ice it every day; should I do more physical therapy… etc.
The whole time I was asking these questions, he basically wanted to get out of there like a he was on a blind date with Ted Kaczynski. He offered me no advice other than “just let the pain tell you when to stop” and “take some motrin before you play.” After all that running around, physical therapy, MRI, etc., it was essentially a useless consult.
I told my wife about this and she’s like “Yeah, a lot of orthopedic surgeons are like that.” I started thinking about this more and it actually makes a lot of sense. There are pretty much two options for an orthopedic surgeon:
- Standard stuff like painkillers, ice, physical therapy.
And that’s it! It’s not like a regular doctor where there are all kinds of additional tests they might run, or different drugs they can prescribe to help. The only drug they can prescribe that makes any sense is a painkiller. Other than that, it’s the knife. So if they already know it’s not the knife, they might as well try to get out of there as fast as possible so they can make their tee time.
Sunday, April 26, 2009
I installed Windows 7 RC x64 on my second drive and it's pretty solid. Really solid. See my last post on the subject for thoughts on running the beta. The RC is something I might consider running full time.
For one thing, it's faster and installed even less painfully than the beta. The Windows install process has improved a lot since XP (the Vista install was pretty good, albeit slow). Win 7 installs somewhat faster. The built-in driver support is also spectacular. My machine was up and running perfectly with no additional drivers (in fact, an Intel driver bug I know of made it into this release).
The OS itself is faster than Vista on the same machine. Granted, this is a fresh install, though I’ve put a bunch of apps on already and it continues to perform great. I’m a huge fan of the Windows-key-to-search shortcut in Vista. I use it for everything. It’s much, much faster than Vista’s, even on a bare install.
I've been very skeptical of the new taskbar, but, I've come around to it because the right-clicking features are really nice. The addition to right-click features for the control panel is very welcome. They've changed the highlighting so apps that need attention now actually get my attention (this was a problem in the beta). Also there's a little bit better delineation between apps that are open with multiple windows and apps that are closed.
They changed some icons, for the better, I think. Remote Desktop Connection doesn't look like "My Computer" as it did in earlier versions. The new sound themes are nice. I’m using the “cityscape” theme. Maybe I can get used to one of these so the Bank of American ATMs that use old default Windows sounds won’t annoy the crap out of me thinking there are constant errors while I’m getting cash out.
The new Media Center is great. For one thing, you can finally drag the current position on the timeline. This was probably the #1 thing I felt was missing from media center previously. They also made it so you can add your ripped DVDs without having to do some registry hacking to get it to show up. The performance in a window seems better as well. I'm typing this with "Cloverfield" playing (ripped DVD), a few apps open and the machine is having no problems keeping up the playback.
I’m still unclear where Media Center is going though. It’s pretty much the best software that comes with Windows that no one will use.
HomeGroup seems like a great feature, and you can share media with your homegroup over Windows Live now in the RC. I’d love to try this feature out more, but I’m not willing to install Windows 7 on multiple machines as of yet.
UAC is less invasive for daily installs and usage.
Apparently Microsoft is adding a built-in XP virtual machine for Enterprise, Business and Ultimate versions of Windows 7. This was a secret feature until Paul Thurott revealed it yesterday, and it sounds like a really good move on Microsoft’s part. Obviously it won’t work for the business that I’m in, which requires DirectX and OpenGL, but I’m sure it will help the business adoption of Windows 7 overall. It’s a bit like the move that Apple made with Mac OS Classic for MacOS X. It might be so slow performance wise that it’s unusable, but hey, it will get a lot of people to upgrade who otherwise wouldn’t.
Anyway – Windows 7, I’m running it to type this. We’ll see if I continue to run it in the days and weeks to come, but I think it’s a given now that I’ll upgrade on day one of the RTM
 – For those who know my tendency to early adopt, I did not run the RTM of Vista on my main machine at home for at least 6 months (it was a new machine), and at work for 2 years. I expect that timeframe to be much, much shorter for both locations for Windows 7.
Seriously, 20 infected in the US? 60 dead in Mexico? This is a pandemic? Give me a break. More people die in car crashes every day. More people die of regular flu every day. Hernia killed over a thousand people in 2005.
Get back to me when one of these "pandemics" kills hundreds of thousands, not dozens. Survivors of the black death and spanish flu viruses would be laughing at our media and hysteria.
Friday, April 24, 2009
Verizon Wireless: 5 minutes, 1 call
AT&T: 1 hour and counting, 2 calls
These stats don't include time to get someone on the phone in the first place. The AT&T guy "didn't submit it right" the first time -- he took about 45 minutes to get it entered. I've been on the phone 15 minutes so far to try to resolve this again.
Thursday, April 23, 2009
It's really too bad, because I loved the service. However, I vote with my dollars, and Microsoft's removing all indie labels from Zune Pass is totally unacceptable. I think the third album I hit today that has been "removed from the marketplace" was my tipping point. I might as well be buying these off of iTunes if it's going to be this way.
See Zune Pass content disappearing at a geometric rate for more.
Short list of albums removed:
- Guitar Wolf -- Jet Generation
- High Contrast -- Tough Guys Don't Dance
- Daniel Portman -- Twisted Memories
- Atari Teenage Riot -- 60 Second Wipeout
- Band of Horses -- Both albums
- Swayzak -- Dirty Dancing
- Gus Gus -- Forever
Tuesday, April 21, 2009
Now if anyone had a clue what Windows Live actually was, that might be meaningful. But there are a variety of things Windows Live seems to be:
- Some kind of web portal.
- A search engine.
- A bunch of stuff you install on your computer, like an instant messaging app.
- Some kind of syncing thing ("Mesh"?)
- A photo album viewer
- A gaming thing like Xbox Live
- A blogging thing (WindowsLive Spaces)
Windows Live is essentially so non-branded it just means anything that Microsoft decides to do online at the time. And this week, it's a FriendFeed ripoff.
Apple constantly accuses Microsoft of stealing stuff, but here's one thing they haven't stolen: any kind of decent branding strategy. At least when Apple comes up with some dumb service they give it a slick name, even if it's worse than free alternatives. Microsoft comes up with actually pretty decent services -- often stolen from others' ideas -- then doesn't brand them at all and they end up fading into oblivion.
Monday, April 20, 2009
I'd approximate that no less than 40% of the stuff I've downloaded from Zune Pass is "no longer available on Marketplace for download." So most of my music collection has been invalidated with the flip of a switch over at Microsoft. Hey, thanks guys!
Every day that goes by seems like another opportunity to ditch Zune Pass. I have really enjoyed downloading music to my Zune and the Zune pass, but what's the point if it's going to be like this? I'd rather not find the music in the first place than to have it go away on me and have to buy it on iTunes anyway.
Plus, the new Zune HD is going to be a touchscreen-only device.
Hey, I have one of those--it's called my iPhone--and hate it for playing music. It's too hard to use in the car. Without Zune Pass being worthwhile, and with a new device that seems just like my annoying-to-use-in-the-car iPhone, I wonder how much longer having a Zune is going to be any fun.
Sunday, April 19, 2009
Because, look, think of all of the people with related businesses. Auto parts. Mechanics, dealers.
Personally, I’ve got about 5,000 of these stickers I have to unload FAST.
What am I going to do if GM goes bankrupt?! And what about all of my Calvin-Pissing-On-Ford stickers that I need to unload to Chevy customers?
Hey, while I was looking for this image to put in this post, I found this hilarious suggestion from Google:
You know what I really want? A Calvin pissing on an Audi logo, or maybe Bentley. That would be pretty frickin funny.
Saturday, April 18, 2009
 - Except selected blogs, as you'll see.
Last week, after that little girl went missing in Dublin, CA and was subsequently found in a suitcase, I had had it with the news. I just don't need to hear it anymore. I don't want to hear about cops being shot because they're afraid to draw their guns in a traffic stop. I don't want to hear about the EPA's positioning to tax CO2. I don't want to hear about Obama's raising our taxes (see: CO2) and spending us into oblivion at the same time. I don't want to hear about Rachel Maddow versus so-and-so. If you mention these things in your Blog, Twitter or Facebook feed, I will de-friend you or unsubscribe. Don't take it personally.
Not only does the news itself suck, but every news story has bias these days. I'm sick of it. This clip demonstrates why I'm completely giving up on the news:
So here are the blogs I'll continue to read, which I'm pretty sure are unbiased:
- Paul Thurott's Windows Supersite
- Long Zheng's istartedsomething
- Miguel de Icaza's blog (sorry, I'll have to unsub from your twitter though, since you talk politics there)
- Zero Hedge
- Coding Horror
- Scott Gu's blog.
That said, I have a WSJ subscription going to waste. :(
Monday, April 13, 2009
I used to think Code Pink were nuts. I still think they're nuts, but I find myself agreeing with them more and more. It seems that what they do does not make any difference, but it's still entertaining.
Saturday, April 11, 2009
I just made my first call using the Skype app for my iPhone (to a 1-800 number). The quality was noticeably better than I get using GSM at home. After I was done with the call, I turned to my wife and said “Voice, as a business model, is dead.”
The only question is, how to replace it? How can you find a person with the maze of messaging apps that do voice calling? You’ve got Skype, MSN, AOL, Gmail, Google Voice, and so on. With any of these, the easiest thing to do is set up a phone number for people to reach you.
But let’s say you have the Skype phone number for people to call into. How do you handle things like PBX? I called AT&T’s 1-800 number using Skype. That 1-800 number routes calls to hundreds of people sitting in cubes somewhere based on their availability. Can Skype do that? I doubt it. (BTW, this is a good business idea if one was so inclined).
And then there’s the mobile aspect. Someone needs to release a device that uses one of these services, like Skype, on a mobile network. Ok. Assuming that any mobile provider would go along with this, once again you’ll have to buy a phone number if you want most people to reach you. In that case, what was the point? Unless you and receive so many calls that a cell phone is cost-prohibitive, you might as well just get a regular cell phone.
So even though the price of voice calling is dropping to zero—fast—I’m still not sure how to get rid of the telephone system in its current state and migrate to VoIP entirely. Telephone numbers are easy. You have a country code, an area code and a phone number. They’re easy to remember. They work between all of these online services like Skype and MSN. Will we end up in a situation where telephone numbers become the method by which people call over the internet and the regular telephone system?
Thursday, April 09, 2009
Tuesday, April 07, 2009
Guess what, I still notice a lot of fail whales there on that thar Twitter (see image nearby).
Need I remind anyone that Twitter got into this situation by using the last language-of-the-week, namely Ruby. Only this time, the guy using Scala at Twitter is also writing a book about Scala. Surprised? I’m not.
Ruby on Rails was, and is, mostly a vehicle for people to write books and sell classes. It’s not a vehicle for making serious, high traffic websites. Those already existed. They were called Java and PHP. For serious, serious, high traffic websites, there’s still C++ (see: Google).
And now we have Scala. This is nothing more than yet another language put on top of the JVM like Groovy or Jython. Why is that important? It’s a semantic issue. Literally. It’s like taking Boo over C#. You’ve got the exact same functionality and speed at the VM level, but about 1/10,000th of the potential hiring base as you would with Java or C#.
I’m picking on Ruby on Rails and Scala a bit in this post, but you know where we should have learned our lesson about this? Java and C++. Creating languages is a business. It’s a business to sell development environments, sell server technology, sell books, sell methodologies, to lock you into SDKs and platforms. The C++ transition was pushed hardest by Microsoft. That should have told you something, but now we’re all doing it again with Microsoft by picking up C# (kudos again to the Mono team, btw for keeping C# real).
Anyway, people say the most important thing about choosing these languages is speed of iteration. That’s swell, until you get so many users that the technology you chose to iterate on fails miserably. I’d rather spend more time on development and get it to work well in deployment than believe in a myth that more servers solve every scaling problem. Only issues is you can’t sell books that way. Right guys?
Sunday, April 05, 2009
Astute readers may remember my post “U2 Albums Ranked”. I’d like to make a correction.
So I was just messing around in iTunes and ranked the songs of Achtung Baby and Joshua Tree individually using the 1-5 star system in there. When you do this, iTunes will calculate the average and rank the album for you.
As it turns out, the average number of stars for Joshua Tree was 4.72 versus Achtung Baby’s 4.25. Reason: I don’t particularly like Acrobat and Love is Blindness from Achtung Baby, and gave those 2 stars. The surprising thing though is that even without those tracks, Joshua Tree still would have won by 0.02.
Therefore, I have to conclude that Joshua Tree is, in fact, U2’s best album. I will now leave you with an appropriate picture of Bono.
You know what the best thing about Apple is? The Apple Store.
- The Genius Bar is a really straightforward place to get tech support. People like being able to see someone in person, not just talk to some guy in India who is following a flowchart for tech support. This is good for tech people like me, since I want the person to be able to recognize that I know what hell I’m talking about. And it’s good for novices, because they can take their broken computer there and show it to someone, rather than trying to describe it on the phone.
- The classes. What a stroke of genius this was. Buy a Mac or iPhone, we’ll show you how to use it for free. My mom’s cousin has been doing these classes for the iPhone at the Burlingame Apple Store and loves it. What’s great about this is that it appeals to the demographic that doesn’t want to read the manual or try to figure something out for themselves, but would rather have someone show it to them. Usually this is anyone over the age of 40 who just wants something that works and that they can use and isn’t a gadget freak.
Pretty cool. I guess paying more for a Mac subsidizes these services they give to you as a customer. And this is probably why the Gateway and Dell stores just haven’t done well. Who cares about going to the store to buy things? I want the store there for when I have a problem after I’ve bought something. Otherwise I’d just order it from mail order and be happy with phone support.
It would be wise of Microsoft to follow through on their plans to open Microsoft stores and help people use Windows with free classes like Apple supplies. But I’m not clear on how they’d have a genius bar. Would the Windows geniuses simply blame the hardware vendor or the hardware vendor’s drivers?