Tags related to tag code
admin ajax anger aop api app art blogs c checkitout communication cool css emacs firefox friends funny games history ideas improvement interface java javascript meditation meta microformats mine mozilla music mysql-ffi oop osx palm php plb pluckme presentation progeny rant rest review rss s9y scheme shell social software software tags test testing tutorial web win32 work
Thursday, September 21. 2006
On Scheme, OSX and Editors
I am trying to find the perfect editor for OSX. Actually, I have been trying to find the perfect scheme editor for OSX.
On my windows machine at home i use UltraEdit, which at one point was the ultimate in text editors. At work, I use jEdit, which is excellent , and has a lot of potential. Both of these programs are good at editing source code for PHP, JSP, HTML and PL/B. But in my heart, I knew that when it came to programming Scheme, both of these solutions fell short.
So when I was faced with trying to find an editor I liked for OSX, I immediately jumped to jEdit (being cross platform and all) and I rapidly jumped back. jEdit, while good, just isn't great at editing scheme. Sure there is an R4RS implementation of scheme that hooks into its console, but lets face it, it isn't really that useful. On top of it, its console plugin does NOT like to play nice with the Gambit scheme interpreter. To make matters worse, working with jEdit on OS X didn't feel like working with it on WinXP.
Now let me take a little diversion here. Ever since I have gotten my new PowerBook, I have been sitting in this weird little zone. It is equal parts "Oh Ess Ex? More like Oh! Eh! Sex!" and sitting, quite firmly in the suck threshold. On one hand I am opening terminal windows and hacking like a power user, but on the other, I am running to my more seasoned mac friends to ask how I can use the tab key to switch focus to a button. The overall effect here is that for me to get the simplest jobs done (sometimes) involves a lot of pain and work; this being said, I can imagine switching from OS X to WinXP would be an even worse experience.
So I narrowed my choice down to either TextMate, or Emacs. Now TextMate is the ultimate in slick editors for OS X. It is slick, very OS X in its interface, easy to use... and an absolute pain to work with if you are editing Scheme. Basicly, TextMate has an active community of Ruby, Python and PHP developers doing Ruby, Python and PHP things for TextMate, not Scheme things.
With Emacs, it is quite the opposite. Emacs is de rigeur amongst Scheme developers, so obviously more effort has been made to make it scheme friendly (even allowing for the fact that there are many different implementaitons). The differences don't stop there. While TextMate is flashy, user friendly and OS X like, Emacs, even the latest build for OSX, is not.
So I was faced with inferior editing, in a comfortable (but yet new) OS X style with TextMate; or far superior editing with emacs, but faced with the prospect of not only sucking in OSX, but sucking in a completely different method of editing source code.
Now you might be asking yourself "How different can editing source-code be? Even across WinXP and OS X, its Control (or Command) U for undo, C for copy, X for cut, and V for paste. Right? Right?" Well. No. In Emacs, Undo is done with a Control-/. There is no redo. Instead, undo's are un-done by performing an action (like hitting space-bar), and undoing that, which forces the undo of the undo actions. Essentially every action (hitting a character, deleting a line, or even undoing) puts that action upon a stack, so every action is saved, even actions that were undone. This is a very powerful and slightly confusing concept, but it exactly illustrates emacs. Powerful and Confusing.
Overall my experience thus-far has been good. It is hard work, I still suck at editing Scheme in emacs, but the biggest thing here is that I am the one that is sucking, not my editor. Surely emacs could be built better, perhaps the Headrush folk could build an equally powerful but yet friendlier emacs. But emacs has already given me enough bones to keep slogging away at it. Knowing that I will stop sucking soon also helps.
On my windows machine at home i use UltraEdit, which at one point was the ultimate in text editors. At work, I use jEdit, which is excellent , and has a lot of potential. Both of these programs are good at editing source code for PHP, JSP, HTML and PL/B. But in my heart, I knew that when it came to programming Scheme, both of these solutions fell short.
So when I was faced with trying to find an editor I liked for OSX, I immediately jumped to jEdit (being cross platform and all) and I rapidly jumped back. jEdit, while good, just isn't great at editing scheme. Sure there is an R4RS implementation of scheme that hooks into its console, but lets face it, it isn't really that useful. On top of it, its console plugin does NOT like to play nice with the Gambit scheme interpreter. To make matters worse, working with jEdit on OS X didn't feel like working with it on WinXP.
Now let me take a little diversion here. Ever since I have gotten my new PowerBook, I have been sitting in this weird little zone. It is equal parts "Oh Ess Ex? More like Oh! Eh! Sex!" and sitting, quite firmly in the suck threshold. On one hand I am opening terminal windows and hacking like a power user, but on the other, I am running to my more seasoned mac friends to ask how I can use the tab key to switch focus to a button. The overall effect here is that for me to get the simplest jobs done (sometimes) involves a lot of pain and work; this being said, I can imagine switching from OS X to WinXP would be an even worse experience.
So I narrowed my choice down to either TextMate, or Emacs. Now TextMate is the ultimate in slick editors for OS X. It is slick, very OS X in its interface, easy to use... and an absolute pain to work with if you are editing Scheme. Basicly, TextMate has an active community of Ruby, Python and PHP developers doing Ruby, Python and PHP things for TextMate, not Scheme things.
With Emacs, it is quite the opposite. Emacs is de rigeur amongst Scheme developers, so obviously more effort has been made to make it scheme friendly (even allowing for the fact that there are many different implementaitons). The differences don't stop there. While TextMate is flashy, user friendly and OS X like, Emacs, even the latest build for OSX, is not.
So I was faced with inferior editing, in a comfortable (but yet new) OS X style with TextMate; or far superior editing with emacs, but faced with the prospect of not only sucking in OSX, but sucking in a completely different method of editing source code.
Now you might be asking yourself "How different can editing source-code be? Even across WinXP and OS X, its Control (or Command) U for undo, C for copy, X for cut, and V for paste. Right? Right?" Well. No. In Emacs, Undo is done with a Control-/. There is no redo. Instead, undo's are un-done by performing an action (like hitting space-bar), and undoing that, which forces the undo of the undo actions. Essentially every action (hitting a character, deleting a line, or even undoing) puts that action upon a stack, so every action is saved, even actions that were undone. This is a very powerful and slightly confusing concept, but it exactly illustrates emacs. Powerful and Confusing.
Overall my experience thus-far has been good. It is hard work, I still suck at editing Scheme in emacs, but the biggest thing here is that I am the one that is sucking, not my editor. Surely emacs could be built better, perhaps the Headrush folk could build an equally powerful but yet friendlier emacs. But emacs has already given me enough bones to keep slogging away at it. Knowing that I will stop sucking soon also helps.
Saturday, August 19. 2006
More Gambit MySQL Mana From Heaven, due to Windmill Charging.
I'm building a web server in scheme.
I have decided to describe this project as my personal Charging at Windmills because of the sheer Quixotic nature of it all.
I've also decided to embrace my inner Don Quixote, for a few simple reasons:
Version 0.2 of my MySQL FFI for Gambit Scheme is available. The source is more documented, and there is FINALLY a semi-reasonable test suite. There is still a lot of work to be done, but it is getting to the point where there is at least a reasonable baseline.
Update: See this entry for the latest version!
Download it. Make comments, suggestions, bugreports. Even stuff like "I won't use it because of x, y and z" are helpful.
Enjoy the fruits of my pie-in-the-sky labours.
by the by, the webserver code is unreleaseable, but available at:
svn://panda-ba.sanriowasteland.net/zengarden/trunk
I have decided to describe this project as my personal Charging at Windmills because of the sheer Quixotic nature of it all.
I've also decided to embrace my inner Don Quixote, for a few simple reasons:
- If I can really build a kick ass killer-app webserver in scheme I will show the world; Google, Thoughtworks, and Amazon will all be falling all over themselves to hire me
- I will end up building some useful libraries for Gambit Scheme
- I'll be able to erase the sheer suffering caused by such monstrosities as PHP, J2EE, et all. (I pick on those 2 because I know them the best, but others are not exempt).
- It's fun, and I am leaning more about HTTP, functional programming, threads, C programming, parsing and all sorts of great stuff.
Version 0.2 of my MySQL FFI for Gambit Scheme is available. The source is more documented, and there is FINALLY a semi-reasonable test suite. There is still a lot of work to be done, but it is getting to the point where there is at least a reasonable baseline.
Update: See this entry for the latest version!
Download it. Make comments, suggestions, bugreports. Even stuff like "I won't use it because of x, y and z" are helpful.
Enjoy the fruits of my pie-in-the-sky labours.
by the by, the webserver code is unreleaseable, but available at:
svn://panda-ba.sanriowasteland.net/zengarden/trunk
Friday, August 11. 2006
A Gambit MySQL Gambit FFI
It isn't perfect, but here it is, a Gambit MySQL FFI. This is very cool, it lets you talk to mysql through gambit. All you have to do is build it (with 'make install') and you can load the library with (load "mysql-ffi.o1")
You will need to have the mysql client libraries and include file installed somewhere in order to build it, but for those of you on Win32 and Cygwin, I've packaged up a binary as well.
Documentation comes later. Use the source!
Update: See this entry for the latest version!
Source File
Cygwin Gambit Library (binary - statically linked against mysqlclient 5.0)
You will need to have the mysql client libraries and include file installed somewhere in order to build it, but for those of you on Win32 and Cygwin, I've packaged up a binary as well.
Documentation comes later. Use the source!
Update: See this entry for the latest version!
Source File
Cygwin Gambit Library (binary - statically linked against mysqlclient 5.0)
Monday, July 10. 2006
Really Simple Webservices: REST by virtue, not necessarily by design.
Technorati has a new service up, the Contacts Feed Service, essentially this simple service will scrap a website, and pull out any hCards, and turn them into vCards for address book insertion. Very cool. How do you use such a service? Easy! Just pass it the URL of the screen to scrape, and away you go. For instance, to get my address book entry, just click on this link:
http://feeds.technorati.com/contacts/http://portfolio.jonnay.net/contact/
It is a very simple web service. A simple GET request returns a piece of data. It by virtue of its simplicity is RESTful. This is what REST web services really are all about.
http://feeds.technorati.com/contacts/http://portfolio.jonnay.net/contact/
It is a very simple web service. A simple GET request returns a piece of data. It by virtue of its simplicity is RESTful. This is what REST web services really are all about.
Friday, June 9. 2006
the Firebug extension for firefox is like techno-chocolate-web-sex
The Firebug extension for Firefox by Joe Hewitt just rocks. It is the culmination of a few different Firefox extensions: the Web Developer Tool Bar, the Dom Inspector, Viewed Rendered Source, and Venkmen (the Javascript debugger). Firebug borrows from these extensions and more, packages them up in a nice, tasty usable extension.
It has a Javascript debugger that lets you set arbitrary breakpoints; DOM inspector that not only lets you see the structure of your page, but also any styles and events on each node in the DOM tree; an AJAX console viewer so you can see the raw HTTP requests and responses; and a console, where you can see Javascript and CSS errors and type in arbitrary Javascript.
The inspector alone is worth the price of admission, it allows you to hover over elements on a page, and it will not only highlight the element on page, but also highlight the corresponding element in the rendered source, and show you not only the styles applied to it, but where it got those style rules from. This is probably the feature of firebug that I use the most, and it has made my job as a web developer infinitely easier.
It provides a host of great Javascript functions as well through a console object. Not only can you send it debug, info, warning, and error log messages (no more alert debugging, horray!) but you can send it assertions—great for design by contract.
I have noticed a few problems with it. Every once in a blue moon my browser seems to crash, which might be a fault of firebug. It really is a once-in-awhile issue, like 2-3 times a week after a period of heavy usage. Firebug also has some known issues with regards to viewing HTTP Requests and Responses. Synchronous requests cause it to fail, as well as documents that are XML (like XHTML, for instance). In actual fact, these are Firefox issues, and not Firebug issues, but there is a good chance these issues are being worked on.
Despite these problems, Firebug is a very usable, very cool extension. If you do any kind of web development, as a job, or as a hobby, it is well worth installing.
Techno Chocolate! (oon tsch oon tsch oon tsch... dooo do do do do do!)
It has a Javascript debugger that lets you set arbitrary breakpoints; DOM inspector that not only lets you see the structure of your page, but also any styles and events on each node in the DOM tree; an AJAX console viewer so you can see the raw HTTP requests and responses; and a console, where you can see Javascript and CSS errors and type in arbitrary Javascript.
The inspector alone is worth the price of admission, it allows you to hover over elements on a page, and it will not only highlight the element on page, but also highlight the corresponding element in the rendered source, and show you not only the styles applied to it, but where it got those style rules from. This is probably the feature of firebug that I use the most, and it has made my job as a web developer infinitely easier.
It provides a host of great Javascript functions as well through a console object. Not only can you send it debug, info, warning, and error log messages (no more alert debugging, horray!) but you can send it assertions—great for design by contract.
I have noticed a few problems with it. Every once in a blue moon my browser seems to crash, which might be a fault of firebug. It really is a once-in-awhile issue, like 2-3 times a week after a period of heavy usage. Firebug also has some known issues with regards to viewing HTTP Requests and Responses. Synchronous requests cause it to fail, as well as documents that are XML (like XHTML, for instance). In actual fact, these are Firefox issues, and not Firebug issues, but there is a good chance these issues are being worked on.
Despite these problems, Firebug is a very usable, very cool extension. If you do any kind of web development, as a job, or as a hobby, it is well worth installing.
Techno Chocolate! (oon tsch oon tsch oon tsch... dooo do do do do do!)
Wednesday, May 10. 2006
We need A tool-building factory factory factory
Benji Smith tells us why he hates frameworks:
I'm currently in the planning stages of building a hosted Java web application (yes, it has to be Java, for a variety of reasons that I don't feel like going into right now). In the process, I'm evaluating a bunch of J2EE portlet-enabled JSR-compliant MVC role-based CMS web service application container frameworks.With a lead in like that, you know it is going to be a train-wreck.
Wednesday, May 3. 2006
ColorZilla Rules
In case you haven't downloaded it, check out The Colorzilla extension for Firefox. Not only is it a groovy color picker, but it reproduces a large chunk of what I use both the web development tool bar and dom inspector for, in one really easy step. Just go download it.
Right click on it and change your status bar to something like "%hex%|%dist%|%element%|%dom-path%" and revel in the webdevy goodness.
Mmmm
Eyedropper Gooey Web Devy Goodness.
Right click on it and change your status bar to something like "%hex%|%dist%|%element%|%dom-path%" and revel in the webdevy goodness.
Mmmm
Eyedropper Gooey Web Devy Goodness.
« previous page
(Page 2 of 10, totaling 70 entries)
» next page




