Powered By:
Clearspace
BlatherSource: Because development won't keep quiet

Daniel Henninger's BlatherBlog

7 Posts tagged with the programming tag
4

Trying Eclipse

Posted by Daniel Henninger Aug 30, 2008

When I first started trying out Java coding, I found it rather annoying.  I was using vi and command line builds.  I find that java takes a long time to compile compared to C and such, and hence it was a tedious and time consuming endeavour.  Later, Matt Tucker introduced me to IntelliJ's IDEA (lots of people refer to it as IDEA, I refer to it as IntelliJ).  At first I found it a beast and was resistent to it (being that my only IDE experience had been Visual Studio), but soon I began to adore it.  I love the autocompletion, I like the automatic catching of compile bugs and such before even going to compile, and overall it made Java fun for me.  In fact it make me actually wish I had a good IDE for Python at the time (I was working on PyAIMt and PyICQt at the time).

 

I'd heard of Eclipse, but I had not really used it before.  I tried it once and couldn't figure out how to open a project and in general nothing about it made sense to me.  I decided "why waste my time on this".  Then came Flex Builder.  As you may or may not now, Eclipse based.  It's kind of like Eclipse with a lot of the cooler options in Eclipse stripped out.  Generally I feel like it keeps getting in my way.  Lots of keystrokes don't do what I want them to, in fact I can't -find- keystrokes to do what I want in a lot of cases.  It seemed like autocompletion was a little "off".  It wasn't as awesome as IntelliJs.  It didn't always seem to work at all.  Often I'd hit ., wait for a completion to come up, nothing, delete, try again, repeat until it really worked.  Now, with so many people enjoying Eclipse, I began to wonder why.  First off, IntelliJ ain't free, but it is for open source projects.  It's also waaaaay bigger in terms of resource usage.  So that might be one reason, IntelliJ is not easily accessible to everyone.  But I figured, maybe Flex Builder is giving me a warped perception of it.  I'd gotten some friends from work to walk me through some simple things like "opening an existing project" and such, so I know what to do at this point.  =)

 

So at this point, I figured I want to give Eclipse a real try.  I know it's less resource intensive.  I decided I'd like to write down what I "require" my IDE to do at this point for me to like it and after I play with it some, see if it measures up to my pickiness:

  • autocompletion of methods on classes, with it displaying args for the methods in the drop down box
  • hungry backspace (if I hit delete I like it to wipe all of the whitespace in my way and get me back to something that's real content)
  • instant evaluation of errors without having to compile first, ideally including warnings for things that "could be better" and "you realize you didn't set this variable to anything, right?"
  • subversion integration, display of updated files compared to latest SVN checkout, easy commit of SVN files from IDE including picking and choosing what gets committed

Is that asking too much?  Maybe.  LOL  I'm spoiled by IntelliJ.  But I'm optimistic to give Eclipse a try and see how it feels, and if there are plugins to get what I want out of it.  Would I switch to it as my primary IDE?  Well who knows actually.  This isn't necessarily an experiment to switch, but an experiment to see if I can learn to appreciate.  =)

4 Comments Permalink
1

IntelliJ, why do you insist on bleeding memory relentlessly as I use you?  I should not see your usage increasing by 3 megs every second.  Sure garbage cleanup is taking care of it, but geez...

 

Supposedly this was supposed to be fixed in 7.0.3.  I'll get back up with JetBrains when I have the patience to do so.  Generally it doesn't seem to cause any real problems, it's just damned bizarre!  See attached movie clip for fun.  ;)

1 Comments 0 References Permalink
0

The problem with personal projects is just that, when the person in question gets interested in another project or busy or whatever, development stops.  This is what the current status of PyAIMt and PyICQt is.  I am having a lot of fun with the IM Gateway plugin for Wildfire, and as a result I don't feel interested in putting any time into PyAIMt and PyICQt.  Are these two dead now?  No.  I still have "things I'd like to do with them" in my head.  It's just most likely we'll see a 1.0 version of the plugin before I touch PyAIMt and PyICQt again.

 

One thing that the IM Gateway plugin has brought me is that I'm now quite comfortable working with other folk on the same source code.  That said, I'm trying to weigh the pros and cons of enlisting help with PyAIMt and PyICQt.  There are quite a few folk that are interested in using it, a few folk who submit me patches from time to time, and certainly general interest in the transports.  So my question posed is...  Are there folk out there who are fairly experienced python programmers who would be interested in becoming active developers of PyAIMt and PyICQt?  I am not handing off the project and will continue to be the project lead, and will continue to put development time into them as time permits.  Anyway, I have not yet decided on this, I'd just like to hear from folk who might be interested in contributing.  If I see some interest that'll help drive my decision.  =D

 

On a semi-related note, I continue to find java with an IDE to be fun and interesting.  I think working with java without an IDE would be maddening due to how long it takes to compile and test things in the environment I'm using it in, and it's certainly saved me a ridiculous amount of time in debugging stupid typos and crap.  The IM Gateway plugin itself is going pretty well but unfortunately there's a lot of work that involves working on support libraries as well.  The original developer of Java-JML turned over development to me so I've been working on that.  That's pretty fun, I know more about the MSN protocol now than I ever expected I'd know.  The Yahoo library is ... kind of a pain actually.  =/  Right now Yahoo is the biggest source of issues for me.  Joscar for AIM/ICQ is a damn fine library, but I want to move to using a more simple API and I can't seem to figure out how I use Joscar's simpler API.    Perhaps I should like... ask them instead of just blogging about it.  I tried figuring it out from Adium X but yeah...  =)  That's kind of a weird setup.  I need to work on implementing the old school ICQ authentication because, unfortunately, the "new style" AIM auth only works with newer accounts.  (how bizarre)  I've still got a lot to work on with IRC as right now it's a mightily talkative transport and I doubt most folk want to see all of that.  =)  My biggest issue at the moment is that I'm fighting with AJAX support in the web interface.  Trying to use DWR... seems like it should work fine... doesn't.  I wanted to figure this out on my own but it looks like I shall be deferring to the Jive folk to get it taken care of.  So many things to do.

 

