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.
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: Latex, technical writing
Friday, September 29, 2006
An open letter to my family and friends who are republicans
Hello family and friends,
To be honest, I did not really understand what waterboarding was; here is some info: the Khymer Rouge, having about the worst history of brutal torture in recent history, used two primary means of torture: waterboarding and stress positions.
I still can not believe that there is any discussion at all in this country of us doing this to anyone. BTW, waterboarding is an especially insidious form of torture because people will say anything to make it stop - not any way at all to get useful intelligence information. Just a way to torture people.
In addition to being plain immoral, this kind of behavior by the Bush administration puts our soldiers in even more jeopardy. What are the long term consequences for our country being a "torture regime" in the eyes of the civilized world?
Lets all pray that the democrats get back one of the houses of congress in order to help stop the journey on the wrong path that the Bush administration has us on. I especially hope that my family members and friends who usually vote republican seriously consider voting democratic in the upcoming election. Our government is supposed to have a healthy separation of powers. A little congressional grid lock is a good thing. Our government ironically works best with contention, not when the executive branch and both houses of congress march in lock-step. We need proper debate over important issues.
Love to all,
Mark
To be honest, I did not really understand what waterboarding was; here is some info: the Khymer Rouge, having about the worst history of brutal torture in recent history, used two primary means of torture: waterboarding and stress positions.
I still can not believe that there is any discussion at all in this country of us doing this to anyone. BTW, waterboarding is an especially insidious form of torture because people will say anything to make it stop - not any way at all to get useful intelligence information. Just a way to torture people.
In addition to being plain immoral, this kind of behavior by the Bush administration puts our soldiers in even more jeopardy. What are the long term consequences for our country being a "torture regime" in the eyes of the civilized world?
Lets all pray that the democrats get back one of the houses of congress in order to help stop the journey on the wrong path that the Bush administration has us on. I especially hope that my family members and friends who usually vote republican seriously consider voting democratic in the upcoming election. Our government is supposed to have a healthy separation of powers. A little congressional grid lock is a good thing. Our government ironically works best with contention, not when the executive branch and both houses of congress march in lock-step. We need proper debate over important issues.
Love to all,
Mark
Labels: politics
Monday, September 18, 2006
Persistence for object oriented languages vs. programmer efficiency
I am about 4 months into a project using a very expensive object persistence mechanism (Franz Lisp AllegroCache) that almost automatically wraps Common Lisp CLOS classes for automatic persistence and B-Tree indexing of as many slots as you want to tag as indexed. As is sometimes is the case, here commercial software tools save time and effort. There is a very interesting open source project for Common Lisp (Elephant) that does something similar by using BerkleyDB or a relational database as the backend - it looks good, but it is not yet an out of the box solution.
For Java work, although I was once a fan of Hibernate, I try to use Prevayler instead: if you add new instance variables to the end of class definitions you can add to your object model without breaking your persistent storage - a neat trick, to be sure.
When it comes to the best programmer productivity using object relational mappers, I personally think that Ruby Rail's ActiveRecord wins hands down - with the slight cost that you design database schema instead of class models.
For Java work, although I was once a fan of Hibernate, I try to use Prevayler instead: if you add new instance variables to the end of class definitions you can add to your object model without breaking your persistent storage - a neat trick, to be sure.
When it comes to the best programmer productivity using object relational mappers, I personally think that Ruby Rail's ActiveRecord wins hands down - with the slight cost that you design database schema instead of class models.
Labels: Java, Lisp, object mapping, Ruby
Saturday, September 09, 2006
Proof that our system works (eventually)
A Republican-controlled committee in the US Senate sharply rebuked the Bush administration's outrageous claims of a 9/11 association between Al Qaeda and Iraq.
Most of my friends and family can not believe that about 40% of people in the US still believe this ridiculous claim, but I say give these people a break: it is difficult to accept that a US President will time and again tell a falsehood in public speeches to the American public. Cynics will criticize me for naivete: presidents do lie to the American public - just look at history. But Bush is different in that his politically motivated falsehood about the link between Sadam and Al Qaeda has so badly damaged our country. If Bush had recanted his falsehood right after the invasion of Iraq, then I would give him the benefit of the doubt. That he still continually tells this falsehood to the American public must put a terrific strain on him.
I have a prediction to make: after the all-important fall elections, I expect Bush to come clean on this issue and if he does so, I believe that he will earn back some of the respect that he has lost. I feel sorry for Bush: every president wants to be remembered well in history and most people who are able to set aside politics agree that his presidency has been a disaster for our country. I voted for Bush in 2000 and I now feel that he is the worst president in my lifetime (I think that Nixon was effective in some aspects of his presidency and Carter had bad luck). Bush will not be fondly remembered in the future however: future generations will suffer financially a great deal in paying for Bush's deficit spending and massive tax cuts for the rich - "cut and run" economics that most people will never really recover from.
Most of my friends and family can not believe that about 40% of people in the US still believe this ridiculous claim, but I say give these people a break: it is difficult to accept that a US President will time and again tell a falsehood in public speeches to the American public. Cynics will criticize me for naivete: presidents do lie to the American public - just look at history. But Bush is different in that his politically motivated falsehood about the link between Sadam and Al Qaeda has so badly damaged our country. If Bush had recanted his falsehood right after the invasion of Iraq, then I would give him the benefit of the doubt. That he still continually tells this falsehood to the American public must put a terrific strain on him.
I have a prediction to make: after the all-important fall elections, I expect Bush to come clean on this issue and if he does so, I believe that he will earn back some of the respect that he has lost. I feel sorry for Bush: every president wants to be remembered well in history and most people who are able to set aside politics agree that his presidency has been a disaster for our country. I voted for Bush in 2000 and I now feel that he is the worst president in my lifetime (I think that Nixon was effective in some aspects of his presidency and Carter had bad luck). Bush will not be fondly remembered in the future however: future generations will suffer financially a great deal in paying for Bush's deficit spending and massive tax cuts for the rich - "cut and run" economics that most people will never really recover from.
Labels: politics
Friday, September 08, 2006
JRuby
There has been a lot of buzz over Sun hiring Charles Oliver Nutter and Thomas Enebo (two core JRuby developers). Certainly a fine thing for people who use both Java and Ruby. My hope is that they do a lot of work on Tomcat/WEBrick/Rails integration for hybrid JSP/Rails web apps.
I have been using both Ruby and Rails a lot in the last year, and have not missed Java too much. That said, an efficient Rails platform on top of a Hotspot JVM sounds good. My quick experiments with JRuby have not been totally without problems, but with Sun's obvious motivation to get a first rate Ruby environment running on the JVM, I expect things to get better. The smooth integration of Java classes in an interactive Ruby IRB shell environment is fun.
I have been using both Ruby and Rails a lot in the last year, and have not missed Java too much. That said, an efficient Rails platform on top of a Hotspot JVM sounds good. My quick experiments with JRuby have not been totally without problems, but with Sun's obvious motivation to get a first rate Ruby environment running on the JVM, I expect things to get better. The smooth integration of Java classes in an interactive Ruby IRB shell environment is fun.
Labels: Ruby, Ruby Rails
Apple just lost a sale - Steve Jobs is no longer on my good guy list
I am serious about this: Steve Jobs is the largest shareholder of Disney stock and on their board of directors. Disney (ABC) is running a commercial free $40 million dollar production that is from what I have read a fictionalized account of 9/11 that incorrectly blames just about everything on the Democrats. The Apple music store is distributing this bit of political propaganda for free and both Apple and Disney are targeting this fictional miniseries as an educational resource for kids. Let the mind control begin...
I was just about ready to order a new Mac laptop. It was a close call to getting a better Linux system instead. I am so angry over ABC's political partisanship that there is no way I am going to be a customer of Disney or Apple if I can avoid it.
I used to have good feelings about Apple: I wrote the chess program that they gave away with the very early Apple IIs and I did very well financially on a commercial artificial intelligence tool for the Mac that I wrote in 1985.
I was just about ready to order a new Mac laptop. It was a close call to getting a better Linux system instead. I am so angry over ABC's political partisanship that there is no way I am going to be a customer of Disney or Apple if I can avoid it.
I used to have good feelings about Apple: I wrote the chess program that they gave away with the very early Apple IIs and I did very well financially on a commercial artificial intelligence tool for the Mac that I wrote in 1985.
Thursday, September 07, 2006
Is the upcoming ABC whitewash of 9/11 events a failure of public trust?
I have already sent personal correspondence to Disney CEO Bob Iger urging him to show some real patriotism on this issue. As a country, we must learn from our mistakes, and I think that a whitewash is not what our country needs.
ABC like other broadcasters use the public airwaves - if they broadcast biased news, then I think that Congress should investigate their use of the public airwaves. The Democratic Senate leadership is already threatening ABC with legal and legislative actions.
I hope that everyone sees this for what it is: the fall elections are coming soon, and right wing republicans will stoop to anything to cling to power. Shame on them. Perhaps they should take an American civics class? It seems to me that many Republicans have lost sight of traditional American values.
What should owners of Disney/ABC stock think of this? One possible scenario: the Republicans lose control of Congress, and suddenly illegal corporate acts start to get punished... How might this affect Disney stock holders?
ABC like other broadcasters use the public airwaves - if they broadcast biased news, then I think that Congress should investigate their use of the public airwaves. The Democratic Senate leadership is already threatening ABC with legal and legislative actions.
I hope that everyone sees this for what it is: the fall elections are coming soon, and right wing republicans will stoop to anything to cling to power. Shame on them. Perhaps they should take an American civics class? It seems to me that many Republicans have lost sight of traditional American values.
What should owners of Disney/ABC stock think of this? One possible scenario: the Republicans lose control of Congress, and suddenly illegal corporate acts start to get punished... How might this affect Disney stock holders?
Sunday, September 03, 2006
Disconnect between thinking about a problem and programming
The Subtext programming system has been getting some buzz, and I think that this is worth while if it makes us think about the disconnect between thinking about problems and writing software to solve these problems.
While state of the art IDEs like IntelliJ for Java and VisualStudio for .Net languages provide a comfortable working environment, I must say that both Java and the .Net languages are poor choices for many programming tasks.
Scripting languages like Ruby and Python help this thinking vs. programming disconnect in one important way: for small programming tasks, very short programs are sufficient and we can keep track of both problem task thinking and programming.
What about large projects? There are two good alternatives in programming languages: Common Lisp and Smalltalk:
Common Lisp lends itself really well to growing your own application specific language (using macros if you like, and functions). Once you build up an application specific language, a lot of the complexity of even complex programs goes away. Even more importantly, domain specific languages should help close the gap between thinking about problem solutions and programming these solutions.
The downside of Common Lisp is that while Emacs based IDEs are effective environments, even with add on code browsers, I find exploring large Common Lisp software projects to be tedious.
Smalltalk implementations generally have great code browsers because the simplicity and regularity of the language make it easier to automatically process the structure and semantics of code. Smalltalk blocks and closures, like in Ruby, allow many concise coding tricks - shorter programs are easier to understand and modify.
While state of the art IDEs like IntelliJ for Java and VisualStudio for .Net languages provide a comfortable working environment, I must say that both Java and the .Net languages are poor choices for many programming tasks.
Scripting languages like Ruby and Python help this thinking vs. programming disconnect in one important way: for small programming tasks, very short programs are sufficient and we can keep track of both problem task thinking and programming.
What about large projects? There are two good alternatives in programming languages: Common Lisp and Smalltalk:
Common Lisp lends itself really well to growing your own application specific language (using macros if you like, and functions). Once you build up an application specific language, a lot of the complexity of even complex programs goes away. Even more importantly, domain specific languages should help close the gap between thinking about problem solutions and programming these solutions.
The downside of Common Lisp is that while Emacs based IDEs are effective environments, even with add on code browsers, I find exploring large Common Lisp software projects to be tedious.
Smalltalk implementations generally have great code browsers because the simplicity and regularity of the language make it easier to automatically process the structure and semantics of code. Smalltalk blocks and closures, like in Ruby, allow many concise coding tricks - shorter programs are easier to understand and modify.
Labels: IT, knowledge management, Lisp, Smalltalk
Startups
Techcrunch has a great Paul Graham interview on startups. Graham: "make something people want". Good advice :-)
I have been more than a little frustrated this year: I have my own startup idea that I am keen to pursue but I have had both interesting and educational consulting gigs and it is difficult, at least for me, to walk away from good work.
Politically and socially, I love the idea of small agile groups of people taking market share away from large corporations - turn the economy of scale upside down by leveraging agility.
I have been more than a little frustrated this year: I have my own startup idea that I am keen to pursue but I have had both interesting and educational consulting gigs and it is difficult, at least for me, to walk away from good work.
Politically and socially, I love the idea of small agile groups of people taking market share away from large corporations - turn the economy of scale upside down by leveraging agility.
Subscribe to Posts [Atom]
