HNHacker News
TopNewBestAskShowJobs

hydandata

364 karma · joined April 18, 2015

https://chkhd.net

[ my public key: https://keybase.io/chkhd; my proof: https://keybase.io/chkhd/sigs/45ofWcV9a5YlGuOUrVOvjfYC_PT93HeTSVumn9gC9Jg ]

Note: No longer in use, new identity: https://keybase.io/chkhd

submissionscomments
hydandata··on How to write Common Lisp in 2017 – an initiation manual
You build trust with stakeholders, usually by solving important problems until you reach a point at which having you solve a new problem is more important to them than what you solve it with. It helps if whatever tech you are introducing actually helps you in the task of solving more problems, increasing quality of solutions or reducing cost, in that particular order.
hydandata··on How to write Common Lisp in 2017 – an initiation manual
Having a REPL does not necessitate interpreting http://www.sbcl.org/manual/#Compiler_002donly-Implementation
hydandata··on How to write Common Lisp in 2017 – an initiation manual
Obviously highly opinionated and personal statement coming, but Common Lisp is to Clojure what Meccano is to LEGO, and I have never been a LEGO person.

If I work on a project where functional programming with emphasis on purity is required I will much rather go to ML family, which I think offers more natural way to express ideas in functional paradigm with beauty and integrity not even Lisp can match.

hydandata··on How to write Common Lisp in 2017 – an initiation manual
No interpreters used, mostly SBCL and CCL. Folks over at Grammarly have a blog post which mentions few reasons for the combo http://tech.grammarly.com/blog/posts/Running-Lisp-in-Product...

I write portable code and use libraries which abstract away implementation specific stuff so it will be easy to run on any other conforming implementation should the need arise.

The community is quite responsible when it comes to portability and utility libraries which help with it, but on top of that Quicklisp maintainer tests library compilation on most major implementations and reports bugs.

hydandata··on How to write Common Lisp in 2017 – an initiation manual
I started a big project at work using Common Lisp in 2017 and could not be happier. Sure, most nice features have trickled down to other languages, but they are rarely as nicely integrated. And Lisp still has many advantages that are not found elsewhere: Unmatched stability, on-demand performance, tunable compiler, CLOS, condition system, and Macros to name a few. It has its warts too but which language does not?

I found lack of high quality library documentation a bit annoying, but a non-issue, there were tests and/or examples included in practically all of the libraries I have used so far.

Lastly, this rarely gets brought up, but I think Common Lisp has some of the best books available out of any programming language. The fact that it is so stable means that most of material, and code, from the end of 80's and 90's is quite relevant today, and new stuff is being written.

The biggest downside is that it makes JavaScript and Python revolting to work with. But I can still enjoy SML for example.

hydandata··on Ask HN: Developers with kids, how do you skill up?
First year is brutal, especially if the baby does not want to breastfeed, but afterwards it is sort of manageable, it is like running a side project. I had major issues not only keeping up but doing normal work, but colleagues were very understanding and helped out when necessary.
hydandata··on StumpWM 1.0 Released
There are many, here are two of my favorites:

- I can completely disable all controls, notifications, status bars and the like. This leaves me with less noise and allow me to focus on the applications at hand. But usability does not suffer, I can display whatever information I like, when I like with a simply shortcut. F.e. If I need to take a look at the date I just hit `C-t d` and it shows up.

- I can assign shortcuts to applications. For example, wherever I am, whatever is on the forefront I can hit `C-t f` and Firefox will show up, I hit it again and it will go to another Firefox window if there is one, terminal is `C-t c` and so on. I stop doing window management altogether and work on higher level.

Note also that StumpWM does manual window management, while it sounds tedious, in fact it is a delight. You have all your stuff exactly as you like it without the WM trying to guess anything.

hydandata··on Ask HN: If you were to switch career, what would you do?
I do not think there is a single field more interesting than programming today. I do not mean Developer, as in Java Developer, I mean programmer, somebody who uses computers to do what was not possible before. So I would still do programming, but more meaningfully.

Speculation here, the Einstein of this century will be a programmer.

hydandata··on Why are developers switching from Mac OS X to Linux?
Nice! I learned to touch type two years ago, and I still practice from time to time. Here is what switching to Ergodox from Model M looked for me https://postimg.org/image/i2791e2fn/ hopefully it will be easier for you :) I should add that after mastering it I type way faster than before, with better accuracy and also have no pain while doing it. Ability to easily tweak the layout is awesome. I use home row shift f.e. and it is super comfortable.
hydandata··on Why are developers switching from Mac OS X to Linux?
What I run today would have looked the same 20 years ago. How many times have Desktop Environments changed during this time? One has to constantly devote time to keep up with changes mostly aimed at typical consumers, and sometimes they are detrimental because they are aimed at the majority.

Setting up something complex definitely takes time and has its cons but that time is definitely finite, I am not saying that I magically got to my setup, it did not take me a year either. And once it is yours, it is yours. Moreover, when the environment is easily extensible like Emacs and StumpWM are it is easy to mold them to a new task that lands on your table.

hydandata··on Why are developers switching from Mac OS X to Linux?
That is a good point. Let me be clear then, this is my personal journey from Windows to MacOS and finally to a custom setup on Linux and the reasoning behind it. I certainly do not mean to preach.
hydandata··on Why are developers switching from Mac OS X to Linux?
Same here, if one sees through the volatility of his posts, there is definitely a lot to learn. I discovered them after reading his obituary by Kent Pitman.
hydandata··on Why are developers switching from Mac OS X to Linux?
> I'd go so far as to say that if my IDE would run on only one OS, then my professional machine would simply run that OS

My workstation is my IDE. Or as close to it as I can make it.

> As for operating systems, window managers etc., I couldn't care less

And we should not have to. So I personally go out of the way to rid my workstation of stuff that is not what I care about.

hydandata··on Why are developers switching from Mac OS X to Linux?
My preferences are just that, yours should be yours. My point is that if you are choosing where to work, you should choose something that is optimized for your field of work and for your demands as professional, not a mass market solution which by definition cannot be.
hydandata··on Why are developers switching from Mac OS X to Linux?
You have to realize that MacOS, Windows, even typical Linux Desktop is not an optimal environment for a professional programmer, or for any other computer based job which involves a lot of writing, reading and maintaining flow state.

The reason is that these environments are designed with user-friendliness in mind. Now what does that mean? it means that stuff should be easy to find, simplified enough for somebody who is learning how to interact with the machine, trying to remember what, where and how. As a professional programmer you should not care at all about that. You are not a user, you are a frigging master of the computer universe.

You should care about avoiding unnecessary clutter so that you can focus easier, minimizing time from thought to action to avoid breaking the flow, about flexibility so you can adapt the environment to your personal needs and increase productivity. Erik Naggum nailed it long time ago [0].

You can have a tablet and do your non-work related activities there, iOS, Windows, whatever, but when you are working use your workstation! if you don't have one create it. You will be amazed by how much more productive you can be, how much happier you can be.

I use StumpWM, Emacs, Conkeror, Ergodox with a custom layout and blank keys, and a trackball. The only thing a "user" can do on my machine is move the pointer and pull out the power cord, but in my hands this thing flies!

[0] http://www.xach.com/naggum/articles/3065048088243385@naggum....

Edit: Let me be clear, this is my personal journey from Windows to MacOS and finally to a custom setup on Linux and the reasoning behind it. I certainly do not mean to preach.

I concede that thinking hard is and always will be the main component of professional work, but perhaps from time to time we should ponder what an environment could be like if it was made for professionals not for users. If we simply keep accepting what is available and let others think for us we will only get more of what Apple does and less of what might be best for us. We are not the majority of Apple users, and probably never will be, it is not in their best interest to put us ahead of them when making various decisions.

hydandata··on SpaceVim – Like Spacemacs, but for Vim
If this really were like Spacemacs it would ship with Emacs keybindings.
hydandata··on Finland launches trial program to pay unemployed citizens a basic monthly income
This is wholeheartedly welcome, lets hope 2017 brings more news like this. Not at all surprised that it is being done in Finland.
hydandata··on Don Libes' Expect: A Surprisingly Underappreciated Unix Automation Tool
Expect can be a lifesaver when you cannot use your usual go-to tools like Ansible etc. especially with legacy setups where you cannot tweak stuff much. I have successfully used it combined with tmux for automated multi-term like functionality, deployment verification and other chores to save a lot of $ for my company. I do try to keep my Expect scripts as simple as possible though, just so I do not have to remember too much since I do not work with TCL anywhere else.
hydandata··on A Method I’ve Used to Eliminate Bad Tech Hires
I have offered exactly this to multiple companies who interviewed me, but so far none of them was willing to devote time to do it. I guess industry is just too used to the established practice, and "hey, if Google is doing it why not us?" thinking. It is not like I declined to do their normal interviewing process either, I offered this /after/ their process was finished. It is the best thing to do for both sides. And this was where they were trying to recruit me, not when I applied.

f.e. I really like my current job, so I would benefit from getting a better look at your workflow and interact with the team to decide if I really want to work for you.

Hopefully the situation will improve in the near future, but I am so taken aback with common practice that I currently see no other way but to start my own company, I just cannot imagine working for such stubborn and close minded people. And for darn sure when I hire, this will be the process.

hydandata··on NASA Scientists Suggest We’ve Been Underestimating Sea Level Rise
I wonder how much waste can be averted if remote was the default option everywhere where it is a viable way of working. Perhaps this is one of the easier ways to contribute to averting the catastrophe.
hydandata··on MacBook Pro
Funny, the original PowerBook they showed had a mechanical keyboard and a trackball, things that are much more compelling, and definitely more useful to me personally. You know, as a professional programmer I sort of take pride that I am immune to all this "innovation" crap. It is surprisingly easy to do as well. Erik Naggum sums it up pretty well [0]:

"... they don't make poles long enough for me want to touch Microsoft products, and I don't want any mass-marketed game-playing device or Windows appliance _near_ my desk or on my network. this is my _workbench_, dammit, it's not a pretty box to impress people with graphics and sounds. when I work at this system up to 12 hours a day, I'm profoundly uninterested in what user interface a novice user would prefer. ..."

You can just plug in Apple here instead of Microsoft and the truth still reigns. Now obviously Apple is not targeting professional developers with their products, no matter how much you try to pretend that they do, just stop, stop accepting inferior tools for doing stuff that puts food on your table, no other field is as bad at it as ours.

[0] http://www.xach.com/naggum/articles/3065048088243385@naggum....

hydandata··on IBM model-M keyboard sound emulation to annoy co-workers
Yep they make pretty decent clones. I have special edition they did on Massdrop but sadly the 70g keys are causing major pain and I have to use my other keyboard with Topre switches for doing work :(
hydandata··on New Cities
I have always really liked stuff from https://www.thevenusproject.com/ some of their ideas might seem crazyish but overall I think anybody thinking about designing new cities ought to at least take a look.
hydandata··on Alan Kay has agreed to do an AMA today
Hi Alan,

1. Do you think the area of HCI is stagnating today?

2. What are your thoughts on programming languages that encapsulate Machine Learning within language constructs and/or generally take the recent advancements in NLP and AI and integrate them as a way to augment the programmer?

hydandata··on Why Lisp is now an acceptable scripting language
Lisp is not a functional programming language. Lisp is a multi-paradigm programming language. Functional programming, although awesome, is not the optimal choice for everything. Designers of Lisp understood this, so the language tries to get out of your way as much as possible. No programming language is perfect sadly, and Lisp too has its warts, but programming in Lisp compared to any other mainstream programming language, once you master it, is like walking up a hill after losing 200 pounds of weight.
hydandata··on Ask HN: What's the highest math level you need to be a hacker?
TL;DR; When you can read this book [6] and do all exercises in it without any issues you can safely stop and be sure you are very well versed in vast majority of subjects that you might encounter while hacking on whatever in most technical fields.

You can be a hacker and get by with very little math, depends what you are hacking. Hacking is not a profession, it is more of an approach to things, a way of looking at the world, the joy of really figuring stuff out and maybe doing something cool, something that might have seemed impossible. This does usually involve mastery, but not necessarily of mathematics.

I think the question you should be asking, or maybe are even asking is - how much mathematics do I need to hack the hack that I want to hack? - and the first thing you need to do, if you have not already done so is try to think about what that might be. Even a vague idea will give you plenty of clues about how much of what you might need for that.

If you find it troublesome, check out what Richard Hamming has to say about it, it should help you out a lot with figuring it out [1][2].

That said, if you want to do computer science, or hack on the interesting things you do need quite a bit of mathematics. This is due to the fact that, as other posters here have pointed out, what you are really in need of, is an effective way of problem solving, and to solve a problem you need to understand it, model it, work on it in some terms. Mathematics is /the/ method of clear thinking which you should apply in order to do this. Sure, you can do certain things without mathematics, but you are not making things any easier for yourself by doing that, and more importantly you are not gaining as much insight as you would have if you used the mathematical approach.

Now, you do mention that you are not good at mathematics, do not let that discourage you, there are many people who were, or are in similar situation as you, me included, and I can assure you that with some dedication and open minded thinking, it comes easier than you might think, and all this effort almost instantly pays off. If you are familiar with one or several programming languages, check out these amazing books and use them alongside whatever mathematics course you will be taking, they will help you out immensely by helping you master both the problem solving approach and the necessary concepts in order to succeed in mathematical education [3][4][5].

[1] https://www.youtube.com/playlist?list=PL2FF649D0C4407B30 [2] http://worrydream.com/refs/Hamming-TheArtOfDoingScienceAndEn... [3] http://www.amazon.com/Language-Mathematics-Utilizing-Math-Pr... [4] http://www.amazon.com/How-Solve-Mathematical-Princeton-Scien... [5] http://www.amazon.com/How-Prove-Structured-Approach-2nd/dp/0... [6] http://www.amazon.com/Methods-Mathematics-Calculus-Probabili...

hydandata··on Why There Is No Hitchhiker’s Guide to Mathematics for Programmers
I love programming, but never got the hang of Mathematics due to various reasons. Failed a big project as a solo programmer long time ago, when I was 17, because I could not create the necessary mathematical model and no help was available, with everything else completed, infrastructure, web site/interface database etc. Soon afterwards set off on a different career path, but always kept an intimate relationship with programming, doing some both at work and for fun at home.

Recently, after watching R.W. Hamming lectures and reading his book "Art of Doing Science and Engineering" [1] [2] decided that I would try learning mathematics again.

I found it really hard to do. There are so many implicit assumptions, so much ground that is not covered. I was about to give up again, when I found a book [3] by retired computer science professor, who seemed to have written it specifically for me! it really felt that way.

Now I recommend it to almost everyone, especially tech-savvy people. I am no longer afraid of mathematics, with the help of this book, and great advice by Hamming, I am finally "getting it". If you find learning new programming languages easy, but struggle with mathematics, check it out!

The book is not aimed at teaching you mathematics, rather, it teaches you those missing pieces, that almost every other book either assumes you already know, or describes vaguely and badly, gives you context and valuable advice. To me it almost feels like it is teaching you a functional programming language. A strange and very flexible programming language, with its warts and all. You learn the language, and then you can go on to explore programs written in it, algorithms, data structures whatnot.

My ultimate goal is to, at least, learn enough so that I can really understand books by Hamming, especially "Methods of Mathematics Applied to Calculus, Probability, and Statistics" [4]. And, of course, to do interesting projects along the way, now that I am starting to understand some of the research papers.

[1] http://worrydream.com/refs/Hamming-TheArtOfDoingScienceAndEn...

[2] https://www.youtube.com/watch?v=AD4b-52jtos&list=PL2FF649D0C...

[3] http://www.amazon.com/The-Language-Mathematics-Utilizing-Pra...

[4] http://www.amazon.com/Methods-Mathematics-Calculus-Probabili...

hydandata··on Why GNU Emacs?
...Click a button, or invoke a command and an empty, unremarkable rectangle appears. Little you know that it is a relic from an age long past...

Emacs to me, first and foremost, is a doorway to another dimension, a place you can escape to from the absolute drudgery of the contemporary software development.

...A relic, yes, but it seems as alive as ever, a dark block inside it, blinking, like a pulse on a medical instrument...

It is also a glimpse into what professional tools might be like, if they were not so obsessed about beginner users. [1]

...You wonder what the hell you should do with it...

[1] I think Erik Naggum kind of nailed it in http://www.xach.com/naggum/articles/3065048088243385@naggum....

hydandata··on A Lisp interpreter in TypeScript
If you are interested in the future of Lisp in the context of browsers or Nodejs, take a look at this: http://lispblog.xach.com/post/138667931963/lisp-and-webassem...
hydandata··on Why I work remotely has nothing to do with productivity
I work remotely for past four years, and I totally agree with this. I still go to the office for occasional meetings and events but there is not that much pressure for it since most of my team is remote.

I worked for a lot of companies for the past 15 years, but this is the first time I find it hard to change my job - because working remotely is amazing.

I wish more companies were open to letting people telecommute. I had office based position offers that paid twice what I make but I am never trading that for the ability to get out of the room and hug my daughter. And the productivity argument is still there, it is just not the sole reason why remote rocks.

One of my other favorites: Work is very stressful sometimes, so I go out to a different room and punch my training bag a few times. Instant stress relief - try doing that in the office!

P.S. If you are reading this and are considering hiring for a remote position, drop me a line, I am a sysadmin with a fair bit of coding and extensive networking (Cisco) and teaching/mentoring background, living in central Europe, and I grok programming and web development.

← PreviousPage 2 of 3Next →