HNHacker News
TopNewBestAskShowJobs

Naomarik

472 karma · joined June 23, 2015

naomarik.com
submissionscomments
Naomarik··on Clojure: A Lisp that wants to spread
WSL2 is great. Recently moved off MacOS to do all my dev work work on Windows.
Naomarik··on MacBook 16-inch Fan Noise (2019)
Motherboard, CPU, aftermarket cooler, case, RAM, power supply, 256gb m2 ssd all came to about 2500 AED from a computer store in Dubai after some negotiating. Already had a GPU, SSD, monitor, peripherals from my previous dying computer. On Apple's offical website, the base model 16 inch starts at 9999 AED and selecting 32gb of RAM comes to AED 11,679.00.

1680 to go from 16 to 32 GB of RAM. The total I spent on my 16gb x 2 corsair vengeance LPX 3200 DDR4 RAM was no more than 650 AED. What false claims am I making? You do the math.

I've become extremely dissatisfied with Apple's direction and felt frustrated being locked into the MacOS ecosystem because until recently there was no alternative that I was happy with. If they'd just make a new Macbook Pro with sufficient cooling and a normal keyboard I would have been satisfied.

I built it to replace my dying 9 year old gaming PC, having absolutely no idea that it would become my primary development machine. I just gave WSL2 a shot with pretty low expectations from my experience with WSL1 and just kept using it.

My main point to make was not about just about the hardware itself, but about Windows finally becoming a viable alternative for the work I'm doing.

Naomarik··on MacBook 16-inch Fan Noise (2019)
Been using Mac primarily since 2011 and sad to see everything keep declining with Apple's software and hardware quality. When programming an app and its backend with react native/clojure my 2015 Mac Pro gets way too hot and slow.

Just built a Ryzen 3600 desktop with 32 gigs of RAM for about 1/4th the price as the cheapest 16 inch Macbook. Windows with WSL2 has been extremely good and I'm satisfied with my development environment. Key things were disabling automatic updates via group policy, setup autohotkey to keep all my MacOS keybindings, use X410 to display emacs and using the new windows terminal. Development is super fast, compilation is fast, git is fast, everything just works. Attempted to switch with WSL1 awhile a year ago or so and while it was okay, I wasn't very happy with it.

My mac just sits there now mainly being a coaster until I need to test iOS builds.

Naomarik··on How Discord achieves native iOS performance with React Native
I'm using Clojurescript with react native via re-natal and it's a decent experience because of Clojurescript. If Clojurescript was not an option I'd probably just use flutter instead.
Naomarik··on Why Clojure?
You don't actually need to know anything about Java to be productive in Clojure. At least that was my own experience.
Naomarik··on Event Sourcing is Hard
I'm using Datomic in a production environment and the ergonomics of development so far have been extremely nice. Would definitely recommend.
Naomarik··on Blub Paradox (2014)
I have created non trivial projects in PHP and Ruby and have used a lot of other languages to do things before moving to Clojure... probably about 5 years programming before using my first lisp.

For me I find that s-expressions are the easiest thing to comprehend. Every other language is loaded with syntax and with lisp it's just mainly just (function args).

I wanted to test your argument and I have never looked at common lisp before, I just skimmed some source code from this project https://github.com/stumpwm/stumpwm and it's extremely easy for me to parse.

Comparing this to new variants of Javasscript that seem to come out biannually with some new syntax, I have no idea what's going on and have to look up references on syntax to begin to understand anything.

I guess at the end it's subjective, but lisps have ruined other languages for me.

Naomarik··on Clojure is Capable
90% of codebase in database? I've never heard of this before. I'm extremely curious, could you explain more? What are the tradeoffs and why did you guys go with this approach for the problem you're solving?
Naomarik··on Who Killed Prolog? (2010)
Clojure doesn't retroactively break old code like most modern languages.

https://twitter.com/stuarthalloway/status/102541111254678732...

Naomarik··on Clojure at Netflix (2013) [slides]
My feeling (and personal experience) is that the state Clojure is in now is so solid there's not a lot to talk about. Every time I take a peek at the JS ecosystem there's a new flavor or build tool.

I've been making a living using Clojure for a few years now as a solo dev and I don't feel the language is lacking in anything I would care much about. I started with reagent not knowing anything about react or having any Clojure experience and was immediately productive. I was able to augment part of a webapp I had in production in no time due instant feedback loops from the REPL and figwheel. The language is being iterated on but it has already been in such a state in that I'm not keeping up with what's new because I'm able to solve any problem I need to already.

I'm extremely happy with it. I have a lot of interests other than programming and I feel that Clojure allows me to deliver complex projects on time without driving me insane or having to keep up with new trends.

