CJUG Presentations

This is the second (and probably last post) about my time with CJUG and CJUG presentations.

Note: I have edited this page several times, and I cannot get the formatting to look the way I want. WordPress does weird things with paragraphs in list items and spacing between list items no matter what I do. I originally exported from Org mode, and at one point I edited the HTML and pasted that it, and it still does not look the way I want. A few times I got it to look the way I want in the WYSIWYG editor, but it was different after I hit “Update”. For now I will just leave it. Perhaps it is time to look at something other than WordPress.

I downloaded the posts from the old CJUG blog, and kept them on my website for years. I have decided to get rid of those posts. Here I will make a few notes about the projects/frameworks that are still around and/or look interesting to me. You can still find the old CJUG blog at archive.org (you might have to use the side menu to look at the old posts). I did not attend any CJUG West presentations.

Before going through the old posts, I had this notion that CJUG had dwindled to nothing before I showed up. That is not entirely true. Until about 2008 there were a lot of people attending. They had some pretty big names come in: Gavin King, Martin Fowler, Marc Fleury. Then for a while it was pretty bare. Sometimes it was just me, a guy named Rakesh Vidyadharan (who was the acting president for several months) and the presenter. Sometimes Rakesh was the presenter. But there were some meetings at Loyola that had decent turnouts, sometimes a dozen people. Rakesh did a good job of building it back up and kept things going when nobody else would. The meeting where the presidency was handed off to me had a decent turnout. (This was also the day of the infamous meeting where we had to change buildings.) The handoff had to be postponed for a month.

Still, I think it is fair to say that before I took over attendance had gone down a lot. Most of the board and officers seemed to move on. One was getting his masters in CS (at Loyola). A couple of others went on to Rails (this was about the time Rails was setting the world on fire). After I started running it, we never had single-digit attendance again. All in all, I would say I did pretty well.

I think I got the job because nobody really wanted it. Java had lost some of its buzz. I have a blog post about the CJUG elections stating that 2 people applied for 4 positions. I think it was Homer Simpson who said the most beautiful phrase in the English language is “by default”.

Before I became President, I spoke to someone who spent a year in Salt Lake City. He told me that he got a lot of reminders about presentations in Salt Lake City, and not much from CJUG. I did start posting more to the list and the blog. Afterwards I always posted to the blog thanking people for attending, thanking the presenter (when it wasn’t me) and thanking any sponsors and our hosts.

