For days I've been working with NetBeans. First I created the Ruby Tenjin support as mentioned in the previous article. Then I tunned it a bit to work a little better. The next day I created a new module whose only purpose thus far has been to add other (5) file extensions I normally use with Ruby, t...
So, NetBeans is this IDE many folks have tried or read about, but haven't really felt the peer pressure to use. See some of the new coming features for instance:
I spent several hours playing with its development environment (ANTLRWorks) and decided to create a grammar to parse the Windows INI file format, which was simple enough to get me started. As far as I care about it though.
I gave it a try a few days ago and ran across what seemed like a major incompatibility with Ruby 1.9. But since Ruby 1.9 has been under constant work, some of the changes might have fixed it to work with Ruby-GNOME2 now.
Yay! I'm on Ruby 1.9 as far as Web Pages go. :-)
Since 10 minutes ago, even this server which hosts this blog and several other applications is using Ruby 1.9.
The thread is at [-http://discuss.joelonsoftware.com/default.asp?joel.3.592501.5-]
Somebody else was wondering about Rubinius and MRI and their future at:
And you can answer it at:
I was trying to use Treetop to parse my Wiki syntax, and it made me realize how hard such a task could be. I think this particular syntax does not suit Treetop very well.
[-http://docs.codehaus.org/display/JPARSEC/rparsec+overview|rparsec-] seemed too complex for me to grasp at a glance. [-http://www.cs.queensu.ca/~thurston/ragel/|Ragel-] seems by design less adequate than [-http://treetop.rubyforge.org/|Treetop-] for recursion.
Treetop is a new generation kind of parser generator:
Memory leaks are some of the issues affecting high level languages, and they can happen anywhere you have a memory that would need to be freed but it's linked to an object that should not be freed yet.
Here it is:
It's generally easy to give things a try and to talk about them with enthusiasm or even criticisms.
Enabling Thin support for this site, replacing Mongrel
Yay! When I first used Mongrel it was a happening, which has been [-http://www.deze9.com/jp/blog/post?p=mongreltooloftheyearforme|registered-] in the first days of this blog. And now there's a new server that improves upon Mongrel, while keeping things simple and straightforward -- ridiculously so.
I've found lots of interesting tidbits in the following discussions:
Server Configuration and related files layout
The express configuration is very clean and short, like this:
The Bookmark Service files layout
Very simple indeed:
The Wiki Base files layout
Here it is:
The Bayesian model files layout used for this Blog and Bookmark
Here it is:
My Blog files layout
First the model which is shorter:
Programming languages sometimes get extra verbose, and an IDE becomes almost required even when it can be bypassed.
Alright. Here's my current take on Flex
Having spent a good few days investigating Flex, I'm cautiously optimistic about its future, but figure the development with it doesn't scale to my likings and needs.
Or not...
Previously I had downloaded the Flex 3 beta 3 SDK and "installed" it. Today I was looking into creating my first little application with it. After some googling, I got to some examples. One was the old style of creating the application with ActionScript. Along with it there was the new way, by using ...
You know. Today is Christmas 2007, and the family party was awesome. Upon coming to the computer, I read a heart warming story [1], which pointed to a good music and singer [2].
I've been using Ubuntu since its earliest days and Gutsy is the one which I am not going to use even though I gave it a couple of tries. Its problems stem from some hardware incompatibilities or so it seems. For example, I couldn't use it with my two desktop monitors. And I couldn't install it on my ...
Yay! It took a while for me to nail this, but I am happy with the result.
See for yourself:
Haha. These two words when used in computer programming can mean the same thing. Directory is the traditional, much older one, or perhaps the first one which was used in large scale or something. Folder I guess became popular with Windows much more than anything else. Since then, Folder has been used...
Wow! The past few days have been both challenging and boring. Once I removed the "extra" GUI apps I had worked on for a good while, and the accompanying PDF reports which also had cost some time, to now focus on Web programming almost exclusively, I was left with a lot of experience and a lot of prog...
I just tested printing a data grid with Firefox and it resets the offset of the scrollbar (this data grid uses some custom scrolling which is not usually seen in general HTML tables). This can be a problem because while it is to print the data you want in any HTML browser window, there are times it d...
What it means to me is that up to a few minutes ago, I still had some GUI applications besides my custom Text Editor lying around here, like my DB Admin and Chess PGN Viewer, aside from an approach to an ERP application and so on.
Today I was toying around with SQLite, trying to see whether it could replace PostgreSQL for me. To test it, I wanted to make it the database behind this site which would help me to "dogfood" it faster. It was very easy to replace the "account" database which is very simple, so SQLite worked without ...
That's very unwelcome all in all.
I did. At least that's my feeling about my programming. So much can change from time to time that's as if I had always been after my cheese albeit I was to blame for moving it. In other words, when I chase progress, I move my cheese. That's a very harsh way of producing and some companies are less af...
I am a fan of this template engine for the Web. It's a "third generation" kind of template engine and uses the experience of its author in building different kinds of template engines. You can find more about at [-http://www.kuwata-lab.com/tenjin/-]
Copyright signing of source code files
It's one of those things that are secondary to the bottom-line, but we just do it for some reason. At least we used to do it, because with the use of IDEs that generate code automatically for us, in great quantities, things have changed in that the signing is not even done.
Hey there! Long time no see. My blog was in a halt since June 4, mostly. Since then I really wanted to revamp everything around here, and while I've not finished it all yet (reminds me of those famous "almost done" status of software development), I got a lot going here, including a new domain name. ...
And [-http://www.artima.com/forums/flat.jsp?forum=106&thread=216326&start=15&msRange=15|I answered-]:
I don't know how far it goes, but it needs these:
Once I requested to the Ext JS's author to add Page Down and Page Up keys support to the scrolling of his Data Grid, as I am so used to using those keys and I think it helps users to keep using what they might feel comfortable with in their desktop applications, but in the Web in this case.
And here is its screenshot:
Even though I created the Column widget based on a div, it just is not good as a column in a grid because matters such as row height, column positioning, and grid width, all make things much more difficult.
+1 to Martin Fowler's wake up call to Microsoft
See it at:
Here it is:
I've started trying to provide some degradation in my JavaScript code. For example, in Internet Explorer, I am going to disable resizing and splitting which cause havoc with nested components in my library.
Screenshot of my JavaScript Logger window
Here it is in double:
Internet Explorer kills the fun of JavaScript programming.
A couple of hours ago I tested some of my newly created code on Konqueror and Internet Explorer, both of which have had some issues with my code. Also, I found an issue in my code by first testing it in Opera, as in Firefox it did not trigger any error.
Such is the status of Linux, that it has become easy to reinstall it, even if I include my development tools in it.
Here it is:
Here it is:
Whenever I feel like implementing it, I end up thinking about "what a waste of resource" it will be, while buying me very little...
Amazing. I didn't know a lot about jQuery yet, but jQuery proved itself amazingly easy to use.
First part of the conversion from Ext to YUI has been completed
It required a good deal of work, mainly yesterday, as I learned that I needed to create my own "Element" and "DOMHelper" tools, and in the process I learned quite a bit more about CSS, DOM and JavaScript. :-)
That's easy! It's a project where you only add to it with ease, never having to refactor too much, remove things, understand too much how things work to be able to add to it, and so on.
Alright, once again I am growing tired of jQuery, and am going to try to use YUI instead.
The problem with jQuery is just that it is content being a little JavaScript library, useful for extending web pages.
I still am not quite sure about keeping all my eggs on the Ext JavaScript library's basket. It's cool, I use it, I like it, and it serves me well, but it's big, maybe too big for many users, and it has more things in it than I am ever going to use or so it seems.
Replaced Email with RSS reader for keeping up with the news in the past month
In the past month, I've unsubscribed from almost all the mailing lists I followed as a strategy to keep things manageable. I've even stopped using my second active email, joaopedrosa.news@..., because as its name describes, it had a defined purpose.
I was testing a little bit of the NetBeans Ruby IDE to see what it could do for me. While it's an awesome tool with plenty to like, I've deviated a little bit from standard Ruby, and in the process I created some of my own tools for it, like an editor that "understands" the way I code it.
Go check out the NetBeans Ruby IDE!
It's not completely developed yet, but it has a debugger and lots of support for Ruby, and as I just tested it on Linux, it has finally worked OK for me without a painful mouse bug I sometimes get with Java Swing.
Late yesterday, I discovered that Internet Explorer still had some serious issues with my layout tool Packer, as it would even go to the extreme of getting stuck in an endless loop, caused by resizing getting triggered all the time.
Wow! It had been a while since I had to fix all kinds of issues like I just had in the past week using Windows. Now I am back on Linux, of course. :-)
With more and more programs being moved to the Web browser, and with more JavaScript being used as time goes by and JavaScript libraries are developed, the trend to make programs that are more dependent on JavaScript is only going to grow.
The problem is that Ajax services, like Web services, may require a fine-grained way of security configuration, while providing a useful API, which sometimes should not be entirely available to all the users/consumers with access to it.
When I created the Command Rules (CR) library, I didn't know about JavaScript's prototype classes, even though I really wanted something like that for it.
What Ajax could do to help me fight SPAM? Replace HTML forms with JavaScript posting!
That's what I think, at least.
Three Tier vs Client/Server
Even though web development can be said to have three tiers as well, if one counts it from the server-side only to the database, as the browser is a very thin layer, it could be said to have only two tiers, one being the application logic and the other one the database, which many times works without...
That was [-http://discuss.joelonsoftware.com/default.asp?joel.3.494417.2|over on JoS-], by the way. And here's my answer to it:
Yep, the HTML markup is very verbose, and even more when combined with scripting. If the result was great, it could be worth it. But it's not.
As I finish up my JavaScript library based on the [-http://extjs.com/|Ext JS library-], I need to give it some finishing touches, like ensuring data validation at both browser and server, as both are needed.
One of the refactorings I have started doing in my JavaScript library, is to create an internal "Hash" named "gut" to hold the configuration fields of the object. I am going to call this the "Gut Design Pattern" or something. :-)
After my first couple of thousands of lines of JavaScript programming, it's amazing to see how JavaScript relates to Ruby and Python at the same time.
What I really dislike in JavaScript programming is waiting for Firebug after refreshes.
It reminds me of waiting for the compilation and launching of application in the past!
Originally motivated to write this in response to [-http://discuss.joelonsoftware.com/default.asp?joel.3.489750.11|a thread-] over on JoS:
One of the many cool features of Ext is how well it tries to handle the keyboard in its JavaScript widgets. In two of its controls, ComboBox (auto-completion field) and Data Grid, it supports a good navigation with the keyboard. When I test other JavaScript libraries, I often find them lacking in the...
Stuck in Ext
I was working on adding localization and what I call "DataValue" to Ext, and somehow the debugger (Firebug) is saying that there's an error somewhere and I can't track it down. I probably need to revert some changes back to see what's going on or something. :-)
One of the advantages of being a little company
One of the advantages of being a little company, is that it's possible to change directions all the time, trying to avoid missing opportunities.
Why would I keep Ext instead of trying to move to YUI
Alright, one more new day, and maybe I should keep using Ext rather than YUI. With Ext I am developing some advanced code already, and to use YUI now would require me to take some steps back and I can't afford it.
Even though I should be taking a rest by now, I am still kind of active, and I'm going to try to list of the the advantages for me to go with YUI instead of Ext, as I am seriously considering it:
More on my JavaScript wanderings...
Refactorings have been made to my Ext Rules wrapper, which is cool, as it means that the library has been evolving from its first version. Also it's now possible to translate strings in some JavaScript files, the way it was possible with standard HTML files -- which is nice!
And I [-http://discuss.joelonsoftware.com/default.asp?joel.3.487680.2|answered-] it with:
Over on JoS, someone asked about "Productivity - Language features vs. Maturity of Platform"
And I [-http://discuss.joelonsoftware.com/default.asp?joel.3.487645.3|answered it-] with:
And I [-http://discuss.joelonsoftware.com/default.asp?joel.3.486183.16|answered it-] with:
And I tried to [-http://discuss.joelonsoftware.com/default.asp?design.4.485581.9|answer it-] with:
Ext Rules now has a "packer" for widgets positioning!
Yay! It had been a long winter, until today when I finished adding support for a packer to Ext Rules, and now it's possible to create windows as I would create them in GTK+ using my Gtk Rules wrapper. :-) Here's the screenshot followed by the relevant code:
Over on [-http://discuss.joelonsoftware.com/default.asp?biz.5.482985.14|JoS-], someone asked how to improve his English to help his one-man business, and I answered:
It's with joy that I am showing you this screenshot, with my Blog comment management showing my Ajax usage so far:
Over on [-http://discuss.joelonsoftware.com/default.asp?joel.3.480648.3|JoS-], someone asked about how to make it into the zone, and I answered:
Alright, now that I have chosen Ext, what am I going to do to make it power my application development needs?
Even though I removed the YUI's files, I kept one of them, which is the CSS file that resets the fonts, styles, and provides CSS grids support. It's pretty handy and I couldn't live without it. :-)
Beta 2 of Ext has been released.
So, yesterday I upgraded YUI, and I forgot to update the file path for one CSS file I use from it. Today Ext has a new version, and as I was upgrading it, I noticed the CSS problem of YUI from yesterday.
You may check the release announcement at:
The reason is that I am generally happy with the Ext JS library, and as I learn more JavaScript, I probably could make use of Ext itself and the features of YUI which can only improve with time.
So, I have been dedicating more time to Ext lately, improving its database support along the way.
Someone asked this question over on the [-http://discuss.joelonsoftware.com/default.asp?joel.3.476578.15|JoS forum-], and I answered with:
I've been thinking about how the break the limitations of web programming, about how to make it more programmable and more reusable...
Congrats to Google on creating a better Feed Reader!
Check it out at [-http://reader.google.com-]
So, I have been programming JavaScript lately! I can't count the number of lines I have created, but in my "er.js" which is an Ext wrapper, I have around 500 with blank lines and probably around 300 without the blank lines.
This is great! A dream seems to be coming true, now that the Ext JavaScript library seems under control:
