1. 5

    Not at work, doing advent of code 2015 to practice for this year’s contest. Also going through https://github.com/data61/fp-course to make sure I understand the fundamentals of writing code in Haskell.

    At work, adding more tape and band aids to our cloud product written in Go.

    1. 2

      Are you actually going to try to compete? You have to be awake at the time the puzzles are published and try to work on them as quickly as possible. You’re going for that?

      1. 3

        I’m competing against my coworkers who are also playing. We have a private leaderboard where we gain bragging rights by solving the problems faster than others in our favorite fun language.

    1. 2

      Questions 5 and 11 both seem pretty much in line with my experience with programming languages.

      I only know python, or for that matter, had any interest in learning python, because of work. Outside of that I probably still wouldn’t know it; not well enough to write anything signifiant in it. For better or worse, python doesn’t really “do it” for me. I know it and write it purely to get paid. Don’t get me wrong, I quite frankly really enjoy my job, and I don’t have any regrets in learning python, but in a perfect world I wouldn’t have picked it.

      These days, it really takes something special for a language to peek my interest enough to learn purely for the pleasure of it. A case-and-point for me. I originally wrote balistica in Vala. Looking back on it, I think that was the wrong choice, and I would choose several other languages instead if I had to do it all over again. After going through that, picking which language I devote my free time to is a much stricter process.

      Long story short: I don’t know Haskell, is there a convincing argument to devoting my free time to learn it over say Lisp, Scheme, or Ocaml? The three languages that top my “want to learn” list presently.

      1. 5

        If you like stretching your brain to find new tools to solve problems, Haskell is good for that.

        You’ll get some of those same tools from lisp / scheme / ocaml, but they allow mutation where Haskell does not.

        Learn what you like, each new language makes it easier to learn more! Try Haskell sometime, there are lots of cool tools to discover.

        1. 3

          I’d recommend Haskell if you’d like to learn a functional language with an advanced type system, although OCaml is also interesting in that regard. For Lisp family I’d also recommend considering Clojure as it’s one of the more practical Lisps and actually gets use in the industry.

          1. 3

            Learning Lisp or Scheme will teach you different things than learning Haskell or an ML.

            Lisp and Scheme (and Clojure, etc) tend to have fairly weak type systems, very simple syntax, and (because of the latter) very robust macro support. For many people, writing a lisp program means, essentially, writing non-working pseudocode, then writing the macros to make that pseudocode work.

            Haskel, Ocaml, and SML are all strongly and robustly typed. Writing programs in these languages often means figuring out data structures first, then writing functions to manipulate them. Of these, Haskell is a pure language – you’re only writing functions which return values, never functions that manipulate global state. Haskell is also a lazy language, which is something you can get away with not thinking about, until it produces a result that makes you think.

            Haskell has the virtue of a surprisingly rich library ecosystem, but the language itself can also be quite complex. SML, on the other hand, has very few libraries available, but the language is simple enough to learn comprehensively quite quickly. Ocaml splits the difference between those two extremes.

            … Which is all a roundabout way of saying the only convincing argument in any direction is going to be from you, about what you’re interested in learning next.

          1. 2

            I have a ThinkPad P50, quad core Xeon, 64GB RAM, 2.5 TB storage, 15” 4k screen. I’ve had this for a few years and I love it.

            If I were to upgrade, I’d likely buy the ThinkPad P52 with the six core Xeon, or the ThinkPad X1 Extreme since it’s smaller and about as powerful. Still, I’m likely to wait until I can get a ThinkPad with 128GB of RAM.

            1. 1

              I was in the audience for this talk, and WOW! I knew there were differences between build systems, but this description is the clearest I’ve seen.

              I’m doing a lightning talk on this next week at work, our build process could be so much better.

              1. 2

                This speech was expanded into a book, “the art of doing science and engineering : learning to learn” The book is even better!

                1. 2

                  Here it is for anyone interested:

                1. 2

                  I wish notebooks were spreadsheets, I want all cells to update when I change anything.

                  1. 2

                    How do I add guitar? Good after work question.

                    1. 10

                      When I lived in northern Finland I made a pilgrimage to the very first IRC server. At that time it was a flower pot in an instructor’s office at oulu University. Sadly the instructor was at lunch, so I never got to see it, I only visited the next room :-(

                      1. 3

                        How many years ago was this? Do you know if the machine is still there? It is cool that it has been preserved, if not quite in its original form.

                        1. 1

                          Early 2000s, I’d estimate it was roughly 2003, no idea if the machine has been preserved. I may be able to find out though.

                      1. 3

                        Oh hey! I started that page when emacswiki began! Glad to see it’s still active.

                        1. 1

                          Sounds like a good time to finally set up my bouncer. If only there were one that had good Emacs compatibility.

                          1. 4

                            I just run weechat on a server and connect to the weechat relay with weechat.el. There’s a few bugs in weechat.el (e.g. nicks go out of sync) and some things missing (e.g. nick list), but that’s a small price to pay for replacing another standalone app with emacs :)

                            1. 1

                              I did this at the beginning but quickly switched over to ZNC because of bugs like that, the inability to have per-client history rollback, and other little details… I still use Weechat half the time on the client side though :) (I also use Textual on macOS, and Palaver on iOS).

                            2. 1

                              Znc is what I use with erc

                              1. 1

                                I’ve been trying to set this configuration up for half a year now, but I never get anything I’m satisfied with. The ZNC documentation is quite bad and confused, imo. And when I manage to set it up, even using ZNC.el it won’t work with IRCnet. Switching between multiple servers is another annoyance.

                                But maybe I’ve just messed up somewhere.

                              2. 1

                                I used to use znc, seemed to work just fine with ERC.

                                Now I use weechat (a bit more features, nice Android app), again with ERC. There is weechat.el, but I prefer ERC (connecting to what weechat calls an “irc relay”, instead of using the weechat protocol). I use https://gist.github.com/unhammer/dc7d31a51dc1782fd1f5f93da12484fb as helpers to connect to multiple servers.

                                1. 1

                                  Ive used znc with Circe, works great

                                  1. 1

                                    What did you find in Circe that made it better than ERC or Rcirc?

                                    1. 2

                                      In case it’s useful - I used to use ERC, and I switched to Circe long enough ago that I can’t exactly remember, but I think the issue was that I wanted to connect to both freenode and an internal IRC server at the same time, and ERC made that awkward or impossible to do. It may well have improved in the last 5 years though.

                                      1. 2

                                        It was easy for me to setup and use so I stick with it. Never tried those other two

                                  1. 1

                                    To answer the question in the title, I started doing smaller amounts of work in a shorter time for clients. That way if they didn’t pay, I hadn’t lost as much money, and if they wanted another chunk of work done, they had to pay for the previous chunk. If they were late paying for the previous chunk of work, they had to pre-pay for the next chunk as well.

                                    I thought about calling this ‘agile’ but really it was just removing the buffer bloat from my income stream.

                                    I was a self-employed programmer for seven years, by the end I was out thousands of euro that I gave up on, but I also had extremely good relationships with a few clients who were amazing.

                                    1. 2

                                      Exactly this: it’s all about upfront deposit, payments on each pre-defined milestone and payment before the final submission.

                                      This way you really only lose a very little part and if they totally disappear, either finish it and make it yours or clean it up and opensource it!

                                    1. 5

                                      if you have a HiFive Unleashed board as I do, this is more immediately useful: https://wiki.debian.org/InstallingDebianOn/SiFive/HiFiveUnleashed

                                      Still really excited that my favorite distro supports my most recent offbeat hardware purchase!

                                      1. 3

                                        How are you liking the board? What well-known system would you compare its overall performance to? And is it working reliably?

                                        1. 2

                                          The board seems fine, but the fan failed. The forums imply I should not have moved the board around while the fan was active. New fans just arrived, hopefully it’s fine this time.

                                          I do wish the board would have arrived with debian already installed, but I understand this isn’t for the same market as the BeagleBone / Raspberry Pi / etc

                                          No real thoughts on performance, I’m biased by the Xeons in my laptop.

                                        2. 2

                                          Please write about your experiences with the board in the weekly “What are you working on?” thread! I’m very interested in hearing about it.

                                        1. 15

                                          I bought the limited edition hardcopy, this is a super-fun game.

                                          If you like this game, you will likely enjoy the other zachtronics games.

                                          If you enjoyed writing assembly in DOS, TIS-100 is your best bet.

                                          If you like graphical/visual programming, try Opus Magnum.

                                          For the games listed above, you can see the cost of your Steam friends’ solutions. Once you’ve solved a puzzle, it’s surprisingly much fun to try to beat the scores of people you know.

                                          1. 10

                                            Shenzhen I/O is pretty rad too; bought the feelies for that one, and get asked about the binder routinely :D

                                            1. 6

                                              If verilog/VHDL is your kink, MHRD is a lot of fun.

                                              1. 3

                                                That’s been on my steam wish list for a very long time. I’ll have to check it out when I “finish” EXAPUNKS.My brief interaction with Verilog was mind-opening. I’d really enjoy a game with a similar medium but the right constraints.

                                                1. 1

                                                  Funny, I’m just teaching myself verilog right now! I’m still in the random walk stage but hopefully soon I’ll have a clue.

                                              1. 5

                                                My BeagleWire arrived, so I’m learning Verilog. I’m on my way towards clash-lang, curious how long it’ll take me to get there.

                                                I’m also ordering a new fan for my HiFive Unleashed RISC-V board.

                                                1. 1

                                                  That popup makes this unreadable on mobile.

                                                  1. 4

                                                    I’ve started reading the source of websites for this reason. I can get just the text content without distractions. I’m in favor.

                                                    1. 2

                                                      Right now I have three ergodox infinity (here’s the one I’m using now: https://imgur.com/a/us5PXto ) one ergodox-EZ, two kinesis contoured (ps/2 and usb) and an IBM Model M.

                                                      At the moment I only use the ergodox infinity keyboards and the online layout configurator, because I can’t for the life of me get the firmware to build. But I do regularly tune/change my layout in small ways.

                                                      1. 1

                                                        Those keycaps are a work of art, care to share where you found them?

                                                        1. 1

                                                          Oblotzky SA Oblivion https://www.massdrop.com/buy/massdrop-x-oblotzky-sa-oblivion-custom-keycap-set?mode=guest_open

                                                          I have both Oblivion and Hagoromo sets with colevrak and ergodox additions.

                                                      1. 1

                                                        I used this today in my weekly Haskell class, was really fun to run “War and Peace” from gutenberg.org through it. Looks like we’ll use this to scrub PII from S3-stored logs soon enough.

                                                        1. 30

                                                          yesterday afternoon, the community reply https://www.arm-basics.com/

                                                          1. 3

                                                            That was a nice reply :D

                                                            1. 4

                                                              Eh, it’s a pretty cheap shot, morally on the same level as the original page and much weaker in content. I hope it’s not representative of the larger RISC-V project.

                                                              1. 13

                                                                I’m not too impressed with the counter-FUD but I think it’s hilarious that the riscv-basics.com people didn’t think to register arm-basics.com while they were at it.

                                                            2. 1

                                                              Absolutely brilliant

                                                            1. 3

                                                              I like Max Kreminski’s thoughts that center around the problem solution ordering problem: https://mkremins.github.io/blog/doors-headaches-intellectual-need/

                                                              He talks about a level in a game where you accidentally pick up a key before you find the locked door. In the next level when you see a locked door, you don’t realize you need to go find a key. Why not?

                                                              My paraphrase is “you won’t understand a solution if you’ve never recognized the problem it solves”.

                                                              He picks on high school math next, why care about learning trig or calculus if you don’t see the need?

                                                              Read the post for the monadic punchline that ropes in game design and education, read the links in the post for more depth and detail.