HN user

_vya7

2,337 karma
Posts7
Comments33
View on HN

After spending 50 months with Clojure, I can safely say it's my favorite server-side programming language (with Datomic as my favorite database), and the tooling (CIDER + Paredit + Emacs) is really downright amazing in terms of productivity.

The whole world deserves to experience what it feels like to be in your present moment.

I'm glad the author found something that helped him through depression. Unfortunately this is not a silver bullet. It won't work for everyone, or even every time depression hits.

There are many different activities you can try to help battle depression, and they are definitely helpful, and creating things is one of them. But they'll all fail without a key ingredient: realizing that you have to just do whatever you have to do, simply because it's the right thing to do, regardless of your emotions, or how intense they are, or lack of them.

If you live by that philosophy, you'll find yourself doing all the right things, and for all the right reasons, and you may not ever get out of depression, but it won't be crippling anymore.

A major difficulty with carrying this out as a person in tech though is that we're inherently a little more existential and philosophical than others because of the nature of programming being very intertwined with philosophy, and we get paid more generally which means we usually have more time to think too. Combine these with modern philosophy, and you usually have programmers who see no real value in life other than to enjoy it and have a good time (which explains why we love alcohol and sugary drinks like Red Bull so much), and when that good feeling runs out, life feels pointless and empty for us, because we can't find any motivation.

That also explains why there's a steady stream of philosophical and motivational posts on HN's front page. Because usually that good feeling that programming gives you doesn't last forever, so we try to look for explanations, or we try to look for other motivators. It also explains why we keep coming back to exciting topics on here, like bitcoin and the newest programming languages or tutorials on Haskell monads (which nobody can ever understand even though we know we should, so the closer we think we get, the more excited we are).

I don't have numbers on how many programmers are turning to religion, but I wouldn't be surprised if it was growing too, because we're looking for some motivation to keep us moving forward after the excitement runs out (and it always does, and never lasts very long).

Channels in Golang 10 years ago

My "aha" moment when trying to understand channels in Go was when I realized that everything about how this feature is designed comes from their answer to the question "how could we 'fix' select() in C?". In fact, pretty much every feature in Go is designed to fix some perceived flaw in C, and that's the entire philosophy behind Go. They aren't interested in language theory, or in innovating or solving problems outside of C. They were just trying to write C 2.0. Not that that's a problem, it's just, it threw me off. When it came out, I fully expected Go to be a new competitor to Java or even Python, not to C.

This makes a lot of sense in the context of programming languages, where counting usually starts "where you are", thus 0 moves forward.

But it doesn't really apply in the natural world, where 1 is a much better starting number for probably all contexts where you have to number or reference things in an order.

Maybe this clarification is redundant, I don't know. But when I read the headline, I assumed it was talking about everywhere, which is why I found it interesting and even clicked it in the first place.

Really enjoying seeing a lot of new projects based on Hammerspoon. And very glad for the people who created it, because maintaining the precursor was a daunting job and took too much of my time and gave me too much stress.

The media is entirely biased towards moral liberalism and I thought it was an "open secret" that only the most self-deluded didn't know about. Of course they're going to be biased towards Clinton, she's the morally liberal candidate. That's their job. If they don't go along with it, surely they get fired. They provide an avenue for confirmation bias, which is interesting because it's a self-fulfilling prophecy, considering most people are liberal because of the strong influence of the (biased) media on them.

Sometimes anger is justified. And sometimes it calls for a good venting. Sometimes it even calls for a little activism. And sometimes all of these are just futile, because richer people are in control of what you see and hear, who have interest in keeping their pockets full using the hard work of young impressionable kids who don't know the real value of their own time. It's sickening, and the anger is justified. The rant is probably going to be forgotten tomorrow though, and unfortunately won't save a single soul from the startup world.

He either completely misses the point, or completely gets it.

Every single one of these "benefits" are very well thought out and calculated shams meant to deceive and manipulate impressionable kids into working insane hours for less than a realistic living wage. That's the whole point.

It's just like that circus in the Pinocchio movie.

Unix as IDE 10 years ago

At some point I realized Unix is basically a long-running IDE + REPL, and thought that was just so cool. And then I realized how horribly inefficient it is at being that. So I started longing for the days when we had some kind of OS where it actually is a IDE + REPL, like an OS based on Lisp. And then I learned that that already was done and didn't turn out as cool as people had hoped. Oh well.

Some of the comments here are really missing the point.

antirez's original text editor was a full featured text editor -- meaning fully customizable (and fast!) syntax highlighting, and a very intuitive search feature -- written in pure C, with no dependencies, not even ncurses, and written in less than 1,000 lines of C code. And he wrote all this in a matter of hours.

This showed that fundamentally, a terminal-based text editor is trivial to build. Keep in mind, the text-editor market space is currently very sparse, with only a few real choices: Nano, Vim, Emacs, Notepad, TextMate, Sublime Text, and lately Atom, are the big players. antirez's work shows that, honestly, there's no real reason for the sparsity of choices. Writing a usable text editor is just not that hard.