I imagine that running a group now is a lot different. You can have meetings over Zoom or WebEx, so space and food are not a problem. Content is still a challenge.

  • 2006-02-21: Spring Web Flow at CJUG West. Honestly, I think I am done with Spring. I will say that Spring Boot looks interesting, and would probably solve a few pain points at my current job. If I do Java at another job, I would like to try other frameworks: Dropwizard, Javalin, Quarkus, Spark, Vert.x (which I am leery of since it is an Eclipse project), Web4J from the guy behind Java Practices, as well as a few mentioned later in this post.I took a few tutorials on Spring. They mentioned that a lot of Spring developers got tired of writing XML and they preferred writing Java code, so Spring started using annotations for configuration. Now it seems like in Spring you just mess with annotations instead of XML or writing Java.
  • 2006-06-01: Lucene at CJUG West.
  • 2006-07-06: Rich Client Development at CJUG West. I do not know a whole lot about Eclipse Rich Client Platform. Desktop apps have declined in use in the past decade. On the other hand, there is always somebody using something, and like COBOL and FORTRAN, there are probably more desktop apps and developers out there than people think. Eclipse started in IBM, and at this point I am leery of IBM. IBM was Microsoft before Microsoft: They structure everything to maintain your dependence on them. Even when they open source a project and it leaves the nest, it is more complicated than it needs to be.There are other platforms for desktop apps that can run on mulitple OSes: Free Pascal and Lazarus, and Google’s Flutter. There is also Gambas, an IDE for BASIC, and there is a company called DevExpress which sells Delphi components. Even JavaFX is still around. Now that I am starting to use Emacs more, perhaps I will have less need for desktop apps.
  • 2006-09-07: Practical Pair Programming at CJUG West. I do not have a lot of experience with Agile. I was on a project that used Scrum. There were a lot of charts and numbers and forms to fill out. To boil it down to a sentence: Agile is about technology teams making their own process and adjusting, it, while Scrum is the business pinheads doing what they always do: making it about metrics and numbers and generally missing the point. On the Scrum project, there was a lot of “grooming” of stories. It involved a lot of time sitting in a hot, crowded room that had more chairs than necessary.The first time I heard about Agile was at a CJUG presentation (which was before the blog posts I was able to save) and the presenter said one thing he loved about Agile was that it used terms people understand: People know what a story is, but not what a “use case” is. But I don’t think Agile people use words that people understand. They use words people understand and give them different meanings, which I think is even worse. The uses of the words “Sprint”, “Story”, “Epic”, “Grooming” and “Spike” in scrum/agile are different than they are in other contexts.

    Like REST and Roy Fielding’s dissertation, the Agile Manifesto is not an ISO standard. You can do whatever you want and call yourself “Agile”. I think a lot of the practices associated with Agile are from Extreme Programming (aka XP). I know the term “Extreme Programming” was coined by Kent Beck, who also signed the Agile Manifesto. What is Agile and what is XP is kind of fluid.

    The Agile/XP practice that I got the most value from was pair programming, yet it was the one we did the least. It never seemed to be the default. It was a fallback when someone was stuck. But when I paired with someone, we were usually able to solve in less than 20 minutes something I had struggled with for far longer. They did not give me the answer, we just figured it out more quickly together. I guess measuring output is more important to some people than producing it.

  • 2006-11-02: JRuby at CJUG West. I have tried JRuby, and I do not like it. I know that some Ruby people like it because Ruby was not able to handle multiple threads (I do not know if that is still true). Coming at it from the Java side, I honestly do not see the point.I went to the GR8 Conf a few years ago, and Guillaume Laforge told some of us about the origins of the project and how he got involved. He was the head of the project for several years but did not initiate it. He said one of the initiators was trying out Python on their laptop at an airport. Python has an interactive shell like Ruby, and he thought, “We need something like this in the Java space.” And that is how Groovy was started. So if you want an agile, dynamic scripting language on the JVM that can also be used to build large applications, that is what Groovy is for. It is made to work with Java. JRuby is like sticking a square peg into a round hole. I always got the feeling that Java shops that use JRuby use it to impress their Ruby friends. News flash: They won’t care, and you are making you life more difficult than you need it to be.
  • 2006-12-07: Spring AOP at CJUG West. There was a later presentation on aspect-oriented programming at a downtown meeting, and I think I attended that one. I will leave comments there.
  • 2007-01-16: Network Attached Memory at CJUG Downtown with Ari Zilka. Ari Zilka founded Terracotta. He is a really smart guy; I should look him up and see what he is doing. He also spoke at CJUG downtown again in 2010 about Ehcache. This was around the time MongoDB was the big thing because “SQL is not web-scale”. Ari said that the people who think SQL cannot scale really do not know what they are doing. (Perhaps we should call him “Ari Zinger”.) Granted, he was at CJUG to talk his book, and MongoDB is still around, but the “NoSQL” hype has died down. Why learn a whole new database technology when you can use some open source projects to help you scale?I have heard the idea that a lot of people would not need extra tech for their relational databases if they knew the relational model better quite a few times. That is one thing on my ever-expanding to-do list. I honestly do not know if I could explain the different levels of database normalization.
  • 2007-03-10: Enterprise Search Technology at CJUG Downtown. This was about internal search for a corporation. The speaker was from a company named Dieselpoint.
  • 2007-04-17: Tomcat Security at CJUG Downtown.
  • 2007-05-15: Echo2: Ajax-based Web Development Framework at CJUG Downtown. The repo for Echo3 has not been updated since 2018, so I think this one is dead.
  • 2007-06-07: Another presentation about Eclipse RCP at CJUG West by the same guy who did the last one.
  • 2007-06-19: Agile and Secure: Can We Be Both? at CJUG Downtown.
  • 2007-07-17: JBoss Seam at CJUG Downtown. According to the Seam website, this project is dead.I had a job using Seam. I hated it. The boss said he was disappointed that I was not more involved in making decisions about their product. I said nothing because my only suggestion was to stop using Seam, and I knew he wasn’t going to do that. I remember one day one of the co-founders and I spent several minutes trying to get the other co-founder to grasp the concept of the sunk-cost fallacy. But looking back I cannot remember which one got it and which one did not.

    I do not remember what I did not like about Seam. I am just glad it’s dead. If you ever wondered why nobody cares about Gavin King any more, I think Seam is part of the reason.

  • 2007-08-21: Google Web Toolkit at CJUG Downtown. My understanding is that with GWT you can write the front-end of your app in Java, and it will transpile into Javascript. Granted, the site does not use any form of the word “transpile”, and I do not think I encountered the word “transpile” until just a few years ago, but that sounds like what is happening.Honestly I do not know why GWT is more popular. And I do not get why JavaScript is so popular. Why so many people think EVERYTHING has to be in Javascript. A lot of people only seem to know Javascript. It is like a dumbing down of technology. Javascript is to a lot of technology people what Microsoft is to a lot of business pinheads: It is the one thing they cling to, and the rules are different for it than they are for everything else, just because * * jazz hands * *

    It is bizarre to me the way some people complain about Java, and the semicolons, yet Javascript which stacks braces, parentheses and semicolons (and is so awful that people build entire languages to shield them from it) gets a total pass.

    Anyway, GWT looks interesting, and it is something I will keep an eye on. I think Vaadin uses GWT.

  • 2007-09-06: Dynamic Languages and the JVM at CJUG West: JRuby, Groovy and Rhino.
  • 2007-09-18: Groovy/Java Integration at CJUG Downtown. This presentation was given by Jeff Brown of Object Computing, one of the companies contributing to Grails.
  • 2007-10-16: Grails at CJUG Downtown.
  • 2007-11-20: Overview of Coherence Data Grids at CJUG Downtown. The presenter was Cameron Purdy. Oracle Coherence is now open source. From the Github page: Coherence is a scalable, fault-tolerant, cloud-ready, distributed platform for building grid-based applications and reliably storing data.
  • 2007-12-18: Aspect-Oriented Programming and Software Design in Java and AspectJ at CJUG Downtown. I never quite got AOP. I understood it when I was reading about or hearing a lecture, but it never quite stuck. When I learned about metaprogramming in Groovy, then the ideas seemed to stick. AOP uses a lot of terms that it either makes up and do not really make any sense (“join point”, “point cut”), or like Agile/Scrum they use everyday words and give it a different meaning (“advice”) which makes it all less clear. In Groovy the terminology is more verbose but at the same time more clear. I prefer clear over concise.
  • 2008-01-15: JavaFX Script at CJUG Downtown. JavaFX is still around, but JavaFX Script has been discontinued.
  • 2008-02-19: JSR 170: Content Repository for Java technology API at CJUG Downtown.
  • 2008-05-20: Object Databases at CJUG Downtown.
  • 2008-06-05: Inside Spring Batch at CJUG West. I think this was the last CJUG West presentation.
  • 2008-07-15: Another presentation on JRuby at CJUG Downtown.
  • 2008-07-29: Cloud Dreams: From Ideas to Innovation at CJUG Downtown. I think this is one of the first times I heard about Amazon Web Services.
  • 2008-08-19: An Architect’s View of Domain Specific Language (DSL) for Enterprise Applications and Services at CJUG Downtown. The presenter was from a now-defunct company called Skyway Software. They had a RAD tool based on Eclipse that you could use to quickly build web applications.
  • 2008-09-16: OSGi – Why Java Modularity Matters at CJUG Downtown.
  • 2008-10-21: Open Source Barometer at CJUG Downtown. This was a presentation by Alfresco Software about how their customers use open source. As of 2022-04-23, you can still read about here and here.
  • 2008-11-18: Zero Turnaround in Java at CJUG Downtown. This was about the product now known as JRebel. It allows you to deploy Java class changes immediately without a full restart. I think Spring Boot also has this capability.
  • 2008-12-16: The Seductions of Scala at CJUG Downtown. No comment.
  • 2009-01-20: Maintaining agility on a mature project at CJUG Downtown. This is when I found out that “spike” is another word that agile people use differently.
  • 2009-02-17: iPhone SDK: Java Developers Perspective at CJUG Downtown. From the summary: ” This presentation will introduce Objective-C/Cocoa to Java Developers and show how Java developers can get productive with the technology very quickly.”. This really had nothing to do with Java. Whatever the opposite of “Peak CJUG” is, this might be when we hit it.
  • 2009-03-17: Exploring Terracotta at CJUG Downtown. This presentation was by Alex Miller. Back then he was with Terracotta. Now he is with Coginitect working on Clojure.
  • 2009-04-21: Scripting on the JVM at CJUG Downtown. Yet another JRuby/Rhino/Jython talk.
  • 2009-05-19: Don’t Do This! How Not to Write Java Software at CJUG Downtown. Here are some bad ideas from the summary:
    • This code will never be used in a multithreaded environment.
    • Just because you’re paranoid doesn’t mean you shouldn’t check for nulls!
    • Comment everything!
    • I’ll create my own JDBC Connection, thank you very much!
    • Why retest when you can copy and paste?
    • Why use two methods when one will do?
    • Here, have an exception.
  • 2009-06-16: OpenSSO and Identity Federation at CJUG Downtown.
  • 2009-07-21: Google App Engine for Java: welcome to the cloud at CJUG Downtown.
  • 2009-08-05: Programming Clojure at CJUG Downtown. The presenter was Stuart Halloway. Despite my current interest in Clojure, I do not recall attending this one. There was another presentation later that month, so perhaps this one was thrown together very suddenly.
  • 2009-08-18: GridGain – Open Cloud Platform at CJUG Downtown. You can find the GridGain page here. I made a blog post on 2009-08-26 that the handover of the CJUG presidency was postponed since one of the current acting officers was not there.
  • 2009-09-15: Flex and Java at CJUG Downtown. The presenter was James Ward. This is when the CJUG presidency was handed over, and this was the disastrous meeting where we had to go to another building halfway through. Adobe gave Flex to the Apache project, and the last update was in 2017. Flex was based on Flash, so I am guessing it is dead. This was not anti-Peak CJUG. This was anti-anti-anti-Peak CJUG.
  • 2009-10-20: Testing the Web Layer at CJUG Downtown. Another not-Peak CJUG moment. The speaker was from No Fluff Just Stuff. Smart guy, but not a Java guy, which is kind of an issue for a Java group. No Fluff sent us a speaker every year and let us raffle off a ticket to that year’s Chicago event. That year they chose the speaker, and we had to choose the topic, none of which were JVM related. Back then NFJS sold itself as “Like JavaOne, but it’s cheaper and it comes to you”, so getting a non-Java speaker was a bit frustrating. Now they have some conferences that are focused on JavaScript, but I think “Woodstock for Java without the mud” is still their main focus.
  • 2009-11-17: Java Content Repository (JSR 170, 283) at CJUG Downtown.
  • 2009-12-15: JavaFX at CJUG Downtown. There was also a presentation by a recruiter on interviewing. I had hoped to have more presentations on all the things tech people need to do but don’t want to think about, but that did not work out too well.
  • 2010-01-19: Lightning Talks: JackRabbit Configuration, Apache James, JUnit Testing Tricks, More? at CJUG Downtown. Three board members gave lightning talks. Rakesh Vidyadharan gave a follow-up to his November talk; he spoke about JackRabbit configuration and deployment models. I spoke about configuration of the Apache James email server and the future direction of the project. Jim Breen reviewed the proposal to add closures to JDK 7.
  • 2010-02-16: Instant Messaging and DSLs in Java at CJUG Downtown. This was hosted by a company called Dotomi, which I think was in the West Loop. The speaker was Yair Goldfinger. He was one of the original developers of ICQ, one of the first instant messaging applications. He spoke about that as well as DSLs in Java.They made ICQ because back in those days people still used modems over phone lines. If you were on the computer, you could not be on the phone. So they made ICQ so they could chat while online. I honestly think he lifted some of his DSL presentation from this InfoQ article dated 2008-02-19. His presentation is the first time I had heard of fluent interfaces (check) and I am pretty sure one of his examples was about booking a vacation at the Paris Hilton (check). Maybe the authors got their information from him, or they had worked at Dotomi, but I am pretty sure the article and the presentation have some of the same material.
  • 2010-03-16: Agile All The Way Down and Update On the Oracle/Sun Merger at CJUG Downtown. Earlier that day Oracle had a seminar about their merger with Sun and how it would affect their product lines. I went, took notes, and gave a presentation about it. There was also a presentation by Bjorn Freeman-Benson about New Relic.
  • 2010-04-20: Tomcat 6 at CJUG Downtown. This was the meeting where we were in a different room that had a very large projection screen but could not get a projector. This is when I decided that we needed to find a different location than Loyola. The speaker did well under the circumstances.
  • 2010-05-18: Google DataStore API and App Engine Deployment at CJUG Downtown. One speaker covered the low-level APIs, and another covered deployment.
  • 2010-06-15: Liferay Caching at CJUG Downtown. I think this was the first meeting at ThoughtWorks.
  • 2010-07-20: JavaFX 1.3 at CJUG Downtown. This presentation was given by Sten Anderson, who also gave the JavaFX presentation on 2009-12-15. He mostly talked about the new features in 1.3.
  • 2010-08-17: ActiveJDBC at CJUG Downtown. The presenter was Igor Polevoy. ActiveJDBC is a Java implementation of the Active Record pattern. It is part of JavaLite, “a cohesive collection of frameworks designed from ground up to add pleasure back to your daily life.” It is still used and still maintained. Here is a link to the presentation. This is another technology I will keep an eye on.
  • 2010-09-21: What’s Brewing in Java at CJUG Downtown. I think this was the first presentation at CME. The content was about changes in the upcoming version of Java. You know it was good, because it was Venkat.
  • 2010-10-21: High-Performance Scalability for Enterprise Applications with Enterprise Ehcache at CJUG Downtown. This was Ari Zilker’s second time speaking at CJUG. I think this is when he told me a lot of people using NoSQL think they have to because they do not understand RDBMSs very well. He was probably talking about document databases like MongoDb, since some NoSQL technologies like graph databases are never touted as replacements for relational databases.
  • 2010-11-16: Intro to Hadoop at CJUG Downtown. Back in the day when “MapReduce” was an exotic procedure. Again, this is a time when bad terminology makes a simple concept harder than it needs to be. I think “map” is a bad name for what the map function does (I think “apply-to-all” is better), and “reduce” is an even worse name (surpassed in badness only by “fold“, which is the same thing as reduce; I think “accumulate” or “aggregate” are better).
  • 2011-01-18: What’s new in Java EE6 at CJUG Downtown.
  • 2011-02-15: Drools at CJUG Downtown. I use another rules engine at my job, so I might look into Drools. One issue is I think you have to run it in a web app. At least the Drools docs only talk about using it that way. Drools is one of those JBoss projects where you have to do five things in order to do the one thing you really want to do. I think Clara can handle rules outside of a web app.
  • 2011-03-15: Android at CJUG Downtown. I gave this presentation. You can find it here. I did it because I wasn’t able to get anything lined up in time. Sometimes you have to do that when you run a group.
  • 2011-04-11: Groovy on Grails at CJUG Downtown.
  • 2011-05-17: Java and R at CJUG Downtown. This was a presentation on using Java with the R language. It seems like R has been supplanted by either deep learning libraries in various languages (many of which are wrappers around C or Fortran libraries) or Julia.
  • 2011-06-21: Arquillian at CJUG Downtown. The speaker was Andrew Lee Rubinger. Arquillian is an integration testing framework that tests J2EE apps without using mocks or requiring a full deployment. Like many JBoss projects, some of the links to their own sites are dead. I might suggest this at work. I think this might be something we need. Their website does not state this, but I think the etymology of “Arquillian” is that it is a species from the film Men In Black.
  • 2011-07-19: Play Framework at CJUG Downtown. The Play Framework was a Java web framework that uses REST and convention over configuration. It is a stateless, asynchronous, full-stack, pure Java framework that aims to help web developers have more fun and be more productive. Then Lightbend decided to make it all Scala. There is a Java web framework called Ninja that I think came about because some users of Play did not like Scala. (A note to Scala developers: A lot of people do not like Scala, and never will. Stop trying to make us do stuff in Scala.)The speaker was Jeff Schwartz. He gave a presentation about Play at another meetup, and I asked him if he would be willing to give the presentation to CJUG.
  • 2011-08-16: ActiveWeb at CJUG Downtown. This was another presentation by Igor Polevoy. ActiveWeb is the web framework component of JavaLite. Check out the presentation, see the lite.
  • 2011-09-20: State of Java at CJUG Downtown by Roger Brinkley. He was a Java developer advocate. I am not clear what he is doing these days. Based on his Twitter feed, I am guessing he is retired.
  • 2011-10-18: Gradle: Bringing Engineering Back to Builds at CJUG Downtown by Tim Berglund. This was the first time I had heard about Gradle. I used to use Gradle when I was into Groovy. I liked it. You don’t need it for Clojure, so I don’t use it much anymore. They went to Kotlin and all my scripts broke, and they changed a lot of the API function names. I am not saying I will never touch it again, but changing the names of an API that was notoriously difficult was pretty dumb. It’s not really any different, just the names are different.
  • 2011-11-15: Security In Java at CJUG Downtown.
  • 2012-01-17: Tips and Tricks for Writing Low Latency Java Applications at CJUG Downtown. This was well-attended. The presenter was Charlie Hunt, who at the time was JVM Performance Engineer at Oracle. He wrote a book on Java performance. He offered to sign any copies people brought to the presentation.
  • 2012-03-20: Graph Traversals in Neo4j with Gremlin Java at CJUG Downtown. From the presentation: Graph databases are a NoSQL/polyglot persistence solution that provide a natural way to model complex, interrelated data.
  • 2012-04-17: Real World Groovy on Grails at CJUG Downtown. This was at Jak’s Tap instead of CME.
  • 2012-05-15: Build your own CMS with Apache Sling at CJUG Downtown. This was at the Sears Office (not the building now known as Willis Tower). The presenter was Bob Paulin, who helped run CJUG after I left.
  • 2012-06-19: JavaFX at CJUG Downtown with Roger Brinkley.
  • 2012-07-17: Spring Data at CJUG Downtown. The presenter was Andrew C. Oliver who wrote the POI library.
  • 2012-08-21: CDI meets GWT within Errai at CJUG Downtown. I have the announcement in my “Sent” folder, but I have no memory of it, and I do not remember ever hearing about the Errai Framework.
  • 2012-09-18: Embedded Java at CJUG Downtown. This is the last meeting for which I sent out an announcement, and the last I attended.

 

