tag:blogger.com,1999:blog-2888429188041619332023-11-15T08:47:30.573-08:00Glorious Obliviongaryhttp://www.blogger.com/profile/01507817403798341041noreply@blogger.comBlogger15125tag:blogger.com,1999:blog-288842918804161933.post-86783656850774131062011-03-29T20:47:00.001-07:002011-06-01T18:10:03.007-07:00Running Dell OMSA 6.5 under Debian Lenny<div>Following on from <a href="http://gloriousoblivion.blogspot.com/2010/12/running-dell-omsa-63-under-debian-lenny.html">my earlier post about OMSA 6.3</a>, here are updated instructions for OMSA 6.5 on Lenny. If you've read the earlier post, here's what's new:<br />
<br />
<ul><li>Of course, targets OMSA 6.5 instead of 6.3. The only meaningful change in the process is that there's no more need to hack around the smbios package dependencies.</li>
<li>I opted to use schroot to make a few things easier. You can still use plain chroot if you'd prefer, but the necessary changes to my instructions are left as an exercise for the reader.</li>
<li>Added notes on a pure 32-bit install.</li>
<li>I ran into some issues upgrading from OMSA 6.3 to 6.5. So I completely removed the old 6.3 installation and installed 6.5 from scratch. If upgrading (via the usual "apt-get update && apt-get dist-upgrade" sequence inside the chroot) works for you, please let me know in the comments.</li>
</ul></div><br />
<div>As before, the OMSA packages target Ubuntu 9.10. The good news is they now target Debian Squeeze as well (using the same packages). Unfortunately the packages have a few dependencies on libraries that only exist in Debian Squeeze and not in Debian Lenny. Rather than doing lots of backporting, the easiest solution is to create a Squeeze chroot and run OMSA from there.</div><br />
<div>Below are instructions for getting these packages to run under a Debian Lenny i386 system that is using an x86_64 kernel. Note that Dell now provides 32-bit OMSA packages as well. However, they will only work if your system is completely 32-bit (i.e. 32-bit userland AND 32-bit kernel). I am running 32-bit userland with a 64-bit kernel, so I still had to install the 64-bit versions of the packages. If you are running a completely 32-bit Lenny system, the below instructions should mostly still work (though I haven't tried this combination). You'll just need to substitute "i386" everywhere you see "amd64".<br />
</div><br />
<a name='more'></a><br />
<br />
<div>The instructions assume that the amd64 chroot will be under /srv/squeeze-amd64.</div><div><ol><li>If you have the old OMSA packages from sara.nl installed, remove those packages and all related configuration files first. E.g.: <code>apt-get --purge remove dellomsa</code>.</li>
<li>Make sure you have the Debian squeeze (aka stable) and lenny-backports repositories configured in apt. lenny-backports is only needed for schroot, so you can skip it if you won't be using schroot.</li>
<li><code>apt-get install debootstrap/stable schroot/lenny-backports</code></li>
<li><code>debootstrap --arch amd64 squeeze /srv/squeeze-amd64</code></li>
<li>Configure schroot:<br />
<code><br />
cat <<EOF > /etc/schroot/chroot.d/squeeze-amd64<br />
[squeeze-amd64]<br />
type=directory<br />
description=Debian squeeze (testing) amd64<br />
directory=/srv/squeeze-amd64<br />
script-config=squeeze-amd64/config<br />
EOF<br />
<br />
mkdir /etc/schroot/squeeze-amd64<br />
<br />
cat <<EOF > /etc/schroot/squeeze-amd64/config<br />
FSTAB="/etc/schroot/squeeze-amd64/fstab"<br />
COPYFILES="/etc/schroot/squeeze-amd64/copyfiles"<br />
NSSDATABASES="/etc/schroot/squeeze-amd64/nssdatabases"<br />
EOF<br />
<br />
cat <<EOF > /etc/schroot/squeeze-amd64/copyfiles<br />
/etc/resolv.conf<br />
/etc/passwd<br />
/etc/shadow<br />
/etc/group<br />
/etc/gshadow<br />
EOF<br />
<br />
cat <<EOF > /etc/schroot/squeeze-amd64/fstab<br />
/proc /proc none rw,rbind 0 0<br />
/sys /sys none rw,rbind 0 0<br />
/dev /dev none rw,rbind 0 0<br />
/tmp /tmp none rw,bind 0 0<br />
# /lib/modules is needed because the OMSA init scripts try to figure<br />
# out if the dell_rbu kernel module is available for the current kernel<br />
# or needs to be compiled<br />
/lib/modules /lib/modules none rw,bind 0 0<br />
EOF<br />
<br />
echo "hosts" > /etc/schroot/squeeze-amd64/nssdatabases<br />
<br />
</code></li>
<li>Start the schroot session: <code>schroot -b -c "squeeze-amd64" -n "squeeze-amd64"</code></li>
<li>Configure Debian and Dell repositories and make sure all packages are up-to-date:<br />
<code>cat <<EOF > /srv/squeeze-amd64/etc/apt/sources.list<br />
deb http://mirrors.kernel.org/debian/ squeeze main non-free contrib<br />
deb http://security.debian.org/ squeeze/updates main non-free contrib<br />
deb http://linux.dell.com/repo/community/deb/latest /<br />
EOF<br />
<br />
schroot -r -c squeeze-amd64 -- apt-key adv --keyserver pgpkeys.mit.edu --recv-key E74433E25E3D7775<br />
schroot -r -c squeeze-amd64 -- apt-get update<br />
schroot -r -c squeeze-amd64 -- apt-get upgrade</code></li>
<li>Now install OMSA packages. There are other bundles available, but I only used:<br />
<code>schroot -r -c squeeze-amd64 -- apt-get install srvadmin-base srvadmin-storageservices srvadmin-rac5</code></li>
<li>The OMSA packages pull in snmpd. If you don't want/need SNMP, disable it:<br />
<code>schroot -r -c squeeze-amd64 -- /etc/init.d/snmpd stop<br />
sed -ie 's/^SNMPDRUN=yes.*/SNMPDRUN=no/' /srv/squeeze-amd64/etc/default/snmpd<br />
schroot -r -c squeeze-amd64 -- /etc/init.d/dataeng disablesnmp</code></li>
<li>Start OMSA in the chroot. If this step fails, figure out what went wrong before proceeding:<br />
<code>schroot -r -c squeeze-amd64 /etc/init.d/instsvcdrv start<br />
schroot -r -c squeeze-amd64 /etc/init.d/dataeng start</code></li>
<li>Create wrappers so that OMSA init scripts are run during bootup:<br />
<code>cat <<"EOF" > /usr/local/bin/squeeze-amd64<br />
#!/bin/bash<br />
CHROOT="squeeze-amd64"<br />
if ! schroot -l -c "session:${CHROOT}" >/dev/null 2>&1 ; then<br />
schroot -b -c "${CHROOT}" -n "${CHROOT}"<br />
fi<br />
command="$0"<br />
exec schroot -r -c "${CHROOT}" -- "${command}" "$@"<br />
EOF<br />
<br />
chmod 755 /usr/local/bin/squeeze-amd64<br />
ln -s /usr/local/bin/squeeze-amd64 /etc/init.d/dataeng<br />
ln -s /usr/local/bin/squeeze-amd64 /etc/init.d/instsvcdrv<br />
<br />
update-rc.d dataeng defaults 20 19<br />
update-rc.d instsvcdrv defaults 19 20</code></li>
<li>(Optional) To make running OMSA commands easier, you can also create symlinks from commands in /opt/dell/srvadmin/bin to /usr/local/bin/squeeze-amd64. E.g.: <code>install -d -m755 /opt/dell/srvadmin/bin; ln -s /usr/local/bin/squeeze-amd64 /opt/dell/srvadmin/bin/omreport</code>.</li>
</ol></div><br />
<div>Some related links:<br />
<ul><li><a href="http://linux.dell.com/repo/community/deb/latest/">Dell documentation on the OMSA packages</a></li>
<li><a href="https://github.com/gmaurice/DellOMSA-Lenny">A script that is similar to the procedure above</a> (and is based on my earlier 6.3 instructions). I haven't used this script, but it looks like it should work. There are a few differences with the instructions I provide, but the basic approach is the same.</li>
</ul></div>garyhttp://www.blogger.com/profile/01507817403798341041noreply@blogger.com2tag:blogger.com,1999:blog-288842918804161933.post-67914874318126319132010-12-12T13:46:00.002-08:002011-03-29T20:53:17.740-07:00Running Dell OMSA 6.3 under Debian Lenny<div><strong>UPDATE</strong>: I've posted <a href="http://gloriousoblivion.blogspot.com/2011/03/running-dell-omsa-65-under-debian-lenny.html">updated instructions for the new OMSA 6.5 packages</a>.<br />
</div><br />
<div>Earlier this year <a href="http://en.community.dell.com/dell-blogs/enterprise/b/tech-center/archive/2010/07/27/dell-openmanage-6-3-for-ubuntu.aspx">Dell finally announced a version of their OpenManage Server Administrator suite for Ubuntu systems</a>. This means that there's now an officially-maintained version of OMSA compiled and packaged for a Debian-like system. There are two main limitations with the current release, as it relates to Debian: 1) It's compiled for Ubuntu 9.10, which while pretty similar to Debian Lenny, does introduce some problems when trying to install these packages on Debian; and 2) Only amd64 packages were released.<br />
</div><div>Below are instructions for getting these packages to run under a Debian Lenny i386 system that is using an x86_64 kernel (if your Dell system doesn't support a 64-bit kernel then you won't be able to run these OMSA packages). Unfortunately the packages have a few dependencies on libraries that only exist in Debian Squeeze and not in Debian Lenny. Rather than doing lots of backporting, the easiest solution is to create a Squeeze chroot and run OMSA from there.<br />
<br />
<a name='more'></a></div><div>The instructions assume that the amd64 chroot will be under /srv/squeeze-amd64. Note also that these instructions were cobbled together from my notes as I did this. There might be typos or small mistakes in the flow.</div><div><ol><li>If you have the old OMSA packages from sara.nl installed, remove those packages and all related configuration files first. E.g.: <code>apt-get --purge remove dellomsa</code>.</li>
<li>Make sure you have the Debian testing (aka squeeze) repository configured in apt.</li>
<li><code>apt-get install debootstrap/testing</code></li>
<li><code>debootstrap --arch amd64 squeeze /srv/squeeze-amd64</code></li>
<li>Copy files that might be needed into the chroot. You can probably get away with just /etc/resolv.conf and /etc/hosts, though you might want to copy /etc/passwd, /etc/group, /etc/shadow, and /etc/gshadow as well if you want accounts in the chroot to be the same as the base system.</li>
<li>Add the following entries to /etc/fstab (/lib/modules is needed because the OMSA init scripts try to figure out if the dell_rbu kernel module is available for the current kernel or needs to be compiled):<br />
<code>/proc /srv/squeeze-amd64/proc none rw,rbind 0 0<br />
/sys /srv/squeeze-amd64/sys none rw,rbind 0 0<br />
/dev /srv/squeeze-amd64/dev none rw,rbind 0 0<br />
/tmp /srv/squeeze-amd64/tmp none rw,bind 0 0<br />
/lib/modules /srv/squeeze-amd64/lib/modules none rw,bind 0 0</code></li>
<li>Mount the above filesystems.</li>
<li>Make sure all packages are up-to-date:<br />
<code>cat <<EOF > /srv/squeeze-amd64/etc/apt/sources.list<br />
deb http://mirrors.kernel.org/debian/ squeeze main non-free contrib<br />
deb http://security.debian.org/ squeeze/updates main non-free contrib<br />
EOF<br />
<br />
chroot /srv/squeeze-amd64 apt-get update<br />
chroot /srv/squeeze-amd64 apt-get -f install<br />
chroot /srv/squeeze-amd64 apt-get upgrade</code></li>
<li>The Dell OMSA packages depend on the smbios-utils package. In Debian this package is called libsmbios-bin. Worse, the Debian package is too old and doesn't have certain binaries required by the Dell tools. So you have to manually install the Ubuntu version of smbios-utils and python-libsmbios. Any Ubuntu release starting with 9.10 should work, but I've used the packages from 10.04LTS since it is an LTS release and will be supported longer.<br />
<code>chroot /srv/squeeze-amd64 wget -P /var/tmp http://mirrors.us.kernel.org/ubuntu//pool/universe/libs/libsmbios/smbios-utils_2.2.13-0ubuntu4.1_amd64.deb<br />
chroot /srv/squeeze-amd64 wget -P /var/tmp http://mirrors.us.kernel.org/ubuntu//pool/universe/libs/libsmbios/python-libsmbios_2.2.13-0ubuntu4.1_all.deb<br />
chroot /srv/squeeze-amd64 dpkg --install /var/tmp/python-libsmbios_2.2.13-0ubuntu4.1_all.deb /var/tmp/smbios-utils_2.2.13-0ubuntu4.1_amd64.deb<br />
chroot /srv/squeeze-amd64 apt-get -f install</code></li>
<li>Now install OMSA packages. There are other bundles available, but I only used: <code>chroot /srv/squeeze-amd64 apt-get install srvadmin-base srvadmin-storageservices srvadmin-rac5</code></li>
<li>The OMSA packages pull in snmpd. If you don't want/need SNMP, disable it:</li>
<ol><li><code>chroot /srv/squeeze-amd64 /etc/init.d/snmpd stop</code></li>
<li>Set SNMPDRUN=no in /srv/squeeze-amd64/etc/default/snmpd.</li>
<li><code>chroot /srv/squeeze-amd64 /etc/init.d/dataeng disablesnmp</code></li>
</ol><li>Start OMSA in the chroot. If this step fails, figure out what went wrong before proceeding:<br />
<code>chroot /srv/squeeze-amd64 /etc/init.d/instsvcdrv start<br />
chroot /srv/squeeze-amd64 /etc/init.d/dataeng start</code></li>
<li>Create wrappers so that OMSA init scripts are run during bootup:<br />
<code>cat <<EOF > > /usr/local/bin/squeeze-amd64<br />
#!/bin/bash<br />
exec chroot /srv/squeeze-amd64 "$0" "$@"<br />
EOF<br />
<br />
chmod 755 /urs/local/bin/squeeze-amd64<br />
ln -s /usr/local/bin/squeeze-amd64 /etc/init.d/dataeng<br />
ln -s /usr/local/bin/squeeze-amd64 /etc/init.d/instsvcdrv<br />
<br />
update-rc.d dataeng defaults 20 19<br />
update-rc.d instsvcdrv defaults 19 20</code></li>
<li>(Optional) To make running OMSA commands easier, you can also create symlinks from commands in /opt/dell/srvadmin/bin to /usr/local/bin/squeeze-amd64. E.g.: <code>install -d -m755 /opt/dell/srvadmin/bin; ln -s /usr/local/bin/squeeze-amd64 /opt/dell/srvadmin/bin/omreport</code>.</li>
</ol><div><br />
</div></div>garyhttp://www.blogger.com/profile/01507817403798341041noreply@blogger.com2tag:blogger.com,1999:blog-288842918804161933.post-86954459128623927192010-05-08T20:30:00.000-07:002010-05-08T20:30:39.434-07:00T-Mobile and +800 NumbersI tried calling <a href="http://www.cathaypacific.com/cpa/en_US/contactus/esvc">Cathay Pacific's eService Center</a> Hotline at +800 2747-2200 from my T-Mobile cell phone today (while I was in the U.S.). If that number looks strange to you, it's what's called a <a href="http://en.wikipedia.org/wiki/Toll-free_telephone_number#Universal_International_Freephone_numbers">Universal International Freephone Number (UIFN)</a> (the ITU has more <a href="http://www.itu.int/ITU-T/universalnumbers/uifn/">official information about UIFNs</a>). Basically, a UIFN works like a 1-800 phone number in the United States except that it is international. The "800" part of the number is, for most intents, identical to the country code in a normal international phone number. That means that you can call a +800 number from anywhere in the world and it will be a free phone call (for you, the recipient of the call still pays of course).<br />
<br />
That's the theory at least. In practice, when I call that number from my cell phone I get a message stating "This service is restricted or unavailable. Please contact customer care." So I called up T-Mobile. I spent an hour on the phone being transferred to various support representatives who didn't know what I was talking nor what they were talking about. Not only did I have to explain to each rep what a +800 number was, and that it was not a 1-800 number that I happened to write down incorrectly, but also various basics of international phone number dialing, e.g. that "011" and "+" are equivalent dialing prefixes in the U.S., that I really shouldn't have to explain to a support person from a <i>phone</i> company. What's worse, the database of country codes that the T-Mobile support reps use internally doesn't even list 800 as a known country code.<br />
<br />
In the end, I finally got someone who explained to me that that message is the same one that you receive if you try to dial a 1-900 number from your cell phone (T-Mobile blocks 1-900 numbers from cell phones). Thus, I was told, T-Mobile blocks +800 numbers and there's no way around it. This at least was a sensible explanation of the problem I was seeing. I tried to probe deeper about <i>why</i> T-Mobile would feel the need to block +800 numbers, but all I got was some uninformed rambling about T-Mobile wanting me to pay for my phone calls rather than go around them and get calls for free. When I asked how this was different from 1-800 numbers, which are not blocked by T-Mobile, the support person fell into an incomprehensible babble. At that point I gave up playing the "transfer me to your supervisor" game and resigned myself to the fact that I'd never be able to dial a +800 number from my cell phone.garyhttp://www.blogger.com/profile/01507817403798341041noreply@blogger.com4tag:blogger.com,1999:blog-288842918804161933.post-23532430589610113332010-03-16T12:18:00.000-07:002010-03-16T12:18:13.526-07:00Distributed version control system comparisonsGood, and mostly unbiased, comparisons of git vs. mercurial:<br />
<ul><li><a href="http://stackoverflow.com/questions/1598759/git-and-mercurial-compare-and-contrast/1599930#1599930">http://stackoverflow.com/questions/1598759/git-and-mercurial-compare-and-contrast/1599930#1599930</a></li>
<li><a href="http://code.google.com/p/support/wiki/DVCSAnalysis">http://code.google.com/p/support/wiki/DVCSAnalysis</a></li>
<li><a href="http://www.python.org/dev/peps/pep-0374/">http://www.python.org/dev/peps/pep-0374/</a></li>
</ul>The last one also compares to subversion and bazaar, and includes great example use cases for common operations in all four systems.garyhttp://www.blogger.com/profile/01507817403798341041noreply@blogger.com0tag:blogger.com,1999:blog-288842918804161933.post-65261700172670788722010-03-11T17:48:00.000-08:002010-03-11T17:48:44.152-08:00Running Windows Production ActivationIf you dismissed the Activation dialog box after installing Windows, but now want to go through activation without waiting for the dialog box to nag you again, just run "oobe/msoobe /a" via "Start -> Run".garyhttp://www.blogger.com/profile/01507817403798341041noreply@blogger.com1tag:blogger.com,1999:blog-288842918804161933.post-26481046410626931532010-02-05T12:29:00.000-08:002010-02-05T13:11:45.572-08:00Nexus One hardware key shortcutsI couldn't find these listed online anywhere, so here they are for reference:<div><ul><li>Reboot: <Power>-<Volume Down>-<Trackball></li><li>Boot into bootloader: Hold down <power><Trackball><trackball> while powering up/rebooting.</trackball></power></li></ul><div>
</div></div>garyhttp://www.blogger.com/profile/01507817403798341041noreply@blogger.com1tag:blogger.com,1999:blog-288842918804161933.post-62631509083375444192010-01-24T20:05:00.001-08:002010-12-12T13:56:37.637-08:00Getting GNOME to recognize your Nexus One as a portable music player<div>Programs like <a href="http://banshee-project.org/">Banshee</a> and <a href="http://projects.gnome.org/rhythmbox/">Rhythmbox</a> will automatically recognize when a portable music player (e.g. an iPod, a cell phone that can play music, or one of the many flash-memory music players) is plugged into the computer and let you manage the music on the portable device and synchronize it with your local music library.<br />
<br />
</div><div>On Linux, all of this magic happens via <a href="http://freedesktop.org/wiki/Software/hal">HAL</a>. Specifically, the file <code>/usr/share/hal/fdi/information/10freedesktop/10-usb-music-players.fdi</code> (on Ubuntu 9.10 Karmic) contains the rules to recognize portable music players and define their capabilities. Since the Nexus One is quite recent, it's not listed in that file.</div><a name='more'></a>To teach HAL about the Nexus One, create <code>/etc/hal/fdi/information/nexus-one.fdi</code> with the following contents:<br />
<pre><code><?xml version="1.0" encoding="UTF-8"?>
<deviceinfo version="0.2">
<device>
<match key="info.category" string="storage">
<!-- USB Mass Storage devices that are music players -->
<match key="@storage.originating_device:info.subsystem" string="usb">
<!-- Google, Inc. -->
<match key="@storage.originating_device:usb.vendor_id" int="0x18d1">
<!-- Nexus One -->
<match key="@storage.originating_device:usb.product_id" int="0x4e12">
<addset key="portable_audio_player.access_method.protocols" type="strlist">storage</addset>
<append key="portable_audio_player.output_formats" type="strlist">audio/x-ms-wma</append>
<append key="portable_audio_player.output_formats" type="strlist">audio/3gpp</append>
<append key="portable_audio_player.output_formats" type="strlist">audio/mp4</append>
<append key="portable_audio_player.output_formats" type="strlist">audio/aac</append>
<append key="portable_audio_player.output_formats" type="strlist">audio/vnd.rn-realaudio</append>
<append key="portable_audio_player.output_formats" type="strlist">audio/x-midi</append>
<append key="portable_audio_player.output_formats" type="strlist">audio/x-wav</append>
<append key="portable_audio_player.output_formats" type="strlist">application/ogg</append>
<append key="portable_audio_player.audio_folders" type="strlist">Music/</append>
<!-- common keys set in /usr/share/hal/fdi/information/10freedesktop/10-usb-music-players.fdi -->
<merge key="portable_audio_player.storage_device" type="copy_property">info.udi</merge>
<addset key="info.capabilities" type="strlist">portable_audio_player</addset>
<merge key="info.category" type="string">portable_audio_player</merge>
<append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
</match>
</match>
</match>
</match>
</device>
</deviceinfo></code></pre>garyhttp://www.blogger.com/profile/01507817403798341041noreply@blogger.com2tag:blogger.com,1999:blog-288842918804161933.post-485153102605558512009-12-03T20:54:00.000-08:002009-12-03T21:47:54.987-08:00T-Mobile G1 Requires Data to Make Calls and Send TextsA cautionary tale: I took my T-Mobile G1 (aka HTC Dream) on a trip abroad recently. As I didn't want to pay exorbitant data roaming charges, I turned off all data access on the phone<a href="#disable_data">[1]</a> before I left for my trip. While abroad I did make a few phone calls and sent and received some text messages. However, upon returning I discovered that my T-Mobile bill <strong>did</strong> have data roaming charges, in addition to the expected voice and text message roaming charges.
The data roaming charges were minor—it was quite obvious that the phone wasn't pulling down its usual smorgasbord of daily data—and surprisingly regular—each of the handful of line items on my bill was a multiple of 0.0244 MB. After much polite arguing with a T-Mobile representative, an explanation emerged: If a data connection is available, the G1 will use it when establishing phone calls and sending text messages. It will do so even if all other data access is disabled on the phone. The T-Mobile rep claimed that this is an optimization that allows the G1 to make a "better" connection to the cell tower. As proof she pointed out that each data roaming line item on my bill matched up with a voice call or text message (this was generally true but did require a bit of squinting with one eye closed for the data to actually match as she claimed).
I'm still a bit skeptical of the explanation I received from T-Mobile. But, while I haven't heard of GSM-based phones sending/receiving data while dealing with voice calls or text messages, it sounds plausible and somewhat matches the tiny amount of data that my phone actually consumed.
<div id="disable_data">[1] Uncheck "Settings > Wireless controls > Mobile networks > Data roaming". For good measure I also turned off background data usage, "Settings > Data synchronization > Background data", and disabled automatic refresh in all installed apps that gave me the option to do so.</div>garyhttp://www.blogger.com/profile/01507817403798341041noreply@blogger.com0tag:blogger.com,1999:blog-288842918804161933.post-45884271939371953962009-06-19T21:39:00.001-07:002009-06-19T22:17:06.768-07:00Numbers everyone should know"Numbers everyone should know", <a href="http://research.google.com/people/jeff/stanford-295-talk.pdf">courtesy of Jeff Dean</a>:<pre>
* L1 cache reference 0.5 ns
* Branch mispredict 5 ns
* L2 cache reference 7 ns
* Mutex lock/unlock 100 ns
* Main memory reference 100 ns
* Compress 1K bytes with Zippy 10,000 ns
* Send 2K bytes over 1 Gbps network 20,000 ns
* Read 1 MB sequentially from memory 250,000 ns
* Round trip within same datacenter 500,000 ns
* Disk seek 10,000,000 ns
* Read 1 MB sequentially from network 10,000,000 ns
* Read 1 MB sequentially from disk 30,000,000 ns
* Send packet CA->Netherlands->CA 150,000,000 ns
</pre>
Similarly (and courtesy of Jeff Dean and Sean Quinlan), "The Joys of Real Hardware" lists the typical problems a new cluster will experience in its first year:<ul><li>~0.5 <span style="color: rgb(255, 0, 0);">overheating</span> (power down most machines in <5 mins, ~1-2 days to recover)</li><li>~1 <span style="color: rgb(255, 0, 0);">PDU failure</span> (~500-1000 machines suddenly disappear, ~6 hours to come back)</li><li>~1 <span style="color: rgb(255, 0, 0);">rack-move</span> (plenty of warning, ~500-1000 machines powered down, ~6 hours)</li><li>~1 <span style="color: rgb(255, 0, 0);">network rewiring</span> (rolling ~5% of machines down over 2-day span)</li><li>~20 <span style="color: rgb(255, 0, 0);">rack failures</span> (40-80 machines instantly disappear, 1-6 hours to get back)</li><li>~5 <span style="color: rgb(255, 0, 0);">racks go wonky</span> (40-80 machines see 50% packet loss)</li><li>~8 <span style="color: rgb(255, 0, 0);">network maintenances</span> (4 might cause ~30-minute random connectivity losses)</li><li>~12 <span style="color: rgb(255, 0, 0);">router reloads</span> (takes out DNS and external vips for a couple minutes)</li><li>~3 <span style="color: rgb(255, 0, 0);">router failures</span> (have to immediately pull traffic for an hour)</li><li>~dozens of minor <span style="color: rgb(255, 0, 0);">30-second blips for dns</span></li><li>~1000 <span style="color: rgb(255, 0, 0);">individual machine failures</span></li><li>~thousands of <span style="color: rgb(255, 0, 0);">hard drive failures</span></li></ul>in addition to "<span style="color: rgb(255, 0, 0);">slow disks, bad memory, misconfigured machines, flaky machines, </span>etc.".garyhttp://www.blogger.com/profile/01507817403798341041noreply@blogger.com0tag:blogger.com,1999:blog-288842918804161933.post-74650522066642373652009-05-12T11:26:00.000-07:002009-05-12T11:30:15.177-07:00Getting out of a full-screen Citrix session in LinuxIf you're running the Citrix ICA client under Linux and your Citrix session runs in full-screen mode, you can press Ctrl-F2 to pass the following keystroke to the host Linux desktop rather than the Citrix session. For example, if the Citrix session is connected to a Windows desktop, then pressing Alt-Tab in full-screen mode will normally send the Alt-Tab to Windows. Pressing Ctrl-F2 followed by Alt-Tab will send the Alt-Tab to the Linux desktop instead.garyhttp://www.blogger.com/profile/01507817403798341041noreply@blogger.com0tag:blogger.com,1999:blog-288842918804161933.post-36066267448574607052008-12-12T01:32:00.001-08:002010-12-12T14:00:16.959-08:00Creating a myopenid.com SSL certificate to use on your phone<a href="http://www.myopenid.com/">www.myopenid.com</a> is an OpenID provider that allows logging in via an SSL certificate saved in your web browser rather than by typing in a password. From a normal web browser you can just click on the "Create Certificate" button on their "Authentication Settings" page and your browser talks to the <a href="http://www.myopenid.com/">myopenid.com</a> website and gets a certificate that it then stores in its local certificate store. Unfortunately the web browser in my <a href="http://en.wikipedia.org/wiki/Nokia_E51">Nokia E51</a> cell phone (a <a href="http://opensource.nokia.com/projects/S60browser/">Series 60 WebKit fork</a>) doesn't seem to support generating the certificate request when you click on "Create Certificate".<br />
<br />
To get around this:<br />
<br />
<ol><li>Go to the <a href="http://www.myopenid.com/">www.myopenid.com</a> "Authentication Settings" page from Firefox on your desktop computer. Generate a new certificate like you normally would (except that you probably want to name it after your phone).</li>
<li>Once it's done note the serial number listed for the new certificate under the "Manage Your SSL Client Certificates" heading.</li>
<li>Then open Firefox preferences and go to "Advanced > Encryption > View Certificates > Your Certificates".</li>
<li>Find the *.myopenid.com certificate in the list that has the matching serial number and click "Backup...".</li>
<li>Firefox will now prompt you for a file to save the certificate in, a password to protect that file with (you'll have to type this one in on the phone), and maybe your Firefox master password (depending on your settings).</li>
<li>Now you have the certificate in a file. Find the file whereever you saved it to and use your favorite method of sending it to the phone. I just sent it via bluetooth but you should also be able to use email, SMS, USB, etc.</li>
<li>Open the file on your phone. The phone will prompt you for the password you used to protect the file when you saved it in Firefox.</li>
<li>From here the procedure varies by phone. For my S60 3rd Edition FP1 phone, the phone told me that it found one private key and one personal certificate in the file and asked me if I'd like to save them to the phone's key store. Since I hadn't used the phone's key store before, it also asked me to set a password for the key store. Then it saved the certificate and private key.</li>
<li>After the above is all done, you can delete the file from your phone and from your computer.</li>
<li>Since Firefox should have its own certificate to authenticate to <a href="http://www.myopenid.com/">www.myopenid.com</a>, you can now delete this certificate in Firefox (only the one that you backed up, not all of your *.myopenid.com certificates!) using the aptly-named "Delete..." button.</li>
<li>If you now go to <a href="http://www.myopenid.com/">www.myopenid.com</a> in your phone's web browser and select "Sign in with an SSL certificate", the phone should use the new certificate and you shouldn't need to enter your <a href="http://www.myopenid.com/">www.myopenid.com</a> password.</li>
<li>If you want to verify that the certificate made it to the right place, and you're on a S60 3rd Edition FP1 phone, go to "Tools > Settings > General > Security > Certificate management > Personal certificates". You should see your *.myopenid.com certificate listed there.</li>
</ol><div><br />
</div>garyhttp://www.blogger.com/profile/01507817403798341041noreply@blogger.com0tag:blogger.com,1999:blog-288842918804161933.post-87588001765233899192008-03-04T01:46:00.000-08:002008-03-04T01:58:05.434-08:00Flying in EuropeI'm planning a trip to Barcelona, Spain and Birmingham, UK right now and figuring out the best way to get from one to the other is surprisingly difficult.
If money doesn't matter, then it's relatively easy to find a flight on any of the major airline booking websites. But be prepared to 1) spend <span style="font-weight: bold;">4-5x</span> as much money and 2) be stuck with weird, long connections as there aren't many direct flights from Barcelona to Birmingham.
The answer is to fly one of the myriad discount airlines. The problem though is that there's no centralized website that lets you search the tickets of all of these discount airlines from one place. A few different websites try (e.g. <a href="http://www.wegolo.com">www.wegolo.com</a>, <a href="http://www.sidestep.com">www.sidestep.com</a>, <a href="http://www.skyscanner.com">www.skyscanner.com</a>), but none of them have complete coverage of all airlines (or even complete coverage of any one airline it seems). Furthermore, even with the discount airlines, there's still a dearth of direct flights. So you end up planning a flight to a nearby city and connecting by train. But now you have to start scouring the map for all of the airports within 1-2hr train ride of your destination. And there's <span style="font-weight: bold;">no</span> website that's designed for that.
Is it so much to ask for a comprehensive and thorough multi-modal transportation website that will tell me the fastest, cheapest, and most hassle-free way to get from point A to point B anywhere in the world using whatever combination of airplanes, trains, buses, ferries, etc. is most suited to the task and within my constraints of departure/arrival times?garyhttp://www.blogger.com/profile/01507817403798341041noreply@blogger.com0tag:blogger.com,1999:blog-288842918804161933.post-66345288442736627122008-02-15T13:30:00.000-08:002008-02-15T17:05:05.702-08:00Nokia E51 + OS X + T-Mobilei got my new nokia e51 setup to access the internet from the phone, paired it with my mac, and got the mac setup to connect to the internet via the phone over bluetooth. but every time i tried to connect the mac would complain about not being able to contact the ppp server.
it took me a bit to figure out the one extra step needed. the e51 (and probably other series 60 3rd edition phones) requires you to enter the access point name to be used for tethered connections (i.e. computer via bluetooth) separately from the access point name to be used for connections originating on the phone. even though in practice both of these names are going to be the same.
in short, after everything else you need to do to configure the phone and the laptop for tethered access, go to "Settings > Connection > Packet data > Access point" on the phone and enter "internet2.voicestream.com" (or "internet3.voicestream.com" or whatever access point you're using). this should be the same string as what's under "Settings > Connection > Access points > T-Mobile Internet > Access point name".garyhttp://www.blogger.com/profile/01507817403798341041noreply@blogger.com0tag:blogger.com,1999:blog-288842918804161933.post-39404105534094774432007-10-18T18:53:00.000-07:002007-10-18T18:58:57.187-07:006to4 IPv6 on OSX 10.4 is a no-goyou'd think something like this would've been caught before release, but it turns out that all current versions of osx 10.4 have a byte order bug that causes 6to4 tunnels to be setup with the wrong address. when the machine's ipv4 address is converted to an ipv6 6to4-style address, osx incorrectly reverses the bytes, resulting in a useless address :(
<a href="http://lists.apple.com/archives/ipv6-dev/2007/Sep/msg00000.html">more info at apple's ipv6 list
</a>garyhttp://www.blogger.com/profile/01507817403798341041noreply@blogger.com2tag:blogger.com,1999:blog-288842918804161933.post-35117500650583882692007-07-11T22:38:00.000-07:002007-07-11T22:39:42.323-07:00Kid Nationexploitative and yet intriguing: <a href="http://www.cbs.com/primetime/kid_nation/">kid nation</a>.garyhttp://www.blogger.com/profile/01507817403798341041noreply@blogger.com0