And stevekemp's fork shows that it's still pretty trivial to add the kind of editor customization previously only thought possible in projects like Vim and Emacs. Think about it. Emacs came out in 1976! 40 years ago! But when people want an editor that's fully customizable, they go to that. Or to Vim, which, again, came out in 1991, 24 years ago! And trust me, setting up your environment so that it's actually usable, takes days to weeks.

Ironically, stevekemp and antirez's work, combined, shows that it actually takes less time to make an editor from scratch, than to customize Emacs or Vim to your liking! Granted, that's kind of a stretch, since most of us won't want to dive into implementing the concept of buffers.

More to the point than that, though, is that the top players in the terminal-based text editor slash IDE space, were written so many years ago, that the Internet was barely a thing at the time, that there wasn't yet a standardization on keyboards or terminals or even operating systems.

Things have changed. A LOT. It's time our terminal-based text editors caught up. But that doesn't inherently mean we have to start building everything on top of Electron. Terminals still work, and they're fast & efficient as hell.

Vim GIFs 10 years ago

Speaking of vim, just a reminder that @antirez made a terminal based text editor in pure C with no dependencies, not even ncurses, in under 1000 lines of code, complete with search feature, and customizable syntax highlighting for variable number of languages.

https://github.com/antirez/kilo

Lots of people have forked it and are actively making it their very own editor. Sure, none of them may ever take off and become a new emacs or vim competitor. Or maybe they will. Let's not discount innovation.

Plus it's amazing to me that to make a full fledged terminal editor, almost all you really need is the ability to read from stdin and write to stdout. Only a tiny little bit of glue C code is needed (for handling signals like SIGWINCH, or for setting or unsetting raw mode in the terminal), but almost the entire rest of it can be written in, say, Lua.

So there's a little history behind this:

As we added feature after feature to Mjolnir, and it grew to a monolithic collection of barely-related modules (APIs), I realized that it didn't make a lot of sense for users to keep upgrading to "newer" versions of Mjolnir, when in reality it was just the modules bundled with Mjolnir that were new or changed, and Mjolnir itself wasn't changed at all.

So I made the decision to decentralize the APIs. Instead of being bundled into Mjolnir itself, users would be able to download Mjolnir and then download or upgrade modules independently of Mjolnir.

This was pretty unpopular, because it meant Mjolnir was no longer "batteries included", so Hammerspoon was forked by the portion of the community that preferred that batteries included approach. Honestly, I don't even know how much of the community (if any) continued to use Mjolnir.

Honestly, this is the most exciting and inspiring project I've seen on HN in years, by far. I love that it's a fully usable terminal-based text editor that has zero dependencies. Just perusing the source code has been extremely interesting and educational for me already, and it's only been 5 minutes. Definitely gonna bookmark this project and hack on it! The TODO list looks like a good start, especially the xterm-based feature.

Maybe not such a shame. Having something (mostly) static like CSS has lots of performance advantages. Imagine the web being even slower than it already is, that's what DSSSL probably would have resulted in.

What, like dad jokes?

I have a fear of speed bumps. Im slowly getting over it.

Dad jokes are one of those things were people shake their heads and sigh, as if they're displeased, but internally they're laughing their butts off.

... Or maybe I only think that because I'm a dad?

I heard of zsh back around 2012, lots of colleagues who I respected very highly were using it. But I just never could get behind the idea of using someone else's defaults. Even when I switched to Emacs, I hand-picked every line in my configs from looking at a bunch of people's configs and with a lot of random googling to solve things. Even though it took like 2 weeks of constant tweaking to get just right, I haven't touched it much in like the past 3 years or so, and I've been super productive ever since. So meh, seems to have worked out for me. But YMMV. Also, I use eshell (with some tweaks) almost exclusively now, as opposed to a "real" terminal with bash or fish or zsh (etc.)

Well and fine, but those tools then need to be maintained forever, and they become yet another tool in the stack for developers who come on board to a company which has adopted them. It's easier and quicker to learn a new library like React, or even a new DSL like JSX, than a new language.

This is on Stuart Sierra's personal blog, so it's just him sort of thinking out loud. He's got a lot of that on his blog, and a lot of it is really valuable. I refer to it often when I want to get some new ideas on different ways to do things in Clojure.

That's kind of how news works. It does whatever it can to grab our attention and keep us as long as possible. So it shouldn't be surprising when we read a news article and feel the way the article intended for us to feel. The way I work around this is by just not reading news articles unless they have to do with some programming concept I'm interested in learning more about. Hence my being at HN more often than reddit.

Reconsider 11 years ago

Speaking for myself here, I've tried for my whole 6 year professional career to "make it big" outside of normal work hours. I've got lots of debt to pay off, and I wouldn't mind working for myself (or so I make myself believe).

But I'm much happier now that I've stopped doing that, and am focusing on just doing a great job at my day job, and relaxing in the evenings with my wife and children. Yes, we still have loads of debt, and we don't all fit in our Pacifica. But there's no rush to solve those, they will come in time. And even once they're solved, there will always be other little problems that need to be solved. There's no end to that until I'm dead.

And frankly, I'm doing a better job at work now than I ever did before, now that I can focus all my mind on it without trying to brainstorm up the next big thing in the background all the time.