tag:blogger.com,1999:blog-27588850074284653092024-03-09T00:12:15.994+00:00Scott WallaceTechnology. Photography. Learning. Internet. Food. Science. Family. Cars. Comedy. Cake. Trance. ... more or less.Scott Wallacehttp://www.blogger.com/profile/07847312272237567985noreply@blogger.comBlogger84125tag:blogger.com,1999:blog-2758885007428465309.post-81488101145543579662015-11-13T14:28:00.000+00:002019-05-01T15:24:29.496+01:00Fixing 'Driver: San Francisco' in OS X 10.10.5<p>The 10.10.5 update for OS X included a newer version of <a href="http://curl.haxx.se/">cURL</a>. This change breaks 'Driver: San Francisco' (via <a href="http://store.steampowered.com/browse/mac/">Steam</a>).</p><p>Luckily I worked out a fairly simple fix. The short of it is that you need to override the default OS X libcurl library, when running the game, with an older version. The newer version one that comes with OS X 10.10.5 will remain in place and work for everything else.</p><p><strong>Download, <a href="https://opensource.apple.com/tarballs/curl/curl-83.1.2.tar.gz">curl v83.1.2</a></strong><br />
<pre class="code">cd /tmp
curl -O https://opensource.apple.com/tarballs/curl/curl-83.1.2.tar.gz
</pre></p><p><strong>Extract the source</strong><br />
<pre class="code">tar xvfz curl-83.1.2.tar.gz
cd curl-83.1.2/curl
</pre></p><p><strong>Compile curl with i386 architecture (this is to match the 'Driver: San Francisco' architecture)</strong><br />
<pre class="code">export CFLAGS="-arch i386"
export LDFLAGS="-arch i386"
./configure --with-gssapi --enable-hidden-symbols --disable-static --enable-threaded-resolver --with-darwinssl --without-libssh2
make
</pre></p><p><strong>Install the older version of curl in <code>/usr/local</code></strong><br />
<pre class="code">make install
</pre></p><p><strong>Launch 'Driver: San Francisco' with the newly compiled older library</strong><br />
<pre class="code">cd ~
DYLD_ROOT_PATH=/usr/local/lib ~/Library/Application\ Support/Steam/steamapps/common/Driver\ San\ Francisco/Driver\ San\ Francisco.app/Contents/MacOS/DriverNG
</pre></p><p>I hope this works for you as well as it worked for me!</p>Scott Wallacehttp://www.blogger.com/profile/07847312272237567985noreply@blogger.com0tag:blogger.com,1999:blog-2758885007428465309.post-42052743324226448192014-03-03T19:32:00.001+00:002020-09-04T07:30:24.036+01:00EASYACC Multi-port USB charger review<p><b><a href="https://easyacc.com/" target="_blank">EasyAcc</a> 25W USB charger</b> K-5B25 <br />
Multi-port USB charger <br />
<b>Purchased:</b> 2014-03-01</p><br />
<p><u>First Impressions</u><br />
<ul><li>Nice size for what it is. It's not small but it's not too big either.</li>
<li>Good build quality. Feels solid, not cheap -- kinda like an Apple MacBook charger.</li>
<li>Port selection seems a little random. 2.1A, 1.3A, 2.1A, 1.0A, 1.0A.</li>
<li>There's probably a good explanation for it. Whatever.</li>
<li>Clearly labelled ports and their charging values are printed on the back. Handy.</li>
<li>Universal power cable. IEC_60320 C7/C8. Yay - standards!</li>
<li>No obvious manual. Good. No waste of paper.</li>
</ul></p><br />
<p>That's it. I like it.</p><br />
<p><u>Performance</u><br />
Unknown.</p><br />
<p><u>Longevity</u><br />
I'll see how it goes. But for now, going strong.</p><br />
<p><u>Could it be better?</u><br />
<ul><li>They could print a permalink URL on the device for a support and FAQ page. Links to the online manual a must.</li>
<li>Put the charging ports into an order of some sort. I'm nitpicking.</li>
</ul></p>Scott Wallacehttp://www.blogger.com/profile/07847312272237567985noreply@blogger.com0tag:blogger.com,1999:blog-2758885007428465309.post-28245468913046185352014-02-10T22:46:00.000+00:002014-02-10T23:03:33.718+00:00Is Rapid Development a security threat?The business world borrows Open Source software methodologies so that they can become agile (little a). Release early, release often. Continuous builds. Unit testing. This works out well. Lower costs, quicker time-to-market, more reliable, repeatable and redundant.<br />
<br />
We're into update cycles now. We know about version numbers, feature sets, upgrades, updates. That latest security thing? Just update it. Make sure it says v15.0.20140210_Build_29e4. It's mundane. One of my browser's plugins wants an update. And my phone has some. And my tablet. TV. Car. Meh. It's probably just a new wallpaper option, anyway. Via the new in-app store! I'll reboot on the weekend and it can apply the updates and reboot three times if it wants to. I'll make some breakfast and eat it with my daughter, watching <a href="http://en.wikipedia.org/wiki/Regular_Show">Regular Show</a>.<br />
<br />
But could Rapid Development actually be providing crackers with the exact information they need?<br />
<br />
A committed attacker probably has about a week to crack <i>a lot</i> of systems. But where should a potential cracker go to look for such weaknesses? Backlogs, issue lists and change logs. "It crashes right after I click save. Here's the stacktrace and corresponding log entries: ..." "oops. forgot to uncommnt the call to the fn() that cleans up all the tmp files before we exit(). Sorry. Pull request
<br />
6ac1649f26daed8e1e0ccafba43568a67ed00686." Thanks for the exploit, fellas. <br />
<br />
<div style="text-align: left;">
Perhaps this is why <a class="g-profile" href="https://plus.google.com/116899029375914044550" target="_blank">+Google</a> never reply to their users? "Customer service rule 2: Just read what people are complaining about, don't say anything, fix the problem, release the update, announce '..., bug fixes, ...' and move on."</div>
Scott Wallacehttp://www.blogger.com/profile/07847312272237567985noreply@blogger.com0tag:blogger.com,1999:blog-2758885007428465309.post-56456067149121143932012-05-19T09:39:00.000+01:002014-08-17T10:54:27.429+01:00Prevent the FitBit daemon from filling your system logsOn the Mac the <a href="http://amzn.to/1taIO7Y" rel="nofollow" target="_blank">FitBit</a> daemon logs to the <span style="font-family: courier;">system.log</span> but it can be a bit verbose.<br />
<br />
The following change to the FitBit launch daemon should send the output to its own file: <br />
<pre class="code">--- com.fitbit.fitbitd.plist.orig 2012-05-19 09:24:54.000000000 +0100
+++ com.fitbit.fitbitd.plist 2012-05-19 09:06:51.000000000 +0100
@@ -44,5 +44,9 @@
<false/>
<key>Disabled</key>
<false/>
+ <key>StandardErrorPath</key>
+ <string>/var/log/fitbitd.log</string>
+ <key>StandardOutPath</key>
+ <string>/var/log/fitbitd.log</string>
</dict>
</plist>
</pre>
Don't forget to create the file ahead of time and give it the correct permissions. <br />
<pre class="code">$ sudo touch /var/log/fitbitd.log && sudo chown nobody: /var/log/fitbitd.log</pre>
Restart fitbitd: <br />
<pre class="code">$ cd /Library/LauchDaemons
$ sudo launchctl unload com.fitbit.fitbitd.plist
$ sudo launchctl load com.fitbit.fitbitd.plist
</pre>
Scott Wallacehttp://www.blogger.com/profile/07847312272237567985noreply@blogger.com1tag:blogger.com,1999:blog-2758885007428465309.post-71730146991498553032012-03-12T20:30:00.001+00:002020-09-09T11:29:50.534+01:00Getting Heimdall to work on your MacI have a <a href="http://amzn.to/1taFutF" rel="nofollow" target="_blank">Samsung Galaxy</a> Android phone and a Mac. I'm a bit of a hacker and like the hardware I own to do as it's told. Unfortunately most of the software available for flashing a Samsung phone (Odin) is for Windows. There's no reason that a Mac can't do these things but most of the hackers out there run Windows or Linux so that's what the software is made for.<br />
<br />
However, there are some Geniuses out there who wrote a multi-platform piece of software called, <a href="http://www.glassechidna.com.au/products/heimdall/">Heimdall</a>. Unfortunately, like many, I've had problems with this piece of software and I wrote it off as yet-another-piece-of-multi-platform-software-that-doesn't-actually-work.<br />
<br />
Specifically, the issue I was having was:<br />
<br />
<pre class="code">$ heimdall flash –kernel zImage
Heimdall v1.3.1, Copyright © 2010-2011, Benjamin Dobell, Glass Echidna
http://www.glassechidna.com.au
This software is provided free of charge. Copying and redistribution is
encouraged.
If you appreciate this software and you would like to support future
development please consider donating:
http:/www.glassechidna.com.au/donate
Initialising connection...
Detecting device...
Claiming interface...
ERROR: Claiming interface failed!
$
</pre>
<br />
<br />
Frustrating.<br />
<br />
One day, however, I'd had enough. I was determined to get to the bottom of the problem and get it working. Luckily, it wasn't that hard.<br />
<br />
As a Samsung device owner I had, of course, installed their awful piece of software, <a href="http://www.samsung.com/uk/support/usefulsoftware/KIES/JSP">Kies</a>. This useless software is the cause of the problem. More accurately, the Kernel Extensions that they load:<br />
<br />
<pre class="code">$ kextstat | grep -v apple
Index Refs Address Size Wired Name (Version)
55 0 0x574aa000 0x5000 0x4000 com.roxio.BluRaySupport (1.1.6) <54 53 52 51 49 17 12 11 10 7 6 5 4 3 1>
70 0 0x57574000 0x3000 0x2000 <strong>com.devguru.driver.SamsungComposite</strong> (1.2.4) <33 4 3>
72 0 0x57831000 0x7000 0x6000 <strong>com.devguru.driver.SamsungACMData</strong> (1.2.4) <71 33 5 4 3>
94 0 0x57674000 0x3000 0x2000 <strong>com.devguru.driver.SamsungACMControl</strong> (1.2.4) <33 4 3>
132 0 0x580ac000 0xd2000 0xd1000 com.vmware.kext.vmx86 (3.1.2) <11 5 4 3 1>
133 0 0x5779f000 0xc000 0xb000 com.vmware.kext.vmci (3.1.2) <5 4 3 1>
134 0 0x577ab000 0x6000 0x5000 com.vmware.kext.vmioplug (3.1.2) <33 29 5 4 3 1>
135 0 0x57745000 0xa000 0x9000 com.vmware.kext.vmnet (3.1.2) <5 4 3 1>
137 3 0x6c30e000 0x29000 0x28000 org.virtualbox.kext.VBoxDrv (4.0.8) <7 5 4 3 1>
138 0 0x5804d000 0x7000 0x6000 org.virtualbox.kext.VBoxUSB (4.0.8) <137 44 33 7 5 4 3 1>
139 0 0x5791d000 0x4000 0x3000 org.virtualbox.kext.VBoxNetFlt (4.0.8) <137 7 5 4 3 1>
141 0 0x57825000 0x3000 0x2000 org.virtualbox.kext.VBoxNetAdp (4.0.8) <137 5 4 1>
</pre>
<br />
<br />
I've highlighted the offending extensions. These need to be unloaded to get Heimdall to work correctly.<br />
<br />
So, let's unload them:<br />
<br />
<pre class="code">$ sudo kextunload -b com.devguru.driver.SamsungComposite
$ sudo kextunload -b com.devguru.driver.SamsungACMData
$ sudo kextunload -b com.devguru.driver.SamsungACMControl
</pre>
<br />
<br />
... and that's it. Heimdall should now work as advertised. At this point I recommended uninstalling Kies and eradicating all evidence of its existence.<br />
<br />
Have fun with your rooted and newly flashed Samsung device!<br />
<br />Scott Wallacehttp://www.blogger.com/profile/07847312272237567985noreply@blogger.com79tag:blogger.com,1999:blog-2758885007428465309.post-18911934479193097642011-10-30T11:55:00.000+00:002013-01-31T16:06:24.457+00:00Pulling a file out a bagI have been playing with <a href="http://www.opscode.com/chef/">Chef</a> recently in order to replace the hand-crafted automatic deployment system that we've created over the last few years. There are plenty of cookbooks, recipes and examples available on the Internet but I wasn't able to find a recipe that would build a multi-line file from the contents of a data bag. So using a little bit of Ruby I was able to build an array of strings in memory before writing the whole thing out to a file.<br />
<br />
Here's my example which builds the <tt>/root/.ssh/authorized_keys</tt> file from a data bag within Chef:
<br />
<pre class="code">
key_list = Array.new
ssh_users = data_bag("ssh-authorized_keys")
ssh_users.each do |id|
ssh_user = data_bag_item("ssh-authorized_keys", id)
key_list.push(ssh_user["key"])
end
file "/root/.ssh/authorized_keys" do
content key_list.join("\n")
end
</pre>Scott Wallacehttp://www.blogger.com/profile/07847312272237567985noreply@blogger.com1tag:blogger.com,1999:blog-2758885007428465309.post-37932616200139501002010-01-28T07:34:00.000+00:002011-10-29T13:04:23.864+01:00CloudifiedWith the recent advancement of HD content, storage requirements are becoming aggressive and require higher networking bandwidth than ever before. Disks are getting larger and cheaper but most modern consumer computer devices don't have enough internal storage to handle all of our requirements when it comes to photos, music, video, documents, etc.; and, to make matters worse, on a daily basis I use three to four different computers, all of which require backing up in case anything should go wrong.<br />
<br />
Right now reliable, safe, long-term data storage means having multiple, redundant disks on the network - which can be a considerable cost. Our home requires somewhere in the vicinity of 2-4TB of storage to handle everything comfortably, with some room for growth. Whilst this is not a lot of storage in today's terms, any future-proof device would still be quite large, noisy, hot and have a low spouse acceptance factor.<br />
<br />
So, what's the answer?<br />
<br />
Cloud computing and storage has always appealed to me and have reached the point where they're just as good, if not better, than local alternatives.<br />
<br />
The home network will always require some local storage. Home broadband hasn't yet reached the level where everything can be streamed from the Internet as an on-demand service - not in the UK at any rate (and certainly not in the US or Australia). So, a local 1-2TB, low-power NAS for <em>transient</em> video data is still required and, because of the nature of the content, backups aren't required.<br />
<br />
Music is roughly in the same camp. Since most of the music is synchronised with a portable music player, in the event of an disaster, a simple re-sync should be sufficient.<br />
<br />
Photos are a tricky call and one that I've had to take quite a firm stance on. Typically, when taking a bunch of photo only a few are ever really any good and worth showing to people. What do we do with the rest of them? They usually languish in a folder somewhere getting pushed from computer to computer, medium to medium without ever being accessed again. So, I say, get rid of 'em. The rest should be put into the cloud for sharing with the rest of humanity. Flickr, PhotoBucket, Picasa... take your pick. Let them worry about the storage and bandwidth.<br />
<br />
Documents are fairly easy. There are plenty of services out there that will do simple, cloud-based file storage sitting on top of Amazon's S3 or Rackspace. Again, take your pick and get them off your local disk.<br />
<br />
If you take this approach it becomes fairly obvious that your local PC, laptop or tablet (hello, <a href="http://apple.com/ipad/">iPad</a>!) becomes a commodity device as it simply consists of an OS and a bunch of applications that allow you to access the cloud and your content. Nothing of consequence is ever stored locally. It also means that you become free and untethered to a particular machine or environment.<br />
<br />
So, what happens if the cloud disappears?<br />
<br />
First of all, <strong>all</strong> of The Cloud would have to disappear at once, which is unlikely. Secondly, you can always backup your data. There are services that offer backups of your cloud-based content. <a href="http://backupify.com/">Backupify</a> are an example of such an organisation. Their restore and export procedures are not yet complete but their experts will help you out should the worst happen.<br />
<br />
As a geek I also tend to have a slightly above-average set of requirements when it comes to the Internet; all of the above as well as running a blog, a micro-blog, having several domains, source code repositories, etc. all of which have to be hosted somewhere. Previously the sensible option was to host these myself. However, recently I've come to the conclusion that out-of-the-box software (such as <a href="http://wordpress.org/">Wordpress</a> & Google Mail) do a pretty good job as they come and no longer require me to install, configure, upgrade and maintain software -- leaving me with more time to do other things.<br />
<br />
Not only have I save myself some effort but I've also saved quite a bit of money, as a majority of the cost before was running a server. The cloud now provides a plethora of services for free (usually subsidised by advertising) that have relatively low-cost upgrade paths also providing scalability, should you need it.<br />
<br />
The following table is a simple side-by-side cost comparison for the content that I was hosting myself previously versus the cost, today, of utilising cloud technologies:<br />
<br />
<table><tbody>
<tr><th>Function</th> <th>Hosted solution</th> <th>Yearly cost</th> <th>Cloud Solution</th> <th>Yearly cost</th></tr>
<tr><td>Server</td><td><a href="http://www.1and1.co.uk/">1and1.co.uk</a></td><td>£720</td><td>N/A</td><td>£0</td></tr>
<tr><td>Email</td><td><a href="http://exim.org/" title="Exim">Exim</a>, <a href="http://www.dovecot.org/">Dovecot</a>, <a href="http://www.horde.org/">Horde</a> & <a href="http://www.horde.org/imp/">Imp</a></td><td>£0</td><td><a href="http://www.google.com/apps/" title="Google Apps">Google Apps</a> Mail</td><td>£0</td></tr>
<tr><td>Calendar</td><td>
<a href="http://www.horde.org/">Horde</a> & <a href="http://www.horde.org/kronolith/">Kronolith</a></td><td>£0</td><td>
<a href="http://www.google.com/apps/" title="Google Apps">Google Apps</a> Calendar</td><td>£0</td></tr>
<tr><td>Contacts</td><td>
<a href="http://www.horde.org/">Horde</a> & <a href="http://www.horde.org/turba/">Turba</a></td><td>£0</td><td>
<a href="http://www.google.com/apps/" title="Google Apps">Google Apps</a> Contacts</td><td>£0</td></tr>
<tr><td>Docs and spreadsheets</td><td>Microsoft Office</td><td>£160 (£320 over 2 years)</td><td>
<a href="http://www.google.com/apps/" title="Google Apps">Google Apps</a> Docs</td><td>£0</td></tr>
<tr><td>Blog</td><td>
<a href="http://www.wordpress.org/">Wordpress</a> software</td><td>£0</td><td>
<a href="http://wordpress.com/">Wordpress</a> hosting</td><td>£7 domain mapping £16 custom CSS</td></tr>
<tr><td>Online filesystem</td><td>SSH FS</td><td>£0</td><td><a href="http://www.dropbox.com/">Dropbox</a></td><td>£0</td></tr>
<tr><td>Photos</td><td><a href="http://gallery.menalto.com/">Gallery 2</a></td><td>£0</td><td><a href="http://www.flickr.com/">Flickr Pro</a></td><td>£16</td></tr>
<tr><td>Encryption</td><td>SSL certificates</td><td>£35</td><td>(included)</td><td>£0</td></tr>
<tr><td>Backups</td><td>Custom script</td><td>£0</td><td><a href="http://www.backupify.com/">Backupify</a></td><td>£0</td></tr>
<tr><th><strong>Total</strong></th> <th></th> <th><strong>£915</strong></th> <th></th> <th><strong>£39</strong></th></tr>
</tbody></table>
<br />
Not bad, eh?<br />
<br />
I still, however, have some concerns about turning all my data over to the cloud. Will these companies disappear one day, without a trace - taking my data with them? Possibly. Will the data be backed up somewhere? Maybe. Will I be able to access it? Probably not.<br />
<br />
These questions are unanswerable right now and only time will tell - but I really can't think of a better way of doing it, today, without having a vast, "expensive" storage array at home. Hopefully, someday soon, there will be a breakthrough in storage technology and I can store my ever-growing digital life safely and locally, somewhere that I trust. But, if that does happen, you can be sure that content generators will find a way to use it -- resulting in an arms race again, pushing the limits of storage technology ever forward.<br />
<br />
I do, however, feel lighter for having made the move.Scott Wallacehttp://www.blogger.com/profile/07847312272237567985noreply@blogger.com1tag:blogger.com,1999:blog-2758885007428465309.post-32017565074771195922010-01-04T00:40:00.000+00:002013-01-31T16:03:30.315+00:00Built-in Wi-Fi scanner in Mac OS XAfter having another wireless network stomp all over mine, it was time to look for a less crowded channel. With Snow Leopard a lot of the third-party scanner tools don't seem to work.<br />
<br />
Apparently, Apple modified the Airport Extreme drivers and removed the API. However, for a simple scan, the one built into Mac OS X is sufficient.<br />
<br />
To perform a scan, use the '-s' option. A GUI wrapper can be <a href="http://www.wlanbook.com/mac-os-x-wifi-scanner-snow-leopard/">found here</a>.
<br />
<pre class="code">
$ /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -s
</pre>Scott Wallacehttp://www.blogger.com/profile/07847312272237567985noreply@blogger.com0tag:blogger.com,1999:blog-2758885007428465309.post-7075498332547184042009-12-06T20:13:00.000+00:002019-05-01T15:28:03.431+01:00Bulk uploading email into GmailRecently I joined the hoards of people who use <a href="http://google.com/mail/">Gmail</a> as their primary mail service. It has all the bells and whistles and provides<a href="" title="Ok, 8GB -- but that's a lot of mail!"> virtually unlimited</a> space for storing email. I won't go into all the <a href="http://mail.google.com/mail/help/about.html">cool features</a> but let's just say, it rocks.<br />
<br />
The question is, how do we get all our old email into our shiny new Gmail account?<br />
<br />
The answer is fairly straight forward but my method requires a bit of know-how and a *NIX mail client.<br />
<br />
First, the overview: Basically I used <a href="http://en.wikipedia.org/wiki/Alpine_%28e-mail_client%29">Alpine</a> (the mail client formally known as 'Pine') and Gmail's IMAP abilities to bulk save the messages from the local folders to Gmail. Primarily I was concerned with my 'Sent' items from the past decade but this will work with any folder(s):<br />
<br />
<ol><li> <a href="http://mail.google.com/support/bin/answer.py?hl=en&answer=77695">Enable IMAP in Gmail</a>.</li>
<li>Install Alpine on your *NIX workstation or server.</li>
<li>Configure Alpine to see to your existing email folders.</li>
<li> <a href="http://www.physics.umd.edu/pnce/user-docs/HowTos/pine-with-imap.html">Configure Alpine to talk via IMAP</a> to Gmail: <br />
<ul><li>Inbox: {imap.gmail.com/ssl/user=<em>username</em>@gmail.com}inbox</li>
<li>Collection List: <ul><li>Server: imap.gmail.com/ssl/user=<em>username</em>@gmail.com</li>
</ul></li>
</ul></li>
<li>Go to the folder you wish to bulk upload to Gmail.</li>
<li>Select all messages (shortcut keys: ';' followed by 'A').</li>
<li>Save all messages (shortcut keys: 'A' followed by 'S').</li>
<li>Select the destination folder (shortcut keys: CTRL-T)</li>
<li>Choose your Gmail collection and then the destination folder.</li>
<li>Hit Enter to bulk save the messages into Gmail.</li>
<li>Rinse and repeat for any other folders.</li>
</ol><br />
Using this method, I was able to bulk upload approx. 10,000 messages from the past decade of my Sent messages in approx. 1 hour (this will depend on your bandwidth, of course!).Scott Wallacehttp://www.blogger.com/profile/07847312272237567985noreply@blogger.com1tag:blogger.com,1999:blog-2758885007428465309.post-43491536420262670002009-12-05T00:48:00.000+00:002013-01-31T16:07:11.770+00:00Enabling SNMP in Mac OS X 10.6 (Snow Leopard)Under Snow Leopard there is a slight change to the way services are enabled.<br />
<pre class="code">
-w Overrides the Disabled key and sets it to false. In previous versions, this
option would modify the configuration file. Now the state of the Disabled key
is stored elsewhere on-disk.
</pre>
<br />
So, to enable the SNMP daemon correctly:<br />
<pre class="code">
$ sudo launchctl load -w /System/Library/LaunchDaemons/org.net-snmp.snmpd.plist
</pre>Scott Wallacehttp://www.blogger.com/profile/07847312272237567985noreply@blogger.com2tag:blogger.com,1999:blog-2758885007428465309.post-34412683890656297702009-12-04T22:49:00.000+00:002011-10-29T13:11:39.869+01:00The correct way to automount a Samba/CIFS share in Mac OS XFrom: <a href="http://www.mac-forums.com/forums/switcher-hangout/42164-automatically-mount-samba-share.html">http://www.mac-forums.com/forums/switcher-hangout/42164-automatically-mount-samba-share.html</a><br />
<ol><br />
<li>Visit the share in question so that Mac OS X mounts it.</li>
<li>Run “Sytem Preferences”.</li>
<li>Select “Accounts”.</li>
<li>Select the User you want to change by double clicking.</li>
<li>Click on “Login Items”.</li>
<li>Click the + button.</li>
<li>Select the Samba/CIFS share you want to mount. It should now show as a new "Volume item".</li>
<li>Close “System Preferences”.</li>
<li>Beer.</li>
</ol>Scott Wallacehttp://www.blogger.com/profile/07847312272237567985noreply@blogger.com0tag:blogger.com,1999:blog-2758885007428465309.post-16690180671505373472009-11-29T18:47:00.000+00:002013-01-31T16:08:47.156+00:00Facebook updates in your Twitter streamIf you're like me you'll find it difficult to keep a track of everyone's status - especially when they're across multiple networks. Most people tend to use Facebook but I prefer Twitter. So, what to do? Merge them, of course!<br />
<br />
<ol>
<li>First, you will need to install the <a href="http://apps.facebook.com/rssnewsfeedreader/">RSS News Feed reader</a> application in Facebook.</li>
<li>Once installed, take note of the RSS feed URL.</li>
<li>Create yourself a new <a href="http://twitter.com/">Twitter</a> account. This account will be used to hold all your Facebok friends' updates.</li>
<li>Create an account on <a href="http://twitterfeed.com/">Twitter Feed</a>.</li>
<li>Add your Facebook RSS feed URL (from step 2) to your Twitter Feed account (from step 4) and have it post to the new Twitter account you created in step 3.</li>
<li>In your usual Twitter account simply follow the new Twitter account that should now contain all your friends' Facebook status updates.</li>
<li>Make yourself a cup of tea. Go on. You've earned it. You tech-wizard, you.</li>
</ol>
<br />
<strong>Update:</strong> To eliminate the annoying <code>&nbsp;</code>s, you could pass it through a simple PHP filter, if you're lucky enough to have a server connected to the Interwebs on a 24x7 basis:<br />
<br />
<pre class="code">
<?php print str_replace("&nbsp;", " ", file_get_contents("http://www.gencolee.com/fb/newsfeedrss.php?u=user_id&s=feed_id")); ?>
</pre>Scott Wallacehttp://www.blogger.com/profile/07847312272237567985noreply@blogger.com0tag:blogger.com,1999:blog-2758885007428465309.post-67261567001135350642009-11-17T23:58:00.000+00:002013-01-31T16:19:39.711+00:00From the Archive: Turnham Green frustrations<p>
In the summer of 2001, I used to commute to Richmond in London via Turnham Green on the District Line. I was frustrated that the Picadilly Line trains didn't stop there during the day -- when I really wanted them to. So, to find out why, I asked London Underground Limited.
</p>
<p>
I had thought that their answer had been lost in the sands of time -- but, as it turns out, it was sitting in my email archive all along. So, for posterity's sake, here it is:
</p>
<blockquote>
<p>
<strong>Is there a reason why the Picadilly line doesnt stop at Turnham Green during normal hours?</strong>
</p>
<p>
Dear Mr Wallace
</p>
<p>
Thank you for your recent email enquiry.
</p>
<p>
The level of service provided at individual Underground stations is subject to regular review, taking into account substantial changes in demand, be they actual or perceived. Passenger opinion, including responses to origin and destination surveys, forms an essential part of the review process, as does the potential increase in passenger numbers created by expansion of residential or commercial development in the vicinity of stations.
</p>
<p>
In determining whether additional stops can be justified within an existing route, consideration has to be given to the effect on overall journey times and the availability of resources to maintain required frequencies. Since September 1996 the Piccadilly Line timetable has offered by far the most intensive service anywhere on the London Underground network. Trains are scheduled at two or three minute intervals between Arnos Grove and Acton Town for the greater part of the day, which, due to present constraints in track and signalling system capacity, can only be achieved by running non-stop between Hammersmith and Acton Town, six minutes being allowed in the schedule for this.
</p>
<p>
During early morning and late night periods, when trains on both the District and Piccadilly Lines run less frequently, Piccadilly Line trains are able to call at Turnham Green, adding one minute to the scheduled journey time between Hammersmith and Acton Town. Between 0645 and 2230 on Mondays to Fridays some three hundred and seventy Piccadilly Line trains in each direction pass through Turnham Green without a scheduled stop. Were all these trains revised to call at Turnham Green, the cumulative effect on the timetable would be an increase in the total running time equivalent to a return journey between Cockfosters and Heathrow. Unless there was a reduction in the existing frequency, two further trains and at least six extra drivers would thus be needed if Turnham Green is to be served by Piccadilly Line trains all day. On the basis of survey results to date, the marginal increase in revenue generated is unlikely to be sufficient to fund these additional resources in the foreseeable future.
</p>
<p>
Meantime, the District Line daytime service has been enhanced to provide a train about every four to six minutes between Hammersmith, Ravenscourt Park, Stamford Brook and Turnham Green, with Ealing Broadway services linking Turnham Green, Chiswick Park and Acton Town at intervals of eight to thirteen minutes. Cross platform interchange between the Piccadilly and District Lines is available at Barons Court, Hammersmith and Acton Town; since Hammersmith is a busy station in its own right, many passengers prefer to make westbound connections at Barons Court.
</p>
<p>
In exceptional circumstances, arising perhaps from a signalling or train equipment failure, Piccadilly Line trains may be diverted to run via the District Line tracks. Since there is a need to interlace with District Line trains in so doing, the number of Piccadilly Line trains in service might need to be reduced accordingly. The Line Controllers, in consultation with their District Line colleagues, can arrange for Piccadilly Line trains to call at the intermediate stations between Hammersmith and Acton Town on these occasions, if the disruption is likely to last some time. More commonly, individual Piccadilly Line trains will call at these stations to compensate for prolonged gaps in the District Line service. Piccadilly Line drivers have also been instructed to open the train doors at Turnham Green if the train has stopped in the platform because the signal ahead is displaying a red aspect.
</p>
<p>
I hope that this is of assistance.
</p>
<p>
Yours sincerely
</p>
<p>
Andrew Summers<br>
Customer Service Centre<br>
London Underground Limited
</p>
</blockquote>Scott Wallacehttp://www.blogger.com/profile/07847312272237567985noreply@blogger.com2tag:blogger.com,1999:blog-2758885007428465309.post-85028274750649010022009-07-15T04:06:00.000+01:002013-01-31T16:21:13.991+00:00Book: The 4-hour Workweek <p>
My copy of "<a href="http://www.fourhourworkweek.com/">The 4-hour Workweek</a>" arrived today -- a book by my new hero, <a href="http://www.timferriss.com/">Tim Ferriss</a>.
</p>
<p>
I'm only 50 pages into it but, so far, it's a very interesting read. I'm inspired but really trying to resist doing anything until I've finished reading it. Tough.
</p>
<p>
I'll let you know how it goes when I get to the end...
</p>
Scott Wallacehttp://www.blogger.com/profile/07847312272237567985noreply@blogger.com0tag:blogger.com,1999:blog-2758885007428465309.post-33811749632915384422009-07-10T23:44:00.000+01:002011-10-29T13:26:56.884+01:005 minute chocolate cake recipe<span style="color: #b1814d;"><strong><span style="color: black;">Ingredients</span></strong></span><br />
<ul>
<li>4 tablespoons self-raising flour</li>
<li>2-4 tablepoons sugar (depending on how sweet you like it)</li>
<li>2 tablespoons cocoa</li>
<li>1 egg</li>
<li>3 tablespoons milk</li>
<li>3 tablespoons oil</li>
<li>3 tablespoons chocolate chips (optional)</li>
<li>a small splash of vanilla extract</li>
<li>1 large coffee mug</li>
</ul>
<br />
<strong>Steps</strong><br />
<ol>
<li>Add dry ingredients to mug, and mix well. Add the egg and mix thoroughly.</li>
<li>Pour in the milk and oil and mix well. Add the chocolate chips (if using) and vanilla extract, and mix again.</li>
<li>Put your mug in the microwave and cook for 3 minutes on high.</li>
<li>The cake will rise over the top of the mug -- dont be alarmed!</li>
<li>Allow to cool for 2 minutes.</li>
<li>Eat with ice cream.</li>
</ol>
<br />
<address>
<br /><strong>Update:</strong> Corrected recipe to use tablespoons instead of teaspoons and added the use of self-raising flour from numerous recommendations on the net.</address>Scott Wallacehttp://www.blogger.com/profile/07847312272237567985noreply@blogger.com0tag:blogger.com,1999:blog-2758885007428465309.post-64167739082318337592009-05-11T02:52:00.000+01:002011-10-29T13:29:02.936+01:00Weekly cooking routineYou know how it is: you get home from work, it's dinner time, no one knows what they want to have for dinner and any recipes you can be bothered to cook are missing a vital ingredient or two. A quick trip to the shop is needed... or maybe takeaway would be easier?<br />
<br />
Sound familiar?<br />
<br />
Until recently, this was true for us. Until we came up with a plan. Many people have said they're impressed with the plan, which I find surprising. It's mainly common sense and most people, I'm sure, would say, "Duh!" -- but here it is anyway:<br />
<ol>
<li>Find seven recipes for the next seven evening meals. Write the meals down and stick them on the fridge (or somewhere else convenient).</li>
<li>Add the ingredients you'll need for those recipes to your weekly shopping list.</li>
<li>Buy the ingredients from the supermarket, or wherever.</li>
<li>When you've unpacked the shopping, check the meat and set a rough order for the meals using the expiry date as a guide.</li>
</ol>
I told you it was simple. Now when you get home in the evenings it should be very simple to decide what to have for dinner and all the ingredients should be at hand.<br />
<br />
<strong>Tips:</strong><br />
<ul>
<li>If you make more than you need for the odd meal or two, you could save yourself a night or two of cooking.</li>
</ul>
<br />
<strong>Pros:</strong><br />
<ul>
<li>It's a simple decision when it's time to eat. Just take a look at the fridge and pick a meal. Hey, it's like a menu at a restaurant!</li>
<li>You can try out exotic and interesting recipes instead of eating the same meals week after week. I really enjoy using our cookbooks every day instead of just for dinner parties.</li>
<li>Shopping trips become quicker and more purposeful. No more wandering the aisles aimlessly looking for inspiration.</li>
<li>You'll find that your culinary skills will improve. Practise makes perfect!</li>
</ul>
<br />
<strong>Cons:</strong><br />
<ul>
<li>It's not much fun coming up with seven meals in a single sitting. You could try splitting it out across the week so when shopping day comes you don't have to do it all at once.</li>
</ul>Scott Wallacehttp://www.blogger.com/profile/07847312272237567985noreply@blogger.com0tag:blogger.com,1999:blog-2758885007428465309.post-76604838251362289072009-03-08T04:14:00.000+00:002011-10-29T13:30:05.030+01:00Integrating Mail.app and Things<a href="http://culturedcode.com/things/">Things</a>, by <a href="http://culturedcode.com/">Cultured Code</a>, is a great task management application that runs on the Mac and iPhone and is really helping me keep a track of all the things I need to get done, at home and at work.<br />
<br />
What would be handy is if I could easily turn an email into a new to-do inside Things.<br />
<br />
Of course, Google to the rescue and I <a href="http://culturedcode.com/things/forums/read.php?4,18662">discovered</a> a couple of scripts that utilise Mail.app's bundle (plugin) functionality and <a href="http://www.culater.net/software/SIMBL/SIMBL.php">SIMBL</a> that do just that.<br />
<br />
<ol>
<li>Quit both Mail.app and Things</li>
<li>Download and unzip <a href="http://scott.wallace.sh/wp-content/uploads/2009/03/thingsmailmailbundle.zip">this file</a> to ~/Library/Mail/Bundles (you may need to create this directory if it doesn't exist)</li>
<li>Download and unzip <a href="http://scott.wallace.sh/wp-content/uploads/2009/03/thingspluginbundle.zip">this file</a> to ~/Library/Application Support/SIMBL/Plugins (you may also need to create this directory if it doesn't already exist)</li>
<li>Open Terminal and execute the following command:<br />
<div class="code">
<pre>$ defaults write com.apple.mail EnableBundles -bool YES</pre>
</div>
</li>
<li>Start mail.app and Things. (Things needs to be running to accept the incoming messages)</li>
</ol>
Whilst in mail.app, pressing CTRL-CMD-S (^⌘S) will add an new item into the Things inbox with the subject of the highlighted message as the title and a link in the notes area to the email itself.<br />
<br />
Thanks go to "fedex" for his scripts and, of course, Cultured Code for their awesome software.Scott Wallacehttp://www.blogger.com/profile/07847312272237567985noreply@blogger.com0tag:blogger.com,1999:blog-2758885007428465309.post-56125907287515529452009-03-08T02:47:00.000+00:002011-10-29T09:56:33.049+01:00Synchronising multiple 1password keychains without MobileMe<p><a href="http://agilewebsolutions.com/">Agile Web Solutions</a>, the authors of <a href="http://agilewebsolutions.com/products/1Password">1password</a>, don't recommend that you use <a href="http://www.apple.com/mobileme/">MobileMe</a> (the-service-formally-known-as .Mac) for synchronising the keychain.</p><br/><p><a href="https://kb.agile.ws/wiki/agile/SyncingUsingiDisk">The instructions I followed</a> uses <a href="http://www.apple.com/mobileme/features/idisk.html">iDisk</a> to synchronise the keychain but I used my recently added <a href="http://en.wikipedia.org/wiki/SSHFS">SSH filesystem</a>.</p><br/><p>This is the same system I use for keeping <a href="http://culturedcode.com/things/">Things </a>synchronised across multiple Macs.</p>Scott Wallacehttp://www.blogger.com/profile/07847312272237567985noreply@blogger.com0tag:blogger.com,1999:blog-2758885007428465309.post-52739119231670518202009-03-05T06:56:00.000+00:002020-03-29T09:52:38.374+01:00Automatic synchronisation of OS X Addressbook without enabling Yahoo!<div style="border: 1px solid black; margin: 5px; padding: 5px;"><b>Update:</b> Snow Leopard (10.6) has this built-in so there's no need for these instructions unless you're running Leopard (10.5) or lower. The following command will ensure this runs periodically:<br />
<pre class="code">$ /System/Library/PrivateFrameworks/GoogleContactSync.framework/Versions/A/Resources/gconsync --sync com.google.ContactSync --periodic
</pre></div><br />
I am using Google Sync Services exclusively to synchronise between two MacBook Pros and an iPhone.<br />
<br />
The one caveat is that to enable Addressbook synchronisation you have to enable, say, Yahoo! synchronising before the iSync client will allow synchronisations to occur.<br />
<br />
Oh, and it's a manual process to launch iSync client.<br />
<br />
This is an ugly hack to an otherwise elegant solution. I don't like it.<br />
<br />
So I went trawling the Internet to see if I could solve it.<br />
<br />
I found an <a href="http://www.rosmir.org/Index/LabsFolder/googlecontactsync">extremely informative post</a> that outlines a lot of the work required. Then, a sprinkle of <a href="http://developer.apple.com/MacOsX/launchd.html">launchd</a> to make it all work.<br />
<br />
Here's how it's done:<br />
<br />
<ol><li>Add a new "google" device in your devices list:<br />
<pre class="code">$ defaults write ~/Library/Preferences/com.apple.iPod Devices -dict-add google '{ "Device Class" = iPod; "Family ID" = 10001; }'
</pre></li>
<li>Launch Address Book and open the Preference pane. The Google contact sync option should appear.</li>
<li>Register the sync client. Open a terminal and type the following:<br />
<pre class="code">$ /System/Library/PrivateFrameworks/GoogleContactSync.framework/Versions/Current/Resources/gconsync --register 1
</pre></li>
<li>Create the file, <code>~/Library/Preferences/com.google.GoogleContactSync.plist</code>:<br />
<pre class="code">{user = "username@gmail.com";}
</pre></li>
<li>Add a password item to your keychain with the following values:<br />
<div style="border: 1px solid black; margin: 5px; padding: 5px;"><b>Keychain Item Name:</b>GoogleContactSyncService<br />
<b>Account Name:</b> username@gmail.com<br />
<b>Password:</b> password</div></li>
<li>Create a Launch Agent. I have set the interval time to 300 seconds (5 mins). Obviously, it can be changed to something different. eg: <code>~/Library/LaunchAgents/com.example.gsync.plist</code>:<br />
<pre class="code"><?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.example.gsync</string>
<key>ProgramArguments</key>
<array>
<string>/System/Library/PrivateFrameworks/GoogleContactSync.framework/Versions/A/Resources/gconsync</string>
<string>--sync</string>
<string>com.google.ContactSync</string>
<string>--report</string>
<string>1</string>
<string>--entitynames</string>
<string>"com.apple.contacts.Contact,com.apple.contacts.Email Address,com.apple.contacts.IM,com.apple.contacts.Phone Number,com.apple.contacts.Street Address"</string>
</array>
<key>StandardErrorPath</key>
<string>/tmp/gsync.error</string>
<key>StandardOutPath</key>
<string>/tmp/gsync.log</string>
<key>LowPriorityIO</key>
<true/>
<key>Nice</key>
<integer>1</integer>
<key>StartInterval</key>
<integer>300</integer>
</dict>
</plist>
</pre></li>
<li>Add the agent:<br />
<pre class="code">$ launchctl load ~/Library/LaunchAgents/com.example.gsync.plist
</pre></li>
<li>Reboot. (Yes, it's required. The program, when launched from launchd, won't find the password until you've rebooted. I'm sure there's a way to do it without, but I don't know what that is.)</li>
<li>You can kick off a sync run manually by running:<br />
<pre class="code">$ launchctl start com.example.gsync
</pre>... or you can wait the interval period for the next run.</li>
</ol>Scott Wallacehttp://www.blogger.com/profile/07847312272237567985noreply@blogger.com7tag:blogger.com,1999:blog-2758885007428465309.post-33732220028530612392009-02-26T08:18:00.000+00:002011-10-29T13:40:13.923+01:00Automatic mounting of SSH filesystems in OS XGetting your <a href="http://code.google.com/p/macfuse/">MacFUSE</a> <a href="http://code.google.com/p/macfuse/wiki/MACFUSE_FS_SSHFS">SSH filesystem</a> to mount automatically on login isn't Voodoo, but it is Magick.<br />
<br />
Here's how it's done using <a href="http://developer.apple.com/MacOsX/launchd.html">launchd</a>:<br />
<br />
Create a Properties List file under, <code>~/Library/LaunchAgents:</code><br />
<br />
eg: <code>~/Library/LaunchAgents/com.example.sshfs.plist</code><br />
<div class="code">
<pre><?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.example.sshfs</string>
<key>ProgramArguments</key>
<array>
<string>/opt/local/bin/sshfs</string>
<string>user@example.com:path/to/share</string>
<string>/path/to/mountpoint</string>
<string>-f</string>
<string>-o</string>
<string>auto_cache,reconnect,volname=friendly_name</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist></pre>
</div>
<br />
We can now load this into launchd by running,<br />
<div class="code">
<pre>$ cd ~/Library/LaunchAgents
$ launchctl load com.example.sshfs.plist</pre>
</div>
<br />
Your SSH filesystem should now be mounted.<br />
<div class="code">
<pre>$ mount
.
.
.
user@example.com:path/to/share on /path/to/mountpoint (fusefs, nodev, nosuid, synchronous, mounted by user)</pre>
</div>Scott Wallacehttp://www.blogger.com/profile/07847312272237567985noreply@blogger.com1tag:blogger.com,1999:blog-2758885007428465309.post-68976304724976102972009-02-18T04:44:00.000+00:002011-10-29T13:41:22.970+01:00PostboxFirefox is to the web as <a href="http://www.postbox-inc.com/">Postbox</a> is to ... email. I won't go into any details, there <a href="http://news.cnet.com/8301-17939_109-10037284-2.html">are</a> <a href="http://news.cnet.com/8301-17939_109-10161145-2.html">plenty</a> <a href="http://www.vnunet.com/vnunet/downloads/2236215/postbox-windows">of</a> <a href="http://theappleblog.com/2009/01/09/managing-email-with-postbox/">reviews</a> out on the Internet already, but here's a little nugget I discovered:<br />
<br />
To increase the sanity of threaded conversations so that the originating message is at the top:<br />
<ul>
<li>Tools → Options → Advanced → Config Editor</li>
<li>Search for: <tt>mail.conversation_display.reverse</tt></li>
<li>Toggle value</li>
<li>Restart</li>
</ul>Scott Wallacehttp://www.blogger.com/profile/07847312272237567985noreply@blogger.com0tag:blogger.com,1999:blog-2758885007428465309.post-70413885748950473582009-02-05T06:22:00.000+00:002011-10-29T09:56:33.117+01:00Yammer as a colaboration tool<p><a href="http://www.yammer.com/">Yammer</a> is a new tool that we're playing with at work. </p><br/><p>It's like a mash-up of a micro-blogger (eg: Twitter) and an instant messenger (eg: MSN) but more organisation orientated.</p><br/><p>To avoid having to run <em>another</em> program to keep a track of the posts, you can integrate with your favourite IM client. </p><br/><p>Just visit, <a href="https://www.yammer.com/account/im">https://www.yammer.com/account/im</a> and follow the instructions.</p><br/><p>We are planning to take an RSS feed of the posts and, using <a href="http://twitter.pbwiki.com/Hashtags">hash tags</a>, produce time lines of product launch sequences, etc.</p>Scott Wallacehttp://www.blogger.com/profile/07847312272237567985noreply@blogger.com0tag:blogger.com,1999:blog-2758885007428465309.post-62214050668094951012009-02-05T01:16:00.000+00:002011-10-29T13:42:01.665+01:00CLI tweetsAnother quicky - Twittering from the command line:<br />
<br />
<div class="code">
<pre>$ curl --basic --user "username:password" --data-ascii "status=Twittering from the commandline" "http://twitter.com/statuses/update.json"</pre>
</div>
<br />
<div style="text-align: left;">
Wrapped in a very simple script:</div>
<br />
<div class="code">
<pre>#!/bin/bash
if [ ${#} -gt 0 ]; then
STATUS="${*}"
else
STATUS="$(cat -)"
fi
curl --basic --user "username:password" --data-ascii "status=${STATUS}" "http://twitter.com/statuses/update.json"</pre>
</div>Scott Wallacehttp://www.blogger.com/profile/07847312272237567985noreply@blogger.com0tag:blogger.com,1999:blog-2758885007428465309.post-11529464976133367512009-02-04T19:19:00.000+00:002011-10-29T09:56:32.963+01:00Flushing DNS cache on Mac OS X<p>This is quick post to capture a command that I sometimes need but always have to look up. </p><br/><p>It flushes the DNS cache on the local OS X instance.</p><br/><div class="CodeRay"><br/> <div class="code"><pre>$ dscacheutil -flushcache</pre></div><br/></div>Scott Wallacehttp://www.blogger.com/profile/07847312272237567985noreply@blogger.com0tag:blogger.com,1999:blog-2758885007428465309.post-86815030383941045362009-01-31T19:23:00.000+00:002011-10-29T09:56:33.155+01:00Izzard - in the bag!Ha!! We finally got <a href="http://scott.wallace.sh/2008/10/eddies-back-in-town/" title="Previous post about Izzard ticket fraud">real</a> tickets for Eddie Izzard's <a href="http://en.wikipedia.org/wiki/Stripped_(Eddie_Izzard)" title="Wikipedia">Stripped</a> tour. The tickets are for December 3rd 2009 at the 02 Arena.<br/><br/>Man, that's going to be a long wait.Scott Wallacehttp://www.blogger.com/profile/07847312272237567985noreply@blogger.com2