Dart Snake Project Part 5: Dart Snake Jaspr 2023-04-06

For the final segment in the The Dart Snake Project we will create a web implementation using the Jaspr Framework . Jaspr is a web app framework that works for building both server side rendered and client side rendered code. This will allow us to write the app with some of the niceties we had with Flutter while using actual HTML/CSS constructs not the “rendered in a browser” style web technology that Flutter Web provides. The code for this project, as well as screenshots, and other details can be found at the dart-snake GitLab project page . This is open sourced under an Apache 2.0 License.

(More ...)
Dart Snake Project Part 4: Dart Snake Dart Web 2023-04-05

Dart’s heritage is as Google’s 2011 attempt to have a better language for writing websites than JavaScript. For various reasons TypeScript came closer to the mark for developers and Dart has gone on to have utilization in other areas. But its web app heritage is still there for the world to use. This post continues The Dart Snake Project by doing a web app implementation using nothing but the core Dart libraries. The code for this project, as well as screenshots, and other details can be found at the dart-snake GitLab project page . This is open sourced under an Apache 2.0 License.

(More ...)
Dart Snake Project Part 3: Dart Snake for Flutter 2023-04-04

The core driver of Dart usage today is definitely Flutter . It is what got me into using Dart, which I now obviously love. The thrust of this series is about using Dart for deployments besides the mobile and desktop space which Flutter is designed for. Yet that is the biggest deployment target. It would therefore make sense that I show how to implement Snake in Flutter as well. The code for this project, as well as screenshots, and other details can be found at the dart-snake GitLab project page . This is open sourced under an Apache 2.0 License.

(More ...)
Dart Snake Project Part 2: Dart Snake for Command Line 2023-04-03

The first Dart Snake target in this project I will discuss is targeting the command line interface (CLI). Here I will show how we create a Dart command line application that will use the snake library from the first step with the ncurses library to make an interactive CLI app. The code for this project, as well as screenshots, and other details can be found at the dart-snake GitLab project page . This is open sourced under an Apache 2.0 License.

(More ...)
Dart Snake Project Part 1: Showing Off Dart (And Learning New Things) 2023-04-02

As I highlighted in my teaser post about my “Snake Game Written in Dart in Many Ways” , I’ve successfully written my first game ever, Snake, using just Dart but targeting almost every target you can think of: command line interfaces (CLI), desktop apps on Windows/Mac/Linux, mobile apps on iOS/Android, and websites. With respect to the web deployment this allowed me explore the entire range of how to write a web app with Dart: from hand-coding your own web app in plain old Dart to using the Jaspr framework to have a more Flutter-like experience but using traditional website components, to Flutter Web essentially rasterizing the Flutter app in the browser.

(More ...)
Dart Experiment: Snake Game in Many Ways 2023-03-31

Yesterday I posted about how inspired I was to try to do server-side Dart again after watching this PeerTube video by Andy Balaam from way back in 2015. In it he was experimenting with the then very new Dart language in the browser doing his usual thing of writing a game of Snake. I’ve honestly never written a game of any kind. That is something I’ve also been really itching to try to do as well. I have been wanting to experiment with doing more server side dart. Snake is a relatively constrained game so it was worth me giving it a shot. The confluence of all that made the urge to try to do both too great to resist.

(More ...)
Kotlin Things I Miss In Dart, Part 1 2023-03-18

Starting in 2021 Dart replaced Kotlin as my favorite language. In the backlog of post ideas for my blog I had a whole bunch of language comparison ideas but haven’t written any of them yet. As I was cranking through some Dart code this week though I was thinking more and more about this. Dart as a language is still evolving. In the Dart 3 alpha notice they talk about some really neat things coming in future versions. With all that there are some Kotlin features big and small that I wish would be added to some future versions. This is the first but probably not the last of these posts, hence the “part 1”, where I figured I’d document it.

(More ...)
Dart for Raw TCP Applications Is Easy 2023-03-12

For most modern applications we do our network transactions using HTTP level. HTTP is riding at the top of the OSI Stack . Usually underneath that, several steps down the stack, at the so-called “Network Layer” is the TCP/IP protocol. There are times when you need to be able to do direct Network Layer calls. Because Dart comes with built-in support for networking for its HTTP needs it also comes with, and exposes to programmers the Network Layer sockets as well. Below is my tutorial on how to set up a very simple bi-direction TCP/IP client/server system using Dart.

The OSI Stack as shown with cats in stacked bins
(More ...)
Annual Review 2022: A Middling Year of Diet and Fitness 2023-01-01

This is a bit of a divergence from the usual annual review process because it is being done in the middle of the year. I therefore am just putting this up here as a way to do comparisons in the future and to have a more complete dataset.

(More ...)
Large Spinning Hard Disk Performance Study 2022-10-19

It started simply enough. I had a hard disk failure, an SSD ironically, which forced me to start rethinking how I was managing my storage. I decided to buy one giant 16 TB USB 3.0 spinning disk to add as a giant drive and leave the high speed internal SSDs for things like the host OS, development VMs, etc. The immediate question was if I should format it as one big partition or not. I thought it was a simple question but ironically there was a dearth of modern articles really exploring the question versus the how to do it. Does it matter or does the OS make it irrelevant? That’s a complicated answer but I have some data to help me make a decision on the matter that I’m going to share here.

(More ...)