HNHacker News
TopNewBestAskShowJobs

jgoodhcg

232 karma · joined September 2, 2016

submissionscomments
jgoodhcg··on Why Lisp?
Saving repl output is a great way to make tests. It’s often the stuff that is confusing and likely to change that you exercise in that space so if you take what you find from there and make a test out of it someone will likely benefit later.
jgoodhcg··on Why Lisp?
The repl is great for understanding something quickly and easily. It works for big new parts of the code base and small things that you just need to be reminded about. The nice thing is, if you save your repl output, you can really easily create tests from it.
jgoodhcg··on Why Lisp?
I worked in Kotlin and Java for awhile and the closest thing I had to a repl was stopping the debugger and running arbitrary single lines of code in the context I paused. It was awful compared to the clojure repl.
jgoodhcg··on Why Lisp?
I almost always do my repl work in a source code file. That way I never lose it when the repl closes and I can copy it into a test when I know what’s going on.
jgoodhcg··on Why Lisp?
I work with clojure and test driven development is not nearly as productive as repl driven development imo.
jgoodhcg··on Htmx Is the Future
One great thing about your docs is the anticipation to concerns.
jgoodhcg··on Htmx Is the Future
I've spent almost my entire career working on react based SPAs and react native mobile apps. I've just started playing around with HTMX.

> no good story for what happens when one component in a tree needs to update another component in the tree

HTMX has a decent answer to this. Any component can target replacement for any other component. So if the state of everything on the page changes then re-render the whole page, even if what the user clicked on is a button heavily nested.

> it's impossible to implement "optimistic UI," ... hurting the user experience

Do we actually need optimistic UI? Some apps need to work in offline mode sure, like offline maps or audiobooks or something. The HTMX author agrees, this is not the solution for that. Most of the stuff I have worked on though ... is useless without an internet connection.

In the case of "useless without internet connection" do we really need optimistic UI. The actual experience of htmx is incredibly fast. There is no overhead of all the SPA stuff. No virtual dom, hardly any js. It's basically the speed of the network. In my limited practice I've actually felt the need to add delays because the update happens _too fast_.

I'm still evaluating htmx but not for any of the reasons you've stated. My biggest concern is ... do I want my api to talk in html?

jgoodhcg··on Were React hooks a mistake?
I have not seen a better client state management than re-frame. https://github.com/day8/re-frame

Notably the author of re-frame has been weary of hooks.

I think that’s for a good reason. The approach in re frame feels like the best way to manage state so far for a react based app. Everything that changes state flows through an event. State can only be observed through subscriptions. Side effects are isolated to their own type of event. Debugging and testing are so straight forward with these concepts.

Redux got close but it has two problems in my mind. Like hooks, it encapsulates for no good reason. Put the state in one thing that you can observe holistically before and after pure events. It also has too much boiler plate.

jgoodhcg··on Clojure Turns 15 panel discussion video
I think the Roam Research style backlinked knowledge management apps are directly enabled by datascript.

Two "copy cats" (not meant to be derogatory) of Roam that are open source are: https://github.com/logseq/logseq https://github.com/athensresearch/athens

The underlying in memory datalog style database that can run in the browser that enables these apps https://github.com/tonsky/datascript

jgoodhcg··on Clojure Turns 15 panel discussion video
Clerk is amazing!
jgoodhcg··on George Orwell's 6 rules for writing (2018; originally published in 1946)
There are OSS linux cli tools and npm packages that do the same thing but I find myself using this web app often.

It has a pleasant interface and making all the errors go away usually results in clear writing.

https://hemingwayapp.com/

jgoodhcg··on Scalability is overrated
Maybe “spirit of an engineer” could be better phrased as “visionary mindset”. Lots of engineers I’ve worked with imagine potential problems and treat them as requirements to solve even though the problem may never actually materialize.
jgoodhcg··on Stripe laying off around 14% of workforce
4 months is relatively generous but...

> if you can't find a new job in 4 months, it's on you,

This statement feels _wrong_. We are all subject to macro trends that we don't have control over. They impact our lives. Even the well off tech people but especially people in other industries.

jgoodhcg··on Oh Shit, Git
I've had the exact opposite experience. I've had to bail out cli purists because they just can't see what went wrong.

Objectively git kraken has more visual information density. To get the same information on the cli requires multiple commands and the user has to hold the information I'm their head between the commands.

Git kraken's buttons are also tightly correlated to commands and you can even bring up a window that shows what cli commands are being run under the hood.

jgoodhcg··on Why U.S. Infrastructure Costs So Much
Isn't a trade off for some efficiency worth things like living wages, safety, and quality standards at scale?
jgoodhcg··on Jack Dorsey is giving Andrew Yang $5M to build the case for a basic income
There would still be markets and competition. There would be some baseline price increase when people stop being exploited. At a certain point equilibrium will be met and someone will come along with cheaper toilet paper.

