Thursday, January 21, 2010

The beauty of Latex: my AllegroGraph book becomes two books, one for JVM languages and one for Lisp

I have been working on and off for 16 months on a book about Semantic Web (or Linked Data) application programming using the AllegroGraph product. I have decided to substantially increase the scope of this applications/tutorial style book to also include support for Sesame. The figure on the left shows the software architecture road map for the book using JVM languages.

I am splitting the book into two volumes, and using Latex makes this really easy to share small amounts of common material so both books stand on their own. Latex also makes it easy to combine both books into one all-inclusive book, eliminating the duplicated parts. The two volumes are:Both AllegroGraph and Sesame are great development tools, but fill different needs. On projects that can support a several thousand dollar a year per server license fee, I would choose Common Lisp + AllegroGraph for development. AllegroGraph is very scalable and the Lisp APIs are really nice to work with. For Java (or other JVM languages) applications, I would still choose AllegroGraph for the scalability and support if a project can support the license costs. The good thing is that for most small to medium size projects, the free version of AllegroGraph or the open source Sesame project both are good choices, so as a developer you have some real flexibility. There are also other good RDF data store platforms like Jena, Joseki, Kowari, Redland, 4store, Swi-Prolog Semantic Web library, Talis, Virtuoso, etc. but I have relatively little (or in some cases no) experience with these. I use AllegroGraph and Sesame so that is what I write about.

Labels: , , , , , , ,


Sunday, September 21, 2008

Very cool: PracTex online magazine for LaTex users

Something for people who love to use LaTex (all 17 of us): PracTex RSS feed.

I very much enjoy writing and using LaTex makes the whole process even more fun. I just discovered PracTex this morning (thank you Google Reader "suggestions" :-)

Labels:


Friday, September 12, 2008

Very useful book: "LaTeX Graphics Companion, The (2nd Edition) (Tools and Techniques for Computer Typesetting)"

The authors have done a great job at creating a virtual encyclopedia that documents packages for generating graphics. (Amazon link)

I am using LaTex for most of my writing projects and this book provided me with a fast start for generating UML diagrams, 2D and 3D graphics, formulas, Chess/Go/Backgammon boards and move lists, a very wide range of engineering diagrams, music scores, etc., etc. This is a large book (almost 1000 pages) but the layout and well organized examples from the book (which are easy to try out) make the whole book feel accessible and lots of fun to work with.

Labels:


Friday, August 08, 2008

More use of Eclipse and Mylyn: new book project using Latex

Except for Ruby and Rails (where I use a combination of NetBeans and TextMate) I am switching over just about all of my projects to Eclipse and Mylyn because of Mylyn's task management functionality: if you have not given Mylin a try, please do :-)

I am working on the 3rd edition of my Java AI book and I set up Eclipse with TeXlipse today. Now, I have always liked using TeXShop on my Mac, and I still really like TeXSHop but the ability to have my book code examples and my Latex files in one working environment with Mylin task management makes it well worth the effort to switch setups.

Labels: , , ,


Sunday, March 11, 2007

New version of my free web book "The Software Development Book"

I have not done too much work on my free web book The Software Development Book in the last two years, but I did work on it quite a bit this weekend. This is a high level book, really my best advice in a nutshell. I hope to finish it up in the next month. I have been working on a "Ruby AI" free web book, but I noticed last Friday how many people were downloading the older version of the "The Software Development Book" which motivated me to finish it first.

As I mentioned in an earlier blog entry, starting in March 2007, I am taking a new approach to distributing my web books: I am in the process of streamlining my writing production. I work using Latex (TexShop) and OmniGraffle for technical diagrams. A simple automated build process “publishes” media for free viewing on my web site, and generates media for purchases at lulu.com. My web books will always be available for free reading on my web site. I expect to have all of my projects configured in my new writing system in the next few weeks. After that, I hope to spend about one day a week writing. The great thing (for me!) is that I will get to spend my writing time actually writing and not dealing with production issues.

As always, I am grateful to receive reports on misspellings, etc., and even more grateful to receive suggestions.

Labels: , ,


Sunday, March 04, 2007

Automating the technical writing process

It pays off in the long run to write some custom code and tweak your own working environment. How many programmers spend time writing code to improve other people's productivity but don't invest the time to automate their own work flow? Probably too many.

I have been working fairly hard in my free time on two "free web books" for my main we site. In the past I have simply created PDF files and made them available for my site. Although I write my "free web books" using a Creative Commons license, I decided that I wanted to make at least a small revenue stream so that I can spend more time on these projects. My plan has been to have all of my web books readable for free online with a small Google Adsense advertisement at the beginning of each chapter and offer through lulu.com the ability to buy PDFs with no advertising for a few dollars or get a printed book for about $12.

