Category Archives: Technology

Atomic Scala: Splitting an Atom today

Ah, one of the fun things about the title for our book, Atomic Scala, is that I smile whenever I get to say that I’m “splitting an atom”. For one thing, it’s fun to say. For another, it means that we’re simplifying the concepts in the book even further.

You can read about how I’m splitting Values and Data Types into 2 atoms, and how that might mean including the content from Type Inference earlier in the book.

Atomic Scala: A Book Gets Written

 I liked Scala at first glance several years ago, and thought it was a huge improvement over Java. Unfortunately, it suffered from what I like to call “Early Adopter Syndrome”. The early adopters of the language were attracted to its terseness and its flexibility. The combination made the language seem really difficult. It didn’t have to be that way, and I was convinced that it would be a good language for beginners. So, about a year and a half ago, I mentioned to my friend Bruce Eckel that I was thinking of writing a book on Scala. He’s written several very popular programming language books, and I wanted his opinion.
After about a minute pause, Bruce said, “I would like to help you write that book”.
I have some very kind and generous friends. I wasn’t angling for that — but I was floored by the offer. His books are some of the best in the industry. I knew that I had much to learn; I just didn’t know how much! Bruce has kept me focused, pushed me toward simplification, and I have grown in numerous ways as a writer and as a developer because of his generosity. Bruce is in Colorado; I’m in Michigan. Technology (in particular, Google Docs) has made co-authoring this book possible.
The book is now at a point where we think we will benefit from people “testing it out” and where beginners in Scala can benefit from the very small steps (atoms) that make up the book. We named the book Atomic Scala to reflect this and it’s been a lot of fun “splitting atoms” when we felt like we have represented more than one concept at a time.

In October, we will be presenting a weeklong seminar from the book. We will put it to the test with attendees, and we are convinced that this exercise will help us to remove complexities that we no longer see. The seminar will be hands-on, based on exercises from the book. We have targeted our book at beginning Scala programmers, and we feel that completion of the course will put folks in a great position to follow up with Escalate Software’s Scala training from Bill Venners and Dick Wall and/or other, more advanced books.

The seminar will be exciting for me in another way. We’re going to do a print on demand “early access” run for the book, so that we can give one to each attendee. To date, our editing has been in Google Docs, and it’s hard to envision what it will look like in print. We will have an eBook version as well, of course, but I’ve seen those. I will be thrilled to get my hand on a print copy.

We have an active group of reviewers. Google Docs added a commenting feature recently, which allows us to give commenting permission (but not editing permission) as a sharing option. With this, our reviewers can add comments to the document. They can also actually see us editing (cursor moving, backspacing, rewriting sentences)! It’s a fun way to write a book.

So, when will it be done? Well, that’s a good question, one my family, business partner, and employees ask often. We expect it to be done later this year. But what I typically tell people is that it will be done when Bruce says it’s done. (That’s a compliment, Bruce. I really do trust your judgment on this!)

You can learn more about the book and upcoming seminars from our book website.

Ann Arbor Scala Enthusiasts: meeting is ON!

Have you wondered what all of the fuss is about with Scala? Or are you already sold and just want to hang out with like-minded folks?

Join us for an organizational meeting for this new user group as well as an open discussion on “Why Scala?”.

The meeting will start at 6 pm on Wednesday, August 15, at SRT Solutions. Everyone is welcome — the meeting is free and open to the public.

We’ll have some ceasar salad and cold sandwiches as well as some cookies. Feel free to bring something else if you like. I’m looking forward to it!

SRT Solutions is located at 206 S. Fifth Avenue, Suite 200, Ann Arbor, MI 48104. The closest parking structures are at 4th & Washington or 5th & Liberty. Street parking (metered spots) is free after 6, if you can find a space.

Ann Arbor Scala Enthusiasts to meet August 15 at SRT Solutions

A week ago I posted to see if there was interest in a new developer group in Ann Arbor, dedicated to the Scala programming language. It appears that there is indeed interest, both from attendees and potential speakers.

We will meet at 6 pm on August 15 at SRT Solutions for an organizational meeting and for an open discussion on “Why Scala?”. Regular meetings will be held on the 3rd Wednesday of each month, starting with September. It would be great if we had a schedule for talks or workshops (depending on what folks want) by the time we leave the August meeting.