The difference will be there are more consumers in a safe position to make purchasing decisions.

jgoodhcg··on Using Clojure for Web Apps
Is pedestal a better experience than luminus?
jgoodhcg··on Microsoft Alternatives project (MAlt): Taking back control using open software
There is a difference between advice for a lifestyle business and critique of a fortune 50 company.
jgoodhcg··on Three Vacation Policies
Exactly this, do you want 4 hours a day of really productive time or 8 hours of moderately productive time?

I only have so much active problem solving per day. I can spend it all quickly then go do something recharging or sit around forcing focus and resenting the fact that I have to look busy for 8 hours a day.

jgoodhcg··on Programmer as wizard, programmer as engineer (2018)
Cute way to put it. Just like many I'm in the midst of painful transition from quick and dirty mvp to well engineered end product.

Everything Rich Hickey has been giving talks on and clojure itself seem to be the best _solution_ I've seen.

jgoodhcg··on Test Your Knowledge of American Incarceration
Had the same issue trying to "move points I had placed" but that doesn't seem to be how it was designed. Moving from left to right, drawing the line in one continuous motion worked great.

Correcting a guess means drawing over from any point moving right.

The interface seemed really well done even for mobile. Tested it on chrome and Firefox for Android. I'm Really impressed. NY times does some great interactive and visualization work.

jgoodhcg··on Ask HN: Do you care about the product you are building?
I joined a team because of the eagerness to adopt a modern devops workflow. Having a nice environment to work in as a Dev almost makes working on shit you don't care about worthwhile. I'd much rather be working in clean energy, education, or healthcare. I tell myself I'll get to those industries when I have more experience...
jgoodhcg··on The US Is the Lowest Taxed Large Developed Economy in the World
20th century white population had a maximum of 89%. https://en.m.wikipedia.org/wiki/Historical_racial_and_ethnic...
jgoodhcg··on Thinning in brain regions important for memory linked to sedentary habits
I'm really hoping VR headsets can provide a workspace where people can lay down or stand. The keyboard replacement in those positions might be hard to figure out.
jgoodhcg··on Ask HN: What stack would you use to build a CRUD web app in 2018?
I haven't tried to find something and not found it.

The back end is way more mature than front end SPA stuff so I'll just list some things I'm really glad to have in that space

- re-frame : like redux but better

- re-learn : lets you create tutorials for application with no changes to dom

- cljsjs/filesaverjs : cross browser file download dialog

- cljs-react-material-ui : material ui react library port

- camel-snake-kebab :useful for changing casing

- com.rpl/specter : easy way to deal with large nested data structures

- stylefy : inline styles with support for media queries and animations (all with clojure data structures!)

jgoodhcg··on Ask HN: What stack would you use to build a CRUD web app in 2018?
I don't think that quote justifies your love of jQuery. The keywords are "some" and "sprinkled in". In my experience jQuery always trends towards a huge mess the more it is used.

Sure, it could be used but it really shouldn't.

Interacting with the DOM in a procedural way, and storing state on the DOM is always going to be harder to manage than using a reactive pattern when you trend towards more complexity.

jgoodhcg··on Ask HN: What stack would you use to build a CRUD web app in 2018?
Clojure(script) with re-frame, using the luminus template.

https://github.com/Day8/re-frame http://www.luminusweb.net/

edit: Should probably say why...

- Clojure and clojurescript give nearly identical experiences on the front and back end, with the ability to actually share some code between the two.

- Clojure is dynamic and spec gives some really awesome validation and generative test capabilities

- There is a lot of fuss around javascript frameworks and dealing with html / css build tools and their arbitrary syntax. Clojure front end frameworks provide tools that make templating html look just like regular data structures in clojure, styles too. With stylefy you can also keep all styles inline while supporting media queries. It really is a low cognitive load setup once you get going. I love it.

https://github.com/Jarzka/stylefy

edit-2: More whys...

- re-frame is basically redux but easier and with less boilerplate. I use it for small and large projects.

- Pure immutable functions are such a game changer. Even poorly written projects with tons of features can be reasoned about and broken down for long term maintenance if the language supports immutability and pure functions. Re-frame really plays to this strength for managing state and I can't say enough good things about it. Been working with it for 2+ years and I can't imagine switching for anything else I've seen out there.

jgoodhcg··on A Driver’s Suicide Reveals the Dark Side of the Gig Economy
Idk, no stats or data to back this up but...

I really believe that UBI would be sustainable by tapping into the concentrated wealth that arises as an unfortunate and unfair side effect of the economic rules we put in place.

jgoodhcg··on A Driver’s Suicide Reveals the Dark Side of the Gig Economy
Universal Basic Income would have saved him, and help all the other people in an unstoppable disruption.
← PreviousPage 2 of 2