Zero Ink Instant Mobile Printers

Check out the new ink less printer. Yes ink less! No Cartridges! The Dell Wasabi PZ310 uses ZINK (Zero Ink) Technology for printing without ink. The special ZINK Paper has crystals that when heated produce all the colors of the rainbow. For a more geeky explanation click here: How ZINK Works.

The Wasabi printer is tiny and fits in your back pocket. Of course this means that the printer will only print on 2x3" paper. That's about the size of a business card. The printer can hold 12 pages and the ZINK Paper has a sticky back so you can print 'Kick Me', peel the back and stick the print out on random stranger's backs as they pass by. The Wasabi uses Bluetooth (FTP, BIP and OPP) to communicate. If you have the feature retarded iPhone with its crippled Bluetooth then sorry no mobile printing for you. Buy the Android instead.

Lastly, if you're not a Dell fan you could go with Polaroid's Pogo Instant Mobile Printer or Instant Digital Camera or Fuji Instax 200 Instant Digital Camera.

Notes on the iPhone Databases

The iPhone uses sqlite database to store its data. There doesn't seem to be too much documentation available on the structure of the tables or the triggers so below are some notes that I gathered during the Ndara iSMS Backup (http://code.google.com/p/ndara/) R&D phase.

Database Diagrams

Below are some database diagrams that could help:
sms.db call_history.db Calendar.sqlitedb AddressBook.sqlitedb AddressBookImages.sqlitedb

Retrieving the Databases

To access the databases install OpenSSH on the iPhone using Cydia. Install WinSCP on your windows machine. Get the IP address of the iPhone and SSH into the phone with the default username root and default password alpine. Detailed Instructions: http://www.hackthatphone.com/2x/open_ssh.html The databases are located at /private/var/mobile/Library. Click into the sub folders to find the related databases.

SMS.db : Message Table

I see a lot of queries regarding the triggers on the message table of the SMS database. Below are some details on the table: Fields
FieldData typePK
ROWIDintegerY
addresstext
dateinteger
texttext
flagsinteger
replaceinteger
svc_centertext
group_idinteger
association_idinteger
heightinteger
UIFlagsinteger
versioninteger
subjecttext
countrytext
headersblob
recipientsblob
readinteger
Indexes
IndexFields
message_flags_indexflags
message_group_indexgroup_id, ROWID
message_groupid_read_indexgroup_id, read
Triggers
TriggerEventsTypeWhen expression
delete_messageDELETEAfterNOT read(old.flags)
delete_newest_messageDELETEAfterold.ROWID = (SELECT newest_message FROM msg_group WHERE ROWID =old.group_id)
delete_piecesDELETEAfter
insert_newest_messageINSERTAfternew.ROWID >= IFNULL((SELECT newest_message FROM msg_groupWHERE ROWID = new.group_id), 0)
insert_unread_messageINSERTAfterNOT read(new.flags)
mark_message_readUPDATEAfterNOT read(old.flags) AND read(new.flags)
mark_message_unreadUPDATEAfterread(old.flags) AND NOT read(new.flags)

SMS.DB Message Table Definition

CREATE TABLE message (
  "ROWID"         integer PRIMARY KEY AUTOINCREMENT,
 address         text,
 "date"          integer,
 "text"          text,
 flags           integer,
 "replace"       integer,
 svc_center      text,
 group_id        integer,
 association_id  integer,
 height          integer,
 UIFlags         integer,

 version         integer,
 subject         text,
 country         text,

 headers         blob,
 recipients      blob,
 read            integer
);
CREATE INDEX message_flags_index
 ON message
 (flags);
CREATE INDEX message_group_index
 ON message
 (group_id, "ROWID"); 
CREATE INDEX message_groupid_read_index
 ON message
 (group_id, read);
CREATE TRIGGER delete_message
 AFTER DELETE
 ON message
 WHEN NOT read(old.flags)
