HNHacker News
TopNewBestAskShowJobs

synthc

893 karma · joined December 22, 2015

reach me at hackernews@chrisblom.net
submissionscomments
synthc··on Docker is deleting Open Source organisations - what you need to know
Another reminder that VC-funded hosting does not last forever. Self-host your mission critical dependencies folks!
synthc··on Ask HN: Freelancer? Seeking freelancer? (March 2023)
SEEKING WORK | REMOTE (EU timezone)

I'm available for part-time contracts or short consulting gigs in addition to my main assignment. My main assignment ends this summer, also open to discuss longer full-time engagements after that.

Skills:

- 15 years of experience in companies ranging from 5-person startups to huge multinationals, MSc in AI

- Deep experience with Kafka, streaming processing and adjacent tech: designing messaging based architectures, fixing bottlenecks.

- Rule modeling and discrete optimization with Optaplanner, Google OR-tools & MiniZinc.

- Building prototype apps for visualization and decision support with ClojureScript.

See profile for contact details.

synthc··on Ask HN: What is your experience in tech consulting?
It doesn't have to scale if the rates are high enough.
synthc··on Intermittent Fasting Completely Reverses Type 2 Diabetes in Study
Any references that prove this? I have been skipping breakfast for years, and feel fine. Eating breakfast makes me feel sluggish
synthc··on Switzerland: snow flown in by helicopter in attempt to keep ski slopes open
Think again.
synthc··on Why we picked Java
Nice anecdote, but was it because of the language or because a small motivated team gets much more done than a big enterprise that is bogged down in meetings?
synthc··on Why we picked Java
Based on one guy who did a hobby research project based on GitHub issues?
synthc··on Why we picked Java
Having used both statically and dynamically typed languages, I don't think this is true at all.

Most modern languages are pretty close in productivity, architecture and the way a company is organized have much more impact on productivity.

In big enterprises every small change requires 3 meetings, in a startup you can just make the change.

synthc··on Ask HN: Programs that saved you 100 hours? (2022 edition)
Shell productivity tools like fish, fzf and z.

Feels like doing parkour on the command line!

synthc··on Why we picked Java
Yes Maven uses XML.
synthc··on Why we picked Java
I'm fine with Java copying features. I'm happy to use Kotlin now while it is ahead, no problem with switching back to Java once it catches up.
synthc··on Drag and Drop from Terminal
Linux has xdg-open to open files from the terminal
synthc··on The one about Lisp interactivity
I would also not normally connect to a REPL in a production environment, but it can come in handy.

One can certainly attach a debugger to a running process in production, I've done it several times to debug gnarly issues.

synthc··on The one about Lisp interactivity
True, for Java and Kotlin I use the debugger in IntelliJ like a REPL all the time. You can even evaluate arbitrary expressions, connect to running applications even applications running on another machine.

It's not as powerful as a proper lisp repl as you cannot redefine functions or classes, but it is still very useful.

synthc··on Is Turbopack really 10x faster than Vite?
It's just the evolution of a marketeer.
synthc··on Elasticsearch SQL
Seems like all the NoSQL databases eventually implement SQL, maybe we should use EventuallySQL instead NoSQL
synthc··on Ask HN: How to show a not “so perfect” MVP to potential customers?
Use a recording in your presentations instead of a live demo A video usually feels "real" enough to an audience, but you can avoid crashers or unexpected inputs.
synthc··on Revised Report on the Propagator Model (2011)
Has anyone used propagators in practice? I find it a very interesting concept, but have not encountered it in the wild.
synthc··on Clojure 15th Anniversary: A Retrospective
for prototyping a long running repl is fine.

For validation/testing starting with a clean slate takes away a lot of my worries.

synthc··on Clojure 15th Anniversary: A Retrospective
My theory is that some people get really attached to the language and take criticism to it personal. See the comment above where someone says 'I feel compelled to defend the honor of my favorite language'. It does get cult-like at times, which is too bad as adressing the failings instead of ignoring them would improve the language and increase adoption.
synthc··on Clojure 15th Anniversary: A Retrospective
But programmers should be worried about every what-if scenario, regardless of language.
synthc··on Clojure 15th Anniversary: A Retrospective
deps.edn is a building block not a finished build tool. You need to import libraries for common tasks like building an uberjar.

There are plenty of reasons to start a new REPL: - adding a library

- changing the project config

- messing up the repl state

- starting with a clean slate

- switching branches

synthc··on Clojure 15th Anniversary: A Retrospective
In my experience the Clojure community is pretty tone-deaf when it comes to critisim. The usual response being something along the lines of 'your problem is not a problem, it was meant that way'.
synthc··on Trying new programming languages helped me grow as a software engineer
I was wondering where this 1 return practice originated from, but yeah, it makes sense in that context.
synthc··on Trying new programming languages helped me grow as a software engineer
Macros
synthc··on Trying new programming languages helped me grow as a software engineer
Yes this is exactly what I meant. After years of coding in Haskell and Clojure, and then going back to Java I have absolutely no problems with

    int max(int x,int y) { 
      if (x>y) 
        return x;
      else 
        return y;
   }
I just looks completely fine to me, but colleagues would complain about it in reviews and I just don't understant the problem at all. The variant with the extra result variable looks just wierd to me, and I have seen much uglier code written by people desperately avoiding early/multiple returns.
synthc··on Trying new programming languages helped me grow as a software engineer
Yes this is an excellent example of different cultures and ecosystems.

In Python a library like requests is a thin abstraction over http calls it is very easy to understand what is going on and get started.

In Java, there is a tendency to wrap everything so it fits with a framework and is super generic and configurable. For example look at the Feign library.

Each approach has its pro's and cons, but knowing both of them good as it allows you to pick the right solution for different use cases.

About getting into java: i'd recommend using Spring Boot. I provides a low abstraction http client (RestTemplate) that allows for straightforward calls to REST services.

synthc··on Trying new programming languages helped me grow as a software engineer
Different languages also have their own culture and ecosystem, which are also valuable to learn in order to get a different perspective.

Some things that are taken as best practices are bad practices in other langauges and vice versa.

For example, lots of Java devs are against early and multiple returns to the point of absurdity, while in functional languages this is idiomatic and no problem at all.

Using different languages lets you see how different approaches work out in practice, so you can get a better view about which approaches work and which approaches are just cargo-cult nonsense.

synthc··on Crimean bridge: Explosion is 'the beginning', says Zelensky adviser
And what solution would you suggest here? I'd like to hear it. Preferably one that does not setup Russia for another invasion in a couple of years, like you know, when they took Crimea.
synthc··on Ask HN: Is Clojure Dead?
I've worked with Clojure for years using the REPL driven approach and found I needed restarts quite often, for example when adding updating dependencies or other changes to the project file.

REPL driven development is great, but sometime you want to make sure that you are not using some function that was only defined in the REPL session but not in the source code. Also the REPL session sometime gets in a bad state when printing big outputs, blocking forever with some concurrency stuff or other mistakes.

← PreviousPage 3 of 8Next →