HNHacker News
TopNewBestAskShowJobs

dm3

379 karma · joined November 26, 2010

submissionscomments
dm3··on I've stopped flying to conferences for climate change reasons
The co2.myclimate.org website shows 1.6t CO2 emitted with an offset cost of 38€ for a flight from Finland to Japan[0].

For example, according to the Carbon Footprint Factsheet published on the UoM website[1], beef is only 6.61 pounds (~= 3kg) CO2 per serving (4oz ~= 0.12kg). You'd have to eat a lot of meat to produce an amount of CO2 comparable to that caused by a single flight.

Newer cars in EU are emitting around 110g CO2/km[3], so the Helsinki-Okinawa trip would result in an 8157km*110g/1000 ~= 900kg of CO2. Still less than a flight. However, according to Wikipedia[4], the flight CO2 emissions in EU are at ~100g/km per passenger which contradicts the co2.myclimate.org calculator unless the global efficiency figures are much worse than EU. Flights also emit nitrogen oxides which have a stronger effect at higher altitudes.

A carbon tax enforced by the governments would be the most effective measure[2] AFAIK.

[0]: https://co2.myclimate.org/en/portfolios?calculation_id=19789...

[1]: http://css.umich.edu/factsheets/carbon-footprint-factsheet

[2]: https://www.reddit.com/r/Economics/wiki/faq_carbonpricing

[3]: https://ec.europa.eu/clima/policies/transport/vehicles/cars_...

[4]: https://en.wikipedia.org/wiki/Environmental_impact_of_aviati...

dm3··on I Grew Up Gifted, but My Life Didn’t Turn Out the Way I Expected
Do you mind giving an example or two of how you push or pushed your kids in a positive way?
dm3··on Compress objects, not cache lines: an object-based compressed memory hierarchy
If this means running millions of already written programs more efficiently - yes!
dm3··on Event Sourcing is Hard
This has nothing to do with event sourcing. What you're describing is event-driven integration. Rarely the events used to source the domain model should be the same as the ones used for the messaging integration. Unfortunately, due to the repetition of the term "event" the purpose gets confused most of the time. The "Data on the Outside versus Data on the Inside"[0] paper makes a good distinction even though it doesn't use the same terms.

[0]: http://cidrdb.org/cidr2005/papers/P12.pdf

dm3··on $1.2T in risky corporate debt showing similar warning signs to subprime crisis
Here's the best layman explanation by Bank of England of what is actually meant by "money" in the current economy[0]. Think it can be helpful for the discourse.

[0]: https://www.bankofengland.co.uk/-/media/boe/files/quarterly-...

dm3··on Better Clojure formatting
Exactly! Just separate the commits which fix formatting from the ones that change code.
dm3··on The U.S. Yield Curve Has Inverted
Great writeup - exactly what I've been thinking about for the past year. What's the impact of US Dollar losing its reserve currency status?

There's a great podcast which sparked my interest in following macro developments, touching the future of the US dollar in particular - Macro Voices - The US Dollar End Game [1] (there are 5 parts, link points to the first one). I'd also recommend listening/reading the transcripts for all the pieces with Jeffrey Snider, e.g. [2] and his blog [3].

[1]: https://www.macrovoices.com/336-anatomy-of-the-u-s-dollar-en...

[2]: https://www.macrovoices.com/239-jeffrey-snider-understanding...

[3]: https://www.alhambrapartners.com/commentaryanalysis/

dm3··on Firecracker – Lightweight Virtualization for Serverless Computing
Pushing the adoption of "serverless" - benefits Amazon ultimately as it's the largest provider.
dm3··on Ask HN: Have you ever regretted working on a product?
The big players used to corner small markets which then led to extreme blowouts. It doesn't happen as much now as there are tighter regulations on max position sizes and the volumes are higher.

Significantly influencing the price of a commodity with liquid markets, such as corn or soybeans is pretty much impossible unless you're acting on behalf of a country or are able to control weather. The existence of liquid markets is beneficial for the producers and consumers as the price volatility is reduced and hedging becomes easier. I like to showcase the effect of information on price with the example of fish price in Kerala before and after the introduction of mobile phones to fishermen[1].

