HNHacker News
TopNewBestAskShowJobs

janetacarr

459 karma · joined March 1, 2018

Independent Clojure Consultant
submissionscomments
janetacarr··on Why Janet? (2023)
I have my qualms with Janet. Mostly, it's lack of package management versioning and lack of libraries in general (advanced HTTP routing, etc).

I do LOVE that Janet can create binaries with JPM, scripts, and is very portable. I once put the Janet programming language on the Playdate game console as POC.

I actually do enjoy writing Janet, but every time I do people think I created the language (I did not).

janetacarr··on Rich Hickey's DotLisp
I'm surprised how much of dotLisp syntax made it into Clojure.
janetacarr··on A simple core.async job system in Clojure
Yeah but that's not nearly as fun!
janetacarr··on A simple core.async job system in Clojure
Wow, thanks for the kind words.

I've been bitten by the ops hellscape of microservices and various tech many times throughout my career, and it's definitely shaped how I think about designing and building software now.

janetacarr··on A simple core.async job system in Clojure
I'm glad you liked it!

I'm using a PaaS, so I didn't want to pay the extra money for a cron job. Maybe not a wise a choice, but here we are.

Totally agree about the issues I might face. I'm glad that the Clojure REPL is a thing, so I can test out all of a job's functionality before sending it off to async land.

janetacarr··on Ask HN: My company went bankrupt today and I have 2 options
Start smaller. You have to walk before you can run. I might be biased because I've tried and failed at a few startups, but this is what I'm doing:

Try building smaller / easier businesses first. Try freelancing or try selling something, anything, like a course. I think there's a very strong correlation between who can make it as freelance and those who can make it with a startup. The market is validated, and you'll get experience in selling, branding, marketing, etc.

Unless you live in Thailand or Bali, I don't see much option for mitigating risk here. Having a freelance/consulting business is going to do wonders for your entrepreneurship career. It'll give you more control over your work schedule, so you can keep making bigger and bigger bets. Just make sure you get high-value clients so you can make margin. Otherwise you'll be hunting for work all the time.

Last piece of advice: don't listen other people (LOL). Everyone has an opinion on how to be an entrepreneur and what 'true' entrepreneurship is. Focus on yourself and where you want to be and how to build a life where you can keep taking shots at the goal.

janetacarr··on Ask HN: How many of you are self employed?
I've been self-employed for nearly three years as a freelancer / consultant.

Though, I have a course I've pre-sold during the recent work drought. These pre-sales have been paying the bills. So there's lots of pressure to deliver on them while still trying to line up freelance/consulting work.

I started doing this because I had big indie hacker dreams. Now I just think that I'm partially unemployable. What matters most to me is controlling my own destiny and Intellectual Property rights. Writing code is what fills me up, and It needs to be protected. Otherwise, I feel trapped, growing bitter and angry over time. So I'll keep doing this until I have more products.

My ultimate goal is to create a portfolio of products to pay the bills. I have no particular biased towards what. They could be courses, ebooks, or even games. 2023 was a special case in terms of cash flow (business cycle goes down), but I'm hopeful for the future, and my course sold decently well, so I think I'm getting the hang of this entrepreneurship thing.

janetacarr··on Ask HN: Dystopian Sci-fi books that take place in San Francisco to recommend?
Only thing is, Agency isn't really dystopian imo.
janetacarr··on OpenAI's board has fired Sam Altman
Context is very important in these kinds of use cases. If you work with something niche, I think these tools are less valuable because the training data becomes sparse.

For example, GPT-4 produces Javascript code far better than it produces Clojure code. Often, when it comes to Clojure, GPT-4 produces broken examples, contradictory explanations, or even circular reasoning.

janetacarr··on Ask HN: Could you share your personal blog here?
https://blog.janetacarr.com I write a lot about Clojure and software developer with Clojure. I only have like a dozen posts though, but people seem to like them (mostly).
janetacarr··on Ask HN: Who’s Working on the “HTML” for VR?
ah, thanks for the tip!
janetacarr··on Time Magazine Cover: Cyberpunk – Feb. 8, 1993
Yes, mostly about the subculture in the 90s. The article is worth the read.
janetacarr··on MVC Isn’t MVC
My take on MVC is that it's an architectural pattern to decouple state, state changes, and state usage.
janetacarr··on Ontario's DER Permitting Database
What does DER stand for? Google thinks I'm going hunting....
janetacarr··on Ask HN: What are some of the most elegant codebases in your favorite language?
I try not to toot my own horn, but I wrote this little quadtree library that tickles that elegance part of my brain. I try very hard to write elegant code. I have other Clojure repos, but they suck. :P

https://github.com/janetacarr/quadtree-cljc

janetacarr··on Ask HN: What helps you focus and get things done?
Momentum.

