Eclipse M9
Eclipse M9 was recently released and I’ve been using it all day today. It seems to work well though it reset a lot of my preferences which I didn’t think previous versions had done. Perhaps they were stored outside of the workspace somewhere… The most noticeable new feature is the code folding which generally I’m not a fan of until I realized it could automatically hide all the import statements at the top of the file. I’ve always hated having to scroll past a screenful of import statements to get to the meaningful code so it’s good not to have to. The other really noticeable change I saw was the ability to have calls to abstract methods shown in a different font/color as well as references to static variable, class variables. While this seemed like a really useful feature when I first saw it, turning it on made my source code overly colorful and really quite difficult to read. I’ve left it off for now though it’s probably possible to be more selective about which things are highlighted and in what colors. I’m not sure it’s really going to be a particularly big productivity gain though. I also noticed somewhat by accident that a little icon appears in the sidebar when a method overrides a super class’s method. That’s really useful to me. I spend vast amounts of time extending classes and overriding methods, mostly to add improvements or fix bugs in features that come with the JRE. It’s very nice to not only see that you’ve got the signature of the method right and that it really is overriding something but also have a very quick way of getting to the super implementation to make sure you’re taking care of all the things the method is supposed to. I’m just now reading the release notes and the mark occurrences feature looks very useful – particularly with it’s ability to highlight exit points of a function. We have a number of complex functions that have multiple exit points but that wind up being much harder to understand when broken up into smaller methods. For performance reasons though (and yes we’ve profiled and know that it’s required) the functions exit as soon as possible and thus have multiple exit points (refactoring to use a single exit point while maintaining performance just complicates the code). Having the exit points show up clearly should help a lot in these cases, particularly since it appears to also highlights points where an exception may be thrown and cause the method to exit. Back to the imports related features. The new ability to keep track of required imports when copying and pasting code looks really cool. Not that I’d ever copy and paste code….. Anyway, lots of cool new stuff to play with in Eclipse M9. The project is really coming a long way – I haven’t tested its speed on OS X yet but I’m hoping it will continue the trend of optimizations there and if my new RAM ever arrives maybe it will even be usable.
City of Heros
The lack of entries around here lately has been mostly due to my discovery of City of Heros. Great game – very addictive. Anyway, but get back to it – I’m hoping to reach level 12 tonight….
Computer Problems
I really hate computer hardware. My PC started to randomly freeze every so often a month of two ago. It’s been totally out of action for a few weeks now and I’ve finally gotten around to trying to get it up and running again. After replacing the motherboard, RAM and CPU I can boot linux again and it seems stable if lacking a lot of features. It doesn’t seem to have support the ethernet card, sound card and has some issues with the hard drive controller. Windows on the other hand blue screens on startup – even in safe mode. I’m now trying to backup all the document from the windows hard drive to the linux hard drive and there’s this awful clicking noise. Somehow I think I’ll be replacing the hard drive too. Sigh.
Functional Languages
I got involved in a long argument last night centering around different language paradigms and how the perl language fits into them. My “worth adversary” argued that perl could be considered a functional language at least in some ways because it supported function language constructs. In particular the example was given: map { freq $_ } @list
The particular point being made here was that perl supported passing code into functions as parameters and that was a principle construct of functional languages. In Java you’d need to use an object to pass the function in as data thus it’s object-oriented and not functional. Now that I’m home and have access to my text books, I can safely put this argument to rest too. From Programming Language Essentials by Henri E. Bal and Dick Grune and published by Addison-Wesley:
Word Of The Day
The word of the day (and it’s a cool word so probably the word of tomorrow as well) is:
White America Policy?
Just browsing stuff and came across a list of requirements to become a US Citizen. One of them is:
you must demonstrate an elementary level of English (reading, writing, understanding); Is this right? I always tend to question legal advice from random websites, and this one seems to have the entire purpose of getting you to find a lawyer using their site… If this is right, how is this different from the extremely controversial, and now removed, White Australia Policy? Finally, is it really the case that every American immigrant speaks english? That would suggest to me that there’d be effectively noone in the US that didn’t speak English as I’d imagine someone born in the US would pick up enough over their lifetime to speak at least “elementary english”. There’s still a few exceptions – people born in the US and moved overseas at an early age etc – but that would be an extremely small percentage of the population I’d imagine. Any Americans want to shed some light on this?
One For The Lawyers
A couple of interesting articles I stumbled across today that the lawyerish types (both professional and armchair) might be interested in: Firstly from Radio Australia:
Under the new laws, migration lawyers, instead of their clients, will be personally liable for the cost of cases that have no merit. Billing the prosecution for cases that have no merit sounds like a good idea, but I’m not sure if the lawyer should be billed or not. If the lawyer pressured their client into the lawsuit then the lawyer should definitely be slapped with the cost. However, if the lawyer was a good lawyer who acted in good faith and advised their client as accurately as they could about the chances of winning then it would seem quite unreasonable to slap the lawyer with the fine. I would hate to think that people wouldn’t be able to find a lawyer to take their case just because there was a possibility it would be thrown out as having no merit. Then again, how obviously invalid does a case have to be before a judge throws it out without listening to the arguments? And secondly, from the Financial Times, it appears that it is illegal (in the UK at least) to have unsafe sex with someone and not inform them of any STDs you may happen to have, but the jury must be asked to consider whether or not the victim consented to it (I’m not sure if “it” should be taken as the sex, the unsafe sex or contracting the disease). My interpretation of that may well be out though. The article is about how the original ruling that found him guilty was overturned because the jury should have been asked to consider “the issue of consent”. I’m not sure if that means the entire trial happens over again as if it had never happened or if “the issue of consent” is being sent back to trial. Anyone got any hints as to how this process works? References to Law and Order episodes I can watch to come up to speed on it are appreciated….
The Drugs Are Good
Demazin is a wonder drug as far as I’m concerned. I’ve been sniffling and struggling to breathe all week until today I gave up and went to the chemist to get something, anything, to make it stop. He gave me Demazin and some 7 hours later I’m still breathing easy (it only claims to work for 6 hours). Of course, from about the 5 hour mark it seems to make you very drowsy so I’m very much considering just crawling into bed and going to sleep even though it’s now only 4:30 in the afternoon.
Bachelor Pad
I was just wondering what to have for dinner and realized that I just don’t give enough credit to the good folks who keep me fed, so having grabbed a quick bowl of cereal (Sultana Bran for what it’s worth) I came back upstairs to investigate who invented that traditional food of the bachelor – 2 minute noodles. I couldn’t find anything even vaguely related to that, but I did stumble across this amusing thread. Among my favorite quotes:
Trackback Fixes
Just noticed that ever since I moved trackbacks onto the same page as the article (ie: got rid of the stupid little pop-up window), trackbacks weren’t being displayed. Apparently MoveableType doesn’t rebuild the page when a trackback is registered. Oh well, a quick php ‘include’ later, I’ve got the trackback page being included directly and trackbacks should be working normally again. Shame, I did find Brian McCallister’s pseudo-trackback somewhat amusing.
import humor.bad.*;
I may have missed the mark on my attempt at an over the top, yet at least vaguely humorous reaction to Marc’s comments about explicit or implicit imports in Java. The golden rule of coding styles should apply: do what the rest of the team is doing. Having said that, I have to point out a couple of things in response to Marc’s update:
Code get’s read (at least) 100 times more then it gets written. (Forgot where I catched this quote) So the bit of time *you* win in typing is asking for a tough pay-back on wasted time on reading/interpretation. Please abondon the idea that you are doing someone a favor. Code gets read 100 times more than it gets written, but imports should never be handled by humans at all. Seriously, when I read Java code I never look at the import statements. Why would I? My IDE can read them, parse them and use that information far more efficiently and accurately than I ever could. It doesn’t care if explicit or implicit imports are used, it doesn’t care if it’s seen that particular package before or not. When I want to know what package a particular class is in I just hover the mouse cursor over it’s name and my IDE tells me the full package name. If I want to see the source of that class I control-alt-click the name of the class or usually the name of the method I’m interested in. The use of implicit or explicit import statements only affects readability of those people who don’t have a decent IDE and those people are sacrificing so much in productivity that the type of imports used are the least of their worries. For the record, both emacs and vi can be configured to use ctags and get an understanding of the contents of your project’s source code, so you don’t necessarily have to abandon those if you find their keyboard shortcuts make you more productive. Emacs users however will probably find that most IDEs support emacs key bindings anyway.
The Problem With Our Schools
I’ve always been very critical of the fact that private schools in Australia often receive as much or more government funding than public schools and particularly of the fact that it’s getting worse, not better. This comment I recieved in a private email really hit me though:
but as i said… mega mega awesome…. as far as cleveland musicals go coz we don’t really have a budget seeing as it is a public school etc. It’s just wrong that some of the private schools around Brisbane have so much spare cash around that they have professional quality theaters and even full size pipe organs whereas the public schools are struggling to put on a musical at all. There are kids in those public schools that are absolutely passionate about music, arts, theater as well as sport and academia but they aren’t getting the same opportunities and experiences that “rich kids” get.