2006-05-02

Kubuntu Dapper Beta 2

I thought that, on account of being an Evil Windows User(tm), I should try installing Linux again.

I picked Kubuntu, because it's supposed to be the friendliest distro for Evil Windows Users.. I decided to download the beta (yes, a review based on a beta! Shock!), seeing as how everyone seems to think it's great and stable and fine, etc.

My experience:

  1. The splash screen (screenshot from old version) doesn't support my USB keyboard, not so much of a problem, the default option was "Start Kubuntu", which was what I was after.
  2. The system hung, displaying:
    .
    Decompressing Linux...Done.
    Booting the kernel.
    
    When I say "hung", I mean that it made no further progress, and had no apparent disk activity for 5 minutes.

Great.


2006-04-27

Adobe and Acrobat Reader

As I mentioned before, Adobe's Acrobat Reader has issues with DEP.

At that point, I was running as Administrator, which I'm no-longer doing. (Try it, it really does work if you know what you're doing.. yeah, I know, that's the wrong way around, limited accounts should be for those who don't know what's going on).

Installers for some applications say things like "This installer must be run as administrator.", or "This may not work unless run as administrator.", it turns out that most of them are lying. The ones that won't attempt run can normally be attacked with great tools like Jared Breland's Universal Extractor.

Adobe, being the great company that they are, have decided to take a different approach. Running the Acrobat Reader (7.07) setup file as non-admin gives you the incredibly useful error message:

---------------------------
FEAD® 2.5 Optimizer©
---------------------------
Access is denied.

File: C:/Program Files/Adobe/Acrobat 7.0/Setup Files/RdrBig707/ENU

---------------------------
OK   
---------------------------

Good work, guys.

Even better, trying to unpack the setup file manually suggests that they've used a "modified" version of UPX (new version released recently, btw). I wonder where the (GPL) source for it is?

Note: RyanVM's alternate installer also (apparently) fails, but silently.

Update!

RyanVM's alternate installer, while not working by itself, seems to be in a format that WinRAR can extract. Opening up the archive gives a resonably sane directory structure, from which you can just extract the "reader" folder, and everything seemingly works fine... not sure what all of those other files are for, as they're clearly not required.


2006-04-16

TES Oblivion: Sutch

I was looking through the Bink video files (player) in the \Oblivion\Data\Video directory, and noticed something strange in CreditsMenu.bik...

Sutch?

Anyone who has played Oblivion will probably notice that Sutch doesn't exist in the game, and is certainly not where it's shown in this video.

Also, the name suggests that this video is shown from the main menu's "credits" option.. it isn't, the credits just scroll over the existing background ("Map loop.bik"), which seems to avoid Sutch's location.

My guess is that the city was planned and removed. I wonder if the credits video is shown at the end, or if it was an accident to include it?


2006-04-15

NMEA -> MapPoint 2004 and Google Earth.

I've been playing around with GPS recievers, and the first thing I wanted to do turned out to be the hardest. Just to run through what I did, just in case anyone else wants to go through the same steps without the hours of googling and guessing. The overal aim was to get (and save) the data from my HOLOX BT-321 GPS reciever (which speaks NMEA) in some visualisable form using my Orange SPV 550 (HTC Hurricane) .

  • Saving the data: Devbuzz' forums (thanks pdcira2) contain a modification of code given in Nick Gratton and Marshall Brian's book: 'Windows CE 3.0 Application Programming' to read and parse data from a COM port and write it to a file. This code required a bit of modificaiton to make it play nice with VS2005 and Smartphone 2003, my changes will be avaliable once I get my new site up, contact me if you're impatient.
  • Log file format: You should now have a file that contains a list of lines looking something like..
    5213.8312|N|00004.2204|E|
    
    As explained on gpsinformation.org, this represents the degrees (52) and minutes (13.8312) north (N), and the degrees (0) and minutes (4.2204) east (E).
  • Applications: In this form, this information is completely useless to applications like Microsoft MapPoint 2004. Although this is incredibly poorly documented, they require the latitude and longitude to be given in degrees, as a decimal, with positive for north and east.
  • Conversion: Once you know this, the conversion is pretty trivial. Assuming that all the points are N and E, you simply need to divide each part by 100, the divide the fractional part by 0.6, eg:
    // Quick and nasty conversion for N,E NMEA data to decimal degrees.
    <?
    function conv($i)
    {
            return round(floor($i) + ($i-floor($i))/0.6, 4);
    }

    foreach (file('foo.txt') as $line) { $out = ""; $t=explode('|N|', str_replace('|E|', '', trim($line))); $out.= conv($t[0]/100); $out.= ","; $out.= conv($t[1]/100); echo $out . "\n"; }

  • Importing: Now the conversion has been done, you have a file consiting of lines that look something like:
    52.2305,0.0703
    
    • For MapPoint you can now use the 'Import Data Wizard' (Ctrl+I) on this file, telling it that the first column is latitude, the second longitude. It'll give you a load of pushpins representing your dataset, hopefully at the correct places. The example I've been using happens to be the thrilling A428/M11 junction in Cambridge.
    • For Google Earth you need to do a little more processing. You can use GPS Visualizer's KML generator to do it for you, simply delete everything in the "Or paste your data here:" box, and add "latitude,longitude" followed by the contents of your file, eg:
      latitude,longitude
      52.2305,0.0703
      ...etc.
      
      This'll generate you a "kmz" file for download, poking it suggests that it's just a zipped "kml" file, rename it to .kml.zip, extract and have a poke. You'll notice that it's just a list of space-seperated long,lat,alt, with all the altitudes being 0, pretty easy to generate yourself if you want.