So anyway.  Thinking back, I remember that the thing I thought was so awesome about XMPP is that the entire spec was written out and 'open'.  My first endeavour was that I like the Zephyr system from MIT and thought, based off the open protocol, that it would be neat to implement zwgc and friends except to communicate to Jabber/XMPP.  This formed into JWGC.  Transports came later, etc etc.  The great thing is that the openness of the protocol leads to a great feeling of being able to write your own client/server/whatever to learn how it all works and go from there.  The bad thing is that the openness of the protocol leads to a great feeling of being able to write your own client/server/whatever to learn how it all works and go from there.  =)  Now, I don't think this truly is a bad thing, but it does lead to a -lot- of starter projects written and then ditched.  I often see folk come jadmin and jdev asking about where to start in writing their own client/server/whatever, and typically they get a response of "why not just contribute to an existing project?".  If the person's goal is to just learn, starting from the ground up is not a bad way to go.  If the person's goal is to get a server/client up and running that has X feature that all of the servers don't have, contributing is definitely the better way to go.  What's the fine line between writing your own and not writing your own?  I certainly can't answer that.  Note that I think asking "why not just contribute..." is a good way to go about it because that encourages the person to say "well I just want to learn", at which point ok, go for it.  Or it encourages us to help point the person in the right direction.

0 Comments 0 References Permalink
0

The only problem with being in charge of or involved with open source projects is that folk start depending on something that you are only doing part time.  On top of that, folk start making 'demands' on you that you can not abide by and yet continue to maintain a life outside of coding. 

0 Comments 0 References Permalink
0

...  In case you are wondering, that title is a take off of a bizarre workshop name that occured where I work.  "Thinking Based Learning".  I mean I understand what they were aiming for, but man does that sound amusing when you first see it.

 

Anyway, I find that a lot of my coding time is spent running through scenarios and 'writing code, editing, erasing, etc' in my head instead of actually typing the whole time.  I'd say a good portion of my time is spent doing this.  Sometimes it's dismaying to look down after working on something for an entire day and only seeing a paltry number of actual changes.  No matter.

 

ScriptRepo is coming along.  It's full name is the "Jabber Script Repository".  I'm not sure whether I want to abbreviate that to JSR when I don't want to type it out, or stick with ScriptRepo as the abbreviation.  I kinda like ScriptRepo and JSR is kinda taken by someone's name.  ;D

 

I've got the entire login/registration/etc mechanism worked out and since I've been working on the real meat of it... occasionally getting caught in the trap of "well, this looks prettier this way".    That's ok, it will come.  Hoping it serves it's purpose.  On an interesting note, a couple of things I am doing with ScriptRepo I may backport over to BlatherCore.  Added a couple of concepts that I liked.

 

Been tweaking the transports just a tad as some bug reports roll in.  Nothing major yet.  Couple of Google Talk tweaks mainly.  Pondering around making use of a branch in SVN for the first time (for me at least) and playing with Loudmouth as a backend.  Despite my not reallllly wanting to add an extra dependency level of glib, I've been looking over glib and it's got some neat features that I could really use.... so I may bite the bullet and work with it.  It's apparantly very portable.  I think it might make some of my socket operations more stable.

 

Enough of my babble for now...

0 Comments 0 References Permalink
0

My programming mind is overstimulated!  =)

 

At this time, I have all of the following things running in my head that my mind is attempting to do all at the same time:

1. Finish up pubsub code in pyicq

2. Fix up web handler code in pyicq to not stay logged in forever

3. Fix up web handler code in pyicq to do tls/sasl

4. Migrate scriptrepo to new location and improve it

5. Write disco plugin for spark as an excuse to learn java

6. Write avatars in roster plugin for spark as an excuse to learn java

7. Write web interface tie-in for wildfire as an excuse to learn java

8. Write quick and dirty web roster management tool (to help myself clean up my roster)

9. Write quick and dirty jabber client for testing purposes

10. Write up extended component protocol JEP

 

There's possibly some other things like that.  I'm trying to pull myself in and just work on getting ONE of them done.  lol  I'd like to get a PyICQ release out soon.

0 Comments 0 References Permalink
0

My Patch Policy

Posted by Daniel Henninger Feb 3, 2006

I never simply apply a patch to my code.  I always manually apply each little piece of it.  This is to make sure everything conforms properly, to make sure I understand what all is changing, and at the end of the day to try to make sure nothing breaks in the process.  That said, I want to make it as easy as possible for folk to submit patches, so no matter what version you are running of my software, no matter what state it's in, if you send me a patch I'll apply whatever's necessary from it.  You don't have to worry with making it be a patch against the latest version or anything like that.  Your submission doesn't even have to be in patch format.  Could be "change like XXX to YYY" or "here's a dump of my source tree that has all my fixes in" or whatever.  I always appreciate patches being sent my way. =)

0 Comments 0 References Permalink