Join us! The meetings will be free and open to the public. We’ll take a donation for food starting in September.

FYI: Scala is a general purpose language on the Java Virtual Machine. Combining functional and object oriented programming, Scala offers powerful expression that allows developers to focus on solving problems with software rather than being distracted by boilerplate code. Particularly with recent announcements that features expected in Java in 2013 are being pushed back, languages such as Scala are attractive alternatives.

SRT Solutions is located at 206 S. Fifth Avenue, Suite 200 in downtown Ann Arbor. The office is at the corner of Fifth and Washington, with the entrance from Fifth. Take the elevator or stairs to the 2nd floor. Nearest parking structures are at Fourth & Washington or Fifth & Liberty.

 

Gauging interest for Ann Arbor Scala Enthusiasts

Scala is a general purpose language on the Java Virtual Machine. Combining functional and object oriented programming, Scala offers powerful expression that allows developers to focus on solving problems with software rather than being distracted by boilerplate code. Particularly with recent announcements that features expected in Java in 2013 are being pushed back, languages such as Scala are attractive alternatives.

I’ve been playing around with Scala for several years, have been deeply involved with the Scala Koans open source project, and am nearing completion on a introductory book on Scala, co-authored with Bruce Eckel. And while I see a lot of enthusiasm for Scala throughout the country, I would love to see more enthusiasm in Michigan and the Midwest.  That’s my motivation for starting the Ann Arbor Scala Enthusiasts group.

I’m thinking about the 3rd Wednesday of each month, starting August 15, at 6 pm. I would hold the meetings in our meeting space, at SRT Solutions, 206 S. Fifth Ave., Suite 200, Ann Arbor, MI. That’s at the corner of Fifth and Washington, in downtown Ann Arbor. The closest parking structures are at 4th and Washington, and 5th and Liberty (the new, underground library lot).

I would strive for a mix of local and national speakers on a variety of Scala topics, possibly including the following:

  • Why Scala?
  • Scala for Java Developers
  • Play Web Framework
  • Scala as a First Language
  • Developer Tools for Scala
and I would look to the community for additional suggestions and speakers. If the group is small, we could do some hands-on learning and experimenting with Scala.

So — is there interest? Once I know the answer to that question, I will start dealing with the practical concerns, like funding (starving developers arriving at a meeting just after work is never a pretty sight). If there’s any interest at all, I think that I will schedule the August 15 meeting to continue this discussion and for an open discussion on “Why Scala”.  Summer attendance is typically fairly light, but I would love to get this group kicked off as soon as possible.

Please post comments here!

Books and Conferences and Blogging, oh my!

Long time, no blog. I’ve been putting all of my writing energy into the book that I’m writing with Bruce Eckel. We’re working on Atomic Scala, a book targeted at a gentle introduction to Scala, for programmers and not-yet-programmers alike. If you like the language, we expect that the book will prepare you for a more comprehensive book.

If you want to experience what we’re working on, Bruce and I will be holding a 4-day workshop, “A Gentle Introduction to Scala” in Crested Butte, CO from July 18-21. We’re limiting attendance to 8 people for now, and holding it in Bruce’s living room.  The goal is to gently introduce the workshop attendees to the language through a series of discussion-y type interactions based on the book and exercises that we’ve developed. We will gain valuable feedback about the book and we hope that the attendees will become comfortable enough with the language that they can decide if they want to pursue its study or not.

We decided to do a social experiment on pricing the Atomic Scala workshop. Inspired by the Humble Bundle folks, we’re letting the attendees decide how much they want to pay. We set a minimum ($75) and show how other open spaces conferences have been priced for comparison sake. Unlike the Humble Bundle folks, we didn’t write any cool code to show how much above or below the average people are paying, or separate it out by platform, and we didn’t throw in any bonuses for paying above average. Frankly, the numbers are just to small for that to be meaningful in this case. But we are looking forward to seeing how people respond to “pay-by-worth”.

Immediately before the Scala workshop, I will be presenting the Scala Koans with Daniel Hinojosa at OSCON, in Portland, OR. I’m really looking forward to the conference. I haven’t been to Portland in quite a while, and I’ve never been to OSCON. The koans will be presented on Monday afternoon. Daniel and I have presented them together several times now, and it’s been an interesting experience each time. The participants really make it fun!

