Wednesday, September 20, 2006

Language Bootstrapping

We were having a discussion about programming langauges and the concept of bootstrapping came up:

Each new version of Delphi is written in that version of Delphi too. The original compiler was written in C++ and Assembly. Once the compiler worked then it was used to rewrite the compiler in Delphi. I am sure much of the compiler is written in inline assemblier, which is a feature of the Delphi compiler. When a new version is under development, when they reach stable milestones they start developing in the milestone releases.

As I see it there are three benefits to writing a language in itself (if it is a general purpose language that this is applicable to)

  1. Like Chris suggested it is the original unit test. At Microsoft they refer to this as "eating your own dog food" (I am not kidding). The idea is if you are using your product then you know it works or doesn't work, and you do a better job debugging it. For a general purpose programming language what better way then to write the language in itself.

  2. This is really a side effect of the first benefit, but it is a instant testimonial for the language. If it is good enough to write itself in, then it must be good enough for project X. Like I said, this is a side effect.

  3. As the language is improved then those improvements can be used to make the language better. This also explains how computers in general have an exponential growth - each new innovation is used to create the next. As Anders Hejlsberg put it ". . . .standing on the shoulders of giants," (maybe slightly out of context, but applies in principle). So if you decide to use language A to write language B then if you want to take advantage of a new feature then you must first update Language A to you can update Language B. You create twice as much work that way. So by putting in a little additional effort up front to bootstrap, you actually save work in the long run.

That is the way I see it at least.

Technorati Tags:[][][][][][]

Thursday, September 14, 2006

Learning Ruby and Ruby on Rails

We were having a great discussion about Ruby and Ruby on Rails and Mike Moore of the Boise Ruby Brigade suggested some great resources for learning Ruby and Ruby on Rails:

 

The main Ruby web site was updated recently. I believe there is some good info there, like this 20 minute introduction.

The Ruby on Rails web site has alot of good information on it. You might want to start out with some of the screencasts. You will get a good sense of what Rails does and how you can use it there.

You can also get to the APIs, online tutorials, and some of the many books written about Rails (and Ruby) at RubyOnRails.com.

I prefer to do all my heavy learning with dead tree books, and the Pragmatic Bookshelf has the best offering of Ruby books so far, although other publishers are starting to catch up. The seminal Ruby book is the "pickaxe" book by Dave Thomas, named for its cover.

My favorite Rails book is also by Dave Thomas. There is also a new beta version.

~Mike

I looked at Ruby a long time back, but there wasn't much documentation then. Looks like that is no longer the case. I guess it is time to look into Ruby again. Thanks for the resources Mike!

Technorati Tags:[][][][][]

Tuesday, September 12, 2006

The software formerly known as Atlas

Thanks to Mike Cline for this tip about the software formally known as Atlas:

Microsoft has announced that is going to target the official release the Microsoft Ajax Library 1.0 (the software formerly known as Atlas) for the end of this year. Actually, Atlas will be split up into 3 products:

  1. The client side Atlas Ajax library will be named “The Microsoft Ajax Library”,
  2. The server side Atlas functionality will be called the “ASP.NET 2.0 AJAX Extensions”,
  3. The Atlas Control Toolkit will be known as the “ASP.NET AJAX Control Toolkit”.

Splitting it up into 3 products makes it a bit confusing…

Given that there have been more than 250,000 downloads of the Atlas CTPs already, one wonders how much difference an “official release” will make.

I think this is great news. Ajax is the buzz word for web development - every ad for web tool kits now says something about being Ajax enabled. Microsoft is always a couple years behind everyone else before they support / embrace things, especially internet technologies (just the Internet in general, Web Browsers, Java, Web Services, Blogging, Instant Messaging, P2P, etc.). Maybe they are finally learning. I think Ajax is great and this is sure to really turbo charge people using it more, which I am excited for!

Subject Tags: [][][][][][]

Friday, September 08, 2006

But I just started using .NET 2.0 -- 3.0 RC1 Released

OK, I've been using 2.0 for over six months now. It just doesn't seem like that long. But, .NET 3.0 RC1 has just been released. .NET 3.0 RC1 Release Notes .NET 3.0 RC1 Framework Components .NET 3.0 RC1 SDK .NET 3.0 RC1 VS05 Tools (including Cider) .NET 3.0 RC1 SDK online

Subject Tags: [] [] [] []

Tuesday, August 15, 2006

Good Oracle DB Creation Resources

I recently found myself recreating an Oracle 10g database on Red Hat Linux remotely. Long story. I found these two resources to be very helpful:

Here is what I mostly ended up with (I pieced it back together when I finally got it to work). I've removed paths, passwords, etc. or anything that is specific to the actual database I was working on. This is pretty much a combination of the above resources with a couple changes.

connect / as sysdba
shutdown abort
startup nomount

CREATE DATABASE oradb
controlfile reuse
  MAXINSTANCES 8
  MAXLOGHISTORY 226
  MAXLOGFILES 16
  MAXLOGMEMBERS 4
  MAXDATAFILES 1022
DATAFILE 'system01.dbf'
  SIZE 540M REUSE
  AUTOEXTEND ON NEXT 10240K MAXSIZE UNLIMITED
  EXTENT MANAGEMENT LOCAL
SYSAUX DATAFILE 'sysaux01.dbf'
  SIZE 350M REUSE
  AUTOEXTEND ON NEXT 10240K MAXSIZE UNLIMITED
  DEFAULT TEMPORARY TABLESPACE TEMP TEMPFILE 'temp01.dbf'
  SIZE 25M REUSE
  AUTOEXTEND ON NEXT 1024K MAXSIZE UNLIMITED
  UNDO TABLESPACE "UNDOTBS1"
