(Note: I'm resurrecting this dormant blog after a long period of inactivity. But this thing bothered me so much that I felt I needed to write a blog about it.) TLDR: The macOS Terminal.app is still buggy and not recommended. Instead consider switching to a 3rd party emulator. The rest of this post describes the faults in far more detail. One of the more lauded features in macOS 26 is the updated…
The backstory here is that mostly I love the Go programming language. But I've been very dismayed by certain statements from some of the core Go team members about topics that have significant ramification for my concurrent application design. Specifically, bold statements to the effect that " channels " are the way to write concurrent programs, and deemphasizing condition variables. (In one case,…
Folks who follow me may know that Go is one of my favorite programming languages. The ethos of Go has historically been closer to that of C, but seems mostly to try to improve on the things that make C less than ideal for lots of projects. One of the challenges that Go has always had is it's very weak support for versioning, dependency management, and vendoring. The Go team's historic promise and…
(Congressman Duncan Hunter is my Representative in the House. Today I sent the letter below to him through the congressional email posting service (which verifies that I'm his constituent). A copy is here for others to read. I encourage everyone, especially those in districts with Republican congressional representation to write a similar letter and send it to their congressman via the site at…
Over the past several weeks I've learned far more than I ever wanted to about the self publishing process. I'm posting some of my findings here in the hopes that they may help others. TLDR; If you're going with eBooks, and you should, consider using an author website to sell it "early", and once your book is finished publish it with Kindle Direct Publishing and Smashwords. Keep the author website…
(No, this is not about GitHub or Microsoft... lol.) Back in March (just a few months ago), I signed up on Leanpub to publish the NNG Reference Manual . I was completely in the dark about how to go about self-publishing a book, and a community member pointed me at Leanpub. Leanpub charged $99 to set up, back in March, and offered a 90% (minus 50 cents) royalty rate. On top of it they let me choose…
The developer crowds are swarming off of GitHub in the wake of today's announcement that Microsoft has agreed to purchase GH for $7.5B. I've already written why I think this acquisition is good for neither GitHub nor Microsoft. I don't think it's good for anyone else either... but maybe at least it alerts us all to the dangers of having all our eggs in the same basket. At the moment my…
So apparently Microsoft wants to buy GitHub . This is a huge mistake for both companies, and would be tragic for pretty much everyone involved. GitHub has become the open source hosting site for code, and for a number of companies, it also hosts private repositories. It's the place to be if you want your code to be found and used by other developers, and frankly, its so much of a de facto standard…
There seems to have been some pretty misleading data out on the Internet, indicating that " nanomsg is dead". The main culprit here is a " postmortem " by Drew Crawford. Unfortunately comments are apparently not working on that post according to Drew himself. The thing is this (apologies to Samuel Clemens): "reports of the death of nanomsg have been greatly exaggerated". So it's time to set the…
Unless you've been living under a rock somewhere, you probably have heard about the crypto currency called "Bitcoin". Lately its skyrocketed in "value", and a number of other currencies based on similar mathematics have also arisen. Collectively, these are termed cryptocurrencies. The idea behind them is fairly ingenious, and based upon the idea that by solving "hard" problems (in terms of…
I'm so disappointed with the online accounting software options available to me; and I've spent far fa r too much time in the past couple of days looking for an accounting solution for my new business. The current state of affairs makes me wonder if just using a spreadsheet might be as easy. I am posting my experiences here for two reasons. To inform others who might have similar needs, and To…
Close-Notify Idiocy? TLS (and presumably SSL) require that implementations send a special disconnect message, "close-notify", when closing a connection. The precise language (from TLS v1.2) reads: The client and the server must share knowledge that the connection is ending in order to avoid a truncation attack. Either party may initiate the exchange of closing messages. close_notify This message…
First off, I'm a developer of open source application libraries, some of which are fairly popular. TLDR: Library developers should not use ExternalProject_Add, but instead rely on FindPackage, demanding that their downstream developers pre-install their dependencies. I recently decided to try to add TLS v1.2 support to one of my messaging libraries, which is written in C and configured via CMake.…
Let me start by saying this... I hate the GPL. Oh yeah, and a heads up, I am just a software engineer, and not a lawyer. Having said that.... I've released software under the GPL, but I never will again. Don't get me wrong, I love open source, but GPL's license terms are unaccountably toxic, creating an island that I am pretty sure that original GPL authors never intended. My Problem.... So I…
(Maybe my MacOS X expert friends will know the answer.) This is a mystery that I cannot seem to figure out. I think its a bug in the operating system, but I cannot seem to figure out the solution, or even explain the behavior to my satisfaction. Occasionally, a shell window (iTerm2) will appear to "forget" my identity. For example: % whoami 501 That's half right... The same command in other window…
Last Friday (October 16, 2016), a major DDoS attack brought down a number of sites across the Internet. My own employer was amongst those affected by the wide spread DNS outage. It turns out that the sheer scale (millions of unique botnet members) was made possible by the IoT, and rather shoddy engineering practices. Its time for device manufacturers and firmware engineers to "grow up", and learn…
In order to debug nanomsg problems on Windows, I recently installed a copy of Windows 8.1 in a VMWare guest VM, along with Visual Studio 14 and CMake 3.5.2. (Yes, I've entered a special plane of Hell, reserved for just for people who try to maintain cross-platform open source software. I think this one might be the tenth plane, that Dante skipped because it was just too damned horrible.) Every…
(Brief reminder that this represents my own personal opinion, not necessarily that of any employer or larger open source project.) I am planning to move my personal git repositories (including mangos , tcell , govisor , less-fork , etc.) from GitHub to GitLab.com . The reasons for this are fairly simple. They have nothing to do whatsoever with technology. I love the GitHub platform, and have been…
Updated Nov 9, 2017: When I originally posted this, nearly two years ago, things were different. As folks may know, I returned back to leadership of nanomsg, and have since released several significant updates including version 1.0.0 and follow ups. I'm also in the process of a complete architectural redesign and rewrite ( nng ), which is fast nearing completion. This post is left here for…
Those who know me know that I have little love for Microsoft Windows. The platform is a special snowflake, and coming from a Unix background (real UNIX , not Linux, btw), every time I'm faced with Windows I feel like I'm in some alternate dimension where everything is a little strange and painful. I have to deal with Windows because of applications. My wife runs Quickbooks (which is one of the…
Yesterday there was a flurry of activity on Twitter, and in retrospect, it seems that some have come away with interpretations of what I said that are other than what I intended. Some of that misunderstanding is pretty unfortunate, so I'd like to set the record straight on a couple of items now. First off, let me begin by saying that this blog, and my Twitter account, are mine alone, and are used…
Some of you who follow me may know that I have recently built a pretty nifty framework for working with terminals. ANSI, ASCII, VT100, Windows Console, etc. Its called Tcell , and located on github. (Its a Go framework though.) It offers many of the same features as curses, though it is most definitely not a clone of curses. Anyway, I decided it should be possible to write a game in this…
As part of my recent work on Tcell , I've recently added some pretty cool functionality for folks who want to have applications that can work reasonably in many different locales. For example, if your terminal is running in UTF-8, you can access a huge repertoire of glyphs / characters. But if you're running in a non-UTF-8 terminal, such as an older ISO 8859-1 (Latin1) or KOI8-R (Russian) locale,…
Introducing Tcell - Terminal functionality for Pure Go apps As part of the work I've done on govisor , I had a desire for rich terminal functionality so that I could build a portable curses-style management application. This turned out to be both easier and harder than I thought. Easier, because there was an implementation to start from -- termbox-go , but harder because that version wasn't…
I've been noticing more and more lately that we have a plethora of libraries and programs written for Go, which don't work on one platform or another. The root cause of these is often the use of direct system call coding to system calls such as ioctl(). On some platforms (illumos/solaris!) there is no such system call. The Problems But this underscores a far far worse problem, that has become…