Monday, December 19, 2005

User manual

No, still have not done it...

But it's starting to annoy me that there is no real manual, I mean, the FAQ (http://pydev.sf.net/faq.html) already covers most 'usual' doubts, and some simple steps are provided on how to get started, but there is still nothing to cover the way from the basics to the advanced topics, making the learning curve deeper that it should be...

Also, for some reason, some questions keep being asked in the forum over and over again (probably my fault in the end anyway), so, I'm starting to think that spending some time on a good manual would be a 'time-saver' in the end.

I'll probably make this a 'new year resolution' ;-)

Cheers,

Fabio

Tuesday, December 13, 2005

Still learning to use google analytics

Yeap... I checked it again, and discovered that actually north america has more visitors than other continents, it just wasn't appearing because it didn't have as much visitors from single cities... ( and I probably still have a lot to learn about it) -- but the 'single visits' where right :-)

Now, pydev development: pydev is in need of a new release, but I really don't have time to do it right now... hope I'll get some time to do it this year (altough I'm highly skeptical about that myself).

Good thing is that the current release appears very solid. Te bugs are mostly for peculiarities, and I belive they don't affect 99% of the pydev users -- even though I have NO idea of how many pydev users there are out there ;-)

Cheers,

Fabio

Wednesday, December 07, 2005

Coming back

Hi All,

I'm slowly catching up to all the pydev-related things again (its awesome the number of e-mails you can get in 2 weeks), altough I still didn't have time to code anything, my first priority will be making pydev compatible to eclipse 3.1.1 (its strange, eclipse 3.1 plugins should be compatible to that version, but there is always some minor changes that renders many things incompatible, even in only-bug-fixes releases).

Aside from that, I installed google analytics in pydev -- it's really nice knowing that there are people from all over the world accessing the pydev homepage (I need to put a link to it in the blog, but until there: http://pydev.sf.net).

So, if you're curious about it, let me put some things that have gotten my attention:
- the single city that has accessed it most is Beijing (China)... a little more than 3% of the total hits in a month... It's large population may have something to do with it :-)
- Europe is crowded with hits, I can't even distinguish the cities (and Paris is the second in hits, with almost 1.8% of the hits in a month)!
- North America had less hits when compared to the ones above
- And to finish, South America had only a few hits

Cheers,

Fabio

Friday, November 18, 2005

Release 0.9.8.5

Yeap, a new release is out!

Not many things at this one, but it should be good for those that wanted to target other vms other than the sun vm, as I removed some dependencies (namely: base64).

Some other bug-fixes are available in the release too... (what are you waiting? Go get it!!)

Also, I'll be out the next 1-2 weeks -- meaning: comments in the forum and e-mails might take a little more than the usual for me to answer -- and when I get back I know that I'll have tons of e-mails to answer...

Cheers,

Fabio

Wednesday, November 09, 2005

Release 0.9.8.4 and some updates

Ok, long time after last post (2 releases occured in this time).

I hope you're all enjoying them by the way -- I know that the numbering is not so good (too little numbers), and all those releases would be worth some better numbering, but we're already too close to 1.0 for that (maybe I should just go to it, but there always seems to be one last remaining thing before it goes to 1.0... so, having 10 releases between 0.9.8 and 0.9.9 might be the way to go -- altough I'm still unsure if that will actually happen).

Anyway, the last releases brought lots of things... I'm especially happy with code-completion handling all those relative and wild imports (python makes this very difficult to get correctly in a static way as pydev does). Also, as posted before, the debugger improved a lot -- altough there is always room for doing it better. I'm now thinking about how to do 'hot swap' of the code in debug mode, but that's something that surely will not come before 1.0.

Also, I'm looking for sponsors for pydev, as I'd really like to spend more time on it (and give all a better IDE), but I'm kind of unable to do it without gathering some financial support -- also, small donations are very welcome, as many small can do for one big donation :-)

Cheers,

Fabio

Friday, October 07, 2005

High speed debugger

Wow, fasten your seat belts... the debugger has boosted a *LOT* in speed.

I didn't actually measure how much did it speed in a very good way, but with the latest changes, I got the following results for starting an application of mine:

In the previous way, it spent about 44 secs to load.
Now, it only took 5 (and usually it takes 2.5). So, it can almost be considered a 9 times faster debugger :-)

Well, this will be available in the next release (0.9.8.3), so, wait for it... probably next week it will be out.

Now, on to what was the major speed-up:

Pydev was setting the tracing function on any context it entered, even if it was nowhere near to a breakpoint. Now, it will only trace functions that have breakpoints near it (this currently means that it will trace any context in a file that has a breakpoint). And we only trace other contexts if we are in 'step' mode.

Pydev probably has other available speed ups, but there will probably be no fix that will speed it up as much as this change...

Cheers,

Fabio

Friday, September 30, 2005

Release 0.9.8.2

It's been only some days since the release and lot's of things already changed...

One part changed because of some (minor) bugs that were affecting the outline because of new changes I did to the parser and some old bugs regarding reusing the editor for showing some other file.

Also, I restructured many things in the way I deal with imports, to make it easier for getting information on relative imports... This was bugging me for some time already (and took me almost a full day to get all unit-tests running again).

Well, I guess this means a new release will be in its way not long from now...

Cheers,

Fabio

Sunday, September 25, 2005

So, what's next?

Long time since the last release... Well, next week (probably on monday or tuesday) a new release should come out. This will be mostly some nice 'minor' features (which make some lives so much easier) and some bug-fixes.

I'm still thinking about what should be the next implementation cycle for pydev... (especially since the time I'm putting on it is starting to shorten -- last month with OctetString support it advanced a lot -- even more to jython users).

