Thursday, April 20, 2006

my everyday Eclipse

I remember the first time I heard about Eclipse Project. The "it's a platform not an editor" line...
Quickly googled it, found the link and landed on the Eclipse.org page. Definitely a BIG company doing some big stuff for BIG software development companies. I'll stick to my Sepy editor. This is not a place for me.
Well I wasn't far off because it is a big and complex project. And when I decided to switch to Eclipse for my programming needs it wasn't a clean entry. Heck, I even had to rebuild one flash project using a swf decompiler and some older versions because ASDT had an error when creating the AS2 project. Well it was dumb of me to point the project folder to my ready made project folder with fla's, classes and all. All for the better now I'm using Subversion and can sleep better at night.
So, Eclipse
It requires JRE and it's not the fastest editor you could get. But RAM comes cheap these days.
But how about this: having ALL your development inside a single IDE. I mean ALL: ActionScript, JavaScript, Php, Perl, Html, CSS and whatever you can think of. And don't think that it's not equal or even better to what you would get from other free various tools out there. I'm talking syntax highlighting, excellent code autocompletion, error reporting, project view, etc.
I am not a Java developer but boy how I envy them for having such an IDE build specifically for their needs.
The fact that anyone can write a plugin for Eclipse makes it such a powerful platform. For web development also. In my daily routine I usually mix everyhing: Php, Mysql, ActionScript, JavaScript, Html. And I have a plugin installed for every one of these so I get a different "perspective" for editing each type of file. It works like a charm.
And today I stumbled upon a blog post that led me to the Easy Eclipse site. It's main goal is to painlessly break in new users that are willing but afraid to try it just yet. I think this could be an excellent entry point as it has a special LAMP dev version for the seasoned web developer.
sure because of the plugin architecture and ongoing improvement it happens that some stuff stops working after an update. Here comes the assisted update utility that can automagically check for new versions so it's worth nevertheless.
Right now I don't really know all the plugins that I have installed but this is partly because I recently installed the WST components and that's a huge package. But I'll try to list here the plugins that I consider to be a must for webdev:
For database design I use something outside Eclipse because all I could find was a view only plugin solution. As I like to move tables around I skipped it. My OS DB editing software is called DBDesigner and is a cool sidekick for my Eclipse. Here's the homepage.
I also use the integrated Ant utilities for automating some tasks like mtasc compiling and active ftp uploading of current edited php files cause I got tired of developing on Win and then transferring to our dev server and doing two sets of testing. This ftp thing in Eclipse was a tricky thing to achieve and I find ftp as being the biggest thing the Eclipse IDE is missing. FTP/WebDAV throws me a Java Error. You basically have to grab these two .jar files: commons-net-1.4.1.jar, jakarta-oro-2.0.8.jar then copy them to the plugins/org.apache.ant/lib/ folder. After that you get some neat ftp tags to use in your Ant files. You make a build.xml file and set it as a second build for your Php project to build with the auto option on. You can read more on this subject here.

I'm thinking of putting this jewel on a USB stick together with Firefox so I'll have my own personal and comforting PC environment everywhere I go. Shouldn't be too hard and I'll detail it further when I have a result that satisfies me.

8 Comments:

Anonymous Anonymous said...

Wow, thanks for sharing all this! I too say that Eclipse is really cool, what it's missing I think is UML modeling for outside of Java. Currently you can use UML to build java stub with omondo (http://www.omondo.com/), but not classes for other languages.

The Amateras Html Editor is great, I've never tried it until now, and also DBDesigner looks like *the* right tool for E/R diagrams and database stuff :)

But hey, what's this? It looks like Amatera also has some UML tool http://amateras.sourceforge.jp/cgi-bin/fswiki_en/wiki.cgi?page=AmaterasUML

Oh goodie, new tools to try to improve the workspace :)

1:15 AM, April 21, 2006  
Blogger cosmin said...

