Aug
5
Ten years of "the desktop is dead, web-apps are the only way" makes a great corporate religion. If you're a true believer in this religion, read no further - I'm a non-believer. Requiring a web app should never mean I don't want a desktop - even more.
I want web apps and mobile web apps, sure. But I want the default as a desktop app that can shuffle as much of the computing to the local CPU as is reasonable.
And of course, I want to write the app one time. The platform should be super powerful and fully developed by others. It should update automagically, have superb installers, and a phenomenal list of features, yada yada. An impossible dream.
Aug
2
Woohoo! I'm in love! What a great feeling, to find such a sweet platform that does almost everything I need, and most of it very well.
Sweet! I didn't know
My main squeeze, Eclipse didn't know I was checking out other fish in the sea, but really I wasn't. I was just googling for "Swing OSGi" and here comes NetBeans releases an OSGi version.
Jul
17
The screencast below brings up many different approaches of modularity systems in Java. Hmmm. I never even considered anything beyond OSGi.
- OSGi
- JSR 277
- JSR 294
- NetBeans Modules
- Maven
- SMS
- Jigsaw
Jaroslave Tulach, the guy who wrote the netbeans module system is interviewed here, it's a great discussion.
Jun
13
I used to be a really fast java programmer. If you wanted something written quickly, I was your guy. But that was "so last month...".
Certainly not today.
And it's a psychological struggle, because I'm fighting back the shame constantly. It's embarrassing as hell being this slow - even when no-one is watching.
Why so slow?
I'm working on my own software now. This is my nickel. Not billing others for my time, so I can do things right.
Such as but not limited to these "better" practices that I used to largely ignore in the interest of speed.
- Writing tests for everything I write.
- Setting up infrastructure first, not a year after I needed it.
- Never writing a similar project twice, using an archetype template and writing a replication routine etc.
- Using Spring dependency injection in each appropriate circumstance instead of when it is convenient.
- Using modularity to organize code into little, discrete, independent jars.
- Using OSGI to keep all my modules clean.
- Interfaces instead of concrete classes for calls between projects.
- Writing a maven generated "site" for each module, that gives a future module developer insight into what's what.
- etc. etc.
May
6
Every technology can enable questionable or even destructive uses. What follows is one that OSGI enables.
From that perspective, this screenshot is perfect OSGI anti-pattern. OSGI going to the dark side. (No, it has nothing to do with groovy or the plugin shown)

Apr
29
The first thing you need, if you're going to do enterprise OSGI, is a starting template for a modular project.
5 minutes, right? We've all done this before. Right click in the IDE > new > project > yada yada
Not So Fast
True, that will do the trick in a non-OSGI world. But then there's all the other stuff like