I’m looking forward to my own little Geek Week this summer!

Changes in the Java world

Or at least … at the Java Posse. As of episode #383, changes abound for the Java Posse.

Most of the Java developers I know stay up to date on JVM languages and the latest in the industry by listening to the Java Posse. This week’s newscast highlights 2 significant changes: Dick Wall has moved on from his day job at Locus Development to take on Scala consulting fulltime. This continues the strong message about the adoption of Scala in our industry. Secondly, Joe Nuxoll has decided to leave the Java Posse. He was the latest addition to the Posse, and is now the first one out.

Habitual listeners of the Posse know that Joe has moved away from software development and is focused on User Experience. His contribution to the podcast has been significant, in my opinion. His sense of humor, his business-related contributions, and his insight have benefitted me greatly. I missed him at the Roundup this year, and I will miss him on the podcast. Joe sort of invoked the “Law of Two Feet” concept of open spaces conferences toward leaving the podcast. He didn’t feel engaged in Java news, and he’s decided that’s not where his passion is. While I’ve felt that his participation was valuable, I totally understand his departure.

In any case, I wish Dick well in his new job … and I hope that Joe does return for the holiday specials (as he has promised) and perhaps for the Roundup.  Or, at least for CodeMash!

Functional Programming and Scala Koans: upcoming talks

On Saturday, May 5, 2012, I will be presenting “Functional Programming for the Masses” at the Great Lakes Functional Programming Conference. This one-day event is developer organized and will be held at Washtenaw Community College. You can register at http://glfpc.eventbrite.com/. Tickets have been selling quickly for the event. Here’s an abstract for my talk:

Have you heard about functional programming but aren’t sure what should be your next step toward adoption? Are you looking for ways to introduce functional programming without scaring your coworkers and your boss? How can you convince others than the paradigm shift is worthwhile? That it will provide business value while making the programmers and customers happy?

You will come out of this talk with the techniques to bring functional programming to your organization with minimal stress. Whether you use Java, C#, or are gunning for Scala, this talk is for you. We’ll show examples of how to weave in functional, starting with how to talk about functional and ending with real code examples, showing that functional programming can be … well … functional.

The Scala Koans in Detroit will be rescheduled for a later date, through Detroit Dev Days. On Thursday, May 31, I will be delivering the Scala Koans with Bruce Eckel in Detroit, at the Madison Building. Organized by Detroit Dev Days, this will be the first full day Scala koans event ever. Join us. More information and registration available at eventbrite. Lunch will be provided.

On Monday, July 16, I will again be delivering the Scala Koans with Daniel Hinojosa in Portland, OR, at OSCON. Monday is the Tutorials Day, and requires a separate registration. You can get more information about our session here and register for the conference here. Daniel and I have teamed up several times in the past (both at CodeMash and StrangeLoop) to deliver the koans, and we have given them individually as well. The koans continue to grow, and we think it’s a great way to learn!

Presenting the Scala Koans with Bruce Eckel in Detroit

I was thrilled when David McKinnon of the Detroit Java User Group invited me to present the Scala Koans in Detroit on May 31. The timing worked out perfectly for Bruce Eckel to be in town, so I asked him to join me. Bruce and I are working on an introductory Scala book together, and the Koans are a great way to learn Scala as well. The koans are self-paced exercises. You can do them from home, but in our experience in presenting them at StrangeLoop, CodeMash, and 1DevDay, the group atmosphere offers an additional facet for learning. Other participants ask questions and contribute ideas, providing a unique experience at each event.

Join us on the 5th floor of the newly renovated Madison Building, 1555 Broadway, in Detroit on May 31 from 9 am – 4 pm (lunch provided).

You can register at http://detroitscala.eventbrite.com/. Early bird pricing is in effect until April 30 and regular registration runs through May 25. Hope to see you there!

 

Day 4 at the Java Posse Roundup: Wrapping it up for 2012

On the final day of the Roundup for 2012, Gunnar Hillert, who organizes DevNexus in Atlanta, suggested that he and I convene a session on Organizing your own Conference. Since I had previously done such a session in March 2008 with Stephan Janssen (of DevOxx): Java Posse Podcast #197, I was initially reluctant. But open spaces is about seeing what will happen, and there were others to learn from. In addition, I’ve learned a lot since then with Codemash. We decided to go for it.

