Changes
Posted: January 2, 2011 Filed under: Uncategorized | Tags: change, demographics, internet Leave a comment »A summary of how some things changed in the last decase by Stephanie Fox of io9.com.
Going Mobile in Oz
Posted: November 10, 2010 Filed under: Uncategorized | Tags: customer service, mifi, vodafone Leave a comment »A recent trip to Sydney was a mix of very good and very bad customer service. Virgin were good. Air New Zealand were flawless. Baia in Darling Harbour had good food and polished table staff. Central Baking Depot had great coffee.
But the service from Vodafone was awful. A badly trained, indifferent sales person sold me the wrong product. Incompetent phone support cost me a lot of money. Emailed VF tech support. After 4 days I got this
… Please note that Vodafone are unable to assist with handset upgrade or mobile internet technical issues via email. For assistance with these queries, please call Vodafone on 1555 from your Vodafone handset or 1300 650 410 from a landline…
And so on…
Personal Probability Map
Posted: September 29, 2010 Filed under: Uncategorized | Tags: gps Leave a comment »I used the GPS in my phone to log my travels over a couple of weeks, then visualised the data as a heatmap. The bright areas show where I spent the most time. The dark areas are also interesting – places that weren’t visited.
Your travels are unique, much like your fingerprint. This is a privacy problem. Philippe Golle and Kurt Partridge Palo Alto Research Center showed that knowing just an individual’s work and home location at the level of a census meshblock was almost good enough to identify someone.
I used a Nokia N900 cellphone to capture the data. N900′s are designed to be hackable. Theses phones come with BusyBox and Python. This script enables the GPS and outputs a position to a text file every five seconds.
import location
import gobject
from datetime import datetime
def on_error(control, error, data):
print "location error: %d... quitting" % error
data.quit()
def on_changed(device, data):
if not device:
return
if device.fix:
if device.fix[1] & location.GPS_DEVICE_LATLONG_SET:
print datetime.now().isoformat() + ",%f,%f" % device.fix[4:6]
def on_stop(control, data):
print "quitting"
data.quit()
def start_location(data):
data.start()
return False
loop = gobject.MainLoop()
control = location.GPSDControl.get_default()
device = location.GPSDevice()
control.set_properties(preferred_method=location.METHOD_USER_SELECTED,
preferred_interval=location.INTERVAL_5S)
control.connect("error-verbose", on_error, loop)
device.connect("changed", on_changed, control)
control.connect("gpsd-stopped", on_stop, loop)
gobject.idle_add(start_location, control)
loop.run()
This output of the script is redirected into a file so it accumulates over time.
run-standalone.sh python2.5 gps.py >>gps.txt
Seth Golub’s heatmap.py transformed the raw data into a probability map.
python heatmap.py -o test.png -W 1500 -H 1500 -g combined2.gpx -b black -r 7
HTML 5 ToDo List
Posted: August 5, 2010 Filed under: Uncategorized | Tags: html5, javascript, jquery Leave a comment »I needed a simple to-do list for my Nexus One. A quick look in the Android Market turned up a lot of options that were far more complicated than I wanted. My solution was a quick offline HTML 5 app with local storage. When you type in the textarea, the text gets stored to the local name/value store. Saving is triggered by each key-up event which is probably excessive, but it works fine. Here’s the code:
<!DOCTYPE html>
<html manifest="cache.manifest">
<head>
<meta http-equiv="Content-Type"
content="text/html;charset=utf-8" >
<title>List</title>
<script type="text/javascript" src="jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$("#myText").text(localStorage.getItem("list"));
});
function saveText() {
localStorage.setItem("list", $("#myText").val());
}
</script>
</head>
<body>
<form action="">
<textarea cols="33" rows="20" id="myText"
onkeyup="saveText()"></textarea>
</form>
</body>
</html>
And the manifest
CACHE MANIFEST
jquery.min.js
Gource
Posted: May 24, 2010 Filed under: Uncategorized | Tags: gource, mercurial, visualisation Leave a comment »Gource is a lot of fun. You point it at a source control repo (git or Mercurial) and it creates an animated visualisation of changes to the source code, over time. Here’s an example from a web app I did recently. For best viewing, click through to Vimeo and watch the 720p version. Tip’o the hat to Andrew Caudwell.
Open Data with Open Source
Posted: May 16, 2010 Filed under: Uncategorized | Tags: opendata, opensource Leave a comment »I’ve been helping the folk at Portobello Marine Lab make some of their scientific data available on the web.
Like many research institutions they have data on paper and in files on individual PC’s or a departmental server. Often this data has potential that is unlocked by making it more widely available.
The new http://marineinfo.otago.ac.nz/ website publishes data, from 60 years of reaserch, about the Lab’s reference collection of preserved marine specimens, Dr Elizabeth Batham’s card index of information, photos and illustrations of local species , and a database of theses and other miscellaneous publications from the Lab.
More data will be added in the coming months along with interactive maps.
The data is searchable and may be downloaded. Re-use of the data is encouraged with the data licensed on Creative Commons ShareAlike terms.
Open Source tools were used to build and power the web site: Django, Python, PostgeSQL, PostGIS, Firefox, Firebug, Python Imaging Library, Apache, Ubuntu, Mercurial.
.
What Motivates Us
Posted: May 16, 2010 Filed under: Uncategorized | Tags: motivation Leave a comment »
Maze of Twisty Little Options
Posted: May 14, 2010 Filed under: Uncategorized | Tags: facebook, privacy Leave a comment »The New York Times sets out the Facebook privacy settings, a tangle of 50 settings and 170 options, in a graphic. Also, they note that the Facebook privacy statement now has more words than the US constitution.
Facebook’s Eroding Privacy
Posted: April 29, 2010 Filed under: Uncategorized | Tags: facebook, privacy, security Leave a comment »EFF’s blog post sets out a timeline showing how Facebook privacy has evolved. It’s gone from this
No personal information that you submit to Thefacebook will be available to any user of the Web Site who does not belong to at least one of the groups specified by you in your privacy settings
to this
When you connect with an application or website it will have access to General Information about you. The term General Information includes your and your friends’ names, profile pictures, gender, user IDs, connections, and any content shared using the Everyone privacy setting. … The default privacy setting for certain types of information you post on Facebook is set to “everyone.” … Because it takes two to connect, your privacy settings only control who can see the connection on your profile page. If you are uncomfortable with the connection being publicly available, you should consider removing (or not making) the connection.
And in another post they set out six things the new Facebook connections feature mean for the information in your profile. Matt McKeon visualises the chnages over time in a blog post The Evolution of Privacy on Facebook.
Adrian Perez sums it up like this
I joined Facebook under certain conceptions that it was a somewhat private place. [...] now it seems that there is something every month where they have started to sell or give more of my stuff to some company without my knowledge. Facebook, used to be fun and cool, but a large part of what I have to do on Facebook now is adapt to their changes on their terms….
Now I wouldn’t have posted about this [...] if I had not been personally affected by Facebook’s actions. I was with my girlfriend and we were listening to Pandora. I look at my Pandora player, and there is my girlfriend’s face (supplied by Facebook) staring back at me with some information about her tastes. This would not have been a problem, except she opted out of that program.We quickly learned you had to also ban each of the groups Facebook was sharing this data with, as well as hitting the opt-out checkbox.
This immediately congealed a sense of loathing for Facebook. It was a combination of their confusing interfaces, reneging on their former commitments, lack of privacy, and spammy newsfeeds.
You can get an idea of how Facebook views your control of your information in this clip of an interview with their CEO.
So, feeling exploited yet? Here’s how to delete your Facebook account
- Log in to Facebook
- Navigate to this URL http://www.facebook.com/help/contact.php?show_form=delete_account and follow the instructions.
- Log out and don’t log in again in the next 14 days. After that time your account will be deleted.
In all likelihood your data will remain on the Facebook servers for an indeterminate period after this, so you probably want to start by deleting all your profile information, applications, inbox/sent folders, networks and everything that you’ve posted.
Update1 : More Facebook privacy problems. Techcrunch is reporting that for a period of time private chats weren’t actually entirely private. Facebook say this has now been fixed.
Update2 : Think it can’t get any worse? MacWorld is reporting that if you visited certain sites while logged in to Facebook, an app for those sites was quietly added to your Facebook profile. Facebook say this was a bug and it’s now been fixed.
Update 3: Facebook leaks your internet connection’s IP address when you send a message or write on a wall. The person tha you sent a message to will get an email notification from Facebook. The header of that email has the IP address of your internet connection. That information can be used to discover, for example, where you are. The mail header looks like this (actual value obscured)
X-Facebook: from zuckmail ([xxxxxxxxxjM1LjE1OQ==])
“xxxxxxxxxjM1LjE1OQ==” is the base64 encoded IP address. Decode it to an IP address with Python
>>> import base64
>>> base64.b64decode("xxxxxxxxxjM1LjE1OQ==")
'xxx.xxx.xxx.159'
and use a GeoIP service to find the user’s location – in this case, Christchurch, New Zealand.
Update 3: The issue of Facebook leaking IP addresses has apparently now been fixed. Including the IP was apprently a spam control feature.
Think Python
Posted: April 25, 2010 Filed under: Uncategorized | Tags: opensource, programming, python Leave a comment »This looks pretty good. An introduction to programming using Python. You can also get hard copy at Amazon.
Maemo Development – Getting Started
Posted: January 3, 2010 Filed under: Uncategorized | Tags: maemo, n900, opensource, scratchbox, sdk Leave a comment »As complete beginner in programming Maemo devices, I was looking for an easy way to get started. Currently C++ is the only officially supported language for Maemo development. The Maemo SDK provides the tools and the Scratchbox sandbox environment. Scratchbox is a fairly full-featured Linux development environment and includes tools like like gdb, valgrind, ltrace and strace. Setting up the SDK is a fair amount of work. However, there is a pre-built virtual machine for VMware with the SDK and ESBox IDE all set up an ready to go. Still, all this is not exactly a dive-right-in toolset.
Fortunately there is a simpler way – Python. The N900 has Python 2.5.4 and Xterm, vi and PyMaemo. This provides all you need to get started. Just type in a program and you’re in business. Here’s the hello world app from the PyMaemo documentation
import gtk
import hildon
def hello(widget, data):
print "Hello World!"
def main():
program = hildon.Program.get_instance()
window = hildon.Window()
program.add_window(window)
window.connect("delete_event", gtk.main_quit, None)
button = hildon.Button(gtk.HILDON_SIZE_AUTO, hildon.BUTTON_ARRANGEMENT_VERTICAL, "Hello world!")
button.connect("clicked", hello, None)
window.add(button)
window.show_all()
gtk.main()
if __name__ == "__main__":
main()
To run the Python program, use this command at the shell prompt.
run-standalone.sh python2.5 helloworld.py
Now typing on the N900 keyboard isn’t realistic. The Komodo IDE I use on the Mac has the ability to edit remote files via scp. Once you install the OpenSSH server on the N900 you’re in a position to directly edit files on the device with Komodo.
Google CEO On Privacy
Posted: December 9, 2009 Filed under: Uncategorized | Tags: google, privacy Leave a comment »When asked about privacy in an interview on CNBC Google CEO Eric Schmidt said ‘If You Have Something You Don’t Want Anyone To Know, Maybe You Shouldn’t Be Doing It’.
Bruce Schneier said this on the topic. Just as salient today as it was when it was written in 2006″
… Some clever answers: “If I’m not doing anything wrong, then you have no cause to watch me.” “Because the government gets to define what’s wrong, and they keep changing the definition.” “Because you might do something wrong with my information.” My problem with quips like these — as right as they are — is that they accept the premise that privacy is about hiding a wrong. It’s not. Privacy is an inherent human right, and a requirement for maintaining the human condition with dignity and respect.
Two proverbs say it best: Quis custodiet custodes ipsos? (“Who watches the watchers?”) and “Absolute power corrupts absolutely.”
Cardinal Richelieu understood the value of surveillance when he famously said, “If one would give me six lines written by the hand of the most honest man, I would find something in them to have him hanged.” Watch someone long enough, and you’ll find something to arrest — or just blackmail — with. Privacy is important because without it, surveillance information will be abused: to peep, to sell to marketers and to spy on political enemies — whoever they happen to be at the time.
Privacy protects us from abuses by those in power, even if we’re doing nothing wrong at the time of surveillance.
… Too many wrongly characterize the debate as “security versus privacy.” The real choice is liberty versus control. Tyranny, whether it arises under threat of foreign physical attack or under constant domestic authoritative scrutiny, is still tyranny. Liberty requires security without intrusion, security plus privacy. Widespread police surveillance is the very definition of a police state. And that’s why we should champion privacy even when we have nothing to hide…
War of Attrition
Posted: October 31, 2009 Filed under: Uncategorized | Tags: wildlife Leave a comment »Looks like the mosquitoes are back. And so it begins….
MapToaster Topo/NZ V5.0 is Done
Posted: October 28, 2009 Filed under: Uncategorized | Tags: mapping, maptotaster Leave a comment »Finally pushed the MapToaster Topo/NZ V5.0 upgrade out the door with the new Topo50 and Topo250 NZTM projection topographical maps of NZ. Clink of glasses at the Integrated Mapping world headquarters…
World Scientist’s Warning to Humanity
Posted: September 23, 2009 Filed under: Uncategorized Leave a comment »From 1992:
“Over 1,500 members of national, regional, and international
science academies have signed the Warning. Sixtynine
nations from all parts of Earth are represented, including
each of the twelve most populous nations and the nineteen
largest economic powers. The full list includes a majority
of the Nobel laureates in the sciences.”
WORLD SCIENTISTS' WARNING TO HUMANITY
Human beings and the natural world are on a collision
course. Human activities inflict harsh and often
irreversible damage on the environment and on critical
resources. If not checked, many of our current practices
put at serious risk the future that we wish for human
society and the plant and animal kingdoms, and may so alter
the living world that it will be unable to sustain life in
the manner that we know. Fundamental changes are urgent if
we are to avoid the collision our present course will bring
about.
continued...
New Attack on WiFi
Posted: August 28, 2009 Filed under: Uncategorized Leave a comment »Toshihiro Ohigashi of Hiroshima University and Masakatu Morii of Kobe University have developed a practical attack on WiFi connections that use WPA security with the TKIP algorithm.
While not as weak as the earlier, and now completely broken, WEP security, this attack means that WPA/TKIP can no longer be trusted to keep your network safe.
The good news is that reasonably recent WiFi access-points offer the alternative AES encryption that is not vulnerable to this attack. Avoiding this problem is as simple as logging in to the access-point’s administration page and changing the encryption setting.
Garmin GPSMAP 60CSx review
Posted: August 10, 2009 Filed under: Uncategorized | Tags: gps Leave a comment »Added a review of Garmin’s 60CSx GPS to the MapToaster website.
Alan Kay on Smalltalk Origins
Posted: August 3, 2009 Filed under: Uncategorized | Tags: alankay, internet Leave a comment »Alan Kay responds in a discussion about the origins of the Smalltalk programming language:
This is an interesting example of an ever increasing web disease — that is: expressing mere opinions without foundations or checking. This one is easy, because there is a readily available “Early History of Smalltalk” that the ACM got me to write in 1993. So why wouldn’t people just type “history of smalltalk” into Google? (I don’t know and I haven’t been able to figure this out).
The very first hit finds this paper. (This one is not the best version of it because someone just scanned the doc I wrote to get an HTML version and left out lots of the pictures. But in looking at it, it seems to answer this question very straightforwardly — and that answer was given by “someone who was actually there” and had a hand in the invention of Smalltalk, rather than people with opinions from the side.)
What is wrong? Why is mere opinion so dominating discussions held on the easiest medium there has ever been that can provide substantiations with just a little curiosity and work? Is the world completely reverting to an oral culture of assertions held around an electronic campfire?
I’m not sure that our behaviour on the Internet is much different to what you get at the water-cooler, in the tea-room or on talk-back radio. But instant access to the facts makes it less excusable.
Anyway, if you’re a software developer, Alan Kay’s paper is a good read.
Feynman’s Messenger Series Lectures 1964
Posted: July 16, 2009 Filed under: Uncategorized Leave a comment »Bill Gates has purchased the rights to the seven-part series of lectures given by Richard Feynman at Cornell University in 1964.
The Project Tuva lectures, are hosted by Microsoft Research. The videos have a transcript and interactive annotations.
SanDisk Does Better
Posted: July 11, 2009 Filed under: Uncategorized Leave a comment »SanDisk won the gratutious packaging award a while back. Bought some more. This time the packaging was of a scale matching the product…











