1. 35

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.

  1.  

  2. 19

    Last week I dropped my two remaining jobs and moved out to Southwest Virginia to work on a hop farm for the summer. We got a platform rigged up to make stringing simpler, and have cleared four of six rows, so far.

    This week, we’ll finish the stringing, start training the vines, and hopefully get started installing lights. The farm’s owner is involved with research on recreating pacific northwest growing conditions for hops here in the southeast; the hops we’re growing this year will be undergoing a form of phototherapy to (hopefully) interrupt their night period for a couple of hours and prevent flowering until later in the season.

    As far as personal projects go, I’m still learning OCaml, and trying to write prose and half a dozen tiny little programs that were almost done - simple OpenGL exercises, PnP RPG utilities, various introductory ‘toys,’ for the sake of fun and learning.

    1. 3

      Sabbaticals, if you can afford them, are awesome. Congratulations on that!

      1. 3

        Godspeed!

      2. 10

        Considering a project (and possibly looking for collaborators):

        I use stagit1 for personal project hosting (and github as social media but that’s irrelevant to this). I find stagit to be simple and minimal. Does the job. Does one thing and does it well. But I miss issues and PRs. Allowing collaboration from other people is pretty much impossible (asked people to format-patch, anyone?). So I am thinking of creating a “bundle” project which uses stagit and some mailing list software that allows anyone with his own vps and an ip/domain to quickly setup a github like personal project host with patches and discussion over emails with a public mailing list. So people won’t have to “register” to everyone’s site for contributing or opening an issue (which is mostly what keeps people from moving out of github or any other centralized service). They’d just use emails. If we can keep things consistent enough, it could offer the consistency of Github (or other hosts) while getting the decentralization of git back. Add some light css (see http://bettermotherfuckingwebsite.com/) and people wouldn’t find it dull or boring either.

        Thoughts? Anyone feels like collaborating? Am I missing something crucial?

        Edit: Just realized that this thread might be more about already accomplished/started things and not made up ideas. Apologies if this is offtopic for the thread.

        1. 4

          It really looks like you’re describing Phabricator here (code reviews, issues, discussions, git hosting, simple design, simple hosting…), you should check that too.

          1. 2

            +1 phabricator. used it at my old job.

          2. 3

            don’t hesitate to … ask for help, advice or other guidance

            Almost definitely not off topic :-)

            1. 2

              I’m busy with exams right now, but this is something I’d be interested in following & possibly contributing to in the future :)

              1. 2

                But I miss issues and PRs

                Google has a project where they abuse git-notes as a code review tool. Maybe something similar can be done for issues?

                Or maybe we should all just realise that what we really should be using is fossil-scm.

                1. 1

                  That is really clever. It seems like making a new GitHub repo for it will be a necessary evil though ;)

                  1. 2

                    Thanks. It is maybe clever eyesight, not a clever idea in itself because git was meant to be used that way only.

                    Why would this require a GitHub repo?

                    1. 1

                      I feel like that would be a better place than Lobsters to pool ideas and find out who wants to participate.

                  2. 1

                    This looks like something I’d find pretty useful for https://eigenstate.org and https://myrlang.org.

                    At the moment, I mirror my code on github, and use their bugs/issues.

                    1. 1

                      Definitely interested in this. Got a repo for it yet?

                    2. 10

                      This isn’t something I’ve ever participated in, but here’s to new things.

                      I’ve been working on PDFDATA.io for around a month, but very intensively last week and this one. It’s probably my third swing at some kind of PDF data extraction as-a-service over the last 10 years or so. Maybe I’ll get it right this time!

                      More seriously, since PDFxStream (a commercial Java/.NET library in the same domain) has been and remains my primary asset, doing this well makes too much sense. Past failures include poor target market selection (and faulty pricing models to go with ‘em), fuzzy / overly broad product ambitions, bad technical execution, and, if I’m being really honest, a fundamental lack of motivation on my part. I think I’m set up to not make any of those errors again.

                      As part of this, I’ve been doing a really broad survey of modern API design, a lot of it rooted in the tradition that it’s safe to say Stripe started. A couple of things in that vein worth sharing IMO:

                      • A couple of posts/talks/slide decks from Amber Feng about the thought process that went into the design of the Stripe API, both as a static thing and w.r.t. its evolution (the fixed-on-signup versioning is a particularly interesting twist, especially since I’ve written a number of Stripe integrations and never actually had occasion to learn about it…proof-positive of the stability-first mentality at work):
                      • It’s really hard to think of API documentation from any other firm that is as pleasant to work with. Some folks originally with Tripit wrote slate, a middleman-based static site generator/style to mimic many of the key design elements that Stripe’s API reference popularized. (Slate’s original author, Robert Lord, wrote a post some years back summarizing the big ones.) I had some “fun” getting started with it earlier today (mostly due to my aggressive ineptitude with the ruby toolchain), but all’s well now.

                        It’s really very pleasant to work with and looks like it will end up saving me many days of rolling my own pretty / usable doc site. The only TODOs it’s created for me so far include:

                        1. I really do want to write this sort of documentation in a literate style; that’s not really my thing usually, but I want to make code/documentation drift as difficult as possible. I’ll probably end up scraping together some build-time task that walks through the front-end API codebase and dumps the docstrings from there into slate-style includes it can pick up later.
                        2. I don’t see any obvious way to get the logged-in user’s API keys templated into code examples. Also something fairly easy to address.

                      Enough on that for now. I’d love any feedback anyone has on PDFDATA.io; I know there’s not much public there yet, but thoughts re: the concept, use cases you might have, etc. would be appreciated if you have them.

                      Oh, and I just registered grunt.fm, for yet another crazy idea. oy!

                      1. 1

                        Out of interest how are you planning on dealing with the PDF’s where they have converted the data into an image to prevent the data being extracted?
                        In the past I’ve had to export the pdf as an image file, use imagemagick to increase the contrast and then feed the resulting image into gocr which allowed me extract most of the words which was quicker than retyping the document :~)

                        1. 2

                          There’s a lot of low-hanging fruit to pick before I get to OCR topics, but it’s certainly something we’ve done a lot with in conjunction with PDFxStream. Image-based PDF documents (that don’t include a hidden text “layer”) aren’t often so in order to thwart text extraction; the most common case is that the document is a result of a scanning process that didn’t include an OCR step. Even then, image-based PDF documents are vastly outnumbered by others.

                          Anyways, getting quality data out of such files isn’t a huge problem; PDFxStream provides image extraction as well, so no separate conversion step is required, and the end results are pretty good as long as the source bitmaps are of a high-enough resolution, and one is using a quality OCR toolchain.

                          Somewhat more interesting are cases where some useful data just happens to have been rendered as an image (figures in a chart are a common example, for reasons passing understanding), but the rest of the document is “regular” text. I’m in a good position to eliminate that as a complication: there’s just one document model, and text from an embedded PDF image via OCR will flow together with text from the PDF itself.

                          1. 1

                            Thanks for the information.

                      2. 9

                        I made a barebones Pong in Rust over the weekend, as a sort of impromptu game jam with a buddy of mine. It was a cool way to learn Rust, and to remind myself why I like programming in the first place.

                        1. 8

                          Starting with Common Lisp (after suggestions here!). I’ve ordered ANSI Common Lisp and am reading Let over Lambda. My goals are to understand

                          1. Macros
                          2. Closures
                          3. Continuations

                          which seem to me the things I never ran into (at least by that name) when coding in C++ and Python.

                          1. 4

                            Nice. Have you read Peter Seibel’s Practical Common Lisp first?

                            Graham’s code is, as they say, opinionated (and IMO is out of date) making it something of a personal taste. I loved Hoyte’s LoL but it’s a bit of an advanced text and shows some handy and sometimes odd and uncommon devices for those already working with CL.

                            edit: fix formatting

                            1. 1

                              Ok, I will read that, thanks!

                              Right now I’m having fun with LoL - I’m just reading and typing in the code snippets to try and figure out how they work. Lexical closures remind me of Python generators. I did have cases where I went from static variables in function -> generator -> class. I’m curious as to whether closures are easier to write/reason about and more compact.

                          2. 6

                            Finally figured out how to get my rear tire off the ground, also figured out the English bunny hop: https://goo.gl/photos/ZC9eQnv49pHkFbNY8

                            So trying to figure out the American bunny hop this week, also studying OEC for the Ski Patrol test I’m taking a week from Wed.

                            1. 3

                              Your pedal action looks great in that clip - the more you pre-load and compress before you hop the higher you will go! :~)

                              1. 2

                                Thanks!

                            2. 6

                              I’m trying to write a prefix notation calculator in C. So far I’ve got the abstract syntax tree working, now I just have to evaluate. Then I’m gonna probably rewrite this in x86 assembly.

                              1. 5

                                I’m currently planning a software as a service extension to Hypothesis. I’m going to be trying to sort out a bunch of the details this week, though it’s fairly disrupted by travel.

                                I’ve also recently switched my development environment from Linux to Windows, so a lot of what I’m actually working on this week is going to be just figuring out how that works and questioning my life choices.

                                1. 6

                                  Linux to Windows, what are doing with your life to make such a crazy move ?

                                  1. 5

                                    Mostly getting bored of broken hardware support and punitively slow browser implementations.

                                    The actual work is mostly still happening on Linux in VMs (currently via Vagrant). Windows is just acting as the host operating system.

                                    1. 3

                                      Ah ok, doesn’t look that bad then. I guess you don’t miss the fancy windows managers of linux and the its-open-source-source-and-there-s-no-malwares-preinstalled thing ?

                                      1. 5

                                        I guess you don’t miss the fancy windows managers of linux

                                        I was actually going to be running a Linux VM as a desktop environment because I thought I would (I usually run i3), but it turns out that Windows 10 window management is actually really good (and running graphical VMs is awful).

                                        and the its-open-source-source-and-there-s-no-malwares-preinstalled thing ?

                                        I’ve really got very little benefit from it being open source other than the ability to occasionally cargo cult other people’s workarounds to shit that shouldn’t be broken in the first place. (And it being free as in beer of course, but I don’t mind paying for things). In terms of malware, eh. I wouldn’t use a vendor provided version of windows but vanilla windows 10 from a fresh install doesn’t have notably more malware than you get out of Ubuntu and a modern browser anyway.

                                        1. 1

                                          That’s true that to protect yourself from tracking it’s many layers but having the OS come with backdoors and heavy tracking is a bit too much for me. Security on linux is a bit a joke so I understand that it’s a comprise on many things. Wanna try win10 windows management now !

                                  2. 1

                                    Cygwin may save you from your quandary. Haven’t tried it myself, but I understand it to essentially be “*nix for Windows”.

                                    1. 2

                                      Or even better, you can run Bash on Ubuntu on Windows!

                                      1. 1

                                        But can I run Blink on Qt on Python on Jupyter on Bash on Ubuntu on Windows?

                                        1. 1

                                          Probably? Try it and report back.

                                      2. 2

                                        I’m using it a bit (mostly to get a good terminal emulator), but I’m not really convinced it solves the problem at a sufficiently deep level. The approach I’m taking is basically to develop on Windows but not actually try to run code on Windows and it seems to work pretty OK so far.

                                    2. 5

                                      The french movement Nuit Debout needs help for their infrastructure, my goal is to add a CAS, i18n and some small optimizations.

                                      Also working on indexing the source code of 90k chrome extensions.

                                      1. 3

                                        By CAS, do you mean “Computer Algebra System” or something else? If it’s “Computer Algebra System”, I am very curious to find out what it has to do with Nuit Debout.

                                        1. 2

                                          Nope, Central Authentication Service. See gh issue here: https://github.com/nuitdebout/wordpress/issues/144

                                      2. 5

                                        Made the decision that having one server run FreeBSD and everything else run SmartOS was a silly idea with limited time available to maintain things. (Mostly re-learning how to configure one thing on a different OS is somewhat of a waste of time.) So now I have to reinstall the server with SmartOS, which is also using up my time. Yay!

                                        On the car front, I tracked down a coolant leak to the thermostat housing, so it’s had a new housing & sealant fitted. Amazingly I found out Halfrauds (national UK motoring store chain) were the cheapest place to get the correct coolant fluid from, first time for everything.

                                        1. 1

                                          So I’ve a freebsd nas server that I use, its a bit old now and would like to make it a vm server too. But as an old Solaris hand, how hard/well is it to get kvm/docker images up on smartos?

                                          My thought is I’d buy the new not yet released intel nuc and get 2 nvme ssd’s for zil/arc and migrate my 3.5" spinning rust to external usb3 enclosures. Then make all my vms just be docker images as needed. Probably overkill for home use in general but 32g of ram is the main reason.

                                          1. 2

                                            KVM is well supported1 & there out the box in SmartOS. Joyent provide KVM base images to get going quickly, or you can roll your own. There’s also LX Brand zones, which are (as I understand it simply) linux syscalls atop a translation layer to Illumos syscalls, so you get pretty much the raw speed of native SmartOS zones, whilst running Ubuntu or Debian or some such OS. Useful for apps like Plex that don’t run under SmartOS natively.

                                            Docker support is also there, although I don’t use it personally so I don’t know how good it is right now. Seemed pretty easy the time I played with it, imgadm knows about docker hub and can pull images down from it.

                                            There’s also other Illumos based distros depending on what you’re wanting to do with it. OpenIndiana and OmniOS are the ones I hear most about, they have slightly different install requirements (SmartOS is nice because it boots & runs in memory from a read-only image, rather than needing to be installed to your storage) but also support different things. For instance I believe (but might be wrong) there’s no generic PCI device passthrough in SmartOS, but OmniOS supports that.

                                            1. 2

                                              Hmm, will have to think about it then, one thing I use docker for is to build docker images. Will have to look up how hard it is to use it to build systems.

                                              Most of the reason to try it is the whole not having to install to the pool. I’m fine with keeping everything in the pool itself. I’ll have to have a look at things. I don’t think I need something like pci passthrough.

                                              Thanks for the information!

                                        2. 5

                                          A week ago I asked my Twitter bubble why is there no mutation testing library for Clojure. My tweet resulted in a storm of two direct reactions, one being a like and the other a tongue-in-cheek reply. I realised that there might be a niche.

                                          I’ve experimented over past couple of afternoons and today I’ve pushed Mutant to GitHub. It’s wildly experimental and has a lot of rough edges but it appears to work. I was able to find a couple of interesting results when mutation-testing some popular Clojure libraries.

                                          It’s amazing how simple it was to get the basic functionality up and running. Building atop a homoiconic language with dynamic code reloading already feels like cheating. Libraries such as rewrite-clj and tools.namespace came in really handy, too.

                                          Interestingly enough, with some extra bootstrapping Mutant can mutation-test itself.

                                          Back to fighting false positives. Let’s see how far I’ll be able to get it.

                                          1. 5

                                            I have some colleagues that recently started using Emacs (well, Spacemacs), so I’m preparing to do a little presentation on modules/functionality I use on a daily basis. I think I’ll focus on:

                                            • Magit (with the gh-pulls extention)
                                            • Projectile
                                            • Ag / wgrep-ag
                                            • Helm
                                            • Org (partly to tout my very own ox-jira module)

                                            In no way will I try to exhaustively try to cover their features, just doing a tour of some of the features that I use frequently.

                                            Spent a lot of money on painting supplies this weekend, preparing to paint my livingroom ceiling & walls before having someone come in to lay a new carpet. If the painting goes well I’ll do the rest of the house, otherwise I’ll hire someone to do the rest of the rooms. We just bought the house and had hoped to not do anything straight away, but the previous owners have had a succession of dogs and cats and the carpets really must go ASAP: they are vile.

                                            1. 5

                                              Personal:

                                              Starting on a c2 like patterns, processes and techniques wiki. Spent most of the weekend trying to find a register a good domain name and the rest profiling ruby bindings for mecurial.

                                              Work:

                                              Back in the office for the next few months. People took my peripherals off my desk which means OSX requires me to redo all of my settings.

                                              1. 5

                                                I’m writing some test projects in Elixir, planning on using it for my next startup product. I’ve never felt so amazed by a programming language and toolset.

                                                1. 5

                                                  Turning in my resignation today with the startup to lead a platform Eng team. I have mixed feelings as it’s been just two years and overall a very positive time but they’re pretty much done with me except for filling in for the team that I laid off.

                                                  1. 2

                                                    Correctness of decision confirmed.

                                                    CEO and Board are bike-shedding my communication to the rest of the company that I’m leaving and delaying it for a week and doing nothing with my transition plan. COO, with whom I’ve always had a challenging relationship, has not said a word to me directly and is avoiding me to talk directly to my remaining team. I can’t fix this.

                                                  2. 5

                                                    We built a raised garden bed yesterday and now need to fill it with new soil. I need to take the cap off my truck so I can get some dirt in there, then spread it out in the newly built/leveled garden. Then I need to actually transplant the stuff we started in our tiny indoor greenhouse.

                                                    At some point I need to stain my deck, too.

                                                    Oh, at work, I’m doing some pretty mindless updates for target audience shift Nothing challening, but very time consuming. Meh.

                                                    1. 4

                                                      Working on applying the latest Angular 2 changes for ng-book 2. The new Router had some issues, so we’re only now starting to write about it.

                                                      We’re also changing all the chapters to make sure it conforms to the recently released Angular 2 Style Guide and also making sure we cover angular-cli.

                                                      1. 4

                                                        Prepping for Lambda Conf training, talk, and workshop.

                                                        Kicking around structured logging stuff in Haskell at the 9-5. Currently munging MonadLogger stuff into Katip/KatipContext. Starting out with a standard file/stdout writer, but will probably start pushing the structured data to Elasticsearch once things are working. Being able to use type errors as a checklist for fixing things I changed as I go is really nice, especially since the effects are all explicit so even when I change something like a log backend, it squeaks for me.

                                                        We’re thinking of doing a burst of smaller content (blog posts, videos, small books) after the Haskell book is done, any requests?

                                                        1. 1

                                                          any requests?

                                                          Maybe this is dumb, but I still can’t figure out how to modify an array in-place. Also in general, gauging performance of Haskell code is still a complete dark art to me. I would like to write Haskell code with the speed of C++ code, and I just can’t figure out how.

                                                          1. 1

                                                            how to modify an array in-place. Also in general, gauging performance of Haskell code

                                                            Both of these are covered in the Haskell book, same chapter actually.

                                                        2. 4

                                                          Inspired by all of the recent regex posts, I’ve been eyeing polishing up my regex dumper and turning it into a proper regex debugger, with the ability to step through and see which “viable matches” are still in play at a certain point in the string.

                                                          I’ve also been working on Myrddin, adding an OpenBSD port and implementing more of the thread library, putting the minimum spawn+mutex interface on all systems, landing that in the standard library set.

                                                          1. 4

                                                            Cutting a release of my spaceflight programming adventure game: https://gitlab.com/technomancy/bussard

                                                            It started as more of an open-world type game, but I started writing a bit of plot and got carried away, so now it’s turning into more of an adventure game as I go. Imagine Emacs meets Escape Velocity.

                                                            Happy to get feedback from anyone who’s up for a little playtesting. I just added back in a bit of a guided tutorial to step through the features of the ship’s onboard computer, so I’m interested in finding out how well that explains the mechanics to a new player.

                                                            1. 3

                                                              All of my coursework is now complete, so I’m just revising for my exams (my compilers and a biology exams are closest now). I’m taking the opportunity of typing lots of prose & LaTeX (revision notes) to focus on and improve my typing accuracy/speed.

                                                              I recently started playing around with microservices on my personal website, and experienced my first microservice related failure a few days ago; one service had a dependency on Goodreads, which appeared to go down, causing that microservice to respond only after a long timeout, which in turn caused another to respond after a similarly long timeout, which resulted in a very slow/unusable website. Three takeaways from this; skimping on testing is always risky business, even for a low importance personal project (I think integration tests and/or mocking would have caught this), have sensible timeouts and fallback modes for all internal and external services, and finally, don’t rely on the availability of external services, even when they’re probably reliable!

                                                              Outside of CS/programming stuff, I should be travelling home (time dependent) for my sister’s birthday near the end of the week which will be fun :)

                                                              1. 3

                                                                Got interested in Crystal, and decided that it’s the perfect language for game development for these reasons:

                                                                • Fast execution
                                                                • Fast development (Ruby syntax ftw!)
                                                                • Strong-ish typing (with duck typing)
                                                                • Easy to write bindings for C libraries
                                                                • Object oriented (game development is the one place I actually use OO on a regular basis)

                                                                So, I started a project to create a 3D game engine (I also can’t find a single sane 3D game engine - it’s stupid how bloated even the “simple” 2D engines are). Over the last week, I’ve been working on some graphics libraries. OpenGL is a pain to use (by far one of the worst APIs I’ve dealt with), and it’s really difficult to make the simplest things work.

                                                                So far, I’ve written a .3ds parser library, which was supposed to integrate with OpenGL Crystal bindings, but it was getting annoying, dealing with Crystal’s stronger typing and OpenGL’s extremely weak typing. I’m probably going to write all the OpenGL code in C, and just use Crystal to glue it together to other game engine components (i.e. physics, sound, etc).

                                                                If anyone has any recommendations for OpenGL or 3D game engine design books, I’d love to hear about them :)

                                                                1. 2

                                                                  I enjoyed the Graphics Programming Black Book.

                                                                  1. 1

                                                                    Cool I’ll check it out! Thanks :)

                                                                  2. 1

                                                                    You might want to check out the Wavefront OBJ format for static meshes. It’s damned near universal, straightforward to parse, and pretty good.

                                                                    Also, for engine stuff, you might want to check out [http://www.sfml-dev.org/](SFML), which solves all the non-3D stuff for you decently (including scene graphs and text, the latter of which is especially annoying).

                                                                    Writing a 3D engine is an exercise as rewarding as it is frustrating, so good luck!

                                                                    EDIT: addendum…

                                                                    If you really want to make games, I’d suggest against trying to make an engine from scratch to start. The tendency is huge to overdesign and end up with something that is too limited to solve your game’s problems and too baroque to comfortably use.

                                                                    Having an actual game, and organizing the internals towards being modular and reusable, helps create the focus needed to write good tech; otherwise, engine attempts tend to devolve into architectural wankery.

                                                                    1. 2

                                                                      Yeah I’m thinking of writing a parser for obj and ms3d (since it supports skeletal animation).

                                                                      Thanks for pointing out SFML! I’ve used it before for 2D stuff but didn’t realize it could do scenegraph things for 3D as well. Definitely going to make working with OpenGL a lot easier.

                                                                      I wholeheartedly agree with the sentiment that you have to work on a project with the engine otherwise it’s likely you’ll over engineer it. I had an idea for a game the other week and started to develop it but realized that Unity3D is terrible for anything procedural, Unreal is bloat, Torque is awkward and there aren’t a lot of other options out there. So my next course of action is developing an engine while developing the game. The game may never be finished but at least I’ll get an engine out of it right? :)

                                                                      1. 1

                                                                        I meant 2D scenegraph, not 3D–sorry if I wasn’t clear!

                                                                        Here, you might find Assimp useful. They have a whole lot of 3D file format support.

                                                                        1. 1

                                                                          Ohhh, OK that makes more sense. Still, as you mentioned before, SFML will take care of all the 2D related stuff (and I really don’t want to have to bother with text rendering).

                                                                          I looked at Assimp, but thought it was too bloated, and a bit awkward to use. There aren’t many alternatives to it either, so I might as well give it some competition, right? ;)

                                                                          Since I’m the only one using the engine, I’m OK with importing a few limited file formats at the moment - I’ll probably add more support in the future.

                                                                          1. 1

                                                                            It’s not that bad…

                                                                            static int convertScene(const aiScene* _scene, const char* _outFile);
                                                                            int zsmc_convert(int argc, char**argv)
                                                                            {
                                                                                URFP(argc);
                                                                                aiScene* model;     /* scene to load in*/
                                                                                aiLogStream ailog;  /* log for assimp */
                                                                            
                                                                                /* setup logging */
                                                                                ailog = aiGetPredefinedLogStream(aiDefaultLogStream_FILE, "log.txt");
                                                                                aiAttachLogStream(&ailog);
                                                                            
                                                                                /* open the file for reading */
                                                                                /* see http://assimp.sourceforge.net/lib_html/index.html for information on flags */
                                                                                model = (aiScene*) aiImportFile(argv[0],
                                                                                                                aiProcess_CalcTangentSpace |                // Calculate tangents and bitangets.
                                                                                                                aiProcess_Triangulate |                     // Triangulate faces.
                                                                                                                aiProcess_PreTransformVertices |            // Flatten transform hierarchy.
                                                                                                                aiProcess_ImproveCacheLocality |            // Improve triangle grouping.
                                                                                                                aiProcess_RemoveRedundantMaterials |        // Remove unreferenced materials.
                                                                                                                aiProcess_SortByPType |                     // Seperate out lines and points.
                                                                                                                aiProcess_FindDegenerates |                 // Remove degenerate tris.
                                                                                                                aiProcess_FindInvalidData |                 // Remove bad data (normals, etc.).
                                                                                                                aiProcess_GenUVCoords |                     // Cover in-case of spherical mapping.
                                                                                                                aiProcess_TransformUVCoords |               // Makes per-map texture coords
                                                                                                                aiProcess_OptimizeMeshes |                  // Reduce number of draw calls.
                                                                                                                aiProcess_JoinIdenticalVertices);           // Join vertices for indexed rendering.
                                                                                if (model == NULL)
                                                                                {
                                                                                    printf("Unable to import file <%s>!\n", argv[0]);
                                                                                    return ZSMC_FAILURE;
                                                                                }
                                                                            
                                                                                /* do the conversion */
                                                                                convertScene(model, argv[1]);
                                                                            
                                                                                /* cleanup */
                                                                                aiReleaseImport(model);
                                                                                aiDetachAllLogStreams();
                                                                            
                                                                                return ZSMC_FAILURE;
                                                                            }
                                                                            

                                                                            Crawling the returned scene isn’t too bad–the perceived bloat is probably from looking at the Doxygen. :)

                                                                            Email/PM me if you want to talk shop. :) :)

                                                                  3. 3

                                                                    Writing a language that’s essentially a strict, performant Haskell with no GC.

                                                                    1. 3

                                                                      I just quit my previous $dayjob and I have two weeks until I start at the new job (I offered to work out a two week notice period, but they only needed me to finish up some stuff today), so I should be able to get some stuff done on https://neuralobjects.com

                                                                      Last week was a total bust for various reasons, so I’m still basically where I was before - need to finishing getting the subscriptions stuff setup in Stripe, fix the signup wizard to include a section for picking a subscription, and then finish integrating everything so that you can build an environment and start loading data, training models, making predictions, etc.

                                                                      I also need to write a bunch of copy for the website, and finalize the pricing stuff. I also want to plug in Google Analytics on the site.

                                                                      Once all that’s done, I hope to formally launch our beta version and see what kind of response we can drum up. From there it will be a question of iteratively adding features, fixing issues, and working on the marketing and sales process.

                                                                      1. 3

                                                                        Finishing up my first video game with a friend. We spent the weekend implementing Pong in Rust for fun (and watching, or in my case re-watching, Marvel’s Jessica Jones), and are setting our sites on something a little more complicated next. It’s just a for-fun thing, and we are purposefully not setting timetables on anything.

                                                                        Besides that, I’m trying to get back into contributing to the Rust site. I’ve got a collection of FAQ answers to add, and some other small sundry updates to make PRs for. Hopefully the end result is a slightly more useful website for everyone.

                                                                        I’m also reading through Dybvig’s “Three Implementation Models for Scheme” so that I can really get started on implementing Ruse, into which I have put very little time to far.

                                                                        Finally, I’d like to get a list of Rust blogs going, so people have a single place to go to find Rust things they can subscribe to. This is a first step toward getting a quality Rust Planet setup. There’s been some interest so far, but I figure the legwork is valuable even if the Planet doesn’t happen.

                                                                        1. 2

                                                                          Is your friend Xenaphon? :)

                                                                          1. 2

                                                                            That’s Xenophon, with an o.

                                                                            And yes. :D

                                                                            brinker wouldn’t clamp down about Rust, so I thought, hey, why not. Turns out it is easier to get stuff done than I thought, given that I had previously treated Rust like Haskell, which has that stigma of “great theoretical knowledge is required to do things well.” Turns out that isn’t true for Haskell (mostly), and it definitely isn’t true for Rust. SDL bindings were straight-forward, docs were thorough, and the compiler warnings were markedly sensical.

                                                                            1. 1

                                                                              Ha! Totally missed that he’d also posted.

                                                                          2. 3

                                                                            Trying to dig into Hypervisor.framework by hacking on xhyve.

                                                                            Currently, I’ve written a utility (okay, C was overkill, I admit it) to manage xhyve virtual machines.

                                                                            Could have been accomplished with bash scripts, and an existing xhyvectl occurs, but I’m tired of existing projects deterring me from learning by doing my own thing, you know?

                                                                            I was inspired to start working on GUI for xhyve that’ll be much like virt-manager on Linux.

                                                                            1. 3

                                                                              Cool thread OP! I haven’t been working on anything ambitious: just building a simple dashboard for our team that shows some progress bars for incoming releases and visualizes data from Jenkins and Jira (also git & svn in the future). I think the coolest thing about it is that it runs on a raspberry pi attached to a huge screen in our open space. A nice change from debugging Jenkins jobs.

                                                                              It’s a simple Ruby/Sinatra app that runs on one of our servers in a docker container; raspi is used for the sole purpose of displaying it as it’s unnecessary to use a whole computer just for this one task. Communicating both with Jira and Jenkins is done using API-wrappers written in Ruby. The Jira API wrapper is quite limited, though.The whole thing is quite straightforward, although kiosk mode, tab switching and the way Firefox (oops, sorry, Iceweasel) behaves are giving me a slightly harder time.

                                                                              1. 1

                                                                                What did you use for visualisation? Did you build that yourself from scratch?

                                                                                1. 1

                                                                                  Well, the APIs were already there, although I had to modify both of them slightly to limit the amount of API calls, as everything got really slow really quickly:

                                                                                  https://github.com/sumoheavy/jira-ruby https://github.com/arangamani/jenkins_api_client

                                                                                  I used Twitter Bootstrap (I’m not a web dev) and its built-in glyphs, added some colors and flashing here and there to show the overall status of our server build pipeline, what’s failing and what’s running.

                                                                                  We’re migrating away from one of our Jenkins instances so there’s also a progress bar used to show how that’s going.

                                                                                  The Jira view shows how far we are from the next release and how many tickets we still need to close. In case our Team Lead wants me to add anything motivational, it shouldn’t be hard.

                                                                                  I used this instead of some of bootstrap’s progress bars: https://github.com/lugolabs/circles

                                                                                  Every view is opened in Iceweasel as a separate tab and Iceweasel just runs in kiosk mode, regularly switching between the tabs.

                                                                                  Like I mentioned, nothing really ambitious. :)

                                                                              2. 2

                                                                                I’m trying to finish a Matlab toolbox which can recognize paintings in a video taken by eye tracking glasses and then transform/map the eye tracking data to a higher resolution image. I’ll be off this project soon because its part of a research lab I work in at RIT, and I’ll be graduating in a few days.

                                                                                After that I step in to the bright new open world….. of unemployment. But it’s not so bad as it’ll give me time to do some google foobar problems and help my team more with this kaggle problem

                                                                                1. 2

                                                                                  Working on an article based off one of the contribution of my M.Sc. thesis and doing a presentation on Rust on Tuesday to my lab mates. In addition, I’m slow reading FOCS during my ride on the bus.

                                                                                  1. 2

                                                                                    I decided on friday to start trying to make the transition into vim from sublime. While I’m doing that, I’ll also be refactoring an app that I built to learn ember into CoffeeScript, Emblem, and Stylus. I’ll also be working on a small presentation about something I’m proud of, which my topic will be the hackathon I helped host.

                                                                                    1. 2

                                                                                      Work

                                                                                      • Building out lots of new data-heavy pages
                                                                                      • Extracting reusable components from those pages for use elsewhere
                                                                                      • Found my first legit use-case for TypeScript’s abstract classes, so will be using that a lot. :-)

                                                                                      Personal

                                                                                      • Prepping for a cross-country move with my wife and two toddlers over Memorial Day weekend
                                                                                      • Jumping back into Trello as a way of organizing the tasks for my writing projects
                                                                                      • Revising a mildly creepy fairy tale story and preparing to publish it as a free (short) ebook. See cover.
                                                                                      1. 2

                                                                                        Owing to client mandate, touching node.js and mongodb on purpose for the first time. A very interesting and eye-opening learning experience for a erlang-and-SQL person.

                                                                                        1. 2

                                                                                          I’ll be working in a status page tool for single servers, mostly filtering free, ps, df, etc output to html, I already have the basic template, https://github.com/chilicuil/learn/blob/master/sh/tools/staticus , ideas and contributions welcome

                                                                                          1. 2

                                                                                            Calculating expenses given that I have to move out of my friend’s collo. Don’t know if to go AWS or DigitalOcean or a Mix of both. The not so bad part is that I already have everything in provisioning code.

                                                                                            1. 1

                                                                                              Might be worth taking a look at vultr (I found I ended up preferring it over DO). They have a couple of cheap options – I currently use one of the little $5/mo instances (running FreeBSD) over there.

                                                                                              1. 1

                                                                                                Thanks for the suggestion, I started looking into vultr today.

                                                                                            2. 2

                                                                                              I’m working on adding better user feedback to a web application that validates genetic sequence data that people submit to an enormous database/archive. We run 4 or 5 different processes on the submitted sequences, but up until now it’s just said “validating…”. At least now we will be able to give them a rough idea of what’s going on.

                                                                                              Another thing I’ll touch is that we get error notifications when our application throws an error, but it appears that sometimes the front-end server can’t even talk to the application server? I’m going to try to set up notifications for this worrying event.

                                                                                              Finally, I’m going to work on validating a new kind of gene sequence data that we’ll be accepting soon. This is an opportunity to try to make the errors really descriptive and useful.

                                                                                              1. 2

                                                                                                Gah did Monday just happen? Monday happened, pretty much. Still hacking on OCaml a bit, hoping to have integration w/ some other components by Wednesday. Thursday off to Moogfest till Sunday… aka not working. :)

                                                                                                1. 2

                                                                                                  Work: fun with C++ and Swift.

                                                                                                  Personal: I would like to exercise my skills by building a simple phpBB-esque web forum using Clojure. I’m under no illusions that anyone besides me will ever use it, but maybe it’ll be good practice for bigger and better things.

                                                                                                  1. 2

                                                                                                    This week I’m working on a Stanford Deep Learning course (cs231n). I had a lot of trouble with neural nets for some reason during my actual coursework. Not sure why, but they just wouldn’t click for me.

                                                                                                    Now I’m determined to get them down by starting from scratch. I’m already done with assignment 1 of 3 and on my way through the others. It has been really fun and rewarding. It’s definitely helping, though I might go back through the assignments one more time to make sure I’m doing things right.