HNHacker News
TopNewBestAskShowJobs

saidajigumi

5,163 karma · joined August 17, 2012

submissionscomments
saidajigumi··on A hundred UK companies sign up for four-day week with no loss of pay
Having worked at a company that did a four-day week, I'll chime in that it was both amazing and eye opening. I say that as someone who had read Tom DeMarco's now-classic book Slack[1] long ago, after a lot of up-close and personal with the antipatterns described therein. Intellectually, I expected something(??) good but the reality was even more suprising. With a four-day work week, I was able to complete (solo!) a production website application upgrade (Rails 2.x to 4.5) in a very reasonable timeline, and less than I'd heard competent teams failing the same task elsewhere. This wasn't because of any "10x developer" nonsense - it was clearly because I had a /three-day weekend/ every week and came in on Monday clear headed and ready to HIT IT, BABY.

Let me be clear: I later realized that this project would have been a soul-draining death march at many other places I'd worked in my career. Exhausted just a few weeks in, with management hounding the team for schedule estimates that can't possibly exist because management failed to fund maintenance for years.[2] (There were actually rational reasons for this, in this case. tl;dr the project got renewed interest and investment due to a new business case.)

To those who lament on this topic about "devs (in country X) just aren't motivated these days" or whatever, let me suggest something. If you have poor clarity of purpose, poor giving-a-fsck about humans, or a number of other culture failings then yes, you may encounter problems. Your solution is still not to tie your knowledge workers to their desks. You need to fix the root causes of your underlying productivity debt, not pave over them with an overwork-butts-in-seats mentality which just makes things worse in the long run (<--- read DeMarco).

[1]: https://www.amazon.com/Slack-Getting-Burnout-Busywork-Effici...

[2]: Pro tip: "evergreen" ecosystems, especially young and rapidly changing ones like early-mid Ruby/Rails and a lot of current npm/JS-based stuff, often have a wickedly non-linear cost curve if/when maintenance and dependency updates fall off. Some of the most expensive I've encountered of this ilk is when /test infrastructure/ incurred a lot of past churn that wasn't tracked, but suddenly (cough) needs to be updated.

saidajigumi··on RootMyTV is a user-friendly exploit for rooting/jailbreaking LG webOS smart TVs
There were a few TV models a couple of years ago that would stop working after enough time without a network connection. When they reconnect, they're clearly going to download a new cache of ads and transmit their existing tracking data.

Not quite as bad as that, but since I took my Sony TV offline it regularly reboots itself (when "off") and sometimes needs a "hard" start via the physical power button as the remote on has become unresponsive. I strongly suspect that it's just badly coded, going mad trying to connect to resources that don't exist, filling logs, etc. then failing over.

I so want tracked advertising in all of its forms to be outlawed.

saidajigumi··on Charging cars at home at night is not the way to go: study
This is precisely what the linked article says. From the section "Charging Incentives":

“And it’s not just California and Western states. All states may need to rethink electricity pricing structures as their EV charging needs increase and their grid changes,” added Powell, who recently took a postdoctoral research position at ETH Zurich.

The article also includes other interesting and more nuanced policy details than just "change pricing structure", such as:

Another issue with electricity pricing design is charging commercial and industrial customers big fees based on their peak electricity use. This can disincentivize employers from installing chargers, especially once half or more of their employees have EVs. [...]

So yes, there are weird red herrings in this thread from people who want a technology first and a solution second (or never) and/or who don't understand design of incentive structures. But this work doesn't appear suffer from those problems.

saidajigumi··on Supply chain attacks and backdoored dependencies
To a large extent, I think this is the nigh-inevitable outcome of the corporate world's entire take on open source. Open source has been a hugely successful way of distributing code cost centers, which is how we got here. Yet as many have noted, there's no social or economic model for supporting that work much less paying down its tech debt. Beyond a few Major Frameworks with substantial corporate backing, it's pretty grim.

As an aside, I'm not about to blame folks who came up through bootcamps. I've known too many outstanding devs from those backgrounds, and it's clearly enabled many solid devs to enter the field who would otherwise have been excluded. (I've also met a lot of folks with CS degrees who could give fck all about critical code infrastructure concerns.)

