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.
My workplace acquired/hired a product and the sole developer a while back. His title is now Head of Development. He has worked on this product for some 15+ years. I was assigned to work on the same product. I quickly sold him on the idea of using the version control software we are using internally (he wasn’t using any).
I tried my luck on selling CI while I was at it, but I didn’t have the same success. I deployed CI anyway. 2-3 days per week, the builds are red because he checks in something that doesn’t even compile. He doesn’t notice. The C# code base is a mess with home-grown crypto instead of HTTPS. User passwords are essentially stored in plain text. We have no automated tests. Up until last week we didn’t have a release plan. He just released whenever he deemed appropriate.
We’re now working on mobile apps as well that will work alongside our webapp. Someone told him about JSON, which he liked over XML. I suggested we opt for a restful API, showing off various examples like api.github.com but he prefers inventing his own API (which we already know will be consumed by others at some point).
Just today he asked me if I knew of a best practice around formatting dates. I pointed to ISO 8601. He didn’t want to deal with that sort of complex formatting.
I’ve turned to meditating.
Take good notes.
This is a good idea for internal corporate remediation too.
EDIT: You might point out RFC3339 as simpler than 8601, which it is–it leaves out the interval stuff.
RFC3339 FTW! Due to it’s regularity, it also happens to be the best fallback date format for all countries using the latin script.
I’m in a similar stressful situation, and I can’t stop recommending going to a non-gym like yoga class. Go to a real Yoga class, meditation will help your mind, but yoga does a full body-mind work.
I was recently in a similar situation. I came to a behemoth, 12 separate, identical web applications that should have shared code but instead each one was kept separate and changes were diffed and merged by hand. No release plan. No best practices. Ugly code being spat out by WebForms. jQuery plugins and front-end frameworks littered all over the place. I just quit and found a better company to work for.
Last week, I quit my factory job, got new tires for my car, put about 800 more words down for my novel, and started working on Real World OCaml.
This is my last week in KY for a while, so I’m trying to spend it finishing up every little thing I have laying around. The top of my stack includes: fixing the remaining 80 iphone 5C on the bench, hauling off animals for slaughter, continuing through Real World OCaml, cleaning up the well, and terminating the vent pipe for a tankless water heater.
In a suprise move for me, I haven’t done anything in Dylan for a little while now. I’ve been doing a bit in TypeScript still, but …
I’ve been learning Rust for the last week. This has been a pretty enjoyable experience and has gone pretty well so far. I’ve started out by working on my command system in Rust. I’ve previously ported aspects of this command system from Dylan to TypeScript and I’ve now got a port to Rust pretty well under way.
I’ve published this as a crate already, which was a wonderfully easy experience. There is a public repository and an online copy of the documentation.
When fully working, this command system integrates ideas from the Symbolics Lisp Machines, DEC’s TOPS-20, Cisco and Juniper router command lines, along with some other inspirations. But it isn’t just for command lines and is just as useful within some forms of GUI applications.
I’m hoping to keep the TypeScript and Rust versions roughly in sync with one another over time.
There is still a lot to do here, but I’ve already gotten a pull request from someone that I don’t know, so that’s pretty exciting. If anyone’s interested in helping out, let me know. I’m more than happy to post useful issues with TODO items.
If anyone would like to review my Rust code and provide comments, I’d love to hear any feedback. I know that I have a lot of things to fix as I’m just learning it for the first time. :)
Your Rust code looks quite good!
A few notes:
rustup run nightly cargo clippy
I started using unimplemented! now … and I switched to rustup.rs as well and have addressed almost all of the Clippy notes. The remaining one is currently beyond my ability to fix nicely. :)
I used to hang out in #lisp and saw you in there on occasion. I have since started focusing on Rust and now you’re there, too! Life is good.
I’m looking at Rust too, after some disillusionment with D. I still like D, and I think it’s a great plus that it seems to be a better C++, but I can’t say I find anything objectionable about Rust yet. Maybe it is the most loved language for a reason.
The [Haskell](haskellbook.com) book is content complete, we’re just editing now. Latest release included the conversion of modules to use [Stack](haskellstack.org), next one will include the same changes for Testing and possibly some extra tutorial for QuickCheck and Gen/Arbitrary.
Still hammering out print stuff with the printer. Pain in the ass.
Nuts. Haskell and Stack
Forgot the damn http://
I want to use something in the Lisp family for a pet project. I’ve used Racket and I love it, but I wanted something that could compile down to C/C++ because I will need some fast numerical computations (it is a simulation). I lost a week in the complex world of different scheme implementations and now am completely confused as to what to do. I picked Chicken scheme first, because of it’s package management and CFFI, but then saw a benchmark report that stated it was even slower than Racket. So I’m still looking. My requirements are:
I know someone here knows the answer, even if it is - not possible. :)
Thanks for your help!
SBCL, with its whole program optimization and type hints, is perfect for you, but you have to learn common lisp.
[Comment removed by author]
Thanks folks! I will try it out. In case either of you are involved with SBCL, the platform table page (http://www.sbcl.org/platform-table.html) is problematic from a color-blindness point of view. It is hard to distinguish the colors chosen for “Available and supported” vs “Port in progress”. Thanks!
I’m not but it’s worth mentioning to the maintainers. In case you yourself need this information, know that everything with a version number is green. :) And btw, if you are trying to learn common lisp, the definitive beginner’s resource is Practical Common Lisp. The definitive reference is also the HyperSpec, hosted by LispWorks.
if you’re not ready to implement a lot from the ground up, Common Lisp has an actual ecosystem, and this is quite a winner over the scheme community.
This hurts me because lisp-2 doesn’t feel nearly as “lisp-y” to me as lisp-1. I don’t enjoy writting defmacro and (gensym) all day, but it’s the current state of things. I’d love to see: r7rs compliance with library definitions becoming the default so we can at least start to share libraries without 20+ implementation hacks.
Common Lisp has an actual ecosystem
Especially now that quicklisp is around.
Have you checked clasp? I recommend that you watch this great video about it
It kinda sounds like you might be better off tying together existing C libs. Is there some kind of easy FFI that you can use?
Hi @angersock! Thanks for your reply. One of my goals is to learn Scheme/Racket and I’d actually like to do as much as possible in Scheme. I would like to use it as more than a glue language. Chicken seems to have an easy to use FFI, if that was what you were suggesting?
For the numerical stuff, I don’t know how much you’ll find in Scheme/Racket. I don’t know the ecosystem that well, hence my suggestion that you might be better off with an existing lib for that. Also, the performance will probably be much better. If you only have a handful of math things you need done, though, you could probably get away with implementing them yourself–if there are a bunch you’ll need, though, then you may want to skip the hassle.
For the plotting, again I’d suggest looking at an existing library. The code is fiddly to do from scratch and faster in native code. Worst cast, you can roll your own with racket.
For getopts, you might be able to use something like this instead.
Most of my time is spent revising for exams now, though I have been using (the excellent) graph-tool Python library to investigate how the addition of links to regular networks changes their topology and turns them into complex networks. I’d really recommend graph-tool, it has loads of functionality (such as topological analysis etc) and can create nice pictures. I think you can enable automatic parallelisation with OpenMPI too, but that doesn’t seen to be turned on in the Ubuntu package.
Yet more rejection letters for my master’s funding requests… I have however, realised that tutoring at weekends may be a good option for getting extra money during the year. The rates on websites such as tutorfair look good, and I’ve found tutoring/teaching to be very rewarding in the past. Advice here would be appreciated!
Now most of my uni coursework is finished, I’m planning on doing a fresh Arch install over my existing Windows OS on my desktop PC (unfortunately, Windows was easier/required for some stuff this semester). I’ve only ever ran Arch on a tiny netbook before and am looking forward to using it on a machine with a bit more power.
Hobby project turning BNF grammars into F# primitive lex and yacc.
I have to go to the office this week for some “quality time.” So I’m going to say I’ll get next to nothing done this week, but they’ll feel all warm and fuzzy inside because they saw me in person instead of on a camera.
$SCHOOL: writing my last term paper ever right now, last exam Monday next week then I get to help gentrify the Bay Area.
$PROJECTS: Whole lot of nothing until the above is cleared. I recently “discovered” (reinvented from ignorance) a tactic for writing fluent APIs in Java. When I have some free time, I want to dig into the generated classfiles and have a look at how (or if) this style impacts checkcast emission. If it’s a win, I may take a swing at refactoring Jaunt/Clojure’s various interfaces so that this sort of information is preserved in the type system rather than being continuously re-asserted by inline casting. The problem with doing so, and the reason why there’s bytecode inspection required is it’s not clear how this change would impact Jaunt/Clojure bytecode generation.
But I have to graduate first.
Applying to whatever jobs I can find, feeling incredibly anxious and about to be homeless (in two weeks). Does anyone have a bit of work they could send my way? I can do Rails/HTML/CSS/dev ops/Linuxy stuff, reasonable rates. I need to productively fill my time.
First-level phone interview today for a Rails position, so practicing out-loud for that.
Since you’re in the Duluth/Superior area, I know Target is hiring a ton of developers in the Twin Cities. Might be worth looking into if you’re open to traditional employment over consulting. Otherwise, I’d dig through the employers listed in local bootcamp websites, since they’re more likely to be open-minded about specific experience vs. ability to learn.
Catching up! /me closes the lobste.rs tab.
Second week at Sonatype. Learning about NuGet. Got my workspace set up, which required more fiddling with HDMI cables than I am 100% comfortable with. I understand intellectually why the terrible world of standard connectors has to exist, and on a good day, I can even acknowledge that it’s been a net positive for the world, but man, years of living in Apple’s walled garden can make a man soft when it comes to coping with bad hardware design.
I’m also thinking of volunteering someplace helping people who want to learn to write software get out while they still can M-hM-hM-hM-hM-hM-h navigate the world of unquestioned privilege and chummy self-selection that rules the world of tech.
Fixing the copy/paste hackjob in my Elixir Lobsters clone. In order to save time on a project a friend and I were doing, I used an empty starter blog project in Elixir and then we started turning it into Lobsters. Unfortunately, this means that through the app, we have HelloPhoenix or the equivalent instead of PhoenixLobster.
I figured I could fix that with good ol' grep | xargs sed -i, and managed to nuke everything. Including the .git store. So, yeah. Fresh checkout and fixing by hand this week.
grep | xargs sed -i
Finishing the blog on HN/Lobsters sites. Need to get part 3 up.
Debugging wireless silliness. I reorganized my massive pile of computers at home, and flashed my router (DD-WRT ftw). Unfortunately, I now have poorer reception in one of the rooms, so I need to figure that out.
Anything else that comes up is gravy.
Half-heartedly looking for interesting work.
Re-learning lots of math. Actually, I’m surprised because I’m less rusty than I thought I would be. I’m looking to change industries (I’m sick of startup bullshit) and I’m looking forward to real intellectual challenges (as opposed to startuppy political challenges) again.
Working toward a second post in a blog series on an esolang I created, SetBang. May try to fix some of the current implementation’s performance problems. (The language is deliberately and obscenely impractical, but it’d be nice to be able to divide 256 by 19 in under 10 seconds.)
What kind of math are you working on? I try to stay sharp on several fronts and pick up my math books and casually read them. I’ve really been enjoying Harold Edwards' The Riemann Zeta Function. I actually like other books of his, because he grabs original material and helps you learn it.
A lot of number theory and logic. Want to burn through a couple crypto books and then finish the machine learning books on my desk.
I think that a transition to genuine research is possible. I just need to give up on the idea that it’s possible in the startup world. Most “machine learning” jobs in the VC unicorns are actually machine learning theater.
I’ll probably also have to go back for a Master’s degree in CS but, given how much time I spend studying in my free time, that’s not a concern.
Oh, computery math. :-)
Research in the “enterprise” world is totally possible, though. Have you thought of becoming a vassal to a corporate overlord?
SetBang is there for my own amusement. It’s not a serious project, although I could see it giving ideas for one.
It began (in my mind) as a long-form troll, but then I started putting actual work into it…
Didn’t get much done last week, so largely more of the same. I did get the Stripe stuff mostly finished up, so what I need to do now includes:
That will still leave some work to do, but once that entire flow is working, we’ll be real close to where we can start a beta run.
I lost my shit at your “Under Construction” gifs and images. Thank you for keeping that alive! :)
EDIT: Seriously, do you want some help copywriting or whatever? PM if interested.
Yeah, I want it to be pretty obvious that the site isn’t “live” yet, and I figure a few cheesy 90’s “under construction” GIFSs make that point pretty clear. Plus we haven’t really publicized this very widely yet. These threads here, the corresponding ones on barnacl.es, and an offhand mention on HN here and there. And the robots.txt is set to disallow crawlers right now, so I’m not too worried about people just stumbling over the site and getting a bad impression before it’s actually ready.
Very possibly. I’ll shoot you a PM.
I’ve finished a bit of an introductory series about error handling and core.async and now I’m taking a crack at process control and some actor-esque stuff. There’s not much there yet but I’ve named it extra. Not quite actors, but trying to be. More code, docs, etc to follow.
im writing a driver supporting megaraid sas fusion chips for illumos, cos the existing mr_sas driver isn’t very good.
Back to work after a week off moving house. Have to look into an issue
with the PgBouncer / RDS combination that I deployed (in dev) before
going away. Possibly DNS related. It might even be a
At home, the move took longer than expected, and a few snags occurred.
(Oven didn’t work. There’s sunlight coming through my slate roof.
Carpets absolutely needs changing.) So that’s a few more expenses than I
really needed right now.
Recently I’ve been taking to blogging about Unity3D and packaging up some utilities that I’ve written. I published UnityTimer last week, which is probably the single most useful class I’ve had by my side during game development.
This weekend I went to TOJam and made a competitive train robbery beat-em-up game with a couple of friends from Ottawa. We went for a unique Paper Mario-esque vibe to make the visuals stand out, which worked really effectively. We focused a bit too much on polishing the combat aspects of the game to make it as satisfying as possible, which led to a few usability problems in the final product. Falling off the train made it remarkably difficult to find your way back on, and the action was chaotic to the point of making it difficult to tell which character you were playing. Still, I’m happy with the amount we were able to accomplish in such a short period of time.
This week, I’m mostly prepping for an upcoming interview at YouTube/Google. I’m a bit stressed out over it(super rusty on data structures), but we’ll see how it goes. Does anyone have any advice?
Collaborating on a Greasemonkey / Tampermonkey script which plays http://slither.io for you!
It’s been fun and lighthearted. Accomplished a major refactor this weekend, which was satisfying. https://github.com/ErmiyaEskandary/Slither.io-bot/
If you’re interested in helping, join us in gitter chat!
My son loves this game (and is so much better than me), so I look forward to beating him soundly!
Cheers! The bot isn’t that great yet, but it’s a useful way to get to ~4k points or so before retaking manual control. It’s also a great “I need to go get a glass of water” button.
Imo, the greatest feature is being able to zoom with the scroll wheel.
I’ve been working on a validation library for clojure.
I wanted something that was focused on predicates, but gave you enough data to do something useful.
I also don’t want to strangle my library by only providing low-level constructs, so there will be a few “levels” which build on low-level ideas, progressing into more common uses.
This is quite a big step for me, I’ve never really built a library with such intent of releasing it. I have a clear use in mind (a pet project that will fail), but it’s based on my frustrations trying to get validations working across a number of ecosystems.
Finally getting somewhere with $JOB despite having to write Java to do so.
Also I’ll be presenting at buzzconf nights about the Internet of Toys which should be fun.
Adding .vc domains to park.io
I’ve been working on an alternate translation scheme for list comprehensions in Erlang. The goal is to build as few intermediate lists as possible. I hope that my work will eventually turn into a pull request to Erlang/OTP; that’ll be a really nice feather in my cap.
Aside from that, I’ve been reading up on various compiler optimizations, as well as taking stock of what kinds of optimization the Erlang compiler does. Perhaps that will turn into a blog post in the near future!
$JOB: Continuing to not yet come to terms with not being able to talk about work, (easily) participate in Open Source (code and discussions), and speak at conferences (without bureaucratic processes).
Reviving my meditation practice and focusing on acceptance.
It’s hopefully going to be a quiet week for me. At work, I’ll be finishing up a new portal and dashboard for our company’s intranet, to allow users to more easily check the status of products being built.
At home, I’ll likely be working on setting up my new homelab.
I’m gonna work on a lunch and learn about how I made Go serialize Laravel events to Redis for fun and profit. Mostly profit, in the form of gratuitously obscene performance (relative to what we had). I also have to make the call to disconnect my home internet line, but I think my wife is getting cold feet, which my net-addicted self is very very excited about. XD
[Edit: To be clear: I did not write the php serialization library, I’m just connecting existing tech, but it’s still very (from my standpoint) cool that it was so easy to do.]
Continuing building a set of UI components for our core platform. I’ve been using React Storybook, which is an awesome tool. https://github.com/kadirahq/react-storybook
It appears I forgot to hit enter on my own comment, well done Monday-Caius.
Picked up a new (second) car last weekend, which is a little bit of a project car. Currently trying to solve a leak from the thermostat housing, and also taking the opportunity to replace the water pump at the same time. Once that’s complete, onto the next item on the ever-growing list of things to solve on it.
Also toying with the idea of turning my blog into a wiki (as I do every few months). Probably won’t, but need to start turning a bunch of notes I have on various things into constructive posts for next time I google those things in future at least.
I’m showing off to friends & family my take on a @typeclass Scala macro, writing docs & tests for it. I continue to yield readily to my latent fascination with macros and all the ways in which a language (in this case, Scala) can be enriched by the use of macros.
As far as personal research projects go, this one’s pretty tame, but might also turn out generally applicable, so I’m taking the time to polish it a little before a wider release.
Visiting France! I’ll be here for about a month actually, it’s been loads of fun but today I’m taking a bit of a breather, reading through “The wheel of time” as I learned they were going to make a tv series out of it and I realised I had never read the second half of the series.
I’m also recieving a few first responses from jobs I applied for before leaving, mostly homework assignements. One of them is in ruby, which I’ve never used before, I dont really have time to program here, but I’ve started reading through “The well grounded Rubyist”. Its a good book, even though it lacks exercices, but object oriented design is pretty similar in every language, so it’s really the ruby details I’m looking for.
Integrating the little Go logging library I wrote into a few of my other projects, now that I am finally relatively happy with it.
I also need to run a network cable so I can ceiling mount my ubiquiti uap-ac. It has been sitting on the corner of a side table in my home office for long enough!
At work, working to improve the reliability of some of our internal services and reduce the friction for using TLS internally.
Outside of work… still mostly not computering. Learning to play some music, reading a lot, teaching myself maths, outdoors stuff, etc… I’d like to start work back on my guide to embedded development at some point, though.
So I failed making a snap package for Fire★ for new Ubuntu Xenial. Still trying to figure out how to package a Qt5 app. Ubuntu dev docs used to have an example for a QML application, but they removed it. They also removed the snap QML plugin.
I do have to say, the snap package documentation is very rough. It is clear they are still baking this. I think they released it prematurely.
So this week, I’ll package a 16.04 deb instead.