Showing posts with label eclipse. Show all posts
Showing posts with label eclipse. Show all posts

Monday, November 02, 2009

Mo, Mo, Mo, Movember

What started out as a crazy idea on Friday afternoon, with a little encouragement from Kevin Barnes, is starting to take off. We now have an Official Eclipse Mommitter team -- a team of Eclipse contributors who plan on growing Mustaches during the month of Movember to raise awareness (and funds) for men's health issues.

But if you're reading this blog it means you're interested in Eclipse and you are encouraged to join the team. In fact, I would like to put a challenge out there: let's try and get 20 people to join the Eclipse Mommitters (no voting needed). Considering there are close to 1,000 committers, 20 people is only 2% of that population. Considering the release train is known to have a few million users, that's less than 0.002%! It would also be cool to get at least one committer from each top level project. (And someone from the Foundation too).

Since November has already started (it's likely November 2nd when your reading this) we have to act quick. There are a few things you must do:
  1. Checkout www.movember.com
  2. Join the team: http://www.movember.com/register/44681. If the link doesn't work, search www.movember.com for the team Eclipse Mommitters
  3. Run home and shave (no head starts)
  4. Start raising a few bucks and a ton of awareness
Our awesome Eclipse Release Engineers are considering using our Mommitters logo during one of the integration builds to help raise awareness too -- You could be part of Eclipse history!

No doubt you have a few questions, so here are answers to some of the more common questions:

What is Movember?

Movember (the month formerly known as November) is a moustache growing charity event held during November each year that raises funds and awareness for men's health.

At the start of Movember guys register with a clean shaven face. The Movember participants, known as Mo Bros, have the remainder of the month to grow and groom their Mo, raising money along the way to benefit men's health. -- In Canada we are raising funds for prostate cancer, however, different countries are raising funds for local charities related to men's health.

How can women get involved?
While growing a Mo is left to the guys, Mo Sistas do a lot of important work for Movember. Mo Sistas can get involved by:
  • Registering online, recruiting a team and raising money
  • Organising events like Mo Parties
  • Making a donation to a Mo Bro
  • Supporting and showing love for the Mo
I already have a Mo - how can I participate?
If you already have a Mo you can do a ‘reverse Movember’ and have people donate to you to shave it off. Alternatively, you could shave off your moustache at the start of Movember and then re-grow your Mo throughout the month…. Maybe it’s time to try a new Mo style?

Are goatees or beards allowed?
The definition of a Moustache:
  1. There is to be no joining of the Mo to side burns – That’s a beard.
  2. There is to be no joining of the handlebars – That’s a goatee.
  3. A small complimentary growth under the bottom lip is allowed (aka a tickler).
Remember, it’s Movember, not ‘Beardvember’ or ‘Goateevember’

Sunday, January 11, 2009

Welcome Lily

If finishing school, buying a house and starting a job wasn't enough excitement, on Friday my wife gave birth to our second daughter, Lily Marie Bull.   Lily weighed in at 8lbs 7oz, and is already starting to understand the complexities of Graph Visualization, Modeling and of course, p2. :)  Both Tricia and Lily are doing Great!

Friday, November 21, 2008

Curved Connections

Pop Quiz: How many connections exist between Node 1 and Node 2?



Since connections are drawn on top of one another, it is not always easy to tell. This is a problem that many people using Zest have faced. To assist with this, I have added a new API on GraphConnection. You can now call GraphConnection#setDepth to curve the connections.



GraphSnippet11 shows how this API can be used. I still have to add the functionality to the JFace viewer, but the functionality should be there by the time M4 comes out.

Tuesday, October 14, 2008

Thanksgiving

Last weekend was thanksgiving in Canada, a chance to enjoy a great turkey dinner (by candle light in Victoria), take a day off of work, and kick off the new NHL season (Go Leafs Go!). This year I have a lot to give thanks for. Not only did my wife and I celebrate our 5th wedding anniversary and my daughter celebrated her first birthday, we also found out that we are expecting our second child (ETA January 2009). As well, on July 9th I successfully defended my PhD, bringing 13 years of computer science education to an end.

I started studying computer science in 1995 at the University of Waterloo. Throughout my undergraduate degree I had a chance to work at some pretty cool places, including Manulife Financial, ATI Technologies, and Trilogy Software. In 2000, when most of my friends were heading off to industry to take advantage of everything the dot-com boom had to offer, I decided to head back to Waterloo for a Master's degree. I studied reverse engineering under Dr. Andrew Malton in the Software Architecture Group (SWAG). I completed my Master's in 2002 and in 2003 I headed west. Landing in Victoria, I decided to start a PhD with the Computer Human Interaction and Software Engineering Lab (CHISEL) under the supervision of Dr. Margaret-Anne (Peggy) Storey. I could not imagine working for a more encouraging supervisor. Peggy, your kindness and enthusiasm will never be forgotten. In addition to studying at UVic, I was also given the opportunity to work with the IBM Centre for Advanced Studies (CAS). My IBM mentor was Ed Merks.

Now, after 13 years of school, I am finally heading out to the "real-world". Because of the enthusiastic community and great technology, I have decided to take a job that will bring me even closer to Eclipse. I will be working with Jeff, Chris and Scott at Code 9. I will be spending some time doing Zest development, but this job will also bring me much closer to Equinox and the Eclipse run-time space. I will be transitioning throughout the fall as I am still teaching a course at UVic and finishing off a few projects. I'm looking forward to working with all of you!

Friday, September 05, 2008

GWT and OSGi

A number of people have asked me how I configured GWT and OSGi. Some detailed steps are available here, however, following wiki pages is not always the easiest thing. I have created a small "hello, world" example. You can get the projects here.

To use this, simply import the zip file into eclipse: (File->Import, select Existing Projects into Workspace).



Once it is imported, you should have 3 projects in your eclipse workspace:
The GWT project is simply the GWT jars wrapped in a bundle.

The client project is the client side code, and the server project is the servlet we use (it simply returns the word "World" to complete Hello, World.)



I have included an external tool to compile the client side code. Make sure you select com.example.gwtclient ant_build.xml in the external tools list.



After this runs, you should refresh your workspace (press F5). Under the com.example.gwtclient you should have www directory.

Finally, you can use the provided launch configuration to actually launch OSGi, the Jetty engine and the servlets. To do this, go to Run Configurations..., and select GWT Example Launch.



This will launch the Jetty server on port 80. If you want to change this, go to the Arguments tab and set -Dorg.osgi.service.http.port=8080 in the VM arguments.

Once running, simply hit: http://localhost/index.html



If anyone is interested, we could extend this and make it part of the Eclipse Examples project. However, there may be some licensing issues as it currently includes the GWT jars.

Thursday, May 22, 2008

A p2 Success Story

With all the good / bad and the ugly posted about p2 lately, I thought I would share a positive experience I had today with Eclipse, Modeling and p2.

It all started when I saw a new video about ECore tools. If you haven't seen ECore tools, and you are a fan of EMF, you really should check it out. (It will likely be featured in my Ganymede Top 10 List). After the video I decided to take ECore tools for test run.

1. Grabbed the latest Ganymede milestone for modelers.

2. I launched Eclipse and tried to create an Ecore Diagram (using Ecore tools)

Problerm: the Ganymede package for modelers doesn't contain ECore tools.

3. I launched Help->Software Updates and searched for ECore tools



4. Ok, no ECore tools... So I selected "Manage Sites" and selected the Ganymede Site



5. Now when I search for ECore tools, p2 returns some Installable Units



6. After selecting Install, and accepting the license, Eclipse suggested I restart



7. And in less than 5 minutes, I was up and running with ECore tools.



While I realize that there are still bugs / features / requests outstanding, this was the first time in all the simultaneous releases that it truly felt like I could just point at a piece of software, and have it up and running without worrying about dependencies, 3-5 minutes to load the UM, broken connections, etc...

I know p2 doesn't work for everyone, but the negative comments often seem to overshadow the positive ones, so I thought I would share with everyone the good experience I had.

Note: I did not write this to start a war, or downplay the problems people are having; this was simply my experience today.

Tuesday, April 01, 2008

Revoke Ed and Chris's Commit Rights! NOW!

I would like to request that the commit right's of Ed Merks and Chris Aniszczyk be revoked immediately. At the past two EclipseCon's these two managed to each win both the Top Ambassador and Top Committer awards, two of the three voted on Eclipse individual awards.

If either of them hopes to win all three awards, the Triple Crown of Eclipse Awards so-to-speak, or the Eclipse Awards Grand Slam if you prefer, one of them will have to win Top Contributor next year! This will be tough as both of them are such avid committers. It may be easier for them to battle for this final award if they both have to submit patches for each change they wish to make.

Of course, if we strip of them of their commit rights the evolution of PDE and EMF may slow, but really, who uses these technologies anyways? :-)