There are still some things that they might want to have, so, who knows... I might be able to spend one more month with pydev in 'high-priority' mode :-)

Anyway, for those that use pydev, isn't there something you'd like to have enough for paying for its development? Or otherwise, isn't the current state of pydev enough for some donation? Well, just wanted to remind you that altough pydev is open-source, nothing is actually 'free'... so, if you do like and use it, a donation would be surely welcome (and if you use it professionally, how about trying to persuade your superior to make a little investment in your tools and help funding pydev? -- depending on the 'size' of the donation, you could also get some space in the homepage)

Cheers,

Fabio

Monday, September 12, 2005

Pydev growth

Yeap, Pydev is becoming a big-boy...

I've looked at its statistics in sourceforge, and I must say that I'm pretty impressed that pydev has been in the top 50 projects in the last months...

Also, it's pretty rewarding (in many ways) to see pydev being so well accepted in the community. Another thing I would like to share is that lately, I've been getting a lot more support from the community to keep pydev growing, so, I'd like to leave special thanks for those that actively support pydev, through donations or through patches... without that support, pydev would surely not be where it is today.

Cheers,

Fabio

Monday, September 05, 2005

Release 0.9.8.1

The release is out, but only partially...

I'm still trying to add it as a zip in sourceforge, but for some reason sf is way tooooooooooo slow today... so, I'm not sure if I'll be able to do it... anyway, those that were expecting java 1.4 support can already use the new release by getting it from the update manager.

Cheers,

Fabio

Saturday, September 03, 2005

Back to the future... java 1.4 re-integrated

I'm currently in the process of re-supporting java 1.4. So, retroweaver was my first choice, and it appears it works quite well (I've already been able to use pydev in 1.4, but some testing is still needed), so, next week (maybe monday), I'll probably release it.

Well integration from the retroweaver perspective is quite easy, but from the eclipse perspective it is quite horrible (not difficult, but horrible). This is mostly because of the runtime environment that eclipse has now, that for me, basically sucks...

What they did is create a classloader that gets only things that are in the plugin or in dependent plugins in the 'allowed' packages... the problem is that by doing that, they just cut off all the good 'reflection' things java provides (that are actually not quite so good, if compared to other languages, such as python).

This means many things:

1 - I just can't serialize anything that has some structure from another plugin if I'm not dependent on it' which basically does not allow for any serialization utilities... in my case I had a core package that had it, and I basically had to copy it to all the places that needed it... just the opposite of reuse hum???

