Archive for July, 2007
Why I would buy an XBox360 before a PS3
So those of you who know me, I’ve never really been a fan of Microsoft- so much so that I refused to buy an XBox on general principal. I’ve not really been a fan of Sony, either, but I still own and loved a PS2. So why the change on this new generation of consoles? Well, Sony has pissed me off quite a bit recently. The following is a list of reasons why I won’t be buying a PS3:
Sony: The Company
- Sony is part of the RIAA- I disagree with their extortion tactics in general.
- Sony is part of the MPAA- same as with the RIAA.
- Rootkit CDs – remember when sony rootkitted all of their customers who bought certain CDs? They brought the word rootkit to the general public.
- Continuously pushed DRM – Sony has been a big proponent of DRM. While pretty much all large tech companies have at some point (Apple, Microsoft, Google), it gives me one more reason to dislike them.
- Sony Cameras use a proprietary usb cable format- I have a lot of regular interchangable usb-to-miniusb cables and only one for my sony camera. The camera is great, but it’s a pain in the ass to connect to. Hopefully they’ll change that in the future, if not already.
PS3 Specific
- 10 year lifespan -Sony says that the PS3 should last 10 years, while the 360 will only last 5- here’s the thing to keep in mind:
- Lifespan- How many high end pieces of technology do you have that are 10 years old? Mine are usually replaced or straight up die in that time. How about computers? Ten years ago, you were using a 300mhz processor with 64 meg of ram (if you were lucky). Still using that as your primary PC?
- Warranty- I’d rather pay $400 every five years than $800 every ten because of the warranty- you’ll have more coverage if you were to get the machines more often.
- Processing power- the xbox 720 that comes out in five years will be cheaper and much more powerful
- Cell processor- it’s so powerful that it’s frustratingly difficult to program for (from what I’ve heard). That means games will be difficult to write and not use the full power of the cell proc. That’ll still be the case when the xbox 720 comes out 5 years later with as powerful of a processor that’s simple to develop for. Now, if you’re a production house, which would you rather produce games for?
- patented “locking a game to a specific console” – Whether or not they implement it, it sort of frightens me that they might go that way. I’m sure 5 years down the road when they have their userbase, a simple firmware upgrade could implement this, then they could require all new games be require that the firmware be installed whether it uses it or not. From there, movies, games, whatever could be controlled by this, and since Sony owns the Blu-ray format, they can require that anyone who wants to sell in that format use the locking system. It honestly scares me a bit. Since Sony patented this, at least I know microsoft won’t do it.
- Price – we can’t forget price. I’ve had my Wii ($250) for half a year. Will the PS3($600) be 2.5 times more fun? Are the games 2.5 times better? Are there 2.5 times as many games for this? I can pick up the newest xbox 360 elite for under $500. Will the PS3 be more fun than my Wii and a 360 combined?
And while I dislike Microsoft, I have more faith in their system than the PS3. The battle isn’t over, but it’s not looking good for Sony.
Supporting Standards vs. Supporting all Testcases
So I’ve been working on a side app that connects to remote servers. While writing validation code for inputs, I came across an interesting dilemma. I’d like to validate an address input to be valid- be it a hostname, domainname, or ip address. Unfortunately it’s not as simple as it sounds.
According to the domain name RFC, section 3.5 domain names must start with a letter, end with a letter or number, and can have letters, numbers or hyphens in between. When you add in periods to separate it out it’s messy, but workable.
But not everyone follows the RFC- take fifth/third bank for example- I’m not sure how they got away with it, but it doesn’t really follow this (historically I think 3com is the one to blame).
So that leaves me with two choices: follow the standard, or allow for the outliers. It’s doubtful anyone will be using my app to manage 53.com’s ldap server, and less likely that 53.com IS an ldap server. It is however possible that some one out there has either named or inherited a server named 3app6ldp02.foo.internal.
So do I support the guy? Should I care? should I even bother validating the address?
Finding a Hobby
So Jackie’s been sitting at home with Ian for 4 months now and is incredibly bored. All she every does is read. I suggested a hobby, but she doesn’t really have any (except scrapbooking, which is expensive)- So what I want to do is get some ideas from all the people who read my site. Here are the base rules:
- cheap- no more than $25 start up cost and that must last 3 weeks.
- work from home- Jackie doesn’t have a car during the day
- Not computer-related
- Space limited- it’s a small apartment, so Float-building is out.
- baby friendly- Ian is still a factor since she’s home with him all day:
- baby safe (no toxic fumes, molten metal, etc)
- drop/pickup easily (Ian gets hungry/poops often and unpredictably)
I’m sure there’s more little rules, but those are good enough for now- Here’s what I’ve thought of:
- Carving:
- Wood figurines
- Plaster figurines
- Soap figurines
- Painting:
- figurines/miniatures
- small statues
- ceramics
- play with electronics (we have a 100 in 1 electronic experiments board)
- Music:
- Learn to sing
- Learn Keyboard (have one)
- Learn Bass (have one)
- relearn clarinet (she has one)
- making puppets/muppets/marionettes
- find a work-at-home clerical/dataentry/paperpusher job (what she’s currently looking for)
Any suggestions guys? I really need some help with this one.
I hate those meeses to pieces
So some time in the middle of the night, I’m awoken by this strange, high pitch squeaking sound- almost a whistle. I could hear movement in the other room, so I figured it was the cats playing with a toy.In Truth, the cats have ADD and usually stop after about 10 seconds or so, but this kept going… 20.. 30 seconds. I finally got up and walked into the other room to see chaos playing with a live mouse. It was a tiny little thing, maybe three inches from nose to tail, and she was batting it back and forth up and down the hallway.
She knocked it into the kitchen, and I followed to grab a jar or something to put over it so I could scoop it up and put it outside (far far away). By the time I had something, Chaos had knocked it under the fridge. Try as I might, I could not lift the fridge, full of food, in the middle of the night to scoop him out, so I waited until morning and Jackie called maintenance to get some traps. They set up two traps- one under the stove and one behind the fridge.
In the middle of the day, Jackie messages me saying she heard a trap go off- I come home that night to find one squished little mouse under the stove. I toss mouse and trap and think nothing of it- problem solved (except chaos, who was heartbroken). This should be the end of the story.
This morning I wake up and walk into the kitchen and, out of the corner of my eye, see the trap behind the fridge is upside down. As I walk over for a closer inspection, I see not one, but TWO mice sticking out of the trap.
So apparently we have mice. I’m gonna need more traps.
What I Dislike About Python
Since I began working on the Luma project, I’ve been playing a lot with Python, a language that I’ve been around for years but never bothered to learn. Since Luma is written in Python and I’m not on the team, I figured it was time to jump in feet first. Coming from a perl/php/ruby/java background, it wasn’t a big leap to make.
However, the more I read and write, the less I like it. Some are minor complaints, while some are a bit larger. I’m gonna list them here as I think of them, from trivial to more important
* indentation – This is really an annoyance more than anything. If you’re not aware, python is whitespace sensitive- rather than using curly braces, it uses indentation to show scope and what belongs where. Oh, and you better make sure to replace your tabs with spaces, otherwise you’ll ned up with bizarre errors that are a pain in the ass to track down.
* debugging tools – This one is a bit more aggravating- I may not have found the equivalents to Data::Dumper or -w in perl, or .inspect in ruby, but that doesn’t mean they don’t exist. I’m sure I’ll find them in time. And for those of you who suggest using the python interpreter for debugging, that doesn’t really work that well when examining a GUI app.
* self – it seems really redundant that inside a class method, the first parameter you pass is self- in other languages I’ve used, self is so prevalent inside a class that it’s implicitly expected, not explicitly stated.
* non-object old-style objects – When is an object not an object? When it’s an old style python object. Apparently the Python object setup is sorta broken- new-style objects are subclassed from an actual object class, while old-style aren’t. People complain that Perl’s OO was tacked on, but this seems far more kludgy.
* super – related to the above point- new-style objects can use super, which requires being told which parent class it should be looking at (since python supports multiple inheritance). The problem is old-style classes do not, so if you’re subclassing a module you didn’t write which itself is subclassed, you may have to dig to figure out if you can use super or not. Old-style classes use a different method- you call ParentClass.method() and pass it self as the first parameter. I think this probably ties into the kludgy way self is handled. For more on super, check out Python’s Super being Harmful (which goes way over my head).
* a line fails but it doesn’t say why, it just stops– I’ve run into this problem while trying to debug code- take the following code for example:
print "in workerthreadadd- will it add? 1"
searchResult = self.ldapServerObject.add_s(self.dn, self.modlist)
print "in workerthreadadd- will it add? 2"
The first line will print- the second one won’t. I don’t know what’s going on in that ldapServerObject- I didn’t write it, but there’s not stackdump or errors spewing out- it just stops. Now I have to go through and debug the object I’m calling to figure out why it’s dying. (This isn’t the actual code that gave me this problem. I can’t remember what was doing it previously.)
That said I’m still gonna keep at it- I didn’t learn perl overnight, nor ruby. I suspect python will take a while to grow on me. When I learned php it was great compared to java because it didn’t need to be compiled; when I learned perl it handled text and gui interfaces better than php; when I learned ruby it’s OO abilities were far greater than perl’s. I just have to figure out what it’s good at that ruby and perl aren’t.
update:
It looks like the old vs. new style objects will be gone in python 3.0- they’re planning on switching to new-style only. I think it’ll be a positive step overall, but after talking to the guys in #python, python 3.0 is much like Perl 6- it should be here sometime within the next decade, but I probably shouldn’t even narrow it down that much 🙂