In all seriousness, congratulations Ed and Chris, and to Remy Suen (Winner of this years top contributor awards) and Eric Rizzo (Winner of top Newcomer Evangelist).

Monday, March 17, 2008

Why I haven't changed my language!

There was a very interesting question posted on TheServerSide, "What would make you change languages?" and for me the answer is simple, Tool Support. I have used Groovy and it was kinda neat, but content assist didn't work very well. Possibly because of some bugs or maybe the language is just too dynamic to fully support this feature. I have used JavaScript and 3 of us spent a 1/2 hour tracking down a extra character (we tried to call a method Foo=(arg1, arg2)), bad place to put an equal sign.

Back in my undergraduate days, life was simple. All I needed was vi and a command line. I was happy and I figured if you needed a tool to do your job then you were never going to be a "real" software engineer. Seven years later (and the Eclipse influence) this has changed. What does looking up a method signature somewhere really do for me? What does spending my time tracking down a runtime error that really should have been caught at compile time accomplish?

Sure, a lot of new languages have shorter syntax for common operations, all intended to save me a few keystrokes. Let's count:

var person = new Person; (about 15 keystrokes)
Person person = new Person(); (about 10 keystrokes)

See, with proper tool support I would use content assist and type P(content-assist) p(content-assist) = (content-assist) P(content-assist);[enter].