I would prefer spending my time writing rather than preparing HTML, PDF, and printer ready PDF. I think that I now have this process automated about as fully as I can, using custom Ruby code, shell scripting, and a "do everything" Makefile. I had experimented with using OpenOffice.org and writing some utilities to modify the generated HTML. I also experimented with the very cool SiSU system.

In the end, I went back to automating my writing setup using Latex, htlatex, pdflatex, custom Ruby code and shell scripts, and the OS X Latex editor TexShop. It feels good to get things working "just right".

Labels: , ,


Monday, October 09, 2006

Praise for older software

I like this :-) I added the underlined emphasis:
Now that the old days are long gone and word processors come preinstalled with every machine, why should we care about this remnant of history? The answer is that remarkably LaTeX is much better suited for composing and distributing most types of documents than any other modern word processor on the market that I am aware of. Just like programming languages tend to converge towards Lisp because it got things right the first time around, so do the Word Processors tend to converge towards LaTeX.
In the last few months almost all of my writing has been done using LaTex and most of my development in Common Lisp (using another old program: Emacs). I love to experiment with new technology, but I use whatever is best for a job to support my family.

I blogged a few years ago about this: in the distant future, I wonder if people will be using ancient software that has been thoroughly tested over the centuries, is bug free, and seems 'just right' feature-wise.

Labels: , ,


Saturday, September 30, 2006

Best technical writing software?

I do a lot of technical writing both because I enjoy communicating and to earn money. Recently, the AI project that I am working as architect and lead AI developer passed a performance milestone so we get more people and resources. As a result, I find myself writing more architectural documentation and doing less Lisp programming - so it goes :-)

As a computer scientist, I spend a reasonable amount of time tweaking my software development and technical writing work environments. For software development, I almost always prefer a fast Linux box with just the tools I need - no fluff to act as a distraction.

Unfortunately, my favorite writing environment is heavily Mac OS X dependent, largely because of the OmniGraffle technical drawing tool (I am addicted to using it and I highly recommend it.) So I am stuck on a Mac for writing most of the time. I also strongly prefer Latex over Microsoft Word or OpenOffice.org for writing (much more efficient use of my time!) While I am very happy using Emacs+autex for Latex work, there is something a little better: the free TeXShop Latex working environment for OS X.

Labels: ,


Monday, August 07, 2006

How much more productive is using Latex rather than Word or OpenOffice?

I had to start writing some software documentation this afternoon and also start a separate set of research notes. I am not sure why, but it seems like I get more work done (quicker) if I grab a Latex template file and just start typing - saving generating a PDF for viewing until the end of each work cycle. There does not seem to be any overhead at all for using Word or OpenOffice, but I still have the feeling that work goes faster just blasting in plain text, with a little markup.

I am too busy with consulting work to spend much time on it, but I started a new for fun writing project using Latex and some custom code for inserting both program listings and the output from running the program examples - it is clear to me why Latex + my custom code is more efficient for programming texts using than using a word processor. BTW, my new 'for fun' writing project is "AI Programming in Ruby".

Labels: ,


Monday, July 03, 2006

21 years with Emacs; streamlining writing/publishing with LaTex

I have been using computers for a long time (in the early 1960s my Dad got access for us to a timesharing Basic system on the Darpa Net), but I only have been using Emacs for 21 years :-) LaTeX and TeX are also old but great software, but I am fairly new to LaTex - I used it a few years ago to write the first version of my free web book Loving Lisp. The Saavy Programmer's Secret Weapon but had not used it again until this last week when I started to setup a more streamlined writing environment (more about that later).

I still think that IntelliJ is the best Java development environment, but I am trying to not do so much Java anymore - this year I have been developing mostly using Common Lisp and Ruby. Emacs is a natural fit for Lisp development, and is good for Ruby (but Ecplise+RDT is a bit better). It feels strange to still be using the same software (sort of) that I have been using for a good part of my life!

Just in the last few days, I have been finding Emacs recently to be the best environment (that I have found) for working with LaTeX - AucTeX was a 1 minute install in Ubuntu and I liked the way that it gives limited preview right in an Emacs buffer, and it takes only a few keystrokes to run LaTeX and get a real preview.

I have a good reason for getting back into into LaTeX: I love to write but I am not as enthusiastic about going with the established publishing industry anymore (I have written 14 published books, with another in progress, so "been there, done that"). I am much more enthusiastic about web publishing and alternative print on demand publishing outlets because a lot of things that interest me enough to write about are niche markets. In order to more easily write more (but much shorter) programming texts, I want to streamline and automate generating high quality text with embedded programming examples and equations. It took very little time this afternoon to set up an automated system for embedding program listings with generated output in LaTeX. Saving lots of "busy work" time lets me spend more time writing.

Labels: ,


This page is powered by Blogger. Isn't yours?

Subscribe to Posts [Atom]