Naomarik··on The Little Typer
That sounds like clojure spec.
Naomarik··on I don't want to learn your query language
Was going to write a comment about datalog but will piggy back on yours. Every query language has felt like garbage to me until discovering datalog. So simple I explained it to my non technical business partner and he grasped how to query things within five minutes.
Naomarik··on The new MacBook Pros with T2 chips do indeed kernel panic randomly
Unfortunately that one is dual core. They don't have a quad core laptop in their line up with a full keyboard.
Naomarik··on The new MacBook Pros with T2 chips do indeed kernel panic randomly
Completely agree. I have the 15inch 2015 MacBook Pro and a Surface Book 2. It took a bit trial but I now have a setup I like using WSL for development, and have brought all the MacOS keyboard shortcuts over with autohotkey. All Apple needed to do was have a single model without the touchbar and I would have purchased a newer model regardless of potential keyboard issues. Surface Book 2 is the most brilliant hardware I've ever used that actually makes my MacBook feel archaic in comparison. The keyboard in my opinion is the best I've ever used and being able to detatch the screen and write on screen and read books in portrait mode feels like some alien technology. Battery life is also a huge win.

I was very skeptical of Windows as a development environment so bought the 8GB version as mainly a secondary computer/screen and notepad when doing work in cafes alongside my Macbook. I'll probably end up selling it and getting a the 15inch 16gb version. My Surface has only recently dethroned my MacBook as my daily driver after spending time to set it up properly. Also once you get used to a touchscreen it feels unnatural to not have one.

Naomarik··on Problem Solving and Clojure 1.9 with Rich Hickey
Clojure has been the most stable ecosystem I've ever dealt with. Once you get into it it's not uncommon to see libraries that are years old that function perfectly. I'm not even scared to update clojure to the latest alpha builds because things just always work.

There's also this to look at on the subject: https://lkml.org/lkml/2018/8/3/621

Reddit discussion: https://www.reddit.com/r/linux/comments/95b1hf/linus_torvald...

Naomarik··on Hyperledger – Linux’s open source approach to blockchain building
IF you go that route, it begs the question of "why bother?" You're putting everything in the hands of one entity and then adding in a ton of complexity and slowness. Just use a database or something right?

So what's the justification your company used for a private blockchain in lieu of a database?

Naomarik··on Show HN: I made a tool that made me faster at Git
Best setup I've found was to run everything within WSL when developing on Windows and exporting emacs display to Mobaxterm's x-server for a proper emacs experience. Everything is extremely fast and I find myself using my Mac less frequently now since WSL is working very well for me.
Naomarik··on MacBook Pro with faster performance and new features for pros
I clicked on the link hoping that there would be an option with no emoji bar. Unfortunately this is another generation of disappointing MacBooks I will pass on.
Naomarik··on [dead]
Living in UAE now and considering relocating.

Anyone have recommendations for an American citizen? Preferably a place with good cycling infrastructure and can live cheap and safely?

Naomarik··on Ask HN: Who has started a business because they couldn't get hired for work?
This is almost me. I wouldn't be where I am if I got hired from specific companies I applied to. I found it impossible to get a job I wanted before I learned programming.

Triplebyte denied me in a phone screening and at that time I had just read all Paul Graham's essays and would have sacrificed a lot to move back to USA and work for a YC startup.

At this point I'm very happy things turned out the way they did. One thing I will never miss is having my life controlled by an alarm clock.

Naomarik··on AI winter is well on its way
I'm in same boat, except now I have to deal with both this and blockchain.

It's pretty clear to everyone pushing this is being dishonest. Sometimes I wonder if they intentionally being dishonest or if they just don't know what they don't know. Very few people are doing useful true machine learning, and the applications are very specific with its own set of quirks. It's just to make some quick money and get out.

What somehow is never being said with all this hype is that you need to hire good software devs to make a great solution to a problem. All these buzzword driven ideas tend to confuse a bunch of people and die out after wasting everyone's money. In my region I keep seeing a bunch of business suits pushing X idea being solved with Y with no justification or engineers behind them.

Yesterday I have found out I have to have yet another meeting to explain why "blockchain" does not translate to a full solution given to a very superficial poorly thought out problem.

The only reason I've had a voice in my region with all this noise is because I've made things people see that actually work.

Naomarik··on GDPR for lazy people: Block all European users with Cloudflare Workers
As the solo developer/cofounder of a two man business I have absolutely no time to worry about these things. Only a few days ago I've googled GDPR to get a facile understanding of what it is.

If at some point I create something that is large enough to matter, I can worry about it then and will have the resources to do so. Until then I'll continue working on software as if it does not exist. It's hard enough to build a profitable product that is valuable to people, don't need to think about any laws handicapping my creativity and design decisions.

Naomarik··on Instagram deprecates majority of their API
Silly indeed. I applied for it twice, having submitted a screen recording explaining what I was using it for. They gave me partial API access, pretty useless functionality. Not what I needed which was clearly explained in the second video.

The application felt like I was begging. Not something I'd ever do again.