The financial world is evolving very quickly with various participants driven by different goals pulling the rug in opposite directions which theoretically should reduce volatility and spreads. However, when people get greedy - and there's a lot of that in finance - bad things happen, e.g. see the natural gas last week[2].

[1]: https://www.researchgate.net/figure/Changes-in-fish-price-vo...

[2]: https://www.ft.com/content/b7c525f6-ec44-11e8-89c8-d36339d83...

dm3··on Short sellers are good for markets
Should be "buying puts" if you replicate a short.

It's not a clear-cut situation - in times of turmoil, when many traders are considering a short, the price of options will rise. If the situation then calms down and the price of the underlying decreases steadily, the drop in the option price due to lower volatility will offset a lot of the potential gain.

When expressing a trade using options one has a lot more parameters to deal with in order to formulate the risk-reward properly. I'd say it's exactly the sort of thing most amateurs shouldn't be doing.

dm3··on A Year in Clojure
For the data processing tasks my go-to tool is Manifold[1]. Depending on how the application is structured, you can keep state in atoms, the system map when using Component[2] or vars with Mount[3]. Manifold streams asynchronously join the state transformations together while allowing control over backpressure and threading.

On the data analysis side things aren't rosy on the JVM. I'd delegate that part to something which actually has all the tools built-in, e.g. Julia/Python+Numpy/R. Apache Arrow[4] is a nice project to facilitate the dataframe interop.

[1] https://github.com/ztellman/manifold

[2] https://github.com/stuartsierra/component

[3] https://github.com/tolitius/mount

[4] https://arrow.apache.org/

dm3··on Blazor, a framework for browser-based .NET apps using WebAssembly [video]
Clojurescript is quite nice in avoiding the whole webpack/npm/grunt/gulp/... build and dependency tooling evolution nonsense. There are a few other compile-to-javascript environments that are as good by now I suspect if you don't like parens as much.

However, I agree that server-side rendering is much simpler in all of the cases where desktop app-like experience isn't required.

dm3··on Twilight Of The Terminal: The Disruption Of Bloomberg L.P
I think the reason for the decline is simple - the number of professional users is shrinking. Large banks have shrunk their trading desks and the number of independent shops is shrinking too [1]. Couple that with the increased weight of quantitative strategies, which need a market data provider rather than a terminal, and you can see why the Bloomberg Terminal is in decline.

[1]: https://www.valuewalk.com/wp-content/uploads/2018/06/Biggest...

dm3··on Show HN: git-bug – Distributed bug tracker embedded in git
You might be interested in SIT[1] then. SIT has an issue-tracking[2] module which is comparable to git-bug in its scope.

[1]https://sit.fyi/

[2]https://github.com/sit-fyi/issue-tracking

dm3··on Elon Musk Confronts a Fateful Tweet and an ‘Excruciating’ Year
I think this list of philanthropists[1] contains quite a few billionaires. That counts as "doing good" in my book.

[1] https://en.wikipedia.org/wiki/List_of_philanthropists

