" /> kasia in a nutshell: February 2006 Archives

« January 2006 | Main | March 2006 »

February 22, 2006

This site was temporarily missing

In case anyone noticed and cares. My domains were switched from register.com to godaddy overnight and dns was re-routed. Oh well, allgood now.

February 21, 2006

Comcast and their questionable billing practices

About a month ago, after discovering my ancient Comcast-owned cable modem is so old and rickety it's causing disconnects after the newest speed upgrade (8mb down, baby!) I decided to buy my own. It just seemed easier than trying to convince Comcast that (a) there is a problem (b) the problem is the modem and (c) they should give me a newer one. Too much hassle, not worth the $60 a new modem costs and that would mean an end to the $3 monthly "modem rental" charge as well. Double benefit, really.

I hooked up my new modem, provisioned it and returned the old one to my friendly, neighborhood Comcast office.

Fast forward a few weeks. I open my bill from Comcast and there's a $99 "equpiment charge" on the bill for next month. Armed with my modem-return receipt I called the customer disservice center.

Apparently, it's standard billing practice... the conversation went something like this (although likely not exact words, I didn't tape it).


me: I have this $99 equpiment charge on my bill, can you explain what it is for?
chirpy-service-rep: Oh yes, that's because you provisioned your own cable modem and we charged you for the cost of the original modem.
me: But I returned the original modem, I have the receipt in my hand.
csr: When did you return it?
me: <quoting the exact date and receipt number for good measure>
csr: Ah, I see, it takes approximately 30 days to credit returned equipment.
me: So why was I charged for a modem I returned, again?
csr: It's standard procedure, once the return gets credited you will see a credit.
me: Okay, then I'll just not pay the $99.
csr: then your service will be disconnected for not payment.
me: Uhm, let me do the math. After paying a $3 monthly charge for several years for a seriously outdated modem, you charge me about four times its worth even though I have returned it and if I refuse to pay this I will have a service disconnect?
csr: cheerfully: That's correct!
me: <banging head on desk>

