Wednesday, October 18, 2006
Friday, August 18, 2006
Winternals sponsors Sysinternals, a collection of utilities for Windows techies that provide you with lots of ways of inspecting the behind-the-scenes workings of your Windows PC. Whenever I get that sickly feeling that someone's watching (you know, when the harddisk spins into a frenzy for no apparent reason, or when your firewall pops up and asks permission for an unknown process) I use the process explorer and tcpview to see if there's anything strange going on. You need a better than average knowledge of the operating system to be able to spot dodgy processes, but you by no means need to be a win32 kernel hacker (which I definitely am not!).
I've also used tools from Sysinternals to see what files are still in use by my removable devices when they won't eject. There's nothing worse than realising you've a train to catch in 2 minutes and then not being able to remove your removable disk because Windows won't let go of it, without telling you why!
So, from Mark's blog it sounds like Microsoft intend to carry on the good work and even open up the licensing. He also says:
Comprehensive performance instrumentation of everything from disk I/Os to context switches and hard page faults is active on all Vista builds deployed internally and end-users can simply open a desktop shortcut to submit a trace of any sluggish system behavior they experience.
If this instrumentation stays in the commercial release it will be such a big step forward. How many times have you sat there staring at the System Idle Process running at 99% CPU and thinking "now that's not really the case, is it Mrs XP!". So fingers crossed they keep this in and let us keep an eye on our own PCs. Or failing that, hopefully they'll forget to take it out in the rush to get the product out of the door!
Monday, July 24, 2006
There really does seem to be an operating system at work behind the scenes though. All these applications are available to you:
Flickr RSS feed
Rich Text Editor
YouTube RSS Feed
They all appear in Windows on your desktop and you can move them around, minimize, maximize and close them. There's a task bar of sorts and even the equivalent of Windows task manager. "Wait a minute... did you say Shell Prompt?" I hear you cry!
There is a limited functionality shell, but typing help gives the following:
* clear - clear shell output
* debug (module) - register a module (e.g. uos.system.network) for debug tracing
* exit - get the hell out of dodge
* help - I need somebody
* props (object) [verbose] - get a list of properties for a JS object
Manage apps and processes
* kill (process_id) - kill a process with that id
* ps - get a list of running processes
* run (app_id) (argsObj) - run an app by that numerical id
Deal with YouFS file system
* cd (dir) - change current working directory
* chmod (-R) (+/-rw) (user) (file) - change permissions for a file or directory
* cp (file) (file) - copy file or directory (if supported)
* fdl (file) - download a file
* fedit (file) - edit a text file
* fupl - upload files
* ls - get list of files and directories in current directory
* mkdir (dir) - make a directory
* mv (file) (file) - move file or directory (if supported)
* quota (service) - get disk and bandwidth quota usage for a service
* rm (file) - delete a file or directory (recursively)
* stat (file) - get metadata for a file or directory
Deal with YouOS server data structures (like hashtables)
* ds [tag1 tag2 tag3] - get list of YouOS data structures, optionally filtered by tags
* dt [data_id] - get list of all tags in namespace, or for just one data_id
* dtag (data_id) (tag1) [tag2 tag3] - tag a datastructure with given tags
* duntag (data_id) (tag1) [tag2 tag3] - remove given tags on a datastructure
There's a developer portal here where you'll find lots of apps already, including Sonic The Hedgehog! Well it's only a Flash game really, but anything with Sonic impresses me :-)
It uses Amazon S3 for storage and I believe if you're already a user you can access your S3 content from YouOS.
Absolutely unbelievable work! I dunno, I'm having trouble keeping up with web technologies these days. I think I'd better have a lie down.
Tuesday, July 04, 2006
I landed on this posting on pronunciation of SQL and related acronymns from the Oracle WTF blog (ridiculing people who deserve it - shame they don't name names!). I happen to agree with the original poster and just "use whatever is easier on my tongue," a philosophy that would stand you in good stead in so many other situations too.
I also tend to adjust my pronunciation in conversation when someone else has used the word, either to the same as them if I like them or to the opposite if they annoy me. So if you start talking about Linn-ux and I say Lie-nux you'd better mind yourself ;-)
Anyway I liked the stylised representation of page views at the bottom of the discussion so much I'll probably steal it:
If you want to do the same, please copy the idea and not the implementation. The "pulse" is represented by series of images, one for each day (or whatever period it's broken into). The HTML to make this is 10k and puts the burden of rendering the graph onto each client browser. It's a waste of bandwidth and indeed global processing power! Come on guys, save the planet by generating the image periodically on the server and serving it statically (my PNG above was only 6k including the heading until I had to squish it to fit on this page).
Monday, June 12, 2006
My home PC was compromised again this weekend. I leave it on all day so I can access it from work, so I'm more exposed than your average home user. Of course it's all my own fault for running XP with no proper security. I'm not completely open though: I have Zone Alarm which is pretty good for a free product, but doesn't have the level of control that I need. What I want is a totally separate firewall machine that's harder than Vinnie Jones in carbonite. I can do this pretty easily on Linux without installed any newfandangled software, except that my modem is not supported. Some genius has got it working by fiddling around with Makefiles and building the driver from the source, but following his instructions left me facing a wall. Not a brick wall, but one that would take a whole weekend and lots of Red Bull to punch through. I don't have that kind of free time these days.
So for a while I was stuck with this horrible nagware that hijacked Internet Explorer and launched lots of pop-ups at regular intervals. Luckily I took an image of the whole disk last time I did a re-install using SelfImage [oh dear - site is down]. It's also handy that I have 2 disks in my PC. Using the uninfected one I can boot into a separate install of XP and use SelfImage to write to rollback the infected disk to a safe state (by virtue of the fact that I took an image after installing XP and my fave apps). Had I not had the spare disk to boot off, I would have started looking at bootable Windows CDs like this one.
Tip for if you do have to use SelfImage to restore a disk: I had to disable it in the Device Manager first (requires restart). This hides it completely, but then you enable it again and are able to write to it. Otherwise SelfImage complains that it can't access it.
So I'm off to investigate ADSL modem support in White Box, Ubuntu and SuSE and then I'm just going to buy whatever works.
By the way "newfandangled" is Claire's word. I like it.
Monday, May 29, 2006
The Beeb is running a story on Amnesty's new website irrepressible.info, which aims to "highlight abuses of rights the net is used for, and push for the release of those jailed for speaking out online."
I've no problem with that. Without the free flow of information we wouldn't hear about situations like Guantanamo. What I do have a problem with is Amnesty assuming my ignorance and displaying a definition of "irrepressible" at the top of the page. Duh-huh! I can barely repress my mild offence.
Tuesday, May 16, 2006
Why is it that the database always falls over when you're trying something new
for the first time? Today I was working with OpenACS on a job where we want
to relate people to each other. OpenACS has a few tables for handling
relationships and relationship types, so I had created a new type in SQL*Plus
and was going into the admin pages to make sure the type was visible.
Server error. The web server had lost its database connection, which of
course must be some other idiot developer on the system. The web server
can't do much without the database, so I let the developers know and
Now, back to my admin page...
Server error. Hmmm. I really should have checked the error log. Turns
out we're getting an ORA-01114 IO error writing block to file string (block # string),
which no developer ever wants to see because it means Mr. Database is
having an off-day. So I went off and restarted the web server again,
and just to make sure it was a pure Oracle error, I found the query
and ran it from Toad.
ORA-01114. Fair enough - it looks like Oracle needs a little TLC. Looking
at the temp tablespace using Enterprise Manager (a tool for quiche eaters
if ever there was one) I see that it has grown to 8Gb and is 99.99% full.
The tablespace is set to autoextend and hasn't reached its maximum size,
so maybe something is amiss with the datafile? The temp dbf file is on
a partition mounted at /data1.
Logged in to the Linux box where Oracle lives, a df -h tells me /data1 is full.
Here we have a few options:
- Add another datafile to the temporary tablespace
- Drop the temporary tablespace and recreate it a lot smaller
- Free up some disk space in /data1
The first option is easy wasteful, since the 8Gb of space currently being
used is most likely stale. It may or may not be cleared out when Oracle
is restarted, but unless naughty people have been deliberately putting
objects into the temp tablespace, you can bet your granny you could
live without it being quite so big.
The second option is the proper thing to do. Unfortunately that database
is in use by lots of people and dropping a big tablespace can take a long
time. While these people would love the excuse for an extended tea break,
the PHBs who pay their and my wages wouldn't!
Luckily for me there were a few CD images lying around in /data1 and
deleting these allowed me to free up 3Gb. As soon as I did Mr. Oracle
immediately perked up and resumed normal service.
Of course when I got into my admin page my relationship type is still
missing, most probably because I thought I could get away with leaving
out a trigger... but don't get me started on triggers!!
Friday, May 05, 2006
I'm on my 3rd iPod now, the 60Gb photo version. My second one stopped talking to my PC a long time ago and I was stuck listening to the same playlist for so long I stopped using it altogether. I can't believe how glad I am to have mobile tunes again!
Plus, I found a little app for Windows that synchronises the calendar on the iPod with my Google calendar, which coincidentally I've recently started using in anger. It could be more plug-and-play-like, but it works.
So I'm looking forward to a weekend of CD ripping!
Tuesday, April 04, 2006
On a much lighter note, Guy Browning's "Never Push When It Says Pull" gives you advice on the more mundane tasks we face, such as ironing, hiring a car, and using a lift (if you don't know what a lift is, see here):
Calling a lift is easy. Simply press the button and wait.
And then press the button again. Many lifts work on
the pressure you exert on the call button, so hitting it a
hundred times will make it arrive a lot faster. Before you
get into the lift, it’s as well to check whether it’s going up
or down. There’s nothing more embarrassing than
saying confidently to a packed lift ‘Ground floor please’
and then feeling the lift rocketing upwards.
Monday, April 03, 2006
select 'update users set password = '''||u.password||''', salt = '''||u.salt||''' where user_id = (select party_id from parties where party_id ='||p.party_id||');'
where u.user_id = p.party_id
and p.email = 'email@example.com';
You can run the select on ACSDEV and paste into an ACSTEST SQL*Plus session, or in my case ACSTEST has access to ACSDEV anyway, hence the "acsdev." in front of the table names.
Saturday, March 11, 2006
Wednesday, March 01, 2006
I mentioned before in my old blog that you could enable local links for all pages in Firefox 1.0.x (can't remember the exact version they put it into). This was all well and good, but obviously caused sleepless nights for a few security conscious nerds because in Firefox 1.5 you can do it on a site-by-site basis (I'll sleep a lot easier now).
Go to the URL about:config.
You can add the following three preferences using right click then selecting New -> String.
You'll have to do this for each preference below:
Firefox doesn't show these values on the about:config page even after a restart,
but they do work. You can confirm they have been added by looking at
your prefs.js file. On Windows 2000/XP this is in
Documents and Settings\youruser\Application Data\Mozilla\Firefox\Profiles\randomstring.default\prefs.js.
Enter multiple URLs by separating them with a space. For more info including other versions, see Mozillazine.
Monday, February 20, 2006
1) it comes with all kinds of IBM tools that aren't part of a vanilla Windows install and would probably be hassle to reinstall, especially the recovery stuff. Maybe the IBM CD takes care of this (I'd love to hear from you if you know)
2) it's a day-to-day tool that I can't afford to be down for a week while I reconfigure it
3) I'm getting too old for this reformatting lark anyway...
Ahhh, back in the day I'd think nothing of spending a weekend downloading drivers, reading HOWTOs, playing at BOFH with a user base of one. These days though, what with girlfriends, home improvements and business ventures, the nerdy stuff hardly gets a look in. Well, I only have the one girlfriend and everyone who knows me knows the 2nd one is a downright lie, but just keeping up with e-mail correspondence and bug fixes seems to override more fun tasks such as keeping up with the latest Linux distro (err, Ubuntu has a nice homepage - let's try that one!).
Anyway, the little black box from Big Blue is doing exactly what I hoped it would for me. Tiny enough to carry it and its PSU around without noticing while still having the luxury of a decent sized keyboard for those super-fast in-the-zone coding moments (not like those stupid Vaoi yokes). Battery life is adequate at 1hr30, but by no means the 3 hours I'm sure I read about when I did my research. Performance isn't exactly lightening fast either, which you notice when you startup from cold or hibernation (I'm sure mine has 4 fingerprints drummed into the corner).
Performance and battery life aren't my key concerns though, since I just want to do a bit of programming on the train between home and the office. At least the estimated time left in the battery is accurate, unlike the Dell I had previously that went from 3 hours to 10 mins in less than an hour. Bluetooth works with my phone (don't get me started on that piece of junk), wireless works with the office and client networks. Both of these, a modem and 1000Mbit Ethernet are built in so I don't have to worry about remembering/losing dongles. Yes - 1000Mbit on a baby laptop - those IBM guys are nuts.
Build quality seems good and sturdy, although there's a piece of plastic on the top which is either a grip or an antenna that has recently taken to stabbing me in the thumb when I undo the latch that keeps it closed. I can live with that as long as the screen doesn't start doing twisty tablet PC impressions that it was never designed for (yes, the Dell did that too and earned itself a lifetime downloading access logs as punishment).
Multimedia centre the X40 definitely is not. Ultra portable, durable and functional it is, and I don't see me changing it anytime in the next 3 years. If you're a travelling geek I'd definitely recommend one. If you're worried about the high price, just forego/trade in the iPod and use your X40 as an MP3 player! (I mentioned the size didn't I? Good).
Wednesday, February 15, 2006
- If being on blogger exposes me to a wider audience
- If I prefer the funky interface to FTPing static HTML
I also wanted to reserve my usual username as I've done with other up and coming trendy services such as Skype, Flickr and Eventful (aka EVDB).
I wish we'd get our act together and settle on a secure single login that can be shared across websites. Like Microsoft Passport (has anyone implemented this using non-MS tools e.g. PHP?). Google have their own user authentication which is shared across Gmail, groups, alerts, Froogle, Orkut and their personalizable home page. Not sure I want any single sign-on system to be based in the USA though, lest dubya spies on me!