The other day my laptop started acting up - it slowed down to a crawl then
barfed on burning a disc (which I originally attributed to irregular
I/O behavior on the side of µTorrent); that in itself was annoying, but
it only raised warning signs when another burn (this time without any active
background applications) failed in the exact same spot.
I decided to run scandisk (which, being that I'm running only one
partition, would not run until the next reboot), and over the next three hours I
could do nothing but stare at what any seasoned computer professional will
sadly tell you is one of the most horrible sights in existence:
Three hours later I have a fully-functional laptop with over 5MB of bad
sectors (and, as the same seasoned computer professional will tell you, the
problem is only exacerbated with time) that runs somewhat slower than it ought
to on I/O operations. Luckily the warrantee is still in effect, but invoking it
means having to spend days without my laptop.
Almost makes me wish I bought an HP (unless I'm mistaken, they have a "if it
breaks we'll replace it for you at home within 24 hours" kind of policy), but
then I remembered that my laptop has been customized by the shop in which I
bought it (with a 7200RPM Hitachi drive instead of the standard 5400RPM one).
Since I'm not even (remotely) new to hard drive crashes I knew what this meant -
a trip to the store, which sends the drive to the local importer, waiting for
days while it's being "examined" and then another trip to the store to get it
back. What makes it even worse is that the shop where I bought the laptop (Lamir) is situated in another part of the
country.
Luckily the lab guys were kind enough to allow me to remove the hard drive
and send it to them via courier, which should save me a couple of unnecessary
trips to the centre of Israel. I'm not sure how support services work in other
countries, but this is quite unusual here - normally warrantee on branded
products is voided if you tamper with them (even if it's something as trivial
as removing or installing a hard drive yourself), so in that I have to
thank them. I just hope the rest of the experience is as pleasant.
Now I'm off to get myself a NAS device to back up my stuff
on.
There's a recent fashion among blog-savvy developers in looking for the
"ultimate programming font." This has been around as long as programmers, but
the discussion has recently been sparked again by the impending
release of Microsoft's Windows Vista along with its slew of new
fonts. I'm not the early adopter type so I couldn't really be bothered and
stuck with the default fonts, until I got a new monitor at work and figured it
was about time to ditch good ole Courier New try for something with a little
more panache.
A good couple hours later I had a large selection of fonts; the selection is
actually quite overwhelming, however there are very few actually
good fonts (for example, the Proggy fonts are
generally considered some of the best around, but I can't stand looking at them)
and fewer still could actually dethrone the aging but solid Courier New.
At first I actually considered using Consolas, although it's not easily
obtainable. A quick Google Images search provided me with the necessary visual
example of what the font would look like (screenshot courtesy of Jeff
Atwood):
Honestly? The font looks horrible. I find the fuzziness introduced by the
ClearType rendering very hard to swallow (the font looks as though it's
suffering from colour-bleeding, even though it's not). I couldn't be
bothered to even try installing the font.
A casual comment from a reader in one of the blog posts I've read struck me
as brilliantly simple: I've been using OpenOffice.org for quite a while now (give
it a try!), and the default font for Writer is a relatively new font from
Bitstream (via GNOME) called Bitstream
Vera. It originally struck me as an impressively neutral font -
pleasing to both eyes and mind. Apparently a monospace version of the Bitstream
Vera Sans font is included with OOo (and additionally available via the previous
link); it's professional, it's free and it looks great (screenshot shamelessly
stolen from this
place):
I heartily recommend the Bitstream Vera Sans Mono font for programmers (note
that it takes a bit
of hacking for it to work with Visual Studio 2003, although it works just
fine with 2005).
Finally, if neither of the above fonts suits you, there's a huge list of
programmer fonts here; one
alternatives you should look into is Andale
Mono, which is very slick and functional.
Windows is anything but user-friendly if you're not a local
administrator, or so I learned when my dad asked to be able to convert CDs to
MP3s so he can listen to them on his PDA. A simple enough task, I figured I'll
just configure Exact Audio Copy to
"dumb mode" and leave instructions on how to use it (basically, double-click the
icon; select the appropriate drive; Alt+G to get the information from freedb;
select relevant songs; F5).
For some reason my dad (whose user is not a local admin so as to keep
spyware and other crud off our system) couldn't access any but the generic
(Daemon Tools and other emulation layers) CD drives. It took me two hours (!) to
figure out that:
- Windows 2000 and on does not come with an ASPI layer installed
- Most software (including EAC) has been updated to use the native API calls
instead and do not require ASPI
- The native calls fail for non-administrative users (!)
Installing an ASPI layer is supposed to remedy the situation; I've opted to
use ForceASPI 1.8 (instead of
the default Adaptec installer) but that did not have any effect. To make a
(very) long story short, the way to handle this is to use Frog Rights, which
finally solved the problem.
To add to my frustration, however, after screwing around with ASPI drivers
for hours Nero would no longer recognize my DVD-RW; I figured I'll just intsall
the latest Adaptec ASPI drivers which completely screwed up my
system - Windows XP would no longer boot and the only clue a logged
boot would provide is that something goes very wrong loading the fastfat.sys driver. Nothing I did over the next four
hours would allow the computer to boot; oddly enough, my brother managed to boot
the machine by simply removing the empty DVD-R media in the DVD burner (a major
WTF). We're still not clear on the problem.
Update: Apparently Nero has its own tool for this purpose called Nero BurnRights, which works like a charm.
I've been playing around with Leonard Maltin's Movie
Guide for the PocketPC for a couple of days now, trying to find a useful
program for cataloguing and keeping track of my DVD collection. I couldn't find
any free software that didn't outright suck, so I turned to commercial software
instead; LMMG seemed to fit the bill - mini-database of DVD releases, the
ability to easily categorize and keep track of my DVDs and all sorts of nice
features.
I did find out, though, that I'm sorely missing an import/export feature. It
would be cool to be able to post my movie list somewhere, or send reminders to
friends to whom I"ve lent movies that those movies are due back and all sorts of
neat stuff that you can only do if you have access to the movie list.
Not even a customer yet, I've fired an e-mail to LandWare's support
department:
I'm seriously considering
purchasing the Movie Guide (I've been testing it thoroughly for the last hour
or so), but have one serious qualm with it: my movie collection can not be
imported/exported (preferably to a well-documented CSV or XML-based file
format). Additionally, although my PDA does not feature internet connectivity
it would be great if movies could link to IMDB/some other online movie
repository (either directly or via title search).
Are either of these features likely to be included in the software? The
import/export feature is practically a show-stopper for me (I'd like to be
able to e-mail my DVD list to friends and that sort of thing).
A day or so later I get the following reply:
Hi Tomer,
As of last night, Movie Guide for Pocket PC now provides an import/export
feature, using tab-delimited files.
Product info: http://www.landware.com/movieguide/ppc/ Conduit
Documentation: http://www.landware.com/movieguide/conduit/ppc/
I'll log your other comments for our developers; what exactly are you
looking for with regard to online connectivity?
Josh
If that isn't good service, I don't know what is. I'm
sold.
Reading a couple of posts on The
Old New Thing (Raymond Chen's blog) made me realize that compatibility
issues, except for being a general headache, have a lot of nontrivial
repercussions. Take this example of a network
interoperability issue: Samba, the standard Linux implementation of an SMB
server, supports a feature called fast directory queries. Apparently the feature
had been (until recently) broken, and because Windows XP never made use of the
feature this was a non-issue until internal tests with Vista brought it to
light.
A naïve developer would, at this point, assume that Microsoft would let the
responsible party know that they have a bug and move on. Things are obviously
not that simple, but for reasons you wouldn't expect: exactly because
Samba is such a widespread product, any user encountering the bug (assuming
he/she'd even notice something was wrong - the bug in question is not easy to
spot) for the first time would automatically assume a bug in Windows Vista (a
fairly reasonable assumption considering you could never hit that bug with older
versions of Windows). Worse still, although the bug was fixed quickly there is
no guarantee that the fix will actually be installed on the problematic devices.
For starters, there is a chain of responsibility which starts with the
administrator of the offensive device and ends in the product vendor; this means
that in some cases the vendor will not install the bugfix by default and will
void the support contract if a "vigilante" administrator installs it locally.
Second, Samba is often used in embedded devices (such as network attached
storage [NAS] devices) which may or may not be firmware-upgradable by the
user.
Regardless of the solution Microsoft decides on (Raymond is
actively seeking ideas - if you have any, make sure to drop a
comment), some of the proposed solutions have even subtler repercussions
that need to be considered. For example, one of the proposed solutions is to
detect and maintain a list of "bad" servers for which fast queries will be
disabled. Apparently this is a potential security hazard, because a malicious
user can make use of this feature to launch denial of service-like attacks on
the client (it's not obvious how this can be done, so Raymond elaborates
on this point in a follow-up).
One of the disadvantages of working on relatively low-profile software is
that you hardly ever get to tackle security issues such as these, so you
only get food-for-thought by reading articles and blogs. But I guess that's what
the blogosphere is for in the first place, no?
Mio 168 RS
In the process of "going legit" with my laptop (i.e. getting rid of all
commercial software I won't pay for, trading proprietary software for
free/open-source alternatives etc.) I've reached several important
conclusions:
- There are very few commercial applications I can't live without
(specifically, Windows; Visual Studio; Total
Commander)
- Some free/open-source alternatives are actually superiour to their
commercial counterparts (Firefox, Thunderbird and OpenOffice.org [Hebrew version] are three such
examples)
- The sheer amount of tools and applications I require just to get things
done is
astounding
Despite the impressive efforts by the free/open-source community, there are
still a few areas where commercial companies (in this case, Microsoft) have the
upper hand: PDAs. I was recently handed down a MIO 168 RS
handheld which my dad replaced, and ended up trying to learn the quirks of
Windows Mobile and how to best make use of it.
Apparently the whole deal of synchronizing with mobile devices is not as
trivial as you'd think; there is only one standard, SyncML,
which is apparently supported only in part and inconsistently by various mobile
devices, and is basically not supported by Thundebird (nor, to my knowledge,
Outlook). The Windows Mobile connectivity solution from Microsoft, known as
ActiveSync, is perfectly adequate if you intend to use Outlook; however I do not
own a license for Outlook (one is provided with the PDA, however it is for the
obsolete Outlook 2002) and would prefer to keep using Thunderbird anyway.
The one glimmer of hope is an application called FinchSync - a combination of java sever on
the PC and a .NET agent installed on the PocketPC device (strange, wouldn't you
agree?). There are several problems with this solution:
- It is incredibly cumbersome. Having to install a seperate server and
client application is in itself a chore, but having to install the server
application on each and every host machine is really very annoying.
- Although it supports .ics files (which appear to be the standard calendar
file format used by Mozilla applications), these files do not appear to be
employed by the Lightning extension to
Thunderbird by default and I couldn't figure out how to get it to work.
- Finally, the software works over TCP/IP; this was probably the easiest
solution, however PocketPC devices that are not WLAN-capable are not
configured for TCP/IP by default; it might be possible to configure a TCP/IP
bridge over the device's USB connection, but up to this point I have spent so
much time with so few results I've conceded that there is no way to do this
easily.
As you can see, in this case Microsoft takes the cake: synchronizing to
anything but Outlook is a real chore, if not next to impossible. I'd consider
getting a license for Outlook, but at roughtly $70 for an academic license of a
version of the software that's three years old and about to be replaced it's
hard to justify the expense; additionally I would much prefer to keep using
Thunderbird as my e-mail client of choice.
With the upcoming competition from Office 12 and the far-superiour
integration of Outlook in the corporate environment along with its tight
integration with PocketPC-based solutions (which I've come to understand are the
majority in this market segment), the open-source alternatives are in pretty
grave trouble.
I decided to split my previous
post in the hope that someone googling for this topic might actually get a
straightforward answer (I certainly didn't). Visual Studio 2003 does not let you
use Bitstream Vera Sans Mono by
default. Instead it takes a bit of trickery to get it to work.
- Open Visual Studio 2003; go to Tools->Options->Environment->Fonts
and Colors. You will notice that you can select either Bitstream Vera Sans or
Bitstream Vera Sans Mono Bold. Select the latter like so:
- Click on OK and close Visual Studio 2003.
- Run regedit; click through to the following key: HKCU\Software\Microsoft\VisualStudio\7.1\FontAndColors\{A27B4E24-A735-4D1D-B8E7-9716E1E3D8E0}
(the GUID may be different for you - there aren't many of them, just look
until you find the right value name):
- Change the value of FontName to "Bitstream Vera Sans
Mono" (without the quotes):
- Click on OK, close the registry editor, restart Visual Studio 2003. You're
good to go!
I haven't been working with Visual Studio 2005 that much thus far; the
project I've been working on for the last 8 or so months was launched before
VS2005 came out (around beta 2), and given the relatively schedules between
milestones (first version was to be demoed in about two months) it seemed far
too risky to invest in a codebase around the yet-unproven features
of .NET 2.0.
I still think that was the right decision. I've been doing some work with
Visual Studio 2005 lately, primarily on PostXING and other minor projects, and have
come to the conclusion that Visual Studio 2005 is practically
unusable. The IDE is even heavier than Visual Studio 2003, ridiculously
slow and extremely prone to stalls; it feels like working on a huge solution in
VS2003 with a buggy alpha version of ReSharper. The debugger has an incredibly
annoying tendency to just stall for tens of seconds at a time whenever I step
in/out/over. The IDE feels more like NetBeans than Visual Studio, and is about
as responsive, but while NetBeans can be forgiven as a relatively new - and
partially open source at that - effort, Visual Studio 2005 is an
evolutionary step on a reasonably mature IDE that itself is the 7th version of a
12 or so year-old effort.
Too bad I can't really stick with 2003, it's just not an option - but I would
rather have my trusty old combination of VS2003 and R# (which in itself is not
without issues) than the heap of bugs and unoptimized UI that is VS2005. At
least until VS2005.1 comes along (maybe they'll launch VS2006 with .NET 2.1,
like they did with 2003...)
I didn't really believe there were any genuinely crapy onboard sound card
this day and age. Being a gamer and audio enthusiast I've always considered
sound cards to be one of the most important aspects of my PC (along with the
monitor, keyboard and mouse). My PC soundcard timeline goes something
like:
When I bought my latest desktop at the end of 2003 I had a
newly found faith in onboard solutions; onboard network adapters were
finally up to snuff and the latest SoundStorm (the onboard sound
solution found in nForce2-class boards) was
being heralded by the online hardware press as the next best thing.
Seeing as I was serving my stint in the army at the time and was relatively low
on cash I opted to save money on a dedicated sound card and went with the
onboard solution. This turned out to be a mistake; the audio quality of
SoundStorm was not on par with the five year-old Live! and has pretty major
bugs in the hardware acceleration layer; mixing would sometimes clip -
particularly when very low rumbles were mixed in the general sound, as in System Shock 2's
elevator shaft - and the EAX implementation was so poor it was next to
unplayable. There were also major compatibility issues, such as the sound cutoff
problem prevalent in a lot of Ubisoft
titles and the extreme sound stuttering with Half
Life 2. This was probably the game developers' fault for not ensuring
compatibility, but nVidia did not seem overly inclined to work with developers
to resolve these issues; conversely I would seriously doubt Creative would stake
its reputation on this sort of bug.
At work I have an Athlon 64-based machine with the ubiquitous onboard Realtek
AC97 codec (Gigabyte
GA-K8NF-9 mainboard). I constantly listen to my music collection, streaming
audio etc.; I don't game, I don't edit audio, I don't do anything that requires
more than a passable audio solution. The onboard audio should have been
perfectly acceptable, and so it was. Until a few days ago when I started
noticing crosstalk from the I/O subsystem to the audio lines; in other words,
there was a weak sort of static hiss which would change pattern and frequency
depending on how hard my hard drive was churning. I probably wouldn't have
noticed that with lesser headphones, but that's no excuse! Why is it that in the
year 2006, 18 years after the first commercial sound card for the PC was
developed, I can't even get reasonable, 2D stereo audio from onboard
solutions?
The only reasonably-priced sound card in the market at the moment is the
Sound Blaster Audigy 2 Value (around $70 in Israel - the price of a new Audigy 4
in eBay!). Guess I better start hammering at those auctions.
ReSharper EAP build 222
totally barfed on one of my source files and I was too lazy to reinstall build
219. The result? I was working on this one file for a couple of hours without
any help from R# (no advanced syntax highlighting, static analysis, improved
intellisense etc.)
I would like to reassert my statement that R# is the best thing that happened
to C# programmers since, well, C#. Working with Visual Studio 2003 and without
R# feels a little like trying to use a pen with an amputated
finger.
|