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.
I’ve started mentoring a few local developers from the local voc-tech programming school who are interviewing for first jobs or in their first six months of working. We’re having a Skype call once a week (plus meet at Code and Coffee if they happen to be early risers) to talk about what they’re working on, things worth studying, experiments to try, and otherwise helping them start their careers right. I already find this enormously rewarding and hope to do more for more devs in time.
My Lenovo laptop repair process has ended. After 34 days they sent my laptop back with the wrong motherboard (slower CPU, half the RAM). The Better Business Bureau complaint helped put me in contact with the “Executive Customer Care Team” and, two more weeks later, replaced my X1 Carbon with a new 4th gen at no cost. I’m omitting a lot of ridiculously bad details, the short version is that I will not purchase another Lenovo machine until they have an enormous internal shake-up as I believe they are an overwhelmingly dysfunctional organization.
no more, no less, just a pager
Cool. What do you use to host your git projects?
That’s stagit: http://git.2f30.org/stagit/
Going to package Firestr in the new Ubuntu snap package format. See what that is all about.
please write about it somewhere, i am really interested!
I have been rewriting a php website (https://archwomen.org) in flask. So far I have a dir with markdown pages that flask uses to render the html for pages and a contact form. I need to make some rss feed widgets and then maybe get to work on the blog portion.
Always had some sort of plot that I wanted to put into an interactive fiction game. So now I’m putting it into the form of an IF engine. Probably using YAML for containing the story. Broke out my copy of the K&R and I’m ready to lose my sanity.
This is probably stating the obvious, but: If you actually just want to do the content there are existing formats with good open-source tooling these days (e.g. ZIL). Even if you want your own interpreter C or Rust seem gratuitously low-level - this is not the kind of task that needs real-time performance.
I’m only doing C because nothing else that I wanted to try would properly work. OCaml has problems with Opam, Crystal won’t compile thanks to an up-to-date LLVM breaking it, I have a mild aversion to using JIT languages for “real” programs as opposed to tools, and now Rust is getting strange with the whole Cargo gig.
Yes, I wanted to write this from scratch from the beginning. If all else absolutely fails and duct tape comes off, a Lua+LÕVE solution would allow better descriptions with GOOD GRAPHICS!. In laymans' terms, I’m an indecisive bugger.
Hmm. Fair enough I guess, though if it were me I’d put a lot of effort into fixing the OCaml before resorting to C (or I’d just do it in Scala, but that’s my prejudices coming through).
If you’re considering graphics I’ll mention the option of Ren'Py too. First-class code in a real programming language (and IIRC you can break out into pygame/SDL stuff if you need to). Has kind of a bad reputation precisely because it’s so easy - any idiot can throw together a few lines of dialogue and pictures and call it a game, and many do.
In any case, best of luck.
Ohhh, string parsing in C. Good luck with that :P
If C gets a bit too hairy for my tastes in here, Rust is next in line for the throne.
I finally handed in my dissertation! Now I’m on to revising for exams, so still no personal projects just yet :( I’m however, doing some interesting coursework on how the addition of weak links into complex networks affects the average path length of the graph-representation of the network. I’m considering how to approach the problem, since I’m mainly interested in large networks (~10k nodes), but these are computationally expensive to investigate empirically…
I sent off some more grant submissions to fund next year’s master’s degree. Things haven’t gone well so far though; I’ve received 7-8 rejection letters and another one saying to come back later in the year.
Moving house! Got the keys to my new house on Friday, so have been
spending the weekend cleaning. My wife, son and I moved to the rather
rural extreme north of England after 15 years in London. We have been
renting for a year, to make sure we liked the area before committing. We
love it here!
Other than washing and cleaning I’ve been setting up Leafnode for
offline NNTP and OfflineIMAP + Dovecot for offline mail, so that I can
start Gnus when offline. This was in part prompted by the terrible
internet connection I am moving away from.
Also pondering which UK Broadband provider to go for at the new place.
It looks like our address qualifies for Fibre broadband. I’ve looked at
BT and Plus.Net, and the latter was about £55 cheaper for 18 months.
(Part of me wonders if the difference is due to BT’s “FREE BT SPORTS”
mandatory add-on, or if there’s more to it than that.) Would welcome
experience reports! (Other provider recommendations welcome too.)
I ended up going with Zen for FTTC, even though I’m paying more than I would if I’d chosen BT or Sky. Pretty much because they’re geek-friendly, have native IPv6 available (beta, but stable/fast in my usage), and if I have to contact them for any reason, I’m not forced to jump through a script rebooting my “windows machine” to tell them their DNS server isn’t pingable or responding to DNS lookups. (That was a fun call with BT helpdesk at a friend’s house. I switched him to use OpenDNS at the time instead. Helpdesk just didn’t understand what I was saying—infuriating.)
In principle I try to avoid BT as the government gave them £6 Billion to upgrade the backbone network, about 10 years ago, and yet service provision is still appalling, slow and not universally available.
Have you considered Andrews & Arnold - they actually understand networking (unlike BT who are too busy buying sporting rights) - not necessarily the cheapest but will give you good service.
I ended up going with EE, as the previous owners were happy with their service (so I know they can deliver at the property) and they were half the price of A&A. Cost isn’t always a factor, but I did just buy a house… so yeah.
Price is always a factor :~) The funny thing is that EE is now owned by BT.
I went to download your book, but its not available in the UK :( I’d love to give it a read!
Hmm. It should be available in the UK. Does this link work for you?
If not, I’m happy to email a copy to you (or anyone else here.)
Ahh, that link does indeed work, I don’t know what I did wrong before then… Thanks :)
No problem. Would love to hear what you think once you get a chance to read it!
I have been doing so much travel, conference talks, and other kinds of work that my work on the next draft of the Rust book is slipping. I really, really want to make a ton of progress on that this week.
I started writing a blog post two weeks ago, and kept going, and it’s starting down a path to becoming a book. It’s probably a bad idea, but I’m having fun. The working title is “How to Make a Jewel Game”.
My copy of Real World OCaml arrived early, so I get to read through that on my breaks at work. Additionally, I’ll be trying to finish up some projects around the farm (replacing chicken wire with hardware cloth on the chicken tractor and coop, putting another couple of coats of paint on the pig hut, putting up corner posts for a fence) before I leave for VA to work on a hop farm for a few months.
Not anything concrete, but I’ve been looking for excuses to use neural networks or machine learning in a chess context. Some use cases:
Any links / similar ideas / thoughts appreciated.
Decided that I don’t like irssi’s config, so I’m writing my own irc client. I’m using chicken-scheme and have gotten it to show a channel in an ncurses window and send messages through a prompt window. Very few implemented commands yet (have to add /join, /server, etc), but it’s getting there.
Also going to continue working on my editor (finally figured out how to pipe a buffer out, send through a commend to transform it and read it back in!)
For all the talk about how IRC is awful and needs to turn into Slack, I like that it’s also simple enough that writing an IRC client is an entirely reasonable and simple project to learn a new programming language.
Honestly XMPP or any number of other protocols are also simple enough to use for such a project - I suspect the Slack protocol is too.
The XML seems to add quite a bit of complexity to me… IRCing over telnet is quite feasible, the only annoying part is that you have to manually respond to server pings. Could you easily telnet to Slack or whatever XMPP remains in Google Hangouts?
The XML seems to add quite a bit of complexity to me…
Parsing XML is a short library call in any remotely serious language. Parsing a specific text-based protocol might seem simpler but involves a lot more custom work and has a lot more opportunity for edge cases and security flaws.
Could you easily telnet to Slack or whatever XMPP remains in Google Hangouts?
Telnet? No. But give me a programming language REPL (Python, Scala, …) and it’s easy enough. Possibly PowerShell would allow something similar (I’m not that familiar with it). I do accept that the compositionality of the unix shell is a sweet spot, but I think we should be able to replicate that in a language that has more structured data than streams of bytes - and given the security implications of the unstructured approach, I think this should be a priority for the whole industry.
Hah. I wish I didn’t start writing my own IRC client in C. Even though it has some support for Lua scripting now, it’s just not malleable enough and having to restart it is annoying. If I were to rewrite it today, I would also be inclined towards a server-client architecture for the UI.
I actually started down that path at the beginning of the week. I was basically just going to write a UI over ii (that would just fgets, fprintf to the in/out files), but decided to pitch it once I realized how much string manipulation I would have to do. Since chicken-scheme compiles to C, it’s basically the same thing in the end anyway right? ;)
I’ve been looking at the source code for Brogue, an excellent roguelike written in C. It’s all wacky bitwise comparisons and scattered case statements, which is fun to make sense of.
I’ve made some minor adjustments to make the game suit me more, and remembered an awful lot about C.
Entering the third week of regular exercise again, with an enforced rest day today. Managed to hit my bike, swim and run targets last week and it seems my fitness hasn’t slipped quite as much as I thought it had. Still lots of training to do before the Much Wenlock triathlon in July, but it feels good to be back in the swing of it.
Also picking up a fun car at the weekend (first time I’ll have owned two cars together). So looking forward to having a convertible again (BMW 3 series, enough seats for the whole family this time!) Cannot wait.
Also finally kicked my blog into submission and gotten it generating identically to the old toolchain. Now I can actually write blog posts again, and go back to procrastinating on redesigning the site instead.
Congrats on keeping up the exercise! I feel like having a goal to work towards or another person to work with is the best motivator.
Yeah definitely, I think this is probably the third month I’ve attempted to start my training this year but never made it stick. Changes this time round were entering a Tri, the weather being marginally better (sunshine is such a motivator) and a friend of mine wanting to start training as well. Amazing what a little bit of motivation does for one.
Open sourced a job queue/scheduler I deployed at work: https://github.com/shyp/rickover. The main goals were - use Postgres as the backend, expose all endpoints over HTTP, and make every endpoint retry-able. Hoping for feedback on it!
Merged a PR into the Go standard library! https://go-review.googlesource.com/#/c/22393/
Tried and failed to figure out why memory spikes in our production environment. Occasionally we see swap for a 700mb app jump by about 500MB in under 20 seconds, then half an hour later, it jumps back down again. It’s a Node.js app, so our ability to figure out why this is happening is pretty limited. We can’t take a heap dump easily because the box is out of space by that point. As far as I can tell, no one else has seen this behavior, or has any ideas about how to solve it.
Looks like the link to rickover has an extraneous period. May want to fix that.
Hope you’re able to sort out the memory spikes! Sounds like an interesting issue. Any possibility of a public post-mortem after it’s fixed (whenever that is)?
Sure! Going to try a few more things this week, we’ll see.
Despite having organized conferences for five years, I’m giving my first talk at a conference! It’s called Code Review is an Architectural Necessity and I’m presenting at SEI’s SATURN 2016 architecture conference.
Trying to blog more about Rust. I’ve got a new blog for Rust and other technical stuff, called Suspect Semantics, to which I’ve only posted one piece of substance so far. Spent some time last week tinkering with the design, and now it’s time to get back to writing.
Besides that, I’m trying to contribute where I can in the Rust ecosystem. I’m working on contributing some documentation improvements for Nom, a Rust parser combinator library, and I’d like to spend more time contributing to Rust issues and RFCs. There’s a particularly cool one about associated type constructors (a prelude to full support for higher-kinded types) that I want to read through.
personal: Find an annoying bug in my chess engine.
work: work. ;)
I’m going to be very abstract here. As of late I just keep learning, thinking, designing. I will be writing various simple things in the near future to get some experience for my ultimate goal, which is writing my own portable user space, Smalltalk style. There is so much to go through and my direction is constantly shifting. … The top of my to-do list is currently occupied by a bitmap text renderer for rust/SDL2 and a Little Man Computer emulator + assembler in Go. (I desperately need to become comfortable with something other than C.) Simple goals still provide valuable experience stand a much better chance of getting finished. :)
Work: a/ trying to write a good minimal testing framework for C++; b/ writing a git importer for a random VCS
Working on an HTML templating library based on Heist called Larceny. It’s fun!
Adding more parts to the fn tutorial, probably ones about Heist, databases, and post params.
The spring semester at my University ended last week, so I now have a reasonable time do some personal research. I am looking into Natural Language Processing and thought a simple Markov chain generator would be a fun project to build. I’ll likely use Python since it will be fairly easy to build up quickly.
porting an app from ocaml+gtk to fsharp + eto.forms, in the hope of getting a cross-platform ui for free.
Interesting. How are you finding the latter two to be for GUI app work?
very pleasant so far. F# is similar enough to ocaml that i have very little difficulty translating the code. most of the problems have dealt with setup issues - e.g. this is my third try at using it and the first two times i abandoned it because i couldn’t get the latest f# working on linux. this time around i got everything compiled, but the documentation for doing things from the command line is pretty sparse (i’ve started a collection of fsharp-quickstart shell scripts to help with that). i did run into one problem i haven’t yet been able to solve (details here), but i’ve kicked that down the road and will continue developing the app and assuming i’ll find a solution once i’m more familiar with .net.
http://stash.cool/ - the personal finance mobile tool. Digging deep into d3.js.
I want to look into what’s needed to add support for system font (e.g., San Francisco) to gtk’s font loading on OSX.
Making Power Moves Only.
Shoving off another batch of freelance proposals, iterating over my blog, seeking a Ruby job.
Hoping http://www.100YSS.org doesn’t crash, test my skillz
Feels like the answer is mostly “Submitting to CfPs and preparing talks”.
More usefully, I’m about to launch a small product based on Hypothesis - nothing very exciting, it’s just an extension for adding Python 2.6 support that I want to see if I can sell - and I’ve got some interesting stuff I’m experimenting with using the parsing with derivatives algorithm to generate data matching arbitrary grammars (if I can get the blasted thing to work, which I currently can’t).
Late last week I made a lot of progress on getting Stripe integrated so we can start taking payments, which means we are really, really close to a launch. We’ll probably do a soft launch / beta period with just a note here, on HN, etc., so look for it some time in the next month or so, if all goes well.
So, what is this? Well, it’s a “Machine Learning as a Service” offering which is mean to make advanced machine learning / analytics tools more available and accessible to everyone. The first service we offer will be based on a Spark/Hadoop cluster running Apache SystemML. We’ll be providing API’s for uploading data, submitting jobs to train models, and download results, as well as a Prediction API which lets you directly access a trained model. Early on we’ll provide a number of pre-defined ML algorithms, including things like Linear Regression, Random Forests, SVMs, etc. We’ll also be exposing the ability to write and upload your own algorithms in DML (an R-like language designed for SystemML) and PyDML.
The nice thing about DML is that it, along with SystemML, supports seamless scalability, unlike “real” R. With DML, you write your algorithm once and run it on anything from your laptop, to a 5000 node distributed cluster, with no changes required. With SystemML and our service, data scientists can run ML / analytics jobs on huge datasets without having to worry about: installing Spark/Hadoop, installing SystemML, maintaining a data center, porting R code to a different language to get scalability, etc.
Later, as the service evolves, we will be looking to add the ability to directly use TensorFlow, Warp-CTC, CaffeOnSpark and other platforms. Beyond even that, I think we’ll probably eventually offer Beowulf clusters for MPI/OpenMP programming. One thought I’m toying with is to have a cluster type that sets up MPI, R, and Rmpi so that anyone who wants to do distributed development with vanilla R will have access to that.
Anyway, that’s the basic idea. Feel free to poke around at the site, keeping in mind that there are still a lot of things that aren’t fleshed out yet. There’s a username / password of user123 / realitybomb40 that you can use to login, if you want to poke around without registering. If you DO register, we won’t be keeping any information you provide us right now. The database is periodically wiped and reloaded as we iterate the code-base.
In about another week, I expect we’ll have a full end-to-end workflow finished, so you can register, sign-in, spin up a cluster, and start doing work. We’re REAL close to that point, but not quite there yet. If you think you might be interested in something like this, click through to the site, scroll down to the bottom of the main page (or click the “under construction” logo) and fill in the form to subscribe to our (very low volume) mailing list.
Also, before anybody asks… the video that’s there is just a placeholder to mark out where on the page we plan to put our explainer video. I just chose something random that was machine learning related, but don’t take that to mean we are associated with Andrew Ng or anything like that.
First week at Sonatype. It’s fun so far, but onboarding is always a bit of a drink from the firehose. I have to think that much (most?) of the new information will fly through my brain, but hopefully will leave sufficient residue to make subsequent contact less ephemeral. Sonatype is a fully remote company, which means that there’s much more formal and informal support for remote work than at Samsung Research or Apple, where, with the best will in the world, remote employees were always operating at a disadvantage to in office folks.
There’s also more and more serious agile process; I’ve never worked in an agile environment, so it’s going to be interesting to see how well this works, both for me personally and in the general case.
Otherwise, I’m thinking of getting myself a nice welcome back to work treat; getting my bike set up for spring and summer; and watching the NBA playoffs.
Integrated FieldExpert API to handle scheduling of employees, Interviewing junior level developers, coming up with tests and questions that make sense to ask juniors
Eventually going to parse through the MLB Gameday API and have a nice little CLI for telling me game times, scores, etc.