Meetups Programming Tampa Bay

Scenes from last night’s Java User Group meetup featuring Scala

It’s great to be back at meetups, especially in Tampa Bay, where there’s an active, engaged, and interesting tech scene. Part of that scene includes Tampa’s sizable Java User Group, whose meetup I attended last night and featured a JVM language I was interested in: Scala!

Presented by Steve Waldman at KForce’s new office in Midtown, it was a tour of Scala-CLI as a tool for not just running Scala code, but Java code without all the scaffolding and yak-shaving that it normally requires.

The meeting took place in the conference room at KForce’s new office in Midtown, which is really nice and has some particularly comfy chairs. I will need to talk to them about hosting some of my meetups in the future!

I’m even more interested in the language after having seen Steve’s presentation and sample code.

Even better, Steve contacted Haoyi Li, author of Hands-On Scala Programming about possibly giving attendees a discount code for the book — and we all got the book for free! I’ve already dug a little into it, as it was also an excuse to take out this new Mac terminal app, Warp, for a test drive, as you can see in the screenshot below:

Here’s another reason to attend Tampa Java User Group meetups: the prizes! A lucky winner got a free JetBrains personal edition IDE:

Afterwards, some of us hit the nearby pizza place/pub for more conversation, which included tales of the dot-com bubble, career advice, job openings that I’d heard about (including some at my place of work, Okta), and explaining that once upon a time, you had to buy development tools in a shrink-wrapped box from a store (you didn’t want to download hundreds of megabytes over phone lines):

I had a blast! If you want to join in on the fun, join the Tampa Java User Group and keep an eye out for their meetups!


Friday 5: Useful things for coders (March 26, 2021 edition)

Every Friday, I publish the Friday 5, a list of 5 links to useful things for coders.

In this week’s Friday 5: a site that catalogs VS Code’s surprising capabilities, a look at the darker corners of Go, background processing in Android, a full-text search in 150 lines of Python, and generating brighter and darker versions of color in JS.

Visual Studio Code is a far more capable editor than you might suspect, and the VS Code Can Do That?! can help you discover tips, tricks, and techniques to help you get the most out of this editor.

Each tip/trick/technique comes with a video showing the tip/trick/technique in action and a link to a more detailed description of the tip/trick/technique.

Check it out:

Darker Corners of Go

The Go (golang) gopher holding a flashlight

Rytis Bieliunas writes:

While simplicity is at the core of Go philosophy you’ll find in further text it nevertheless enables numerous creative ways of shooting yourself in a foot.

Since now I have used Go for production applications for several years and on the account of the many holes in my feet I thought I’d put together a text for the fellow noob students of Go.

My goal is to collect in one place various things in Go that might be surprising to new developers and perhaps shed some light on the more unusual features of Go. I hope that would save the reader lots of Googling and debugging time and possibly prevent some expensive bugs.

Check it out: Darker Corners of Go

Background Processing in Android

Screenshot of Android app doing background processing

Here’s an article from the Auth0 Developer Blog, where I’m one of the writers/editors:

Android apps use the main thread to handle UI updates and operations (like user input). Running long-running operations on the main thread can lead to app freezes, unresponsiveness and thus, poor user experience. To mitigate this, long-running operations should be run in the background. Android has several options for running tasks in the background and in this article, we’ll look at the recommended options for running different types of tasks.

This article uses Java and covers threading, WorkManager, and AlarmManager.

Check it out: Background Processing in Android

Building a full-text search engine in 150 lines of Python code

Flow diagram showing text tokenization

If you’ve wondered how full-text search engines work and thought about building your own, this basic implementation in Python is worth trying out. In this article, you’ll build an engine that searches Wikipedia’s article abstracts and ranks them for relevance, and it’ll do so in milliseconds!

The article covers these major topics:

  • Collecting and formatting the data
  • Indexing the collected data (which includes stemming the words in the data to their basic forms)
  • Searching
  • Ranking results by relevance

Check it out: Building a full-text search engine in 150 lines of Python code

Generate Brighter And Darker Versions Of Color With JavaScript

Chart showing lighter and darker versions of the color redTinyColor is a fantastic JavaScript library that can help you out with a whole bunch of tasks when you’re working with colors. This article takes a quick look at this more-useful-than-you-might-think library.

Check it out: Generate Brighter And Darker Versions Of Color With JavaScript

Are there useful things for coders that should appear in the next edition of Friday 5? Let me know at!


Maritime DevCon: June 18th in Moncton

martime dev con

If you’re a developer out in the Maritimes, you might want to check out Derek Hatchard’s Maritime Dev Con, which takes place on June 18th in Moncton. It’s a single-afternoon, two-track conference – which means you should be able to take time out to attend it – covering a number of topics including:

  • .NET and ASP.NET
  • Java
  • iPhone development
  • Ruby
  • Python
  • Groovy
  • NoSQL and MongoDB
  • “Rockstar Estimating Skills”

Maritime Dev Con has a registration fee that won’t hurt your wallet – it’s a mere CAD$19!

I’m a big fan of small, regional gatherings like Maritime Dev Con and its western counterpart Prairie DevCon. Each region has its own specializations and needs that a by-locals, for-locals conference can do a better job of serving, and the smaller size of these conferences allows for more back-and-forth between audience and presenter, and between attendees. Support your local conference!

This article also appears in Canadian Developer Connection.


Open Source Language Roundtable Webcast: Wednesday, July 22nd


O’Reilly’s conference on Open Source, OSCON, takes place this week in San Jose, California. One of the events taking place at OSCON is the Open Source Language Roundtable, the abstract for which appears below:

We all have our favorite languages in our tool-belt, but is there a ‘best’ overall language? If anyone can hash that out, it will be the members of this roundtable discussion, some of the stars of the open source language space. This wide-ranging session, hosted and moderated by the O’Reilly Media editorial staff, and broadcast live on the web, will try to identify the best and worst features of each language, and which are best for various types of application development.

The roundtable will me moderated by O’Reilly Media’s James Turner and will cover the following languages, listed below with the corresponding panelist:

  • Java: Rod Johnson (SpringSource)
  • Perl: Jim Brandt (Perl Foundation)
  • PHP: Laura Thomason (Mozilla)
  • Python: Alex Martelli (Google)
  • Ruby: Brian Ford (Engine Yard)

You can catch this roundtable even if you’re not going to be at OSCON because O’Reilly is webcasting the event. It takes place this Wednesday, July 22nd at 10pm EDT (7 pm Pacific) and is expected to run 90 minutes. It costs nothing to catch the webcast and you’ll even be able to ask the panelists questions via chat, but you’ll need to register.


And the “Static vs. Dynamic” Battle Rages On…

After reading Bill Burke’s article, Dynamic Languages: Rationalizations and Myths, you might also want to look at Patrick Logan’s articles, Dynamic Languages: Should the Tools Suck? and Deeper Dynamics.


Python and Java: A Side-by-Side Comparison

This side-by-side comparison of Java and Python shows why I prefer working in languages like Python and Ruby: the “yak shaving” that Java requires drives me crazy.


17 Thousand Reasons I AM a Ruby on Rails Developer

The blogger at willcode4beer says in 17 Thousand Reasons I’m not a Ruby on Rails Developer that the median salary of Rails developers is on average $17K less than that for J2EE developers. I’m not worried — the pay at TSOT for RoR development is on par with the J2EE rates cited.

The article also suggests that “to bring salaries up, they need to drop the ‘easy’ part. Development is hard, and no language or platform is going to change that. We solve complex problems. Complex problems are hard to solve. period. They should focus on the productivity gains in the areas where Rails shines, and try to avoid the areas where it doesn’t.”