-
Installing Scala plugin for Eclipse 3.3
-
I don't recall having a problem installing the Scala plugin on my old (Windows) laptop, but I got a new one and started migrating things over this week. In order to get the Scala plugin to install, I had to install the Eclipse plugin development environment. I was happy to have found this blog post, which explained what to do to get around the error ("org.eclipse.pde.runtime is missing"). So I guess I must have either had 3.2 installed on that machine (it's been upgraded to 3.3 now), or I had a more complete install. All's well now, whew!
-
Lightning Talks tomorrow 2/1/08 ... weather permitting
-
The weather forecast is for lots of snow, but if the forecast is wrong, then we'll have lightning talks.
Nate (our intern) is planning to talk about what he's learned about Google checkout. I had him doing a research project for event registration. He coded up a PHP script to manage it, and checked in the code. I can't wait to hear his talk.
Chris is planning to talk about a project he did using XNA.
I don't know who else will be there, but I'll continue with another segment on Scala. Bill will certainly do something.
Lightning talks are free and open to the public. So if the weather is decent, we'll go from 3-5 pm. See you there.
-
C# Jam early bird deadline is tomorrow ...
-
Bruce Eckel has put together another Jam event for the Ann Arbor area. This one is on C#, and will feature authors Jamie King (who is co-authoring a book with Bruce on C#) and Bill Wagner (who is working on "More Effective C#" as a follow-on to his previous 2 C# books).
Here's "What is a Jam" from Bruce's registration page:
A software jam is a lab-based workshop experience, where you can:
Decide if you want to work on your own projects or work on the supplied programming exercises.
Work alone or in a group.
Set your own pace, so that you can "go deep" in areas that are important to you.
Get guidance from an instructor, as needed.
Although the format is different than what you may be used to, we've found that people
seem to learn a lot more than they do in traditional seminars.
I have to agree. I've attended several Jam events and found them to be great learning experiences. Bruce is going to come if attendance warrants an assistant. Jamie and Bill are the experts (but, of course, Bruce is no slouch either).
If you're planning to attend, sign up by tomorrow or miss the early bird deadline. http://www.mindviewinc.com/Conferences/CSharp3Jam/Index.php
-
Bruce Eckel blogs about CodeMash ...
-
Bruce Eckel blogged about CodeMash and the reward of community-based conferences. I'm glad that he and many others have reported a positive experience at CodeMash. It really does make all of the work in organizing such an event seem more worthwhile. I have to admit that about a month before the event, it's easy to sit back and think, "Sheesh! Maybe we should have some professionals do this instead!". But, when it comes down to it, I think that developers know what other developers want to see in a conference and if we strive for that, the conference will continue to be successful. As Bruce pointed out, for CodeMash, it's not about making a profit. In fact, having the added stress of HAVING to make a profit would be unthinkable. Heck, we're stressed just trying to make sure that we don't lose our shirts and we're thrilled that the community has embraced the conference! And, it's a conference that *I* want to attend, and the people that I know want to attend. So yeah, it's worth it.
Coincidentally, just today I ran across a post on the Java Posse google group from a Posse listener who missed CodeMash and was hoping that there was another event coming up with the same talks and same speakers. I'm sorry (and pleased, at the same time!) to say, "Nope! It's a one of a kind event." He promises that we'll see him at CodeMash in '09. Cool.
-
PyCon registration is open
-
PyCon will be held in Chicago from March 14-16 (with tutorials on the 13th and sprints afterward). Registration is now open at http://us.pycon.org/2008/registration/new/
The tutorials and sessions both look great, and there are also lightning talks and open spaces. I'm even hoping to lure my scientist husband into attendance. He has looked at Python about a year ago and liked it. He's not a programmer, but he did some programming in Pascal in college and briefly looked at C++ a few years ago. He said that Python was the most understandable of the languages he has seen. This seems to be a common reaction from scientists, and so I'm hoping that he will go and learn more. He may even end up using it at work someday!
It's great having a conference like this in the Midwest, and I have already signed up. I seem to recall that the conference filled up last year (in Dallas). I didn't want to miss out.
-
So what IS Scala?
-
The question a lot of people have been asking lately is "What is Scala and why do I care?". The short and sweet answer is that Scala is an object-oriented/functional hybrid that runs on the Java Virtual Machine (JVM). This is interesting because it can harness the full power of the JVM, including bringing in Java libraries.
And you care because concurrency is hard to get right. It's hard in Java and it's hard in C# (I hope you got to see Brian Goetz's talk at CodeMash). It's hard because writing multithreaded programs with our current programming model is hard. Deadlock is hard to detect and hard to protect against. Until now, we've been shielded a bit from the dangers that lurk by single processor machines. We were writing multithreaded programs that might be interrupted, but often weren't. But now, you can't really even buy a single processor machine. It's compelling to take full advantage of the hardware that you have just bought, and all of those little mistakes that you made previously in multithreaded programs may bite you as well.
So we had better figure this thing out. Erlang's good for concurrency but most people aren't really adept at programming in a purely functional language. And we have reaped benefits from object-oriented programming, so it's interesting to combine the two in such a way that we can use the functional programming aspects to gain better concurrency without walking away from the productivity gains that we have made with object-oriented programming.
If you still care, check back in. I'll pump out some Scala blog posts in the upcoming weeks, conveying what I have learned about the language and how I feel about it. I like it but I'm not jumping to Scala for anything other than personal interest right now. This is a stage of investigation. It may well turn out to be a language that I want to use for development, but I'm not committing to it yet. Even Brian Goetz agrees that Scala and F# may not be "the" answer but may be a stepping stone along the path to more multiparadigm languages [CodeMash quote]. If you are anxious to get started, read the Artima article, "First Steps to Scala" and listen to podcasts with Scala creator Martin Odersky on Software Engineering Radio and on The Java Posse. If you're still hanging on, then definitely buy and read the "Scala Programming Language" book.
-
Brian Goetz Captures the Essence of CodeMash
-
The whole idea behind CodeMash is to get people to learn something about languages, platforms, etc. that they don't typically use for programming, to "free their minds". I was thrilled to hear Brian Goetz express that sentiment in such a positive manner, in his interview with Chris Woodruff on the CodeMash podcast. Here's the quote:
"If you're able to program effectively in multiple languages, the space
of designs that you can imagine is correspondingly greater, and knowing
something about another language makes you a better programmer in the
language that you are programming with because there are concepts and
idioms that you may be able to borrow from. And so, I think it's a
really exciting time because languages are interesting again and it's
not a completely dead end activity to learn a new language that may not
be popular yet." He also said that he came to CodeMash because "this conference embraces the diversity in programming languages, unlike other conferences that are focused on Java or focused on .NET".
Earlier in the interview, they had been discussing the interest in new languages such as F# and Scala, and Brian mentioned how thrilled he is that we have exited from the "dark age" where people programmed in only one language and didn't really delve into others. Brian
explained that he doesn't necessarily believe that
either F# or Scala is the "solution" to the concurrency problem, but
that they may lead to other developments in hybrid languages that
ultimately make their way into mainstream programming. That is definitely a reasonable consideration.
-
Rod Johnson/Spring at the Central Ohio Java User Group on January 24
-
Our friends in Columbus, OH will host Rod Johnson on Thursday, January 24, from 6-8 pm.
Rod is the creator of Spring and a hero to many in the J2EE community
for giving them an alternative to EJBs. Rod will discuss new features
in Spring 2.5. If you're ANYWHERE near Columbus, I think it's worth
stopping by. I'm disappointed that I won't be able to make it! I
would definitely venture deep into Buckeye territory for that talk.
-
Rich Internet Application Jam: Silverlight and Flex
-
Last week, James Ward (Adobe), Josh Holmes (Microsoft), and Bruce Eckel (well, Bruce Eckel!) conducted a Rich Internet Application Jam
at our office. This was NOT a competitive event. Rather, in the spirit
of CodeMash, people came together to learn about competing technologies
in a cooperative manner. Each attendee decided which technologies to
explore, and how much time to spend on them. Most of the attendees
were interested in Flex, but Silverlight was represented as well. And
of course, the Jam included discussions of the strengths of each. It
appears that Flex has strong support for controls, yet to be provided
in Silverlight. Silverlight shines in its support of vector graphics,
which Flex doesn't currently provide.
I spent some time
looking at the AdvancedDataGrid in Flex 3. One of the attendees had a
customer requirement for a lot of grid data, including summaries and
rollups. The advanced data grid supported what he needed to do, using
a combination of summary rows and groupings. On the summary rows, he
was able to choose one of five functions that are baked into the
advanced data grid: min, max, average, count, and sum. Nice! If
you're interested in this, note that the documentation is apparently
not available in the Flex 3 docs that are downloaded, but is available
online. Sreenivas Ramaswamy's blog has a nice writeup about this control (and others!).
Andy Beaulieu's site has a cool Silverlight demo.
If you enter an address for which there is Virtual Earth data, you can
play a game that allows you to destroy UFO's while flying over that
address. Impressive!
Once again, I was impressed by the Jam
format. With Bruce, James, and Josh to help people over any rough
spots, attendees were able to work on exercises that interested them,
and spend as much time as they needed on any particular task. I like
this better than the typical situation where a class is in lock step
for exercises, and individual attendees are either sitting around
waiting for someone to finish, or frantically trying to rush through so
that everyone else can move on. And these people were able to focus on
using the technology in a way that is meaningful for their purposes,
but have the support of an expert right there.
The attendees seemed to enjoy themselves and learn a lot. I can't wait til our next Jam: it's a C# Jam with Bill Wagner, Jamie King, and Bruce Eckel.
It will be held at our office April 8-11. Bruce and Jamie are working
on a C# book, and Bill's working on his 3rd C# book. This Jam will
focus on C# 3.0 and its new language features. The early bird
deadline for that event is January 31.
-
Day 1 of the RIA Jam ... and RIA at Special User Group meeting tomorrow
-
Today was the first day for the Rich Internet Application Jam, being held at SRT Solutions' offices. James Ward (Adobe) and Bruce Eckel are here, working side-by-side with people who are in various stages of learning Flex and Josh Holmes (Microsoft) is here representing Silverlight and working with people interested in that. The Jam goes through Wednesday.
Tomorrow night (Tuesday January 15), James and Bruce will present a talk, "Connecting Java
with Flex using Open Source Blaze". The discussion will include how Blaze differs from LiveCycle Data Services and perhaps
even a little bit of Scala.
You see, James spent some time this past weekend connecting Flex to Scala. Interesting.
This is a special joint meeting of the Ann Arbor Computer
Society and Ann Arbor Java User Group, and will be held at 206 S. Fifth Ave, Suite 200,
Ann Arbor, MI 48104. The meeting starts at 6 pm, and is free and open to the
public. AACS is providing pizza.
-
Python Underground, Scala, and Blaze: oh my!
-
We have several free events coming up at SRT.
On Thursday, January 3, at 7 pm is the monthly Michigan Python User Group meeting. Discussions will likely center around a project called Python Underground and I've heard rumors of a discussion of the Rails is a Ghetto blog post by Zed Shaw.
This Friday, January 4, we will hold lightning talks from 3-5. Anyone is welcome to attend (and speak for 10 minute segments). I'll be doing a talk on Scala, a preview of a section of my upcoming CodeMash talk.
On Tuesday, January 15, James Ward (from Adobe) and Bruce Eckel (Java guru) will present "Connecting Java with Flex using Open Source Blaze" for a joint meeting of the Ann Arbor Computer Society/Ann Arbor Java User Group.
And, some for-fee events in the area as well:
CodeMash is, of course, Jan 10-11 (and the evening of the 9th) in Sandusky, OH at the Kalahari Resort and Indoor Water Park. If you are planning to attend, register SOON at $175 for the 2.5 days to avoid the procrastinator fee (of $250).
And the Rich Internet Application Jam will be held at SRT's offices, from January 14-16. Early bird registration goes through January 4, so register before then to save $100 from the $500 fee. Note: the registration fee includes a copy of FlexBuilder.