Comcast must really hate their customers! Too bad my only alternative is crappy-ass dsl at around 300kb speed (or that's what it was last time I went down that road).

Nice, Comcast, very nice.

February 17, 2006

Java Iterators are useful reason number 4231

Spotting code like this you know immediately it was never tested.

   for (String cur : list)
   {
        if(cur.dislike()) 
        {
           list.remove(cur);
        }
   }

What are the odds anyone ever ran this?

Hint: in the java 5 enhanced for-loop the Iterator is hidden hence cannot call remove on it. Calling remove on a list while it's being iterated over will always cause a ConcurrentModificationException.

February 16, 2006

Why not to use register.com

Back in the long-ago-time of only a couple registrars, register.com was a pretty good deal. $35 a year when internic was selling domains for $70 and no other options yet existed. That's when I registered a domain I've had with them ever since. January 2000. Not long after I used them to register a couple more domains, one of which operates this website and another my main email address (hint: it sounds like just my last name, makes for a cute, easy email address firstname@lastname.com).

I haven't really used that first domain in a long time but it was still being used by a bunch of friends of mine. Really, the domain was for our group, a kind of a club, if you will. Yesterday it stopped working. This morning, it showed up registered to someone else.

At first thought, I thought someone hijacked the domain. That's what the clues pointed too.. after all I had all my register.com domains on auto-renewal for years now and I could have sworn this one would not expire until next year. Turns out I was wrong, but another piece of information made me suspect the validity of the new registration.. mainly:

Created On:07-Jan-2000 20:11:09 UTC
Last Updated On:15-Feb-2006 01:11:11 UTC
Expiration Date:07-Jan-2007 20:11:09 UTC

Don't domains normally show a new create date when someone else picks it up? That's how it always worked me..

I called register.com this morning only to be told that yes, the domain expired, the renewal did not go through because they couldn't charge my card and someone else picked it up. I remembered that my visa card number was changed last year due some data stolen somewhere or another and the charge not going through excuse was quite plausible. And it does appear that they kept the domain around for a month after the expiration.. but..

1. Nobody notified me of any problem. My email address on the record was accurate and they had my billing information, including address and telephone number, that were also valid.

2. The "redemption" period normally includes removing the domain out of the zone. That makes people notice there's a problem. Otherwise things look as if nothing happened.

So due to those two things it seems pretty obvious register.com does not want my business and my other two domains remaining with them are now in the process of being transferred to godaddy. It's cheaper too. I suppose the record creation date is due to the registrar still being register.com but it makes one wonder just how they make their money these days.. it's obvious they're not particularly aggressive about pursuing renewals and one has to like spending more to register with them when other registrars provide the same services for a much lower price.

Long story short, register.com sucks and apparently could not care less about customers. I'm taking my business elsewhere and suggest any other customer of theirs do as well.

People who microwave fish in an office...

.. especially a small one, should be forced to sit in a small room for an extended amount of hours smelling something they really dislike. Like, say, microwaved fish.

gah..

February 15, 2006

Anything look different?

I believe I'm a pretty good programmer. I can do Java, perl, C.. and so on. You know, all the basics. Heck, I can even write semi-decent HTML and JavaScript, but make me do css and well, er, design things? Forget it.

I cannot do a decent web site design to save my life.. so why bother? I've given up on trying to have an original-design. Everyone else just copies everybody, so why not.

Downsides: Lack of originality, no feeling of accomplishment, diminished sense of self-wroth.
Upsides: Less work, site doesn't look like ass.

Canned styles win.

Safari smoking crack

Edit: After examining every detail of the certificate closely, it's the Entrust one that expired (see second image below), but hitting 'show detail' button shows you the screen below.. so still looks stupid.

Edit two: What threw me, really, is that firefox showed no warning for the same site, so the real wtf here is firefox!





February 13, 2006

Is trackback dead and over?

A while ago I had to write a script to automatically close my entries to trackback due to spam. Back then, it was worth the bother since I used to recieve a fair amount of legitimate trackbacks on regular basis.

That was then.

I haven't seen a real trackback ping since August. Granted, I haven't been blogging anything of note, or really, much at all, but still. My entries get auto-closed to trackback after 15 days. That used to keep spammers at bay. Used to being the operative word, it appears any entry older than a couple days is now a target for spammers.

So is trackback effectively dead? Gone the way of the dodo and frames? I suppose it's time to kill it completely (at least on this blog) say a few words of grattitude for its usefulness for as long as it has lasted and thank spammers for making yet another communication tool effectively useless.

[enter solemn melody of your choice]

February 07, 2006

New toy

I have a pretty nice camera, a dslr[0] but what I'm still lacking is a decent collection of lenses. I have a couple good ones that take decent images but require either good lighting or a tripod. Things I don't always have handy.. so I decided it was about time to purchase a new lense. After careful research, the canon canon 50mm f1.4 seemed like a good, not overly expensive[1] choice. Fast lenses are great but they can very quickly run into $$$.

Here's the first picture, uncorrected, straight from camera, in poor indoor light.

Geek stuff: hand held 50mm 1/15th F1.4 ISO200


[0] Canon Rebel if you're really curious
[1] $309 at bhphoto

February 05, 2006

Product review writers, pay attention!

One of the greatest thing about the Internet is that buying a new product is no longer a trial-and-error shopping trip through several crowded department stores, but rather an easy and uneventful review search in your comfy living room chair with a cup of coffee. But you already knew that, moving on.

I decided I want to buy an espresso machine (yes, this is despite making fun of my boss for spending 10 minutes every day making an espresso at work[0]. So call me a yuppy (more accurately wannabee as I don't intend to spend $1000 on a coffee maker). Armed with some basic knowledge about what an espresso machine should do, a powerbook and a cup of coffee from my unexciting but dependable drip coffee maker I said down this morning to research the best espresso machine for under $200. My self-imposed budget.

Long story short, I found this Gaggia machine to be my best option[1]. This is where the point of this blog entry is made.

Contrast, if you will, these two reviews:

A three-star review from a "Java Man"[2]


Haven't tried the machine yet, but it arrived with the top ajar obviously having taken a hard shot somewhere along the line. The exterior isn't scratched or cracked. I contacted the supplier and they quickly put me in touch with a service tech., who told me how to remove and reinstall the top. Now we'll see if the unit works.


Then this five star review from a Worldymichigander


After many happy (and dare I say, naive) years with our DeLonghi Caffe Espresso, it was time to replace our old workhorse. Having just spent the summer in Spain, where no bar is complete without the standard superautomatic Gaggia espresso maker, I decided that truly great espresso was a daily necessity. I was tired of incompetent teenagers / college students who work at local coffee shops mangling something as simple as a cappuccino (one part espresso, one part milk, one part foam) into a milk-drowned latte with no foam.

I wanted something in the range of $200, with a dependable track record and plenty of power to spare. I waded through a myriad of reviews for the Gaggia Carezza, hailed as a champion of its class, but read a number of negative reviews concerning design shortcomings.

Enter the Gaggia Evolution. Although the Gaggia Carezza and Evolution share the same innards, the Evolution boasts several improvements in design. With its 17.5 bar pump and high wattage, dual element boiler, the Gaggia Evolution is ready to brew in around 5-10 minutes (I always prime the boiler first).

Design improvements over the Carezza include: a larger drip tray, a cup warmer (although, as usual, it's more effective to preheat your cups by filling them with hot water, which can be done during priming), anti-vibration mounts (once primed, the Gaggia Evolution is nearly whisper-quiet), and a brass commercial portafilter (the spouts on the Carezza were changed to plastic). My Evolution came with the Perfect Crema device (which is supposed to go under the single filter basket in order to create additional pressure/allow a coarser grind), but having read numerous negative reviews of the ineffective device, I simply left it in the box with the packing material.

Five stars for the instruction manuals and CD-ROM: the Gaggia Evolution comes with not one, but two instruction manuals: one from the manufacturer (Gaggia), and one from the North American importer (Importika). The Importika manual is intuitive, easy to read and injected with coffee humor, although the Evolution is not among the Gaggia models listed in the Appendix. The included CD-ROM walks you through setup in the form of short movies and narration, along with more advanced tips and techniques for coffee connoisseurs. We put our laptop on the kitchen table and followed along after unpacking our new Gaggia (thankfully, nothing was broken in the mail, as happened to several Gaggia Carezza owners). Although the manual hinted that your first coffee might not be potable, we'd followed various tips online (prime your new machine several times to remove any residue and plastic-y taste), and our first espresso was laden with crema. The Turbo Frother attachment made the creamiest, densest microfoam I have ever seen-it looked more like meringue (hint: use skim milk for best results). My only complaint would be the cheapness of the included coffee scoop, and you definitely want to invest in a better tamp for maximum extraction (the Gaggia takes a 58 mm tamp at a recommended 30 pounds of pressure).

If you're not in the market to buy a $200-300 grinder (Rancilio Rocky or Gaggia 8002 MDF Burr Grinder) to go with your new Gaggia, Illy makes a delicious, dependable espresso grind, available in tins (decaf, too) or Pods. The Evolution is Pod-ready, simply use the single shot basket with the portafilter. Tip: "classic" double shots should take around 20-25 seconds to extract.

The Evolution is a steal for the current price, since it contains the same innards as other Gaggias in the $400-500 range. Although it runs around $50-100 more than the Carezza, I appreciated the design improvements, stylish lines (I have a Tuscan kitchen with hand-painted ceramics and terra cotta tiles and was afraid that the "modern" styling would stand out, but the Evolution is much more traditional-looking and unobtrusive than the Carezza), and performance. (Note: the Evolution is also available in an all-silver model, but it will set you back another $50. The black model features a black base and sides and a silver front and silver drip tray.)

Excellent for the espresso novice or connoisseur, easy to use and clean, and it makes better espresso than some $500-1,000 machines I've tried!

Lengthy, I know.. but do you see the difference?

  • One writer actually used the machine before reviewing one didn't

  • One rated it on problems obviously with shipping, not the machine itself, one didn't.

  • One is full of very useful information and reasons why this particular model is a better choice than another, one, err.. has no useful information at all

Although the second review qualifies nearly as a small novel based on length alone, it is full of useful information and convinced me to spend $50 more on this model rather than the other one I was considering[3]. You might say I hit paydirt here, I don't think I've ever seen an item with two reviews that are so exactly opposite one another. One so thoroughly useful and the other so ultimately useless. Yet both count for the same in the rating system.. go figure...

This is exactly why just looking at a star rating isn't very useful.. so before you write another product review, pay attention, is your review of any use? If not, don't bother.


[0] Yah, he really does.
[1] it's more than $200, but with free shipping, no tax and a $25 discount it comes up to about what I would pay for a $200 one elsewhere, so why not.
[2] I doubt he means that the way I mean "Java Geek".
[3] It also made me look up some espresso-making terminology.

February 01, 2006

The application must be too fast

I would assume that the only reason our NSBCs would create this code is to slow down the application. It's the only logical reason.

public static final String VALUE = "123";
.
.
.
int val = StringConverter.getInt(VALUE);

Where "StringConverter" is a utility class that will check the string for null and convert it to an int if it's a valid int, otherwise return 0. It's a very useful utility if you don't want to have to catch NumberFormatExceptions and do null checks every time you convert strings (like say, user input) to integers.

I blame myself, I kept telling them not to use Integer.parseInt w/o any error checking everywhere.