Image from The Codex of Fernando I and Doña Sancha, aka Beatus Facundus, an 11th century manuscript manuscript of ‘Commentary on the Apocalypse‘, written in the 8th century by Beatus of Liébana; manuscript created at monastery of Santo Toribio de Liébana  (Wikipedia page here), currently housed at the National Library of Spain; manuscript information here. Image from World Document Library, licensed under CC BY-NC-SA 4.0.

My CJUG History

As part of my site changes, I am getting rid of my pages about CJUG, the Chicago Java Users Group. I will post about my time with CJUG, as well as list some of the technologies/projects/frameworks that were interesting, with an emphasis on the ones that are still maintained and used.

I also had posts from the old CJUG blog. But now many of the links are dead, and many people are doing completely different things, so I will just put it all on disk and send those posts to the void.

This post will give my history with CJUG, and later I will post about the technologies that were presented which look interesting and I think are still maintained. There is also a big chunk about why I do not like Scala; I have been thinking about writing a post about why I do not like Scala, and this felt like a good a time as any.

I lived in Chicago for 14 years. For about 12 of those I was going to CJUG, as an attendee, sometimes as a presenter. For two years I was CJUG president.

The location changed over time. Before I ran things, some were held in the AT & T building (which is now the Franklin Center), the Bank of America building at 231 South LaSalle (which is now the Central Standard Building), and for a time various buildings at Loyola University. Loyola is about seven miles north of the Loop in Rogers Park and Edgewater. Attendance went down when the group moved there.

