Let me tell you a story about when I cut months of work off of a project. Part of Rheaply’s offerings is an inventory management platform. A major problem customers run into is data entry - name & description is not enough, we need colors and manufacturers, dimensions and weights,| Dan Lew Codes
Socrates once said “the unexamined life is not worth living.” He was immediately sentenced to death afterwards. I, too, often find myself examining the minutiae of programming languages. Thankfully, I have not been put to death for it (yet). After spending more than a decade honing my Android development skills,| Dan Lew Codes
(This article is spoiler-free.) In the past few years, I’ve fallen in love with exploration in video games. This mechanic is key in games like Outer Wilds or Subnautica. You’re dropped into the middle of a world and are given free reign to go anywhere, discovering many surprises| Dan Lew Codes
Well. That was quite the year. I didn't do nearly as much this year as in past years for pandemic reasons. I've got a ton of ideas for more blog posts but... finding the will to write them is rough right now. Hopefully things get better next year and I| Dan Lew Codes
For a long time at Trello Android, we used the same class for parsing API calls (via Gson), making DB transactions (via OrmLite), and displaying data in the UI. Here’s a pseudo-code-y example of a board: @DatabaseTable(tableName = "boards") data class Board( @DatabaseField(columnName = “name”) @SerializedName("BoardName") private var| Dan Lew Codes
I continue to do less and less each year due to the dual woes of raising a toddler and navigating a pandemic. I also took three months off work this summer and I didn't much feel like doing anything tech then! I suspect that 2022 won't be much more productive,| Dan Lew Codes
Trello Android recently converted from using Gson [https://github.com/google/gson] to Moshi [https://github.com/square/moshi] for handling JSON. It was a bit tricky so I wanted to document the process. (For context, Trello Android primarily parses JSON. We rarely serialize JSON, and thus most of the| Dan Lew Codes
There are tons of articles online that discuss the articles/talks/books that you must consume to become a true programmer [https://en.wikipedia.org/wiki/No_true_Scotsman]. I dislike this framing; it’s gatekeeping, plus software development is such a varied discipline that one person’s essential reading| Dan Lew Codes
Here’s my thinking around this year’s Edina school board elections. The short version is that I’m voting for Erica Allenburg, Dan Arom, Michael Birdman, and Karen Gabler, but read on for more details. -------------------------------------------------------------------------------- The Edina school board [https://www.edinaschools.org/Page/5225] is composed of| Dan Lew Codes
The following code converts an object to JSON and then back again: val adapter = Moshi.Builder().build().adapter(Foo::class.java) val foo = Foo(bar = null) val json = adapter.toJson(foo) val foo2 = adapter.fromJson(json) check(foo == foo2) I think most of us would expect check() to pass, but| Dan Lew Codes
In RxJava, PublishSubject [http://reactivex.io/RxJava/3.x/javadoc/io/reactivex/rxjava3/subjects/PublishSubject.html] (or PublishRelay [https://github.com/JakeWharton/RxRelay] if you’re a cool kid) is a gizmo for manually pumping data into streams like in this contrived example: private val socketSubject = PublishSubject.create() fun| Dan Lew Codes
One of the best changes I’ve made at work recently is to stop nitpicking in code reviews. Nitpicking isn’t about code that is wrong but suboptimal. It’s pointing out a variable name that could use a more appropriate word, a conditional that could be formatted more cleanly,| Dan Lew Codes
At Trello Android, we’ve been considering switching from RxJava to coroutines. We’ve already been using coroutines here and there, but it wasn’t something that we could consider replacing RxJava with until recently because of missing functionality. Now, with the addition of StateFlow and SharedFlow [https://blog.jetbrains.| Dan Lew Codes
This article is a write-up of a talk I gave at MinneBar 2022. Instead of reading this, you could also watch the recording or view the slides. The title of this talk is "maintaining software correctness." But what exactly do I mean by “correctness”? Let me set the scene with| Dan Lew Codes