Tag: apple
Jumping into the Apple Ecosystem
I think to stay sharp in the tech industry, you have to be in a constant state of uncomfortableness. If you think you know everything and/or aren’t always trying something, you’ll lose your edge fast as your ability to notice trends and adapt atrophies, and when the Really Big Disruptive thing happens you’ll be unable to find your legs.
Tag: blogging
Writing Blogs
One thing I impress upon new developers is to start keeping a blog to journal their discoveries. I’ve been keeping blogs now for over a decade, and I’ve found them incredibly helpful in my growth as a person and a developer.
Migrating from Pelican to Hugo
As you’ve realized from the drastically different look, the site has gotten an overhaul, and I’ve replaced Pelican with Hugo. There was a variety of reasons I made this switch, and to be clear, Pelican is still a fine way of going about making statically-generated sites. But there was a variety of compelling items that made a switch worth an afternoon migration.
Maintaining My Blogs
I’ve been maintaining several blogs for about 10 years, and I’ve come up with a few practices that I use to guide how I keep these going.
Tag: c
Making a Floyd's Triangle (in C)
Some of the most intriguing bits of math can come from the simplest little patterns. Take for instance the Floyd’s Triangle.
Reading stdout output from a child process
I had to deal with a situation in the C language which required reading the stdout from the child process, which was running exec. Since running exec means that the command effectively takes over the process, I needed to make sure whatever it outputted was going back to the parent (as well as still getting the exit value of the exec’d process).
Tag: chef
Dev Diary 2024-07-26
Super excited to be leading a Cookstyle community hackfest coming up on July 30th, drop in if you want to learn how to write Cookstyle/RuboCop rules or play around with the Ruby AST. This stuff melts your brain in the best way :-)
Chef Food Fight Show
I had the privilege of joining the Chef Food Fight show today to discuss Chef Metal.
Tag: coffeeoutside
Dev Diary 2020-07-15
Today I’m going to sing praise to the iCalendar format. With a simple text-based format, you can directly integrate into people’s calendar programs. Why go through all the bother and fuss of using Facebook or Meetup, when a static ics file on a static server can let everyone know the time and place. Ah, if only everything could be this easy.
Dev Diary 2020-07-08
The new CoffeeOutside bot has finally managed to successfully call its first location. Sure, the rewrite took learning 2 programming languages and several hours of my life that I’ll never get back. But the satisfaction of when it finally worked made it worth it.
Tag: computerscience
Didn't Do Comp Sci
Many of us sling code, do product reviews, spend hours in a chair with
nothing but gdb
and silence. And though we talk shop with coworkers
about minor features in the x86 architecture, a dark, ugly secret
lurks.
Tag: devdiary
Dev Diary 2024-08-07
Now that I’m nearly done the awful work of migrating this blog’s handwritten Markdown into ox-hugo generated Markdown, I can start writing a post about the migration process, which I thought could be done in a couple evenings but turned into a week of tedious text munging.
Tag: emacs
Dev Diary 2024-07-26
Super excited to be leading a Cookstyle community hackfest coming up on July 30th, drop in if you want to learn how to write Cookstyle/RuboCop rules or play around with the Ruby AST. This stuff melts your brain in the best way :-)
Chocolate and Peanut Butter, Vim and Emacs
Tag: gaming
DIY Racing Setup
When I got Gran Turismo 6, I went a little overboard and bought a racing wheel to go with it. The problem was how to actually use the thing while sitting on the couch. Fortunately, I came up with a DIY solution that was affordable.
Open Source and Video Games
Richard Stallman (aka RMS) recently just gave his kind-of/sort-of approval to closed source video games. To be honest, I’m surprised that he’s actually weighing the benefits against the harms (if only we could get more politicians doing that…)
I’m not sure if RMS is “giving his permission” or not, but I see a future with games on open systems as a Good Thing.
The Next Generation of Linux Games - GLtron and Armagetron Advanced
This month in NGLG, I’m taking a look at a couple of 3D games that don’t require too much horsepower, but are still fun diversions.
Lightcycle games should seem familiar to anyone who has played the ‘snake’ type games that are common on cell phones. The goal is to box in your opponents with your trail, all the while making sure you don’t slam into their trails (as well as your own!). Often, the games mimic the look and feel from the 1982 film Tron, and require quick reflexes and a mind for strategy.
The Next Generation of Linux Games - Word War VI
Many people have made the switch to Linux, and the question that has continued since the kernel hit 0.01 is “where are the games?”
While the WINE project has done a great job at getting quite a few mainstream games working, there are also many Linux-native gems that are fantastic at whittling away the time. No longer content with Solitaire clones, the community is responding with a wide array of fun games.
Tag: git
Personal Git Monorepo
If you do a lot of open-source/personal software projects spanning multiple repos, you’ll find a fair amount of tooling drift across projects. Keeping up all this tooling was taking up a decent amount of my time, so I decided to look into creating a personal monorepo as a way to simplify tooling by sharing a single git repo.
Your Version Control System Is Making Me Sad
I accidentally started a flame war in the Lynx mailing list by mentioning that it would be nice to have a public source code repository (I mentioned using Git). Some highly opinionated characters on the list started howling that Git is terrible, version control system n is absolutely the best there is, etc. As fun as that bike-shedding is, almost everyone missed the point of the original post - I just wanted easier access to the development source code.
Use Git to save program settings
When I find a neat new trick to put into my Vim settings file, it’s a pain to have to install it across my various machines. It’s especially a pain when I reinstall a machine. The solution came to me - use Git to version control and distribute my settings.
Tag: go
Dev Diary 2020-07-08
The new CoffeeOutside bot has finally managed to successfully call its first location. Sure, the rewrite took learning 2 programming languages and several hours of my life that I’ll never get back. But the satisfaction of when it finally worked made it worth it.
Dev Diary 2018-12-11
Dev Diary 2018-12-10
Tag: icalendar
Dev Diary 2020-07-15
Today I’m going to sing praise to the iCalendar format. With a simple text-based format, you can directly integrate into people’s calendar programs. Why go through all the bother and fuss of using Facebook or Meetup, when a static ics file on a static server can let everyone know the time and place. Ah, if only everything could be this easy.
Tag: linux
Rocking Dual-Framebuffers with Linux
I’m a long-time desktop Linux user, and one of the big reasons I like it is that it allows you to use hardware that is typically considered ‘obsolete’. So many computers are needlessly thrown away because they don’t run the latest Windows, but that doesn’t mean you can’t squeeze another 4-5 years out of that hardware.
How to fix 404 errors on the CUPS web administration page
A bizarre bug I ran into today has lots of CUPS users scratching their head, but I’ve fortunately found the source of the problem.
A Linux Shell Script With An Effective Locking Mechanism Using /proc
I recently had to write a Bash shell script that had locking capabilities, and I couldn’t find any decent examples online that would do the trick. My colleague Laurie showed me this example that works pretty well.
LinuxCon Vancouver 2011
I did a talk at the 2011 LinuxCon in Vancouver. I met a lot of cool folks, saw a lot of cool technology, and had an absolute blast. I took notes during the whole event, and put them up for posterity.
Reflecting on Linux packages and how they are built
I was tasked to build a .deb package recently (the software package for Debian-alike systems such as Debian and Ubuntu). As I was inexperienced in the matter, I frequently consulted the documentation. Unfortunately, the more I worked on building the .deb package, the more I saw how slapdash the documentation and the build-tools are.
Problems auto-mounting USB drives in Linux? Check your permissions!
I just had a bit of an issue on my Slackware laptop where my USB flash drive wouldn’t mount as a user. In KDE, plugging in the USB drive would have the notification pop-up come up, but it wouldn’t let me mount the device.
Voice Recognition in Linux - A Rough Affair
The Next Generation of Linux Games - GLtron and Armagetron Advanced
This month in NGLG, I’m taking a look at a couple of 3D games that don’t require too much horsepower, but are still fun diversions.
Lightcycle games should seem familiar to anyone who has played the ‘snake’ type games that are common on cell phones. The goal is to box in your opponents with your trail, all the while making sure you don’t slam into their trails (as well as your own!). Often, the games mimic the look and feel from the 1982 film Tron, and require quick reflexes and a mind for strategy.
The Next Generation of Linux Games - Word War VI
Many people have made the switch to Linux, and the question that has continued since the kernel hit 0.01 is “where are the games?”
While the WINE project has done a great job at getting quite a few mainstream games working, there are also many Linux-native gems that are fantastic at whittling away the time. No longer content with Solitaire clones, the community is responding with a wide array of fun games.
How to Start a Linux User Group
The Linux User Group (also known as a LUG) has been one of the cornerstones of Linux advocacy ever since its first inception. Bringing together local Linux lovers, it is the grassroots of Linux - where neighbours and other townfolks can sit around a table and discuss the best way to compile the kernel for their machines, or how to get their Slackware network devices going again. It is also a high bandwidth way to share knowledge - if you’ve ever heard of the sneaker-net, you’ll appreciate the advantages of being in a room full of real people who share your interest in open-source software.
Tag: lisp
Dev Diary 2019-09-17
The Lisp journey continues, although I’m starting to get the itch to build something silly with the newfound knowledge. For now I’m going to keep it to simple programs until I can at least finish one of the books I’m reading :-P
Dev Diary 2019-08-26
The Year of Lisp continues, one chapter at a time. I thought I’d clarify a bit how I’m going to read these books (and how I generally go about reading so many darn textbooks in the first place).
Dev Diary 2019-08-23
It’s been a while since I’ve written, but now’s as good time as any to check in a bit. Chatting with one of my co-workers has got me looking once again at Lisp.
Dev Diary 2018-12-25
Dev Diary 2015-03-03
Tag: math
Fun with Combinatorics - Determining n Paths for any Grid
Working on a recent puzzle, I had to find out the number of paths from opposite corners on a grid. So, for example, on a 57 by 35 square grid, to get to the opposite corner of the grid there are 29702210220359396517113784 possible paths.
Tag: mezzano
Dev Diary 2015-02-25
Tag: nicebsd
Dev Diary 2015-09-20
Dev Diary 2015-03-16
Dev Diary 2015-03-13
Dev Diary 2015-03-05
Dev Diary 2015-03-03
Dev Diary 2015-02-25
Dev Diary 2015-02-24
Tag: openbsd
OpenBSD, meet the PlayBook
On the slim chance that there’s another OpenBSD user who also wants to sync files to their BlackBerry Playbook, read on!
Tag: performance
In Matters of Measure
Oh, the times they are a-changing. I was reviewing some code done by a coworker and saw they had .1 seconds for a timeout on one of their checks. I suggested a 1 second timeout, and to satisfy my curiosity ran a test that delivered an unrealistically extreme workload, saturating the CPUs, while still trying to get a socket timeout. And wouldn’t you know it, the timeout of .1 seconds was never reached.
Tag: python
Dev Diary 2020-07-08
The new CoffeeOutside bot has finally managed to successfully call its first location. Sure, the rewrite took learning 2 programming languages and several hours of my life that I’ll never get back. But the satisfaction of when it finally worked made it worth it.
Fun with Binary-Coded Decimal
As part of a project I’m doing, I wrote a little Python library for doing binary-coded decimal.
Tag: rfcs
Know Yer RFCs - RFC 865, Quote of the Day Protocol (STD 23)
This is one of the protocols that I’m kind of surprised isn’t in more use, by virtue of its simplicity in implementation. RFC 865 is a layer 7 debugging RFC where a socket listens for a TCP or UDP connection, and then sends a short, arbitrary message.
Know Yer RFCs - Internet Official Protocol Standards (AKA STD 1)
The first IETF standard was an informational affair, a housekeeping standardization-process snapshot that summed up the current ‘best practice’ RFCs that’s led up to it.
Tag: ruby
Finding a default language
I’ve been writing a lot of Ruby code at home lately, and the next Cyberdelia podcast (when I get around to editing and releasing the episode) is about Ruby too. Some of this is a matter of circumstances, and some of it has been a deeper thinking about how I’ve been approaching my personal software projects.
Ruby: Square Brackets vs. Array.new
Earlier today I did a code review and saw my coworker using Array.new
to create an empty array. This gives the same return value as the
literal constructor []
. But are they the same internally?
Know Yer RFCs - RFC 865, Quote of the Day Protocol (STD 23)
This is one of the protocols that I’m kind of surprised isn’t in more use, by virtue of its simplicity in implementation. RFC 865 is a layer 7 debugging RFC where a socket listens for a TCP or UDP connection, and then sends a short, arbitrary message.
Using i18n in Sinatra
I’ve been playing a lot with Sinatra lately, and so far I’m pretty impressed with it. It works wonderfully for small operations, but there’s a few creature comforts missing, and one of them is internationalization (i18n for short). Fortunately, it’s possible to use the ‘i18n’ gem (which is used in Rails) to accomplish this.
Tag: rust
Dev Diary 2020-07-08
The new CoffeeOutside bot has finally managed to successfully call its first location. Sure, the rewrite took learning 2 programming languages and several hours of my life that I’ll never get back. But the satisfaction of when it finally worked made it worth it.
Rust, Dreamhost shared hosting, and FastCGI
I’ve been playing with Rust recently, and one of the things I wanted to do with it is get it running on Dreamhost’s shared hosting. After a bit of monkeying around, I got a little demo working with FastCGI.
On learning Rust
After 2 previous attempts, I finally managed to cram the Rust language into my head. It took several full days and reading the Rust Programming Language to grok what was going on, but I’m confident I’ll be getting the time investment back in the coming months.
Dev Diary 2018-12-10
Tag: vim
Dev Diary 2020-01-02
It’s time for New Year’s resolutions, so I’m going with something I’ve put off for a while, and that’s finally switching to hjkl for moving around Vim. Oh sure, I could learn another programming language or something, but hjkl just seems like a change that I’ll appreciate the rest of my life.
Chocolate and Peanut Butter, Vim and Emacs
Tag: virtualreality
Oculus Go - First Impressions
I was excited that my Oculus Go arrived a full week ahead of when it was supposed to arrive in the mail. What drew me to the Go is that it’s the first model that seems to me like it could break the mainstream.
Reality, The Metaverse, and Dreams
We live in an incredible time where virtual reality is on the horizon. I’ve had some mind-expanding conversations with several folks about it, and over the course of a few months have compiled a few little thoughts and opinions on VR and the role it potentially has in our lives.