Monday, November 01, 2004

The Lit Window Library 0.3.1

Although I haven't written much (any?) GUI code in a while, I do keep up with the work of many of my friends and collegues in the field as there are many problems in this area that need solving.

Stumbled across this one open source project today that takes an interesting (and what appears to be a viable) approach to addressing some of the major hassles of GUI programming for applications.

The Lit Window Library 0.3.1

A C++ library with reflections, rule-based programming, and UI patterns.
Posted by Leonard Rosenthol at 9:31 AM
Categories: Programming, Software

Sunday, October 31, 2004

GLAT - Google Labs Aptitude Test

For anyone that hasn't heard, Google has been out "shopping" for programming talent for the last year or so - and as part of that they've had a couple of contents and have also finalized their "Aptitude Test", which thier VP of R&D just posted to his blog.

Does strike me as pretty weird that it's 4 72-dpi GIFs however....You'd like a guy who was VP of R&D for a search engine company would know about PDF, wouldn't you???

Posted by Leonard Rosenthol at 10:18 AM
Categories: Misc., Programming

Tuesday, October 26, 2004

Mac OS X on a 68K Mac - believe it or not!

Some guy with WAY too much time on his hands, has been able to "run" Mac OS X 10.3 (Panther) on his 68k-based Quadra using Debian Linux and PearPC. See here for all the details!

Posted by Leonard Rosenthol at 8:10 AM
Categories: Misc., Programming, Software

Friday, October 15, 2004

REALbasic is still pretty cool!

Finally got around to updating my aging copy of REALbasic - a development environment that I haven't used in years, but used to think was pretty cool...

Well, it still is - and in some ways even cooler!

I built a cross-platform (Mac OS X, Windows and Linux!) version of our PDFMerge application as a test, which included having to write an RB plugin to link ou C++ code base for PDF rendering and processing to the RB GUI application. It took me about a day - most of which was spent relearning the object model, API, etc.

Hardest part of the development was trying to remember NOT to end lines with a ; - too many years of C/C++ and Java!

Posted by Leonard Rosenthol at 2:11 PM
Categories: Programming, Software

Wednesday, October 13, 2004

Low cost OCR

On one of the many lists that I subscribe to, during a discussion about OCR software, someone recommended TOCR - an extremely inexpensive, no frills but quite accurate OCR application for Windows. You even get full (VB) source to the viewer application - though not the OCR engine.

Interesting possibilities...

Posted by Leonard Rosenthol at 11:17 PM
Categories: Programming, Software

Wednesday, October 06, 2004

JHOVE - Java-based file validation

JHOVE (pronounced "jove") is a "extensible framework for format validation" written in Java with modules forarbitrary byte streams, ASCII and UTF-8 encoded text, GIF, JPEG, and TIFF images, AIFF and WAVE audio, PDF, and XML; and text and XML output handlers.

As you might imagine, I am quite excited about the PDF module which includes support not only for basic PDF, but also PDF/X and the upcoming PDF/A, but also the JPEG2000 module which should prove helpful with some work we are doing.

Posted by Leonard Rosenthol at 9:46 AM
Categories: PDF, Programming, Software

Friday, October 01, 2004

My life on the Frontier

Although Dave did an audio blog about his thoughts, feelings, etc. on Frontier - I figured I'd add my two cents...

NOTE: I'll probably get this timeline wrong - it's been a while - but the points are there. If you have comments on the timeline, let me know!

Dave first introduced me to Frontier around 1990 when I was working at Software Ventures on the MicroPhone terminal emulation software (remember those things ;), and also helping out my friends at Aladdin on their new company and StuffIt. At that time, Dave was building this programming environment and a key aspect was the ability to leverage other applications - via IAC (InterApplication Communications). So Userland put together the "Userland IAC Toolkit" for developers to use with their apps to be callable from Frontier. Pretty cool stuff for 1990!

Of course, Apple was hard at working on their System 7 and it included the technology now known as Apple events - an OS level IAC mechanism. So the IACToolkit was updated to support both the older technology AND Apple events (handling the internal complexities for the developer).

