1. 20

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 ask for help, advice or other guidance.

  1. 9

    Trying to build the old NES game “Battle Tank” in the browser

    1. 1

      Are you building an emulator, or building the game from scratch?

      1. 5

        From scratch, using Phaser.js for the frontend and Elixir for the backend (multiplayer)

        1. 2

          Eek – the example pages for Phaser.js are succeptible to a variety of attacks, but I pushed out a pull request to fix some of the more prominent ones.

          1. 1

            Thanks for the PR and keeping us informed. The PR looks like the security issue is because of the backend they have.

          2. 1

            That sounds awesome!

            1. 1

              Phaser is a fantastic framework.

        2. 7

          Just started a new job and I’m mostly programming in python at this point. The company I left had massive layoffs about 2 weeks after I was gone so it ended up being a great move in at least one respect!

          1. 5

            Working on improving the efficiency of the Ruby object model in our high-performance Ruby implementation, JRuby+Truffle, by using a V8-style hidden-class system.

            1. 1

              Sounds interesting! If you write a blog post about that, be sure to post it here!

            2. 5

              Last week finished replacing some canvas drawing code with webgl because IE11 leaks memory like a busted pinata when you make lots of calls. The hail mary punt worked.

              This week, putting together a list of hardware to buy for the business side of the house, because they finally got around to giving a shit after six months–and yeah, I’m bitter about that. Expecting results in late September.

              God save us from first-time founders, especially ones with PhDs and MBAs and a bunch of other happy horseshit that helps them think they know anything about anything. :(

              I might also be trying to do a simple hacky Google Analytics-style app for our enterprise appliance, but people want input and the CTO is like “let’s just do some thinking first”.

              It’ll get done faster if you let me treat it like a fun project and just leave your damned fingers off of it.

              Sigh. Further up and further in, I suppose.

              1. 4

                I’ve been continuing to work on Helix Pi, my tool for making games with no coding knowledge required.

                In short, that works by allowing the user to create animations describing game behavior, and then using genetic programming to write the code for the user. I’m working towards making Pong, and today I reached a milestone of having an individual learn how to do two different things (move up or down in response to keyboard input).

                I also gave a talk at work last week that goes more in detail as to what I want to achieve, why and how.



                1. 4

                  This week, I plan to

                  1. Fix up Cargo’s docs. They’ve been pretty haphazard for a while now.
                  2. I’m going to San Francisco!
                  3. … for Forward JS. I’ll be talking about using Rust and Node together.
                  4. … and also for Rust Camp! First conference ever, I’m quite excited.
                  1. 4

                    As part of my work maintaining mockturtle, the ##lobsters channel bot, I got asked to publish channel logs so we could cite conversations on IRC here. This request came in response to my mentioning the channel in a comment.[1] Freenode has a policy on channel logging,[2] that can be summarized as “If you’re considering publishing channel logs, think it through.”

                    More than putting code together then, I’m thinking this one through. Do I log everything forever? Do I drop logs after a certain time? Allow selective parts of a conversation to be published on demand? Not sure yet.

                    1: https://lobste.rs/s/omdfnu/7_excellent_websites_for_learning_sass/comments/y3l3fl#c_y3l3fl

                    2: https://freenode.net/channel_guidelines.shtml

                    1. 2

                      Hmm, the reason - making the channel feel more like part of the site - seems good. Personally, I am not a fan of channels with public logs, since it drastically increases the scope of people’s ability to follow me from place to place, but I do participate in some despite that. Logging is certainly something I want to know is happening up front, and I second Freenode’s recommendation to mention it in the channel topic.

                      And, of course, I have been avoiding the channel so far, so I probably shouldn’t get a vote. :)

                      1. 2

                        Freenode’s policy on notification doesn’t seem to leave much room for interpretation, so that matter seems settled to me: any logging would be announced in the channel topic.

                        I’m fond of the on-demand logging idea, as it addresses the specific problem without overreaching. Want to cite something? Ask mockturtle to do that. Alas, that requires more work on my part than just uploading the whole log. Possibly a fair bit more.

                        Speaking more directly to your point about tracking your behavior online, another option would be to make the logs available only to people logged in to lobste.rs. That could make the channel feel like part of the site while still making it more private than a comment. But that’s a technical capability. Does it accomplish the goal of being able to cite an ephemeral medium?

                        Thank you for your feedback.

                        1. 3

                          No, thank you, for being thoughtful about this.

                          I’ve found in the past that trying to excerpt a conversation from chat logs is pretty difficult to do manually, and I’m very dubious about a machine’s ability to. Except in the specific case of a first-time visitor asking a question, necessary context generally extends much further back than anyone realizes as they’re talking. I generally have to open things in a text editor and go back several hours, reading carefully.

                          The login requirement would certainly help a great deal with the complications of world-visibility. As you say, it’s a technical solution to a social problem. And, really, a partial solution since there’s never anything stopping anyone else from taking their own surreptitious logs.

                          I don’t really think citing an ephemeral medium is what anything in this design space is doing; it’s making it a permanent medium. That’s a fundamental change to the way people interact in it, although certainly not everybody consciously changes their behavior when they’re aware they’re being logged. I think the only useful thing I can say is: If you want to try to design something that really changes this in a fundamental way, do so knowing that it’ll be a large effort with many iterations needed; don’t think of it as a fast feature.

                          I don’t really have a good answer here, and actually the questions around logging might be good to ask in a meta post? To get more opinions than just mine.

                    2. 3

                      I started at the new job, and I like it very much so far. I have half of a decent thing I’d like merged into Packer, and I can’t wait to have it done so that the pull request can be created (making the iso files downloaded by packer go in a specific dir with a specific filename).

                      Surprisingly enough, I’m doing this in work context, which amazes me to no end.

                      1. 3

                        Continuing work on the rewrite branch of Hython. Focus of this rewrite is a more modular approach, and it is turning out just lovely. I’m working on implementing all of the basic data types first, since I hit serious hangups on that in master. Got lists and tuples in, so dictionaries are next.

                        From there, I need to learn how to use monads better. This time around, I’ve concentrated all of my terrible, side-effecting code into one module, so it’s no longer onerous to evolve that independently of the rest of the interpreter.

                        Also looking forward to using delimited continuations soon, especially seeing that I basically used them without knowing it in a prior version.

                        1. 3

                          I gave my coasters talk at OSCON and it went really well! The room was full and I got some great feedback on it.

                          I got our company engineering blog started with a post that got a lot of attention and hoping to build on that with more posts soon. https://shyp.github.io/2015/07/13/speed-up-your-javascript-tests.html

                          This week, for fun I’m trying to make it easy to deploy various code review tools (phabricator, gerrit, Mondrian, reviewboard) on Heroku or a Heroku-like. I think we can do better than Github code review and I want to make it easy for people to choose a better code review tool for their open source project.

                          I tried to get Gerrit set up on Heroku and ran into some problems: https://github.com/kevinburke/gerrit-heroku. Latest error is around Lucene, not sure what I need to do to get that up and running.

                          1. 2

                            Missed this article when it was submitted to Lobsters last week - great article.

                          2. 3

                            Started implementing design patterns (GoF) and algorithms, because that’s my weak point.

                            1. 2

                              Ooh, if you want to dive deep on software design patterns (not just modern enterprisey stuff), be sure to check out the WikiWikiWeb at c2.com. It’s the original wiki software - older than Wikipedia! - and is very programmer-oriented. The creator (Ward Cunningham) and his friend (Kent Beck) were part of the original software design patterns movement.



                              1. 2

                                Cool! I’ll make sure to check that out.

                            2. 2

                              Building the bootstrapping phase of my programming language, Kropaya, just trying to get an interpreter with a minimal subset of the language running.

                              I’m writing it in Emacs Lisp for ‘reasons’.

                              Code is here: https://github.com/flaviusb/kropaya

                              1. 2

                                My co-contributors and I are trying to get a half usable pre-alpha of Peergos out this week. We’ve got a skeleton website up and a demo up. Currently the demo only lets you log in (with any credentials), and it creates a directory which has a sub directory, and you can navigate down the tree (not back up). Nothing else works yet (no file up/down load or mkdir etc.).

                                1. 2

                                  Nothing spectacularly interesting for work, apart from hopefully finishing up an internal style-guide for our ansible playbooks that we use to manage an increasingly complex SOA.

                                  Outside of work I’m going to be working through game programming in haskell - I’ve done the first few chapters and am really enjoying it so far. I’ve played around with reactive-banana for FRP in the past, but Elerea (used here) has been great to use so far..

                                  1. 2

                                    Last Week Learning a bit of Scala and also trying scaladci library to see how nice DCI is in scala.

                                    This Week I want to code automatic reconnection for open conversations in Fire★ but then realized that users may not want that. Would it be better to provide a nice UI indicating you are disconnected from a conversation and clicking the button would reconnect?

                                    1. 2

                                      I need to regroup and write up docs to get our software running on the Jetson; I also need to, um, get some of our software running on the Jetson. I’d like very much to switch away from Ubuntu as my host OS (to say nothing of the OS on the box itself) but it’s hard to justify the time that’d take. Perhaps after some upcoming deadlines have been successfully met I’ll get the toolchain running on NixOS. But man alive, is Ubuntu ever a garbage fire.

                                      Otherwise, I’m getting used to the new normal that is life with a tiny baby and trying to figure out what I suspect are the ultimately unknowable semantics of iCloud/iTunes/&c. I have found the Apple Music curated stuff to be pretty good, but the integration with my existing library of scrupulously curated metadata is, and I fear I repeat myself, a rolling, roiling garbage fire.

                                      1. 2

                                        A lexer and parser generator for my pet language (Myrddin), written in Myrddin, using IELR parse tables.

                                        1. 2

                                          I wrote a short thing about writing a long thing that is my 1,000th Lobsters story.

                                          And having last week written an introduction to the book based on the talk mentioned in the long thing, this week I’m organizing the big code samples that will be the spine of the book and starting on the writing, hopefully without any more yak shaving in the pandoc pipeline.

                                          1. 1


                                            • Company hackathon this week! I’ll be working on using Skummet together with ProGuard to try and make Clojure more efficient without rebuilding it from the ground up.
                                            • Wrapping up various projects and prepping for the end of summer and my return to school


                                            • TEMJVM-14, fixing one of the last blockers of the Clojure in Clojure compiler becoming self-hosting.
                                            • Hopefully getting my TEMJVM-12 test coverage improvements merged.
                                            • Once all that’s done, working on the flatten changes to TEMJVM to try and improve emitter performance by escaping currently generated intermediary collections.
                                            • lib-grenada, reviewing the work of my GSoC mentee and merging the supporting requisite changes to my other various projects.
                                            1. 1

                                              I’m working on a database written in Rust. I really like Rust. Sometimes the borrow checker stops you from doing something, and then you think about it and realise that’s it’s right - what you’re trying to do is unsafe. If i’d written it in C++ I would have made lots of mistakes.

                                              1. 1

                                                Rolling out a custom SAP/HTML5 logistics solutions to a mushroom plant in South Australia … went live about 16 hours ago. So far, so good, in fact I’m getting a little bored :-).