HNHacker News
TopNewBestAskShowJobs

capn_duck

135 karma · joined July 26, 2020

submissionscomments
capn_duck··on I fell in love with low-JS
I for one am very excited to see what happens with the Hyperfiddle/Photon project that made the front page the other day.

https://hyperfiddle.notion.site/Reactive-Clojure-You-don-t-n...

I am in the same boat as OP. Started doing web things right around the growth of rails, but spent plenty of time in my career doing Spring MVC apps. For the last 6 years or so I've been forced to build SPA's because its what's been mandated from on high, but it's to the point where I can't even explain to new devs coming in what they're missing. They can't understand how much easier it is to just make a query directly to a database while responding to a request than it is to concern yourself with explicit API calls onMount of some component. Rehydration, state management, blah. What are we even trying to solve anymore.

I'm excited by the new trend in a sort of hybrid approach where you write your code as if it all runs on the server, and the framework figures out the websocket communications that need to take place. Phoenix Livewiew, PHP Livewire, even Microsoft Blazor server. This is all admirable, but I think the hyperfiddle/photon solution is finally the right level of abstraction. It's sort of like when you start programming and try to write a parser with a bunch of if statements and it becomes a mess, then you realize that mathematicians figured all this stuff out in a really elegant way that composes and provides just a solid bedrock. We need that level of formality to get us out of the SPA/SSR tarpit.

capn_duck··on UIs are streaming DAGs [video]
+1 for understanding that "stateless" doesn't necessarily mean better OR more performant. There's too much reductionist thinking based on not enough evidence. I'm not building a twitter clone, i'm building something that needs to frequently re-evaluate business rules at each step of a lengthy workflow. Reactivity is a natural fit. And there's state that exists there. Where do you want it to stay? (please don't say 'in a jwt')

There's room for so many different solutions to so many different problems. Shooting something down because its "stateful" well, okay if you know your problem domain well and that's significant to you then so be it, but that smells to me like "I have nothing valuable to contribute so I'm going to throw out a meaningless non-sequitur". I'll happily prioritize developer productivity first when user experience is not meaningfully impacted. I suspect that ~95% of web developers are in that same position.

capn_duck··on UIs are streaming DAGs [video]
Did you watch the video?
capn_duck··on The absurd complexity of server-side rendering
There's a huge difference between traditional server side web applications and the modern meaning of SSR. If you don't know the difference then this article probably isn't for you.
capn_duck··on We don’t use a staging environment
Found the guy thats only worked at a company of 1000 people
capn_duck··on An Intuitive Guide to Linear Algebra
Yes I think this spreadsheet view is so detrimental and confusing for newcomers. I'm not even sure the analogy makes sense. The key part of linear algebra imo is the concept of linear transformations.

T(a+b)=T(a)+T(b)

Matrices just happen to be one way of expressing those transformations.

capn_duck··on If you’re not using SSH certificates you’re doing SSH wrong (2019)
Practical Cryptography by Bruce Schneier and Niels Ferguson is decent in that it gives a good lay of the land without diving too deep in to the mathematical rigor. The first half explains at a high level the concepts of encryption, key exchange, asymmetric encryption, digital signatures, and lays out the problem statement that PKI solves.

It's nice in that it will list out a bunch of available encryption algorithms or hash algorithms, but at the end of the chapter say "Just use this one, it's considered safe right now." i.e. AES256 and SHA256.

Unfortunately, it mostly avoids the practical steps of web security, like its not going to print out the command to type in to your shell to generate an SSL signing certificate. So I wouldn't recommend it if you're looking for an immediately practical book to help you secure your web server. But it orients you to the landscape so you have a general idea of what you're trying to achieve, and can google yourself the rest of the way there.

capn_duck··on The most important thing to understand about queues (2016)
I've never met an application developer who was unaware of what a "queue" was or the problems they purport to solve. Pretty sure stacks/queues are among the first "data structures" that students create, which inevitably leads to the question of, "what to do when full?" i.e. circular queues, double ended queues, priority queues. I know that the enterprise grade queuing systems we're talking about are a lot more involved than that, but to suggest that developers don't grok queues is pretty disingenuous. And the implications of rate in > rate out is pretty obvious for anyone that's ever had a clogged sink.
capn_duck··on Why you’re not doing creative work
Remember that you aren't necessarily the audience for this link. It was just posted on a link aggregator site.
capn_duck··on PDEs you should know
ASin(wx) is a solution for certain initial conditions. In general there's no single "solution" to a PDE.
capn_duck··on The Big DevOps Misunderstanding
Yea I completely understand the complexities that emerge when you're doing this stuff for a ~1500 person organization. And I know that overwhelmingly the people building these systems are talented and competent and have a stake in things and take pride in what they're doing. My comment was really more in response to the tone of the parent comment which insinuates that these helpless devs just can't figure out what the fuck is going on.

Coming from a team that builds and supports an end user suite of applications. I'm not asking you to bend over backwards like I would have to do for a client. But at least don't enter in to conversations with that attitude. You are in a service organization. You deliver value insofar as you can help the next link in the chain.

capn_duck··on The Big DevOps Misunderstanding
You're right, it would not be hard. But I don't have the keys to do that. I would have to talk to someone on the devops team and I would hope they wouldn't write me off as some dumb developer who only knows how to code, whatever that means.
capn_duck··on The Big DevOps Misunderstanding
In my experience, its because the tools that are given to the dev team are opaque, poorly documented, made for a general case that rarely is sufficient, and usually locked down with some role based access control to the point where, even if I can figure out whats wrong with some pipeline, I rarely have the access to change something. I have an AWS Codepipeline that I can see running, but the logs from each step are sent to a Cloudwatch instance running in another AWS account, which only the devops folks can view. I have a Jenkins pipeline that was cookie cutter from what the devops team offers. If I wanted to actually grok whats occurring during the pipeline, I'd have to jump between 3 or 4 github repos, and also account for the versions/branches on each one.

It really feels worse than back in my websphere days, where in order to see app logs, we had to submit a ticket to the hosting teams and wait 2 days for a .log file to be sent back through email. I'm consistently left wondering if we've actually gained anything.

capn_duck··on Are software engineering “best practices” just developer preferences?
Lots of Java Frameworks (definitely Spring) will generate wrapper classes for your code to handle things like method level authorization, pre/post method logging, Exception transformation. This is generally termed "Aspect Oriented Programming". This is exactly whats going on with Spring's @Service annotation. In order for you to still be able to call your methods even though the class will be some sort of proxy at runtime, an Interface is required. It may seem silly but it all makes perfect sense when you understand whats going on.

Edit: Surprised I haven't seen this mentioned in any other comments. I had thought this was pretty common knowledge, at least amongst people with Java experience.

capn_duck··on Hacker Recumbent Bike from the 80s
Shoot. Yes that's who it was. I had never heard of him or his bike before and I just wanted them to spend more time on all the electronics he had onboard, so this is great. Thank you!
capn_duck··on Linear Circuit Design Handbook (2008)
That's just not true. Its a very specific relation between the output and the input of a system.
capn_duck··on Linear Circuit Design Handbook (2008)
"Linear" means "Linear System" as in T(a+b)=T(a)+T(b). In practical terms this means sine wave in, sine wave out. If your system behaves as such then you have a much simpler time than if your sine wave gets distorted on the output because then that means you can no longer live in the world of Laplace transforms for understanding the PDE nature of your system. Op amps were hailed as a revelation because they behave much more ideally Linear than say a Common Emitter Amplifier, even when being constructed from non-linear components.
← PreviousPage 2 of 2