I am not too clear why the location changed up to Loyola. I know that one of the board members was on the CS faculty at Loyola, and he reserved rooms for us. One difference between Chicago and Austin is that Chicago feels like it has a center in the Loop; not just geographically, but culturally and financially as well. The Capitol is in the center of Austin, yet there is not as much concentration of businesses and jobs in that area as there is in Chicago in the Loop (granted, COVID may have changed things). A lot of people who worked in the Loop live outside the city and take the train to and from work. Going a few miles north and then coming back is just not convenient. (See Note 1 below.)

After a while I started to lose respect for our professor. He said we should drop Java and focus on Scala. I never really liked Scala, either the language or the community. It relies way too much on symbols; it looks like a cat walked across your keyboard. Scala is proof that while most things are more pleasant to do in Java than they are in C, Perl is not one of them. It has the syntactical elegance of Perl, with the simplicity and focus of C++ (that statement is both literal and sarcastic at the same time). I think that like C++, Scala is a multi-paradigm language that most of its users should not be using (or better yet, never invented). The people that seem to use it well are those who stick to a small subset of features; most developers do not do this and instead use Scala as a chance to prove they are smarter than everyone else, and in the end making life more difficult.

I never liked the Scala community in general. I have gotten along with a couple of Scala advocates. I like and respect Dean Wampler (he’s not just a developer, he’s a photographer and has a PhD in theoretical nuclear physics). And how can anyone hate Daniel Spiewak? (If you have Daniel Spiewak on speed-dial, none of these criticisms apply to you.)

