1. 26

Heya lobsters it is Monday and it’s a new week!

I’m going to work on a simple nodejs app-server that serves static HTML by collecting components from a manuscript directory. I guess something like jekyll might be cool, but I’m still undecided about how it is all going to work.

Are there any good jekyll-like npm packages to look at for reference?

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

  1. 11

    Hello all.

    In something completely random, it looks like I’m helping foot the bill for a war correspondent that I respect to go to Kunduz from his home in Kabul. I’m really not sure how these things happen to me.

    For something else completely random, a really common complaint about Dylan stuff is that it is pretty hard to get into. There are a lot of reasons for this and many of them will take a while to address. (The compiler is big, complex, but also highly optimizing and a product of a lot of engineering.)

    Many years ago, there was a compiler and bytecode interpreter written for Dylan called Mindy at CMU. It was abandoned some years ago as the focus was on optimizing compilers, but there’s something beautiful and fun about a system that you can compile in about 2 seconds without bootstrapping and so on. So, I announced on the mailing list that I’d gone and revived it with some other people who had expressed an interest.

    Jim Studt wrote here and here about why he liked working with Mindy in the past.

    This has been a lot of fun. And it is really easy to get involved and contribute. There’s a lot of things to do in updating libraries, improving platform support, porting over the old documentation to the newer documentation tools, etc.

    I’ve also added color output support to the main Dylan compiler, fixed some C-FFI bugs for a user, improved the documentation (again for a user), added support for sincos to the standard library, diagnosed a performance problem in the standard library being experienced by another user and assisted them with a (1 line) fix.

    I’ve also been doing a lot of clean up in the LLDB codebase and being a code janitor. This too has been fun.

    In the last 3 weeks, I’ve also changed my eating habits substantially after a not-so-great medical checkup. Things are already improving.

    And my GitHub streak has passed 1000 days.

    I also write a lot more, in more detail and more often over at Little Logs. Maybe too much.

    1. 5

      Finally found an excuse to play with z3, trying to solve some chess related problems to get used to it. I already solved the 8 queens problem, and now trying to get a harder (harder than I thought!) problem: how to place a Queen, Rook, Bishop (and Knights should be added as well) in such a way that some arbitrary squares are attacked an arbitrary number of times; I’m using bitboards and bitwise operations to find attacked squares for each piece, but somehow I forgot that pieces can be in each other’s way :) Hopefully the chess programming wiki will come in handy. Any further pointers to bitboards or general complex bitwise fiddling stuff is appreciated.

      1. 2

        Would be interested in checking out your code for this. Have you got it hosted somewhere?

        1. 3

          I’m kinda in a hurry, so you’ll excuse me for hosting it in pastebin and for the poor formatting: http://pastebin.com/Bcsz77d3

          1. 1

            Not yet but I can set it up latter. I’m using the C# API, but i think it might be straightforward to translate it to vanilla SMT, as long as you don’t mind having a prelude with a bunch of bitboard setups. I’ll PM or answer again your post when I have it running.

        2. 5

          Adding WebRTC support to a kademlia implementation.

          1. 1

            That is pretty interesting. Following the conversation in that thread is a bit all over the place, but I’m sure I just lack context. Congrats on your progress, though. WebRTC is not yet simple, so you deserve some of that celebration. (gif reference from that link) Jawsome!

          2. 5

            I have achieved Linux on my big machine and thus can start:

            1. training models on the dual Titans;
            2. evaluating the performance/correctness of the OpenCL caffe backend;
            3. fiddling with my window manager configuration to make X-11 WinDOws less utterly hateful.

            I’m going to have to start working much more closely with the actual machine learning folks, so I’m also going to spend time with Dr. Strang’s lectures on linear algebra. I’m not so foolish as to think I can help them solve their problems, but a basic understanding of their lingo will make it much easier for me to help them implement their solutions. Working in a research lab as a practitioner is actually a really fun change of pace, but I can be left behind when the real brainiacs get going. Anything I can do to make that situation better will help us all go faster. Or so my theory goes.

            Otherwise, this is a rare week between family visits, so I’m taking some time in the evening to do nothing in particular. Practicing for our upcoming old man punk band rock show. Playing with my four month old daughter. Catching up on sleep, where possible.

            1. 5
              • Committed to that secret project I’ve been thinking about for a while. Maybe you’ll see it next week :smile:
              • Keep going through the Rust stdlib’s module docs and improving them.
              • Go to Colombia to present at a conference
              • Go from Colombia back to NYC for 12 hours, then go to North Carolina for another conference, though that’s technically early next week, I guess…
              1. 1

                you’re a busy dude.

                1. 1

                  I like it that way :)

                2. 1

                  Would the NC conference be All Things Open by any chance? If so, I’ll be there, hopefully we can meet in person. I’d love to say “hi” and put a face with the name…

                  1. 1

                    It is! Please do :)

                    1. 1

                      Rad. Are you presenting? If not, is there a certain booth or whatever that you’ll be associated with?

                      Luckily, I’m not presenting this year, so I have complete freedom to wander around and meet people and check out other talks. Last year I was working on my talk until right until time to give it, so I didn’t get to do as much wandering around as I would have liked. :-)

                      1. 2

                        I am giving a talk on Rust, so yeah, come say hi after. :) Or whenever. I’m usually the only person in head-to-toe black…

                        1. 1

                          Gnarly, I’ll definitely attend your talk then, and make it a point to find you and say hi afterwards.

                3. 4

                  I spent a good part of the weekend writing some Common Lisp code to display wireframe 3D graphics using LTK. It’s not really intended to be a serious library (that’s what OpenGL is for), but it’s fun implementing the viewing transformations and what not. During the week I’d like to refactor the code a bit, use it to create a 3D turtle graphics system, and maybe load and display Wavefront .obj files. The code is on GitHub if anybody is interested.

                  At work I’m continuing to clean up, refactor, and optimize our drive handling code.

                  1. 4

                    Waiting for my ESP8266 module to start writing some embedded C code so i can control my room’s lighting over Wifi. Also need to review a bunch of merge proposals for elementary OS.

                    1. 3

                      Still working on this “deep dive” into AI that I’ve been meaning to engage in for like, forever. Trying to play “catch up” a bit. The last few days I’ve been reading a lot of papers on the “blackboard architecture” idea, and started implementing a primitive skeletal blackboard system. I eventually want to integrate it into my AI bot so I can explore some ideas I have vis-a-vis cognition and learning.

                      Also, started reading Russel and Norvig’s Artificial Intelligence - A Modern Approach.

                      And last, but not least, working on implementing OAuth to secure some REST APIs in a Grails app.

                      Edit: While I’m babbling, let me add a little more to this. One: It would be easy to say that blackboard architectures are passe and outdated now. The idea is pretty old, going back to HEARSAY-II and HASP, etc., which date from the 1970’s. Nonetheless, I find this interesting on two level:

                      1. I strongly believe that human cognition is, in fact, rooted in something like a “blackboard architecture” to some extent. And if one takes the “classic” blackboard model and extends and tweaks it, I think there may still be a valuable approach to achieving some new ground in AI hidden away in there.

                      2. Possibly even more importantly - I think the blackboard model may represent a powerful mechanism for integrating human intelligence and artificial intelligence for problem solving. Or to borrow a term for Engelbart, Licklider, etc., it’s a way to do “Intelligence Augmentation” (or “Intelligence Amplification” whichever term you prefer). This idea, of course, is not mine. But I came across a mention of the concept in one of the papers I was reading over the weekend and it just stuck out to me as interesting on an intuitive level.

                      I mean, if a blackboard architecture is an analogy for a “group of experts sitting around a blackboard trying to solve a problem, each contributing to the solution on an opportunistic basis”, then why not have humans and AI modules both contributing to the solution being developed? Take advantage of the areas where machines are clearly better (scanning and locating data from massive databases, numerical computation, classical logic, etc.) and combine that with the things a human does best: applying intuition, creativity and human perspective.

                      So that’s where I see all this leading me in the short-term… trying to come up with a blackboard system that seamlessly (well, as seamlessly as possible) integrates humans and AI/ML to solve problems faster and more effectively. Will it work? F%!# if I know, but it seems like a fun thing to work on anyway.

                      1. 3

                        $work: debugging what appears to be a race condition between two internal services & an external service. Gnarly :-(

                        !$work: continuing a crazy idea I had, to upgrade the internal USB storage stick of my EdgeRouter Lite from 4GB to 32GB (trickier than it sounds - ERL doesn’t like some usb sticks. Le sigh.) and run tftp server on there to boot the SmartOS server from the network.

                        Also got most of a puppet master up and running in a smartos native zone. Most of the joy from that was writing a couple of git hook scripts to validate what I’m pushing to the puppet master, and then once it’s accepted, splatting out a git branch as a named puppet environment to make testing stuff on different machines easier. Turns out debugging a post-receive git hook is fun, when there’s no output from it and git doesn’t report the exit code for it. Back to echo debugging!

                        1. 3

                          I’m preparing for some phone interviews this week, shoring up my C implementation of Tarjan’s strongly connected components algorithm before it’s reviewed by another student at university, reading some papers on ‘design science’ that were recommended to me, and looking at part of speech tagging.

                          Aside from work, I’ve just finished reading ‘The Way of Kings’ by Brandon Sanderson which was beyond amazing.

                          1. 3

                            I’m working on the last few things required for the limited alpha (UI only) of Peergos. The main thing is an introductory tour of the web app. Something with clear pointers and ideally interactive demonstrations of how to do everything. I’m imagining a big arrow points to a button and some text saying click this to send a follow request to a user, followed by the next feature, and so on. If anyone has any suggestions on how to do such an interactive demo in JS (the page is react based) then I’m all ears.

                            1. 2

                              Well … the library that my tradewars clone is centered around reactive-banana, just had a redesign. I decided that I would take the project as far as I could with the 0.9 version, but my inclusion of conduits has compelled me to stop working with 0.9 and just move over to 1.0. The problems I am experiencing are centered around the new requirement of having to be explicit about what happens when two events happen at the same time. Re-writing. All. The. Things.

                              1. 2

                                @work: Starting on extracting some components from our main products big-ball-o-mud-ruby app to seperate services (a.o. in Elixir).

                                @!work: Nothing… waiting for a contract proposal for a potential new employer… Leaving software engineering… insert mixed feelings smiley here

                                1. 2

                                  Hey there,

                                  This week I’m gonna be working on several, several things.

                                  For money:

                                  • I’m going to finalize a story that requires me to talk to several endpoints for a middleware I’m implementing, it’s complicated, I have little documentation, and no idea what I’m doing. Yay being on probation; I’ll hopefully have a better handle of how things work when I’ve been around a little longer.
                                  • Since I don’t like feeling stupid, I’ve started conspiring with a director to get a prototype rolling on some hadoop project. If this goes through, then I may have a very fun time ahead, as the math dude will probably ask me to implement tons of interesting algorithms. And eventually build a full-blown lambda architecture. That would be fun.

                                  For free:

                                  • I’m starting work on my next lunch and learn, about building Go APIs. Should be fun, I’m supposed to present this in the office this December, I’ll try to present it elsewhere as well.
                                  • I may be presenting my introduction to Go talk to the compsci students of my old college; a friend of mine works there as a teacher and I reached out to know if they’d be interested in such a talk. Seems so!
                                  • I’m finally starting to feel like giving a serious go at autoapi again, so I’ll get a small thing done as a start. No idea what yet. Since I want to use it in my next lunch and learn about Go APIs, I’ll probably need to fix one or two bugs at least before December comes. Progress!
                                  1. 1

                                    perpetually trying to get past 80% on a nonprofit project with no real due date. local co-op/hackerspace is trying to team up with other nearby hackerspaces to get their monthly hackathons coordinated and where they can keep state-wide stats (as well as give corporate sponsors and other investors names of the kids winning these things).

                                    sort of feel like I threw every buzzword in the book at it, but there again they more or less gave me complete freedom to “do whatever”. multitenant rails app with ember, with some webrtc stuff in for team co-op and voting. contestants sign in with github and stats are pulled in via the github api. ive had one or two people want some google slides integration for presentations, but i think itd be a bit of a pain to add that for such small demand.

                                    been doing incremental real-world testing on it at various hackathons in the area… i just keep steady at around “80%”.

                                    really ready to be done looking at it, at this point.

                                    1. 1

                                      This week we start experimenting with various advertising channels and messages.

                                      Also, and much more fun, my static site generator is coming across nicely (though github is a bit behind my local branch at the time of this writing), and I should be able to put it through its paces soon. https://github.com/todpunk/pydozer