Hope that saves someone a few hours.


2006-03-16

Indexing Service / Google Desktop

It can't just be me, someone else must want a find tool that's:

  • simple - no checking the file-types, I don't want previews, I don't want to search inside the file.. I want to search based on the file name.
  • relatively fast - Google Desktop is fast, but it's faster than I can read, so it's irrelevant. Windows search is slow. To search my \SDK folder (4GB, 40k files, 4k folders) would take about 10 minutes.
  • outputs in a useful format - Google Desktop's search results are completely useless. You can't open the file with anything apart from the default editor. You can't move/copy the file. You can't even find out where the file is. Windows Search's results are perfect for this.
  • not whory - It should not be using/interrupting/intercepting disk access. Ever. Both Indexing Service and Google Search do this.
  • work straight off - Google Desktop just does sweet FA when you install it.. and waiting for it to do something (by doing other things at the computer) makes it continue to do sweet FA. It should actually /do/ the search instead of moaning about the index being empty. It should be able to use the currently running search in it's index, anyway.

And, to completely contradict myself:

  • Some files' file names should be completely disregarded over other information, if it's available. For example: Music with metadata (ogg/vorbis, ogg/flac, id3/mp3) should disregard the file-system completely.

I plan to write this at some point, if you feel like doing so instead, feel free. If you don't release the source, I will write something better, I promise. :)


2006-02-28

Phantom phone-calls

Phantom calls never used to be a problem for me.. adopting a simple "if you don't recognise the number, don't answer it" policy works fine.

This policy, however, is starting to break-down now I've started putting my mobile number on important documents.. things like CVs, not the kind of phone-call you want to miss.

Assuming you're not insistent on answering every phone call, you can just silence it and allow it to ring out, leaving you with the caller's number. You now have a (software-scale) long time to decide whether you want to call this person back.

For instance, I got a call from 01792474700, Google finds a post on 3g's forum suggesting that they're trying to sell me a new phone.

Assuming that I was sitting at a computer with a reasonable speed internet connection I could have found that out while the phone was ringing, and decided not to answer it... a strong negative, attained quickly using only the internet, something you could possibly train a phone to do.

This is, unfortunately, not quite as obvious as it sounds.. it took me two google searches (second attempt was with a space) to find this result, and I'd never heard of 3g's forums before, I have no idea if it's a valid source, if it's a company or an individual with their contact details on the page, etc. You'd have to train your app to work out what context the message was in. This is feasible on PCs, but maybe not in java on current mobile phone processing power in ~3 seconds.

The majority of the calls you receive are unlikely to be strong negatives (when using google as your source, at least), strong positives are unlikely, too. The chance of being rung from the main company reception when being contacted about a job offer is relatively low, it's more likely that you'll be rung from someone's desk, which'll probably have a unique outside line.

The solution? As always, the solution is over-engineering.

Someone with a small volume of technical skill writes a small java app (and possibly some platform specific (ie. windows mobile) variants) that looks at your 'missed calls', ignores all the numbers in your address book and asks you about the numbers. The reply would be something in the range of Private, Unknown, Legitimate and Spam.

  • Private: Things only of interest to me. In theory these should be in your address book anyway.
  • Unknown: Numbers that you don't recognise and can't otherwise determine the purpose of, and that you don't feel like chasing up (ie. ringing back).
  • Legitimate: Numbers that you'd never ring, but rang you at your request/with your permission. ie. ring-backs.
  • Spam: Numbers you know to be malicious.

To answer with either of the final two options you'd need to give a reason/reference/name.

These details are instantly shared with everyone. When querying the service you'd be given the total votes for each category for the given number.

Assuming you require users to have an account to submit, and this account is locked to a uk-mobile-number, the system is relatively hard to abuse.

The technology to do this is available now, the majority of current phones have java and GPRS (the cost would be minimal, the actual amount of data transfered is tiny). As mentioned above, platform-specific versions could have additional features (ie. the windows mobile version adding the votes to the "phone ringing" screen).

If anyone wants to implement this.. be my guest, I'm just too busy right now. If you can think of a way to get any commercial gain from it, good luck to you, at least you'll spend some of the returns advertising the service, it grows in power as it's user-count goes up.


« Prev - Next »