The overall Scala community always struck me as condescending, and generally wrong. Scala people love to go around and tell us they are sooooo much smarter than everybody else, and Scala was going to replace Java, and we were all just too dumb to see it, and using all the symbols was so much better, and if all the punctuation looked like line noise, well, again we were all just not smart enough to get it. And did they fail to mention that it is functional? And that anything functional in Java could only have come from Scala, because until our lord and savior Martin Odersky walked the earth nobody ever understood functional programming.

(I never thought Dean Wampler was talking down to anyone, and Daniel Spiewak is too busy moving objects with his mind to say an unkind word about anyone.)

The Scala community can be split into three groups (or kinds, if you will):

  1. People who realize that using all of it is a bad idea, limit themselves to a subset of Scala, and generally have success.
  2. People who try to use as much of it as they can to show how smart they are, and look down upon the rest of the world, including Scala devs in group number 1.
  3. People who started in group number 2 a few years ago, and found out the hard way that not only was group number 1 using Scala correctly, but maybe the Scala critics were right and it really is a mess.

Pro tip for life: Never say that people WILL do something whether they like it or not, or whether they realize it or not. You can say you think people SHOULD do something, or you wish they would. But then, most Scala people are not that bright. Scala never went anywhere. And sometime around Scala 3, Odersky said he was going to simplify Scala. The Scala community again congratulated themselves for Odersky’s brilliance, oblivious to the fact that this move meant the critics were correct. And as far as functional programming goes, while I don’t know about the relationships between the big names in the Java community, I know that Guy L. Steele, Jr has been working on Java for a couple of decades. He was there before Odersky, and is still there. Scheme was basically his PhD thesis. If there was any smack being laid down, Steele explained reality to Odersky, not the other way around. (If there are going to be Chuck Norris facts about anyone in CS, Steele is a top contender.)

