ET's Ebulient Thoughts

Another one of those short lived attempts

Subscribe to RSS feed

I'm here, I'm there, I'm, everywhere

Actually, I'm there and not here. I started a new site and I'm posting there.

Farewell, farewell, e-book readers from hell

I got into reading e-books very early, when Fictionwise was just starting. I liked the idea of having a large selection of books available to buy right on my PC, no need to go to a store or wait for a book to become available locally. I bought books in the Mobipocket format, which was available on many devices. Eventually I bought the Cybook e-book reader. It was a decent device, though a bit annoying to navigate, and the slow screen update was also bothersome. Still, I enjoyed e-books.

The problem started when I lost my Cybook a few months ago. I started thinking (with some enthusiasm) about buying a new e-book reader, possibly something better than I had. Slowly it dawned on me that the entire field was a mess, and over the past few days I realised that I'm not going to buy a reader.

The main problem is that I obviously have to get a reader that supports Mobipocket. I have quite a few books in Secure Mobipocket format, and I'm not planning to have to buy them again for another format. The problem with that is that few new readers support this format. That's partly because Amazon bought Mobipocket, and partly just the hugely segmented market.

Even if I do get a reader that supported Mobipocket (like another Cybook), there are still books that I won't be able to read on it without breaking the encryption. The book I was reading when I lost my Cybook, The Lost Continent (a Discworld novel) is no longer being sold in Mobipocket format, since the publisher removed that edition, and while Fictionwise allows me to download an eReader version, that won't help. The Mobipocket format book I already have won't work on the new reader because it won't match its device ID. That's DRM for you. Only solution would be to remove the DRM.

The last straw was the fact that most of the books I want on Fictionwise are now limited to US buyers. This wasn't the case at the start, and I think it started when B&N bought them.

In short, the way I see it, the entire e-book field is a mess. Multiple formats mean I can't freely move from one reader to another, and DRM means I might not even be able to move to a new device with the same format. I do like the concept of e-books, but they are too much of a hassle.

I might still buy non-DRM books. Some publishers (though not the most high profile ones) do sell e-books in multiple formats without DRM. Baen is a good example. It's fine to buy a book from one of them. But still, without a convenient device to read e-books on, there's less incentive to buy them.