Likewise, for decades we've been striving to build languages, platforms, and tools that support powerful abstraction and code reuse. Somewhat amazingly to me, we've realized some of those goals. So I think the problem also isn't devs working at "glue code" level – at some point we must* work at higher abstractions to get useful work done. Reinventing the wheel (or $datastructure) gets old. Again, I'd return to noting that the foundations are rotten, and the age-old bugbear of complexity management has only gotten worse.

saidajigumi··on Tell HN: Have just discovered that I can use any key as Ctrl on my keyboard\
As a software rather than keyboard hack, I've been using and loving the following setup on macOS: * Remap Caps Lock to Ctrl * Then use Hammerspoon[1] to map Ctrl(hold) / Esc (momentary press)

This essentially puts both Ctrl and Esc in a comfortable position on the home row, probably my favorite "ergo hack" ever.

[1] http://www.hammerspoon.org/

saidajigumi··on The PARA Method: A Universal System for Organizing Digital Information
Agreed. Thiago's introductory PARA writings do seem to imply a strict deadline, but like the parent, I use a concrete definition of completion ("completability") as the defining characteristic of a project. If I can't do this, then it's a major red flag and there's some deeper problem and the thing either isn't a project (e.g. it's an "Area" - something you to want to maintain a standard on over time) or it's not well defined enough yet and there's prior work needed.

Case study: Frederico Vittici of MacStories recently wrote about revising his own system to eliminate deadline times from his system as unnecessary overhead that he'd picked up long ago. It was a case of an item from "someone else's system" which was adding stress for no benefit.