2 - In the retroweaver case, initally, I just did a plugin, added it to my core plugin and re-exported its dependencies... pretty simple and elegant, right? Well, that's what I thought, untill I saw that it needs to be able to do a Class.forName after the bytecode enhancement, but for that to happen, the retroweaver plugin must be dependent on all the plugins that are dependent on it, because of the *&(^%$ eclipse runtime environment... so, I had to copy the retroweaver jar to each plugin and add it to each build, etc, etc... which basically is really, really ugly to me... as I said, just the opposite of reuse...

There are way to many use-cases for me to list, so, I'll stop rambling here... it's probably kind of late to complain about it... I do understand the problem the eclipse guys had, which is: people were using their not 'public' classes, but instead of just saying: don't use it, they just did a horrible implementation of a runtime environment (don't get me wrong here... eclipse has many great things, but on this, it just sucks)... That's what I love about python... everybody is grown up, so, if I say something is private, you can still see it, and even depend on it, but you're warned, it may not be there next time, or it might not have what you expect, so, just don't depend on it (we're all grown-ups, right?). By doing what they did, they don't really enforce anything, as bad programming can happen everywhere (just copy and paste from the private code), what they did was preventing really good programming from happening.

I think that if they really wanted to try to enforce something, they should have marked their things they didn't want anyone to use as private (and let it as public for default)... eclipse 2 was so much better at this...

Wow, big post...

Cheers,

Fabio

Friday, September 02, 2005

Release 0.9.8

Yeap, came out already!

This release had many, many fixes and new features, both in the python and jython part.

The major highlight in jython was that there is now a debugger supported for jython (the only available in an IDE that I know of so far...).

And for python users, I finally got some time to mess around with the grammar I'm using, so, you can now have decorators, the new import syntax and list comprehension in tuples and method calls (I believe this has some other name in this context, but I don't know which, so, I hope you understood...heheheh).

There were many, many changes in this release aside from those mentioned, so, bug-reports are expected (many were fixed already), so, a release 0.9.8.1 will be done shortly with bug-fixes for it.

Cheers,

Fabio

Thursday, August 25, 2005

Jython debugger?

Yeap, almost there...

A new release should be out next week (probably on monday), enabling jython to be debugged in Pydev, ending a moth with lot's of progress for pydev.

So, I hope you all enjoy, and thanks to those that reported bugs in pydev with the jython integration.

Cheers,

Fabio

Saturday, August 20, 2005

New release and Jython integrated!

Hi all,

yesterday I did an early release of the jython integration (a final should come shortly after). Until now, only 2 bugs were discovered... One regarding spaces, in the jython.jar or on the java location and another regarding jython 2.2a1, that does not display all code completions correctly... aside from that, it seems everything is ok...

Cheers,

Fabio

Monday, August 15, 2005

So, what's happening?

If you keep track of the PyDev cvs, you'll note that there is much more activity recently than usual, so, now that things are already set in motion, let me give you some good news...

