HNHacker News
TopNewBestAskShowJobs

titusjohnson

238 karma · joined August 30, 2013

submissionscomments
titusjohnson··on FTC announces "click-to-cancel" rule making it easier to cancel subscriptions
AmEx is great for this. I've used it twice, no issues that I can tell. I had my personal card attached to a BrowserStack account that used a work email address. Forgot to cancel it when I left the job and BrowserStack support was completely useless. One chat session with AmEx later and I receive no more charges from BrowserStack.

Of course I have to remember that they are blocked on that card, should I ever need an account again in the future.

titusjohnson··on Stem cells reverse woman’s diabetes
Thank you for the recommendations! If I had the condition you can bet your ass I'd be building these, both look fantastic. I'm going to bookmark both so I can take the time to read their docs later -- Diabetes management from the POV of a developer is right up my alley and I see tons of interesting info in there already.

There is no way I'm bringing these up to her, though. For my own self-preservation. Over the last few months we've had a long-running argument about the operation of her Dexcom glucose monitor -- she's been convinced that it requires a continuous, active internet signal to function. Her proof was that every time she went into the basement at work, her Dexcom stopped reporting her glucose levels. When she comes upstairs, then she suddenly gets notified that she's been spiking or dipping for the last hour.

Everything under the sun, included the sun (remember that solar flare the other week? Yeah that was also pointed at as a problem) has been blamed for her Dexcom not informing her of dips and spikes. Yesterday evening her new Omnipod app told her to stop enabling Airplane Mode or BatterySaver, as these toggles interrupt bluetooth communications. She's been turning those on every time she goes into the basement at work to save battery.

It's just best if nothing I have touched or created is involved in any way.

titusjohnson··on Only Use Old Computers
You should be testing your software on the typical device it will run on. It's just good engineering to do so. If you have to eBay a bog-standard laptop to do this, do it.

Developing software on the average potato device? Hell no. What a waste of time.

titusjohnson··on Stem cells reverse woman’s diabetes
My partner is a rare example of this. A little over 2 years ago at the age of 37 she was diagnosed as diabetic and put on metformin. The doctor thought it was LADA, or Type 1.5. The then the doctor kinda.... forgot about her? Historically he's been a terrible primary care doctor, just shoves pills and has no discussions so I wasn't super surprised. I'd been asking her to switch doctors for 3 years at that point due to some bad pill prescriptions that sent her suicidal. She was on metformin for 18 months with no meetings with her doctor beyond switching from an instant release to an extended release due to stomach pain. She got really irritated at me for suggesting that she be touching base with her doctor and progressing the care along, so I just dropped the topic and helped with carb counting, meal planning, and paid for a personal trainer.

About 6 months ago she suddenly started dropping weight. Extreme exhaustion (winded after going up a flight of stairs), dropped 30 pounds in two months, she was starting to get skeletal. Still not being active with her healthcare, but when she went under 110lbs for the first time since she was 14, she finally found the motivation she needed to get proactive and quickly found a better team of doctors who diagnosed her with Type 1 and put her on Insulin immediately.

Today we're putting her 2nd Omnipod on her for insulin delivery. She should get a closed loop system soon, I guess the iPhone support for her Omnipod+Dexcom combo is still going through FDA approval. Her new team says she's lucky to be alive at all. They've been going through her extensive medical history, pointing at occasions when she was hospitalized during her menses and saying "here you were going through diabetic ketoacidosis, that's why you were vomiting constantly", "every evening you're going critically low, that's why family thought you were a closet alcoholic", and "on average during the day your blood glucose is far, far too high, that's why you drink and piss gallons of water per day but are never sated".

So... I guess yes you can get lucky and survive, but with symptoms strong enough that it _should_ be caught.

titusjohnson··on Git-absorb: Git commit –fixup, but automatic
Agreed. It's been a decade or more since I and the teams I worked with did anything other than squash-merging a feature branch into main. The PR body becomes the commit body for the squash, and we're done.

Developers can be as f'n messy as they want on their branches, no one cares because it never hits main.