DATAFILE 'undotbs01.dbf'
  SIZE 100M REUSE
  AUTOEXTEND ON NEXT 5120K MAXSIZE UNLIMITED
  CHARACTER SET UTF8
  NATIONAL CHARACTER SET utf8
LOGFILE
  GROUP 1 ('redo01a.log',
  'redo01b.log') SIZE 20M,
  GROUP 2 ('redo02a.log',
  'redo02b.log') SIZE 20M,
  GROUP 3 ('redo03a.log',
  'redo03b.log') SIZE 20M
USER SYS IDENTIFIED BY "password"
USER SYSTEM IDENTIFIED BY "password";


@?/rdbms/admin/catalog.sql
@?/rdbms/admin/catproc.sql


connect system/password
@?/sqlplus/admin/pupbld

Subject Tags: [] [] []

Tuesday, August 08, 2006

Conference Rankings

This is pretty cool. I found a ranking page for the conference sessions.

Currently my You Can't Do That In Visual Studio is tied for 1st in votes. In all I have 3 in the top 10 by vote and 5 in the top 10 by rating. Pretty exciting! Thanks for your votes! It will be interesting to see how this goes between now and August 21st. If you haven't voted yet then be sure to login and vote! If you don't have an account you need to create a new user account first.

I haven't figured how to create a single link so you can vote for my sessions automatically. Somehow Borland always manages to setup a link like that when they are up for reader choice awards. Although since I have 12 sessions, and you get 10 votes, you would still need to pick and choose which sessions to vote for.

Subject Tags: [] [] [] [] [] [] [] [] [] [] [] []

Vote for the Borland 2006 US Developer Conference

Voting is open for the Borland 2006 US Developer Conference. You can rate them and vote for your Top 10 Favorites through QC. To save you from needing to search for my sessions I have listed them here:

  1. You Can't Do That In Visual Studio
  2. Coding Competition
  3. Generics in Delphi
  4. Template Development
  5. Mashups - Combining Web Service Api's with Delphi
  6. Content Syndication
  7. Internet Protocols
  8. Advanced Internet Protocols
  9. Exceptional Exceptions
  10. Implementing Cryptography
  11. Understanding Cryptography
  12. Oracle at Delphi
Personally, I would really like to attend the Coding Competition session, which is why I submitted it. I think it will be a lot of fun. It would appear my You Can't Do That In Visual Studio session is doing quite well - it has the most votes from what I have seen. That one will be fun as well!

Be sure to login and vote! Rating them is nice, but it would appear voting carries the most weight. If you don't have an account you can create a new user account first. Voting closes August 21st!

See you at the conference!

Subject Tags: [] [] [] [] [] [] [] [] [] [] [] []

Monday, July 17, 2006

Sessions for 2006 Borland Developers Conference

I submitted 12 sessions for the 2006 Borland Developers Tool Conference. I am sure it will have a shorter name before the conference gets here. Here are my sessions:

  1. Internet Protocols
  2. Advanced Internet Protocols
  3. Coding Competition
  4. Exceptional Exceptions
  5. Implementing Cryptography
  6. Understanding Cryptography
  7. Oracle at Delphi
  8. Generics in Delphi
  9. You Can't Do That In Visual Studio
  10. Template Development
  11. Mashups - Combining Web Service Api's with Delphi
  12. Content Syndication

Once they are published on BDN with details I will provide links. I am really excited about a few of these, especially the Coding Competition. I actually was chatting with Nick Hodges, the new Delphi product manager, about it before the call for papers was published.

Also, it appears I won the abstract submission prize! The reference number assigned to one of my abstracts is 1234! I think that gets me automatic selection as a speaker!

Subject Tags: [] [] [] [] [] [] [] []

Thursday, July 06, 2006

Borland's Developer Tools Group to get New Owner

I guess I am a bit behind on the news. Dateline June 30th, 2006:

Nick Jackson, managing director of Borland DTG in the Asia-Pacific region, told ZDNet Asia that the company, which announced its intention to divest its developer product lines on Feb. 8, has attracted about 16 qualified bidders so far.
And some doubters were saying they would have a hard time finding anyone interested. 16 qualified bidders means they had more then 16 interested. Those are only the qualified ones. Heck, I was interested, but not really qualified. And the good news is

By the third quarter of this year, Jackson said that Borland's DTG will become a totally independent company after the divestment.
Interestingly 3rd quarter this year is "Fall of 2006" which is the scheduled date of the as yet unnamed 2006 Developers Conference. I'm telling you, they are going to unveil it at the conference. This is the conference you want to attend.

Also, as was predicted:

He added that Borland will continue to have some small part in the new company, be it in the form of a minor equity stake or representation on the board of directors through Borland CEO Tod Nielson.
So it is in Borland's best interest to find a buyer that shares the vision of making DevCo / DTG as profitable as possible.

Subject Tags: [] [] [] [] []

Wednesday, July 05, 2006

2006 US Borland Developer Conference -- Call for Papers

06 developer conference Borland’s Developer Tools Group has begun planning for the 2006 US Developer Conference to be in held in the Fall of 2006 in Northern California. The deadline for submitting abstracts is July 17th, 2006.

They are going to let the community vote on the submitted abstracts to determine what sessions will be presented. Be sure to vote on my abstracts. I'll have links up for them once they are available.

Read more at the new improved bdn.borland.com .

I don't have the inside track on any information, but I suspect that if we don't see an annoucement about the spin off of the developer tools group by then, then we will see one at the conference. It was at BorCon 2001 when a gorilla smashed the Inprise facade to reveal the rebirth of the Borland name.

Yes, I am expecting big things, and yes, I plan to be there.

Subject Tags: [] [] [] [] [] [] []