dm3··on Iterative methods done right (life's too short to write for-loops)
I think this post is mostly showing off the new iteration protocol in Julia 0.7/1.0, not advocating for converting all the for loops into decorators.

However, the post doesn't make it clear, so it's just a guess.

dm3··on iTerm2 has a new drawing engine that uses Metal 2
The one feature I miss most in Terminal.app is smart selection and automatic copy on double-click.

For example, on double click the Terminal.app will select `path.txt` from `some/long/path.txt`. iTerm will select the whole thing and copy it to the clipboard.

dm3··on Back-and-forth exchanges boost children’s brain response to language
Do people really read ~300 different books a year?

We've been going through the same 10 books for more than a year now with my currently 3.2 year old: Karlsson on the Roof, Beechwood Bunny Tales, Winnie the Pooh, Paddington Bear and a few more. I guess these contain multiple stories which can be counted as separate "books", but they are nevertheless enjoyed every evening. Even though we've probably read every story at least 10 times already.

dm3··on Fitbit employees charged with stealing trade secrets from competitor Jawbone
One would hope the new system would be improved over what was developed previously, not copied from memory verbatim.

Snark aside, that's what non-compete agreements are for. I don't believe we've reached the stage where employer can lay claim on your experience. If anyone knows any good Sci-Fi exploring this theme, would be thankful for a pointer!

dm3··on Announcing .NET Core 2.1
You can get async/await on .NET 4.0 using Microsoft.Bcl.Async
dm3··on Migrating from RethinkDB to Postgres – An Experience Report
Would be interesting to hear how they arrived at the RethinkDB/Elasticsearch combination over Postgres at the start of the project. It doesn't seem they lost any features after the transition. Was something lacking in Postgres at the time of initial implementation?
dm3··on KSQL: Open Source Streaming SQL for Apache Kafka
Here's a pretty good, even if a bit too verbose, explanation of various issues and solutions related to event versioning: https://leanpub.com/esversioning/read.

The text is written by Greg Young - the lead on the EventStore [1] project.

[1] https://geteventstore.com/

dm3··on How I finally got job interviews at Palantir and Dropbox
"Amazing Embedded User Operations Engineer Offer Letter" - really? This has been talked to death on HN, however I still can't help but get reminded of Dan Lyons' experience at HubSpot[1] every time I see language like that in official/semi-official documents.

[1] http://fortune.com/disrupted-excerpt-hubspot-startup-dan-lyo...

dm3··on Software Engineering ≠ Computer Science (2009)
TLA is one of the systems that are actually very practical. You can go up or down as many abstraction layers as you need . There's a great introduction written by @pron on his blog [1].

However, it's worth pointing out that you don't magically get the final program out of the TLA proof. The proof only works for the abstraction level that you chose to write it at.

[1] https://pron.github.io/

dm3··on How transparency and accountability favor special interest
This presentation struck me as I haven't heard of the legislative changes adopted by the US congress in 1970-ies before.

In 1970-ies the congress suddenly became "transparent and accountable", a huge change from the status quo. This meant that the legislative process - the negotiations between the congressmen and the voting process - became transparent to the public and, more importantly, to the lobbyists.

I highly recommend watching the presentation. The discussed change may be one of the biggest reasons behind the growing power of the corporate entities.

dm3··on Wall Street Profits by Putting Investors in the Slow Lane
Something like a minimum holding time is a more reasonable approach. However, there's not a clear cut answer in any case.
dm3··on Migration from Postgres to Datomic
Hey, thanks for the comment.

To clarify - I wasn't trying to address the issues you've stumbled into, but rather list all the points I like about it.

dm3··on Migration from Postgres to Datomic
It's definitely not without issues. However, I've found it very simple to work with once you are aware of all the operational gotchas. Needless to say, it's especially powerful in a 100% Clojure stack.

The features I like most are

1) the transaction log - I've done something like that many times using Postgres and EventStore, but nothing beats the simplicity of just defining a few queries in code and having immediate updates on new transactions delivered to every peer.

2) idempotency - reasserting the same facts is a noop. Doing the same with a temporal table as suggested somewhere in this thread is not as trivial.

3) consistent db snapshots - once you get a hold of the database value, all the reads will only see the data as of time the value was retrieved. This makes application code much easier to reason about as the database can be treated as yet another immutable argument.

4) assembling a transaction value out of multiple pieces - same as the above, pure functions can all contribute to the final transaction value without having to mutate anything.

5) "free" caching on the peer - once you query something, it stays in the peer's memory. Subject to memory constraints, of course.

You can definitely build something as nice as Datomic on top of Postgres, but it will take weeks to get all the details right.

dm3··on Kotlin's hidden costs – Benchmarks
As time goes on you keep accumulating these details in your head. Then you just think about the low-level stuff the same way you think about the higher-level stuff, like algorithmic complexity, code structure, etc.

It does get tedious if you need to get something out of the door fast, but have to shave off another 30% of processing time per unit of work. Honestly, I just try to partition the working set and throw more hardware at the problem in these scenarios.

dm3··on Better Software Design with Clean Architecture
I think what you call viewpoints are called Bounded Contexts (https://martinfowler.com/bliki/BoundedContext.html) in DDD parlance.
← PreviousPage 3 of 5Next →