Entries : Category [ Hacks ]
Computer and electronics tricks and fooling around
[Miscellaneous]  [Computers and Technology]  [Travel]  [Education]  [Hacks]  [Robotics]  [Science]  [Programming and Software]  [iPhone]  [Digital TV and Video]  [Intellectual Property & Copyright]  [Personal] 

06 July

I am using a Canon SD430 digital camera for a project.

This is a decent 5MP camera with the ability to transfer images or do remote control image capture (or previewing) via 802.11b wireless (WiFi). It is normally expensive, but Amazon is having a clearance sale and selling the camera for $159.

The link is here [www.amazon.com] but I don't know how long it will stay available.

[Update subsequent to the original post: this price only lasted a short time and the camera is now more expensive again.]

As a web-cam this is great! It provides much better quality data than a standard web cam, and also can be connected to any wireless connection you might have. The camera works with connections in either Ad Hoc or Infrastructure mode (i.e. either and access point or a laptop directly). You do need a wired connection to MacOS or WIndows to configure it, though (too bad you can't associate to any access point without that, so you could send photos while wardriving).


By Gregory Dudek at | Read (1) or Leave a comment |    
31 July

The is a python COREblog "hook" method to allow me to be notified when comments are addded to the blog. This posting is only relevant to COREBlog users.

The following script sends me email when a comment is added.

This is a script called:


Takes 1 argument:

if d == 'debug':
d = {}
d["id"] = 10
d["parent_id"] = 10
d["title"] = "titleDebugString"
d["author"] = "authorDebugString"
d["moderated"] = "moderatedDebugString"
d["email"] = "dudek@example.com
d["url"] = "urlDebugString"

mailhost=getattr(context, \
context.superValues('Mail Host')[0].id)
raise AttributeError, "Mail Host object cant be found."

to_addr = "moderator@example.com"
from_addr = "blogScript@"+str(container.REQUEST["SERVER_NAME"])

coreblog = context.superValues('COREBlog')[0]
#print coreblog
#print "Moderation:",coreblog.getProperty("moderate_comment")

if coreblog.getProperty("moderate_comment"):
advice="You need to moderate this comment before it will become visible. Even if you delete it, but sure to hit the status change button."
advice="This comment is already visible now since comment moderation is off."

mMsg = """To: %s
From: %s
Mime-Version: 1.0
Content-Type: text/plain;

A comment was added to the blog just now.

Author : %s
Title : %s
URL : %s
EntryID / Moderate :
Body :

""" % (to_addr , from_addr , advice, d["author"] , d["title"] ,\
d["url"] , container.REQUEST["SERVER_NAME"], str(d["parent_id"]) , d["body"])

mTo = to_addr
mFrom = from_addr
mSubj = 'Blog comment added: '+d["title"]

#print mMsg, mTo, mFrom, mSubj
#return printed

mailhost=getattr(context, context.superValues('Mail Host')[0].id)
raise AttributeError, "cant find a Mail Host object"

# encode='base64' for HTML mail.
# Note documentation for simple_send puts body LAST and calls is body, but this works.
# Docs for the send method put it first but call it messageText (this too works below).
mailhost.send(mMsg, mto=mTo, mfrom=mFrom, subject=mSubj)

# only relevant when used for debugging.
return "Mail to",mTo,"sent using",mailhost.getPhysicalPath()

By Gregory Dudek at | Leave a comment |    
29 August

Screenshot from iPhone contact list
Well I finally got my hands on an iPhone and it's just as nice a device as all the media frenzy would lead you to believe. I am lucky enough to have a project that needs exactly such as device, so I can rationalize the purchase (in fact it's actually less costly than alternative solutions that provide the key feature set, and that was before the big price reduction of Sept 6th).

The user interface is genuinely very satisfying and the whole experience in really nice. Just as a mobile web client and PDA, it totally blows the socks off my prior Palm Treo and/or Windows CE (iPAQ) devices in terms of both aesthetics and usability. One slightly frustrating feature relative to the Treo is that the key on the on-screen keyboard are rather difficult to type with. This, apparently, improves with familiarity and is alleviated by a built-in automatic spelling correction engine; we'll see about that.

