1. 26

Heya lobsters!

I’m working on a very simple framework written in bash to help people create book-apps. I am totally excited about it, but will share more only when it’s ready. Hopefully, by tomorrow or the day after.

So what are you working on this week? Feel free to share and seek help/advice if you want.

  1.  

  2. [Comment removed by author]

    1. 3

      Sorry to hear that about your health, I hope it’s nothing too serious to recover completely from. :-\

      1. 3

        My sympathies, and good luck.

      2. 8

        Haskell in ad-tech is the 9-5, doing some clean up from the recent sprints.

        The book as usual.

        Having shown my coauthor how to use Stack, I’m going to write up a script for a Stack tutorial video. I’d like to record next weekend but who knows.

        <squeakywheel>

        I’ve been thinking about making a Pipes variant of twitter-conduit. I kinda hate the idea because twitter-conduit was very carefully and thoughtfully put together, but I don’t like using Conduit. #StruggleIsReal

        Also been thinking about the recent instability and cruft-accumulation with haskell-mode. I know I’m not the only one unhappy about it, but I’m really not adept at elisp and couldn’t maintain a variant by myself. Wondering if others care about this.

        Thinking about updating one of the WordNet libraries for Haskell so I can get more help naming things.

        </squeakywheel>

        1. 2

          Hey, I like elisp. What’s haskell-mode doing that you don’t like?

          1. 3

            What’s haskell-mode doing that you don’t like?

            Too much. Things like completion need to be in other packages. There should be one indentation algorithm that works reliably and is maintainable. Things like that.

            1. 4

              The indentation thing is so stupid. At the very least it should pick a sensible default and then let you use customize to change it.

              1. 2

                Default + “hook in your own if you want” would be fine by me, but the current state of affairs is untenable.

        2. 6

          I’ve introduced conduits into my tradewars clone. This has led to a refactoring task I’m in the middle of this week. No more Lists, we use Maps now. Like big boys. Bytestring instead of Text in some places. Hooray for a modern type system that is on my side! Makes the task so much easier.

          1. 5

            Work

            Third week in Twitter. Still trying to get used to the flows, trying to get productive.

            Personal

            Last week I was adding tests to rlite, trying to handle failures more gracefully, particularly out of memory. I fixed a bunch, but it seems to be extremely laborious and draining. I would appreciate if anyone has good advice on how to do that for a C project.

            1. [Comment removed by author]

              1. 3

                I found out that getting a divorce is pretty productive, although I would not recommend it.

            2. 3

              I am working on parsing Rocket League replays. The bulk of the replays are easy to parse, but the section with the actual game data is impenetrable. It is basically a dump of web packets. They’re not even byte-aligned! I’ve been beating my head against it for a while now. Lots of people have been trying, but none of us have cracked it yet. I maintain a Gist with all of the known parsers, if you’re interested in helping out: https://gist.github.com/tfausak/0a02e4596f1f0edd9c78.

              1. 3

                I am going to be pivoting away from working on CUDA on my Jetson; concept is proven, so I can start porting models and whatnot over to either the OpenCL branch of caffe or some other CNN package. This is all largely new to me, so it will be slow going for a while. But that’s OK – getting the opportunity to work on something totally new after 25 years in the field is a rare gift.

                1. 3

                  Work

                  Currently rewriting an app in python. Whoever wrote the original version of this made everything a global variable and it’s just one giant python file. I’m planning to break it up into separate classes and finally learn proper async programming.

                  Personal

                  My hands hurt a lot so personal programming takes a HUGE backseat for me. I’m considering rewriting my pet app in Qt instead of GTK. Anyone with thoughts on that or would want to help, I’d love to hear from you!!

                  1. 2

                    Python seems like a weird choice for learning async programming, with the GIL and all… It can be done, of course, but…

                    1. 1

                      It isn’t too bad if you use something like gevent or eventlet.

                      1. 1

                        I was considering using twisted. Any thoughts on that?

                        1. 2

                          I used twisted extensively at one past startup. This was around python 2.5/2.6 era. twisted had just come out with inlineCallbacks decorator – which was a huge improvement for our team! Still, over time our twisted codebase got very unwieldy. Part of the problem was we had a few folks who programmed like it was java, with really deep class hierarchies. I think part of the problem was twisted itself.

                          Twisted was pretty awesome for writing protocols, but for a web heavy stack, it seemed somewhat painful. Not many external libraries played very well with it. Several folks from that company (me included) ended up together again at a subsequent startup, and we all agreed we didn’t want to use twisted again. Instead we went with gevent, and it was sooo much nicer. Not only was it nicer for us, but we found that for new hires there was far less cognitive overhead.

                          Summary: I think twisted is great technology, though I don’t particularly like it. I would advise only using it for small teams populated with experienced developers, and writing focused products.

                      2. 1

                        Python wasn’t my choice, that was chosen for me.

                        They pay me to write what they want, not what I want :/

                        1. 1

                          Python seems like a weird choice for learning async programming, with the GIL and all… It can be done, of course, but…

                          The GIL doesn’t conflict really with async programming, but the user story of async in python is not very good in python. The new python 3.5 help a little however.

                      3. 3

                        Getting my etcd-mesos framework ready to ship! Fault injection, packaging, docs, etc…

                        In my personal time my roommate and I are hacking on a distributed store in Rust. It is initially going to be a “DSL for replication” in the way that Redis is a “DSL for datatypes” and it will support both consensus/async replication of KV (backed by RocksDB), log (kafka-like sequential files) and objects (backed by VFS). Each will need configurable retention policies for history so that clients can reliably subscribe to mutations on keys. Right now I’m working on testing and refactoring the basic mechanisms, and building a simulator for the state machines to tease out bugs in the consensus and leader election algos. After the core is stronger, I intend to add automatic live range splitting.

                        1. 3

                          I just started a new part-time contract position last week after several years not working due to chronic illness.

                          I’m not sure how much I can share about work, so this might be vague:

                          Work

                          • Performance testing on a Mesos cluster
                          • Helping update project code to improve performance

                          Work Admin

                          • Generate an invoice for last months work
                          • Get PDF export of org-mode documents working and looking nice.

                          I’ve been using Howard Abrams techniques that he documented in this screencast to document what I’ve been doing and to make sure I get everything done on the various servers in the cluster I’m working on.

                          Because I’m working, I’m not sure I really have the spoons to work on anything personal, as much as I would like.

                          1. 3

                            Writing a blog post aimed at ORM developers explaining how they can write more correct and faster queries without the ORM. Did you know ActiveRecord makes 4 (four!) database round trips to validate a uniqueness constraint?

                            Working on shipping this long slog of a project at work.

                            1. 3

                              You know, for people who care a lot about not repeating themselves, Rails people sure do love repeating themselves.

                              1. 1

                                Is it purely about ActiveRecord?

                              2. 3

                                At work there’s a bit of a self imposed push to get a new product in front of some test users. It’s been a whirlwind of Clojurescript which I wasn’t terribly familiar with until recently but I’m really enjoying a lot of the aspects of it.

                                At home I’m burning downtime learning Go. Not the language. Doing Go puzzles is a fun mental distraction good for subway rides it turns out and I’m getting to the point where I can throw down a 13x13 game in little breaks throughout the day and beat a computer—Faces of Go, I think—even pretty regularly. I really have no idea how that translates and haven’t had the time to play against a real person yet, so… it’s at least pretty fun!

                                (Apparently Many Faces of Go is a the 2010 13x13 compute go champion, so me beating it on the regular probably implies that it’s pretty crippled on my phone. :)

                                1. 2

                                  Any tips or resources for learning Go? I’ve been wanting to get started in it for some time now.

                                  1. 5

                                    I’m no expert, but in my own self-teaching mishaps I suggest:

                                    • Play a lot of 9x9. Completely ignore anything you’ve read about 19x19 strategy (it doesn’t apply at all) and just scramble to get as much territory as you can. Don’t be afraid to mix it up with the opponent—I spent a long time striving to make really peaceful games where I get half the board and the opponent gets half… that’ll barely ever work and it’s the wrong thing to learn.

                                    • Get to like Go problems. Download something like Igowin Life and play it consistently. I like Igowin Life because it punishes you for taking moves back—without that punishment I kept “cheating” with undos. When you do Go problems visualize the whole set of moves and don’t make the first one until you’re sure you’re right. The first 50 will feel weird and you won’t understand the answers. Once you start to get a little spark of joy when you find the right answer then you’re on the right path. Again, as soon as you can stop “cheating” and figure out the whole thing in your head before placing the first stone.

                                    • Learn about the basic live and dead shapes. Don’t just memorize how to kill them, but start to have in your head “bent 4 in the corner is dead” and get to the point where you automatically know why. Corner shapes are useful in real games, too, but you won’t really need them until you get to big boards.

                                    • Find some games of people a bit above your level (~10 points, maybe) and read them. SGF players are good for this. Stop at random points and guess where the next move will be and do this for both sides. Build a mental justification for every move someone makes (or a reason why you think it was stupid) but be prepared to brutally kill these ideas when they prove wrong. They will prove wrong consistently for some while.

                                    • You can also do the above for pro players but I find even today that their foresight is too great for me to really have a reasonable mental dialogue going. That said, if you can find pro games with commentary then reading someone else’s commentary can fill that blank. Those are a little harder to find, though!

                                    • Try not to play too many handicap games. They’re I think really confusing to start because they blow up strategy a lot. The whole game turns into fighting really fast. They also, I found, tricked me into getting a bad habit of moving too quickly to the center in 9x9. This is essentially “timid” play and you’ll get creamed over and over.

                                    • Read pretty much everything at http://senseis.xmp.net/ until it starts to make sense. Most of it still doesn’t for me!

                                    1. 1

                                      You can also do the above for pro players but I find even today that their foresight is too great for me to really have a reasonable mental dialogue going. That said, if you can find pro games with commentary then reading someone else’s commentary can fill that blank. Those are a little harder to find, though!

                                      A good website for commented pro games is https://gogameguru.com/

                                      By the way if anybody want play a game with me or learn go interactively, just send me a message It will be with a lot of pleasure.

                                      1. 1

                                        Oh, cool! Thanks for the recommendation. I’d love to play sometime, too. Where do you tend to play online? KGS seems popular, but online-go.com seems like it’s more user friendly. What’s your rating?

                                        1. 1

                                          I would also enjoy playing. I used to be okay, but it has been a very long time. So long that I haven’t tried online-go.com, which looks like a better place than KGS for most purposes. Anyone reading this should feel free to message me for a game sometime. :)

                                          1. 1

                                            I play online indeferently on KGS or online-go.com (I prefer online-go interface too) my rating is 2 kyu (handle Mnémé on online-go and Mneme on KGS)

                                  2. 2

                                    Reading Programming Elixir, looking forward to jumping into functional programming finally.

                                    1. 2

                                      Work

                                      Adding yet another CSV import feature to our monolithic php app

                                      Personal

                                      Learning Go (migrating above monolithic app into Go microservices over the next 12-24 months) by making a simplistic Kanban board/Trello clone to replace my Kanboard setup at the moment.

                                      1. 2

                                        Work

                                        Put in my two weeks at a full-stack position, trading in my PHPs for an all front-end Angular role

                                        Personal

                                        Moving my crummy MUD-like game from a TCP client/server model to a Flask app using Flask-SocketIO. Pretty easy going so far since the core of the server was very loosely coupled with the TCP server. The curtsies Python library is good – but I just don’t have the patience for curses, even if it’s abstracted via a wrapper. Excited because as a non-CS guy originally I managed to create a scripting language for use within the game of which maybe only 95% is a tire fire.

                                        1. 2

                                          I am working on park.io. I want to keep refining it and slowly add features and automate manual tasks so that it can continue its growth. I would also like to add more TLDs.

                                          1. 2
                                            • Working on my third year project at university, which is parallelising text mining algorithms on the GPU.
                                            • Looking at grad jobs for after University.
                                            • Working through various bits of game theory and natural language processing coursework .

                                            With regard to grad jobs, if anybody knows of any interesting companies (I’m deliberately leaving this broad) based in London or Manchester, then I’d love to hear about them :)

                                            1. 2

                                              I have to get a blog thing going, so this is happening this week: https://github.com/todpunk/pydozer

                                              Might not be glamorous but it will be nice to have a thing I can use the way I want.

                                              1. 2

                                                Still clustering geodata using scalding. I’m using kmodes rather than kmeans, because I’m actually clustering people, not their locations, so its actually categorical data. I’m really enjoying Scala, even though its not Haskell.

                                                My side project is building legal automation tools for the good folks at PLSE

                                                1. 1

                                                  Research

                                                  Still fixing issues in rocket-chip. All the single-core bugs seem to be fixed now (I hope), but still unable to boot SMP linux on a multicore CPU configuration.

                                                  Classes

                                                  Working on the next assignment of the Virtual Machines class, which is to implement the garbage collector.

                                                  1. 1

                                                    Working on documentation for Myrddin. I’d like to post something interesting about what I’ve been working on in my spare time, but the web site is about a year out of date, the demos all use stuff that’s been deprecated and deleted, and so on.

                                                    And of course, writing documentation tends to highlight how awful your APIs actually are, and you get pushed to finally get around to doing the refactoring that you have always meant to do, so you end up doing late night hacking…

                                                    1. 1

                                                      learning my way around f# + gtk in yet another attempt to find a good desktop gui tool i can crosscompile from linux.

                                                      1. 1
                                                        • Fooling around on a proof of concept trying to reimplement parts of iocage in Go.
                                                        • Reading
                                                        • Job hunting
                                                        1. 1

                                                          Been working on a lot of Magento this week :|

                                                          1. 1

                                                            Getting better from a cold/flu, and attempting to migrate from our l local ELK stack to Papertrail. With only 1 full-time ops person managing our ELK stack takes up a disproportionate amount of time. Perhaps this is due to improper setup of the stack in the first place (I’m new to this, so wouldn’t know). As log management is necessary but not a key differentiator in our business we have decided to outsource it.

                                                            Still hoping for someone adept at emacs lisp to give me a hand at implementing a PR against magit-gh-pulls that would help me a lot: https://github.com/sigma/magit-gh-pulls/pull/46 – I’ve managed to identify the place I need to edit, but got lost in the magit sources for what to actually inject in that PR. Help very much appreciated!