HNHacker News
TopNewBestAskShowJobs

dropofwill

203 karma · joined June 5, 2017

submissionscomments
dropofwill··on Hands-On Scala Programming
What's the huge difference? Coroutines? Boilerplate reduction? I guess there are some minor type system improvements, but its not like you're getting dependent types or anything like that.
dropofwill··on A History of Clojure [pdf]
In Java you can (and should) implement equality semantics however you want for Objects by implementing equals/hashCode. If you just want value semantics you can use a record type, which works just like the Clojure example.
dropofwill··on Hands-On Scala Programming
I’d argue Scala still owns that niche. Kotlin is nice if you’re stuck on Android, but with the speed Java is progressing I don’t see a huge difference. Especially in 2-3 years.

Also with Scala you get a best in class JS compile target, a great scripting platform in Ammonite, and Graal native image for binaries with fast startup.

dropofwill··on Walmart says it will discontinue Jet
I’ve read that it’s common in Germany to drink a liter of beer or so at work, even in manufacturing.

Besides the drinking thing one of my friends said they were trying to ban swearing as well?

dropofwill··on The DynamoDB Book: Data Modeling with NoSQL and DynamoDB
Yeah, p50, all use cases we have are single row updates.
dropofwill··on The DynamoDB Book: Data Modeling with NoSQL and DynamoDB
RDS maxes out RAM at 768GiB, if we're comparing managed to managed.

If you're approaching that point, you already are going to need an analytics pipeline, a search DB, etc, because maintaining ever growing indices will kill your latency. You probably can get away with aggregations for a bit longer, but if the number of rows you aggregate is growing too, eventually you will need to come up with something and the way you do that with Dynamo off a stream isn't a bad way to go about it with MySql either.

Looking at the tables I have access to, they all come under 5ms for both read/write. This is the same ballpark as our MySql apps for similar style queries (i.e. not aggegrations).

Sadly my favorite reason to use Dynamo is political, not technical. Since it somehow is not classified as a database at my company, the DBAs don't 'own' it. So I don't have to wait 2-3 months for them to manually configure something.

Conway's law strikes again.

dropofwill··on The DynamoDB Book: Data Modeling with NoSQL and DynamoDB
Note that Cassandra has similar limitations with data/throughput, but they aren't enforced or documented (because they depend on your particular setup) and your queries just fail or worse make all queries to the same node in the cluster fail (fun times with large wide rows).

The rich data types in Dynamo are quite strange, since they're basically useless for querying I'm not sure why you would use them. Maybe I'm missing something...

dropofwill··on Ask HN: Any good FOSS alternative to Google's reCAPTCHA?
Here's a random site from builtwith that uses it https://press.priceline.com/

But yeah, it's probably not common for sites to 'upgrade' to v3. Recaptchas are a feature you begrudgingly add and v3 puts the onus on the product to decided what to do when there's a low score, so its pretty different.

dropofwill··on Ask HN: Any good FOSS alternative to Google's reCAPTCHA?
It came out at the end of 2018. You probably just haven't noticed it because the only visual is a little badge at the bottom right hand corner of the page.
dropofwill··on What's Next for Scala
None of those languages have one way to do everything, I would even wager none have only one way to do anything.

Simplicity comes at a cost, compare Elm to Purescript/Haskell for example. Elm lacks type classes, so it’s simpler and more explicit, but that comes at the cost of verbosity and duplication. This was an explicit decision to make the language more friendly for beginners, and that’s a reasonable trade off to make, but it’s not universally better.

dropofwill··on What's Next for Scala
I work at a Java shop, we do ‘modern’ Java (11 or 14, some legacy 8), but I do a lot fp-style Scala dev at home.

Calling Scala an ivory tower with no interest in ‘practical’ programming is ridiculous. Scala and Java are remarkably similar in this respect (note Odersky was heavily involved with Java before Scala), albeit one is sponsored by a uni and the other a corporation. JEPs are just as likely to have actual PhD theses associated with them, and those that don’t often could have. Look at Project Valhalla or Loom or the GraalVM, these are novel programming language research projects with the end goal of bringing them to a widely used industry language in a backwards compatible and ergonomic way.

As for pure FP in production, just last week we had a brief bit of message loss in a system because some layer in an sdk swallowed a socket timeout exception and re-threw something totally unrelated and undocumented. This was hell to debug for other reasons related to imperative code, that simply wouldn’t have happened in a ZIO project.

That’s not to say you can’t make reliable software in Java, my team spends a lot of time doing just that. It just often feels like the whole ecosystem is fighting against you. Things are getting much better in Java land, but there are parts that can never catch up with Scala because of past design choices.

I agree with your other 2 points, multi-paradigm is both a blessing and a curse and probably becomes more of the latter in a large org.

Also, unrelated, but imo better Java is Java or maybe Java in 3 years, Kotlin didn’t go far enough.

dropofwill··on Spatial Interfaces (2019)
Been a long time since I used it, but this is sort of how Illustrator works. You do setup a canvas at first, but you can draw stuff anywhere in the whole workspace. It’s not infinite and doesn’t auto expand, but it is huge.

The canvas is more of a way to group objects for export, you could resize and duplicate them all over the workspace.

I used to use them as an ad how version control system, duplicate objects to play around off canvas, and then “commit” to a new canvas.

dropofwill··on It's not what programming languages do, it's what they shepherd you to
Thinking about the systems I work with I can only think of a few cases where logging is semantically relevant (the way I understand it).

One is replaying critical failed requests when a downstream was offline and the other is gathering tracking statistics from apache access logs.

Everything else I would classify as diagnostic, wondering if you would consider that semantic as well.