titusjohnson··on Do programmers need touch typing?
There was certainly an art to being able to get your jokes in at just the right time. A few seconds(messages) later and it's just not funny, so type fast!
titusjohnson··on Bank of America raises minimum hourly pay
You see these pneumatic tubes at Drive-Thru Pharmacies as well.
titusjohnson··on How on-the-wrist sleep apnea detection works
> I'd be fine with it being something as simple as the local pharmacy can keep them in the back and you bring in the prescription from the doctor

Just curious, why do you think a Dr. should be involved at all?

titusjohnson··on 'Unschooling' parents put their kids in charge of their own educations
As a homeschooled kid, the thing about your story that really sticks out to me is that you even felt you had the agency to make any of these decisions.

You just ... decided to enroll? You, as a child, can do that? I didn't obtain that kind of personal agency until my early 20's. My late teens were a confusing time of basically waiting for any kind of adult to tell me what I was allowed to do.

You didn't like it and ... just went back to a different school? That's something that you can do?

You just... dropped out? You had that option?

My experience is the polar opposite. My mom kept a vice grip on everything we learned. Bringing up wanting to go to Public School resulted in literal months of venom and self-victimization (aka: "I guess you hate how I sacrificed my body to bring you into this world ,and I sacrificed my dreams to stay here and raise good Christian children"), various punishments, and bible verse memorization assignments. Books were excised from the house if there was a hint of independence within. My mom literally took away a book I was reading about an orphan boy and his love of dirt-bike racing because on one page, the boy's foster parents asked him if he would attend church with them, he politely declined, and the foster parents accepted that. My Mom told me she "didn't want me thinking that was OK" when she took it away.

To me, being accepting of home-schooling is in the same camp as ditching all CI tooling because "every developer's style is valid and has its benefits". Accepting home-schooling means accepting that the lowest common denominator is good enough to teach the next generation.

titusjohnson··on 'Unschooling' parents put their kids in charge of their own educations
From the very bottom of the article..

> Still, many survivors of unschooling, and home schooling, aren’t buying it. The projection of normalcy, and even success, has long been part of the home-schooling toolkit.

> “This is exactly how my mother was back in the 90s,” says Tyler. “For her, it was touring support groups and conferences and whatnot, to brag about how happy, well-adjusted and educated her children were, while neglecting to mention the suicide attempts, running away, screaming and tears that permeated daily life.”

This maps to my experience being Homeschooled. To this day my Mom refuses to acknowledge that every one of her children needed remedial education the moment we left the home, from basic math & composition down to just plain old human interaction. All 5 of us have been "that weird kid" well into our 20's, until we caught up enough to mask our history.

titusjohnson··on Judges rule Big Tech's free ride on Section 230 is over
Is it really adding governmental control, or is it removing a governmental control? From my perspective Section 280 was controlling me, a private citizen, by saying "you cannot touch these entities"
titusjohnson··on Zen, a Arc-like open-source browser based on the Firefox engine
I was too succinct in my previous message, I guess.

To you and I there is a difference between tracking and metrics. To everyone else there is none. All my Mom knows is that the software dialed home. It is impossible to verify what it said to the mothership. The popup promised "Metrics only!" but then Little Snitch lit up like a Christmas tree 4 times! It's stealing my info!

How does the consumer know that the "metrics" didn't include home IP, OS version, and god knows whatever else? Again, metrics are a subset of data. Even the internet request to ship a fully anonymized usage info like "saved_files: 10, opened_files: 11" metric set contains Gobs and Gobs of identifiable information on and around the request itself. Does the company stash inbound request data for troubleshooting? That's fucking tracking bro. Your data dog instance is chock-full of tracking info.

It is not reasonable to expect end-users to be able to verify the claim that "only metrics are tracked". It is safer for everyone to assume this is a bald-faced lie, because at the end of the day it is impossible to verify to any level of certainty.

titusjohnson··on Zen, a Arc-like open-source browser based on the Firefox engine
There's no difference between tracking and metrics, they're the same thing. You get your metrics out of the data you track. Browser phone home? Tracking.

And there's no way for a user to validate that any tracking is indeed anonymous. The technical level needed to asses this is just... out of reach for everyone (the quantity of people who can properly verify this is small enough we can safely ignore it when speaking generally and use the coloquialism Everyone)