Yeah, forgot UML.
The truth is that I rarely start my projects in an UML tool. I either don't have the complete requirements or it's just the same old "do it yesterday" routine. So I tend to use UML for re-architecturing when I do a good job and as a result I get more time for addons or improvements :)
I tried ArgoUML but now I'm just using Violet for my diagrams.
Let me know how the Amateras plugin works. I definetly would go for a Eclipse addon.
For ActionScript UML they say that gModeler is da tool. Kinda personal prode for a AS coder to use a tool built in Flash. There are some tools for XMI to AS converting: from CodeAlloy and an exe made by Darron Schall. Tried the second for ArgoUML to As converting and had problems with the Argo req version so I dropped it.

10:28 AM, April 21, 2006  
Blogger Dan Anghel said...

Last but not least, Eclipse checkstyle and Logwatcher. Since I'm more into the Java business, checkstyle is a good source code analyzer which once plugged into Eclipse is doing on the fly code analysis. Logwatcher is a small Unix tail-like plugin, it allows you to follow log files in real time, great for debugging on the server side. Strictly Java related, there's the Eclipse Profiler Plugin, definitely a must for writing fast and efficient code.

Cosmin, by curiosity, for which programming language are you using UML?

9:32 AM, April 22, 2006  
Blogger cosmin said...

Well I tried this log watcher but I wanted to see the logs on the dev box. It seems that in the Java world you either develop on the same box as the server or you can easy connect to it. So it's putty+VI as log viewer for me.
As for the UML part I use it for my ActionScript class diagrams. Provided the structure is complex enough to justify using UML. I use sequence diagramming for complicated web2.0 (tztztz :D) apps when I have JS, Flash and other beasts in the same box.

8:20 PM, April 23, 2006  
Blogger Dan Anghel said...

Of course logwatcher is extremely useful in the developement process when you actually code the stuff on you PC. When you're deploying the application remotely in a develoment environment or some other kind of production-like environment it's no longer useful, but the old school tail does the job then. It depends also on the way you organise the testing process, IMHO the functional testing, which is also the one that takes most of the time is done on the PC where you code. The tests on a remote box running the server that would probably be closer to a production environment concern purely technical issues, which are far less expensive when you've done a good job and don't necessarily require a high amount of logging. Meaning that maybe you don't need debug level (which is the case in the functional testing), maybe the info level is enough and therefore you don't need a huge log history.

I don't know at all ActionScript, but I completely agree that UML is a pain in the ass when you stick to it at 100%. It should be used only as a way of structuring complex programming issues which require a more structured approach, otherwise it's a complete waste of time and paper:)

12:55 AM, April 24, 2006  
Blogger cosmin said...

Now there's a Java developer talking :)
We are using linux boxes here for development because of the problems of developing on Win Xp and deploying on Linux. Php behaves but the problem is Perl. There is some stuff that you just have to reiterate once you put the app on Linux. And instead of dev_XP -> test_XP -> test_Linux -> deploy_Linux we opted for dev_Linux in the first place. We have some developers that code on Linux boxes so that is was another bridge to gap. The functional testing still works ok on this setup so we didn't take any steps back with this move. And I am confident it'll get smoother. Somehow I feel safer doing dev in the same environment as the final deployment of an application.

10:14 AM, April 25, 2006  
Blogger Dan Anghel said...

OK, I see:) Just by curiosity, what kind of Perl incompatibilities between the XP and Linux platform have yo encoutered ? I'm asking this because our Perl dev process is the same as for Java, code and test on the XP box, deploy on a remote Unix box for the complete chain of tests. So far we didn't experience any major incompatibilities, well except the DBI configuration, but that doesn't impact the code. The more painful part is compiling some Perl modules on a XP box, which may take several days and multiple manual Makefile adaptations:)

2:58 PM, April 26, 2006  
Blogger cosmin said...

We don't have any Perl masters here. I have Active Perl installed on my XP and the biggest problem I was faced with were paths and some permissions issues. The app was suppose to open some html files, do regexp replacing and save them back. Also some upload/del files (a small file manager). And with no control over the final deployment environment we were limited to the standard Perl install. I would say that we were limite to using Perl actually :)
So we tried to play it safe. The project was developed on XP and moved on Linux actually but after that I was thinking that it would be better to do the development on the Linux box alltogether. Could be a mistake but so far with the current Eclipse setup it works ok.

3:34 PM, April 26, 2006  

Post a Comment

<< Home