dropofwill··on So You Think You Want to Open a Brewery (2014)
Seems like being a man is necessary, but not sufficient to be a part of mentrificafion. Just like gentrification doesn’t imply that all the gentry are involved in it.

But mostly it’s a pun.

dropofwill··on So You Think You Want to Open a Brewery (2014)
The point is that this is a general trend in culture not specifically brewing. That’s why they ended with the example of knitting, they even included the parenthetical disclaimer that it’s not always men.

Mentrification is just a clever play on words.

The actual observation definitely rings true for me. I remember as a middle schooler not wanting to admit i was learning guitar until i was ’good enough’.

I think this is definitely tied to identity. Something that you can work at and see demonstrable progress is comforting in a way, but i can see how it easily leads to passion as competition.

dropofwill··on The Rising Threat of Digital Nationalism
Kind of a tangent, but Orwell wasn't an anarchist (maybe he was briefly, but I haven't read anything that confirms that), though he had a lot of respect for the anarchists he during the Civil War.

Notes on Nationalism is quite different from 1984, more focused on its effects on the individual (obsession, self-deception, etc.) than tyranny per se. He makes the distinction between nationalism and patriotism and his use of term is a bit unconventional (for example he includes pacifist rhetoric as an example of what he calls nationalism).

I think defining the nation as simply "the decisions of a group" loses a lot of subtlety. E.g. what separates the term nation from country or corporation? Drawing on Benedict Anderson's Imagined Communities, I think identity, community, and mass communication play a big part in this.

An interesting contemporary example of the development of nationhood, was posted here a while back about the transformation of Taiwanese identity, from majority Chinese in the 80s to majority Taiwanese in the 10s.

https://news.ycombinator.com/item?id=21080305

dropofwill··on Learning Haskell is no harder than learning any other programming language
That was fixed with the Java 8 package java.time.format, https://docs.oracle.com/javase/8/docs/api/java/time/format/D...
dropofwill··on Learning to Build Distributed Systems
You can implement distributed tracing with logs if every player in the system is propagating the headers appropriately. Tools like NewRelic APM and XRay will take care of that bit mostly for you.

Service mesh data planes have a wider scope, but they do make it much easier to implement distributed tracing (I think Istio includes this out of the box).

In the end though these tools can’t replace app logs because they only let you reconstruct what happens in between services, not internal to them.

dropofwill··on Elegant Error Handling with the JavaScript “Either” Monad
It depends on how it is used. I’ve definitely seen it used like a goto mechanism (on the JVM, i don’t write much JS), e.g. throw x in y to skip these business logic steps in z, and that makes my head hurt.

Personally I just try not to throw exceptions when compensation/recovery is expected. If something should be handled by the caller put it in the return type, if it’s really fatal give up and log a stack trace.

dropofwill··on Uber data reveals motoring slower than walking in many cities
I use my commutes as a way to get some hill repeat intervals in and in the summer that means i’m covered in sweat.

There are no showers at work, so i do a couple of things to keep clean.

* Showering before you leave so that the sweat doesn’t smell. * Chilling our after the ride for a bit to let your heart rate drop back down. This gets you to a point where you aren’t sweating anymore. * Towel off the excess sweat and put on fresh clothes.

The only real downside is my helmet messes up my hair.

dropofwill··on New Mac Pro
It’s funny you bring up working copy/paste, because lately i’ve been having problems with ‘pboard’ just randomly dying on my Macbook.
dropofwill··on Norway's capital is the latest city to declare war on cars
Norway isn’t a monolith. Oslo city councilors don’t have any control over oil production/exports.
dropofwill··on Cambridge's Ambitious Protected Bike Lane Law
I think you've got it backwards, cars aren't easy to see, they're hard to see out of. There is no blindspot for a cyclist or pedestrian.
dropofwill··on Base salaries offered to software engineers in SF, NYC, and Seattle
That seems really low to me. I have friends that work at a dozen or so places all 3-4 years out of school and the range we’re getting is more like 110-140.

Personally out of school I got 85, but got bumped to 110 after 1 year and 120 after 2.

Maybe they’re including 495/NH jobs bringing it down? There definitely is a difference between jobs in Boston/Cambridge, those on 128, and those in the outer burbs.

dropofwill··on Ghost Villages for Sale in Spain
Rate of change is as important a concept as change itself.
dropofwill··on Ghost Villages for Sale in Spain
The WHO still considers hunger the greatest public health threat (more than AIDs, malaria, etc.). Starvation is far from a solved problem.

Just because things are slowly improving doesn’t mean we can’t critique the status quo.

dropofwill··on On the death of my family's dairy farm
Oat milk is a pretty hot milk replacement, at least on the east coast. My grocery store has trouble keeping up with demand.

I’d be curious in a study comparing environmental impact of soy milk vs dairy. I suspect soy would still come out ahead, given how much cows eat and drink (not to mention what they excrete).

dropofwill··on Our Culture of Contempt
I think part of what you’re getting at is what Wittgenstein called deep disagreements, conflicts that can’t rationally be resolved because they actually are just a proxy for differences in foundational beliefs (‘hinge commitments’).

There’s a lot of interesting work that sprung out of these ideas, for example can hinge commitments be true/false or just ‘are’, if they can be true/false is it possible to give evidence to prove that?

High level (hopeful) overview i read a while back on the topic https://chris-ranalli.weebly.com/uploads/7/4/6/4/7464753/wit...

dropofwill··on Migrate from GitHub to GitLab
For the git native features that works. This is for all the extra stuff (PRs, issues, wikis, etc.)
dropofwill··on Everest: A lightweight REST API client written in JavaFX
Yeah, I think the usual approach is to ship the JVM with the app.

And last I looked it (like ScalaFX) runs against Java 8, so no Jigsaw to shrink app sizes.

← PreviousPage 4 of 5Next →