Now here’s a free web service I find extremely useful.
We get dozens of PDF documents from the university, but some of them (annoyingly enough) are locked for printing. Printing long articles is essential, at least until we have e-book readers that are good enough at displaying scanned PDF files.
Using this free, online unlock service for PDF files, you can now print locked PDF files or copy parts of them into other documents. You simply upload the file you want to unlock, agree to the don’t-blame-us-we’ll-blame-you Terms of Service, and this service does the rest for you.
PDF Document Locked for Printing?
June 18th, 2009 by nadav
Posted in Technology, Web | 1 Comment »
Jericho – the incredible HTML parsing machine
February 22nd, 2009 by nadav
Visually, HTML is remarkably similar to XML. No wonder, since they both share a long history with SGML. But while XML documents are generally well formed, real world HTML is far from perfect. As any (frustrated man-loathing) web browser developer knows, writing a browser that displays real world HTML requires a lifetime of work and a handful of patience. After all, HTML is not an achievement of working groups and standards organizations like the W3C. It is first and foremost the brainchild of a bunch of brilliant geeks, and the outcome of the famous browser wars.
Confronted with the task of parsing HTML, and reluctant to roll our own parser, we went looking for the most potent HTML parser out there – preferably one that’s written in Java, or perhaps one that targets the .NET Framework.
Of all the libraries we’ve checked out back then, Jericho stood out from the crowd – for the following reasons:
- It’s not naive. Many libraries out there start out as an experiment of a naive programmer who witnesses the simplicity and elegance of XML and attempts to apply it to HTML. Author Martin Jericho knows what’s out there.
- By default, it does nothing. Unlike JTidy and many other proactive libraries, Jericho only modified the segments of the document it is instructed to modify. Web pages are generally written to be parsed by the most popular web browsers. Proactive libraries have to “understand” HTML the same way the popular browsers do; until they do, they will keep introducing unintended changes to the page when viewed in a browser.
- It does one thing, and does it well. Jericho does not attempt fix broken XML. It doesn’t try to fit the latest Web 2.0 AJAX framework. It does one thing – parse and surgically modify HTML documents – and does it well.
It is licensed under both the Eclipse Public License and the LGPL.
Posted in Technology, Web | 1 Comment »
Hacking Canon PowerShot SD450
April 7th, 2008 by nadav
After getting an iPhone with a decent built-in camera, I was under the impression that point-and-shoot cameras, like the Canon IXUS 55 (aka PowerShot SD450) I own, are all but dead. In an unusually interesting story, CNET’s Leonard Goh reports about an unofficial “expansion pack” for Canon cameras. The expansion pack’s purpose is to workaround the fact that the camera’s firmware – not necessarily its hardware – is what limits what the camera can and cannot do.
I installed the CHDK (Canon Hacker’s Development Kit) version that fits my camera model, and was amazed to see it in action. It provides, for instance, improved control over shutter speed, enabling one to take these fabulous photos using a relatively cheap camera.
Posted in Photography, Technology | No Comments »
Roll your own home automation solution — from scratch
April 5th, 2008 by nadav
My brother Ori is rolling his own home automation project, which includes designing and manufacturing the hardware and developing a software application that would control the hardware (the part that makes it truly smart
). By sending and receiving simple instructions through the serial port, the software would be able to perform such simple tasks as turning on the light when a switch it turned on, as well as more sophisticated stuff like automatically turning on the dishwasher when a random car drives into the driveway.
Ori is an extremely talented electrical engineer, but he’s a little lazy when it comes to software. He approached me a while ago and suggested that I participate in the project, and be responsible for the software part of it.
Since the hardware is proprietary (the hardware as well as the protocol it supports are completely unique), a question that we asked ourselves early on in the project was whether we can use an existing piece of software to control the hardware. One problem with many existing open source solutions, though, is that they tend to mix the implementation of the hardware protocols they support with the rest of the application code, making it hard to re-use existing code or add support for new protocols.
One solution that does look different in this aspect is HouseBot, a plain old shareware program. HouseBot has a plug-in architecture that supports two main concepts: Hardware Interfaces and Devices. By defining a Hardware Interface that supports our cryptic hardware protocol, and Devices that represent real world appliances that interact with this Hardware Interface, we can write only the parts necessary to support our unique protocol, while harnessing the user interface and generic application logic provided by HouseBot. At $80 a pop for such a niche product, it would definitely be a bargain.
I’ll post more information on the project as it develops.
Posted in Technology | No Comments »