Scala is like the first two chapters of the Book of Job. It’s like God said, “What if we made a language as cluttered as Perl, with a community as arrogant as Haskell?”, and Satan said, “Hold my beer.”

So this bozo professor said we should ditch a language everybody uses for one that nobody uses. Like a small child, he thought it was the future because HE liked it. There were a couple of issues. One was that I was getting emails from people (admittedly, a lot of companies pitching products) asking if they could speak at CJUG. Meanwhile, the Scala group was struggling to find material. I was on the mailing list for a while, and most months Deal Wampler would send a message a week before the meeting and say if nobody had anything to present, then he would cancel the meeting. So the second issue is why steal what little Scala oxygen there was from the pre-existing Scala group?

The day I was appointed president we had a presentation at Loyola. For some reason, our reservation was not for one room for the whole period, as it usually was, but split between two rooms. In two different buildings. People were not happy about having to go to a different building halfway through. The final straw was when we had a room reserved, and while this room had one of the largest stand-alone projector screens I had ever seen, it had no projector. I did not have the professor’s number, and there were no students attending. Since neither I nor the speaker were affiliated with Loyola, we could not get a projector. The presenter was Damodar Chetty, and he did very well under the circumstances. Maybe the guy has been cursing me ever since, but at the time he was very gracious.

I posted to the JUG Leaders list for advice on how to handle this in the future. Someone said one thing to do is get the speaker’s notes ahead of time and be ready to print out copies or copy the file from a thumb drive. Another one of those brilliant and practical ideas that never occurs to you when you really need it. My other solution was to find a location in the Loop.

