1. 12

This is the weekly thread to discuss what you have done recently and are working on this week.

Please be descriptive and don’t hesitate to champion your accomplishments or ask for help, advice or other guidance.

  1.  

  2. 11

    Over the weekend I started typesetting SICP for print. The SICP pdf has the entire book in TEX, but it’s in a single 35K line file. So most of what I’ve done is split the book into a file for each section, and I removed some of the fancier bits like syntax highlighting. I’ve managed to get the whole book building so this week I’m going to be working on real typesetting. I’m trying to decide if I should stay as close to the original as possible or do whatever produces the highest quality, and I’m leaning towards the latter. Right now I’m trying to decide on fonts; so far I’m using CMU for the main text and Source Code Pro for code. I think I’d like something different than Source Code Pro but I need a monospace font that can differentiate between code and REPL response like in the original SICP.

    1. 2

      I just started reading it. Everybody talks wonders about it so i really wanted to give it a try.

      1. 4

        The first chapter of SICP uses a lot of math problems for exercises or examples. This puts off a lot of people. If it has that effect on you, push through it. The rest of the book is very practical - the second chapter is writing methods like map, filter, etc. for example.

        1. 1

          Exactly. I found chapter 3 really interesting; covering a lot of topics I didn’t know about. And of course chapter 4 and 5 are also great, I worked on my own scheme implementations because of them.

        2. 2

          Good luck on it. If it doesn’t click, check out How to Design Programs which teaches programming with Racket Scheme. Then, The Little Schemer is all about recursion.

          1. 2

            Thanks. Also i’m watching the CS 61A video lectures to complement and to have a main idea of what’s crucial.

            1. 1

              I didn’t know Berkeley put out videos for that class. I watched the 1986 MIT lectures which were pretty good, but a bit dated.

        3. 2

          Whoa, that’s an impressive job.

          Why did you decide to get into this?

          1. 4

            I wrote about it here, but basically I think that books are made cheaply now and I’d like something nicer. I decided to try hand-binding a book and picked SICP since I like it, it’s already available in a workable format, and the binding on my copy is damaged.

          2. 1

            Great work! I remember finding this pdf for the first time on some image board and thinking to myself how great it looked.

            1. 1

              Why are you trying to typeset SICP for print yourself? You can buy a print copy of it on Amazon for about 30 bucks.

              1. 2

                Yep, I have a hardcover copy I bought used back when they were ~$20. I wrote about it more here, but the tl;dr is that I think books today are low quality so I want to try making a high quality book. I picked SICP because it’s a book that I like, the text is already digitized, and my copy is falling apart.

              2. 1

                I own both the first and second edition of SICP. Does the electronic version have anything different?

                1. 2

                  Not as far as I know. The pdf is typeset specifically for screen use and it might contain errata not listed on the website.

                2. 1

                  Comic sans for everything?

                3. 7

                  I am beginning the hiring efforts for my reinsurance startup. I’m looking to hire a couple of remote Haskell developers within the next few months. Naturally this is time-consuming work, because it’s important to not just select for technical excellence, but also communication skills and professionalism. I’ve worked at too many companies where management are apathetic about infighting or the development of a “bro culture”, and that’s something I will be constantly working to avoid.

                  1. 2

                    Sounds cool. I am working on a model for an insurance company, and I constantly run into issues with state. Things like if (settings == null) initializeSettings(withParametersOnlyValidForMyUsecase);

                    which means that running things in the wrong order means that settings are wrong. Which sometimes matters, sometimes not. I figure working functional would avoid many of these issues.

                    1. 1

                      Would you be willing to train a developer in Haskell?

                      1. 1

                        Probably not at the earliest stages, but if you can drop me a note privately I’d be happy to have an informal chat with you. We may be able to work something out in future.

                    2. 5

                      Today is the day I finally move my development workstation (re: company issued thinkpad) to Linux. Something I’ve been meaning to do for the last half year but also didn’t want to do in the middle of a massive project. Now that project is launched and everything is back to regular day to day so I have time.

                      1. 1

                        Which distro?

                        1. 1

                          I’ve been using Xubuntu for the last five years or so. All my other machines have it installed and configured how I like except for this machine. I have managed in Windows 10 with WSL for a while but compared to the ease of web development on Linux I’ve just grown frustrated.

                      2. 4

                        Been working on hnix a bit since yesterday. There was a hackathon over the weekend which got a huge amount of work done. A big chunk of hnix-store has been implemented, so hopefully it can be used to actually build software.

                        1. 3

                          I’m slowly retyping and typesetting Beauville’s Surfaces algébriques complexes in LaTeX. The original (which I just bought) is still being published with the typewriter typesetting, which I just plain object to.

                          I’m also making some progress on a few-year-old idea of making a frontend for the arXiv that sucks somewhat less than the one they offer. The daily email updates are formatted like… it’s just bananas, and the TeX in author names, titles and abstract contents mixes badly with RSS readers. So far I’ve got an OAI harvester that’s pulled all the historical data and keeps my copy up to date, and an import job that creates a record stream in Sqlite. Next up is to process the stream into more refined data, and then write a basic API to query for the things that interest me. I hope to have a basic prototype up by the end of the month to show an old math friend when we get together.

                          1. 2

                            I’m also working on a typesetting project, but I think I’d give up if I had to retype it too. Good luck

                          2. 3

                            I’m continuing work on my bachelor’s thesis. ICYMI, I’m working with Adam Shaw to add typeclass-supported iterative programming to SML. On the plate for this week:

                            • Right now the AST is uncurried. This means fun(x)(y) x + y has type int * int -> int instead of int -> int -> int. This was a dumb early design decision and it’s high time to reverse it.
                            • I want to add polymorphic n-tuples. This will have an interesting problem to solve: how can we make fun(x) #2 x (where #2 is the “select second item” operator) have a reasonable type? Many languages will just fail to type that expression, but I would like it to be expressible. This may be tabled until typeclasses are implemented, so that I can say something like “x has unknown type but must belong to the typeclass #2”, which would mean that it has length at least 2.
                            • I’m finally, actually going to make that blog post I promised two weeks ago. The original idea I had didn’t pan out into an interesting post, so I’m going to do a catch-all post on my progress thus far.
                            1. 3

                              @WORK finishing the map editor to start rebuilding maps for the new engine I’ve been developing for some months.

                              @PERSONAL continuing work on my anti-spam/attacker banning daemon thingy for OpenBSD & PF for my personal server. Yesterday I wrote my first ever man page. This will be my first public release in anything I’ve done apart from work related stuff and I’m quite excited. I’m fairly certain no-one will give a crap about it, but it will feel good anyway and a big accomplishment for me as I tend to never finish my personal projects.

                              1. 3

                                Uhmh… in my spare time, I’m now trying to write an assembler/linker targeting the Dalvik virtual machine (i.e., Android *.dex files, and *.apk long-term), that would not require installing the whole JRE + Android Studio zoo. Sounds like a super stupid idea, and an epitome of yak-shaving… but I really want to write some apps for my phone, and I desperately can’t stand that this would force me to install such heavy dependencies… while the .dex format is quite well documented, and looks approachable… so I finally got frustrated enough to pull the trigger and just try, and see how far I can get with this…

                                1. 2

                                  Looking at creative ways to get code changes into production faster and more regularly for a collection of development teams all working on groups of microservices, mobile apps and web front-ends - in AWS. Help!

                                  1. 3

                                    I’m quite happy deploying to AWS with NixOps, but I’m not doing microservices and I don’t know if what I have is better or worse than what you have.

                                  2. 2

                                    In the office: keep trying to define Faust’s agents programmatically and reshaping our ML pipeline for a new release

                                    In private time: still working on reimplementing Pony’s Range class in the stdlib and working with a bunch of guys to create an Italian version of lobste.rs branching out from the Journal Du Hacker version.

                                    1. 2
                                      • Sell all the things (I feel the correct number of bikes and cars is N+1, but my other half disagrees.)
                                        • Bought a car, need to sell the old one
                                        • Bought a new pushbike [last year], need to sell at least one of the old ones.
                                      1. 2

                                        the correct number of bikes is at least N+5 (MTB, BMX, Cruiser, Hybrid, Fat…) and that’s without Cyclocross, Road, and Speedway ;~)

                                      2. 2

                                        We’re moving on Friday, and are hilariously unprepared. We have a bunch of stuff to sell or donate, and a lot of packing and rearranging to do. Thankfully, we are paying movers to pack us as well, so the worst case is that we spend money to have a bunch of stuff moved and then dispose of it after we arrive. I wasn’t able to get twisted-pair pulled to all the various places I wanted, so that’s going on the backlog of house work, but otherwise, I am very excited by our move into debt peonage.

                                        1. 2

                                          At work I’m still trudging along adding new terrain support to our plugin. Getting a little frustrated by the slow progress, but I think I’m getting over the learning curve and about to make better progress.

                                          Outside of work I’m starting to benchmark my quadtree library. Also made this animation showing refinement as points are added.

                                          1. 2

                                            Asking V8 for help from a PHP application to execute some user-made JavaScript.

                                            Most likely start studying for AWS Associate Solutions Architect Certification

                                            1. 2

                                              HTML5 implementation of the Dasher input method. I’m using HTML canvas CSS and the nim language. The aim is to be able to have the same code to run on a low level API and to demo the same code on a webpage or even make some kind of online editor.

                                              Thought it’d be a one day project, but turns out the coordinate system isn’t really Cartesian but rather hyperbolic.

                                              1. 2

                                                I started a new job last week and promptly got the sickest I’d been in years for the last five days. I went home early on my second day! I’m back this week and my first task is to convert a Spark job from R to Scala so I’ll be picking up both Spark and R this week!

                                                1. 2

                                                  i did the first ever (that im aware of) static libCurl build using Cygwin:

                                                  https://github.com/cup/glade/tree/master/curl

                                                  also I finally added post dates to my music website:

                                                  https://cup.github.io/mauve/magenta

                                                  1. 2

                                                    Desperately trying to get my head around implementing service-service auth for a REST API. Previous maintainers used an odd implementation of JWT, and then just RSA from the JWS. It seems like JWT might be the right thing, although though there seems to be many conflicting views across the Internet, and most articles focus on user login flow rather than service-service.

                                                    1. 2

                                                      Refining features on my fitness tracking website PikaTrack before I start to work on an android app for it. Been a whole lot of work so far but I think I’m getting close to a decent service.

                                                      1. 2

                                                        Finishing wireguard integration into the web interface of Freedombone on the buster branch. After that more testing on different SBCs.

                                                        1. 1

                                                          For work, figuring out how to manage and deploy software and configuration settings to things that fly. My reflex is to reach for Ansible, but there’s been some pushback from other people, even though they don’t necessarily have a better solution. My gut inclination is to do it anyway, for a small test case, to demonstrate how awesome it is.

                                                          For non-work, working on doing some interesting dependency analysis on the Rust package database. Hopefully by the end of the week I’ll have an interesting tool to release, at least an early version.