Wolf Tower by Tanith Lee
My rating: 4 of 5 stars
Hey, not bad for supposedly "YA" fiction — wonderful SF-fantasy themes in an apparently rich world. What more can you want?
Wolf Tower by Tanith Lee
My rating: 4 of 5 stars
Hey, not bad for supposedly "YA" fiction — wonderful SF-fantasy themes in an apparently rich world. What more can you want?
Foundation’s Edge by Isaac Asimov
My rating: 3 of 5 stars
Not bad, not bad — better than the first three (learned that this book was written almost 25 years after the others!).
Used it for years — loved the waypoint lines that it would make on your map (tracking routes from one quest to another), and the waypoint arrow at the top of the screen. Now built-in to WoW, and there’s no need for it anymore. Even the dev is leaving it.
Also built-in to WoW now, although the implementation isn’t as good as the addon’s — you can’t look at someone else and zoom into them, for instance. This was one of those addons that, while being a mild modification to the game UI, you still found yourself using it nearly every single time you logged on.
Hopefully, there won’t be more to come! :P
Update!
One more: PerformanceFu. Hasn’t updated in about 2 years. Liked it because it would let you see some cool stats right from your FuBar – I’ve noticed that his seems to be built-in to the standard WoW button menu now. So long!
World War Z: An Oral History of the Zombie War by Max Brooks
My rating: 5 of 5 stars
Wonderful, wonderful book. Seems to almost be more about the human element involved in maintaining a society that’s on the verge of collapse than it is about zombies — the zombies are almost just the backdrop for the story, only referred to as Z’s or "Zack."
This book will make you want to go outside and meet your neighbors for the first time — to make you wonder just how much "stuff" you really need to be happy.
After finally deciding to upgrade my venerable HTC G1 (which I reviewed here initially) that had served me well over the past year and a bit, I decided to go with the Motorola Droid. It’s not the fastest anymore, and it sure as hell ain’t the prettiest (neither was the G1 — what is it with me and ugly phones?), but it’s the new Android phone for me.
Why the Droid? Well, it’s already been out for about six months or so, and has developed quite the hacking community. Even my favorite ROM for the G1, the Cyanogenmod, has a version available for it.
It’s easily rooted (mine was rooted in about 24 hours).
It comes stock with a 16GB SD card — very cool. No need to upgrade this thing right off the bat like there was to the G1 and its pitiful 1GB card.
It has loads of custom kernels for it, some enabling the stock 550MHz chip to be overclocked to 1.3GHz, and even some that run at the stock 550MHz but with a much lower CPU voltage (enabling your battery to last much longer). This phone isn’t going to be left behind in terms of speed for a while — I’m betting Motorola is even going to issue an update for it one day that will up the speed of the processor just a bit for newer versions of Android.
It has a hardware keyboard — not a very good hardware keyboard, sadly enough, but it’s good enough for things like low-level hacking of the ROM and telnet/ssh/console sessions, which is what I needed it for.
[This is probably my biggest gripe for the Droid — the hardware keyboard seriously sucks. The keys are all flat, not spaced apart, and it’s honestly quicker to type with the onscreen keyboard, which I find myself doing nearly all of the time. The G1’s hardware keyboard was an absolute dream to type on compared to the Droid.]
It’s received fairly steady Android updates, and now is one of only a few devices running Android 2.1 (including the HTC Incredible and Nexus One), so it’s pretty certain to keep getting updates in the future. This was one of the biggest problems with the G1 — even though it was once Android’s flagship device, the G1 was made before the “recommended” specs for running an Android device were fleshed out, and thus, not only is HTC not bothering to produce any more updates for it, it physically can’t receive them anyway, due to hardware limitations.
The entire phone, from top to bottom, is supposedly released under open source rules at https://opensource.motorola.com — while this doesn’t benefit me directly, as I don’t spend the time to make my own custom ROM’s and kernels, it will most assuredly help the hacking community in the future when and if Motorola does drop support for the Droid.
And finally, the price! It’s been out for six months and is now cheap! Ha ha! :P  I got the “professional” bundle (as you saw above), including a rapid car charger, car mount, and desk mount, for a wonderful price.
Well, there wasn’t much of an unboxing at all, to tell you the truth. The Droid was packaged in some of the smallest packaging I’ve ever seen — the phone was nearly the size of the box, and took up most of the space. Other than it, the battery, the tiny wall adapter for recharging, and a single mini-USB cable, that was it!
That’s one small difference between the Droid (and all newer phones, soon) and the G1 — the Droid uses the newer (thought still standard) “mini” USB cable, which is much smaller and flatter than the older “micro” cable. Make sense?
[It’s all because the EU decide a few years ago to make all manufacturers of cell phones in the EU market standardize to one type of cell phone recharger system — I have to admit, I like it. No longer will you need give different cell phone chargers for your entire family, if they’ve got five different types of phones — on will work. It reduces waste quite a bit.]
The battery door on the Droid was a bit of a pain to get off, but when I did, the battery snapped into place and I was well on my way to Android 2.1 goodness.
What were my impressions of the Moto Droid after my first week?
The Good? Well, number one, it’s definitely more compact than the G1. Even though it actually weights a few ounces more (probably because it’s a solid chunk of metal), it still feels lighter, and it’s definitely much, much thinner, even with a hardware keyboard. It feels solid in the hand, with a good degree of heft.
The battery lasts about as long as you’d think for a smartphone — nightly charging will become a ritual in your house. Still, not bad — like I’ve said before, I wish I had a laptop with a battery that lasted a full day.
The screen is… well, the screen is out of this world. The DPI is twice as high as most of the previous crop of LCD screens like the G1, and you can really tell — icons are incredibly clear and distinct, text is very easy to read, and pictures look amazing. Not as deep as an OLED screen like on the Incredible and the Nexus One, but pretty damn nice, nonetheless.
Software-wise? Well, one thing that I noticed right away when I needed to install my favorite Android applications is the speed at which they installed — fast as hell. On my G1, I could install one application at a time; it technically allowed me to install more, but I’d be damned if it didn’t almost freeze up when I tried to do that. On my Droid, I’m installing three or four apps at once.
The GPS lock-in is much quicker, too — 2-3 seconds instead of nearly 10, and the wifi lock-in, too.
The “multimedia dock” and car mount are also both very cool — somehow, the Droid “knows” that it’s docked in each (don’t ask me how, as even I don’t know), and loads up specific apps that respond to each; the “Car Home” app for the car mount, and the “Desk Clock” app for the multimedia dock. I’m glad I shelved out the extra money for the official Moto accessories, at least in this respect.
The Bad? Well, the home screen operations — paging left and right between app screens, launching the app tray — are kinda slow and jerky. I know, I know — a little thing, but still. When sat next to an Incredible or a Nexus One, you can really tell. Even with the Sense UI skin on top of the Incredible, the Incredible is still zippier.
Also — the lack of a trackball on the outside of the phone that you can access without opening the hardware keyboard has started to nag me, just a bit.
I like using the software keyboard to type a lot of text, and when I make a mistake and have to put the cursor back to the where it was, merely tapping on the screen can sometimes take a few tries to get the cursor exactly where you want it. With an external trackball, you could just roll it a bit and get the cursor exactly where you want it (I got quite used to doing this on the G1).
I like it. It’s a good successor to the G1, so much so that I almost wish they had called it the “G2.” As it was, Google, Verizon, and Motorola put a lot behind the marketing campaign of the original Droid, and it shows — “Droid” has now become a part of most people’s lexicon, insomuch as they at least know the word and know that it stands for a very nice phone (that’s not an iPhone).
I still need to get a nice case and screen protector for it, but all in all, it feels right at home.
OMG is this so much harder than it needs to be.
Picasa (or Google) offers nothing in the way of little blog widgets (unlike Flickr’s great support for everything), nor is there really any third-party support for this kind of thing out on the web.
I don’t understand why, since — at least to me — what Picasa offers for free is so much better than what Flickr offers, still, even to this day. :
Every third-party WordPress plugin I’ve tried either doesn’t work, doesn’t work right, or needs so much configuration on the server side — and I’m talking about editing raw PHP here (unacceptable) or creating farking CURL scripts for the server (why did you even release this plugin?).
Sadly enough, the BEST solution I could find for the problem of integrating Picasa was actually done in straight JavaScript (yay!), found here: http://www.bloggingtips.com/2009/03/23/picasa-widgets-and-plugins-for-your-blog/
Her code works great, works fast, requires almost no configuration (besides your Picasa username), and uses JQuery, so pretty much anyone can edit and customize it.
Which I did. ^_^ Though the code works, it doesn’t appear to always grab your latest photos from Picasa. (I’m guessing it has something to do with the “max-results” flag in the URL string — you have to restrict the number of photos that Picasa feeds up for you to get the latest.) I also made each photo be a link to the Picasa page where it’s at, as well as cleaning up the code a little.
There’s basically two parts:
First, put this code in a widget text block where you want it to be in your wordpress blog (this is also where you can edit the style):
<style> #picasaStream img {border: 1px solid #000; margin: 0 5px 5px 0;} </style> <div id="picasaStream"></div>
Second, put this code either right after the widget, or wherever you put your JavaScript (if you choose to put it in another place, like a footer):
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.0/jquery.min.js"></script> <script type="text/javascript"> /* **** Uncomment this line if you are using other JavaScript libraries **** (Prototype, Scriptaculous, etc.) */ // jQuery.noConflict(); jQuery(document).ready(function(){ /* **** Change your Picasaweb username here, **** as well as how many thumbnails you want to show */ var _userName = "captainskyhawk", _count = 6 /* **** Choose your thumbnail size here: **** "0" for small, "1" for medium, and "2" for large */ var _thumbnailSize = 0; /* **** Script Code **** No need to edit any further */ jQuery.getJSON("http://picasaweb.google.com/data/feed/api/user/" + _userName + "?kind=photo&thumbsize=72c&access=public&alt=json&max-results=" + _count + "&callback=?", function(data){ jQuery.each(data.feed.entry, function(index, pic) { jQuery('<a href="' + pic.link[1].href + '"><img src="' + pic.media$group.media$thumbnail[_thumbnailSize].url + '" alt="' + pic.summary.$t + '" /></a>') .appendTo("#picasaStream"); }); } ); }); </script>
Just change your name in the code from “captainskyhawk” (that’s me!), and it should work!
For years, our main gaming computer (which we call the “Titan”) would just not share with any other computers.
It couldn’t host multiplayer games.
It couldn’t share a printer.
It wouldn’t share files.
You couldn’t access multimedia of any sort over it.
I had absolutely no idea what the problem was — it was a very old Windows XP installation, probably four years or more, and had gone through Windows XP SP1, SP2, and SP3, so there’s no telling.
It might’ve been some service I turned off years ago, or (more than likely) an old remnant of Norton Antivirus (a horrible, horrible program) that refused to let go.
I noticed that my much newer gaming PC would work just fine, and that it was running the exact same services that the Titan was running, so I was stumped. You couldn’t even ping the Titan if you wanted to.
So, on a whim, I search for “cannot ping Windows XP computer” on Google, and found this:
Try this to reset TCP/IP in XP:
Click Start -> Run -> CMD
At the prompt type:
NETSH INT IP RESET C:IPRESET.TXT
via Help! Unable to ping machine on the network – Windows NT / 2000 / XP / 2003.
And it worked. I don’t know what it did, but it worked. I think it reset completely the way that TCP/IP worked on Windows, because when the Titan restarted, my IP settings were completely reset, but I could ping it. And it shared files. And it could host games (I think).
Either way, I’m happy!
I’ve been installing/reinstalling/testing a lot of browsers recently, so I thought I’d provide a little bit of data back to the programming community.
I tested on two different computers — my venerable Dell laptop and my largely MSI-powered gaming PC.
Some thoughts:
And now, the benchmark numbers, utilizing the SunSpider JavaScript benchmark (smaller numbers are better, all numbers in thousandths of a second):
Computer #1
Hardware:Â Dell Laptop, Pentium 4-M 2.6 GHz, 1.5GB DDR Ram
Software:Â Ubuntu 8.04 (x86)
Computer #2
Hardware:Â MSI Mainboard, Athlon X2 2.5GHz (Brisbane), 2GB DDR2 RAM
Software:Â Windows XP SP3 (x86)
Well, I got tired of being stuck with the version 2.4 of the GIMP (GNU Image Manipulation Program) that ships with Ubuntu 8.04. It’s old, it uses the old window system that I can’t stand anymore, and version 2.6 (the current version) fixes tons of more issues that it has.
However, you can’t just go to your package manager and add it — Ubuntu locks program versions when it ships (for example, the latest version of GIMP available to Ubuntu 8.04 users is 2.4). This is done for compatibility reasons — if version 2.4 of the GIMP works fine when Ubuntu 8.04 ships, then they lock those versions together. That way, it’s always guaranteed to work, no matter when Ubuntu is installed in the future.
However, there’re sites likes GetDeb.net which lets developers upload installer files of popular programs for Ubuntu, so that users of older versions of Ubuntu can install new programs.
So, I went to the GetDeb page for GIMP 2.6 and downloaded all the files you need to install GIMP 2.6 on Ubuntu 8.04:
Usually, in 99% of situations, you just download these files and install them, even on Ubuntu. However, on Ubuntu 8.04 with GIMP 2.6, there’s a bit of a problem — you have to force these files to install.
Now, you can do fancy command-line kung-fu if you want to, but you shouldn’t have to on Ubuntu, so I’ve included a file here for you:
Just save that file, put it along with the 5 files you downloaded from GetDeb.net into their own folder, and then run that file. (Make it executable in its properties, and then double-click on it).
And that’s it!
(I got the inspiration for that install file from this blog post here!)
I’ve always heard about the program called Synergy, but I’ve never used it, and that’s a damn shame.
Have a lot of computers side by side that you manage all at once? Tired of going from one keyboard and mouse, to another, even though the computers you’re working with are side by side?
Then download Synergy, configure it, and run it on all of your computers (Mac, Linux, and Windows).
And that’s it. Honestly. It’ll take you about 20 minutes and you’ll spend the next few hours wondering how you ever lived without it.
It treats all of your computers like one giant desktop — just move your mouse “off” of the side of your monitor towards your other computer, and your mouse will instantly reappear on that computer’s monitor. If you need to type something, you type it with the first computer’s monitor. Seriously.
Ah, a caveat — on Mac and Linux, the setup isn’t as streamlined and easy as it is on Linux, so there’s a program called QuickSynergy that can do it for you. If you’re using Ubuntu, it’s already in the repositories — just go to your “Add/Remove Applications” menu item, and install QuickSynergy from there.
Well, I started playing around with Conky yesterday — if you haven’t heard of it before, just know that it’s a neat little Linux program that runs in your background and uses very little resources that displays a very neat desktop overlay. (Like in the picture in the Lifehacker article.)
Now, some of the stock Conky scripts were more than adequate, but I had always wanted my laptop’s CPU temperature to be displayed as well, so I had to figure out a way to do that.
Now, if you’re somewhat familiar with tinkering in Linux, you’ve probably heard of the wonderful “lm_sensors” package — it’s a neat package for Linux that helps display lots of information about motherboard temps and whatnot. Unfortunately, due to most laptops “prorietary-ness,” lm_sensors does very little for you if you’re trying to get it to work on a laptop.
Now, I had heard of the “i8kutils” package for Linux — this was a package designed for Dell laptops in particular, to display and control fan and temperature information.
So, with that, I was off to work!
(Note — these instructions are mostly for Ubuntu/Debian installations, because that’s what I use.)
First, install the package “i8kutils” using your Linux computer’s package manager (Synaptic, if you’re using Ubuntu).
Second, add the module “i8k” to your “/etc/modules” file. (This will start the process at boottime.) Restart your laptop.
Third, you’ll have to create some Conky script files. I assume you’ve already had a bit of experience at least installing Conky and starting it up. If not, play around with the instructions in that Lifehacker article and come back here afterwards.
Now, I noticed that one of my conky script files was a file called “hddmonit.sh” which contained the text:
#!/bin/bash
echo “$(nc localhost 7634 | cut -d’|’ -f4)”
Now, using a little bit of deduction, I figured that this file used a command called “nc localhost 7634” to display a little bit of information, and then used pipe commands (the little “|” symbol) to further splice the info, extracting just the temperature of my laptop’s hard drive.
So, while “nc localhost 7634” outputted this:
|/dev/sda|ST980815A|43|C|
Using the command “(nc localhost 7634 | cut -d’|’ -f4” would output just “43”, which was the temperature of my hard drive.
(The “cut” command splices out specific text from a string it’s given, in this case the fourth (-f4) chunk of text seperated by a “|” chracter.)
Now, I learned that the “i8k” module, once loaded, could be accessed with the file at “/proc/i8k”, which just contains a string like:
1.0 A32 7GGGGGG 53 -22 1 -22 90300 -1 2
From this you can see various Dell-specific information, the important part being “53”, which was my current processor temp. (The items in the string are separated by spaces.)
So, I quickly made myself a new script file called “i8ktemps.sh” copying the contents of “hddmonit.sh” and changing them to:
#!/bin/bash
echo “$(head /proc/i8k | cut -d’ ‘ -f4)”
This file, when executed, will just output the fourth “chunk” in the file “/proc/i8k”, which as you remember is my current processor temp.
Now, I needed to edit my Conky configuration file, which is located in your home folder and is called “.conkyrc”.
Then I simply located the line:
${font weather:size=28}x ${font}HDD ${execi 1 ~/scripts/hddmonit.sh}C
Which displayed my hard drive temperature, and changed it to:
${font weather:size=28}x ${font}CPU ${execi 1 ~/scripts/i8ktemps.sh}C HDD ${execi 1 ~/scripts/hddmonit.sh}C
Which, when Conky was restarted, would display my hard drive temperature and my current processor temperature.
See? It’s not that hard to program this stuff! I did this all, both programming in the Linux “Bash” shell and coding in Conky’s personal configuration code, without any experience in either. I just looked at what was there, and changed it.
Relevant Links:
http://www.arachnoid.com/linux/shell_programming.html