We had a few presentations at the headquarters of Thoughtworks in the Aon Center. This improved both attendance and morale. At least one presenter hosted their talk at the Merchandise Mart. At some point someone put me in touch with a guy who worked at the Chicago Mercantile Exchange, and we started having presentations at The Merc. That was the best location. Close enough to the Loop for the hipsters, and close enough to Union Station for the suburban dads. We had meetings on the third Tuesday of the month. All I had to do was see if the presenter could be there on that day, and call my contact at CME. He would reserve the room and order food once I had a count of the people. Some months I had multiple people wanting to speak, and some months I had to scrape something together myself. With regards to content, running a group is like living paycheck to paycheck.

After the Great Recession, I was let go from my job. Bank Of America lost billions after they bought Countywipe, and they decided to try to make it back by getting rid of me and a few thousand other people who had done everything they asked us to do. (Life pro-tip number two: Never buy anything from a guy who looks like a bizarre comic book character; see here and here for comparison.) I got a job with a startup that only lasted a year. Then I learned Rails. I tried to get a job with a particular firm in Chicago, but after a few months, the CEO said no. I needed to find work, and I got a job in Austin. I had to resign from CJUG rather suddenly. But from what I can tell it is doing pretty well these days.

There was also a CJUG West that met in Schaumburg. I never attended those meetings. As far as I know, CJUG West stopped around 2008.

You’re welcome.

Note 1: I am not clear on what the office use stats are for Chicago post-COVID. I still get a few emails from organizations in Chicago. One mentioned that tech companies are starting to move into the Old Post Office building.

Image from the Theodore Psalter, a 9th-century manuscript housed in the British Library, assumed allowed under public domain.

 

CJUG Meeting 2011-03-15

I gave the presentation earlier tonight at the CJUG Meeting. We had nothing else lined up, so I did one on Android.

I was looking for a new place to live for the past few months, and that took up a lot of time. So I was not able to put as much time into my presentation as I was hoping. So the presentation was pretty short. I learned about Android doing it, and nobody threw anything at me or walked out.

CME provided space and food. You can find my contact on Twitter. I think next month we will have someone come in and talk about Groovy on Grails. I was contacted by someone who could talk about JMS. There might be a Mongo Java API one in the works. I would also like to do one on Akka. There is an Akka API for Java. I think the Actor model of concurrency will displace the threading model over time.

Image from Wikimedia, assumed allowed under Fair Use. Image from the Vatican Virgil, a 5th century manuscript of poems by Virgil.

 

CJUG Meeting 2011-02-15

We have another CJUG Meeting on February 15, 2011. Ray Ploski of Red Hat will talk about Drools. You can find info on the CJUG site here. You can RSVP for it here.

The past few CJUG meetings have gone pretty well. We are now having them at CME. It has really helped our attendance. We used to be lucky to get a dozen people. Now we get about 30. The RSVP software we are using is called gathers.us. It was made by a few guys here in Chicago. It uses the “freemium” model, and free events are limited to 50 responses. A few times we hit that limit. If we keep hitting it consistently we might have to either find something else or convince the GathersUs developers to increase that limit. They have responded to some feedback from me and a few other people, so we will see what happens.

For future CJUG meetings, there are some plans in the works. I will probably give a presentation in March on Android. Jeff Palmer of the Chicago Groovy Users Group will give one in April about Grails. Someone from a local consulting firm might be able to give one about hooking mobile apps up to JEE servers.

I would also like to get some presentations about some trends in the software industry. I think that the current threading model of concurrency is being replaced by the Actor model. The Akka library in Scala can also be used in Java. I would like to have a presentation on that. Also, NoSQL is gaining some traction. I would like to have a presentation on MongoDB, showing how to use it and some examples with the Java API.

If anyone could do these (or point me to existing presentations that I could use), that would be great. Alternatively, I could collaborate on these with someone. We could set up a GitHub account and hash out a presentation deck and some code; I think using Maven would be the best bet. I do not have a Mac, so the deck would have to be in OpenOffice.

Image from Wikimedia, assumed allowed under Fair Use. Image from the Vatican Virgil, a 5th century manuscript of poems by Virgil. Note: Some images may contain spoilers.

2010-04-26 Update

We had a Chicago Java Users Group meeting on April 20th. Our speaker was Damodar Chetty, a consultant from Minneapolis. He talked about Tomcat configuration. There was a bit of a problem: We did not have a projector. Every room we have reserved at Loyola has had a projector, so I assumed we would have one this time. There was a very large projector screen, which was ironic. I put in a request for a projector, but it did not go through properly. Damodar did pretty well under the circumstances. If you need a speaker for your JUG, contact him at his site.

I posted to the JUG Leaders list for advice on how to handle this in the future. Someone said one thing to do is get the speaker’s notes ahead of time and be ready to print out copies or copy the file from a thumb drive. Another one of those brilliant and practical ideas that never occurs to you when you really need it.

