The Caring Ratio

data.tumblr.com_ppSbditzX69et6uhUOChMcRZ_500.jpg

via monoscope

Daring Fireball: Foot, Meet Bullet

I’ve not commented on iPhone related stuff before: mainly because I don’t have an iPhone, and won’t be getting one any time soon. It’s not that I don’t want one, but they aren’t coming out in Australia, and my new phone has still got a long way to go before it is out of contract.

The latest post, however, piqued my interest. Because it doesn’t just apply to iPhone, or any handheld device, but any computing device in general:

How are they even going to know which apps do continue to run in the background? They won’t. A likely reaction would simply be to regret ever having junked up their iPhone with any third-party apps at all.

From Daring Fireball: Foot, Meet Bullet

I have a Nokia E65, and one of the “great” features is true multi-tasking. I say “great”, because this feature burned me not too long ago.

I use Salling Clicker - mainly as an automated syncing system, but also for interaction between the phone and Mac in other ways - from a Growl message when I receive a phone call, and my iTunes pausing, to sending SMS via bluetooth. Typing is much faster on a normal keyboard! (Granted, this is using emitSMS, not Salling Clicker, but, meh).

Recently, I installed a bit of software that allowed me to download call and SMS lists, so I could access them and interpret my data usage patterns. It installed a background helper agent, which I didn’t even realise. Some time later I noticed I wasn’t receiving as many phone calls as before. It wasn’t a big difference since I mainly use the phone for calling, rather than receiving calls, but nonetheless it was a difference. When out at dinner with family, it came to a head. It turned out that every time someone tried to call me, the call was rejected, but not to voicemail. A second call immediately worked.

When a call came in, the phone displayed a (very short) out of memory error, and then this immediately disappeared. The light came on, which made me realise just how often it had occurred. I had seen the phone light turn on sometimes while my phone was next to me, but because the message was so short-lived, it had vanished by the time I looked at the screen. I’m talking less than a second here.

It turned out the faceless background app was using up all of the phone’s memory. Receiving a call initially failed, but if another call came immediately after, then it would work. I guess some memory was being freed, but being used again a short time later.

Long story short - I didn’t use the software I had installed, so junking it (and removing the installed helper, which wasn’t real easy) fixed the problem. But because the problem was intermittent, it was pretty hard to nail down.

I don’t even remember what the software was called. But I’m much more cautious about what I install onto my phone now.

FFFFOUND!

I ffffound a wwwwebsite today. It hhhhas llllots of ppppictures on it. Ssssome of them aaaare vvvvery ffffunny!

noisydecentgraphics.typepad.com_design_images_2008_03_11_yourproduct.jpg

200803142223.jpg 200803142224.jpg 200803142224.jpg 200803142224.jpg 200803142225.jpg 200803142225.jpg

Alanis Morissette

I’m currently sitting in my new favourite place - the Flinders Uni Tavern.

It’s been a long time since I was a regular at a Uni Bar, but it looks like it will be starting again. I can sit in this place, view lectures I’ve missed, or even just seen, and drink beer. And do my work, while Alanis Morissette plays in a double-play.

Feels like the early 90s again. Except I have money, and a laptop.

And I plan on finishing this degree.

Java and Arrays

Java almost handles arrays well.

Almost.

Maybe I’m spoilt by python, but having datatypes that are effectively a hybrid between lists and arrays is excellent. You get both of the advantages - being able to iterate easily, and access by index (attributes of arrays), and having dynamic sizes and non-sparse lists (the only decent attributes of lists).

In fact, the text I am reading now has a three-and-a-half page code fragment called “Partially-filled lists”, which is about 200 lines of code, which implements what I describe. Except the upper limit of the size, which must be determined at compile-time. And it requires a new class if you want it to be for anything other than doubles, or whatever you have written it for.

The other thing which was bugging me was the looping of arrays. In python you can do cool stuff easily iterate over elements of an array. Recent versions of Java can also do this.

Python:

1
2
    for element in theList:  
        print element

Java:

1
2
    for (element: theList)  
        System.out.println(element);