PyDev has received some financial support from OctetString (http://www.octetstring.com), to make jython editing available in PyDev, so, you can expect PyDev to have Jython support until the end of the month ;-)

Work has already started, and basic support is already implemented (altough it is still not complete)... you can already (in the cvs version) set the project to a jython project, run jython modules and use a basic jython code completion version (still bound to many improvements until the final version), besides all things you can already do with the python editor (aside from refactoring, code coverage and PyLint).

Also, as I've been able to spend more time in PyDev, tons of bug-fixes will also be available for the next release... (especially in the debugger... which may or may not be implemented for Jython depending on time-constrains).

Well, hope you all enjoy it.

Cheers,

Fabio

Friday, August 05, 2005

Java 1.4 support for Pydev

Well, it seems that having 5.0 code to compile to 1.4 classes is not possible in the Eclipse structure (I wish eclipse build gave me hint earlier about it, as I would not have spent so much time on that... but such is life, hum?)... details are on bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=105899

I did some googling after that, and it appears that altough eclipse does not support it, there is a project that claims it can be done (http://retroweaver.sourceforge.net/), so, I'll check it later to see if it really does what it claims (especially within the huge infrastructure I need to have to do a single build with the eclipse tools).

So, shortly, java 1.4 may not be supported for some time...

Cheers,

Fabio

Wednesday, August 03, 2005

Pydev problems with java 1.4 compatibility

Well, I've done a release in the zip format to support java 1.4, but it seems eclipse is 'no-no' for it...

Apparently, everything is ok, but the build does not work with java 1.4. I posted a bug about it in the eclipse bugs at eclipse.org (link is: https://bugs.eclipse.org/bugs/show_bug.cgi?id=105899). I tried doing the build in many ways and eclipse just won't obey me... probably I'm doing something pretty stupid, but I just ran out of options for it...

So, pydev support for java 1.4 is blocked until that bug is solved.

Cheers,

Fabio

Wednesday, July 27, 2005

Eclipse hints

Eclipse is a really nice tool, but to use it effectively, you really need to know it (as you would any other tool, like emacs, vi, etc.).

Well, being so, it is so hard for most people to get away from their known environments to another, specially if you have as many things to re-learn, and it is just really hard to find enough information on how to effectively use such an environment.

As such, I decided I would post some features / uses once in a while, to see if I can help some people to appreciate it more (and maybe even some advanced users might be able to discover something new...)

The first thing is something I discovered this week (yeah, even after so much time using it, I still find out some things -- and later I think, damn, I should have known this before...)

Ctrl+Shift+R - it allows you to choose a resource to open without having to use the navigator, just type its initials (or as wildcards), and it allows you to get there really easy.

Well, see ya.

Cheers,

Fabio

Tuesday, July 26, 2005

New release... (0.9.7)

Hi, I've finally been able to make it work.

I had an old install of java 1.4, and apparently, the build was not using my workspace nor project settings, but this old version (don't know why, as I removed all traces from within eclipse) was not letting it work, anyway, after removing all 1.4 related installation from my system and installing the 1.5 jre (not only the jdk), I've been able to compile it and make the release.

It is mainly bug-fixes... I hope it works, as most problems were in linux, and I don't have a linux box to test it...

Cheers,

Fabio

Monday, July 25, 2005

Eclipse and java 1.5

This weekend, I decided I would upgrade PyDev to use java 1.5...

So, I got the latest java from sun, added it and started to use some of its new features (I think that the new java 1.5 features are really great).

Everything went smoothly, running, debugging, etc, until I tried to do the new release (after I coded with it for quite some time).

Eclipse gives me a report saying that it cannot build because of a compliance error. Namely: "Compliance level '1.4' is incompatible with source level '1.5'. A compliance level '1.5' or better is required". So, either I'm doing something really stupid or it's an Eclipse bug... I reported it in Eclipse (https://bugs.eclipse.org/bugs/show_bug.cgi?id=104960), and I'm waiting for some response...

You know, this might delay the 0.9.7 release if I cannot get around it (or I'll have to re-fix the code to remove java 1.5 features)...

Cheers,

Fabio

Sunday, July 24, 2005

Week notes, 0.9.6 and 0.9.7...

Well, this week the 0.9.6 release was the highlight, and with it, came some nasty bugs, mainly in linux.

As you guessed, I don't have a linux box to test it... so, is someone there that would be willing to test the code against a linux install with the cvs before I do a release?

Well, anyway, most bugs are apparently fixed (in the cvs), and 0.9.7 should come out on monday because of these bug-fixes...(if I'm able to get enough time to do it)

Windows also had some minor bugs (print margin), that also seem fixed...

Also, I changed the feature name, and that caused lots of problems (in both platforms)... well, I changed it back, so, those upgrading it should uninstall the previous versions (I'll put a note in the pydev homepage, but there is always someone that does not read it before upgrading... most people wait for it to crash and only then go look for the install notes...)

Well, see ya...

Fabio

Tuesday, July 19, 2005

Partitioning in eclipse

Just spent a good time making the partitioning for pydev, and just got it right after I read http://www.jroller.com/page/bobfoster/.

So, I guess I will release 0.9.6 in a short time, because now the bug that really was annoying me is solved (the colors for comments and literals were not there anymore, and only sometimes), after a lot of digging, I discovered that the partitioning sometimes was being overriden (and the link above solved my problems)...

Cheers,

Fabio

Saturday, July 16, 2005

Where to store the interpreter data

Well, currently data for the interpreter is stored at a preference store.

I made up a InterpreterPreferencesPage and just convert from the interpreter data to its serialized form and vice-versa, using the preference store for it (you can even see a huge nonsense string if you go to help->about->configuration details -- that's its serialized string).

This is good so far, but if later more data is stored here, we will need to get somewhere else to store it, probably using the plugin instance to get it (apparently with 'getStateLocation') - according to this article: http://www.awprofessional.com/articles/article.asp?p=370626&seqNum=9&rl=1

Friday, July 15, 2005

Still not there

Well, just found out that making the kind of dependency in the previous post also does not work! I'll have to take one of the other options...

Eclipse 3.1... a long way to go...

Well, sad story...

I do many things with reflection, and for doing so, the classloader must be able to reach those classes. In eclipse 3.1, classes can only access classes that are within the plugin-runtime environment, so, this plugin was done with dependencies on all plugins, so that it can be used by those plugins

If this is not done (if it didn't have those dependencies), some simple things would fail, such as deserializing a class from another plugin (in my case, this was org.python.pydev.ui.pythonpathconf.InterpreterInfo in a method that de-serialized it -- getObjAsStr), because it could not access those classes (Serializing works ok).

As I didn't want to add dependencies to the org.python.pydev.core plugin, I created this plugin (org.python.pydev.coreutils), that must be dependent on the plugins that intend to use it because of all that reflection things...

Maybe it could be a separate dll, or those classes could be copied for each plugin, but this works and does not seem to give more problems, so, I'm keeping it for now!

Cheers,

Fabio

Saturday, July 09, 2005

Supporting eclipse 3.1

Well, I've been kind of too busy lately, so, pydev is more in the background for me, but I've already started doing some work to port it to 3.1 (and I've even received some patches to do it)...

Well, right now, with received paches and some minor adjustments, it seems everything but the debugger works with 3.1, so, the debugger is what is missing for completing the new release...

Cheers,

Fabio

Friday, July 08, 2005

making wizards in eclipse

making wizards in eclipse

http://devresource.hp.com/drc/technical_articles/wizards/index.jsp

Saturday, July 02, 2005

0.9.5 release

Yeap, it's out already -- for some days now :-)

Many bug-reports fixed on that one. Still didn't have time to switch to 3.1 also, so, it is still not currently supported.

Cheers,

Fabio

Saturday, June 25, 2005

Little updates

Well, I in the last weeks I fixed many bugs, so a new release should be out pretty soon...

The bad thing is that I didn't even get near the debugger (and I was hoping someone else would fix its bugs...)

I've also worked more at home, so I'm not synchronizing very much with the cvs (my connection is pretty bad) - in case someone tried to get the code...

The good thing is that pydev has been around the most active projects in sourceforge, so it makes me fell good about the project...

Cheers,

Fabio

Wednesday, June 15, 2005

0.9.4 release

Last release already out for some time now...

The biggest difference is the new way to configure the pythonpath... I hope you like it!!!

The thing I foud more impressive is that there were only few bugs regarding this implementation -- I was actually waiting for more :-)

So, hope to fix those in not a long time from now... and get ready for 1.0

Also, I wrote all this with a dvorak layout!!! Things are going really slow, but I'll give it a shot for some more time!!!

Enjoy!!

Fabio

Wednesday, June 08, 2005

Almost ready to go

Well, most new implementations are already ready to go, so, what is missing is just updating the documentation...

After that, I'm probably only going to make bug-corrections until 1.0!

Wednesday, June 01, 2005

New PYTHONPATH configuration!!

The new pythonpath configuration is almost finished (already fully functional for code completion).

The current state is:

- Interpreter configuration: we specify an interpreter and it shows:
- the system libraries (folders) and the compiled libraries (dlls).
- the 'forced' builtin libs (this is, libraries that exist only at runtime, but don't have a specific source file associated or have but there is too much information we can only get at runtime. E.g.: os is a file (os.py) but its information is only useful at runtime because it is too dependent on the system where it is ran. This is the case where simple AST analysis is almost useless).

Note that those that have dlls found (e.g.: qt.pyd for qt) do not have to be specified here.

- Project configuration: we specify:
- the source folders in the project
- external libraries (those that are not within any project)
- referenced projects (projects the current project depends on)
(previously, we had to re-specify everything for each project, and it didn't synchronize information that was not in the current module, and it saves a lot of memory, since we have n entities that talk with each other now -- one is the one that controls the system configuration, and the others are the ones that control the project, and talk with each other for referencing).

As I said, it is already fully functional for code completion, but PyLint, refactoring and other tools that run outside of the 'java' real environment are still not completely integrated with this new configuration (and a new build will only be released when this is done).

Friday, May 20, 2005

Pythonpath

Hi all... just to keep you up-to-date...

right now, I'm planning a way to better configure the pythonpath.

I'm thinking about having:
- System libs, configured together with the python interpreter;
- Source folders, for each project
- Project references for another project (and thus getting its source folders in the pythonpath)
- External libs (not part of system nor any project).

The system libs part (gui) is almost ready... in cvs it should already be working, but you cannot do much with it right now :-)

Tuesday, May 10, 2005

Pydev parser... the future??!?!?!

Yesterday I did some 'experiments' with ANTLR as opposed to the current parser that uses JavaCC.

Well, let me talk a little more about the current parser (it is borrowed from Jython)...

It uses JavaCC and asdl (that goes for Abstract Syntax Description Language).

Basically, JavaCC creates the asdl structure as it parses the code, so that after it is parsed, you get an asdl tree data-structure. This structure uses a visitor pattern, and this is what is currently used to find things about the code, like tokens, definitions, etc.

The structure provided by asdl gives us a very complete structure with information about the code, so that we have tokens that are hierarchy structured and we have their starting line and column in the code.

The drawbacks (for me) right now in this structure are:

- We do not get the end of the token, just its start;
- We do not get any indentation info, because indent and dedent tokens were not supported in the asdl structure (as it is now), and we do not get the end of the token;
- There is a huge lack of documentation for asdl;
- In my opinion, JavaCC is not as easy as antlr to work with;
- Antlr seems to have a much better 'error recovery' than JavaCC;

So, I did some experiments and discovered I could do most things I want with antlr, but I still need to find how I want to treat the code after the parsing. I guess I could use antlr to generate the asdl data-structure, but as I said, it is missing some things.

Options I have:
- make it generate some structure I want. So, I would need to have all the info available in asdl (otherwise, I won't be able to do things as refactoring in the future), plus token end and indentation data. Or I could try to extend the asdl structure a bit and keep it, as I think it is easy to deal with.

- Just extend the Jython JavaCC grammar (this would not allow a better error-recovery), only thing I would get would be the decorators.

- Use antlr to generate the same structure I have now for asdl. I would get error recovery and decorators.

Other tools would be built upon this structure, to get completions, definitions, references, etc.

Some notes:
asdlGen location:
http://asdl.sourceforge.net/

Python.asdl location:
http://tinyurl.com/4mj39

To generate the asdl structure from python asdl: asdl_java.py python.asdl

ANTLR:
http://www.antlr.org

Python ANTLR:
http://www.antlr.org/grammar/list

JavaCC:
https://javacc.dev.java.net/

Jython (the JavaCC file for the python JavaCC grammar is here):
http://www.jython.org/

Tuesday, April 26, 2005

Release 0.9.3

Hi all, hope you enjoy this release.

I have polished the code completion a little bit more... and added some other things.

I'll be out for 1 or 2 weeks now, so, if you have problems with it, contact the users forum... It seems that many people there are able to already give some support to PyDev.

cheers,

Fabio

Sunday, April 24, 2005

Passing by...

Hi all...

I'm kind of very, very busy right now, so, I just thought I would drop a note to you that pass by...

I'm currently writing an article about PyDev to the PyZine (http://www.pyzine.com), so, check it out when it's ready!

And I also wanted to tell you that next week a release might come out (altough I'm still not sure I'll be able to get time to do it)...

Friday, April 08, 2005

Homepage logo / other updates

Just did an update to the homepage!! Mostly added a logo for the page... not sure if it was good, so, if someone reading this has some artist capabilities and wants to contribute a logo, it would be very nice ;-)

Also added to the cvs some new things, such putting a closing parentesis automatically and giving suggestion for adding a docstring with Ctrl+1 on a method / class definition (I hate to write all params one by one...)

Thursday, March 31, 2005

Wednesday, March 23, 2005

ReleaseForge...

Today I got a tool named ReleaseForge... I hope it helps me to do releases in sourceforge.

My time is really short lately... There is a release ready but I simply don't have time to do it... actually, most of the time I spend in a release is updating the homepage, maybe I should put less things in it, and just say the highlights, not sure yet... anyway, letting things get outdated doesn't seem a good choice...

Now, where were I... oh...I hope this tool helps me in the releases... ;-)

Friday, March 18, 2005

Content assistants

Wow... lot's of things happening in the plugin.

- I've upgraded my local Python to 2.4 and therefore it's support should be better now;

- Addressed some bugs on code completion;

- Decided to allow the user to change colors for decorators -- otherwise, they just don't seem right to me in the screen;

- Added brackets matching, so that they will highlight its pair;

- Added 2 new content assistants that can use the code completion things:

One happens on lines that have the keyword 'class' and that override some other class.

E.g. class Foo(Bar): | Ctrl+1 - gives you option to override all the public interface of Bar. By that, I mean all methods that don't have '_' in the beggining.

Maybe with this one, I'll start to use some Python interface system. I gave a small look at PyProtocols, but still am not sure about it... All I know is that I really miss some of the static checking from Java as the project I'm working on is growing... Not really because of the language, but because of the tools, more specifically, refactoring... Bycicle Repair Man is dead right now, and I don't see any other project doing it for Python... I'm thinking I should roll my own on that, but I want to put PyDev in a state where that's the only thing missing (for me) before doing it...

The other one is in lines with 'def', to override a specific method of a superclass.

E.g.
class Foo(Bar):
def m| Ctrl+1 - brings all methods from Bar that start with m and provides the completion and a little stub with its arguments and a docstring.

So, keep 'tuned', I think a release should be coming shortly...

Fabio



Tuesday, March 08, 2005

Step-by-step

Today I spent a little time at the code, most specifically code completion...

Well, basically, after staring at it for a while, I decided to refactor it a bit... Thing is, no unit-tests... Damn, yeah, yeah, I know what you're thinking, how does someone write without them? Fool!

Well, what can I say, I use unit-tests all the time, and discovered that they're really useful. -- TDD is a wonderful way of doing things --, that is, if the system is going to grow and you're going to mess a lot with it, as for PyDev, really, it started only as a hobby! Sometimes I messed a little with it, Aleks had done most of the work at that time, and didn't care much about unit-testing for PyDev too... just a for fun project anyway right?!?

Thing is, it is growing... and I'm starting to be concerned in messing with some code areas, as I know that lot's of people are already using it... So, I decided to add some unit-testing to it... Weird how things seem to evolve much better like that hum?!?

Anyway, that got me thinking, is PyDev still only a hobby for me? Do hobbies really require all that much effort? Right now, I cannot see a long distance between it and my job (only that my job pays a lot better)... got me thinking you know...

I guess I really like coding, and getting new stuff to work, hell, what I like most is seeing a project grow, especially in a sustainable way, as I think PyDev is growing until now...

Is there a point in this? Maybe, maybe not, I'm not sure... I guess I just wanted to ramble a little...

Wednesday, March 02, 2005

Release 0.9.1 is out

Just released the new PyDev... This one had many improvements, as I commented before, even thought my time to mess around PyDev is getting shorter...

Anyway, version 1.0 seems always closer... I think there are still some annoying things in it. Namely:

- PYTHONPATH: I'm not happy with how this is managed... And that's the major source of support requests and errors because of user misconfiguration... I added a huge FAQ explaining it, because it is really non-intuitive right now.

- Code completion: This is really good for me right now, but it seems the more I do, the more I think it should have ;-)


I also saw a nice proverb today...
"People always make time to do the things they really want to do."

I guess that's why I keep developing PyDev...
Note that I'm also trying to gather some funding, so, I could do more of what I like ;-)

-- Anyone, any suggestions on how doing it with? --

Friday, February 25, 2005

Pydev improvements

Well, I'm in the midst of trying to make a new build for pydev, but I think I will only be able to get it out next week, anyway, I just wanted to share some things with you, since I believe many improvements are in the way...

Code completion keeps getting better... sure, there are some improvements to do, but even not being perfect, it is almost reaching the place I wanted when I started it (sure... now that I'm in the middle of it, I can see many other things, but that's the natural order of things right??)

Some 'sweet' improvements have been added... a little code formatter for commas and parentesis is on the way (Ctrl+Shift+F), as is a formatter for the global imports (Ctrl+Shift+O - also used for sorting any selected text).

PyLint integration is always getting better too (now it does not block the interface when running)... and I've been getting a great support from Sylvain from logilab too!! (It has been very handy for doing changes in my code and getting things in order... I belive some people call that SW quality control ;-) )

Content assistant just got nicer (Icons make a lot of diference)!

Scott Schleiser also got me a patch to the editor preferences for the colors... also, much better then it was before...

Well, that's it... latest news straight from the 'bakery'!!!

Hope you all enjoy it when it comes out... hope I can get some time to do it next week!...

Tuesday, February 15, 2005

Release 0.9.0 and some updates

Hi All...

Release 0.9.0 has been out for 2 weeks now... I think (not that I'm not impartial) that it is becoming a heck on an IDE...

Code completion has been slightly improved and the new PyLint version had great improvements over its last version. Still, code completion does not seem to work with 2.4 sometimes... I will have to take a look at it later on...

As for PyLint, I find it very helpful to discover many simple errors... it still needs some work when working with compiled modules, but it has improved greatly in the overall - if you want to enforce some coding standards it is also a great tool.

Yesterday I updated the homepage. Mostly because I wanted to put a 'sponsors section', because I would not be able to keep on with PyDev if I hadn't the support of my current employer and I'm also looking for more support to keep the project going... I think the Python community is growing a lot, and I believe my chances in suceeding in this are very good...

Fabio



Wednesday, January 26, 2005

Next release (probably in this or in the next week)

Hi all... just wanted to say that a new release is probably coming out in this or in the next week, to solve some problems that came along with version 0.8.5.

Major problem to be solved:

- Code completion had a packaging problem and because of that, sometimes code completion did not work very well with python 2.4. If you use this version, you can fix that by erasing all *.pyc files that come toghether with the plugin (it seems that a file named inspect.pyc got in the package because of some experiments I was doing and as python 2.4 did not have the source file to recreate it, it seems to hang for a long time... when it did not hang forever)

Some features to the next release (almost ready to go):

- Python 2.4 support: I'm probably going to give limited support for the python 2.4 source, that is, the parser should not complain because of the new decorators syntax (even though, right now it won't be fully aware of it - this depends on some dependencies on python.adsl branch and jython javacc support - but it should at least ignore this kind of errors).

- New PyLint (0.6.0) integration: I've been talking to Sylvain from logilab and most problems I had with PyLint seem to be solved, being so, I'm testing it and I'm probably going to give more support to it in the new version.

Well, that's it... keep tuned!! :-)

Fabio

Friday, January 21, 2005

New Release (0.8.5)

Wow... quite some work to reach it... I wanted to go directly to 0.9, but I believe code completion is still not complete enough for it...

The things I'm still missing are:
- Make the code completion on method parameters;
- Make other heuristics so that we get the locals on code completion;
- Better heuristics for finding a variable definition, so that we can use code completion in many other scopes.

I would also like to support the new decorators syntax, added in python 2.4. I have done some research on it, and it does'n seem pretty. Seems that I have to update 2 grammars, as the parsing is based on the jython parser (or I could wait for them, but I don't know how long will it take for someone to do it) *- Sight -*

Well, I guess that it is good for now...

Hope you enjoy the new release (lot of effort to make it happen).

Fabio

Saturday, January 01, 2005

New Year

Hi all... I'm on my vacations right now... But as I got internet access and was checking my e-mail, thought this would be a good opportunity for whishing an excellent new year for everyone.

As for PyDev, this year I expect to bring it to a new level... Still don't have plans for everything, but I expect to end the new code completion on january (still no date planned), and do a release as soon as it is finished!!

So, that should be 0.9 and after fixing found bugs, it should become 1.0 with the current features.

"Don't count the days, make the days count." (Mohammed Ali)