tag:blogger.com,1999:blog-24091235145712740532024-03-22T05:01:14.965+00:00$BLOGNAME... because your mind just won't stop waiting for that variable to be expandedJames Broadheadhttp://www.blogger.com/profile/15848613038479545709noreply@blogger.comBlogger12125tag:blogger.com,1999:blog-2409123514571274053.post-10796088910439363522014-02-15T14:30:00.001+00:002014-02-15T14:31:28.975+00:00Cyanogenmod 11 (KitKat) on a Samsung Galaxy S2 i9100Getting an Android phone running CM with root and a sim unlock still seems to be an exercise in trawling out-of-date forum posts and downloading a variety of tools, kernels and ClockworkMod builds until you hit on a good combination and can actually get into CWM. After that, installs for me have always been really simple. <br />
<br />
So; here's the magic combination that worked for me today; resulting in an unlocked Cyanogenmod Kitkat install. Generally, I was following the <a href="http://wiki.cyanogenmod.org/w/Install_CM_for_i9100">Cyanogenmod guide for the device</a>, but relied on various forum posts and <a href="http://www.ibtimes.co.uk/galaxys2-i9100-root-android412-jellybean-install-clockworkmod-445008">some articles on ibtimes.co.uk</a> to get there in the end.<br />
<br />
<ul>
<li>ODIN v.3.0.7. </li>
<ul>
<li>Heimdall repeatedly failed for me, and guides suggesting ODIN v.1.8.5 are out of date. </li>
</ul>
<li>GT-I9100_JB_ClockworkMod-Recovery_6.0.2.9.tar </li>
<ul>
<li>Installed under 'PDA' in ODIN, above. </li>
<li>This build of CWM can't actually install Kitkat, resulting in "set_metadata_recursive: some changes failed" caused by a change in the image format since JellyBean. <a href="https://stackoverflow.com/questions/19860479/set-metadata-recursive-failing-on-android-install">Some info here.</a> Still, you need it to bootstrap the CWM upgrade below.</li>
<li>Unfortunately, this seems to have broken mass storage support on the device, which made getting the next few zip files onto the SD card a little tricky for me. If this happens to you, install the Android dev tools, and use `adb push`. </li>
</ul>
<li>CWM-KitKatCompatible-i9100.zip, </li>
<ul>
<li>This contains a build of CWM 6.0.4.5, which can actually install Kitkat. </li>
<li>Install this from its zip in CWM, then reboot. Check the version of CWM at the top to make sure that it succeeded.</li>
</ul>
<li>UPDATE-SuperSU-v1.25.zip</li>
<ul>
<li>installed via zip from CWM </li>
</ul>
<li>cm-11-20140215-NIGHTLY-i9100.zip</li>
<ul>
<li><a href="https://download.cyanogenmod.org/?device=i9100">Just get the latest from CM</a></li>
</ul>
<li>gapps-kk-20140105-signed.zip</li>
<ul>
<li><a href="http://wiki.cyanogenmod.org/w/Google_Apps">from the CM wiki</a></li>
</ul>
<li><a href="https://play.google.com/store/apps/details?id=eu.chainfire.sgs2simunlockcode">Galaxy S2 SIM Unlock</a></li>
<ul>
<li>from the Play Store after you've rebooted into CM</li>
</ul>
</ul>
<br />
<br />
As a final note, I did install the jeboo_kernel_i9100_v1-2a.tar early in the process, which may have helped me get into ClockworkMod later on. I'm not 100% on whether it's necessary or not.<br />
<div>
<br /></div>
<div>
<br /></div>
<div>
<ul>
</ul>
</div>
James Broadheadhttp://www.blogger.com/profile/15848613038479545709noreply@blogger.com1tag:blogger.com,1999:blog-2409123514571274053.post-85178219367092863722012-10-27T16:31:00.001+01:002012-10-27T16:45:23.658+01:00novacom in GentooSo the screen of the Palm Pre in my house recently cracked, rendering it unusable. I dusted off my <b>dev-embedded/palm-novacom</b> ebuild to do a device wipe before discarding it.
<p>
What I discovered was that in the year or so that has passed since the last time I used it, it had stopped working.
<p>
The problem turned out to be a libusb compatibility problem -- installing <b>dev-libs/libusb-0.1.12-r7</b> did the trick, and the phone is now wiping itself quite satisfactorily.
<p>
It's a dead technology, and I have no more devices which need it, so I'm afraid that I won't be updating the ebuild any time soon. Still, I hope that this tiny post may have been of use to someone out there. James Broadheadhttp://www.blogger.com/profile/15848613038479545709noreply@blogger.com0tag:blogger.com,1999:blog-2409123514571274053.post-69875629749099433622012-03-30T17:35:00.001+01:002012-03-30T17:35:20.630+01:00Adobe Flash in Ubuntu - 2012 editionNow, I don't use Ubuntu very much. I have too many bad experiences with upgrades, and I've come to loathe apt-get. Still, there are a growing number of machines in my extended family which now run Ubuntu, either because I use them occasionally myself, or because it's easier to maintain at a distance than Windows (and harder to completely break through casual web-browsing!)<br />
<br />
What I'm finding though, is that an average daily update of an Ubuntu machine is distressingly likely to break my (non-technical) users' ability to browse the web. I use Gentoo, and so I'm used to having to do a bit of work myself for major upgrades, but Ubuntu promises more than that -- it promises to bring Linux within the grasp of the average user -- and it fails. And where if fails is usually related to the deliberate separation of packages between those which agree with hardcore Free Software ideology, and those which don't. Canonical are forced to supply some "non-free" software, just to supply an environment which can support the "non-free" internet.<br />
<br />
Coupled with this is apt's tendency to "update" config files without user input, something which is anathema to someone used to portage. If it always worked, then that would be fine ... but nothing is that reliable. <br />
<br />
Case-in-point is the wrestling I had to do today to get a working version of the Adobe Flash plugin onto K's laptop. Some weeks ago, websites began reporting that the installed flash version was out of date, and linking on to the Adobe site for a manual installer. I checked with apt, and it reported that <b>adobe-flashplugin</b> was indeed at the latest version. The library was sitting at <i>/usr/lib/adobe-flashplugin/libflashplayer.so</i>, and had been replaced relatively recently. Some <b>locate</b>-use later, I was relatively reassured that the manual installer hadn't been run at some point, and that there wasn't some other version of libflashplayer.so sitting around somewhere in a linux-version of dll-hell. <br />
<br />
So what was happening? I ran firefox through <b>strace</b>, to make sure that it was loading the library, and lo and behold, it was using files in <i>/etc/alternatives</i> instead. <br />
<br />
<pre class="brush: bash">$ strace -s trace=file firefox &> log &
$ grep -i flash log </pre>
<br />
After some man-page and googling, I found <a href="http://superuser.com/questions/35275/ubuntus-etc-alternatives-mechanism">this</a> extremely unhelpful SuperUser question, and some indications that <a href="http://superuser.com/questions/76118/e-the-package-adobe-flashplugin-needs-to-be-reinstalled-but-i-cant-find-an-ar">I wasn't alone</a>.<br />
<br />
So now, armed with the <b>update-alternatives</b> command, with it's completely unhelpful <i>-h</i> output, I eventually got a list of the flash-related "alternatives" which the system was using. <br />
<br />
<pre class="brush: bash">$ update-alternatives --get-selections | grep -i flash </pre>
<br />
That got me a list of 5 "alternatives", and one immediately caught my eye -- lib<b>gnash</b>player.so. I've no idea when, but at some point the machine had been instructed to switch it's flash player from Adobe's to the GNU replacement... only it's value as a drop-in replacement is questionable at best. I've a long history with flash-on-linux (strange as it sounds, it's gotten better and better), and I'd love a working open-source implementation. But gnash just isn't there yet. In my case, the main website that K was using was Channel 4's streaming service, <a href="http://4od.co.uk">4od.co.uk</a>, which wasn't even attempting to stream video, but failing on a version-number check. More on that later. <br />
<br />
So armed with this info, I gleefully uninstalled gnash, expecting apt- to work its magic. Nope, it turns out, it just left a broken symlink in /etc/alternatives. Ubuntu whim has renamed the package for flash any number of times, and guides were recommending:<br />
<ul>
<li>flashplugin-nonfree <i>(seems to have gone out of favour, except that flashplugin-nonfree-extrasound is still around)</i></li>
<li>flashplugin-installer <i>(quite why this name, I've no idea</i></li>
<li>adobe-flashplugin <i>(Probably today's nom-de-jour)</i></li>
</ul>
<br />
Installing flashplugin-installer ended up removing about 5 flash-related packages, and installed the same version of the flash library as adobe-flashplugin. In the end, I removed that again, and stuck with adobe-flashplugin. Quite what their naming scheme is is beyond me, but preserving both in the repository doesn't make much sense to me. Oh, and you might notice that the <a href="https://help.ubuntu.com/community/RestrictedFormats/Flash">documentation</a> relating to all of this is completely out of date.<br />
<br />
Another check of <b>update-alternatives</b> showed only adobe libraries, and a check of 4od (thankfully) played some video. So until the next time gnash gets pulled in, and overwrites all my settings, everything's working. Fantastic. Now time to file a bug suggesting that gnash always present it's version as whatever the latest version of adobe flash happens to be.<br />James Broadheadhttp://www.blogger.com/profile/15848613038479545709noreply@blogger.com0tag:blogger.com,1999:blog-2409123514571274053.post-51869856732553464782012-03-12T15:10:00.000+00:002012-03-12T15:11:44.151+00:00ComicCheck - Extension checker for cbr and cbz files<br />
Having recently moved city, I left behind all of my dead-tree copies of books and comics/manga. I'm working around it with my old-ish Sony Reader and an ipad1 I won. I did a quick write-up of <a href="http://wiki.gentoo.org/wiki/Apple_iPod,_iPad,_iPhone">using the ipad in gentoo</a> on the new wiki, but if you've a recent version of iOS, you'll need to build from version control (ebuilds to do this are available <a href="http://code.google.com/p/jamesbroadhead/#The_jamesbroadhead_Gentoo_Portage_Overlay">from my overlay</a>).<br />
<br />
<center><img src="https://s3-eu-west-1.amazonaws.com/dollarblogname/cloudreaders-orig-175x175.png" /> </center><br />
I use <a href="http://satoshi.blogs.com/uie/">CloudReaders</a> to read comics, as it's nice and fast, even for images-only PDFs. The price (free) is right too! I use it both for textbooks and for comics. The only problems that I've come across is that it gets slow on launch if there are many files for it to parse through and that there's no way to remove labels from it's dictionary (even if there are no labelled files left). I'm also stuck with a blank label, which I now can't get rid of. Aside from that, it does the job perfectly well, with good responsiveness, zooming and auto-scaling. It's actually the best software PDF/comic reader I've ever used (although the tablet form factor is a major plus for it).<br />
<br />
<img src="https://s3-eu-west-1.amazonaws.com/dollarblogname/1293520P1950-35933.jpg" />
<img src="https://s3-eu-west-1.amazonaws.com/dollarblogname/1293520P1V0-260H.jpg" />
<br />
There are two problems that I've encountered using it, which are only somewhat its fault;<br />
<ul>
<li>It uses the archive-order for zip and rar files, not the sorted-order</li>
<li>It relies on file extension, and many cbr and cbz files have an incorrect extension. (<b>c</b>omic<b>b</b>ook-<b>r</b>ar, and <b>c</b>omic<b>b</b>ook-<b>z</b>ip, but you probably knew that)</li>
</ul>
<br />
Since realising that a cbr should be a cbz at the time that I try to read one, and with no way to rename the files on-the-go, I wrote a script to check comics and rename them if it detects that they're not open-able with the appropriate unarchiver. Note that it depends entirely on the stdout from app-arch/unrar and app-arch/unzip as they exist today, so it may well fail in the future. Using EXIT_CODES would be nicer, and I no longer recall why I didn't; perhaps unrar didn't feel like co-operating. The script doesn't overwrite, and has the endearing property of renaming completely broken files every time (so keep an eye out on it's output).<br />
<br />
Since the people packing these archives don't seem to be aware that archives have internal order that isn't lexical, sometimes you get files that have the same order as whatever the directory entries happened to be, and CloudReaders doesn't sort the extracted files before rendering them. I might patch the script to re-pack the archives in future, depending on how prevalent this is.<br />
<br />
Oh, and the usual security caveats apply (although what you're doing managing comics on your ipad on a secure server is entirely your business... <a href="https://bugs.gentoo.org/show_bug.cgi?id=399409">see this</a> for a security flaw in usbmuxd which would allow someone with a specially-rigged iPad to run arbitrary code)
<br />
<br />
Available to view through <a href="http://code.google.com/p/jamesbroadhead/source/browse/scripts/comiccheck">through google code</a> or below.<br />
<br />
Normal Operation:<br />
<pre class="brush: bash">$ls
bar.cbz foo.cbr
# foo.cbr is really a zip, bar.cbz is really a rar
$ comiccheck
!cbr foo.cbr
!cbz bar.cbz
$ls
bar.cbr foo.cbz
$ comiccheck
$
</pre>
<br />
<pre class="brush: bash">#!/bin/bash
# swap_type FROM TO (eg. swap_type cbr cbz)
swap_type() {
FAILTXT=""
BIFS=${IFS}
IFS=""
if [ ${1,,} == cbr ] ; then
TESTSTART="unrar l "
TESTEND=" | grep -i 'is not'"
elif [ ${1,,} == cbz ] ; then
TESTSTART="unzip -l "
TESTEND=" 2>&1 | grep 'cannot find zipfile'"
else
echo "I don't know that type!"
return
fi
for i in *${1,,} *${1^^} ; do
TEST="${TESTSTART} \"${i}\" ${TESTEND}"
FAILTXT=$(eval ${TEST})
# if not zero length, echo, try as zip, mv to cbz
if ! [ -z "$FAILTXT" ] ; then
echo "!${1,,}: ${i}"
toname="${i/%$1/${2,,}}"
if ! [ -e "${toname}" ] ; then
mv "$i" "${toname}"
else
echo "${i} is not a ${1,,}, but not overwriting ${toname}"
fi
fi
FAILTXT=""
done
IFS=${BIFS}
}
swap_type cbr cbz
swap_type cbz cbr</pre>
<br />
As usual, comments, patches are welcome.James Broadheadhttp://www.blogger.com/profile/15848613038479545709noreply@blogger.com0tag:blogger.com,1999:blog-2409123514571274053.post-43214341018939227102012-01-27T18:54:00.000+00:002012-01-27T18:55:44.896+00:00Overlay Update - XBMC Beta Testers needed!<p>Perhaps it's a little odd to be writing an overlay update without ever having written about it before, but that's where we are today. In any event, I've just updated the list of packages in my overlay, and thought that it's about time to write about it and to make a call for testers.</p>
<p>My Gentoo Overlay is unimaginatively entitled 'jamesbroadhead', is hosted on overlays.gentoo.org and is accessible through layman (or paludis, if that's your kind of thing). I set it up as a holding ground for ebuilds that weren't quite ready for the <a href="http://overlays.gentoo.org/proj/sunrise/wiki">sunrise</a> <a href="http://overlays.gentoo.org/proj/sunrise/wiki/HowToCommit">commit process</a>, or which were versions of packages <i>in portage</i>, and so ineligible for Sunrise. I've had mixed success pushing packages to the main tree - my <a href="https://bugs.gentoo.org/show_bug.cgi?id=167341">ebuilds for Descent</a> (the awesome '90s game) have been gathering dust for quite a while. </p>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvR7ZoczB6MeW5V5f6bgb8RBmyTH0yECn9UFbTML5y35K0gk271YHI29C3wg50kQNVkLRyJbCbKNn63qNV4eZf_wpHKV5yv2A1Wb4wtUIdqtHIxNuPJTO4bYIKkomTNmZ3HTXybLpDr6k/s1600/d2xr-scrn33.jpg" imageanchor="1" style="margin-left:1em; margin-right:1em"><img border="0" height="300" width="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvR7ZoczB6MeW5V5f6bgb8RBmyTH0yECn9UFbTML5y35K0gk271YHI29C3wg50kQNVkLRyJbCbKNn63qNV4eZf_wpHKV5yv2A1Wb4wtUIdqtHIxNuPJTO4bYIKkomTNmZ3HTXybLpDr6k/s400/d2xr-scrn33.jpg" /></a><p><i>Obligatory Descent screenshot</i></p></div>
<p>The contents of the overlay, and a bug tracker for the ebuilds in it are available on <a href="http://code.google.com/p/jamesbroadhead/">my google code page</a>, and gitweb for the overlay is <a href="http://git.overlays.gentoo.org/gitweb/?p=user/jamesbroadhead.git;a=shortlog;h=HEAD">here</a>.
<p>So why would you add the overlay? Well, the main package I regularly bump in sunrise is <a href="code.google.com/p/gogglesmm">media-sound/gogglesmm</a> - a very lightweight music player. It does two things rather well - play music, and start-up incredibly fast. If you want the latest version of that, or if you are having problems with the in-sunrise version, give that a try. I've had to patch the ebuilds for the fox toolkit to push for the unmasking of the x11-libs/fox:1.7 SLOT, including getting the SLOTting to work properly, so the version in Sunrise is a little out of date <a href="https://bugs.gentoo.org/show_bug.cgi?id=376239">until those changes go live</a>. Please test my overlay version!</p>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTqtyvx2lwCYTgG5szfWO2hrsAT-Ypzq-hMscmVWwCmPR5XSXRg6VD6TN12VvdbN8gk_4puddmPhHjVcWkIX4A9lwalZk9umvlOYmsVTkkrp7_0MXG7bOVGs_KMyyDiwdADbrOxkd5zBk/s640/2012-01-gogglesmm.png" imageanchor="1" style="margin-left:1em; margin-right:1em"><img border="0" height="399" width="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTqtyvx2lwCYTgG5szfWO2hrsAT-Ypzq-hMscmVWwCmPR5XSXRg6VD6TN12VvdbN8gk_4puddmPhHjVcWkIX4A9lwalZk9umvlOYmsVTkkrp7_0MXG7bOVGs_KMyyDiwdADbrOxkd5zBk/s640/2012-01-gogglesmm.png" /></a><p><i>gogglesmm-0.12.6 playing CC music from <a href="http://thisisopenmusic.com">thisisopenmusic.com</a></i></div>
<p>Another (recent) reason would be to try out the latest version of xbmc - the 11-series betas have been around for a month now, and I have a working ebuild which I'm using here, but could do with more use-cases. If you try it, please post on the <a href="https://bugs.gentoo.org/show_bug.cgi?id=399519">Gentoo Bugzilla</a> with your experiences. If you haven't tried xbmc before, I find it a nice package for my home media center. </p>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://goo.gl/photos/IqUIau57co" imageanchor="1" style="clear:right;margin-bottom:1em;margin-left:1em"><img height="370" width="571" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdasVEjarW2uRuqOz4H608fNdiMt_Nhf0Z6RYDIdcdCrmL7oAC105e1BRcShnW2utSXasw05sRSk9b8FXL2kf3hYu_CoHC9JxGJJOHDbM26RYKNW4tkyR9HGrbfxMXznWvGFrvemy_6BE/s512/2012-01-xbmc11b2.png"></a></div>
<p>Oh, and I also bumped <a href="http://pypi.python.org/pypi/selenium">dev-python/selenium</a>, so if you're into web-dev testing, that might be nice. I'll push it to sunrise ... some time soon. </p>James Broadheadhttp://www.blogger.com/profile/15848613038479545709noreply@blogger.com0tag:blogger.com,1999:blog-2409123514571274053.post-4744450840798794262012-01-27T17:58:00.001+00:002012-01-27T18:03:24.732+00:00Converting Nokia Ovi Suite Contacts for Android - 2012 Update<p style="margin : 2em 0em;">Seeing as my <a href="http://dollarblogname.blogspot.com/2011/01/converting-nokia-ovi-suite-contacts-for.html">original post on converting Nokia OVI Suite contacts</a> continues to get loads of hits, and I had to go through the process again for a friend's phone, I thought that I'd do a quick 2012 update. This will be a summary; if you're having trouble following it, take a look at the original post, which goes into more detail.
</p>
<p style="margin : 2em 0em;">First off - things are a little easier these days! Gmail / Google Contacts now accepts multi-VCard .vcf files. Sadly, they still don't allow multi-file import, so the many output .vcf files must still be merged.
</p>
<p style="margin : 2em 0em;">As a result, all you need to do is perform a full backup in OVI Suite, extract all the VCards from the the .nbu with <a href="sourceforge.net/projects/nbuexplorer">NBUExplorer</a>, and merge the VCards into a single file. Then, upload the resultant file to Gmail. </p>
<p>To merge the files, here's a quick snippet which I used in Cygwin:
<pre class="brush: bash"> $ cat *.vcf >> merged.vcf </pre>
<a href="http://en.wikipedia.org/wiki/Copy_(command)">According to Wiki</a>, this is the DOS equivalent (but I don't even have dosbox installed right now to test it):
<pre class="brush: bash"> $ copy /a a.vcf + b.vcf merged.vcf </pre>
(Yes, that's a '+'; I'm not going to read up on DOS loops for you - just use cygwin).
</p>James Broadheadhttp://www.blogger.com/profile/15848613038479545709noreply@blogger.com1tag:blogger.com,1999:blog-2409123514571274053.post-36845406146542829182011-09-25T14:20:00.002+01:002011-09-25T16:27:03.219+01:00The 7th Guest (DOS) in Windows XPHaving recently received a copy of The 7th Guest from a relative cleaning out their attic, I've finally found time to give it a try. Now back in the day, this game had a serious reputation as being absolutely terrifying, so I've no idea what to expect. It's funny how the era of FMV completely ran out of steam. Was it the sheer cost of filming? The materials costs (I remember playing Wing Commander IV on 6 CDs, which seemed like madness at the time). Lack of interest? In any event, it's a little ironic that now that we're approaching photo-realistic in-game rendering, we seem to be going back to cinema-styles as a means of story-telling for games. <br />
<br />
So my initial problem is going to be getting it to run in Windows XP. I have a copy of Windows 7 on my desktop, but my trusty laptop still runs WinXP (it has a Vista licence on the back, but lets not go there ... ). Looks as though it's <a href="http://www.dosbox.com/comp_list.php?letter=num&showID=1209">fully supported by DOSBox</a>, which is helpful; an abortive attempt to run the installer using cmd.exe got me errors due to having too many partitions, and my CD drive not being <b>D:</b>. For convenience, I've ripped the CDs to .isos, since I've no interest in carrying them around.<br />
<br />
It's kind of funny going back to 1993-era BBSes (mirrors, obviously) looking for patches, seeing <b>FILE_ID.DIZ </b>and the like. There are a few guides to getting this game to work in WinXP, but I wanted to chip in my own experience.<br />
<br />
It looks as though the game was patched a few times, and there are three initial "graphics" patches, and other "version" patches. First off, the graphics patches, distributed separately as: <b>T7GF3A.zip</b>, <b>T7GF3B.zip</b>and later combined into <b>T7GFIX3.zip</b>. <br />
<br />
Perhaps T7GFA and B were released separately, but I don't have those details. What's important though is to figure out what's actually required for a fully-patched install of the game. <br />
<br />
<b>Conclusion:</b> You do not need <b>T7GF3A.zip</b> or <b>T7GF3B.zip</b>, which some other sites seem to think should be installed before the T7GFIX3 contents. The only major difference is save.z, but this is probably also in the 1.30 patcher. You should still install the contents of <b>T7GFIX3.zip</b>.<br />
<br />
To do the comparison yourself, do the following (but it's not necessary)
<br />
<pre class="brush: bash">$ for i in T7GFIX3 T7GF3A T7GF3B ; do
mkdir -p $i ; cd $i ; unzip ../$i ; cd .. ;
done
</pre>
You might notice that both T7GF3A.zip and T7GF3B.zip contain versions of INSTALL.EXE and V.EXE, but a quick <a href="http://en.wikipedia.org/wiki/Sfv">Simple File Verification</a> with your <a href="http://freshmeat.net/projects/cksfv/">tool of choice</a> will tell you that they're the same.
<br />
<pre class="brush: bash">$ cksfv T7GF3*/INSTALL.EXE T7GF3*/V.EXE
; Generated by cksfv v1.3.14 on 2011-09-25 at 12:49.16
; Project web site: http://www.iki.fi/shd/foss/cksfv/
;
; 23473 14:19.44 1993-08-10 T7GF3A/V.EXE
; 23473 14:19.44 1993-08-10 T7GF3B/V.EXE
; 43704 18:55.52 1993-07-23 T7GF3A/INSTALL.EXE
; 43704 18:55.52 1993-07-23 T7GF3B/INSTALL.EXE
T7GF3A/V.EXE 8E727A9E
T7GF3B/V.EXE 8E727A9E
T7GF3A/INSTALL.EXE 4033D8EE
T7GF3B/INSTALL.EXE 4033D8EE
</pre>
Now let's see if there's any difference between the combined patches and the released combined version.
<br />
<pre class="brush: bash">$ diff -r T7GF3combo T7GFIX3
Only in T7GF3combo/: README.TXT
Only in T7GF3combo/: READTHIS.NOW
Only in T7GF3combo/: SAVE.Z
Only in T7GF3combo/: T7G.BAT
Only in T7GF3combo/: T7GDEMO.BAT
Only in T7GFIX3/: T7GFIX3.TXT
Files T7GF3combo//V.EXE and T7GFIX3//V.EXE differ
</pre>
So lets take a look at the differences. <b>README.TXT</b> is a copy of the original Readme which shipped with the game, and READTHIS.NOW is an advert for the BBS which must have hosted the files at some point. (If you haven't seen the excellent <a href="http://www.imdb.com/title/tt0460402/">BBS: The Documentary</a>, then go and get hold of a copy and learn something new about internet history. I'll put a copy of the BBS advert at the bottom of this post. <br />
<br />
T7GFIX3.TXT announces a new version of V.EXE which "only requires 450K of memory". We'll bear this in mind later. <br />
<br />
So that leaves the batch files, which contain:
<br />
<pre class="brush: bash">$ cat T7GF3combo/T7G.BAT
@v !
$ cat T7GF3combo/T7GDEMO.BAT
@v @
</pre>
<br />
So they both call v.exe, one passing arguments, the other dropping them(? I'm not going to spend any time looking up what they actually do, I have no interest in learning Dos / Batch ) <br />
On to SAVE.Z, which only exists in the separate version of the patching. I don't know what its function is. I know that later patches enable "Open House" mode, which allows access to all the puzzles but without the Adventure aspect of the game. Perhaps this is an early release of this, that they left out of the combined patch(?) Here are the contents:
<br />
<pre class="brush: bash">$ hexedit T7GF3combo/SAVE.Z # for lack of a better tool
$ # (copy and paste the contents ...)
00000000 11 12 1F 22 24 15 14 10 17 11 1D 15 F4 00 00 00 00 00 00 00 00 00 00 00 ..."$........
</pre>
... which doesn't mean much to me. <br />
This leaves two versions of V.EXE, on top of the one installed direct from the CD. For reference, I'll include the output of my <b>VERSION.BAT</b> which, if it does what it claims, is a pretty nifty idea that many other games could have done with (I may also update the article with details of the post-patch install's version of <b>v.exe</b>). <br />
<pre class="brush: bash">$ cmd
C:\Games\7thguest> version
WELCOME TO THE 7TH GUEST
European Version 1.2
C:\Games\7thguest> exit
$ cksfv /cygdrive/c/Games/7thguest/V.EXE T7GF3combo/V.EXE T7GFIX3/V.EXE
; Generated by cksfv v1.3.14 on 2011-09-25 at 14:15.27
; Project web site: http://www.iki.fi/shd/foss/cksfv/
;
; 21473 16:55.28 1993-05-20 /cygdrive/c/Games/7thguest/V.EXE
; 23473 12:45.34 2011-09-25 T7GF3combo/V.EXE
; 23425 14:44.28 1993-07-21 T7GFIX3/V.EXE
/cygdrive/c/Games/7thguest/V.EXE C7D27409
T7GF3combo/V.EXE 8E727A9E
T7GFIX3/V.EXE 6FD2868B
$ ls -la /cygdrive/c/Games/7thguest/V.EXE T7GF3A/V.EXE T7GF3B/V.EXE T7GFIX3/V.EXE
-rwxrwxrwx 1 broadhej None 21473 May 20 1993 /cygdrive/c/Games/7thguest/V.EXE
-rw-r--r-- 1 broadhej None 23473 Aug 10 1993 T7GF3A/V.EXE
-rw-r--r-- 1 broadhej None 23473 Aug 10 1993 T7GF3B/V.EXE
-rw-r--r-- 1 broadhej None 23425 Jul 21 1993 T7GFIX3/V.EXE
</pre>
So the separately packaged patch actually has a different binary, with the combined patch having the newer version. <br />
So there we have it -- the only effective difference between installing the separate patches first, and then the later release is that you end up with Save.z. I don't know what it does, but I'm willing to guess that it's Open House mode which the later 1.30 patch will install anyway.
<br />
<br />
Here's the ad for the BBS.
<br />
<pre class="brush: bash">$ cat T7GF3combo/READTHIS.NOW
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
º P-80 Has been online full ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
º time since HALLOWEEN º !!! P-80 SYSTEMS !!! º
º ---------1980-------- º ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
º _____________________ º º If you would like to order º
º 110 Baud Through 57,600 º º THE HACKER CHRONICLES CD or º
º U.S. Robotics Courrier ÌÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍ» you would like to º
º Multiline HST/Dual/V.all º Data:50000+Filesº Join the P-80 BBS! º
º º º º
º 24 Hrs US. Eastern Time º Fun For All º Call: º
º All Files=Virus Prescan º All For Fun. º 304-744-2253 BBS º
ÈÍÍËÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ º º
º Call today º * * * * * * * * * * * * * * * * º º
º and take a º Multi Laser Disk system with a ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍͼ
º trip with º combined logical storage of overº We are one of º
º out a º 15,000 Megabytes (15 Gigabytes) º the first ten º
º suitcase ÈÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÍÍͼ BBS's in the º
º º º U.S. to go online. ^*^ º
º Fax on Dial-Back! º º Sysop: Scan Man \_/ º
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
</pre>
James Broadheadhttp://www.blogger.com/profile/15848613038479545709noreply@blogger.com0tag:blogger.com,1999:blog-2409123514571274053.post-19140554402377199902011-03-19T17:06:00.011+00:002011-03-19T17:46:23.964+00:00sed made comprehensible!I needed a regex for a Makefile in an ebuild I was working on, and hit a problem. I needed to match part of a line, discarding the rest and repacing it with something else. This was slightly beyond my experience, having only ever done <pre class="brush: bash">:%s/foo/bar/g</pre><div>in vim before. </div><div><br /></div><div>I joined <b>#sed</b> on <b>freenode</b> for some advice, and being a good internet citizen I followed their links in the <i>/topic</i> before I asked. Wow, was I in for a surprise finally <a href="http://www.grymoire.com/Unix/Sed.html#uh-4">a sed introduction that is easy to follow and clear</a>. Thank you so much! </div><div><br /></div><div>My first proper regex, of which I am inordinately proud (put together with no interactive help or direct advice).<br /><pre class="brush: bash">sed 's:\(VERSION \=\).*:\1 foo:'</pre>Thank you Grymoire!</div><br />--> This blog now has syntax highlighting!<script type="text/javascript">SyntaxHighlighter.all()</script>James Broadheadhttp://www.blogger.com/profile/15848613038479545709noreply@blogger.com0tag:blogger.com,1999:blog-2409123514571274053.post-1145295225821597522011-01-31T15:38:00.005+00:002012-01-27T18:02:37.869+00:00Converting Nokia Ovi Suite Contacts for Android (nbu2gmail, or nbu2csv)== <b>2012 Update</b> ==
This has gotten easier! I've posted a more up-to-date version <a href="http://dollarblogname.blogspot.com/2012/01/converting-nokia-ovi-suite-contacts-for.html">here</a>.
== Too Long, I'm Lazy Version ==<br />
Since most people getting to this page will just want a quick solution, here's the quick-and-easy version of the post. If you're in the mood for how I got to this awful hack of a way to convert contacts, read on ...<br />
<br />
Phone -> OVI Suite -> NBUExplorer -> Microsoft Live Mail Address Book -> Gmail<br />
On-phone -> .nbu -> (many) VCards -> .csv -> Online<br />
<br />
If you're not stuck in Windows waiting for an interminable Ovi Suite synchronisation, you may have more luck with the scripts I discuss later in the post. <br />
<br />
Update 2011-09-25 : Made this summary a little easier to follow, since this post is being read by way more people than I would have expected.<br />
== Full Post ==<br />
<br />
I just bought an HTC Desire, upgrading from my Nokia E66 which suddenly started to feel dated when I saw how fast Opera loaded on one owned by a friend of mine. <br />
<br />
The problem is that in 2008, Nokia decided to do a complete overhaul of their mobile software, rebranding it from "Nokia PC Suite" to "Ovi Suite". They massively simplified the UI, introduced many bugs, and slowed it down to a crawl. Most importantly for me, they removed any way of extracting my Contacts in any useful format. All I could get with the most up-to-date version of Ovi (as of Jan 2011) was a "Nokia BackUp" .nbu file, which is intended to lock you into Nokia's Ovi platform. Fantastic. <br />
<br />
According to the article on <a href="http://en.wikipedia.org/wiki/.nbu">wiki</a>, they've just added the ability to receive delivery reports to the phone, having sent a text message from Ovi. This despite the many hundreds (thousands?) of posts I have read asking for .csv output. Oh well. <br />
<br />
Open-source to the rescue though - thank you to petrusek for his excellent <a href="http://sourceforge.net/projects/nbuexplorer/">NbuExplorer</a>, which extracted all of my contacts with ease. <br />
<br />
Bizarrely, it seems that the contact details stored in the .nbu file are in a perfectly simple and open format, <a href="http://en.wikipedia.org/wiki/Vcard">VCard</a>. I can't think of a reason that OVI doesn't allow users to extract them aside from platform lock-in. I'm very glad that the rest of the world seems to be moving away from this kind of thinking. <br />
<br />
So now I was left with 334 VCards, only to find that Gmail Contacts would only allow me to upload one at a time. Poor thinking Google! <br />
<br />
I have used VCards in KAddressbook before, so I knew that it was possible to create a single .vcf file with many VCard entries in it, but Gmail doesn't support this. There goes my easy<br />
<span style="font-style: italic;">$ cat * >> contacts.vcf</span> ! The only multiple-entry format that Gmail seems to support seems to be tried-and-tested CSV.<br />
<br />
I first tried <a href="http://code.google.com/p/vcf-to-csv-converter/issues/list?cursor=5&updated=5&ts=1296480205">VCF-to-CSV-converter</a>, but the VCards that OVI output were VCARD-2.1, and the converter only supports VCARD-3.0. <a href="http://code.google.com/p/vcf-to-csv-converter/issues/detail?id=5">Maybe it will someday</a>. It also fails silently, adding a WARNING tag to the output csv file, but printing nothing to the console. Tut tut. <br />
<br />
In retrospect, I should have tried replacing the version string in my VCards and trying vcf-to-csv-converter again, but it didn't occur to me at the time, and it seemed obvious(!) that there would be a script to do this incredibly common conversion. <br />
<br />
Being stuck in Windows while Ovi Suite did its thing, I wasn't able to run <a href="http://labs.brotherli.ch/vcfconvert/">VCFConvert</a>, since PHP wasn't available through the Cygwin installer. If you are less paranoid than me, you could use the <a href="http://labs.brotherli.ch/vcfconvert/">online version</a> though. <br />
I downloaded <a href="http://sourceforge.net/projects/vcf2csv/">VCF2CSV</a>, but had a solution before Cygwin installed a compiler for me (I use this Windows install so infrequently, I didn't even have an editor!)<br />
<br />
Rather unbelievably, <a href="http://www.annesoft.com/vCard_VCF_To_CSV_Converter_Software-s-207059.html">Annesoft</a> wanted $20 for this trivial task. I didn't try their software either. <br />
<br />
I tried CKHung's <a href="http://people.ofset.org/~ckhung/p/vcf2csv/index.en.php">vcf2csv</a>, the only script-based tool that I could get to work. Bizarrely though, "vcf2csv ignores the problematic FN field. (First Name)", which seriously limits its usefulness. I wonder what makes it harder to deal with than other fields. Again, this is probably easily fixed, but I was getting impatient to try my new phone! <br />
<br />
In parallel with these attempts, I installed Thunderbird, confident that any decent open-source program as mature as TBird would be able to deal with common plaintext formats like VCard for me. Imagine my surprise when it couldn't! Oh, it would import from Outlook Express for me, but not VCard! The "More Functions for AddressBook" extension promised to do this for me, but I could not get it to work. <br />
<br />
Seeing as Thunderbird had alerted me to it's presence, I next tried Outlook Express, and I was shocked to see exactly the same program my parents had been using the year that we bought our Pentium 4. Needless to say, Outlook Express didn't support importing multiple VCards at once. <br />
<br />
Some more googling found me a <a href="http://www.enavigo.com/2010/08/18/how-to-export-contacts-from-a-nokia-device-to-gmail/">blog</a> post suggesting Windows Live Mail, which as it turned out was also installed on my machine. Lets not get into talking about finding new programs installed by stealth by a system update utility... Despite all that, it worked! The only hiccup was that I had to pretend to have a pop3 account just to use the Address Book feature. Importing the VCards took a long time (20-30 minutes?), but I was able to import them all, and then export to CSV. Success! <br />
<br />
Minutes later, my Gmail Contacts were fully populated with phone numbers. Whew.<br />
<br />
// This post was written while listening to <a href="http://www.youtube.com/watch?v=U7mPqycQ0tQ">a really catchy tune</a>James Broadheadhttp://www.blogger.com/profile/15848613038479545709noreply@blogger.com3tag:blogger.com,1999:blog-2409123514571274053.post-74040959644964323892011-01-18T12:54:00.002+00:002011-01-18T13:03:44.936+00:00Chromium, Tab completionSo I'm typing out the first few letters of a URL into the Chromium Omnibox (that box for addresses and search strings), and Chromium happily auto-completes it for me. Cool, now I can get to reader.google.com just by typing 'r'! <br /><br />Except not - conditioned bash user that I am, my subconscious sometimes expects Tab-completion - so I hit TAB before I hit Enter. Suddenly I'm at some other website, Tab has changed the focus to the first link on the page contents. Gah!<br /><br />When I started writing this post, I hadn't quite figured that out -- but Tab to change focus is perfectly normal UI behaviour. Still, it's pretty aggravating; not that I can see a way around it, since using Tab to iterate through the links on a page is pretty useful (say, when you have no access to a mouse). Oh well ...James Broadheadhttp://www.blogger.com/profile/15848613038479545709noreply@blogger.com0tag:blogger.com,1999:blog-2409123514571274053.post-56157654392801526982009-08-11T19:45:00.006+01:002009-08-11T20:47:14.137+01:00Ugly Firefox in Gentoo (and a fix!)Somehow, <a href="http://xkcd.com/621/">this xkcd strip</a> really made me want to post here again. I'd all but forgotten that I attempted to start blog many months ago, except for a "Follow this blog" button that would appear on other <a href="http://sushifansubs.blogspot.com/">blogs</a>.<br /><br />I started writing my first post with the intention of noting down useful technical tips that I'd come across and that other people might need. I never ended up writing an introductory post, just leapt into describing my Qualnet problem. I find it amazing the way that closed-source programs never seem to generate a helpful community around them like open-source does; their support forum was dead and there were almost no websites covering Qualnet or any blogs at all that I could find (surprise!). The only counter-example I can think of is Matlab, but the general status-quo there is for people to upload zip files of scripts that they've created. No versioning, no concerted open projects and no real community spirit (that I could find, anyway).<br /><br />Anyway, today's post is about <span style="font-weight: bold;">ugly Firefox in Gentoo</span>. If you've ever used Firefox in Gentoo, or (who knows?) other distros that don't set up the GTK theme nicely by default, you'll have noticed how horribly ugly the default menus are. The program looks ancient, and really makes you feel like you're back in the Firebird days (or before :( ). I discovered later, that they are a theme called "Gentoo", so someone put it together intentionally (??). Anyway, on to making it look a bit better.<br /><br />Here's what it looked like before. Look at the horrible grey boxy menus. Check out how new to this I am :-/ )<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuKqJyvGCp0SxRAi227cORpJqvKY7-L2yLg3whWMf3owvM-P0628He7RSKLkBYVLrJtTQUZqMXg02Drr8YWsRws1Ii6XfbyJK624N0efEKRoJbewy8FWszQHltH9WJ5oGou4uUPMu7fiY/s1600-h/ff-before.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 247px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuKqJyvGCp0SxRAi227cORpJqvKY7-L2yLg3whWMf3owvM-P0628He7RSKLkBYVLrJtTQUZqMXg02Drr8YWsRws1Ii6XfbyJK624N0efEKRoJbewy8FWszQHltH9WJ5oGou4uUPMu7fiY/s400/ff-before.png" alt="" id="BLOGGER_PHOTO_ID_5368788722123671922" border="0" /></a><br /><br />So, first I installed some Gnome themes. I don't have a full gnome install on my machine, so couldn't use whatever Control-Panel-alike that they have. <br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidoTVVzu6TzGgECSxMySLTgBwVS8wPR-TLU_bG5lfgPNhyphenhyphenPcnwf4qlvKY7n1Kx7sfe6MszB-LdS4gnfnX-uSufKuAhNiAChV2fxU9LmdIHFRQDPSZtP0ZjxEnn0t7jrgrbmZNUlItdGOw/s1600-h/eix-themes.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidoTVVzu6TzGgECSxMySLTgBwVS8wPR-TLU_bG5lfgPNhyphenhyphenPcnwf4qlvKY7n1Kx7sfe6MszB-LdS4gnfnX-uSufKuAhNiAChV2fxU9LmdIHFRQDPSZtP0ZjxEnn0t7jrgrbmZNUlItdGOw/s400/eix-themes.png" alt="" id="BLOGGER_PHOTO_ID_5368788729738624082" border="0" /></a><br /><br />Next, I installed a handy GTK theme Switcher (switcher2 if you're a Debian/Ubuntu head)<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiePunNMLWMHuZ3nYoqWMH0-4vYnKSJwfTosMXUF56OjXrCXajHRwzxFrSkD5UoOI6RE1douuRHxQqiiEAlRFuTNq_a77vpMkh0tswwpdep_tvqaThSYjAQiuGIetLNnwOSojy-3CeXMto/s1600-h/eix-switch.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiePunNMLWMHuZ3nYoqWMH0-4vYnKSJwfTosMXUF56OjXrCXajHRwzxFrSkD5UoOI6RE1douuRHxQqiiEAlRFuTNq_a77vpMkh0tswwpdep_tvqaThSYjAQiuGIetLNnwOSojy-3CeXMto/s400/eix-switch.png" alt="" id="BLOGGER_PHOTO_ID_5368788725560474898" border="0" /></a><br /><br />Here's switcher2 in action (run as my normal user). <br /><br />Before: Initially, it looks as retro as Firefox<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjapBN4J70qefUZvl0-6RmUmJKS6jwlxR1RQdz4BlXg-S2jcmkwrsAA7nPS7S3vgpxP5qjaQE19Yw-N6e-c8UchIU_nlaswZosT6kFUC5RMr7-6lMSTt_cfD8I972KjHyrZzYZH9FmjdG8/s1600-h/switch-before.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 269px; height: 94px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjapBN4J70qefUZvl0-6RmUmJKS6jwlxR1RQdz4BlXg-S2jcmkwrsAA7nPS7S3vgpxP5qjaQE19Yw-N6e-c8UchIU_nlaswZosT6kFUC5RMr7-6lMSTt_cfD8I972KjHyrZzYZH9FmjdG8/s400/switch-before.png" alt="" id="BLOGGER_PHOTO_ID_5368788882069066018" border="0" /></a><br /><br />After: (Of course, there are piles of other themes available, but this is the one I chose)<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3bfjNDofZU3d6NAwZxPSOa62mTbbvJTYgFYTDe4IOWjHBIVtpIIOps56e3Pm44DaIYxMqb9CSh60DbEu_x0JBL6XSppt5teECfSbr7oIebGLJSpYdWRWN24HIKpxMaProq9T600B68_I/s1600-h/switch-after.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 269px; height: 94px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3bfjNDofZU3d6NAwZxPSOa62mTbbvJTYgFYTDe4IOWjHBIVtpIIOps56e3Pm44DaIYxMqb9CSh60DbEu_x0JBL6XSppt5teECfSbr7oIebGLJSpYdWRWN24HIKpxMaProq9T600B68_I/s400/switch-after.png" alt="" id="BLOGGER_PHOTO_ID_5368788743091076770" border="0" /></a><br /><br />This equates to the following in <span style="font-weight:bold;"><span style="font-style:italic;">~/.gtkrc-2.0</span></span><br /><pre name="code" class="html"> <br />include "/usr/share/themes/Clearlooks/gtk-2.0/gtkrc"<br /><br />include "/home/jim/.gtkrc.mine"<br /></pre> <br />(I don't have a .gtkrc.mine btw) <br /><br /><br />Now let's check Firefox, to see if it had an effect :<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibXd-AXpHLW4vD6ZnYsoCux6k47Qt3TlSqE4ZRC3cUiYKWy-3ihLHL5Vw856-45hoF8z5BEum67OM4Z6PgjBDZ7OU_76rewmuF8OIgzdIC0WMmX9Ul6CJwnXVVMRSrSPLwPKQpi5sG6rk/s1600-h/ff-after.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 247px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibXd-AXpHLW4vD6ZnYsoCux6k47Qt3TlSqE4ZRC3cUiYKWy-3ihLHL5Vw856-45hoF8z5BEum67OM4Z6PgjBDZ7OU_76rewmuF8OIgzdIC0WMmX9Ul6CJwnXVVMRSrSPLwPKQpi5sG6rk/s400/ff-after.png" alt="" id="BLOGGER_PHOTO_ID_5368788739121273090" border="0" /></a><br /><br />Victory! <br /><br /><br />In case you're wondering, I ended up using the Gimp to take the screenshots after failing to get import and xv to only capture the Firefox window. A nice side effect of running through this again to write it up is that I got to see Gimp start to look prettier too :) <br /><br /><br /><script language="javascript" src="/php/js/dp.SyntaxHighlighter/Scripts/shCore.js"></script> <br /><script language="javascript" src="/php/js/dp.SyntaxHighlighter/Scripts/shBrushCSharp.js"></script> <br /><script language="javascript" src="/php/js/dp.SyntaxHighlighter/Scripts/shBrushXml.js"></script> <br /><script language="javascript" src="/php/js/dp.SyntaxHighlighter/Scripts/shBrushPython.js"></script> <br /><script language="javascript"> <br />dp.SyntaxHighlighter.ClipboardSwf = '/flash/clipboard.swf'; <br />dp.SyntaxHighlighter.HighlightAll('code'); <br /></script>James Broadheadhttp://www.blogger.com/profile/15848613038479545709noreply@blogger.com0tag:blogger.com,1999:blog-2409123514571274053.post-90828576044603224382009-04-25T17:40:00.000+01:002009-04-27T14:34:36.096+01:00Qualnet on more then one X Screen - java.lang.ArrayIndexOutOfBoundsException<p><span style="color:#cccccc;">Edit: Damn, apparently switching to java 1.6 brings its' own host of problems with it. Have to stick to java 1.5 for the moment. </span></p><p><span style="color:#cccccc;"></span></p><p><span style="color:#cccccc;"></span></p><p><span style="color:#cccccc;">--------------</span></p><p><span style="color:#cccccc;">So google totally failed me when I got this error, so here's how I fixed it. </span></p><p><span style="color:#cccccc;">I have two monitors, each running an X screen on the same X server (:0.0 and :0.1)</span></p><p>The Qualnet IDE was starting fine from the first screen (:0.0), but when trying to run it on the second (:0.1), I was getting : <br /></p><br /><span style="color:#666666;"><em>Using /home/broadhej/.qualnetUserDir as user directory...<br />-- System Info ----------------------------------------------------------------<br /> Product Version = QualNet 4.5 (Build 200803141608)<br /> IDE Versioning = IDE/1 spec=1.43.3 impl=200803141608<br /> Operating System = Linux version 2.6.28-gentoo-r1 running on i386<br /> Java; VM; Vendor = 1.5.0_18; Java HotSpot(TM) Server VM 1.5.0_18-b02; Sun Microsystems Inc.<br /> Java Home = /opt/sun-jdk-1.5.0.18/jre<br /> System Locale; Encod. = en_IE; UTF-8<br /> Home Dir; Current Dir = /home/broadhej; /main/linprogs/qualnet/4.5/gui/netbeans/bin<br /> IDE Install; User Dir = /main/linprogs/qualnet/4.5/gui/netbeans; /home/broadhej/.qualnetUserDir/4.5<br /> CLASSPATH = /main/linprogs/qualnet/4.5/gui/netbeans/lib/patches/openide-compat.jar:/main/linprogs/qualnet/4.5/gui/netbeans/lib/core.jar:/main/linprogs/qualnet/4.5/gui/netbeans/lib/openide.jar:/main/linprogs/qualnet/4.5/gui/netbeans/lib/ext/crimson.jar:/main/linprogs/qualnet/4.5/gui/netbeans/lib/ext/derby.jar:/main/linprogs/qualnet/4.5/gui/netbeans/lib/ext/derbytools.jar:/main/linprogs/qualnet/4.5/gui/netbeans/lib/ext/flexlm.jar:/main/linprogs/qualnet/4.5/gui/netbeans/lib/ext/jh.jar:/main/linprogs/qualnet/4.5/gui/netbeans/lib/ext/regexp.jar:/main/linprogs/qualnet/4.5/gui/netbeans/lib/ext/skinlf.jar:/main/linprogs/qualnet/4.5/gui/netbeans/lib/ext/terminalemulator.jar:/main/linprogs/qualnet/4.5/gui/netbeans/lib/ext/xerces.jar:/main/linprogs/qualnet/4.5/gui/netbeans/lib/ext/xmlparsers.jar:/etc/java-config-2/current-system-vm/lib/dt.jar:/etc/java-config-2/current-system-vm/lib/htmlconverter.jar:/etc/java-config-2/current-system-vm/lib/jconsole.jar:/etc/java-config-2/current-system-vm/lib/sa-jdi.jar:/etc/java-config-2/current-system-vm/lib/tools.jar<br />-------------------------------------------------------------------------------<br />java.lang.ArrayIndexOutOfBoundsException: 1<br /> at sun.awt.X11GraphicsEnvironment.getDefaultScreenDevice(X11GraphicsEnvironment.java:178)<br /> at java.awt.Window.init(Window.java:271)<br /> at java.awt.Window.<init>(Window.java:319)<br /> at java.awt.Frame.<init>(Frame.java:419)<br /> at java.awt.Frame.<init>(Frame.java:384)<br /> at org.netbeans.core.Splash$SplashWindow.<init>(Unknown Source)<br /> at org.netbeans.core.Splash.createW(Unknown Source)<br /> at org.netbeans.core.Splash.showSplash(Unknown Source)<br /> at org.netbeans.core.Main.main(Unknown Source)<br /> at org.netbeans.core.TopThreadGroup.run(Unknown Source)<br /> at java.lang.Thread.run(Thread.java:595)<br />/main/linprogs/qualnet/4.5/bin</em></init><init><init><init><init><br /><p><span style="color:#cccccc;">The fix? Get Qualnet to use a newer jvm. For me, that was:</span></p><p><em><span style="color:#666666;">JDK_HOME=/opt/sun-jdk-16.0.13/ qualnet_ide</span></em></p><p><span style="color:#cccccc;">Incidentally, it's ridiculous that they don't ship qualnet with a directory-aware executable; here's my script for starting it up;</span></p><p><em><span style="color:#c0c0c0;"> </span><span style="color:#666666;">cd /main/linprogs/qualnet/4.5/gui/netbeans/bin</span></em></p><p><em><span style="color:#666666;"> ./runide.sh $*</span></em></p><p><em><span style="color:#666666;"> cd -</span></em></p><p><span style="color:#cccccc;">Problem solved! </span></p><p><br /></p>James Broadheadhttp://www.blogger.com/profile/15848613038479545709noreply@blogger.com0