A few of the guys at work have been working a the
Rhapsody Facebook Plugin. I'm new to Facebook but, the plugin is pretty cool. You can search for music (all the normal artist/album/song) play music right in the site, and even send recommendations to your friends.
Dropping the player on somebody's wall while being simultaneously unobtrusive is pretty nice too.
Since my facebook account is pretty new, I just treat the site like a lightweight music player.
If you're into the whole social networking thing, give it a try.
.
.
Labels: facebook, review, rhapsody
I really like Eclipse but, something has been bothering me for a while.
- Eclipse is build upon an OSGi framework called Equinox
- OSGi is supposed to support install/remove/restart and version-ing of bundles
- Eclipse plugins are OSGi bundles
So why the heck does Eclipse need to restart after installing new plugins?
Why does it need to restart when updating plugins?
Isn't one of the major points of OSGi to make that unnecessary?
.
.
Labels: eclipse, Equinox, opinion, OSGi, review
I'm about mid-stream on a project built using Maven2 and using the Spring Framework to glue it together.
The cool kids at
Spring Source, recently announce the release of Spring 2.5. It seems best to try to upgrade now while the project is still in development than later (and deal with extra QA requirements).
At first my thinking is this should be easy, go to the
maven repository and see what the latest versions are, edit my pom, and rebuilt the project and see what happens.
For the most part, it is that easy.
But, then there are the 'other' little things.
An issue, unrelated to Spring is
Open Smphony's OSCache. Updating from 2.3 to 2.4 introduces a dependency on JMS that can't be resolved. Why should an object caching system depend on JMS? If it must, why can't they define the damn POM correctly so the dependency can be found? Its the standard JMS api jar for crying out loud.
Anyway, back to Spring 2.5. Changes made:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring</artifactId>
<version>2.0.6</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>2.0.6</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>2.0.6</version>
<scope>compile</scope>
</dependency>
Becomes
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring</artifactId>
<version>2.5</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>2.5</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>2.5</version>
<scope>compile</scope>
</dependency>
Then:
mvn clean package
is run, the test server started, and all appears well and good in the world.
Kudo's to the good folks at Spring Source. Backwards compatibility is a beautiful thing.
Update:I forgot to mention, the namespaces in the configuration files should get updated at some point as well. I didn't encounter any problems with the 2.0 namespaces and the 2.5 libraries. However, there are a few improvements, notably the JndiObjectFactoryBean, that are pretty darned useful.
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:jee="http://www.springframework.org/schema/jee"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:cache="http://www.springmodules.org/schema/oscache"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-2.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
http://www.springmodules.org/schema/oscache http://www.springmodules.org/schema/cache/springmodules-oscache.xsd" />
becomes
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:jee="http://www.springframework.org/schema/jee"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:cache="http://www.springmodules.org/schema/oscache"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-2.5.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
http://www.springmodules.org/schema/oscache http://www.springmodules.org/schema/cache/springmodules-oscache.xsd" />
WooHoo!
Now, if the Spring Modules guys could get their act together....
Labels: development, review, spring
Well, the time spent playing with Vista has come to an end.
Though it's a better OS as far as Windows goes, it is not an OS that is conducive to developer productivity.
Time to install a real OS.
I picked Kubuntu, because I like the KDE interface, and the apt-get package management system has, for the most part, been good to me. Most of the hardware auto-discovery stuff has been pretty decent in the past.
At first I tried to use a GParted Live CD to resize the Windows side. I thought I might try dual-booting and give Vista a chance. GParted complained that there were too many partitions. Looks like the Dell/Vista install makes a lot for recovery, etc. Oh well, tried to give them a chance...
On booting from the Kubuntu CD and selecting install, the first thing it did was give an option to resize the existing partitions to make room for Kubuntu. What the heck? I split in half and
it actually freakin worked. Amazing.
The install went smoothly, selected a few options, and let it go on its happy way. After removing the CD and rebooting, I noticed it installed the free NVidia drivers. The display utility actually gives the option to use the NVidia drivers and it even downloads and installs for you. How sweet is that? The only problem, is it seemed to have a hard time getting the correct modelines for the display (1440x900). Not wanting to waste time playing with the GUI tools, a quick google and and xorg.conf edit later and I've got a sweet display.
Usually, when you talk about Linux on a laptop, the big concern is how well the hardware works (if at all). Well, it got the little built in camera working as part of the install (the Dells with Linux pre-installed don't even come with the camera), wifi has been pretty flawless (so far, even when switching though different networks), got my accelerated X (w00t!), bluetooth and all the other goodies seem to be working fine. The only real issue is the sound card didn't configure correctly during install. I think I remember seeing something online about some drivers from Dell but, I haven't invested any time in that yet.
So, how is it for development? Pretty good. Productivity is almost double of that working with windows. Being able to launch a terminal with a keyboard shortcut and ssh to any remote boxes rocks. Having a real bash shell and all of the normal command line goodies, keeps work focused on work (and not trying to beat an app into submission, windows style). Multiple shells with different environmental configurations is nice too (especially when you want to run Java6/Tomcat6 and Java1.4/Resin 1.2 at the same time.
Kubuntu has its annoyances too, what OS/distro doesn't. The best thing is, I can configure it to minimize or eliminate as desired. I know everybody like to bash windows, but, you have too admit, one really big difference with Windows and Linux happens when fixing problems. In Windows, you hear people say, try this and reboot, lets see if that works. In Linux, you just change a configuration and it works.
Like Yoda said, "Do or do not... there is no try."
Labels: inspiron, Kubuntu, review
With the new job, I needed to get a new laptop. The boss said to just tell his right hand (our awesome executive assistant/manager) what I need.
I asked for an Inspiron (with buckets of RAM), as it seemed this model has the best Linux support.
Since my primary focus is development, I mostly need fast IO on the hard drive, and lots of fast RAM. I actually opted for a less than top-end CPU in order to maximize battery life.
The system arrived with Windows Vista pre-installed. I decided to give it a run before wiping it away and just running Linux.
At first, Vista was just painful.
Startup, shutdown, and hibernate are just painfully slow.
The stupid dialogs that pop whenever you try to do anything are an unbelievable pain in the posterior.
Anyway, a bit of googling later, I managed to configure the system so that is usable.
I installed cywin and all of my normal dev tools and was able to be fairly productive.
Vista is much better than XP if you are constantly moving from one wifi spot to another (XP would just require a reboot after a while).
However, its wifi configuration tools are worse than the simple one used in previous windows.
My opinion of Vista so far:
- out of the box, it completely blows chunks
- once configured it's pretty usable (maybe the best windows yet)
- more stable than previous versions
- slower than any previous version
- eye candy is nice for about a week, then you find yourself killing it
Hibernate (and waking up) is so slow, you might as well shutdown, its faster.
Sleep is unreliable. I put it to "sleep" a few times and tossed in the backpack.
After a while I felt a lot of heat coming out of the pack, it woke up even though it was closed (major suck factor).
Because of this, I can't recommend any good reason to use sleep mode at all (this is obviously a Dell not Microsoft issue).
Labels: inspiron, review, vista
I've recently taken th plunge and upgraded my Eclipse environment from Callisto (3.2) to Europa (3.3).
One of the first things I noticed is a significant improvement in performance. My machine isn't a lightweight by any stretch but, Eclipse 3.2 definitely used some resources. Now that I am using the newer version, things flow much faster. (One of my co-workers posted about using
Europa on an older computer ; he seemed to thing it worked pretty well)
Being a major proponent of keyboard shortcuts, I have to say, some of the changes interrupted my programming flow. For example, I usually follow the method of
test driven development. So, I often used the short-cut "ctrl-F11" to run the last thing (usually, my jUnit test). With Europa, I found that it launched a contextual dialog based on the current file.
Ouch!
Fortunately, the preferences allowed me to switch it back to the previous behavior.
window->preferencesrun/debug->Launching
Cool, if things change, at least it is pretty intuitive to get back to the normal way of working. Finding the preference literally took about 30 seconds.
Most of the other shortcuts still work as expected.
There are some nice new refactoring options too.
Really cool is, "
Introduce Parameter Object". Select a method, hit
alt+shift+t for the refactoring menu. Then "P" to select that option.
This allows you to replace a bunch of parameters with a single object. It also changes all of the calls to method to use the new object. Great for refactoring old code.
The next is "
Introduce Indirection". This one is really great when you are refactoring code that uses an external API. Especially when you need to implement an interface that you can't change. I found a great article, "
Unleashing the Power of Refactoring", that covers this one with great detail.
In the web tools (WTP), there is a new page editor. It is a split pane editor with the page on the top and the source on the bottom. They scroll together, and changes are shown "
live".
Schweet!!!The horizontal split is a little weird at first. I like a whole page of code. But, you can now have
multiple editors open for the
same file. To quote Rachel Ray, "How cool is that?"
Even better, most of the editors have built in spell check with
ctrl+1 auto-correction. Javadocs, html, properties files,.....
BooYah baby!!!
It is rare that a minor release (3.2 to 3.3) of any software has such great improvements. But, for adding new features that can
stay out of the way, for improving performance, and stability, I give Europa two thumbs up.
Can anybody ever remember an update to any IDE that performs better on the same hardware?
Update:
I forgot to mention, the contextual auto-complete. This gets better in every release. It's funny that I can't point out anything specific but, just notice how I find I keep getting closer to the point of "thought->code".
An
interesting post mentions a little more about it.
Aren't the best changes, the ones that help you work better without realizing that anything has changed?
I can't wait for a revival of the emacs/vi war over minimum keystrokes happening with Eclipse/NetBeans.
buaahahahaha!!!
Labels: eclipse, europa, review
Its rare that I care to mention software that puts me in a bad mood. But, I must say, Adobe's latest as set me off.
Today, Acrobat gave me a little message that it needs to be upgraded. Little did I know, it decided to bring a friend along. That friend is Adobe Photoshop Album Starter Edition. A wonderful little program that I neither want, nor asked for.
The best part is, every time I plug in a USB drive, its launched and wastes my time while scanning for things it can open.
Installing extra software is bad, making it interrupt my work is just seriously uncool. At least I can un-install without a reboot. It is rare I say anything about Adobe, and I usually cast them in a positive light. This move changes the stance from bouquets to brickbats.
_
Labels: adobe, review
While ate the IBM/Rational conference, there was a lot of talk about the
developerWorks spaces. There was also much prodding and encouragement to sign up.
Well, this morning I decided to give it a go.
First off, the
process sucked more than expected. Why do I need the email of another "commited contributor"? Why not let me get started right away?
So far, my first impression leaves me underwhelmed.
If I can get the chance to actually do something with it, I'll post the good and the bad. If not, I'll just continue to place things here and on my site.
_
Labels: community, developerWorks, review, spaces