10.28.08
First Steps with Forerunner 405
This is just an initial post regarding my recent gadget: the Garmin Forerunner 405.
A review can be found here and this initial post is the beginning of a technical approach to reverse engineering its protocol.
More info and data soon. Moreover, if you own this forerunner and are able to provide USB Traces in text form, please let me know.
10.24.08
USB Sniffer for Windows Vista
Hellllllllllllp…
Well, for very strong reasons to be uncovered in a later post (which I hope to publish soon) I need a USB Sniffer for Windows Vista.
Unfortunately, all free ones (yes, I am not thinking about paying for them) are not vista compat, and I only know 2:
So, this post is basically a help request for people out there… if you know one usb sniffer working under vista, please, please, let me know. :) [I shall thank you on every post that follows regarding this subject]
10.14.08
Fortune of The Day
From “Programming in Haskell” by Graham Sutton:
The parser type can also be read as a rhyme in the style of Dr Seuss:
A parser for things
Is a function from strings
To lists of pairs
Of things and strings!
10.11.08
Disappointed Students Scene…
Unfortunately I can’t draw a cartoon but I can set the picture…
An enthusiastic student had a brilliant idea… he writes the problem statement in the first page and a long solution in the pages that follow, he is happy… he finally had that idea… he’s going to turn the world upside down. He goes to the lab and waits for the supervisor to arrive. He arrives!!! Without delay the student enters his supervisors office, pen on the right hand, papers on the left and says:
- Professor, I solved a very interesting industrial grade problem with a very smart algorithm.
The Professor looks at the first page for a few seconds, reads the problem statement, returns the papers to the student and says:
- No you didn’t, this problem is reducible to the Halting Problem.
The student frown, grabs the papers and leaves…
10.10.08
SAT and the quest for the perfect study subject…
This must be the oldest post in my drafts bucket. Its creation (the title, I mean, because the body as been empty up until today) dates from May 23rd, 2005.
It was always my wish to write more about my research work but for one reason or another I end up writing about the most uninteresting topics and failing to discuss what I think to be one of the most interesting research topics out there (oh yeah, flame me…).
SAT is the short name for the SATisfiability problem (or Boolean Satisfiability Problem). The problem is: Given a propositional formula… yes, those like ((x => y) /\ ~x)… is there an assignment to the variables of the formula such that it evaluates to true?
This is the problem, simple, huh, well, simple indeed to state it but not so easy to solve it. Anyway, when there is such an assignment we say the formula is sat (for satisfiable), otherwise it is unsat (for unsatisfiable). In the example above the formula is sat because a value of false assigned to x and a value of false assigned to y makes the formula true. A trivially unsat formula would be (x /\ ~x). You see, this was the first problem to be proved NP-Complete by Cook in 1971. This is a very interesting class of problems since every NP problem can be converted into SAT and solved using a SAT solver (a software that uses the SAT problem). Sometimes it happens that these properties are interesting theoretical results with no practical application but this is not the case for SAT. Many problems are indeed reduced to SAT in order to be solved by a SAT solver. This is because current state of the art SAT solvers are so good that a problem which would take a near infinite amount of time to solve a decade ago, now takes a reasonable time to solve. We are, obviously, talking about problems where the number of variables amounts not to dozens, or even thousands but to millions!
Understand that if you apply a trial-and-error search for an assignment in a formula with 1000000 (one million) variables, in the worst case the formula is unsat, and you have to test 2^1000000 assignments (oh yeah, that’s a big number). However, it’s not uncommon for SAT solvers to prove the unsatisfiability of a formula that big.
It was by chance that I came to work in subjects related to SAT… it was also by chance that I came to work with my supervisor (Prof. Joao Marques-Silva), which lingers among the few that know SAT solvers inside out for a very long time.
SAT is fascinating, not only because it is a problem like the 3n+1 problem (easy to state, hard to solve), but also because of the huge application it has in both academic and industrial settings. In between a long list of applications, my favourites are:
- Model Checking, which includes Software and Hardware Verification
- Test Case Generation
- Haplotype Inference in Computational Biology
- Model Finding in Soft Formal Methods
Obviously, being such an interesting problem, several related problems exist which base themselves on SAT:
- SMT – Can we solve the SAT problem on propositional logic + decidable theories?
- #SAT – How many solutions a sat formula has?
- SAT Enumeration – Which solutions a sat formula has?
Besides the problems related with research and commercial application, programming is certaintly a much important issue in SAT. Which data structures and algorithms to use, how to program it, which language? A yearly competition puts to test the best SAT solvers and it takes more than just reading a couple of papers to have the best solver. You need to be clever while programming, while choosing the data structures, the algorithms, and still factoring in how extensible, usable, you want it to be… How much more can you ask from a research subject?
Fortune of the Day
Some quotes are just interesting and you have to share them… other are odd and come from the wierdest of places. Do you remember the quote in the Doom game?
Sure, don’t order DOOM. Sit back with your milk and cookies and let the universe go to Hell. Don’t face the onslaught of demons and spectres that await you on The Shores of Hell. Avoid the terrifying confrontations with cacodemons and lost souls that infest Inferno.
Or, act like a man! Slap a few shells into your shotgun and let’s kick some demonic butt. Order the entire DOOM trilogy now! After all, you’ll probably end up in Hell eventually. Shouldn’t you know your way around before you make the extended visit?
OpenPandora is Out of Stock…
I guess I have just been sleeping too much as only now I have noticed the OpenPandora project… now that it went out of stock. However, stock will come back in 2009 and this shouldn’t be a project to miss. I am really glad to see projects like OpenMoko and OpenPandora flourishing these days. :)
Lets just try to get a hand on them by 2009!
10.01.08
First Half-Marathon, some thoughts…
My first officially clocked half-marathon was this week in Portugal, with Silas Sang winning with an extraordinary time of 1h01m26s. I arrived an hour later when the clock marked 2h00m37s. It was an awesome run, to be repeated soon in Gosport for another half marathon. I will be back to Portugal for the full marathon on Dec. 7th. See you all soon!