titusjohnson··on Firefox Browser Ported to HaikuOS
It flat-out made training people on CSS tolerable. I could have them install the Bookmarklet (before it became an Extension), show them how to use it, and boom, instant productivity boost. Being able to dig through the DOM and figure out what element was applying excessive margin or padding reduced 80% of my "heeeelp!" requests.

Within months I couldn't imagine working without it.

titusjohnson··on Sublime Text 4 Build 4180
Sublime Text has been my standby for years, nearly a decade actually, I have paid a couple of times. It's a fantastic piece of software for the price. 6 months ago I opened Sublime, let it update, updated packages, and nearly all the context menu options that the SideBarEnhancements added were just gone. I tracked it down to a commit labeled simply "simplify package" [1].

At the time there wasn't a discussion happening regarding how to restore the lost menu items. Just a useless commit nuking things I relied on every day. I suddenly felt very.... violated? Distrustful? I know that titoBouzout owes me nothing, SideBarEnhancements is free after all, but I was reminded of the constant issues NPM has with maintaining a chain of trust. This is my core toolset, how I make my living, and I have no tolerance for things just vanishing without a reason.

So I've switched to Zed. Overall it's nice. It's as responsive as Sublime was, the "feel" is there. It has decent-enough key mapping and an out-of-the-box Sublime mode, so I haven't spent too much time figuring out how to incant my favorite shortcuts. It has a much, much better Terminal, and the Copilot integration is very nice. I've had no complaints.

I still have Sublime installed, but I stripped out most of the plugins and use it as a vanilla text editor. I continue to use Sublime Merge on a daily basis (literally just for point & click commit building).

I guess my moral is, extendable ecosystems are amazing, but just because you paid for the core software does not mean free add-ons will be, or remain, as high quality as the core software, or even continue to exist.

1 - https://github.com/titoBouzout/SideBarEnhancements/commit/d6...

titusjohnson··on Rails Is Good Enough
> I was writing a rake task and all I did was write a function above the rake task definition. That function was loaded globally and conflicted with another function. If it’s in a rake file then what object is it a part of? This goes back to my main issue about how you don’t know where shit comes from in ruby and there’s too much implicit magic.

You added a method to the base `Object` object. Everything is an Object in Ruby. Unlike Javascript, blocks in Ruby (of which Rake tasks are comprised entirely of) do not create a private context in which to hide functions. If you redefined that same function name later in the task, it would clobber your original implementation.

> Classes already do that. I’d much rather create an instance of a helper object than magically inject methods into my class. It makes the code more explicit and discoverable too.

You might even want to create a helper class, and include several modules by which to build out the functionality of that helper class. That class might even inherit from a baser class, providing even more functionality. All options are available to you in Ruby.

> To each their own, but frankly your assertions sound like nonsense to me.

It sounds like you didn't bother to learn much about the language, or framework, at all. To each their own indeed.

titusjohnson··on "We ran out of columns"
Oh man, that brings me back. My first tech job was an ecommerce company that a basic online cart with backed by incredibly in-depth set of industry catalogs. We also sold a marketing package as an add-on to the online store where we would proactivly contact our customers and get the info from them to replicate their monthly/weekly physical advertising on the web. This was back in '05-ish, lots of money to be made just helping people get their business online.

We had a group of talented designers/artists wrangling Photoshop and pumping out a few of these designs a day, each, and as we scaled up and gained a lot of repeat customers, tracking these PSDs became a big problem. The designers were graphically talented, not technically savvy. The PSDs were stored on a shared NAS drive that the whole company could see. The designers had a complex naming system to manage major revisions, but overall there was no "history" beyond the classic "_v2_2008_09_best.psd" naming technique.

Several times every week I had to fix "accidentally dragged the PSD folder somewhere and lost it" level problems. Getting IM'd from tech support because the underlying server was falling over trying to clone the multi-GB folder 3 times, logging into a workstation as Admin and searching for an updated PSD that the vacationing Designer hadn't synced back to the NAS before leaving for work, that kind of thing.