BEGIN UPDATE msg_group SET unread_count =
(SELECT unread_count
FROM msg_group
WHERE ROWID = old.group_id) - 1
WHERE ROWID = old.group_id;
END;
CREATE TRIGGER delete_newest_message
 AFTER DELETE
 ON message
 WHEN old.ROWID = (
SELECT newest_message FROM msg_group
WHERE ROWID = old.group_id)
BEGIN UPDATE msg_group SET newest_message =
(SELECT ROWID FROM message
WHERE group_id = old.group_id
AND ROWID = (
SELECT max(ROWID) FROM message
WHERE group_id = old.group_id))
WHERE ROWID = old.group_id;
END;
CREATE TRIGGER delete_pieces
 AFTER DELETE
 ON message
BEGIN DELETE from msg_pieces
where old.ROWID == msg_pieces.message_id;
END;
CREATE TRIGGER insert_newest_message
 AFTER INSERT
 ON message
 WHEN new.ROWID >= IFNULL((
SELECT newest_message FROM msg_group
WHERE ROWID = new.group_id), 0)
BEGIN UPDATE msg_group
SET newest_message = new.ROWID
WHERE ROWID = new.group_id;
END;
CREATE TRIGGER insert_unread_message
 AFTER INSERT
 ON message
 WHEN NOT read(new.flags)
BEGIN UPDATE msg_group SET unread_count = (
SELECT unread_count FROM msg_group
WHERE ROWID = new.group_id) + 1
WHERE ROWID = new.group_id;
END;
CREATE TRIGGER mark_message_read
 AFTER UPDATE
 ON message
 WHEN NOT read(old.flags) AND read(new.flags)
BEGIN UPDATE msg_group SET unread_count = (
SELECT unread_count FROM msg_group
WHERE ROWID = new.group_id) - 1
WHERE ROWID = new.group_id;
END;
CREATE TRIGGER mark_message_unread
 AFTER UPDATE
 ON message
 WHEN read(old.flags) AND NOT read(new.flags)
BEGIN UPDATE msg_group SET unread_count = (
SELECT unread_count FROM msg_group
WHERE ROWID = new.group_id) + 1
WHERE ROWID = new.group_id;
END;

DIY: Use New Smartkey with 2005 Nissan Altima

They said it couldn't be done! Definitely a ghetto mod on the inside but oh so worth it on the outside! **This is NOT for the faint hearted!** The new Nissan/Infinity SmartKey or iKey is not compatible with older Nissan/Infinity cars . You can find switch blade FOBs on eBay but Arati really wanted the cooler looking SmartKey for her 05 Altima. With this mod what were basically doing is taking out the guts of the old FOB, modifying it and putting it into the SmartKey's Fob housing. I got most of my information from this post but the FOB in the post had a different circuit board so the solder points are different. Some Caveats: These instructions are not detailed. I'm too sleepy to type details. You need to know a bit about electronics and soldering to survive this. There are two types of smartkey housings and there are two (maybe more) types of old fob circuit boards. But lucky you, between this post and the one above you should find your answers! I would recommend trying this on a spare fob incase you solder through the board! I however have no patience so I started on the one and only fob that Arati has. Before I started I tested all the contact points that I was going to use by shorting them with a wire and checking if the car responded. Tools: A pair of pliers and scissors help too! The FOBs: Why we're doing what we're doing Since the buttons on the Smart key are spaced differently from the old fob we need to make up for this by replicating the button contact area in the right spots. The panic button is the only one we wont need to move since it lines up (almost) perfectly with the new fob. The contact area is basically two wires (+/-). When a button is depressed the little back dot on the plastic sheet touches the two wires and completes the circuit and beep beep the car responds. The How To: First lay down two layers of sticky tape over the front of the circuit board to prevent any shorts. Take strands of the 16 gauge (or similar) copper wire and put them through the holes in the front and solder at the points identified at the back. I used the sticky tape to secure the wires and to make sure they didn't touch each other or move.
The Front - poke the wires through these holes
The Back - Solder the wires at these points (if your Circuit board looks different refer to the post above)
Here is a mid-way shot. I still have to solder the lock2/unlock2 and the battery thingy.
Here is the back all done
And the front all done:
Now arrange the wires as shown. Some things to remember:
  • Cut out the tape above the Panic Button. We will be using the original button area for this button.
  • Compare the button location and area against the new housing to align your wires correctly
  • Be sure to cut out the tape at the contact points - these will be your SmartKey FOBs button contact area.
