Ramblings of a software developer with a degree in bioinformatics. Agile development mixed with DNA sequencing - what could go wrong?
Sunday, May 14, 2023
College and Walnut survey responses.
Saturday, March 04, 2023
New "No Turn On Red" signs posted in downtown Bloomington
In 2021, Indiana University law school student Purva Sethi was attempting to cross a street in downtown Bloomington. A driver attempting to make a right turn on red, apparently didn't look right before making the turn, struck and killed Sethi. In response, the Bloomington City Council sensibly authorized the banning of right turns on red on that and many other intersections.
Over the last year, the city of Bloomington has installed nearly 80 new "No Turn On Red" signs in the downtown area. Congratulations to the city for making this excellent improvement for the pedestrian safety! Next, the Indiana Department of Transportation needs to make similar improvements on the roads they control in the city. Trying to cross the 45/46 bypass is a particularly dangerous proposition.
Wednesday, December 14, 2022
New Leaf, New Life – Statement on a New Jail
The Bloomingtonian published a press release from New Leaf, New Life on the new jail being planned in Monroe County.
Their comments:
- A bigger jail is not required and will produce barriers to improving the criminal legal system.
- Historically, whenever a criminal legal system has access to a bigger jail, it finds people to fill it.
- Cheaper, immediately available solutions to jail overcrowding remain available by simply not incarcerating people for technical probation violations, low-level and non-violent crimes, and returning to use or substance use violations.
- The $70M price tag for a new jail is both fiscally and socially irresponsible.
I like the comment that bigger jails find people to fill them. An instance of induced demand, clearly.
Read the full press release here: https://bloomingtonian.com/2022/12/14/press-release-new-leaf-new-life-statement-on-a-new-jail/
Friday, December 09, 2022
Reporting bias against scooters
Here's what happened: On September 18, 2022, Madelyn Howard, heavily intoxicated, came cruising in her Mercedes northbound on Walnut Street at 12th Street, near Domino's Pizza, at a high rate of speed with the passenger-side wheels on the sidewalk. Two people were on the sidewalk at the time. The first managed to jump out of her way, but the second did not. Up on the sidewalk, Howard plowed into Nathaniel Stratton, 22, and he later died from his injuries.
So here we are, two months later, and we find that scooter operating licenses are on hold, partly due to this incident, as reported in the screenshot above. I've heard that scooter operators are considering pulling out of smaller cities completely, and who can blame them with poor reporting like this? WFIU gets it completely wrong.
Tuesday, November 29, 2022
The High Cost of Free Black Friday Parking
On this Giving Tuesday, I heard a plug for a donation from my local public radio station, WFIU. As I was getting out my wallet to send something in, I heard an announcer say, offhandedly, "Sales may have also been helped by free parking downtown during the holiday weekend." So instead of a donation, I'm writing this note to help to set the station straight on this topic.
No, local public radio station, sales were almost definitely not helped by free parking downtown. Setting aside the attraction for drivers of cruising the streets to find that one perfect parking space, and whatever parking meter revenue was given up by the city, there's no telling how many people took advantage of the free parking to let their cars sit and take up space for several hours, blocking access for people who may have wanted to come in and shop. Retail sales depend on customers coming in and out of the stores, not people coming in and browsing for hours at a time. And anyway, people who are going to balk at spending a dollar or two on a parking space are hardly going to be the kind of free spenders that will seriously boost the sales numbers.
So overall, I'd have to say it's unfortunate that the city decided to subsidize drivers and Big Oil in this way. It's revenue that the city has lost, and left shouldering the burden for no benefit are (1) taxpayers who may happen to live downtown, (2) poor people who lack access to a vehicle at all, and (3) people who may choose to ride bicycles or take the bus downtown. Maybe for next Black Friday, the city could offer free bus transit rather than encouraging drivers to bring their personal vehicles downtown.
Monday, March 29, 2021
Limit CPU/Memory When using Docker
After having trouble with the Singularity Pull command on a computing cluster, I decided it might be easier to download the image via Docker to my home machine and upload it from there. I tried it, but Docker turned out to be such a huge resource hog that it rendered my computer unusable. Okay, the thing to do is to limit the resources Docker is allowed; but a quick search seemed to indicate that, while plenty of people had the problem, the only thing to do was to not use virtual machines. Now that is great advice and I wholeheartedly endorse it; but sometimes it's inevitable. Eventually I got to an obscure SuperUser post that had an answer with zero upvotes that pointed to a blog post that explained what to do:
https://itnext.io/wsl2-tips-limit-cpu-memory-when-using-docker-c022535faf6f
Summary: Limit the CPU's and memory available to WSL2 (Docker's underlying mechanism) via a config file. I'll want to remove those limitations pretty quickly as I use WSL pretty heavily, but until I get these few tasks completed at least this will allow me to keep using my machine.
Thursday, February 25, 2021
Including config.h in every file in Visual Studio
Rather than explicitly including a header file in every source file, I like to use gcc's -include flag to add a config.h file, a file holding global configuration options that every source file may or may not be using. For a long time I didn't think that Visual Studio had a similar option, but I finally dug it out here:
https://docs.microsoft.com/en-us/cpp/build/reference/fi-name-forced-include-file?view=msvc-160
The flag is /FI and you can set it in Visual Studio by right-clicking the project, selecting Properties, then C/C++, Advanced, and setting the "Forced Include File" property. Convenient!
Tuesday, October 20, 2020
Julia on a multi-user system
Had occasion to install Julia on a multi-user system today. I downloaded the tarball to my own directory and ran Make. The instructions say that the install is fully contained in the single directory, so you don't have to worry about files being installed in different locations on the system. Once it finished, I moved the directory to a globally accessible location and tried it out. It worked mostly, but nothing about the package
manager would run properly. Eventually I realized that if the directory that I had initially created existed, the package manager worked, but if I deleted it, the package manager stopped working.I deleted everything, recreated the directory in its final, globally available location, and ran Make again. Success! Apparently something in that compile process is looking to see what directory it is in and going back to it for data. I'd like to know what that is.
Tuesday, October 13, 2020
WSL permissions bits
Conflicts between Linux permissions and Windows permissions are a perennial problem for people who switch back and forth between WSL and Windows. One thing that helps is, when mounting a drive, to provide the -o metadata parameter to make sure that files have both Windows and Linux permission bits:
$ sudo mount -t drvfs g: /mnt/g -o metadata
Here's some good information about how WSL permissions work:
https://devblogs.microsoft.com/commandline/chmod-chown-wsl-improvements/
Thursday, September 03, 2020
Research Computing and Data Capabilities Model
The capabilities model allow an institution to evaluate how well it supports various data and research requirements.
https://carcc.org/2020/07/09/announcing-the-rcd-cm-2020-community-data-participation-window/
What I found most interesting is what it refers to as the "five facings"
Researcher Facing Roles
Includes research computing and data staffing, outreach, and advanced support, as well as support in the management of the research lifecycle.Examples: Research IT User Support, Research Facilitators, CI engineers, etc.Data Facing Roles
Includes data creation; data discovery and collection; data analysis and visualization; research data curation, storage, backup, and transfer; and research data policy compliance.Examples: Research Data Management specialists, Data Librarians, Data Scientists, etc.
Software Facing Roles
Includes software package management, research software development, research software optimization or troubleshooting, workflow engineering, containers and cloud computing, securing access to software, and software associated with physical specimens.Examples: Research Software Engineers, Research Computing support, etc.
Systems Facing Roles
Includes infrastructure systems, systems operations, and systems security and compliance.Examples: HPC systems engineers, Storage Engineers, Network specialists, etc.
Strategy and Policy Facing Roles
Includes institutional alignment, culture for research support, funding, and partnerships and engagement with external communities.Examples: Research IT leadership
Friday, August 21, 2020
Traversing a graph database with Gremlin
This is an invaluable tutorial on how to use the Gremlin query language to get results from a graph database. For some reason, all the internal links seem to be broken, but it's a ten-part series I think. Lesson six on projection and selection is particularly useful.
https://www.datastax.com/blog/2017/09/gremlin-recipes-1-understanding-gremlin-traversals
Thursday, July 23, 2020
GDB in threaded code
(gdb) set scheduler-locking on
See here for details: https://sourceware.org/gdb/current/onlinedocs/gdb/All_002dStop-Mode.html
Sunday, July 19, 2020
Creating a Hyperbook in Microsoft Word
Thursday, July 02, 2020
Force-closing an SSH connection
https://superuser.com/q/467398
Friday, June 05, 2020
Downloading files from Google Cloud
that start with gs: For example, the URL for some tumor data is
gs://gatk-best-practices/somatic-b37/HCC1143.bam .
You can't just visit that URL in your browser though; or at least I couldn't. I had to install gsutil as described here: https://cloud.google.com/storage/docs/gsutil_install#linux . This is one of those weird installs where they provide a script online that you can run; a bit dangerous, but at least they don't ask for sudo. It downloads about a gazillion files then asks permission to muck with your settings. I said no, of course, and it gave me a couple of files to source if I wanted. One of them had to do with providing autocomplete, but the other one simply added a directory to the path, so I created
an environment module to do that work. Now I can download the files I need:
$ gsutil cp gs://gatk-best-practices/somatic-b37/HCC1143.bam .
Friday, May 15, 2020
Github offers successor options
https://github.blog/changelog/2020-05-11-account-successors/
Thursday, April 30, 2020
Covid-19 infections by county, rate of increase
Wednesday, April 29, 2020
Generating sequentially increasing values in C++
With a little programming experience, you can come up with a dozen different ways to do this, but here's an obscure one:
std::list<int> l(5);
std::iota(l.begin(), l.end(), 1);
According to CppReference, the function is named after the integer function ⍳ from the programming language APL.
The more you know.
Saturday, April 11, 2020
Command Line tips from CLI Magic
$ lsof -Pan -i tcp -i udp
https://www.patreon.com/posts/climagic-003-5-35703693
Wednesday, April 01, 2020
Covid-19 infections by county, over time
Edit: Updated through Apr. 13 data, and also made the original larger. Not sure if that matters for this web page or not.
This image is licensed under the Creative Commons Attribution-NonCommercial 4.0 International license. I would appreciate attribution if you care to use it!