I worked with Dave and Userland to get IACToolkit support into three products (MicroPhone, StuffIt and the Disinfectant Anti Virus app) as part of a demonstration of the technology at the Apple Developer's Conference in 1991. It was a neat demonstration and got a lot of interest in the technologies and products.

From there, I become a pretty active user of Frontier for use in automating many of my own personal processes including software build systems and communications, and building a lot of little utilities in UserTalk instead of C! While other folks were playing with Hypercard, I was doing useful stuff with Frontier. I was also heavily involved with Apple and the development of AppleScript, it wasn't a place I was productive - Frontier was!

During my time with Frontier, I contributed a bunch of code to Dave and Doug (Baron, the other main developer of Frontier who really doesn't get the credit he deserves!) of which most seems to still be in there! I also wrote a number of heavily used UCMDs (plugins for Frontier) including the TCP UCMD that was later replaced with a "kernalized" TCP module and the StuffIt UCMD, for native compression/expansion facilities. Bottom line - it was a great time and I had a lot of fun!

I think I finally left Frontier behind me, when it left me - moving from a scripting and automation system to one focused on web content management, syndication, etc. There is no question that from a business decision Dave and Userland went the right way - and we have things such as RSS and XML-RPC because of it - but it wasn't where I was going...

But now Frontier has been "freed" and I am hopeful to find the time to get back into using it - and contributing to it!

Posted by Leonard Rosenthol at 4:16 PM
Edited on: Sunday, October 03, 2004 8:41 AM
Categories: Frontier, Programming

Frontier goes open source!

Dave Winer, infamous "father of blogging", Mac/Apple harasser, etc., has announced that the software product, Frontier, that he and his company Userland developed has gone open source.

Although I haven't used Frontier in years (since it decided it was a web publishing system and not a general purpose scripting system), I worked closely with Dave on Frontier from pre-release through version 5. So I am quite excited to see it come back to life as it was originally intended, and with access to the code to see how things work under the hood.

A new way to record screens

Interesting open source project, vnc2swf, uses VNC (the remote screen sharing system) to record a screen sharing/control session into a SWF/Flash movie for distribution

Sounds pretty useful for demos and debugging!

Posted by Leonard Rosenthol at 2:38 PM
Categories: Programming, Software

Font tools and the new FTMaster

In addition to being a maintainer of the FreeType project, I spend a lot of time working with fonts and text for our PDF and Postscript work. As such, I am always on the lookout for good tools to help debug fonts and font-related issues.

On Unix, I love the open source FontForge program (formerly PfaEdit) - it can open up any font format you can think of, edit them (either manually or programmatically) and then save as the same OR A DIFFERENT format. George Williams does great work - but only for Unix platforms. (OK, I can install X under CygWin, but I've better ways to punish myself ;)

When I'm working on the Mac, I use Font Inspector by Steve Hartwell. Another excellent tool that has saved my butt on multiple occassions. Steve keeps promising me a Windows versions - but nothing yet :(

FINALLY, someone has come out with a tool for Windows that does everything I need - AND THEN SOME - including reading font data directly from PDF files!!! Altsoft's new FTMaster is just what this "doctor" ordered and worth every penny of the $99(US). Of course, that's an introductory price - so get in there before they raise it.

Posted by Leonard Rosenthol at 2:28 PM
Categories: PDF, Programming, Software

Friday, August 27, 2004

Rich text editors for your web browser

I've had a couple of clients recently who've been interested in building solutions around a rich text editing piece in the web browser, linked to a PDF generation piece on the server that will produce a press-ready PDF from it.

We've had the PDF piece for a while - offering full support for rich text (including tables, lists, Unicode, etc.) along with placement of images, other PDFs, SVG and even PS/EPS. - but now we had to help them find stuff for the client

I've found two that seem to solve the problem nicely - and both are based on JavaScript/DHTML and NOT Java!

  1. Editlet - a very powerful commercial solution
  2. Rich Text Editor - an basic (but nicely done) open source solution
Posted by Leonard Rosenthol at 4:08 PM
Edited on: Friday, October 01, 2004 1:47 PM
Categories: Programming, Software

Tuesday, August 24, 2004

Excellent primer on product pricing

An old college buddy of mine, Eric Sink, wrote an excellent primer about how to price your software product, based on his experience at SourceGear.

I HIGHLY recommend this to anyone in the software industry!

Posted by Leonard Rosenthol at 8:41 PM
Categories: Misc., Programming

Fixing bugs by not letting users find them...

A new project on SourceForge called Stabelizer takes an interesting approach to finding and fixing bugs...

Instead of actually fixing the bug, the solution is to catalog the bugs in the software and then install "gates" that keep the user from getting to that problem again.

I guess that's one way to make sure you don't get any more reports!
Posted by Leonard Rosenthol at 2:15 PM
Categories: Programming

wIX - Build Windows installers from XML

In a strange twist, Microsoft has released into the open source community their Windows Installer XML project.

.

WIX is a toolkit for building Windows installers using an XML source description. It is the exact same toolkit that MS itself uses for building the installers for Office, SQL Server, etc.

Looks like good stuff!

Posted by Leonard Rosenthol at 9:46 AM
Edited on: Friday, October 01, 2004 1:50 PM
Categories: Programming, Software

Tuesday, August 17, 2004

Postscript generation on Mac OS X

I keep meaning to write up some comments on this subject, and since it came up at work today - now is a good time!

First, let's look back at Mac OS 9 and how printing took place.

In Mac OS 9, applications printed using one of three methods..

  • QuickDraw - the native drawing model of Mac OS 1->9
  • QuickDraw + PSComments - native drawing plus some Postscript fragments when necessary
  • "pass through" Postscript - send PS directly to the printer

When sending QuickDraw(QD) either by itself or with PSComments, the printer driver was responsible for converting the QD instructions into Postscript and then sending the PS unto the printer. This is how most applications worked. However, professional graphic tools (eg. Adobe apps, Quark, Macromedia apps) would take the last route and generate their own PS and send that or if dealing with a non-Postscript printer would send a big raster image.

Mac OS X no longer uses QuickDraw for imaging, instead moving to a PDF & PS-compatible drawing model called Quartz. Quartz's image model and it's ability to read & write PDF documents permeates the entire OS - including the printing system. I have a whole presentation about this - if you wish to read more. One feature of note, however, is that the OS includes the ability to create Postscript from PDF (and as of 10.3/Jaguar, the ability to create PDF from Postscript)

OK - back to printing...

Instead of the three modes of Mac OS 9, Mac OS X offers four modes...

  • QuickDraw compatibility - a path for older/dumber apps to print
  • Quartz - the native drawing model of Mac OS X
  • "pass through" Postscript - send PS directly to the printer
  • "pass through" PDF - send either PDF or PS directly to the printer (new in 10.3)

A handful of applications that haven't been fully Carbonized may still use Quickdraw to render on the screen and/or to the printer. In those cases, such applications don't get any of the benefits of Mac OS X including the integrated PDF support. They will be able to print, as the OS will convert QuickDraw to PDF on the fly during printing - BUT any attempt to use PSComments will fail.

The majority of applications - be they Carbon or Cocoa-based - will use Quartz to print. They already use it to render and now they send it to the printer. This will create a PDF file automatically into the printer's spooler, since PDF is the native spool format for Mac OS X. These PDFs are high quality, though sometimes larger than necessary - but take advantage of advanced PDF features such as ICC profile-based colors, subset fonts and Unicode support.

The one caveat to clean and simple PDF/PS generation with Mac OS X is an application, such as Microsoft Word, that supports the inclusion of EPS graphics. Versions of Mac OS X prior to 10.3/Jaguar did a pretty poor job of passing this information to the printer - 10.3 is just fine, however

Even so, professional printing apps can continue to send PS directly to the printer - but in the event that the user doesn't have a PS printer, the app no longer has to rasterize into a big image, the OS can now convert the PS to PDF and handle it itself! Newer applications, such as Acrobat 6.0.1 and later, running on 10.3/Jaguar can even send PDF documents directly to the printing system avoiding all the overhead.

So a Postscript printer will get Postscript created either by the application directly or by the OS-provided conversion of PDF to Postscript. Unfortunately, this isn't the world's best Postscript and has a number of issues, especially with proper handling of fonts and text that may later be reused for other purposes. (For printing it is just fine, but PS reuse is a known issue.)

Bottom Line - if you are working with Mac OS X and Postscript, make sure you are using Mac OS 10.3 or later with the latest versions of your authoring/production applications!

Posted by Leonard Rosenthol at 11:00 AM
Edited on: Thursday, August 19, 2004 8:49 AM
Categories: PDF, Programming

JSON - when XML is too hard for you

I came across an article on CodeProject today about JSON.

.

The introduction for JSON describes it as:.

JavaScript Object Notation (JSON) is a lightweight data-interchange format. It is easy for humans to read and write. It is easy for machines to parse and generate. It is based on a subset of the JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999. This feature can also be found in Python. JSON is a text format that is completely language independent but uses conventions that are familiar to programmers of the C-family of languages, including C, C++, C#, Java, JavaScript, Perl, TCL, and many others. These properties make JSON an ideal data-interchange language.

I describe it as someone who had a bad experience with XML, decided it was too hard, and wrote their own alternative based on something that was easy for them to do. You can easily see this in their XML vs. JSON page. or their examples of JSON vs. XML

To each his own...

Posted by Leonard Rosenthol at 10:35 AM
Categories: Programming

Wednesday, August 11, 2004

PBToMake - XCode to Unix

We're bringing some of our Mac & Windows tools over to Solaris and Linux, and were looking for an easy way to have the makefile (or at least a start of a makefile) auto-generated. A quick web search found this tool - PBTOMake. If anyone else has other suggestions, let me know! Hope others find it useful.
Posted by Leonard Rosenthol at 11:04 AM
Edited on: Friday, October 01, 2004 1:48 PM
Categories: Programming, Software

Imaging Algorithms

On the Krita mailing list, someone posted this link to a whole bunch of imaging algorithms. Figured i'd pass it along. Leonard
Posted by Leonard Rosenthol at 10:43 AM
Categories: Programming

Monday, August 09, 2004

Acrobat Development Workshops

Adobe and PDF Sages will be offering a FREE set of workshops as part of the upcoming PDF Conference in Baltimore during September.

I'll be delivering the first workshop that morning - "Developing with Adobe Acrobat and Adobe Reader". It's a great half-day introduction to all aspects of using Adobe's PDF tools to deliver PDF solutions to your customers. We'll cover plug-ins, Visual Basic, JavaScript, XML and more!

The afternoon will feature Lori Defurio, Adobe's Developer Evangelist, speaking about their new LiveCycle architecture for server-based integration of PDF, XML and Java. It's VERY cool stuff and worth checking out - plus Lori gives good demo!

You don't need to attend the conference to attend our workshops, but I recommend the conference also - some of the smartest people in the PDF world will be there and happy to impart their knowlege!

Posted by Leonard Rosenthol at 12:18 PM
Categories: PDF, Programming

Sunday, August 08, 2004

XFDF support for iText

Another open source project that I contribute too is iText - a GREAT Java-based PDF generation library. It also has some basic manipulation facilities, such as stamping, form filling, etc.

Although iText already had support for the Forms Data Format (FDF), it didn't support the new XML-based XFDF. Due to a request from a client, I've written the XFDF support for iText and submitted it to Paulo and Bruno for inclusion in the next update.

If anyone needs it sooner, drop me a line!

Posted by Leonard Rosenthol at 5:33 PM
Edited on: Friday, October 01, 2004 1:48 PM
Categories: PDF, Programming, Software