And it is not just content assist. It is refactoring, search, navigation, debugging, analysis and collaboration. It seems that some languages are easier to write tools for than others. Java and Javascript are almost the same age; why isn't there top notch tooling for Javascript (something like the JDT)?

I'll continue to try out new languages, but without excellent tool support, I'm not changing languages anytime soon.

Anyways, to each their own!

Friday, March 07, 2008

Small GWT / OSGi Problem

I thought I would document a small problem I had today in case others ran into the same issue.

If anyone has been to my website you know it's not that exciting. A few links, a picture or two and links to my blog. What is exciting (for me at least), is how I built it. My website is actually an OSGi engine (Equinox) with a Jetty bundle to serve up the pages, a small EMF model in the back end (to hold some links), and GWT to tie it all together. To be clear, this is overkill!!! But I enjoyed setting it up and I learned a bunch!

Now the problem. Today I decided to see if I could modify things on my site (both client and server side) and update it using the OSGi update command. (With P2 on its way this seems like a cool thing to do). However, after I did the update *BOOM* GWT died.

It turns out that GWT does some server side security checks and they use the classloader attached to the current thread to do them. However, this doesn't play very well with OSGi. To fix this I added:

Thread.currentThread().setContextClassLoader( MyActivator.getDefault().getClass().getClassLoader() );

This way, the same class loader that loaded my activator will be used when GWT does its security checks.

I'm not sure if this is the best way to fix this, so if anyone else has suggestions I'll try them out and let you know how they work. Also, I found this bug after I sorted all this out :).

Thursday, November 15, 2007

Eclipse and Web Technologies

The news yesterday by Denis regarding Babel is terrific. Globalizing Eclipse through a community driven approach seems so obvious, yet somehow so novel. However, the choice of technology (LAMP: Linux, Apache, MySQL, Php / Perl / Python) caught my eye. LAMP seems to be one of the most common application stacks (the Microsoft stack being the other one).


Where does OSGi / Java / Jetty (and possibly GWT, I call this J-JOG) fit in here? Is there a reason why this configuration is not even mentioned in the alternatives section on Wikipedia's Lamp article? Is there something fundamentally wrong with this setup (scalability, performance, stability) or is it simply a matter of preference?


This is not meant to start a flame war, and I am by no means questing the choice of technology, I'm honestly just curious.