Writing by David Bazile
Occasionally, I’ll write about things. Generally lessons learned, interesting discoveries and other stuff like that.
-
libvirt notes
This is a living document containing notes, howtos and lessons-learned about installing and running VMs in libvirt I started for the purpose of keeping what I’ve learned committed to memory. I’ve published it so maybe other can also get use from it.
-
Debloating Windows with win_debloater.ps1
Sharing this script I use to make using Windows less obnoxious by removing a lot of the garbage Microsoft piled onto a default Windows install.
-
Comment on HN article titled 'The Reddit blackout has left Google barren and full of holes' (emphasis mine)
The problem is that the open internet is dying. What used to be blogs and forums now is Reddit. Tens of thousands (hundreds of thousands?) of communities that had their own wiki, blog, forum, … are now reduced to be a Subreddit.
The Internet has become fragile. One service goes down and everybody suffers. If the top 10 services went down most people would think that there is no Internet at all.
E-Mail is the last standing service that is way more open that the rest. But the raise of Whatsapp and equivalents are challenging that. One day all our communication will depend on a monopoly. We are starting to know what would have happened if AT&T have never been split.
@hourago, link
-
Fixing Windows 10 spice-guest-tools Agent crash-on-start
I run my virtualization workloads in libvirt but recently had a problem with a new Windows 10 guest not being able to run vdagent (screen resolution resizing, clipboard sharing, sane mouse cursor, etc).
-
Tech Readiness: How technology has affected American society over the last 15 years
I started writing this essay back in late 2019 after seeing scary recurring patterns of behavior around the use of technology in the areas of American society I have visibility into. With every passing day, the more I see how normies interact with tech, the more I’m convinced that their prolonged exposure to it contributes to their misery. Bear with me as I attempt to philosophize for a moment.
-
Quote: Logic vs. Empathy
Logic may help us reach new heights, but empathy is what makes us human.
Honestly wish I knew; this was pulled from random memery
-
Razer: Decent hardware ruined by bad software; change my mind
An episode in which I buy another Razer product and the Kafkaesque “utility” of Razer’s Synapse software causes buyers remorse.
-
PSA - Gmail may be marking YouTube notifications as spam
Public Service Announcement: Check your spam folder for YouTube notifications if you have Gmail forwarding your mail to another account.
-
Apple Music on Linux
Apple Music is finally available on Linux!
-
End of an Era?
May have to decommission Landsat Viewer because it looks like Planet.com doesn’t offer
freeloaderenthusiast use of their APIs anymore. :( -
Raspbian Notes (Updated)
Keeping a few notes in an easy-to-reach place lest I forget (or end up having to reimage the disk after wrecking things beyond repair and forgetting to back stuff up first…)
-
Audible Gnome Notifications
A ~225 LOC program for making Gnome’s notifications audible by monitoring DBus for common notification pathways and playing a sound when a message matches a certain pattern (Updated 2021-02-27).
-
iCloud.com's Notes app keybindings fixed
No more copy/paste from Sublime into iCloud.com’s Notes app.
-
Compatibility of Cost-Center Development and Usability
Lessons learned over two years and several projects attempting to apply what I had learned after completing my masters in User Experience Design.
-
Watching Hulu and Prime Video in Firefox on Fedora
I accidentally discovered how to get Firefox on Fedora to play Hulu and Amazon Prime Videos and I’m finally Chrome-free again. 🎉.
-
A Nicer MFA Workflow with awscli
This utility tries to make the multifactor authentication (MFA) login workflow with awscli a little more user-friendly.
-
Bootstrapping EC2 instances with user-data "resource bundles"
This utility lets you maintain config files and scripts as actual files that get bundled up into the userdata instead of trying to interweave everything in hundreds of lines of brittle
cat <<-EOT ... EOT
blocks or take on the overhead of pre-staging files in S3 then pulling them in from the instance. -
Architecture, Deployment and Operations
A baseline application development and deployment model based on lessons learned from the last two years of building, extending and deploying apps in CI/CD in “enterprise” GIS.
-
Added a new phrase to my lexicon
“drive-by” UI
A class of user interfaces written by developers who look down on frontend developers because “UI is easy”. These developers build spectacularly brittle UIs in a short amount of time, then move on to whatever other activity they deem worthy of their skills, leaving chaos and destruction in their wake.
These hastily-built UIs underperform and blow up regularly, after which they usually become the responsibility of actual frontend developers to extend.
-
Outlook.com and Data Loss
If you’re using Outlook.com to autoforward to another email address, turn off “delete after forwarding” and make sure it’s not silently dropping messages.
-
Quote: Clarity
How do we convince people that in programming simplicity and clarity—in short: what mathematicians call “elegance”—are not a dispensable luxury, but a crucial matter that decides between success and failure?
Dijkstra
-
Interaction Design Reflections: Report Writing
This week, we write a mini-report describing our iterations of the prototype design from start to finish.
-
Interaction Design Reflections: Interactive Prototypes (Redux)
This week, we refine the prototypes we built last week based on peer feedback.
-
Interaction Design Reflections: Interactive Prototypes
This week involved building out a fully-interactive prototype of the project mobile app, showing off our designed user journeys and planned interactions.
-
Interaction Design Reflections: Wireframes
This week, we performed an iterative wireframe exercise in order to flesh out the navigation architecture for our imaginary mobile app.
-
Interaction Design Reflections: User Journeys
This week, we mapped out a user journey for an imaginary mobile app.
-
Interaction Design Reflections (Series)
A multi-part series documenting what I’m learning about interaction design.
-
Quote: Complexity Creep
Complexity creep is something that should be fought tooth and nail where ever you find it. It’s the biggest enemy of keeping your code maintainable. As soon as you feel that you’re losing track of what is going on you need to step back and re-think your approach and re-factor. If you don’t then in the long term you’ll lose control completely. It’s not a matter of ‘if’ but ‘when’ and by the time ‘when’ rolls around you will end up wishing you had taken care of the problem when it was still tractable. Short term thinking on long term projects is not an option. @jacquesm, link
-
Added a new word to my lexicon today
hackystack |‘ha•kee•stak|
noun
- A game which is played by piling onto existing technical debt because the time required to pay down the original debt exceeds the amount of time to implement a hack by a factor of 10 or more.
- A not particularly original name for a game in which there are no winners.
Me this morning
-
Defending Function Hoisting in a Commit Message
I recently had to defend the disabling of code style enforcement to allow function hoisting. Knowing that I wouldn’t get away with such a unilateral change without a very good reason, I wrote a lengthy justification in my commit message.
-
Three Cheers for Python
I am solidly a Python fan. There, I said it.
-
Code Style Changes
It appears that working with competent developers who actually get things done has had an observable effect on my coding style over the last year.
-
Quote: A Day in the Life of Wesley Crusher aboard the U.S.S. Enterprise
Wesley: “There’s a guy with a gun over there about to shoot–“
Picard: “STFU WESLEY GET OUT GOD I HATE YOU”
Wesley: “Aye, Captain”
Every episode of Star Trek: The Next Generation
-
Usability Reflections: Analyzing Eye Tracking Data
The final post in the Usability Reflections series.
-
Usability Reflections: Mobile Usability Testing Logistics
This week, we wrote a proposal to customize a usability lab for mobile usability testing.
-
JSBin Experiments
Posting a bunch of recent experiments and prototypes.
-
Usability Reflections: Mobile Usability
I spend this week involved in purely scholastic endeavors: lots of reading about usability on mobile devices.
-
Usability Reflections: Analyzing Remote Usability Test Results
This week, we compile the results from the Loop11 test and generate a high-level report of the findings.
-
Usability Reflections: Designing a Remote Usability Test
This week, we were tasked with designing an actual remote usability test with Loop11 and running real people through it.
-
Usability Reflections: Remote Research
This week’s assignment was to evaluate two online remote research providers, determine the pros and cons and state which of the two we might be inclined to use and why.
-
Usability Reflections: Usability Test Reports
This week’s assignment was to watch the recording sessions of three other students and compile a final usability report.
-
Usability Reflections: Moderating Usability Tests
This week’s assignment was to do a scripted usability test with a live human being for practice.
-
Usability Reflections: Quantitive Metrics
This week’s assignment was to select a single Quantitative Usability Metric and evaluate its benefits and limitations.
-
Usability Reflections: Screening and Tasking Test Candidates
This week’s assignment involved conjuring up a number of screening questions and tasks for potential test candidates.
-
Usability Reflections: Summative vs. Formative Usability Testing
This week’s assignment was to justify the suitability of using either a Summative or Formative Evaluation methodolody for conducting usability testing given a scenario where a project has already entered the development phase.
-
Usability Reflections (Series)
A multi-part series documenting what I’m learning about usability. Contains a moderate amount of sophomoric conjecture, logical gymnastics and the occasional soapbox rant.
-
Quote: Norman on Technology and Design
The same technology that simplifies life by providing more functions in each device also complicates life by making the device harder to learn, harder to use. This is the paradox of technology and the challenge for the designer.
Don Norman, The Design of Everyday Things
-
Quote: An update to Adobe Flash Player is available
function nightmare(laptop) { laptop.wakeFromSleep(); alert("An update to Adobe Flash Player is available."); laptop.updateFlash(); laptop.performOriginalTask(); laptop.sleep(); return nightmare(laptop); }
Flash Update Utility
-
CentOS 7 and Me
Not every day do I get to use the word discombobulation, but when I do, it’s epic.
-
Geeks in Uniform
I ran across a post on HN this morning titled How I got a medal from the Army for writing code. Being a veteran coder myself, this story naturally prompted both a warm-fuzzy feeling and this celebratory me-too! post.
-
Objective-C Revisited
A period of downtime on my current project has freed some mental energy which I decided to use by learning Objective-C. My first exposure to the language was several years ago after which I reeled in horror from its syntax, thinking the only reason people put up with it is for a chance to win the App Store lottery jackpot.
-
A Week With Ruby
I test-drove Ruby for a week and have recorded my results here, lest I forget in six months… At the risk of incurring the wrath of Rubyists everywhere, I am publishing my completely superficial, unrelated-to-any-objective-metric-whatsoever assessment of the language.
-
Setting up PHPUnit and NetBeans 7.4
The last time I attempted to configure NetBeans to use PHPUnit is what drove me to write Tester.php. Second time’s the charm! In this post, I document the steps I took to successfully install PHPUnit 3.7 and configure NetBeans 7.3 and 7.4 to be able to run the tests and use the Skeleton Generator.
-
Changes for 2014
Definitely definitely not a New Years Resolution list. I’ve made a few changes to my workflow for this year. This is my attempt at documenting those changes and their effects.
-
Quote: Teamwork and Maintainability
An important part of working on any technical team is human parallelism – the ability for multiple people to be able to work simultaneously on the same codebase. But it’s also important for teams to be able to work asynchronously too – I should be able to make changes to your code when you’re away, and vice versa.
[…]
Strong developers understand technical debt and try to limit it by designing code that is as maintainable and self-explainable as possible.
Writing readable code really requires developers to change their outlook – your code should last longer in the organization that you. Aaron Stannard on Maintainability #
-
SOAP Opera
The following is an account of my adventures in manually parsing SOAP server responses without actually using SOAP.
-
serializer.py
Written by me this afternoon, this script traverses a directory structure and strings all of the supported files together into a single plaintext file – essentially, a compressionless archive. Under normal circumstances, no one should ever need this…
-
Quote: Who are the Real Heros of Programming?
Who are the real heros of programming?
My customers.
My customers do great things. They often need my software, built and functioning properly for years to do these things. I love building stuff, but they are the real heroes. Just some of the things that they do:
- get the right drugs get to the right people
- get the ambulance to the right address
- get the right materials purchased and delivered
- get the right product built, on time and budget
- get the right product shipped accurately and on time
- make sure the parts going into that airplane are certified
- make sure your insurance claim gets processed properly
- make sure they make enough $, so they can keep doing it
I can go on and on, but you kinda get the idea. I love to learn, to optimize and refactor, and to build beautiful things. But what I do pales in comparison to what they need to do. I never forget that. Ed Weissman, 2010 #
-
Wifi Overcrowding
Labor Day weekend was plagued by intermittent WiFi issues. Streaming was effectively impossible as ping times were sky high and Netflix buffering was occurring once every two minutes. The following is the historical log of events. Names have been changed to protect the innocent.
-
Adventures in Dual Booting
Performed a Windows 7 reinstall this weekend. In the spirit of actually documenting these things so I’m not scrambling off into Google every time I have to do this, this post is a very unscientific description of how I was able to restore GRUB after the install.
-
Python Impressions
Coming from PHP, I’ve found a few differences between the way I like doing things and The Python Way that are seriously challenging my assumptions. Some I like, some I don’t, and some I’m just plain old conflicted about.
-
Slight Change of Course
So, the plan for converting my makeshift CMS, blog.php, over to Python has been shelved indefinitely.