All organizational systems are really custom-fit jobs. Look at others' systems and understand the individual techniques and how they fit together. Then apply those to your situation. This is a bit like the advice to not just take someone's complicated dotfile setup (vim, shell, etc.) and add it to your own wholesale. Instead to learn and apply piece-by-piece, understanding that sometimes several pieces must "go in together" to make everything work as intended. (this also applies 100% to every single software team's process in my entire career, btw.)

saidajigumi··on Ask HN: What bits of fundamental knowledge are productivity multipliers?
And likewise, this theme shows up in Tom DeMarco's classic book Slack, which contrasts "efficiency" (the rate at which an organization is moveing towards some goal) vs "effectiveness" (the ability of the organization to choose and steer towards better goals). An important theme of the book is that an organization running full-tilt (maximum "efficiency") intrinsically reduces/eliminates its needed human "slack" to reflect and iterate towards the correct goals. DeMarco also digs into into the many organizational and management anti-patterns, with supporting research, that harm both effectiveness and efficiency (and just plain human well being...)
saidajigumi··on Canon sued for disabling scanner when printers run out of ink
Inkjet printers are fine, so long as you don't need or buy the terrible low-end consumer offerings. As an occasional-use around the house printer, I agree they're absolutely terrible, even without the scammy behavior of virtually every manufacturer. Just inkjet head clogging alone is enough to put anyone off. Inexpensive laser printers have been cheaper, more reliable, and much faster for a decade or more. Pay a bit more these days and you get a nice color laser printer with duplex printing. It's worth noting that even low-end lasers aren't immune to scammy behavior. Manufacturers have pulled sleazy tricks like hard page counts for the toner cartridges, so that even if the cart is still good it won't print. At least in the past, there are often embarrassingly easy workarounds (e.g. a minute to Google, then another minute with a sharpie).

That said, once you get up into the (semi-)pro photo/art printers, they're fantastic for that application. i.e. very much not an office printer. The ink per ml in the bigger cart sizes is often one or more orders of magnitude cheaper. You still need to run them enough to keep the heads nice and clean, but they also usually have decent auto-cleaning support built in to help maintain the print head so long as it's getting used periodically.

saidajigumi··on Data protection ‘shake-up’ takes aim at cookie pop-ups
Because the relevant legislation was crafted by those who fundamentally do not understand how the web (or computers) work. The relevant parts of the GDPR should always have described a protocol where the browser acts as an agent on behalf of the user to declare privacy intent.
saidajigumi··on CSS is no longer a core skill
Can you have the skill to come up with a good design if you have no clue how to implement it or how someone else would?

This is a straw-man. Real-world designers absolutely do have a sense of implementation constraints for their target platforms, yet are usually not deep implementation domain experts. Likewise, experienced UI devs often have a sense of design, but are often not going to draft and refine a whole-cloth new design. I’ve also met a rare unicorn or two: those magic individuals who are fully capable developers and designers.

Put another way: UI design and UI development are adjacent specialties. Visually, they’d be partially overlapping regions in a Venn diagram. A UI designer or a UI dev who somehow knows nothing of their peer discipline will be hamstrung. I’ve met devs who fit this bill, not by their own design, and they’re usually radically unhappy with their work until they manage to pivot to non-UI development.

saidajigumi··on PyPI Xmlrpc Search Disabled
From the Dec 28 update:

The XMLRPC Search endpoint remains disabled due to ongoing request volume. As of this update, there has been no reduction in inbound traffic to the endpoint from abusive IPs and we are unable to re-enable the endpoint, as it would immediately cause PyPI service to degrade again.

This is an ongoing attack on PyPi's search backends since around December 14 from the status logs. For context, this has entirely disabled 'pip search'.

saidajigumi··on Tillis Releases Text of Bipartisan Legislation to Fight Illegal Streaming
Washington State has a single-subject rule that affects both bills in legislature and ballot measures[1]. We've regularly had poorly crafted voter initiatives tossed out by the WA State Supreme Court on this basis.

[1] https://ballotpedia.org/Laws_governing_the_initiative_proces...

saidajigumi··on Apple unveils M1, its first system-on-a-chip for portable Mac computers
AnandTech speculates on a 128-bit DRAM bus[1], but AFAIK Apple hasn't revealed rich details about the memory architecture. It'll be interesting to see what the overall memory bandwidth story looks like as hardware trickles out.

[1] https://www.anandtech.com/show/16226/apple-silicon-m1-a14-de...

saidajigumi··on Engineer admits he wiped 456 Cisco WebEx VMs from AWS after leaving
This article leaves more questions than it answers. Room-elephant number one: access being available after an employee has left is bad. That access remaining five months later is beyond the pale, unless the real story is that the employee created a backdoor. Barring a backdoor, there are further serious questions about the employee retaining this access, presumably without any employer-provided and controlled hardware (e.g. laptop, yubikey, or what-have-you).

Room-elephant number two: motive. The reported facts naively summarize as "oops, ex-employee blew up some stuff in prod, caused problems". <meme>But whyyyyy??</meme> There's no indication of specifics, and seeming denials of some obvious guesses: attempts at hacking (e.g. data exfiltration for profit, which are denied), ransomware, revenge, or anything else that would explain this behavior.

Further confounding everything is the bit where the new employer's response to these revelations is apparently "shrug".

saidajigumi··on Excessive line breaks are bad
This rant feels a bit banal, like it's going up against a straw-man just to be ... a rant. On one hand, I can't think of the last time a developer in an org I've worked with hasn't conspicuously and regularly used text windows wider than 80 columns. On the other, well-written code (and prose!) also exploits limiting line length for clarity and readability. There's clearly a balance, helpful rules of thumb paired with useful times to break those rules.

To be honest, the worst regular example I encounter, in either direction, is Markdown source with no hard line breaks. Markdown fully supports them, and trying to read paragraphs in whatever-hundred character lines is a painful exercise. Such irony, since part of the beauty of Markdown is dual readability in both source and rendered forms.

saidajigumi··on Why is AI so useless for business?
That indeed looks like it, thanks. It also looks like old memory mixed up bits and pieces of it; the interview wasn't in fact set in the machine room shots.
saidajigumi··on Why is AI so useless for business?
Back in the early 90s, my grad AI class referred to AI as the "incredible shrinking field". The class kicked off with a black-and-white newsreel style interview from the 1950's with an MIT professor[1] who says, to eternal breathless infamy, something along the lines of "we'll have machines that can think within five years!"

Part of the challenge is/was the line of thinking "surely if we can solve Hard Problem X, we'll have intelligence!" This turned out to be entirely wrongheaded, since a vast litany of Hard Problems X turned out to have plain old algorithmic solutions.

[1] I keep hoping this shows up online somewhere. It was shot using a machine room as the set, where mid-century modern furniture had been brought in for guest and host!

saidajigumi··on Firefox extensions to make remote work and school a little better
I'd like to offer a recommendation for Zoom Tab Close[1]. It's an extremely simple extension that closes out the leftover tab when a zoom link received by the browser redirects to the desktop app. Just one bit of friction in my day ... gone.

[1] https://addons.mozilla.org/en-US/firefox/addon/zoom-tab-clos...

saidajigumi··on Apple to debut multiple ARM MacBook, desktop models in 2021
> Maybe ten years ago I would have believed this, but with each macOS release the litany of unforced errors just continues to grow.

Apple, of all companies, is not a monolith. There are parts of the company who've been just killing it from a software perspective (Swift, SwiftUI, XCode preview for SwiftUI, etc.) Where they've had severe issues has effectively been quality management across the broader OS.

Also, I'll be very interested to watch what happens over the next couple of major release cycles. I think Apple got a major wake-up call with the shitstorm that was the iOS 13 / Catalina release cycle. I'm hoping that they'll be putting in place an outright culture shift to fix that long-term, vs. a one-off "Snow Leopard" tech debt paydown release.

saidajigumi··on Lead-Free Solder Is Better for You
An example of PAPR application: I know of a professional woodturner who uses one, a 3M system IIRC. Beyond potential issues with long-term exposure to wood dust, turners tend to use material with unusual provenance compared to commercial timber. That in turn often means "spalted" – i.e. it's got fungal growth in it. It produces some lovely patterning and coloration in the wood, but which you definitely do not want to be breathing. The PAPR effectively combines breathing protection with a common turner's face shield; it's a compelling combination for that kind of work.
saidajigumi··on WWDC to Be Moved Online
True; rent should be suspended due to the crisis. The mechanics are tricky, and much worse, I have no hope of the actual policy leadership required to see this through here in the US. We're like an off-road vehicle with a suspension system built of cheap glass.
saidajigumi··on WWDC to Be Moved Online
> we’d be figuring out how to temporarily suspend rent, loan payments, and taxes

This. Under society-wide crisis, it's madness that the economic impact is supposed to just stop at landlords, moneylenders, etc. There are instances where individual organizations are trying to do the right thing, but the only humane thing to do is spread the impact (and recovery measures) across everyone.

saidajigumi··on My new favorite vim/tmux bug (2014)
To be honest, I hit my tl;dr threshold on the article, and skimmed only the high level. But speaking personally, I've used vim-tmux-navigator[1] and some related setup on the tmux side[2a][2b] for years, and it's really, really nice. CTRL-{H,J,K,L} navigates seamlessly between vim splits and tmux panes. It works flawlessly, and I wouldn't be without it.

Put another way, there are a lot of tmux users who take advantage of it for its terminal pane management features on a local environment rather than the classic remote-session stability use case ala screen. In that light, some kinds of integration make a ton of sense.

These days, it vaguely annoys me that I can't just navigate between OS (macOS, here) windows by keyboard just as seamlessly. I haven't quite gotten around to solving the problem with Hammerspoon[3] yet.

[1]: https://github.com/christoomey/vim-tmux-navigator

[2a]: https://github.com/jwhitley/dotfiles/blob/master/.tmux.conf#...

[2b]: https://github.com/jwhitley/tilde-local/blob/master/local/bi...

[3]: http://www.hammerspoon.org/

saidajigumi··on $3.4T has been wiped out of the stock market in a week
Then there's Warren Buffet's approach, which is to understand the "value" of the asset. He uses an example around a farm he purchased, one of his early investments. He likened the stock market to a (hypothetical) crazy neighbor to his farm, who every morning shouts a purchase price over the fence at him. One day, the price is half what it was the prior day! Buffet's lesson is that he learned to remain calm, because the underlying value of the investment didn't change.

Thus the challenge is separating market feedback reactions (aka fear and bidding robots) from real-world valuation adjustments (aka mere delayed demand vs. destruction of long-term value).

saidajigumi··on Rust Ghost, Signing Off
> Unfortunately, it turned out that i wasn’t just dissatisfied with my job - i was burned out from living and working in two lives.

This struggle is very real to me. There's always the tension between the day job, Just Plain Life (tm), and various passion projects. Sometimes I have the energy to just push on all fronts, but I've learned that's a limited resource. Pacing that in a sustainable way took a long time to learn, and sometimes means that I just need to aggressively back-burner things before burnout hits.

Best wishes to the author for a good period of rest!

saidajigumi··on Writing a DSL in Lua (2015)
IMO, your comments belie the entire experience of library developers in "DSL-friendly" languages; those with a system of language features that compose well to create what humans perceive as "sub-languages". Ruby and Haskell come to mind immediately, each with a very different set of DSL-enabling attributes.

"The chances your DSL is going to be good is very low." – Nonsense? Yes, API design can be hard. But DSL design at the scale of embedded, ergonomic DSLs is most commonly exactly the same scale as API design. Moreover, there are plentiful examples to draw from these days, especially around builder-type APIs as illustrated in the article. We have quite a suite of well-established patterns to draw from, and they're just not that hard to apply well.

Notably, "language design" doesn't come into it. Almost all proper "language design" decisions for these kind of DSLs are made by the host language – that's why embedded DSLs are so appealing in the first place. There are exceptions when the "language" is really a language (e.g. embedding a Prolog in Haskell or whatever), but most of the DSL examples in the wild end up simply being nice ways to construct rich data structures for consumption/interpretation by some utility library.

saidajigumi··on Shaking Up the Diamond Industry
This is a direct corollary of the existence of the internet and the effect that had on the scarcity of information that supported the local newspaper model. Ben Thompson has written a number of great articles diving into this topic at Stratechery[1]. I understand why blaming CL seems like it should be a thing, but it's absolutely the wrong target: the very existence of the internet made newspapers utterly unsustainable because the scarcity they depended on vanished.

[1] https://stratechery.com/

saidajigumi··on Shaking Up the Diamond Industry
I think you have a vast disconnect between the reality of advertising today vs. the quaint mid-20th century mental model that you seem to hold. Or you're being entirely disingenuous about what people complaining about "advertising" mean.

If modern advertising 1) did not vacuum up personal data in extremely invasive ways, 2) didn't distort the entire business models of the largest tech companies against the interests of the overwhelming majority of their users, and 3) wasn't a broad attack vector on that same user population (dark patterns, outright malware delivery, just plain terrible UX everywhere, etc.)... then there'd probably be very little complaint about advertising, relatively speaking.

Put another way: no one gripes about the existence of Craigslist. Thought experiment: what if the targeted advertising model was illegal, both enforceable and enforced with teeth. How much of what's detrimental about modern advertising would simply vanish, like a bad memory?

saidajigumi··on Apple’s Great GPL Purge (2012)
Beyond licensing, there are software design/architectural issues at play, ala:

Clang is designed as an API from its inception, allowing it to be reused by source analysis tools, refactoring, IDEs (etc) as well as for code generation. GCC is built as a monolithic static compiler, which makes it extremely difficult to use as an API and integrate into other tools. Further, its historic design and current policy makes it difficult to decouple the front-end from the rest of the compiler.

via https://clang.llvm.org/comparison.html, with more points for/against each option at that page.

saidajigumi··on Git Blame-Someone-Else
Seconded. The git blame-someone-else tool is just using git rebase and git commit --amend internally to alter one specified commit.

git filter-branch is perfect for this kind of wholesale revision. filter-branch is essential for tasks like: open-sourcing repos that need some kind of cleanup, massaging repos generated by a VCS migration tool, etc. For example, years ago I participated in the move of a large CVS repo to git; there was significant filter-branch post-processing required to create an acceptable baseline)

Page 1 of 24Next →