The two conferences couldn’t be more different, in spite of the fact that they are both developer-organized. CodeMash attracts a diverse group of developers, intent on learning other technologies in order to improve what they do with their own. DevNexus focuses mainly on Java developers. CodeMash is in the sleepy town of Sandusky, OH, meaning that pretty much everyone has to drive (or fly) to get there. DevNexus is in the heart of downtown Atlanta, which draws an audience from the metropolitan area.

We talked a lot about what it takes to organize a conference. I think that the real key is that there is someone who is willing to put his or her neck out without knowing whether or not it will be a success. Signing a catering or rental agreement with a venue is a scary thing and I’ll be forever grateful to Jim Holmes for taking on this risk for CodeMash.

Other user-organized conferences that people might be interested in checking out:

That Conference

Strange Loop

PyCon

Stir Trek

After the Organizing your own Conference session, I joined Andrew Harmel Law in a discussion on Variations in Pair Programming. He had originally intended it to be a lightning talk, but 5 minutes is really short! When he told me a little about the rules his company had come up with around Pair Programming, I immediately challenged one of his tenets: that pair programming should be 2 people, 1 keyboard, 1 mouse. We’ve been effectively programming with 2 people, 2 keyboards, 2 mice, 2 monitors, facing each other rather than sitting next to one another, for a few years now. He was intrigued by the variation, and we convened a session to see what others thought.

Like both of our companies, many of the participants said that they do not pair program 100% of the time.  The developers decide when and where to pair program. Our programmers have wide latitude around self-organization. Some teams have a dedicated “pairing computer” in addition to their own laptops. Andrew was thinking that he might take that back to his company as well. I’ll be intrigued to see if he does. And I can’t wait to expose our team to Andrew’s Tarot Cards of Pair Programming.

Others expressed concerns about teams of various skill levels in pair programming. Mainly these concerns seem to have come from people who were thinking about pairing, rather than those who were actively doing it. Those who actively pair program see it as a way to bring a new team member up to speed on a project quickly, and also as a way to take advantage of the individual strengths of team members to build a better overall solution. It was a fun session, and it should be interesting listening once it becomes available on the podcast.

The last session of the conference was a wrap-up session where we all talked about what we got out of the conference and what improvements can be made. This is the 6th Java Posse Roundup and it became obvious to many of the old-timers that the newbies are becoming integrated into the group more quickly. Apparently, they just have more mentors. It was also interesting to learn that at least 2 of the attendees this year had never heard of the podcast but decided to come to the conference anyhow.

On Friday night, many people head home. Those of us who have attended in previous years tend to stay until Saturday, because flights on Friday often mean missing the last session. This has led to a variety of experiments around Friday night activities. For the past several years, a group has gone up to Mount Crested Butte to a very nice (star-rated) restaurant called (appropriately for this crowd) Djangos (Geek humor alert: There’s a python web framework called Django). They have small plates and wonderful wine. The groups have tended to order “One of Everything” which is a great way to try their wonderful food. But we also found out that we could rent a yurt, accessible only via nordic skis or snowshoes. We didn’t have time to organize it last year, but this year, a group expressed interest and we were able to organize catering at the yurt for a group of about 25 people (20 others went to Djangos). This was a fabulous experience, in spite of the bad trail conditions. We hiked out to the yurt, and had a wonderful meal catered out there, complete with tiramisu for dessert. It was so much fun that it seems likely to continue in subsequent years.

People filtered out of town throughout the day on Saturday. About 30-40 people showed up for a departing breakfast. Barry Hawkins organized it and cooked up endless amounts of eggs while many others chipped in to help, such as cooking bacon on the grill, and making biscuits and gravy. It was a great way to use up the food that people had bought for their week in town, and way more fun and interactive than the smaller group that a restaurant could accommodate.

So now the Java Posse Roundup 2012 has come to a close, but the git repository remains and the projects that were started will continue to be developed. Even more significantly, the knowledge and energy that everyone took away from the conference will spread throughout our companies over the next several months until it’s time for the Java Posse Roundup 2013. I’m planning to be there, of course.