HN user

EsotericAlgo

145 karma
Posts1
Comments48
View on HN

I’ll second this, it’s absolutely a game changer. I’ve used handlebar mounted mirrors and the like but I’ll never willingly go back.

I tend to prefer helmet mounted and I glue them on which isn’t my favorite thing to do on a new helmet. It’s also a bit frustrating when you find yourself cycling in a country that drives on the opposite side.

I do find that on very long tours the week following I’m looking where I’d expect the mirror to be when I want to look behind me.

This reminds me of an oft recommended book "Digital Apollo". One of the driving topics is the human interaction component and the difference in designing a fully automated system versus one that is designed with an operator that can intervene. If I recall correctly, the book presents a dichotomy between the rocketeers and pilots (automate entirely and strap people on for a ride vs design a system controlled by a human).

I think they both have their place, but I think acknowledging it as a system design choice is so helpful even in basic business processes (how will I handle exceptions, how will the person remember to handle a rare exception).

I find myself thinking of this problem frequently. We have lots of modern words for it like observability but I think that removes one a bit from the actual problem.

Daniel's Jewelers | ERP Systems Analyst | REMOTE | Full-time | $40-70/hr

Hey HN! We're a jewelry retailer (~100 mall locations) going through the classic digital transformation story. Our tech stack is built on two endlessly upgraded systems from the 80s (Universe and Magix) that have finally hit EOL. We're modernizing everything - mainly moving to a new ERP (it's a desktop app built in Delphi/Interbase by a third party), plus some in-house stuff. Want to build something? Talk to the users, then build it. Got a better tool in mind? Let's use it. We're running this hybrid on-prem/Azure/AWS setup and trying to get our IaC game going.

What we need:

Someone who's worked with weird tech stacks before and can figure out obscure systems. Experience with retail/accounting is awesome but not required. Must know your way around version control and have strong opinions about your preferred editor for reasons.

Comfortable talking to users and solving their actual problems. Bonus points if you've done multiunit retail before

Some real problems we're tackling:

- Our credit application system is this web app Frankenstein'd together by various devs - it works but the database updates are a mess. Help me fix our autopayments. - Distribution uses this configurable-but-unfriendly desktop app. Need someone to really get how it's used and make it better - maybe through RPA, maybe just better docs and UI labels.

- Work wherever you want. Occasional visits to Culver City helpful but not required - Flexible hours (we're PST, but just need some overlap for now - help me fix our async game?) International = hired through Upwork

If this sounds like your kind of chaos, email me at matt and then a underscore and then pendergraft followed by an at for the main website of the company this is for. Tell me why this interests you and maybe share a cool project you've worked on. Resume optional but helpful.

They were highly patent encumbered for a while. I think much of that is expired but the manufacturing base hasn’t caught up yet.

The pricing is pretty expensive even in bulk. $50 for the larger displays isn’t off by an order of magnitude (e.g. 7 inch with red) especially as a retailer is buying that as a larger solution which includes all the syncing hardware, maintenance programs, and integrations.

For retailers, the savings story is in increased pricing accuracy and reduced labor for price changes. There is the promise of dynamic pricing but that’s a minefield for various reasons.

That’s why you tend to see it in high-value retailers (pricing accuracy, precision, smaller tag count) and grocers (lots of price changes, high labor costs).

Coast on Clojure 4 years ago

The good 'ole days.

You're paying the tax at some point, but if that's at the start of the project it might be high enough to stop it in its tracks. A mature Rails or Django project require abstracting configuration later on in development which is a different sort of tax.

Convention over configuration absolutely has it's perils. I've unfortunately (fortunately?) hit this enough times with Clojure, I know the ecosystem well-enough I'd personally pick composition for a personal project. In a team project where composition makes collaboration difficult (generally a communication and experience problem) I'd probably choose another language with an opinionated framework.

Absolutely. The answer is better integration boundaries but then you’re paying the abstraction cost which might be higher.

It’s particularly difficult when the system under test includes an application that isn’t designed to be set up ephemerally such as application-level managed services with only ClickOps configuration, proprietary systems where such a request is atypical and prevented by egregious licensing costs, or those that contain a physical component (e.g. a POS with physical peripherals).

These printers also have an expansion network card.

A decade ago I worked on a project to deploy a couple hundred of these to a restaurant chain as part of a POC for an online ordering program for pickup orders. The requirement for each franchisee was to acquire a static IP and configure one of these printers to bind that static address using a network card that replaced the serial connection. The online interface from the vendor was configured with that static address and sent text over TCP to print the incoming orders. The printer than just printed whatever it received.

The project was initially deployed without any whitelisting or authentication (at the vendors behest) so for a couple months these printers were printing a mixture of garbage and scan attempts from random devices connecting. It was quite humorous at the time but scares the hell out of me given the other things that were on that internal network. The project failed for other reasons, but it looks like that particular vendor is still around.

I’ve left positions for similar reasons.

Another strain of this is forcing some COTS application to work via a million hacks and integrations (usually via consulting resources) when a fundamental architecture or application change is needed. Responsibility coupled with the resource and authority to execute is stressful in its own way but it at least allows one to more easily own their failures.

Did you like the outcome and did it feel sustainable?

I'm so conditioned to providing buffered estimates, especially for highly-dependent systems, I would really struggle to not accidentally buffer. I'm generally invisibly factoring in organizational dependencies (e.g. Bob will need to stand up service X, but Aditya's approval of that will be subject ridiculous process Q that always takes two weeks). It sounds like this would invert the dependency tree if broken down well enough.

Cynically, I struggle to imagine working in such a high-trust environment that wouldn't immediately be destroyed.

_why's Estate 5 years ago

As a a weasel word, I hear it mentioned whenever why's writing comes up the absolute sea-change it caused in the types of writing that followed it. I know it absolutely changed the content that was coming out even if it was just part of the zeitgeist. Are there any other canonical example of the why style? A few that come to mind:

• Learn You A Haskell for Great Good

• Land o Lisp

• Clojure Brave and True

I don't find myself with the time to luxuriate in this type of writing much any more and typically gravitate towards more terse material. However, I credit this style towards developing an ineffable sort intuition and making autodidact approaches a bit easier (at least for myself).

I interpreted the comment to be about the number of customers in a store as opposed to stock levels. Anecdotally, Traders Joes does seem to have a higher base level of customers at any given time. However, I readily acknowledge that perception may be to their relatively smaller footprints and reduced operating hours.

I had a coworker a couple years ago who brought in his own chair (a Herman Miller Aeron). When we came in after a weekend it had been removed and replaced with a cheap, office special that was the default in the cubicles. After a couple days he found it. The facilities manager had moved it into a VPs office because it was an “executive” chair. He had to go through a couple levels of approval, a meeting, and get the chair tagged in order to keep it. Dystopian.

True unfortunately. My organization is very much an in person organization that has gone remote with some processes that were still mediated by paper forms. The previous advice for getting certain signatures and approvals was to stand outside a particular execs office and haranguing them through persistence. This is no longer an option nor easily replaced through readily ignored channels.

(This is not a method I would elect, but dysfunction begets dysfunction.)

Yes, and this surprises me each time it happens.

As a for instance, I was the operations lead a couple years ago for a large, customer-facing financial product rollout. The timeline was insanely aggressive, approximately 10 months ahead of my prediction and predicated upon several payment and banking vendors nailing their legacy integrations out of the gate with no delay (perhaps a first in the history of the world). Several of these vendors weren't committed nor was a spec agreed upon prior to the timeline. When raising these concerns everyone acknowledged them, but mitigations or deadlines revisions we not made as it would countermand previously set expectations with the executive team.

The project continued on for another 18 months past the deadline with a "launch" set every three months. Inevitably something would derail it a week beforehand that was unexpected but known months in advance by the project team (e.g. the mainframe the payment vendor uses has a fixed column length. It will take two months to build around this to support xyz).

In the end it got rolled out. Everyone forgot about the delays and the project team was praised as the implementation did better than expected. The same technique is employed once again.

While I don't like it, I now see the estimates and re-estimates as a method for an executive team to manage a project portfolio and prioritization. It's not a good way to do it but it's easy to express priority by simply ranking deadlines.

It's much easier to avoid this in high-trust environments (typically smaller organizations).

While not universally true, a manual process does typically require a process to fix mistakes. This is true of software as well but the perceived lack of errors in software processes often leads to this being ignore resulting in the aforementioned “bureaucratic violence”. I do think automated solutions are inherently better because of the bias reasons you call out but it cuts both ways and removes interpretation from processes that may not respect nuance.

I've had some applications down today. The initial reports are date related issues with the New Year. I suspect that's incorrect given it's Jan 4, but an anecdote nonetheless.

As a note, for older Canon DSLRs that aren't supported you can pick up a cheap capture card on ebay for $15 and an AC adapter for a similar price. Using Magic Lantern you can get clean HDMI out and do any cropping needed in a tool like OBS. Works wonders. So much so I'm told my video is too clear at least once a week.

I think that's part of it. There is a convention over configuration issue as well. A language like Go forces some patterns like package management and formatting unless you actively try to subvert it.

It wouldn't surprise me if many of these issues are self-selecting in the language communities as well.

It's not better if you have an environment that allows easy iterative function development.

This is just a way to achieve that. However, combined with some of the other clojure niceties (namely cider and structural editing) it does make it a better experience for me.

It allows me to maintain a better flow as I can maintain REPL state if needed(especially if it's a quick hack where dependency injection like component isn't worth the overhead). When I'm done exercising the code I can just make minimal changes to make the comment a test, leave it in place, or move it over to a bag-of-tricks user.clj.

While I personally agree I think this caters to a different audience. A large swath of people simply learn better from videos (or are more engaged by perhaps...).