HN user

ledneb

161 karma
Posts2
Comments31
View on HN

Assuming serverless is out if the question for your use case, have you tried spending a couple of days investigating a managed Kubernetes cluster with node autoscaling enabled? EKS, AKS, GKE...

Honestly it sounds like you could be at the point where K8s is worthwhile.

I sometimes give feedback, but only if requested and, to be honest, only if the feedback request actually makes it through HR and to me.

What feels like a lifetime ago I went for an interview at Monzo, I think it'd recently renamed from Mondo. I thoroughly enjoyed the process - a kind yet thorough and revealing interview format. I didn't get the job - but it's not an exaggeration to say their feedback and the process changed my career. If somebody from there spots this; thanks :) (and I'm still sad I didn't get to work with you!)

Citymapper 7 years ago

I love it when I'm in a city with Citymapper. I've used it to get around Paris, Hamburg and Berlin. It's slick, fun to use and has nailed multi-modal transport - especially since it considers walking a thing which humans are capable of.

I still resort to instructional YouTube videos + ticket machines for tickets, though.

So, in a monorepo world, isn't it often that you have to deploy components together, rather than "it's easy to"? How are services deployed only when there has been a change affecting said service? Presumably monorepo orgs aren't redeploying their entire infrastructure each time there's a commit? Are we taking writing scripts which trigger further pipelines if they detect change in a path or its dependencies? How about versioning - does monorepo work with semver? Does it break git tags given you have to tag everything?

So many questions, but they're all about identifying change and only deploying change...

Microsoft have been pushing this kind of thinking for a while with Service Fabric. If you buy in completely and use both the framework and the infrastructure you get structures which are in-memory and replicated for you.

A couple of the .Net guys we hired preached that stateless architecture is a little old-fashioned - over time I've come to agree. A lot of things can be shoe-horned in to a stateless world but become much easier in a stateful one.

Imagine sending out a command to the bus and not knowing when it'll get processed

I would love to hear how others are correlating output with commands in such architectures - especially if they can be displayed to users as a direct result of a command. Always felt like I'm missing a thing or two.

It seems the choices are:

* Manage work across domains (sagas, two phase commit, rpc)

* Losen requirements (At some point in the future, stuff might happen. It may not be related to your command. Deal with it.)

* Correlation and SLAs (correlate outcomes with commands, have clients wait a fixed period while collecting correlating outcomes)

Is that a fair summary of where we can go? Any recommended reading?

I discovered Chocolatey during a Windows stint at work ~3 years back and found their package quality to be very poor. I'd go as far as saying packages had a 50% chance of leaving you with a usable installation of software.

We ended up changing provisioning scripts to download .msi installers directly and run them with appropriate switches.

I also remember their website having a lot of "maintainers required" notices - I got the impression that the situation was a little desperate.

Has package quality improved? Is Chocolatey a genuinely reliable way to install software, now?

You wrote a great response! Assuming you genuinely want feedback on it; your writing style does detract a bit from what you're saying - the emphasis and braces don't read like native English. My advice is try not to use quotes, italics and braces at all - go cold turkey! Then you'll probably find yourself using them when you actually _need_ them. :)

Introducing Stride 9 years ago

I was wondering what this means for existing HipChat users. My highlights from the [FAQ](https://confluence.atlassian.com/stride-documentation/upgrad...):

We'll send your admin an email when we're ready for you. All of your rooms, teammates, files, custom emoticons and message history from HipChat Cloud will be in Stride. In the future, all HipChat Cloud teams will be encouraged to move to Stride. Starting soon, we will begin to upgrade all HipChat Cloud teams to Stride. HipChat Cloud will remain in 'read-only' mode.

For a little bit I was using a Nexus 10 as a secondary display - I used Google Chrome's remote desktop to view a separate X session, with Synergy for sharing my input devices between them (which is now paid for?!). Worked great, except you couldn't see the mouse cursor on the Nexus... :( Ultimately it was more annoying than helpful. (Edit: just realised that's broadcasting in the opposite direction to what you're asking for)

I'm under no delusion. Admittedly this is the wrong place to be debating anything PHP, but I wouldn't suggest that the average skill level of "everybody who writes PHP" is anything better than incompetent. The people I'm sitting next to now and have worked with in the past are as real as I am - the 1% you recognise are the serious and modern PHP developers. We exist and we're the pool you hire from.

Of course, right tool for the right job. PHP has specific use cases but that's another discussion entirely.

No serious, modern PHP developer writes code like this. If it were a code sample for any respectable PHP job, it would be a massive "do not hire" flag.

I think the real sentiment is "sometimes you just have to get things done" (which I agree with) but I have a few issues. I tried to bake them in to something which wasn't a bullet-point list, but perhaps this is just how my brain works...

1) Over-engineering is a separate discussion to elegance, let's not mix them. 2) You can be both on-time and elegant - it's not one or the other, like the title implies. 3) Often, if that fails, the deadline can be moved without any real consequence. 4) Consistent failure to be elegant "because deadlines" is probably going to make later deadlines harder to meet - it seems like a bad cycle to start.

I'm pretty sure the error is when they later take the input and eval it, and the author's managed to dodge their filtering rather than execute arbitrary code in the context of an array-to-string cast (which I was lead to believe when reading that post, at least). Otherwise it implies that some permutation of:

$a = '{${phpinfo()}}'; $b = [$a]; $c = "$b";

Will execute phpinfo()... which it won't.

Great stuff. It would be super useful if a mathematical definition of the easing was provided though (unless I'm missing something on my mobile browser).

We need support for it in something like Monodevelop / Netbeans / Eclipse. A lot of the benefit I experience from strict(er) typing comes from the real-time help an IDE gives me - without a Windows/VS licence, I hardly feel compelled by Typescript at all.

PHP Commandments 13 years ago

Since you can't autoload functions who aren't members of a class, you must include/require the file on every request, or otherwise include the file whenever you use those methods. PHP projects have, generally, abstracted the thinking about "what file does this thing come from?" by now - via the autoloader - which, as I said, doesn't work with functions. So functions, annoyingly, create a leak in the abstraction that otherwise allows us to forget about exactly what files our code lives in.

As an aside, to me, it also raises questions regarding the design of your code (how do I inject mock methods?). But that's hard to know without seeing it (if the methods are simple enough, perhaps there's just no need to mock them in your tests).

I encapsulate "helper" or "utility" logic in objects, e.g. RandomGenerator with a getRandom, which can be amazing when it comes to testing, and lets me forget about include/require'ing files.

I do find myself wondering about audience, here. The product was given pretty good exposure to a "market" of non-paying users. If it were pushed it to markets which give you similar exposure in front of paying users, perhaps you would have a different result? Not to say getting that exposure is easy, but is this also a case of remembering who your customers are?

I'm a paying gamer - I don't think I've seen this game for sale until now. I'll check out the demo over lunch :)

^ sorry to post a "+1" comment but, yeah. This.

Edit: As a matter of fact, assuming something on that post could link off to something substantial regarding it's subject, should that link even be allowed to stay here?