HN user

scottlilly

214 karma
Posts3
Comments71
View on HN

Several years ago, I wrote a chess-like game where the shape of the pieces showed their potential moves (https://github.com/scottlilly/mogrichess). This was needed because the a capturing piece gained the movement abilities of the piece it could capture, so pieces' movement abilities were always changing.

Unfortunately, I never got around to writing a good AI so you could play against the computer. At some point, I'd like to get back to that project.

I remember a version named "dBrief", for those of us programming dBase/Clipper code. It was a great tool back then.

I've been using a Manta Sleep mask (no speakers) for the last year and half, and love it. Unlike the cheap eye mask, it doesn't have an elastic strap that eventually gets out of shape. And it blocks 100% of light for me.

As a side sleeper, I can't use masks with speakers or even long ear plugs, as they put enough pressure on my ear cartilage that they make sleep uncomfortable.

I'll second Siteground. My WordPress sites were gradually getting slower on DreamHost - with support saying there weren't any problems. I switched to Siteground a few months ago, and so far, I've been happy with them.

Siteground had a "move my WordPress site" plugin that worked much smoother than I expected.

I've been streaming some of my side projects on Twitch, with OBS.

During the stream, I keep up a fairly constant spoken description of what I'm doing, what I'm thinking, what problem I'm stuck on, etc.

I've noticed I've also been speaking my thoughts out loud when programming, but not streaming. It ends up being a continuous "rubber duck" conversation, and feels (completely subjectively) like it helps me develop easier/better.

I've had my personal domain since 1999. It was originally hand-coded HTML, but has been WordPress for at least the last eight years.

Back in 2014 I wrote a beginner's guide to C#, with the lessons building a very simple (non-graphical) role playing game. It was mostly to show the thinking behind starting out very simple, with the basics of objects, and eventually build a program that is larger and "complete".

It got a little popular and I've received quite a few messages/comments from people who've told me the lessons helped them understand things better in their programming courses at college or code camps. Those messages have been a lot more fulfilling than being coder #12 on $BigCo's multimillion-dollar, multi-year project.

It's also a nice thing to point to when interviewing. Just like a public GitHub repo, I doubt most interviewers take more than a cursory glance at it, but it is a way to stand out from the crowd of candidates who don't have a technical blog.

I've had times when I've burnt out and haven't posted for a year or more. Other times, I get a burst of energy and write every day. There is a bit of pressure to feel like I should be writing and posting. And, since I have programming guides, there are occasional support questions to answer (especially when Microsoft changes Visual Studio or moves from .NET Framework to .NET Core then to .NET 5/6). But, it usually doesn't take too long to deal with that.

On the technical side, it has been a bit of a pain to go through web hosts every few years. The hosting service eventually gets bought out, service quality goes down, or the site gets slow (and support says, "It looks OK to me"), etc.

Several years ago, I wrote a Greasemonkey script to do this. I haven't used it in years, and am not sure if there's an alternative for Brave browser (my new standard).

It basically looked for all the "a" elements in the DOM and:

1. Set the href to call a JavaScript void

2. Set the element style's text-decoration to none

3. Set the element style's background color to #f3f315

I've been working on something (probably) similar in C#.

The idea is to tag files/documents with attributes like "auto", "insurance", "2022", encrypt the file locally (using your manually entered key), copy it to a network share/cloud storage/etc., and add the tags and document information to a database.

Later on, you can search for documents based on the tags and get a decrypted copy of the file.

Intuit forever lost my business when they tried to run my QuickBooks Payroll from a bank account I deactivated, after moving to a new bank (and updating my bank information in QuickBooks). They then charged me a $100 non-sufficient funds fee because they tried to pull the money from the deactivated account.

After 6-7 hours of dealing with the most aggressively-incompetent "support" I've ever had the misfortune to encounter, I cancelled every Intuit product/service I was using.

The reason they get away with this type of behavior is because we're all trained to fear the IRS to such a degree that we just want someone else who promises to "take care of everything" for us. And what recourse do we have when they behave badly? The court system? That's just as obfuscated and frustrating as the IRS. How much more of my time and money am I willing to put into dealing with Inuit? By the numbers, the smartest move is to just let this go.

It's everyone just settling for the lesser of evils/frustrations - until they get burnt badly enough.

https://github.com/ScottLilly/MogriChess

It's a variation of chess where the capturing piece acquires the movement capabilities of the piece it captured.

I originally wrote a version seven years ago, but never got far in building a good AI for the bot player. As much as I like the idea behind the game, the program is really a testbench for me to work on memory and speed optimization techniques and probably eventually learn some AI/ML.

It's frustrating, the number of recruiters who don't provide the job description and compensation - even when directly asked for them.

I keep "Can you please send me the job description and pay rate, so I can let you know if I'm interested?" in a text file, so I can easily copy-paste it.

I also created a web page, to send a link to the most annoying recruiters (https://hellotechrecruiters.com/), but haven't used it - yet.

These are my uBlock settings for YouTube. They actually make using YouTube pleasant.

www.youtube.com###secondary

www.youtube.com##ytd-browse[page-subtype="home"] #primary

www.youtube.com##.ytp-show-tiles.ytp-endscreen-paginate.videowall-endscreen.ytp-player-content.html5-endscreen

I've generally followed the article's outline for some programming tutorials I created.

The lessons are based on building a simple role-playing game. They try to quickly get to something to make the students feel, "I wrote a program!". I try to get them creating a screen, displaying a little data on it, and adding a button that makes a change they can see on the screen.

However, a big problem is that this approach avoids a lot of good architectural decisions. I don't want to spend the first twenty lessons describing abstract application architecture. So, as the lessons progress, and students ask for more-advanced features, I inevitably need to do a big series of refactoring lessons - which loses a good percentage of the students.

Another struggle has been with the language and tools changing over the years. I really wish people stopped using the lessons I wrote in 2014, with Windows Forms, .Net Framework 4.5, and Visual Studio 2013. Most of my support has been for version issues. Unfortunately, I don't have the time/energy to re-do all those lessons and videos.

My gut feeling is that there's still good value in frequent demos/checkpoints/etc. It does create a sense of urgency to complete tasks and lets the owner know that progress is really being made.

Besides undercommitting for the sprint, I've seen a lot of point inflation. Developers start padding their story point estimates to allow for extra time.

The worst case I ever saw was a team of five developers breaking down a feature request into very small stories with total points that would require the whole team's workload for two sprints. I completed all those stories by myself in three days. I'm good, but not that good. I suspect the team was so tired/afraid of being admonished by the Product Owner, they just kept padding and padding their estimates.

Of course, no one bothered to look at the cause of the problem behind the developers massively over-estimating required effort. "The Process" is always right, and the people are always wrong. Isn't that the first principle of the Agile Manifesto (sarcasm intended)?

It has its positives and negatives - but I'd say mostly positive.

It's a little difficult to hold conversations with chat while trying to remember what I'm doing with the program. It also feels a little awkward talking to an empty chat (which is what to expect when first starting out). You potentially need to handle spammers and trolls.

On the positive side, I've watched other streaming programmers, and met programmers in chats. We've shared ideas with each other, and it's giving me new ideas and interests. And, it gets me out of my comfort zone, which is the only way to grow.

If it ever becomes more pain than pleasure, I can always stop.

I'm also a fan of using Kanban for most corporate line-of-business development.

In almost every Scrum team I've worked with, they get close to the end of the iteration and start doing bad things - just to fit their interpretation of Scrum.

At the end of the iteration, they have a unfinished tasks and one of two things happens.

The ScrumMaster/Product Owner/Manager starts berating them for "not being committed to completing tasks within the scrum" (regardless of the fact the task will take as long as it takes, and same SM/PO/Manager has been ignoring the problems mentioned in the daily stand-up).

Or, they mark that task as "complete", but make a new story for the remaining testing/bug fix/additional requirements work. They eventually have to deal with the fact their burndown chart is almost flat, since they're creating a half point of work for every point they close.

They also have people who complete their tasks early, but don't want to bring in another story, because that's "a violation of Scrum". Or they're worried about not being able to complete it by the end of the iteration and going through the previously-mentioned problem.

And no amount of bringing this up in retrospectives will change anything. In the scientific method, if your hypothesis fails in reality, you reject the hypothesis and search for another. In IT project management, when your process fails in reality, most people apparently prefer to reject reality.

Just admit you're doing Kanban and stop causing the problems created by arbitrary deadlines created by your iterations.

I have a mechanical IWC watch from 1947 that still works well, and some other, newer mechanical watches I expect to last for decades (with proper maintenance).

During the lockdown, I've replaced most of my kitchen items with things I expect to last a long time - like high-quality knives and sturdy stainless steel pots and pans that can be used on any cooktop (including induction).

My shoes and boots can all be resoled, and I own enough pairs to rotate through them, which should help them last longer.

I'm at the point in life where I have most things I really need. If I do buy something, it's usually to replace a low-quality item with something built to last.

I left my last contracting project around six weeks ago because of encountering this attitude - yet again.

I wrote my first custom business program 40 years ago. Since then, I've only been on two teams that didn't exhibit this attitude.

At this point, I really don't want to continue programming for a living, precisely because so many people adamantly refuse to fix problems with painfully obvious (and quick and cheap) solutions.

I've given up on trying to get people to change their behavior. If I do continue programming, my approach will be to try to find one of those rare teams that actually changes and improves.

I did a 23 & Me test, pulled down my raw data, and ran the data through some services that check more things than 23 & Me. One of my SNPs (Single Nucleotide Polymorphisms) indicated I have a higher chance of a psychotic reaction to marijuana (it's been a long time, so I may not be remembering everything exactly).

I've never smoked, so can't say anything anecdotal. But, I found it interesting that this was something that might be determined (affected?) by our genes.

The version of this I've always heard is, "Any problem that can be solved by writing a check you can afford to write, is not really a problem."

So, if your car suddenly needs a $500 repair, and you have $2500 in emergency savings, that's not a "problem". It's a contingency you were prepared to handle.