Naomarik··on Facebook spamming users via their 2FA phone numbers
iOS devices in general. Spend two months away from one and you'll have about 3-5 modals pop up at different times while you just start to use the device. Awhile ago I was using an old iPad, dismissed a several modals and started reading. One modal that I dismissed previously came not more than two minutes later again, completely interrupting me. Stopped using it after that, wanted to throw it against the wall.
Naomarik··on Progressive web apps are coming to iOS 11.3: Cupertino, we have a problem
The worst thing about trying to make something work in the browser for mobile is getting the UI to utilize the full height. This is common when the UI needs to have both something stickied on the top and bottom of the page. Both Chrome Android and Safari will cut off content if that content is 100vh with their URL bar that comes and goes as you scroll. Then you have full screen mode which iOS does not support but Chrome does, except that on Chrome invoking the keyboard does not tell the page anything about the height that it's taking up.

The only browser that gets everything correct is Samsung's default browser. This is pretty ridiculous and the hacks available with current APIs aren't very good compared to if these browsers worked properly with 100vh.

Naomarik··on Building for the Blockchain
Also as a developer and founder making decisions and executing on every piece of the stack, I also don't see why this is blowing up. It seems to me that a bunch of people who have not had to experience making and executing real software architectural decisions are hyping it up to be more than it is. They've created an echo chamber for this buzzword, and rather than talking about solving a real problem, they're going straight for this solution. Good reliable software is already hard to create and maintain and where I live all these clueless businesses and government folk think that blockchain has come to save them from all their IT woes.

Blockchain as a technology as originally described by satoshi's paper is an extremely good solution as a cryptocurrency. You have a bunch of transactions and they all reduce into a single number -- your wallet balance. Anything other than this you're just shoehorning data in a crappy linked list and you'll pay all the penalties for doing so.

Naomarik··on Try quickly typing 1+ 2 + 3 into the iOS 11 Calculator
Except it isn't worse. Not anymore anyway. Any and all notifications just go up top and don't prevent you from using the phone -- even if someone calls you. My 3 year old Sony Xperia Z1C that I only use to for testing lets me jump into whatever app I want as soon as it starts immediately even though I can see there's like 50 notifications to go through. But I can do that when it's convenient for me.

My main problem is that if I simply want to do something on any iOS now as soon as I unlock it I'm blocked by pop ups for things like making a back up and buying more iCloud storage and upgrading to iOS 11 -- things I never intend to do. There's no way to switch these off either. And they happen constantly, multiple times a day.

Last time I used my iPad I dismissed a popup, opened up an app and the same pop up came a few minutes later completely interrupting me. I have no tolerance for these annoyances.

Samsung phones were complete trash back in the day with their bloated interface but I've since switched to a Note 8 and the experience has been very good. UI is very clean and the performance/features on the phone are outstanding.

Naomarik··on Try quickly typing 1+ 2 + 3 into the iOS 11 Calculator
This is precisely why I will not buy an iPhone again. Every single time I open my photos to show someone something I have to wait through two popups that are extremely slow to close. Also now I'm getting nagged to upgrade to ios 11 whenever I just want to use the phone. Abysmal.
Naomarik··on Rich Hickey's response to “On whose authority?”
I've never had to make a context switch between clojure and clojurescript. If differences in semantics means I have to change how I think about solving the problem at hand, then that has been pretty much non existent in my experience. Of course with one you have browser APIs and the other is java, but when it comes to building up and transforming datastructures everything I've been doing works the same on both.

This is also why most the time you can just tack on a "c" on the extension and you have something that works on both clojure and clojurescript.

Performance is not an inherent problem of clojurescript. It was just the way you coded you prototyped your app. Your experience is valid but don't blame the problem on the tool when it was the way you solved your problem before you optimized it.

I absolutely mean no disrespect to you but I don't want your comment to dissuade others from trying out what has essentially been a utopia for me. It has allowed me to build non trivial webapps without having any familiarity with functional programming or lisp. The feedback loop is so damn tight that I was productive without knowing much of anything.

But maybe that's okay. If the everyone else is constantly updating their build tools to every flavor of the month and having to learn new versions of javascript, that gives the few of us who are mastering clojure/script a bit of an advantage.

Naomarik··on Rich Hickey's response to “On whose authority?”
An unfortunate thing? That a project's own creator ensures the quality of its future?

What I've realized as I grown older is that the majority of people are not worth my time. Loads of people will actively waste your time and talk about things without knowledge. If you listen to Rich speak in any of his presentations or interviews, it's pretty obvious he knows the same thing and his inner circle are extremely intelligent. If you want to progress you must eliminate the garbage and keep the most quality people you can around you.

We now have like 5 main versions and variants of javascript that came out in the last few years that all look like complete rubbish (purely my opinion). There seems to be a new build tool coming up every 3 months. Everyone is making a library for things as basic as calling an API or padding a string. At one point not so long ago I was one of the programmers who needed said libraries to get work done.

The code for clojure is open source. If anyone absolutely must use clojure they can do a better job than Cognitect just fork it. Or keep learning the new version of javascript that inevitably comes out every year.

← PreviousPage 2 of 3Next →