It gets pretty close. I think I still like the simplicity of the python notation - brackets only where they are really required to indicate function/method calls, and for expression ordering. Having a required bracket around if test-expressions and the like just makes me think if, switch and so on are functions. Which they can’t possibly be, since Java doesn’t have functions, only objects and methods.

And don’t get me started on braces…

Flinders Uni Podcasts and Vodcasts

I’m studying at Flinders Uni this year - so far it has been pretty cruisy, with a summer school subject I think I got 93% for, and lectures started proper this week. Pretty much all of the topics I am studying, and a whole lot more are available as podcasts or video streaming. You need to be logged into the FLO (Flinders Learning Online - an excellent tool, from what I’ve seen) to get the streaming video (I think), but the podcasts are technically available to anyone. If you know the URL, for example:

COMP 3001, 2008 Audio Feed : http://video.flinders.edu.au/podcasts/COMP3001/audio/COMP3001_2008.xml

You should now be able to figure out the URL for any topic. Just replace the COMP3001 with your subject code, and audio with video, if you desire.

The files are quite large, but no larger than regular podcasts.

I wasn’t able to find anything on the University website(s) that prohibit me from making this information public, but it may be under copyright restrictions. So only use it if you are allowed to…

Tunnelblick and the rest of the internet.

I have access via an OpenVPN tunnel to my University, and can access files located on the server there using Tunnelblick. This provides access through an insecure wireless network, as well as over the internet.

However, if I connect using Tunnelblick from home, I can either view my files, or view stuff on the rest of the internet.

It took me a while, but I figured out how to change the openVPN settings so that only a subset of IP addresses go through the VPN.

Assuming you are on a Mac, your settings file will be similar to ~/Library/openvpn/connection_name.conf, but with connection_name being something else. You need to edit this file, which is probably write protected. I’m not going to tell you how to fix that problem - if you can’t do that you have no business hacking with routing tables!

Find the entry near the bottom that looks like:

redirect-gateway def1

Comment this out (put a # at the start).

Now add in a line that looks somewhat like this:

route <network-address> <netmask> <gateway-address>

For example:

route 1.2.3.4 255.255.0.0 5.6.7.8

For Flinders Uni Infoeng, it should be:

route 129.96.6.0 255.255.255.0 129.96.59.73

You may need to authorise your Mac after saving the file. But when you connect with Tunnelblick, you should now be able to access addresses within the desired range, and the rest of the googlenet at the same time. Happy surfing!

Postsecret Teacher Edition

teacher1.jpg

No need to elaborate.

Fix Bluetooth connection errors with emitSMS

I use the excellent and free emitSMS for all of my SMS sending-from-my-Mac needs, and it works a treat. However, for some reason in the last couple of days it has stopped connecting properly to my phone, a Nokia E65.

I’ve had lots of hassles with this phone, and thought this might be just another one. But I’ve restarted both the phone and the Mac, and no joy.

If you look at the back of the emitSMS widget, you’ll be able to choose the serial port to connect to. If you try changing the port to one of the standard ones, it should give an almost immediate error. If you change it back to your phone’s serial port, and it hangs forever, there is a solution.

Picture 2.png

As can be seen from the image above, I’ve just created a second Dial-UpNetworking bluetooth port, and used that instead.

BluetoothSystemPrefs.png

Open up System Preferences, and visit the Bluetooth panel. Select your phone, and select Edit Serial Ports… from the utility menu.

BTSP_menu.png

Add a new serial port using the plus button, and duplicate all of the settings.

EditSerialPorts.png

Click Apply, and then change the serial port back in emitSMS. It should connect and identify your phone.

Unqualified Statistics

I hate statements that are unqualified, and therefore meaningless, with regard to statistics.

On Sunrise this morning, in the local news, they trotted out the chestnut:

“12% of people charged with drink-driving in the last two years were P-platers.”

This is totally meaningless without an indication of what percentage of the driving population are P-platers. What if it is higher than 12%? Then P-platers are actually more responsible than the rest of us…

Bah.