|
|
||
Joshua Marinacci's BlogCommunity: NetBeans ArchivesMy First Screencast: Visually build an RSS reader using NetBeans 6Posted by joshy on November 02, 2007 at 11:40 AM | Permalink | Comments (14)With NetBeans 6 beta 2 out (and the final version going into High Resistance-"thou shall not break things" mode) I thought it might take the opportunity to show you some of the cool things you can do with it. I am a client guy, of course, so I'm very excited by the new features we've built to let you create and deploy desktop applications easily and quickly. I also wanted to try experimenting with screencasts. Since development of client apps is so visual I think a visual way of explaining them is good. This is my first screencast so please provide feedback of what you like and don't like. The key to getting the most out of the new client tools in NetBeans 6 is the use of beans. Not just visual beans like Swing components, but also non-visual beans. When you wrap your functionality up as beans you can visually attach them together very easily. In this screencast I will show you how to use a simple RSS reader bean to build a feed reading application with almost no code. The screencast is 12 minutes long, but I could build and deploy the app in about 4 minutes if I wasn't talking. That's how productive NetBeans 6 can make you. Visually build an RSS reader with NetBeans 6, by Josh Marinacci
Here is the NetBeans project with all of the source and support jars. NetBeans 6 beta 2 is out!Posted by joshy on October 23, 2007 at 06:10 PM | Permalink | Comments (4)I just wanted to let you all know that NetBeans 6 Beta 2 is out. Over the next few weeks I'll have more posts about the cool new stuff in NB 6, but for now I just want you to know it's ready for download. A whole lot of work has gone into making sure it's quality work and I think it shows. In fact, Beta 2 is now my only IDE. I've deleted every other copy of NetBeans and Eclipse from my HD. I've gone in whole hog; and freed up a lot of disk space. :) The votes are in.Posted by joshy on September 26, 2007 at 09:28 AM | Permalink | Comments (3)I've got a free moment here at the MidWest Tech Days (and if you are in the MidWest you should be here too!) so I thought I would tally the votes generated by my previous blog: You vote for your favorite article and I'll write it! Before I get to the results themselves I must say that I was quite surprised by the response. 34 comments with some very good suggestions. I'm glad to see that there is such passion in these topics. So here's the breakdown (and please correct me if I miscounted) :
I'm surprised that the JXMapViewer was so popular, and that the Swing App Framework and Beans Binding in NetBeans was so low. Most of all, however, I'm quite surprised to see the graphic design article score so high. Clearly "making GUIs that don't suck" is a high priority for a lot of you. Thank you all for your feedback. It looks like I've got some writing to do. Keep watching for new articles coming soon. NetBeans to become GPL!Posted by joshy on August 17, 2007 at 07:51 AM | Permalink | Comments (9)I have been in the open source world for a long time. Pretty much since I first installed Slackware in my sophomore year of college (I'll leave calculating that year and my age as an exercise to the reader). I have always felt that open source and commercial interests, when managed properly, can have a wonderful balance that benefits both the consumer, developers, and companies. That's one of the reasons I came to work for Sun, in fact. At Sun I get paid to work on open source software, which was pretty much my dream since college. Anyway, one of my big complaints with the way large companies deal with open source, including sometimes my employer Sun, is the unnecessary proliferation of licenses. The standard licenses are hard enough to understand with their annoying (but necessary) legalese. The last thing we need are more licenses that require coders to become lawyers if they want to use two products together. That's why I'm very happy to tell you that: NetBeans will be released under the GPL v2 with Classpath ExceptionIt hasn't happened yet as we are still working out the final plans, but it's official and it's definitely going to happen. This is great for three reasons. First, you'll be able to get NetBeans under the GPL, just like you can get so many other great open source products. Second, GPLv2 + classpath exception is the exact same license that the JDK uses. This means more harmony with the rest of Sun's Java products. Third, this encourages the use of the GPL over other licenses which I hope will one day reduce the number of licenses out there in the world. Okay, back to coding! updateI linked to the FAQ in the header above, but I just wanted to make it expilict. Here's the FAQ on the change to GPL. And to further clarify, use of the GPL is optional. You can still use it under the CDDL if that works better for you. A Response to GUI Building: tool vs hand codedPosted by joshy on June 14, 2007 at 10:52 AM | Permalink | Comments (45)The debate of hand coding your GUI screens versus using a tool has come up again. I suspect that Stuart wasn't expecting quite the volume response that he got. For some of you this is old hat and I suspect we aren't going to come to any conclusions here. I would like to say one thing, however. We need to split issue into two separate items that are actually independent, though related. We like to say it's a matter of writing your GUI by hand using GridBagLayout (which is the one layout manager always discussed) vs. using an proprietary opaque visual tool like NetBeans GUI Builder or Apple's Interface Builder (even more opaque). I think this is wrong. There are distinct issues here that should be handled separately. Visual Tool vs Hand CodingFirst there is the issue of using a visual tool instead of hand coding your GUI. I think there really is nothing to decide. Laying out your GUI is a visual task. Use a visual tool! End of story. I wouldn't design a newsletter without a visual tool like Quark Express. I wouldn't edit photos without a visual tool like Photoshop. Why should I design my GUI without using a visual tool like NB? That's madness! Now notice I didn't say that you have to only use a visual tool. It's perfectly acceptable lay out your GUI initially using NetBeans and then add tweaks afterwards. In fact, I do this all the time. NetBeans will create an uneditable method But what about the noneditable code? It's too complicated to understand! Why yes, that's right. It is complicated (though actually fairly straightforward, if verbose). However, you are never supposed to edit that code. That's why it's in an noneditable block! :) The form XML file is the definitive representation of your GUI. The generated code is simply an implementation detail with a few nice side benefits (like not needing to have NetBeans running to compile your code with Ant). We could just as easily generate bytecode directly and never show you the Java at all. Or we could parse the XML at runtime instead of compile time. You should never have to deal with that generated code just as you should have to directly deal with the bytecode generated by Proprietary vs Standards basedThis is the other big thing I see mixed up in the hand code vs GUI builder issue, but it is an entirely separate issue from the previous one. I agree that standards are better because you do not want to be locked into a tool. Imagine you tried to move away from Visual Studio for your .NET apps. You'd find it pretty difficult to modify VS's form files. But the solution here is not to throw away visual tools. The answer is to use a tool that saves in an open and hackable format, preferably with open tools. NetBeans is an open source product (and has been for many years). The GUI builder (formerly called Matisse) has even been ported to Eclipse. The form files generated by NetBeans are straight forward XML files that are actually pretty easy to modify by hand when necessary. So you can see that NetBeans's GUI builder is not the lock-in with proprietary specs that some people might think it is. It's actually quite open and hackable. So we have reduced the problem to one a lot smaller. The only downside to NetBeans GUI builder is that it's not a standard format, meaning it hasn't been documented and there is no DTD. The format could change in the future as we add new features. Opening up the form.xml format would be a great thing. This is an issue we are aware of and hope to address in a future release of NetBeans. [Disclaimer. I'm not the keeper of the NetBeans roadmap and I'm not saying that we have immediate plans or that it's scheduled for NB 6.0 (it's not). I'm simply saying that it is on our horizon and something we would like to do. Everything in this post is my opinion only.] ConclusionSo I hope I have split the issue successfully into manageable parts and cleared up some misconceptions (you'd be surprised how many people aren't aware the form files exist and think that NetBeans would read back their changes if only they could edit the 'blue' code blocks). Please send us you feedback. We really do listen and we really do want to hear what the community wants. Thanks, Josh Problem and solution for compiling NetBeans on MacPosted by joshy on May 17, 2007 at 08:45 AM | Permalink | Comments (5)What follows is a particular problem I had compiling NetBeans on my Mac and my solution to it. I'm putting this in my blog not so much for my readers but for the future generations of Google travelers who may stumble across this same issue. I downloaded a fresh copy of the full NetBeans source and compiled it. This is what I got part-way through the compilation process:
I suspected this was due to using Java 6 instead of Java 5, since I knew there were some changes to the JDBC spec in Java 6. Switching to 5 didn't fix the problem but I finally figured it out this morning. To switch your JVM on the Mac you must use the Java Preferences application. You can reorder the JVMs Java Application Runtime Settings area of the main screen. Putting Java 5 first will only fix half of the problem, however. The NetBeans build scripts also use the JAVA_HOME environment variable when you compile from the command line. Normally this is not set on a Mac so changing the order of VMs won't affect it. However, I had manually set JAVA_HOME in my .bash_profile when working on another project. This was still set to Java 6! Changing it to Java 5 fixed my problem and let the compilation complete. Note that you'll need to do an 'ant real-clean' and delete the 'nbbuild/build' directory if you had already partly compiled with Java 6. So that's it. I hope this helps you. JavaOne: Another One is DonePosted by joshy on May 11, 2007 at 12:43 PM | Permalink | Comments (4)It's Friday morning and I'm watching the James Gosling keynote from the bean bags in front of the big screen. I'd say this was the most exciting JavaOne I've ever been too. We really saw desktop Java in full force. Perhaps we shouldn't call it desktop anymore, since a form of Java SE is going to be available on phones and other non-desktop computers. So really this was the JavaOne for client Java. Since I've spent most of my professional career pushing the limits of desktop Java I'm very excited about the possibilities of doing cool things on phones and TVs. So that's the overview. I'll leave it up to the many great bloggers here to give you their take on JavaOne and all of the sessions. I'll give you a quick at what I did before I drive home and sleep for the next few weeks. Swing Application Framework: JSR 296The biggest surprise for me in our Swing App Framework session was the incredible attendance. Our room held 500+ people and it was completely full. People were milling around in the back looking for seats. This tells me that quality Swing applications really are important to a lot of people. The talk went pretty well. Everyone laughed at our bad jokes and the live Flickr demo was a big hit. It's always fun to type in random words on stage and see what bubbles up out of Flickr. We will have the code for the demo as well as screencasts in a place where you can download them soon. AB5k / Glossitope BoFSo we had a few glitches with our website, including having to completely rebuild the site yesterday morning. Since we think a lot of people have trouble registering on the website we have decided to have another contest soon, giving everyone an opportunity to compete. More details coming soon. The session went well, I think. We have 35 people, which is pretty good considering we were in at 10PM on the last day of the conference, opposite the After Dark party with free beer and battle bots. We had a few glitches with the projector and audio but overall we were well received. Everyone loved the comic book jokes on the slides as well as our unique brand of humor. I'll have a link to presentation soon. In the mean time you can see our video here. Your Moment of ZenAnd speaking of our video. It was shown on the big board here in front of the bean bag chairs. How cool is that?!
Until next time, keep on Swingin'. JSR 296 Session SuccessPosted by joshy on May 08, 2007 at 09:13 PM | Permalink | Comments (4)Another quick update. Hans and I did our session on JSR 296 today and it was a huge success. We were completely packed, over 500 people I think! More coming soon. updateHere is John's coverage of our session. Thanks John. NetBeans day successPosted by joshy on May 08, 2007 at 07:57 AM | Permalink | Comments (1)Hey guys. Real quick. I just thought you'd like that we (the NetBeans GUI Builder team) showed Open Street Maps on stage at CommunityOne in front of about >400 people. We did a demo where we built a database application live on stage that combines famous sites in London with photos from WikiPedia and the JXMapKit running Open Street Maps. And we did the whole thing with only a single line of actual code. Everything else was visually assembled in less that 5 minutes. I told the audience that we were using OSM which is "literally created by guys on bikes with GPS trackers. It's amazing". Everyone was very impressed. We'll have screencasts up once we finish JavaOne. More updates will come as the week continues. We've got our JSR 296 talk and then the launch of some cool stuff for AB5k. Beans binding rocks!Posted by joshy on May 03, 2007 at 10:27 PM | Permalink | Comments (55)I was working on one of our NetBeans demos for Monday's Matisse session and it occurred to me. I was actually having fun putting together a little program! I grabbed some of our cool little beans from SwingLabs then wired them up to some text fields using zero code. Just binding expressions created visually using NetBeans M9. It was really easy and kinda fun. Beans binding makes the beans we've assembled in SwingX-WS in particular a whole lot more useful. I'm starting to think that we may just have something here with the Beans Binding and Swing App Framework JSRs. They really are going to make building Swing apps a lot more enjoyable. And the demo we are pulling together will show you how to do some pretty powerful stuff with almost no code. I think you'll really enjoy it. Okay, back to coding up demos. Back from the Java Posse RoundupPosted by joshy on March 18, 2007 at 08:27 PM | Permalink | Comments (3)Now that I've had a week to recuperate, and heal from my poor attempts at snowboarding, I can tell you about where I was the week before last. From the 5th of March to the 9th I was in Crested Butte Colorado for the Java Posse Roundup. A quick bit of background. The Java Posse is a podcast (an internet downloadable radio show, essentially) devoted to Java. It is run by Joe Nuxoll and Carl Quinn (formerly of Sun, now of Apple and Google respectively), Dick Wall of Google, and Tor Norbye of Sun. They have steadily built their readership over the last year and now have enough listeners to support their very own conference. Rock! The Java Posse Roundup is a small conference they organized in Crested Butte, Colorado (a very small town in the mountains, think South Park. We just need Tom's Rhinoplasty :), with planning and assistance from Bruce Eckel, author of Thinking in Java. The Roundup was an un-conference following after the Open Spaces concept. This means it was not structured like a traditional conference and had no pre-planned sessions. Sessions are proposed and decided on the first day and can change over time. Most sessions were very open ended, starting on a particular topic but usually finishing on something else. The week was chaotic but very very fun. With only 30 people in attendance I was able to spend a lot of time with the other attendees and learn a lot about how people are using Java (and will use Java) in the future. Also in attendance were Brian Ehman, the Java Posse intern; Robert Cooper, a friend of mine from way back when in Atlanta and author of the soon to be released GWT in Practice; and our illustrious Java.net editor (and another longtime friend from Atlanta), Chris Adamson. Our days were structured but flexible. From 8am until noon-ish we have three session slots with an average of 3 sessions per slot to choose from. After noon we break up into groups for lunch and then have free time. Some days we would do something active like skiiing, hiking, or going to the store to purchase food. Other days we would have geek time for emails, fixing bugs, and helping others out with their code. I did a lot of the latter, of course. We would all meet again around 6 for a big dinner and discussion, followed by lighting talks in the evening where we would give five minute demos on cool things that find our interest; Java or not. Overall I had a great time and feel that I got a lot out of the conference. This was an opportunity to connect with a lot of great people. I made quite a few additions to my address book and now have a lot of followup to do. I stayed in a rented house along with the Java Posse guys and two others. Not only was the house huge and a great place for people to come in the evening, it was significantly cheaper per person than a hotel, saving my gracious employer quite a bit of money. :) Here is a brief overview of the sessions I attended along with my notes. All sessions were recorded by the Posse and will be up on the web soon. I'm sure I missed a couple and can fill in once the recorded sessions jog my brain. intro:We all learned about how an un-conference works and got settled in. AB5kRobert Cooper and I announced AB5k, our all Java widget system project, and got some feedback. It was a small session (everyone else was inthralled in the Dynamic Languages on the JVM talk in another room) but I got a lot of great feedback. The biggest thing I took out of it is that I must focus on Java's strengths. Because AB5k is written in Java it has some great advantages over the other widget systems. Cross operating system and cross operating system version support, I18N, 3d/2d integration, multi-language support, and a robust security system are all advantages we need to leverage. JNI: what's up with that?!JNI is too hard to use, too slow, not well supported. Many specific issues were mentioned, including Dick Wall's problem with the JVM not using hardware accelerated trig functions but JNI is too slow to implement it yourself. This is something the JVM must do but multiple JSRs to add support for it have been shot down. Perhaps now that Java is open source someone could do it. Flex and rich webapps / what's wrong with applets:This went all over the place but the general consensus is that the Java plugin itself is the problem with applets and must be fixed. Flash's VM beats the Java plugin in pretty much every metric. Some interesting and crazy ideas were proposed like:
Flex apps:In sort: Flex does some very powerful things very easily, and Apollo will let you write Flex/Flash apps that run on your desktop. Adobe has some serious people working on this and it looks great. This is something the Java community needs to take seriously, either by competing or working with it. Flex and Apollo are going to change the way people write desktop apps over the next five years. Media support on the JVMThis was Chris' talk about the state of media on the JVM, the failure of JMF and Java sound, how Quicktime is going away, and what to do about it. The general consensus was that media, especially content creation, is very important and we must address is soon. Some ideas include wrapping some of the cross platform open source tools in Java. Things like VLC and GStreamer were mentioned. Java Properties:This is Joe's Nuxoll's proposal for Java properties (originally proposed to JavaSE several years ago when Joe worked for Sun). It seems like a very clean and simple way to add properties and events to the Java language with as little breakage and non-intuitive syntax as possible. If we decide to add properties to Java we really need to look at this proposal. This was a well attended session and most people agreed that we should add properties to the language. (I'm a huge fan.) Other suggested this should be left to other languages that run on the JVM like Groovy and Scala. Java.net vs Google code vs Source forge vs others:I kicked off this session to discuss the relative strengths of the various project hosting sites. None of them came out on top, though I learned a lot. Google code is doing a great job at providing tools but not at providing a community. I plan to take a lot of this information back to the Java.net planning meetings during Java One. Google's issue tracker in particular is much, much better than Java.net's. Lighting SessionsThe evening lighting sessions were a ton of fun. I showed off several demos I've been working on over the last year including:
Code for the above demos will be forth coming if people are interested. Other sessions of note include:
My Java One TalksPosted by joshy on March 03, 2007 at 02:39 AM | Permalink | Comments (2)Just a quick post as I'm rushing to be ready for the Java Posse Roundup conference next week. When Chris, our eloquent Java.net editor, mentioned that the JavaOne 2007 acceptance and rejection letters have gone now I realized that I hadn't blogged about it. Yes it's true, a BoF for my secret project that I've been working on with Robert Cooper has been accepted, so if you don't make it to the Java Posse Roundup next week where we officially release it then try to come to JavaOne or just keep checking my blog for more details. So that's the big one, but what about my other talks? Every year I submit about 5 and only one or two get in; and this year is no exception. My talk on using Flying Saucer to easily generate PDFs was not accepted, alas, so I think I'll have to write an article on that at some point. Also my Painters talk was not accepted, so I will probably contribute some content to the Extreme GUI Makeover or SwingLabs sessions. (though I may not need to as Painters are a heavy supporter of my secret project). Finally, my other talk which did get in is JSR 296 with Hans Muller. We will show how JSR 296, the Swing Application framework, functions and how you can use the new features in NetBeans 6 to make your life a lot easier. My goal by the end of the talk is to show you how you can build an entire deployed rich client application in under 60 seconds. Hans says I can't do it. I guess we'll see! Also be sure to come see me at NetBeans Day (the day before JavaOne starts) where we will be showing off lots of cool new NetBeans 6 features. NetBeans day also has the advantage of being slightly cheaper than JavaOne (as in completely free!) Oh, and some quick teaser screenshots. Big stuff is coming! Netbeans M7 and the amazing new Web Start pluginPosted by joshy on February 27, 2007 at 07:12 PM | Permalink | Comments (12)Milestone 7Milestone 7 of NetBeans 6.0 recently came out and I tried it out for the first time today. Now I know what you are thinking: "Don't you work on NetBeans? Don't you work for NetBeans?!" Well yes, I do. But I'm working on a branch that hasn't migrated to the 6.0 codebase yet. It will in the future (and I'll have blogs on it) but for now what I see every day looks pretty much like NetBeans 5.5. Trying M7 is my first taste of NetBeans of the future (other than my own highly excellent work, of course. but more on that later :) . So what do I think? Well, it's pretty. There's a new color scheme with new icons and I think it looks pretty good. IDE's are never known for their fantastic user interfaces but I think the designers did a good job on this one. It has a new sense of consistency that I really like. And it looks halfway decent on my Mac, which is something IDEs are almost always bad at! So on to the new features. There's a new editor in there which I haven't played with much but it does feel faster to me. I don't know much about the EE features (since I don't do web programming) so I'll cover something that's very important to me: Java Web Start. A New Java Web Start ModuleIn the past there were several Java Web Start modules available for NetBeans that were all quite horrible. One of them even generated JNLP files that would core dump on Mac! I've been wanting good Web Start support in my IDEs for some time and now we've finally got it. Milan Kubec has been working on a new Web Start module that fully integrates with the project system. All you have to do is create a desktop application and click a checkbox in a new Project Properties pane. Then hit run and it'll do the right thing. Here's a screenshot to show you what I'm talking about:
How it worksThere are two new panes. The first one lets you enter standard application attributes that are useful for any desktop application. Things like the name and splashscreen. The second pane is for Web Start specific properties like the icon and codebase attribute. All you need to do in order to enable Web Start is click the appropriately titled Enable Web Start checkbox and it will do the rest. When you hit build the module will generate a JNLP automatically, including the jars in your classpath and the location of your main method. That's it. I love this module because it does the annoying work for you. The IDE already knows what jars I need and where my main class is. Now it can put all of that information to good use! Building a syntactically correct JNLP file without me lifting a finger. (Well, maybe just my mouse clicking finger). What I love about this module is the ability to get a running application up on a website very, very quickly. You can create a new project, put together a form, then press build to assemble everything in the dist directory. This includes the jar, .jnlp, splashscreen and icon images, and any support jars. It's a dream. I've even heard from the developer that he hopes to add support for deploying the Web Start app directly to your webserver. (no promises though) A note on SubversionOne thing to note about NetBeans 6.0 M7: the Subversion module requires Subversion 1.3 or greater to be installed on your computer. I upgraded to 1.3 manually several months ago, but the system default on Mac OS X 10.4 is still 1.2, so that's what NetBeans found. Rather than trying to modify your system wide path variable you can tell NetBeans the location of Subversion (or the correct version of Subversion) using the Subversion panel in the general options/preferences dialog. It's under Miscellaneous/Subversion. And thankfully you don't have to go to the advanced options to set it! So go check it out. Excellent Java Web Start support, new icons, and tons of other stuff. NetBeans 6.0 M7. First release of JSR 296Posted by joshy on January 30, 2007 at 04:08 PM | Permalink | Comments (5)Hans just announced the first prototype implementation of JSR 296, the Swing Application Framework. I'm very excited about this because it will make Swing applications a lot easier to build and more maintainable. I'm even more excited because we will have top notch support for JSR 296 in NetBeans 6.0. I know this because I'm one of the developers working on it. Our current work in NetBeans isn't very usable yet, but I thought I'd give you a few screenshots to let you see how it's developing. Using JSR 296 you can create actions from plain methods by using the @Action annotation. Once you have done this NetBeans can search through your application to find all actions and then let you edit them. There are three ways to work with Actions. First, you can select from a list of known actions in the property sheet (Fig 1)
Second you can press the '...' button to open the full Action Property Editor dialog.(Fig 2)
And finally you can use the global action list to see all actions and edit them. (Fig 3)
Coming soon, more Swing Labs updates! Rockin' 2007Posted by joshy on January 02, 2007 at 12:33 PM | Permalink | Comments (11)Well, the new year has come and my vacation is over. I the last three weeks I gave a way a bunch of projects, released the JXMapViewerApplet, I had my entire family fly to Oregon from all over the country, and got married to the beautiful Jennifer Greenup. I even got to stop for some coffee (see photo below). Not bad for a supposed vacation. So what does 2007 bring? For me personally, a lot less moving. I'm settled in Oregon now (still have to get a new license) which means that I can get back to SwingLabs and cool open source projects. For the Java world, 2007 is going to be an exciting place. Over the next year the community will begin to explore the possibilities revealed by open sourcing Java. I can't wait to see what happens. I'm also personally involved in several cool projects that we will develop and reveal over the course of this year. Here's just a quick preview of what's coming. Big changes in Swing Labs. I won't say any more. Instead I'll let Rich take the lead on this. Finishing up Painters and the JXMapViewer. This are both subprojects in Swing Labs that I have been very passionate about over the last year. As we put the final touches on version 1.0 I hope you will find some interesting things to do with them. I am particularly intrigued with the JXMapViewerApplet. If we can control the applet using Javascript then many interesting hacks become possible. I proposed several sessions for Java One, including a Birds of a Feather talk on Flying Saucer. This year I've taken a different approach. Rather than discussing how Flying Saucer works I will show how to use it in some real world applications; with PDF generation as the focus. Top notch support in NetBeans for JSRs 295 and 296, the Beans Binding and Application frameworks. We are homing in on final designs for a suite of new features that will make building client apps a breeze in NetBeans. Look for new builds over the coming months as we approach JavaOne. A top secret project. There's an idea I've had for a while that will finally come to fruition this year. This project is the reason I have been clearing my plate of other code and projects. I really feel the idea is so good it warrants spending all of my free time on it. Speaking of clearing my plate, there is one last code drop to give away. Look for it next week. So lets say goodbye to 2006 and look forward to all of the great things coming in 2007. It's going to be an exciting year! - Josh
Subversion Support in NetBeans 5.5Posted by joshy on December 18, 2006 at 09:40 AM | Permalink | Comments (4)I've been so busy with NetBeans 6.0 work that I haven't commented at all on NetBeans 5.5. We just went final about a month ago and had a big party in Prague. 5.5 is a big release, though most of the work is under the hood or on the server side and being a client side developer it doesn't affect me much.. The new Visual Web Pack is pretty nice though. There is one feature, however, that I am really excited about and that I use every day. Subversion support. With NetBeans 5.5 you can download Subversion support through the Module Update center, and it will be built in to NetBeans 6.0. So let's dive in. What is Subversion anyway? What is Subversion?Subversion is a version control system. It lets you set up a repository of that developers can use to share code and track changes to it. The most common one in the open source world is CVS. CVS is great because it's everywhere and has good tool support, but it has some serious flaws. Subversion was designed as a replacement for CVS, improving on it in pretty much every way. And, like CVS, it's completely open source and starting to get good tool support.Why is Subversion Awesome?Subversion is basically CVS with the bugs fixed and the sharp pointy bits rounded off. It improves upon CVS in pretty much every way while still keeping the same basic model. Here's just a few of the things that Subversion (also called SVN after it's 'svn' commandline program) get's right.
Why is NetBeans Subversion Support Awesome?Works like CVS. Previously Subversion support was an addon to the older versioning control system. Only CVS uses the modern API. Now Subversion does too, and it acts the same way. This makes switching between the two very easy. (very common when switching between java.net projects which can be either) Built in. For 5.5 you can download it from the update center and in 6.0 it will be built in (I use it every day, actually). Nothing extra required. You can still use the commandline. NetBeans acts like a good Subversion client, storing all of the versioning information in .svn directories. This means you can easily switch between the NetBeans client and the commandline version. For doing advanced Subversion tasks that aren't built into NetBeans this can be quite useful. For day to day use I say in NetBeans but it's nice to know that I could drop down to the command line if I need to. change visualization NetBeans will icon badge and change the color of every buffer you have open as well as the source files in your Project view. This lets you know at a glance what has changed. You can also use the Show Changes command to see a list of changed files project wide and compare it to the server. You can also call the Show Changes command on just a directory branch of the tree. I do this all the time when I want to update something in the painters part of swingx, but not the whole project. diff view NetBeans has a diff view which will show you both the server version and your current local version of any given file. When merging it will show you a third version at the bottom combining the changes of the two. You can use this tool to see what a merge will do. My only complaint is that you can't edit the file being diffed as I could in jEdit. I've been told that's coming in a future version, however. ConclusionSubversion really is a great tool. It provides almost everything I've ever wanted out of a revision control system. You can now choose Subversion instead of CVS when you create a java.net project, so it's great to finally have good support for it in NetBeans. You can learn more about the subversion support in Netbeans at http://subversion.netbeans.org/. Let me know what you think. What are you're favorite Subversion features and tips? Musings on the new opportunities that Open Source Java bringsPosted by joshy on November 12, 2006 at 11:25 PM | Permalink | Comments (7)I have often said that I don't love Java because I'm at Sun. I'm at Sun because I love Java. I love Java so much that I wanted to work at a place where I can do the most good for the Java community, and Sun is definitely that place. Now that Java is open source I think it means only good things. The big announcement today: Java will be open sourced under the GPL. I think it makes a lot of sense because it protects Sun's interest in preventing forks and also the community's interest in knowing that Java will forever be available in the public sphere. The GPL has always provided an option to fork just in case someone takes the code in a bad direction. Historically having this option available ensures that it never needs to actually be used, letting the community grow and thrive. So what does this actually mean? What is the benefit to open source Java? How will things change? Here's what I think will change and what won't. I say this as my own opinion, not an official statement from Sun. I also say this as someone new to Sun, coming to Sun two years ago from an open source background. I'm sure that engineers with more experience than I will have different opinions. So with that, let's hear it: How will open source change Java
Okay, so maybe that last one is a stretch, but it's true that this will help to bring More Java to More Places. So now we have a free runtime, competition between three groups to make the best IDE in the world, and a language that scales from cellphones to desktops to super-cluster-matrix-grids-thingy's. It's a good time to be a software developer! A nice Java evening with sour cherry beerPosted by joshy on November 12, 2006 at 03:38 AM | Permalink | Comments (0)After a several hour trek through Prague Castle and the Cathedral I arrived back at my hotel with around 400 photographs. It's going to take a while to go through them but here are some highlights. After the castle I had dinner with Sébastien Letélié and Doug Matthews, two Java developers who live here in Prague and contacted me through my blog. We got a chance to discuss the latest developments in Netbeans and open sourcing Java, as well as the history of the Hapsburg Empire and the fall of the communists. This discussion was aided by glasses of local sour cherry and coffee pivo (the Czech word for beer) I must say that no matter where I have gone, members of the Java community have been funny, intelligent, and very friendly. Perhaps Java really is the universal language. Thanks for a great dinner guys. That's it for this weekend. I'll have more to write next week. - Josh My first two weeks at NetbeansPosted by joshy on November 09, 2006 at 02:35 AM | Permalink | Comments (8)Greetings from Prague. I've been at Netbeans for about two weeks now and it's been quite a busy time. I think I'm really going to like it here. Everyone is very friendly, the city is beautiful, and they have excellent and cheap beer (cheaper than soda!). I know you are all busy, so for the speed readers in the group I've bolded the important bits. So what have I been working on? For starters, I have fixed my first two bugs in Matisse: Drop target is painted on the wrong order for Flow Layout and Improve retrieval of BeanInfos. Fixing a few bugs has been a great way to learn the codebase and get to know the team. When you click on the bug links be sure to note the new look of the website. Being a fan of good design I'm very happy that the pages look so much cleaner. So what will I be doing for NetBeans? While I will no doubt be poking my head into lots of areas, my main task is working on Matisse. In particular, I am helping to add support for the Swing Application Framework, aka: JSR 296. I was already on the JSR expert group so that made me a perfect fit to work on Matisse. I'll have another blog with details on what we are doing, but for now I'll just say that this will make the common tasks of dealing with resources, strings, and actions ridiculously easy. In particular I will be working on the new Actions support, so look for design discussions over the next few weeks. I should mention something at this point. It's ironic that I now work in NetBeans because until the last year or so I hated IDEs. As a diehard text editor user I started with Pico, graduated to Emacs, and eventually JEdit (when I figured out that no one hacks on Lisp anymore). I never liked IDEs because it felt like the got in the way, hid important details, and didn't really let me do anything new. Debugging is what println's are for. All of that changed when I first saw Matisse, the NetBeans visual GUI builder. Matisse let me build screens that are qualitatively better than anything I could ever do with GridBagLayout or other layout tools. Not only does it make the screens look better by using proper insets, I can also produce layouts in a tenth the time. This means that I am more likely to improve the layout, taking it through several iterations and show the results to other. This is what makes it such a great tool. After getting hooked on Matisse I began trying other features of the IDE. Refactoring in particular impressed me. I have played around with the new editor and refactoring tools coming in NetBeans 6 and I'm very excited about them. A lot of long standing problems will be fixed, and most importantly the NetBeans 6 editor will be very fast! Well, I've got get back to work on some design docs. In the meantime I'll leave you with a few photographs from my weekend trip to Cesky Krumlov (sp?) with the NetBeans evangelist team. Since I don't want to bore you with a constant travelog I think I'll just include a few photos in each blog entry until I run out. Since I've already taken about 800 shots, I've got a lot of blogging to do. Enjoy! - Josh Java people in PraguePosted by joshy on October 28, 2006 at 02:00 AM | Permalink | Comments (4)If there is any other Java people living in the Prague area who would like to go out for dinner, drinks, or do some general site seeing then just let me know. I'm going to be here for three more weeks and I don't know anyone yet. I'm reading through my Rough Guide book and it looks like there's lots of cool things to see here. Thanks! I'm getting married, leaving the Swing Team, and flying to PraguePosted by joshy on October 26, 2006 at 01:03 PM | Permalink | Comments (23)It's true. I'm leaving the Swing team. But don't worry, I'm not leaving Sun. I'm joining the Netbeans team, flying to Prague, moving to Oregon; oh, and I'm getting married! I asked the wonderful woman named Jennifer Greenup to marry me last night, and amazingly she said yes! I will be moving up to beautiful Eugene, Oregon as soon as I get back from my trip. So. After a great two years on the Swing team I've decided that the core libraries are pretty good and now we need to focus on tools. And what better tool is there than NetBeans. I will be working on Matisse, the app framework, and probably many other things. I think my Swing expertise will bring a lot to the team. I also think they will have a lot to teach me about tools and module design. Most importantly I will get to work on a tool that will have the biggest impact on Desktop Java. Flex, AJAX, and .NET are getting better and better. I think that NetBeans is the tool that will make building desktop Java apps as fast, reliable, and pretty as anything those other guys can build. To start my new role off right Sun is sending me to Prague in the Czech Republic for four weeks. By the time you read this I will most likely be somewhere over the North Atlantic. Next week I will meet the team, show them what I've been doing for Swing and the SwingLabs, learn more about the innards of NetBeans, and of course spend some time enjoying central Europe. Don't worry. My transition from Swing to NetBeans won't change anything here on Java.net. I will still be heavily involved in SwingLabs (particularly Painters and Animation) and will continue to work on my blog. It does mean my article writing and other projects will slow down (more on that in a future post). As always I will have two blogs. One here for all of my Java and geeky writings, and my personal site at http://joshy.org, which exists primarily for my mom and dad to know where I've flown to this week. Since I have always had a desire to be a better photographer, both for the satisfaction of creating pretty photos and also to learn useful skills for designing attractive UIs, I have finally purchased a better camera. Last week I bought a new Nikon D50 SLR camera along with an amazingly crisp 50mm fixed lens. So far the photographs are great (there's a few here on my Flickr site) and I look forward to seeing what it can do in Prague. So stay tuned. More great stuff is coming. - Joshua updateAs requested, here's a recent photo of us picking out pumpkins. It was bright out! Once more Matisse RocksPosted by joshy on March 09, 2006 at 01:47 PM | Permalink | Comments (1)I would just like to say that I'm more and more impressed with Matisse. It does it's absolute best to provide a realistic preview of running components at design time. Today I was building some component tests and was amazed to see that indeterminate progress bars are animated while in the designer! Have a look!
| ||
|
|