As soon as I was promoted to Supervisor I made my first big move. It took a lot of training, far more talking than I thought it should (back then I didn't know anything about politics), but I was able to get SVN implemented to replace the NAS share. I wrote quick-reference documents, in-depth guides, (this was before I knew that no one reads anything, ever, for any reason) and eventually just had to do one-on-one training with everyone just to explain the concept and basic useage.

One of the most satisfying feelings of my career continues to be watching attitudes change over the course of a summer. None of the design-y people liked the new set of hoops they had to jump through. Check-Out, Check-In, Lock, etc, it was "too much". Then, at a happy hour someone mentioned how we hadn't lost the PSD folder in a while. Later someone came to me panicking because a client wanted to re-run an ad from 2 months ago with a couple tweaks, and she didn't have the source PSD or the source material -- I did a live demo on how to get a historical version back, and that's when it really clicked with everyone. With internal political will behind the toolset, it now became an IT problem, as our SVN useage was nothing like Engineering's usage.

Of course file locking was a huge PITA, that feature replaced "forgot to copy the changed file back before vacation" as a problem category. But it also eliminated the problem where 2 people would open the same PSD directly from the NAS share, make their changes, and only the last one to save gets their work persisted. So, a toss-up I guess.

titusjohnson··on Rails Is Good Enough
> 1. Code is loaded automatically and globally. I’ve had weird bugs caused by someone creating a function with the same name in a completely different file.

Ruby doesn't have functions. It only has Objects, and methods on those Objects. Generally you won't run into method nuking because generally there's no need to define the same class in different files.

Yes, you can overwrite method definitions on objects, you can even do that dynamically at runtime. Yes, it's a shotgun. No, it's not wrong, it's just another tool in your toolbelt.

> 2. The module system is strange. Why do my file names and class names need to match? Why can’t i just import the files i want like other languages?

You can require whatever you want, named whatever you want. Rails only looks like magic in this regard because it's coded around conventions so that it can abstract away all that boilerplate. Somewhere before you try instantiate MyController, it was require'd into the project for you utilizing those basic language features. `config/application.rb` is a good reading point to start exploring how this works.

A tremendious amount of logic in Rails is derived from how you name things. Don't fight this system, learn it. Fighting it will only be pain and agony, and I promise you there is a reason for why it works the way it does.

There is absolutly nothing stopping you from calling `require 'my_module'` to bring "BobsGreatestModuleEver" into context. You can missmatch all you want. I have no idea _why_ you would want to do that, seems like a bad precident, but go wild. Ruby works this way like any other language.

> 3. Includes (aka mixins) are a bad idea. See below. > 4. Many of the language features are designed to hide how code works. Quite often i wonder to myself “where does this variable/function come from?” #1 is also a good example of this.

Includes/Mixins are designed to encapsulate shared functionality. Like any effective shotgun if you shoot your feet off you'll be hurting, so don't shoot your feet.

Use your console! If you've got a class with a method and you have no f'n idea where it's defined, just ask it to tell you.

        irb(main):002:0> MyWeirdClass.new.method(:search).source_location
        => ["/app/helpers/weird_stuff/search_methods.rb", 4]


> 5. Coming from a typed language, the lack of types makes me feel naked and more prone to screw something up.

Eh, I think this is one of those tech religious war topics. I've wrangled a lot of typescript and I cannot say that having types have made me feel protected in any way. If anything, TS in particular, it's felt like just _more code_, and I'm a fan of not having any more code that can be helped.

That aside, the Ruby way is Duck typing. If your code is in danger of receiving arbitrary properties, it's very straightforward to protect that code by just inspecting the properties. If it walks like a duck and quacks like a duck, it's probably a duck.

        def dangerous_method(arbitrary_thing)
          return unless arbitrary_thing.is_a? KnownThing
          raise UnsupportedPropertyError unless arbitrary_thing.respond_to? :each
          
          arbitrary_thing.map { |d| ... }
        end

> 6. The strange and elitist opinions of ruby fanboys. Sorry but code terseness is not a panacea and “unless” is terrible. It seems like code readability and understandability are less important to this crowd.

Ruby is _all about_ code readability and developer experience. `return unless some_condition?` is gods greatest gift to programming and I will die on that hill.

It can go to an extreme. Like every language you will meet your code golfers who want to take things way, way too far, but that's not unique to Ruby. That's just a people thing. During PR review it's not abnormal for me to ask for terse code to be expanded into a longer form simply for readability.

titusjohnson··on People Behind “The Print Shop” (1985)
Until '98/'99 or so, the C64 was the only computer we at home, and The Print Shop was one of the ~20 or so diskettes kept in the "Used Frequently" storage box. I made so many banners and greeting cards with that thing. Even used it to make all the Birthday and Christmas thank-you cards that my Mom insisted civilized people sent, as long as I personalized it with a thoughtful handwritten line & signature.

I tried to use GEOS but it was just too slow. TPS got me from LOAD "*",8,1 to productivity far, far faster.

titusjohnson··on The effect of CRTs on pixel art
Oh excellent, that's exactly what I'm looking for! Not quite impulse-buy territory but now I know what it'll take.
titusjohnson··on The effect of CRTs on pixel art
One piece of hardware I periodically search the internet for, is a CRT emulation box. I want a piece of physical hardware I can place between my 4-port RCA switcher, and an HDMI connected modern TV, that emulates the display properties of a CRT.

I know that a real CRT would be the best for my nostalgia vibes, but honestly they take up so much space. This theoretical product doesn't need to be perfect, just give me a few knobs to turn to adjust whatever settings are available, and inject vertical bars to fix the aspect ratio. I'd pay good money for such a device.

titusjohnson··on My programming beliefs as of July 2024
Obviously I don't know your product, but that just sounds like an endpoint that exposes a join table.

Any time I see status code sidestepping, it informs me that something more basic has been skipped earlier. "The monitoring is firing too often because of 404 errors, we should make this endpoint send back a 200 all the time so we stop being bothered by errors that are not errors" reads to me like curing a symptom.

titusjohnson··on My programming beliefs as of July 2024
404 is not an error, it's a status code that says "What you asked for does not exist". Why are you worrying about log spam? Why are you monitoring 404s? Now you have an endpoint that lies, how is that better?
titusjohnson··on DVDs are dying right as streaming has made them appealing again
You can. The Right of First Sale gives you the ability to do anything you want to your DVD. You can loan it, rent it, mortgage it, whatever. You cannot copy it, so you'll need to buy enough copies to sustain your rental model, but you can certainly rent out DVDs you own. That's how Netflix started.
titusjohnson··on Mac users served info-stealer malware through Google ads
Adblocking does not constitute "theft" under even the most strained comparison. Just because the post office keeps putting trash in my mailbox doesn't mean it's theft for me to only keep the letters I care about. Throwing ads/spam/trash into the bin instead of keeping it in my house is not theft.
titusjohnson··on Ask HN: Could AI be a dot com sized bubble?
See COBOL
titusjohnson··on Book people think they know why 9-year-olds stop reading for fun
8+ years ago I accepted an offer to join some family on an impromptu weekend trip. Plenty of pool time was expected so I brought the novel I was 3/4ths the way through, its sequel, and an unrelated book on the off-chance I wanted something different. Combined these books took up half my carry-on satchel (I enjoy long epic fantasy), turning it from a simple carry to a painful shoulder-biter and hip-digger.

I purchased a Kindle after that trip. I read a lot more than I used to because between my phone and the physical Kindle I always have my current book ready to go. Physical book purchases can now be hardcover-only because I'm buying for a permanent collection, not endless consumption.

titusjohnson··on Apple Needs a True Low-End iPhone to Help Revive Growth
I suppose losing iOS updates would compel me to upgrade. If history is a guideline I've got ~2 more years. Not too bad, that brings the daily cost of ownership down to $0.42.
titusjohnson··on Apple Needs a True Low-End iPhone to Help Revive Growth
Yeah, I'm still using an 11 Pro. The phone works great, fills all my needs, and I've seen no compelling upgrade reason. $15/mo for service from Mint helps too, I'm no longer seeing a $70/mo bill and thinking that I should be "getting more for my money".

Now that I think about it, it feels exactly like it felt when I paid off my first car. The phone even cost nearly as much as that beater cost me in my youth.

titusjohnson··on I can't stand using VSCode so I wrote my own
Typically by reading docs and writing compliant code.
← PreviousPage 2 of 7Next →