For once, I want good integer subtyping!
June 3, 2007 at 6:00 pm | In Java, Programming | No CommentsI am using an integer ID in parts of my program, I want to ensure that the ID is an actual ID that I have returned. In a strongly typed language that also has a well fleshed out subtyping system, this would be trivial!
subtype AlbumID is long
The benefit of course would be that I could keep track of my AlbumID types and not have to worry about anything else!
Now the proper Java way is to make a new class called AlbumID that has a single long field and… bleck! I just want compile time checking darnit, I don’t need anything instantiated.
Awesome use of issue tracker’s “attach file” feature
May 8, 2007 at 2:27 pm | In Java, Programming | No CommentsI have discovered an awesome use of the “attach file to issue” feature that most issue trackers support.
.swf repros of issues.
The open source <a href=”http://www.camstudio.org/”>CamStudio</a> program comes with SWF Producer. Nativly CamStudio generates .avi files, but hey, why stop there? AVI files are a pain in the rear to get working cross platform*, so I convert them to .SWF, which is not only smaller (No clue as to why that is!) but work on all platforms.
Kind of sad that it took Macromedia (now Adobe) to unify cross platform video, but hey, whatever works!
The only issue I have run in to so far is file size limitations, the issue tracker being used over on java.net only allows files up to 1Meg in size. Luckily my Video-Kung-Fu is good enough that I can get most videos under that size, but I do not really expect other people on my team to be able to pull that off.
* Or even cross computer, who knows what codecs different team members have installed.
My Project: Status Update 3
January 8, 2007 at 11:44 am | In My Project | 1 CommentActual implementation has begun! Going along quite well. Having a design to work from is really helping me avoid stupid mistakes from the get go.
Items to Accomplish / Percent Complete
- Choose Platform: 100% (Done)
- Setup Platform: 100%
- Choose libraries: 95% —
- Integrate libraries into project: 65% — Most libraries are currently in use, one still needs to be integrated.
- Program base algorithm: 65% — Methods are in place, and most of the program logic is there.
- Choose test case: 45% — About half the test cases have been decided upon.
- Program test case: 5% — Stubs in place to latch on to for performing tests.
- Choose performance measurement tool: 15% — Additional research has been performed.
- Integrate performance measurements: 0%
My Project: Status Update 1
December 16, 2006 at 1:26 pm | In My Project | No CommentsSpent a lot of time researching various aspects of linear computation, at the expense of a headache. The ability to pick up a topic rapidly comes with its downsides as well…
Items to Accomplish / Percent Complete
- Choose Platform: 100% (Done)
- Setup Platform: 90%
- Choose libraries: 65% — Research started on second library, learning about options available
- Integrate libraries into project: 0% — Need to finish choosing libraries first
- Program base algorithm: 10% — Algorithm code outlined
- Choose test case: 5% — Some thought has gone into it, but it needs more investigation
- Program test case: 0%
- Choose performance measurement tool: 2% — I have heard of some of these, but need to investigate them more
- Integrate performance measurements: 0%
My Project: Initial Status
November 28, 2006 at 2:20 pm | In My Project | No CommentsI am working on a project, of which I am not going to go into details about. These blog entries serve to mark my progress.
Items to Accomplish / Percent Complete
- Choose Platform: 100% (Done)
- Setup Platform: 80% — Need to finish minor details, but ready to start development if another hour or so does not lead to results
- Choose libraries: 40% — I have one library in mind that I have used previously, but I need to investigate it more to see if it can handle the load I am going to be placing on it. I need to start looking for the second library still
- Integrate libraries into project: 0% — Need to finish choosing libraries first
- Program base algorithm: 0%
- Choose test case: 5% — Some thought has gone into it, but it needs more investigation
- Program test case: 0%
- Choose performance measurement tool: 2% — I have heard of some of these, but need to investigate them more
- Integrate performance measurements: 0%
Good sources for free legal music
November 21, 2006 at 9:16 am | In mp3, music | No CommentsLooking for some good music, but don’t want to get sued by the RIAA?
www.live365.com is cool if you want to find a digital radio station that closely resembled a regular radio station, complete with DJs and call in lines (in some cases, other stations just play music, no talk!) Live365 does have ads occasionally, but it typically is just one 30 second ad every four or five songs.
www.pandora.com creates customized radio stations that you customize by telling the site a song or artist that you like, and it starts building a station up based upon that initial artist or song. You than thumbs up or thumbs down songs that play, based on if you want more or less songs of that type. It sounds a bit strange, but it works really well!
Response to: Making a mountain out of a molehill (of bugs)
September 27, 2006 at 1:58 pm | In Programming, technology | 1 CommentLetting bugs pile up is bad. This should be obvious.
My internship last year was lucky in two ways. The first was that the company was in a bug squishing phase, so I could count on feedback to my bug reports sometimes in a manner of hours.
The second bit of luck was that as a developer, I was able to gain a comprehension of the underlying foundations of the system. Using this comprehension, I was able to break the system in many creative and painful ways.
Examples include realizations that a particular operation was not truly atomic (DB corruption issues), to my favorite when I caused a buffer overflow by installing the Japanese Language Pack and started writing hiragana characters in to fields that expected just English text.
The Japanese exploit was my favorite one, if solely because it allowed me the opportunity to witness first hand (but not have to be involved in the fixing of!) the results of making assumptions about a user’s nationality, and about something so simple as how big a char should be. Using Unicode 100% through an application can be difficult, it only takes a single call to a function in some API that assumes 8 bit chars to break everything. Of course everyone knows that by now, but who actually tests it to that extreme?
Giving bug reporters quick feedback is essential for a programming team to do. QA is your enemy, and they are also your best friends. Remember that QA’s job is to poke you with a sharp stick now, so that you do not end up blowing off your entire leg with a shotgun later on down the line!
Why Office 2007 will be a failure
September 27, 2006 at 1:36 pm | In C#, Microsoft Office 2007, Office 2007, Programming, technology | No CommentsLet me start off by saying that the interface rocks. Use it for awhile, then go back to an application that is structured around menus, and there is this giant feeling of “What have we been doing for all these years? The entire industry is stupid!”
The interface is that good.
But Office 2007’s downfall will be the same downfall that Office XP had, and the same massive problem that Open Office has:
Slow load times.
A common use for Word is to spell check random bits of text. Click the blue W, [cntrl-v], [f7].
Under Office 2007 that procedure is now Click the blue W, [Whistle show tunes], [take a short nap], [cntrl-v], [f7]
Once any of the Office 2007 applications get started up they perform well (though Outlook has some minor performance issues) and yes there are performance gains to be had once the code base is cleaned up and readied for release, but those minor speed gains are not likely to offset the overall slow load time for what users expect to be a very simple set of applications (Write text, add numbers together, send and recieve email).
It is important for developers to remember that ultimately the users do not care how eloquent our code base is, they just care if the software delivers the desired functionality. Does eloquent code enable rapid deployment of features that the users desire? Often times yes, but if a user can load up a web app in less time than it takes to load up an eloquently programmed desktop application, well, which one do you really expect the user to use?
The wide screen LCD ripoff
September 25, 2006 at 1:33 pm | In Hardware Review, technology | No CommentsDo you know that when you buy a wide screen monitor you are being ripped off?
Previously Dell’s D600 line shipped with an LCD screen that had a resolution of 1400×1050, for a total pixel count of 1,470,000 pixels.
Dell’s new “wide screen D620″ laptop ships with a screen that is 1440×900. That is only 1,296,000 pixels.
Do you want to know how wide screen LCDs are made? Let me tell you.
They take a regular 4:3 (the height to width ratio, same as your standard TV set) LCD, and then they chop off the top and bottom parts of it. Well not literally, they just make the screen smaller to begin with.
Oh but here is the beautiful part! They then charge you extra for your new and improved smaller screen!
Wide screens suck. Go to a store some time and compare a wide screen to a regular screen side by side (may be hard to do…) if you do even a casual comparison between screens of the same “size” in inches, you will find that the wide screen model is smaller. It also likely costs more.
Safeco: Employees? Important? Why?
September 25, 2006 at 1:26 pm | In Work, technology | No CommentsSo Rosia gets a new laptop from Safeco so she can be a more mobile employee.
They give her one of their “good” machines.
It is a Thinkpad T23. AKA about a 5 year old machine.
Pentium 3, 1.1Ghz! 512MB of ram (originally shipped with 256…) running Windows 2000.
I do not mean to insult the Pentium 3, which has been upgraded and re-branded as the Pentium M and is now the Core Duo, aka Intel’s Last Great Hope, and all of which are amazingly efficient and well performing processors.
Nor would I want to insult Windows 2000, which is a lovely OS that demonstrated that Microsoft can make a real OS, but unfortunately was horribly disfigured to create that monstrosity known as Windows XP.
No, what I am upset at is that a company can be so ignorant as to give its developers 5 year old machines. Rosia tells me that some of the other Thinkpads there are even slower, and are so loaded down with crud that opening a single email in Outlook can take well over a minute.
If that isn’t a productivity killer, I don’t know what is. Imagine spending an entire hour just clicking through your email each morning. Not actually reading any of it, not responding to any o it, but an hour just clicking one by one through them.
In contrast, I also received a Laptop from my employer. In my case, Boeing. I got Boeing’s lowest end laptop, a Dell D600 with a mere 1.4 Ghz Pentium M processor and only a gigabyte of RAM.
Oh woe is me. This is Boeing’s lowest end machine, and they are slowly being phased out of service. Their highest end machine is a dual CPU monstrosity that has hundreds of gigabytes of HD space, a 512MB video card, and weighs over 9 pounds.
Actually I am kind of thankful that I did not recieve that machine!
For reference, Boeing uses Dell as their primary computer supplier (mostly it seems because Boeing can boss Dell around and has all sorts of cool custom configuration things going on), and most of Dell’s laptops are rather meh. Well I say this coming from last years internship working with the Windows Tablet PC team…. Working with the shiniest newest laptops every day raised the bar for what it takes to impress me now.
Blog at WordPress.com. | Theme: Pool by Borja Fernandez.
Entries and comments feeds.