I am still looking for a job. I talked with a recruiter a couple of weeks ago who gave me some good advice on my resume. I am reworking it, and I think it is a lot better. I am also getting more focused. I started learning Ruby, and I will continue with it, but I may pull back on that a bit. I will re-focus on Java and JVM languages and technologies: Java, Scala, and Android. There was an Android workshop put on by Chicago Android. I learned a lot, and I will get more into Android. Recently I got a free Droid phone. I will go to Verizon and see what it would cost to use a plan for Droid.

 Image from Wikimedia, assumed allowed under Fair Use. Image from the Roman Vergil, a 5th century manuscript of poems by Virgil.

2010-03-17 Update

I presented last night at Chicago Java Users Group. I went to a big Oracle seminar and talked about the latest news about the Oracle/Sun merger. We also had a presentation by Bjorn Freeman-Benson of New Relic.

I have started learning some new technologies. I am still a Java guy, but I am looking into Ruby as well. A few people in the past month tell me that if I knew more Ruby they could hire me right now.

I am also learning Drupal. I am now running Drupal and WordPress on my VPS. It is dog slow. I think it might be because I am running Drupal on PostgreSQL. I am trying out PostgreSQL for the first time. Maybe I need to configure it better, or maybe running two databases on a VPS with 300 MB of memory is just not a good idea. I may try setting up Drupal with MySQL and see if it is any faster.

I am also working on a small web app to administer a James server. I am doing it in JSF with Hibernate. I mentioned it on the list, and there was not much interest in it. I will keep it up anyway since I am trying some new stuff.

 Image from Wikimedia, assumed allowed under Fair Use. Image from the Roman Vergil, a 5th century manuscript of poems by Virgil.

2010-01-06 Update: James and CJUG

There is some activity going on with Apache James: some progress is being made replacing the Avalon dependency injection framework with Spring. This will make James easier to update going forward. The project has been stalled somewhat in the recent past. That is one reason I found the documentation to be hard to navigate.

I plan on giving a talk at the next Chicago Java Users Group meeting on configuring Apache James. The next meeting will be on January 19. There will also be talks on Guice and Apache Jackrabbit.

 Image from Wikimedia, assumed allowed under Fair Use. Image from the Roman Vergil, a 5th century manuscript of poems by Virgil.

2009-12-26 Update

We had a Chicago Java Users Group meeting a few weeks ago. It went pretty well. Sten Anderson from CityTech talked about JavaFX, and Thomas Aikman from TransTech gave a speech on interviewing. One of my goals for CJUG is to have more than one presentation each meeting. I would also like to have some “business-related” presentations containing content to help members get and/or keep their jobs in today’s economic climate. Due to the recession, we will have to learn to do some of the things we went into software to avoid.

Some of the other meetings I went to were also pretty good. The guy who runs the Chicago GTUG also has a site about alternative energy called Bio Fuel Expo. I am hoping to find some way to use Java technology to promote alternative energy and mitigate climate change. In the past, every time I ask myself, “What can a Java developer do to reverse global warming and climate change?”, the only answer I come up with is, “Turn off the computer.” That would make producing an income rather difficult.

Image from Wikimedia, assumed allowed under Fair Use. Illustration of Theophilus and body of Timothy from Alexandrian World Chronicle, 5th century Greek chronicle.

2009-11-17 CJUG Meeting

There was a Chicago Java Users Group Meeting last night.  Rakesh Vidyadharan spoke on Java Content Repository (JSR 170, 283), focusing on Apache Jackrabbit.

There were also a few announcements. There is now a Chicago Groovy Users Group. I went to No Fluff Just Stuff this past weekend, and there is a lot of interest nationally in Groovy. Groovy is another language on the JVM.

World famous blogger Tim O’Brien showed up giving out Maven books.

Next month the presentation will be a presentation on JavaFX by Sten Anderson of CityTech.

We will also have a shorter presentation by Thomas Aikman of TransTech Solution Staffing on interviewing. If you have any interviewing questions, email them to me and I will forward them on to Thomas.

I have an interviewing question that may get the ball rolling: I had a phone interview recently. I did some research beforehand on the company, and the interview seemed to go well for the most part. At the end, the interviewer asked me if I had any questions for him, and I just said that I did not. After the conversation was over, three or four popped into my head. Is there a cheat-sheet of questions I could have ready for the company in case I blank again in another interview?

 Image from Wikimedia, assumed allowed under Fair Use. Illustration of angel from Alexandrian World Chronicle, 5th century Greek chronicle.

2009-11-09 Update

I have not posted in a while. I have been updating my system and have got everything set up the way I want. I also had a few unexpected expenses. I reinstalled OpenCms, and I had some problems importing my old data. I will have to reinstall it again and copy and paste my text, and redo all the links by hand.

We also had a CJUG meeting, and it went pretty well. I have made some arrangements for meetings for the next few months.

 Image from Wikimedia, assumed allowed under Fair Use. Illustration of some guy named Theophilus from Alexandrian World Chronicle, 5th century Greek chronicle.