At this point I tested the mod by putting in the battery (taped it to hold it secure) and checking each contact area one at a time by placing a contact dot from the plastic sheet over the contact area. Might be a good idea for you to do so too! Next was the point of no return for me coz the soldering was great for me but now I was cutting up things! Cut up the plastic sheet with the contact dots from the old FOB and place them over the contact wires. This is a pre-shot. I had to cut the plastics further as I tweaked it to ensure that the contact area aligned with the buttons properly. I don't have a picture of the next part but you can check this picture out from the thread above to get an idea. I ripped out the tactile switches from the new FOB's circuit board with a pair of pliers. I laid a line of sticky tape over the contact dots and stuck the switches over the contact area. This is because the buttons on the new FOB are set in too deep and we need a filler so that the buttons can make contact with the contact dots. I stuck a rubber square for the panic button. Aligning the contact points is the toughest part of this mod. I took me a long time to get it perfectly aligned so that the buttons respond when pressed with normal pressure. On the housing I had to break off some bits that held the battery in place to allow for the mod's circuit board to fit. A pair of pliers will do nicely here. The forum post suggests removing the rubber button layer so that the case can close completely. I didn't really want to do that since the FOB wont be waterproof without the rubber layer. I had to rip out all the obstructions in the housing and file down some edges of the circuit board and the surface of the housing. Do what you need to. After all is done, close the case. I managed to close the housing almost a 100%. but you don't really notice coz you're admiring the shiny new FOB :)

Ndara iSMS Backup for iPhone

I spent an afternoon searching for a free software to backup my SMSs from my iPhone 3G and save them on my PC. There were 2 software apps that I found. One was for a Mac only and the other costs money and saves the SMSs in a propriety format. Its been a while since I've taken up a project but making a SMS backup utility sounded like fun!. Introducting Ndara iSMS Backup. It is currently in beta. Ndara is free and open source. It is developed in Java to try and make it work across OSs like Linux and Mac. I've only tested it on Windows (XP and Vista) for now. But I'm feeling confident that it will work on Linux. Ndara allows you to backup all your SMSs or choose a single contact to backup. Backup formats available are: simple text file (.txt), styled xml or the original SQLite DB (sms.db). The XML format is styled using an XSLT that makes the SMSs look pretty; similar to what they look like on the iPhone (see screenshot below). No more propriety formats. This XML backup is nice and portable. Currently Ndara works only on the iPhone 3G. The iPhone 2G stores the sms.db in a different location. It's not too hard to make Ndara compatible with 2G. This feature is slotted for the next release. Visit Ndara iSMS Backup here: http://code.google.com/p/ndara/ Feedback welcome.. And here are some Screenshots:
The Application
The Styled XML Backup Option
Welcome Ndara, the God of the Underworld.

Export/Import a Digital Certificate

Have a new machine and trying to Export/Import a Thawte (or any other) Certificate? Make sure you follow these steps: https://search.thawte.com/support/ssl-digital-certificates/index?page=content&id=SO552 Else you'll end up with errors like this along the way to Importing and Using the Exported cert: - Windows does not have enough information to verify this certificate - Error -2146885628 certificate installation failed - Microsoft Outlook: Could not sign or encrypt this message because your certificate is invalid The cause in my case was that the root certificates for the CA (Thawte in this case) were not included in the certificate when I exported it. Thats the reason windows could not verify the certificate and Outlook would not send encrypted emails. Installing Thawte's root certificates (from: http://www.thawte.com/roots/) didn't help. Reinstalling my cert from the Thawte website gave me an error too. Thankfully, I hadn't deleted the original cert from my other laptop so I re-Exported the certificate correctly using the steps above. The important bit is labeled such in the steps:
IMPORTANT: On the Export File Format page place a tick next to the option that says: "Include all certificates in the certification path if possible". Click on Next.