Activating the phone was tricky (without an AT&T subscription yet). In principle, the software does not permit this (and you can't get AT&T here in Canada), but inspired hackers have come up with a work around and now there are lots of tools for doing this. (I recommend the progran called iNdependence.) I would not recommend this for people who are not technically skilled and willing to risk an a few hours debugging, though. Better to get one of the (very attractive) AT&T phone plans, or (outside the USA) suffer it out until a carrier in your own country is available.

Activation was fairly "easy" on the factory-installed firmware (or I was just lucky). Once I installed Apple's 1.0.2 firmware update, however, the activation tools became very fussy and consistent told me that activation failed with an error code of -402653165 (i.e. "Activation failed with code -402653165") . I tried numerous tools and tricks. Simply attempting it several times in a row is supposed to work. I think getting it to work may well involve a random process since the set of alternative "solutions" people have reported on the web seems diverse to the point of being ridiculous. Key issues seem to be to (1) make sure all iTunes applications are stopped, (2) generating the proper home-made "plist" using the correct device codes, (3) re-enter jailed mode just while activating, and (4) making sure no other programs (such as iTunes) are using the same USB ports. I also though it was a good idea to kill USB camera demons (such as the PTP daemon for my Canon camera). The technically inclined should use "ps wax" and "kill" from the terminal window. Even so, getting it to work seemed to depend on an apparently random enabling and subsequent disabling of "jailbreak" mode (i.e. write enabled or protected modes) .

By Gregory Dudek at | Read (1) or Leave a comment |    
10 September

The iPhone has a note-taking application, but at present the notes do not seem to get synchronized with the host computer. I wrote a program that allows you to sync and save the notes database from the iPhone and/or restore it at a later date. It also produces an ASCII text file (notes.ascii) that has the content of the notes so that they can be accessed off the phone.

The program is python code and requires a python interpreter. This is found by default on Mac OS X, but I am not sure about it's status on Windows.

On a Mac, running it would involve opening a terminal window and typing:
python getNotesaver.py

The program can use the USB connection to communicate with the iPhone (in which case iTunes needs NOT to be running and the open source iphuc program must be installed). It can also communicate with the phone using scp, assuming you have "jailbroken" the phone and installed this tool. If you use scp, then the phone needs to be on your network and you should know it's IP address.


Of course this program comes with no assurance of utility or anything else. I do not warrant it in any way against any consequence, direct or indirect. I believe it works well, but by using this you disclaim all recourse for whatever it does, even if it erases your database, your phone or your bank account.

The program is here. The latest version is version 1.2.0. This page entry is updated as new releases appear.
(it was originally released as version 1.0 and there were several other versions).

It now includes the ability to patch the display of the cell-phone carrier name to allow the name to fit in the allocated space, for those not using AT&T. (Yes, it's sort of an odd feature for this tool.)

Feeback is welcome, especially from Windows users who should feel free to provide patches.

Updated Nov 26, 2008 to version 1.3.2 (Not all updates are noted in this way.)

By Gregory Dudek at | Read (4) or Leave a comment |    
12 September

This news will be all over the place soon, but I was surprised it has not been widely publicized yet. The software-onlysolution for unlocking the iPhone to allow it to work with and GSM cell phone company was released for free yesterday.

[ Followup 9/20: the software-only fix described below works well sometimes, often it is quite tricky, and occasionally (rarely?) it leads to complete disaster. ]

A solution that required a hardware fix, including opening the very-hard-to-open case has been around for some time. A software-only solution was announced weeks ago, but was widely considered to be false or premature. There ewre numerous announcements that failer to materialize. About 2 days ago a commercial vendor started selling a software-only solution which was widely believed to be derived from the intensive efforts of a public reverse-engineering group. Finally, yesterday, a free solution was released and it is being widely distributed on the internet. It seems to be compatible with Rogers in Canada as well as Fido, Vodafone, T-Mobile, Telstra, SingTel, ORANGE, PCCW Mobile, Telenor and other GSM providers.

So far, the solution still requires you to find various critical files on obscure web sites, but simpler and simpler ready-to-click packages are being produced by programmers. I have not tried any of these, but they are being very widely reported to work well for most people. A few caveats remain, such as that the solution will not work for SIM cards that have a PIN lock on them, or that a few people report rendering their iPhone inoperable (but who knows this small minority actually did, as some of the tools have the potential to be used incorrectly).

It remains possible that a subsequent release of iTunes from Apple with be incompatible with this or other unlocking solutions, but that is impossible to predict with certainty. It seems certain that Apple will be under pressure from AT&T, due to their contractual obligations, to try and stop this unlocking. They almost certainly cannot to anything to interfere with people using the current version of iTunes though, and they can't force people to update, so the risk is probably quite low.

By Gregory Dudek at | Leave a comment |    

The Words About Technology and Tools podcast that deals with unusual procedures you can accomplish with technology, and related topics. This ranges from how to modify consumer electronics devices, to experiments that might make an acceptable science fair project.

WATT deals with science and technology from the hands-on let's-do-it point of view. Each show considers one technological idea, ranging from a modification of a a consumer electronics device to a science experiment, or perhaps a set of hardware or software tools that can be used to develop other devices. The shows are delivered by Gregory Dudek, a robotics researcher in his day job (former director of the McGill Center for Intelligent Machines, currently on sabbatical spending time at MIT and CSIRO among other places), who dabbles with technologies both for amusement and to introduce other people to science and computing from a hands-on perspective.

You can find the podcast on iTunes, and subscribe there to get the episodes automatically.

Use this button to leave an audio comment or message for WATT. After you click the button it will prompt you for your phone number, and call you to allow you to leave a voice message.

Your comments on the podcast are welcome. Audio comments can also be left and may sometime be partly replayed on the show unless you specify otherwise. Feel free to post a comment or visit my blog while you're here.

Supplementary links for recent episodes

DARPA Urban Challenge


Customising a wireless router

Building or modding a digital video recorder

Electric Pickle: turning a pickle into a light bulb

Feed: feed://www.cim.mcgill.ca/~dudek/WOT/words_on_technology.xml

Release schedule: roughly once per fortnight or two (every few weeks).

Typical length of a show: 8 to 24 minutes.

Average show size: 15 Mbytes

By Gregory Dudek at | Leave a comment |    
Prev  1   [2]   3   4   5   6   7   Next