I think the best advice I got on this subject was "the first five minutes are the hardest". I forget where I heard this, but I took it into my remote working jobs and into all of the self-employed stuff I want to do. It could be simple and small, whatever it is. Sometimes it's just writing comments or tests for my existing code. Eventually the flow takes over and craves more intensity, so at that point I just go with the flow.

janetacarr··on Mindset shifts for functional programming (with Clojure)
Oh yeah. If you didn't know what a reducer was, the article might be a bit confusing, eh?
janetacarr··on Mindset shifts for functional programming (with Clojure)
Oh I see what you mean. I had to look into this a bit. Sorry for the confusion!
janetacarr··on Mindset shifts for functional programming (with Clojure)
I agree with you, but I also never said it's snobbish about pure functional programming. The way I see it, pure functional programming, like anything, is just a tool in the belt to help think about solutions in a different manner.
janetacarr··on Mindset shifts for functional programming (with Clojure)
Transducers are great!

They were an small obsession of mine last week as I wrote an accompanying blog post to demystify them.

janetacarr··on Mindset shifts for functional programming (with Clojure)
That's pretty cool. Armed with the fundamentals outlined in the post, my intent was for the reader to infer how he or she can design a system in FP. I'm sorry if it wasn't clear enough in the code.
janetacarr··on Mindset shifts for functional programming (with Clojure)
Agreed, I rarely reach for recursion myself when developing. Most of my transformations are map, filter, and reduce. Although from time to time, I will combine them with recursion when necessary. I find recurring from a reducing function to be great for traversing or searching trees or other recursive data structures. Usually these are accompanied by a ton of comments for the next developer. :)
janetacarr··on Mindset shifts for functional programming (with Clojure)
I think this would be correct for declarative programming languages, but I don't agree that Haskell is a declarative programming language. Haskell is pure functional programming in my mind. A declarative programming language might be something more akin to DML SQL for a RDBMS, or HCL for Terraform (pre-looping, v0.X).
janetacarr··on Mindset shifts for functional programming (with Clojure)
Clojure data type's are fantastic, but the main thesis of my post isn't what's required for FP in Clojure, rather, what's required to become comfortable with pure functional programming concepts which is why I reference Haskell a lot in the post. The examples just happen to be in Clojure.

Sorry for the confusion.

janetacarr··on Mindset shifts for functional programming (with Clojure)
I agree with your sentiment about recursion. It took me a damn long time to get used to it. But that's why I call it a mindset shift ;). If the codebase was written in Haskell, then there'd be no looping. Clojure is a bit odd in this case as it has a form called "loop" but it's really just a let binding over a fn, providing a point for `recur` to, well, recur to.
janetacarr··on Mindset shifts for functional programming (with Clojure)
Agreed, cyclomatic complexity is definitely something to be aware of when designing functional programming systems.

Although, I disagree about Clojure's readability, but that's probably because I've been doing it for so long.

Interesting Java project you've got there. Reminds me of Clojure's core.async library and software transaction memory ;) (though, I know it's not exactly the same thing).

If I was transforming large streaming input from Kafka or Kinesis, I would probably reach for Cortex (a map-reduce style lib for Clojure), or I might rig up some strange, stream-to-lazy-seq adapter and reach for transducers as they have much better performance when dealing with larger input.

janetacarr··on Mindset shifts for functional programming (with Clojure)
Totally! Clojure is kind of great for this, the loop form in Clojure is really recursion as `loop` just provides a point(fn) for `recur` to return as well as a let binding. You could also just call `recur` in any fn. And, it has side-effect forms like do, doseq, dotimes, etc.

I'm glad you enjoyed the read though :)

janetacarr··on Entrepreneurs who regret starting businesses
I think what people don't seem to understand is that entrepreneurship is a skillset. You can get better at it by practicing.

Like any skillset, you can build a career out of it. And, just like any career, you could end up on the scale of loving it to hating it. I'll admit it's quite a bit harder than any other career though since often you can't look to your peers for advice or examples of success. It's largely a game of taking on risk to provide value to people who will pay for it.

If you've never promoted yourself online, how do you expect to learn enough marketing chops to get people to the value you provide with your business; how do you expect to learn enough sales chops if you've never sold anything to anyone before.

As for me, I'm just a lowly independent consultant, so make of this what you will, but I understand that I'm slowly getting better at sales and marketing, and understanding the value I can provide to my clients, and what makes my consulting different (and hopefully better) than others. Like a natural career progression, I hope to give myself a promotion by creating and selling digital products one day using the skills I've built at the bottom of the ladder.

janetacarr··on Post-GPT Computing
I could just be rationalizing here, but I think AI will be illegal soon. The idea of banning AI to protect many well paid middle-class jobs will be a slam dunk for any politician.

There will be no Post-GPT computing world, just the Turing police and console cowgirls.

janetacarr··on A year from quitting my full-time PM job – what I miss the most
At one point, my indie friends even threw themselves a holiday party! The sky is the limit (until you become a billionaire and fly to space ;).

I hope it works out for you.

Page 1 of 4Next →