Hack Attack: Remote control your torrents with uTorrent's WebUI

uTorrent: The only ONLY only reason I keep a Windows box around.. Hack Attack: Remote control your torrents with uTorrent's WebUI

The Color of Money from Around the World

See a lot more: Color + Design Blog / The Color of Money from Around the World by COLOURlovers

Wakerupper.com - Free Wake-up Calls and Telephone Reminders

(its free!!) Use Wakerupper to... * Set a wake-up call at a specific time * Remind yourself of important events * Remember to take medication on time * Escape from a boring date or meeting * Remind child or spouse to do chores * Set reminders for tasks and follow-ups Wakerupper.com - Free Wake-up Calls and Telephone Reminders

Web OS: The virtual OSes

Ever heard of a WebOS?!! Well neither had I. Here's a quick look at a few. Taken from: franticindustries.com

A Web OS is a virtual operating system that runs in your web browser

1. Craythur

craythur.jpgCraythur is a completely new WebOS that puts big emphasis on looks, and it does that part really well, with a well chosen desktop background and transparent window borders similar to those Vista’s Aero. However, the apps themselves are more alpha than beta. For one thing, they’re mostly not translated from Spanish. They work, but nothing more than that; none of them can hold their own against any decent comparative application, web-based or otherwise. Since this is obviously an application at its very early stages, let’s just leave it at good-looking and come back in a few months to see the progress.

2. Desktoptwo

desktoptwo.jpgIf there’s such things as “serious WebOS players”, Desktoptwo is one of them. It’s a Flash based fully featured WebOS which requires registration to try, immediately giving you your own mini-site and your own Desktoptwo email address to use. Desktoptwo is Flash-based, and while I’m not thrilled about Flash Web 2.0 applications, most of the OSes from this list work in Flash, and I must admit that some do it pretty well. Desktoptwo’s apps can be slow, and a certain amount of bugs are present (when i clicked on Message Board preferences, everything got garbled up), but not so much to ruin your experience with the service. One more thing: Desktoptwo opens in a popup, which is sure to annoy some users.

Feature-wise, Desktoptwo delivers and then some. You’ve got search, clock and sysinfo widget, a dock, MP3 player, RSS reader, Instant messenger, OpenOffice, HTML editor, notepad, and several others. Unfortunately, several of these open in popups, which somehow makes you remember you’re in Windows. Furthermore, if you close the Desktoptwo window and log in again, some of your settings are forgotten. However, your content, for example, the files you save to the desktop, or the RSS feeds you add in the very functional RSS reader are remembered over sessions, which is good. Overall, Desktoptwo does many things well, but it needs to iron out a few usability/UI issues to become a really usable WebOS.

3. EyeOS

eyeos.jpgTaking a bit of a different approach than other sites in this bunch, EyeOS offers you to download the EyeOS server files and install them on your on web server to use as you please. You can also try out a demo which is hosted on the free public server eyeos.info, which also provides free accounts of eyeOS to everyone who wants to use it without owning a private server. The public server is funded through donations, and there’s still quite a way to go, so if you like EyeOS, go ahead and help them.

EyeOS itself is functional, not too buggy, but a bit slow and a bit bland. You have your standard calendar, calculator, address book, RSS reader, simple word processor, file uploader and a few others, but they have pretty limited functionality, and they all look more like test apps than something you’d really use in day to day work. Furthermore, some of the options simply do not work, for example changing the wallpaper.

Although EyeOS seems to be an ambitious project, it doesn’t offer much more than, for example, Craythur. It looks nice, it works, but its apps aren’t interesting enough to actually use it for any serious work.

more...

BBC - History - Timelines - British Timeline

BBC - History - Timelines - British Timeline An interactive British History timeline! A BBC Presentation