A solution (that doesn't involve sorting out the industry) would be an e-reader running Windows, since most reader software has a Windows version. This won't solve the niggling DRM issues, but it will still be something I'll be more willing to buy (also because it will be able to do other things). All we need is a tablet PC that's very light and has a good screen, that looks as good in sunlight as the eInk one. Such a device should, in theory, be possible with tech that's currently available or is around the corner. Doesn't mean we'll see one in the next few months, but it's not technically out of the question.

One piece of the puzzle comes from Pixel Qi, whose screen is based on standard LCD technology, and will shortly be on the market. It looks good in sunlight, promises higher resolution than eInk, fast screen refresh, and it also supports switching on the backlight to read in the dark (or watch a movie). It's also cheaper to manufacture than an eInk screen. I'll be waiting for devices and reviews, but for now I'm pretty excited.

As far as making a light PC, there are already devices on the market like the UMID M1, which weighs just 315g, and is a fully functional netbook. It shouldn't be a problem to create a tablet device that doesn't weigh much, especially considering that the Pixel Qi screen takes a lot less power than a normal LCD one, so a smaller battery is needed (the battery is usually a significant part of the weight). A device like this might have a shorter battery life than a current e-reader, but that's certainly a concession I'm willing to make.

Stuff, stuff, get some stuff!

I'm giving away a copy of Windows Vista and ESET Smart Security over at Driver Heaven.

I started thinking about giving away Vista because of a post some months ago at the GameDev.net DirectX forum from someone having trouble developing because he's using a pirated version of Vista. Since Microsoft gave MVP's a limited option get some stuff at the Microsoft Company Store (a benefit that was recently dropped, unfortunately), and some versions of Vista were very cheap there, I figured I could give one away. Took me a bit of time, but my last blog post prompted me to go through with this. People need to leave XP.

I decided to do this at Driver Heaven because it's where my I feel "my community" is. The people hanging around the forum there are nice, and trolls usually don't last long.

As for ESET Smart Security, it's another thing I could get thanks to being an MVP, and though Microsoft Security Essentials provide most of what people need, I figured it'd still be silly not to give it away. I use NOD32 at home, and it's pretty good.

Gamers, stop holding back my games

With DX11 cards now on the market, I've read some people comment that there's not much point in getting them when games aren't even taking advantage of 10.1, or even 10 to a large extent. A good point and a valid consideration, but don't forget that It's All Your Fault.

Developers like taking advantage of new hardware. It's easier to write for more flexible architectures, and many developers find the latest features and algorithms exciting. But developers also have to consider what hardware their target audience has. Currently, Direct3D 9 with shader model 2 is prevalent enough that even casual games like The Sims 3 can make it a minimum. A lot of developers must be breathing a sigh of relief that they no longer have to support fixed function hardware or assembly shaders. However, they'd surely be happier programming for even more advanced hardware.

Perhaps the biggest current limitation that developers face is the OS. The Steam Hardware Survey shows that as of September 2009, about 69% of users (Steam users participating in the survey) have DX10 level hardware. On the other hand, about 53% of users have an OS that can't take advantage of such hardware. (Disregard the "28.95% are DirectX10 systems" on the survey's main page. It's a several months old figure.)

This means that even though developers could in theory concentrate on DX10, given the hardware support, they still need to address DX9 as the main market. Not only that, but the Direct3D 11 API supports hardware of both DX9, DX10 and DX11 levels, which would allow developers to use one API to address all hardware levels -- if only their users were on Vista or Windows 7.

The result is that developers either limit themselves to Direct3D 9 (or ignore the majority and go for DX10, which rarely happens), or must use two different API's, with quite different styles. This leads to extra complexity, which means a longer time to market and more bugs, and difficulty in optimising the game, since what's optimal for one API isn't necessarily so for the other.

Many people think that it's consoles, with their DX9 level hardware, which are holding PC games back, and there may be some truth to this, but Xbox programming is at some levels closer to DX11 programming. If all PC gamers left XP behind, suddenly developers could stick to one PC API, and even if they left image quality at the console level, they'd still be able to optimise for just one API and would have less code to write and debug, meaning better performing, more robust games.

Now, there's no way to force people to move up, and the decisions to stay with XP or go for less well featured hardware are perfectly valid at the personal level. But if the difference is small, if Windows 7 isn't that bad, or the DX11 card is just a tad more expensive than a similar performing DX10 one, maybe it's not a bad idea to think about the greater good, and bring the future of gaming faster by giving developers one more user with an advanced target platform.


(Just to make it clear, following a post at DriverHeaven.net, my point isn't to cry over spilled milk, but to encourage gamers to move to Windows 7 (or Vista) and DX11 cards, so that developers will be able to target this sooner rather later.)

Paragon Drive Backup to the rescue

Last October I did a short review here on my blog of Paragon Drive Backup 9.0 Free Edition. I concluded that it was a useful tool for experienced users, but probably won't work for others.

One of the things that prompted me to try Windows 7 on my P1510D (as mentioned in my previous post) was that my wife got a 1TB external drive recently, which meant that I could easily back up the subnotebook's disk (30GB). The program I chose to do the backup was Drive Backup 9.0 Free. I wanted to see how well it'd work in practice, given a scenario I commented in my review that it should be good for.

It was indeed very convenient for this. I did my first backup to an external drive running from the XP, and also created the rescue media on CD (the software recommends a USB disk, but I haven't managed to boot the subnotebook from one in the past). This is Linux based, though has a UI that'd be familiar to Windows users. After the CD loads you can remove it, which I found useful as it's an external drive, and I wanted to disconnect it and plug in the USB backup disk instead.

When I went back to XP I first backed up the Windows 7 installation using the Linux CD, then restored XP. It all worked without a hitch. Backup took 20 to 30 minutes and restore about 40 minutes. Note that the internal disk on the P1510D is slow, as well as its CPU (a 1.2GHz Pentium M).

All in all, I think that Drive Backup 9.0 Free is a good "ghosting" solution, and as such an essential tool for any enthusiast who does a lot of reinstalling. I still think it's not useful for its intended use (regular backup), but it worked well for my use.

I'd also like to add that unlike my previous experience, this time I had no problem getting a key and activating the product.

Reaching to seventh heaven

I have a Fujitsu P1510D, a tablet convertible subnotebook that I bought over 3 years ago and haven't used for half a year or so. It's a nice little machine that's about as powerful as current netbooks and cost $1800 at the time. A 1.2GHz Pentium M, 512MB RAM, Intel integrated graphics...

I decided to see how well it'd work under Windows 7. The main problem with the P1510D is the meager 512MB of RAM. My hope was that ReadyBoost will help make it more functional.

Installation of Win7 RC went well, and after a trip to Windows Update, all the drivers were loaded, and the machine was fully functional. Some features were still missing, like support for special keys, but even the fingerprint reader was working. So I plugged in a 2GB USB flash drive, configured it for ReadyBoost, and fired up my favourite MMO, City of Heroes, as a test case.

The result was as good as I could hope for. I ran the game on the lowest settings, of course, and frame rate was still low, but zones loaded in a minute or three, not fifteen like on XP, which I'm sure is thanks to ReadyBoost. There were quite a few stutters, though, which I figure are caused by having to shuffle data to/from the USB drive. The game had a memory commit of almost 900MB, according to Task Manager, which is a lot for 512MB of RAM including display RAM (so probably 384MB in reality while gaming).

My conclusion was that the game was playable, but just barely. I imagine that if I used a fast SD card, which was my plan if I decided to make this transition permanent, that'd make things even better (USB has quite a bit of latency). That said, Windows itself also wasn't all that fast to react (I can't fault Windows 7 here, as XP wasn't better).

The worst though was that my battery somehow ran out during the game even though I was connected to the mains. I didn't notice what was happening with it, so I have no idea if it overcharged or was really used, but obviously something went wrong.

So my conclusion is that although Windows 7 does help make this old subnotebook a little more usable, I've gotten used to better stuff since (my 3 month old desktop PC has a Phenom II 710 CPU and 8GB of RAM), and it's hard to go back to something so slow. Just around the corner are Ion based netbooks, and I'll be waiting to see if there's any netbook that really catches my eye.

Batch it or botch it

I wanted to find the short path of a file. Someone at work said he had a Python script for that, which required installing Win32 access for Python. A Google search suggested using 'dir /x' on each directory separately, or writing a VB script.

Having just written a batch file yesterday, I remembered that parameters could be expanded in several ways, and wondered if short path is one of them. So I looked at this nice batch file reference, and indeed it is. Some all that's needed to find the short path of files is create a batch file with the following two lines:

@echo %~s1
@pause

Then just drag the desired file over the batch file, and you'll get the short path.


The other thing I wrote a batch file for yesterday was for automatic creation of user environment variables. At work we use several of them, which all point to subpaths of a certain directory. I wanted to enter them automatically, instead of going to System \ Advanced \ Advanced \ Environment, and again Google didn't help a bit with (and neither did Bing smile. I did find enough information to piece a solution together. The env variables sit as registry values under HKEY_CURRENT_USER\Environment, and I finally realised yesterday that I could create a reg file from a batch and apply it. That worked nicely. It looks something like this:

set HOME=D:\\home\\ET

set REGFILE=tempregfile.reg

echo Windows Registry Editor Version 5.00> %REGFILE%
echo.>> %REGFILE%
echo [HKEY_CURRENT_USER\Environment]>> %REGFILE%
echo "HOME"="%HOME%">> %REGFILE%
echo "RELEASE_ROOT"="%HOME%\\bin\\release">> %REGFILE%
echo "DEBUG_ROOT"="%HOME%\\bin\\debug">> %REGFILE%
# and so on

regedit /s %CD%\%REGFILE%
del %CD%\%REGFILE%

Assault and Battery

Okay, I lied, there's no assault in this post (if you don't count the mention of the word). I just thought I'd mention that it turns out that the battery on my Samsung i780 is not that bad. I've read bad things about it before I bought it, and it indeed lasted only a short while initially, but now as long as I'm not doing any heavy use it can last a few days, which is not bad. It's important to make sure that no battery consuming apps happen to run in the background (like Skype), but I'm generally pretty happy with the battery, since I'm using the phone mainly for phone functionality with a little note typing.

Were these keys on sale?

,

I bought a Microsoft Comfort Curve 2000. Thing is, I bought the version with Hebrew letters. I don't know what the designer of this version was thinking (probably not much except "wow, good mushroom").

Here's what the keyboard looks like on the box:

And here's what the real keyboard looks like:


The key layout in the box image is just about perfect for what I'm used to. Unfortunately with the real keyboard is causing me to key a whole lot of '\' characters.

Perhaps it's just an "anti-Linux" keyboard, designed by someone who just wanted to stress that directories are separated by backslashes.

Edit: Hmmm, turns out that most Hebrew keyboards, including a Logitech one I saw, have this strange feature.

Hitting the iron while it's hot

, ,

I've been doing some C# programming, and, wanting to add scripting ability, I turned to IronPython.

Unfortunately, the documentation is virtually non-existent when it comes to calling IronPython from C#. There are a few tutorials, which aren't bad, but no comprehensive docs, and I've wasted some hours trying to get this to work with IronPython 2.01 and .NET 2.0.

Here's a short example of calling a function from C#:

string func = "a == 'hi'";// + textBox1.Text.Trim();
script = python.CreateScriptSourceFromString(func, SourceCodeKind.Expression);
scope.SetVariable("a", "bye");
bool ok = pythonHideScript.Execute<bool>(pythonScope);
Console.WriteLine(ok);


A couple of useful tips:

  • Compile your scripts. If you're doing anything other than running a short script once, compiling the script will give you a huge performance boost. It's very easy to do:

    CompiledCode script = python.CreateScriptSourceFromString(s, SourceCodeKind.Statements).Compile();