1. 8

    $work:

    • finishing a symbolic execution engine for a client’s custom programming language; need to add more primitives, and add my computation traces to an actual SMT.
    • assessment work
    • writing some templates for our findings, some sales engineering and client meetings
    • Talk on blockchain security

    !$work:

    • finally finishing pattern matching in carML
    • adding some more threat hunting items to wolf-lord
    1. 2

      How did your client end up with a custom programming language?

      1. 2

        believe it or not, it’s surprisingly common in the blockchain space, esp wrt validator languages for proof of authority, as well as for “novel” smart contract languages.

    1. 5

      Sounds like decent stuff but I do find it amusing that some really basic things are getting big headlines: “Notepad Supports Linux Line Endings” and “Copy/Paste Arrives for Linux/WSL Consoles”.

      I’m hoping the console improvements are actually useful since the worst part about the WSL (aside from I/O performance) are the really poor consoles in Windows, including current 3rd party offerings.

      1. 2

        I actually did get excited about a couple of those. Which I guess just illustrates how low the bar was to begin with!

        1. 1

          including current 3rd party offerings

          ConEmu is pretty good. The only problem I’ve noticed is that it likes to put the cursor one line above (than the actual prompt line) in my zsh prompt :D

          1. 3

            ConEmu is an ok console, but it’s a poor Terminal Emulator, in my experience. (In part due to lag and some minor issues when processing VT-100 codes).

            If you don’t use Vim or co, it seems to do quite servicably

            1. 1

              I used it for neovim in tmux, haven’t noticed any problems (though it’s not very fast indeed)

            2.  

              UPD: another issue: in ConEmu, paste doesn’t work inside tmux. Switched to wsltty (mintty) :)

            3. 1

              The user, of course doesn’t (shouldn’t) care about how hard something was to implement, but the people writing these release notes are biased by that sometimes, it’s only normal. The LF change must’ve been a ton of work. Most of it probably not coding, but still work.

              I don’t know it for a fact, it’s just speculation based on experience. By the way, I work at Microsoft though nowhere near notepad.exe.

              1. 1

                Yup. it’s amusing, but sadly it’s a Thing. I adopted WSL here at work because for some kinds of access it’s Windows or the hiighway and WSL is a LOT better than being stuck in CMD.EXE/ Powershell.

                Thing is the cut&past experience at least before these changes was AWFUL. I’m embarrassed to admit that our workflow involves a LOT of cut&paste, and the experience was abysmal.

                1. 1

                  The Notepad update was quite interesting considering it took 33 years for that basic feature to finally be there. No more opening config files and seeing nothing but a very long single line.

                1. 8

                  My two cents: find a way to make remote work maintainable for you.

                  1. 5

                    Agreed.

                    I’ve looked at coworking spaces, but finaicially it’s not a possibility right now. The company also will not reimburse for it.

                    They might change their tune if they knew that not having a coworking space is making you consider leaving the company. If you can make it clear that this is a requirement for your job and the alternative is hiring someone else, then in most cases they will pay for it.

                    1. 1

                      I’ve never really considered this way of thinking.

                      I would assume most companies would just view you as dead weight or an extra cost (why give this remote worker money to co-work when I am saving money by not having them in the office)

                      1. 1

                        It depends on how replaceable you are of course, but the cost of training a replacement for many folks who write and operate software is very high, so people are incentivized to avoid that kind of disruption.

                        1. 1

                          I agree completely! I suppose I’m just jaded from previous jobs where most people had left until it was only contractors left (no full time employees left)

                    2. 3

                      is that because you think the startup opportunity is too good to walk away from? or remote work is too good to walk away from? or a combo?

                      1. 10

                        I’m not /u/zpojqwfejwfhiunz, but I agree with him on this.

                        Being remote gives you a lot of flexibilty, and there are quite a few ways to work outside of the house that don’t have to involve being in a co-working space, such as coffee shops or parks. This may not work as well on meeting days, but it is worth investigating. Also, if you’ve not been taking advantage of working remotely, maybe start trying to get creative about flexing those privileges.

                        Does your current company pay for you to visit them once in a while? Are you living with anyone? Can you have pets in your current housing? Do you have regular social contact with people that will help you grow? I know for me, working remote allowed me to move closer to family and friends I hadn’t seen in a long time, which did far more to attack the problem of lonliness than working in an office did. I moved 1300 miles to pull that off. Perhaps that sort of move might make sense for you?

                        I would attack the lonliness angle from outside of work before I would switch to working at a local company, and I’d do a lot of research on the local company before I switched. Maybe make a friend or acquaintance there via a shared social gathering, or the like, and get a sense of what the company politics are like, or if people there like the company culture. It sounds like you have great co-workers, that’s not something to be set aside lightly.

                        In other words, take advantage of working remotely to be able to surround yourself with people that will build you up. If you can’t figure out a way to make that work (and you have been working remotely for 4 years, so that seems quite possible), then I’d consider working in an office, but not before.

                        1. 9

                          such as coffee shops or parks

                          …and libraries!

                          Libraries are so undervalued it’s unreal. I’ve been working remotely for the past 4/5 years, and while I do sometimes work from cafés, there is an implicit social pressure to keep buying things to justify taking up a table. No such problem with a library. If you’re in a big city, these can be incredibly beautiful buildings too.

                          1. 3

                            Thats such an amazing idea. If I go remote this would be my main place to work at. Its such a nice building but I rarely have a reason to go there.

                            1. 3

                              Thats such an amazing idea. If I go remote this would be my main place to work at. Its such a nice building but I rarely have a reason to go there.

                              It’s cool, I’ve tried it - only downside is private rooms for calls are not always around.

                          2. 4

                            thanks for the well thought out reply!

                            • certainly going to attempt working outside a bit more
                            • social contact with others seems to be a common thread, not currently doing much of that
                            • approaching the local company from the inside makes a lot of sense
                            1. 3

                              Yeah, when you’re working remotely, being able to fill your social needs outside of work is key.

                              In some ways, you could view it as an advantage of working remote. After all, you don’t have a commute, that frees up some of that time to be spent elsewhere. Be intentional about spending it elsewhere.

                              1. 4

                                Along these lines, I personally find that limiting media consumption is critical. It’s better to force yourself to be bored than to always have the TV on or be staring at a screen. That boredom will force you to find other hobbies. Ideally, you’d find at least one athletic hobby, and at least one social hobby.

                      1. 2

                        At work, I’m working on tickets/maintenace this week, trying to get caught up as tickets have been piling up a little bit.

                        At home, trying to catch up on cleaning and making my office/workspace set up for doing both personal and professional work, so that I can easily spend some time on side-projects without a lot of hassle. Once I get the office set up better, I plan on working on various small web-toys/utilities in F#/.NET Core/SQLite. I have mostly ideas here, not actual implementations, more details to come as they are built out.

                        I’ve also started the Strong Lifts weight training program, trying to get stronger and/or build up various types of body strength.

                        1. 7

                          I think it’s worth also talking about who has been a role model in the past, at least it is for me.

                          Right now, I’d say Dan Luu, James Hague, John Ousterhout, and Guy Steele are my bigger influences. Dan Luu writes well considered essays that examine many assumptions in the software industry, and he’s. James Hauge because in all of his writing, there’s a beating heart of practicality that I value. John Ousterhout wrote both TCL and A Philosophy of Software Design, both of which are very interesting, and which I’ve spent some side-time with. Guy Steele. because like him, I’d like to be a bit of programming polyglot if I have anything to say about it.

                          Johnathan Blow is probably the most intriguing figure right now, but I don’t know that I want to develop towards where he is right now. I do know that I have a bit of a sense of software minimalism that lines up with his, if only a little. I am a lot less strict about memory usage than he is, but where he’s going with Jai intrigues me.

                          Honorable mention goes to the writers at ithare, Jon Skeet, and the Albahari brothers (authors of C# in a Nutshell). All of them taught me a fair amount about some of the more subtle bits of computing (how to think about concurrency, threading, and the edges of what is possible in C#), and that knowledge has been useful in quite a few occasions.

                          In the past, I considered Jeff Atwood and Scott Hanselman role models, but I consider them less so these days, mostly because I’ve switched gears from the sort of tech lite content that Scott tends to do, and Jeff Atwood hasn’t been writing on his blog much, and from a tech perspective, he zagged (going to Ruby on Rails with Discord ) when I zigged (learning Go). Neither of them quite represents what I’m looking for as a technologist at the moment.

                          1. 3

                            Greenshades is hiring across quite a few positions. We do a lot of tax and payroll related software. Work at Greenshades in typically C#, SQL Server, or Angular. We’re a remote friendly company (I have coworkers in Texas, Missouri, and Florida), and it’s the best workplace I’ve been in.

                            1. 2

                              I’m planning on spending some time learning how to build websites in F#/.NET, as a means of trying something other than Go that seems to be deployable across a decent number of platforms (not as many as Go, ARM support seems to still be WIP), but so that I when I’m working on my personal wiki software, I’ll be able to use my software both on my personal linux server and on my Windows work laptop.

                              Other than that, going to enjoy some downtime and catching up around the house.

                              1. 2

                                I don’t have anything to intelligently contribute except that I’m super excited to see this. J for years has been top of my ‘fuck it, I’m just gonna move to the Andes and learn a bunch of programming languages’ list. I’ve never really internalized its control flows and idioms. And I’ve never really made the conceptual leap from how I would use it to do statisticy stuff to how I would use it to build, like, business logic and servers and stuff. But even if mastery meant it became a really powerful desk calculator I still want to conquer it.

                                Also, love the pun.

                                1. 2

                                  I’m a few chapters in and it’s fantastic. The eight character rule and the f~g construct alone would be worth paying money for!

                                  1. 3

                                    What is the eight character rule?

                                    1. 1

                                      I was curious too. I’m guessing he’s referring to the preamble?

                                      As a broad rule, once ‘pure’ lines exceed around seven or eight characters, it is usually better to consider defining a new named verb or adverb, if necessary building up a chain of mixed new names and J primitives to achieve a final overall objective.

                                      1. 2

                                        Yup, that’s the one. I’m not sure whether I should be thinking of it as raw characters or primitives, but either way it’s a useful heuristic.

                                1. 4

                                  This sounds like an amazing concept, a good way to get to know people, and/or to be helpful to other programmers.

                                  Obviously, it has a limit, but even so.

                                  1. 10

                                    Once I was a big fan of Haskell: expressiveness, safety, many new, fresh and exciting concepts, etc. Recently I started learning Go and I must admit how Perl-y Haskell often feels and how many ways to do the same thing it provides.

                                    That got me thinking about a functional equivalent of Go, a small, simple, consistent, no-bullshit, one-way-to-do-it language, and hey, I know such a language exactly, it’s Erlang! I wish Erlang tooling was better and it had more libraries though.

                                    1. 8

                                      I’d like to know what improvements you’d like to see in the tooling? Always looking for ways to help improve things.

                                      1. 2

                                        Speaking for myself:

                                        I know that in my (limited) experience with Erlang, the process of going from “I have code running in a repository via make run” to “I have a executable I can run and walk away from” is a lot more complicated than it is in Go. Erlang is solving harder problems than Go in this space, to be sure. I will say that I have been using Erlang.mk, (mostly for speed purposes), but I’ve yet to try rebar3, it might be easier to debug what’s going on with some of the commands.

                                        I should probably get more familiar with escripts, but a version of VM of erlang that was scaled down or tuned for startup time (so that it’d be easy to write either executables with it, or sheban scripts that don’t take a long time to start up) is something I’d be interested in. That’s a super big job though, unless it’s already been done.

                                        As far as libraries go, I know that finding a good standalone Markdown parser is a definite gap.

                                        1. 1

                                          I had a hard time getting editor tools working nicely. I’m using emacs; would you mind sharing what you’re using?

                                          1. 2

                                            I’m personally just using vim with syntax highlighting. I’m unfortunately not familiar with emacs configs in that area. Disterl is a name I’ve heard plenty of times, but I can’t offer much in terms of analysis. https://github.com/erlang/sourcer might work for more generic needs though.

                                        2. 3

                                          What about SML or one of its concurrency-supporting variants?

                                          1. 3

                                            SML is much less popular than Erlang, and there are far fewer libraries for it.

                                            1. 1

                                              True. I was just talking language itself. Ocaml would be the alternative in ML family if aiming for practical. It’s not simple, though. So, back to Erlang for the win if it’s as simple as they say.

                                            2. 1

                                              I still need to take a look at it.

                                              What I’ve read about it sounds quite appealing theoretically (a full formal definition of the language!), but it does not look like a very practical language.

                                          1. 3

                                            How much do you want to be a better developer? What are you willing to give up in pursuit of this?

                                            To start, you need to be able to look objectively at how you work and ask yourself, “is this really the best way to be attacking this problem?”

                                            You cannot look at what everyone else is doing, unless you have excellent coworkers: the accepted practices of the industry are staggeringly mediocre at best. From a code quality perspective, people routinely defend massive coupling, poor cohesion, and balancing critical business logic precariously atop mountains of dependencies in the name of pragmatism. They compromise on quality, skip writing tests, and then brag about the fact that they shipped code without doing those things, perhaps as a way to signal the fact that they’re willing to subordinate their own pursuit of quality in the name of the almighty Business.

                                            1. 1

                                              How much do you want to be a better developer?

                                              I have a really hard time focusing on code and liking coding, and I seriously wonder whether becoming accomplished within my team would cure me of both. In short: If it means I can finally enjoy my job, I would like it very much. 🙂

                                              What are you willing to give up in pursuit of this?

                                              Answering this personally, I feel like I’ve already sacrificed too much. Working 60 hours/week plus 24/7 on-call 1 week/month doesn’t give me a whole lot of extra time to become a better engineer without sacrificing hobbies or relationships. Plus, I’m studying at college to finish my degree at the same time.

                                              1. 6

                                                I just came to this. Seriously, 60 hours a week? Like, 12 hours a day Mon-Fri? Sustained over time? I honestly don’t know how anyone expects anything other than total crap out of you. I mean, sure, if 6 hours of that are surfing the web, then fine, but if so, why not just do 6 a day/30 a week of good work and do the web surfing at home? But if not, if that’s actual concerted effort, then it’s just not possible to maintain that level of attention and concentration and come up with anything of any kind of quality worth having, and you shouldn’t be surprised you’re finding it hard to be productive. I’ve done that kind of hours in stints, and while it’s manageable for a short period if there’s a very specific reason, longer term it’s just not sustainable. And I’m kind of a robot. Let alone 1 week out of 4 on call 24/7, on top of all that!? Seriously, that’s insane. Anyone who tells you otherwise is just lying in order to further their agenda. Seriously. Fuck ‘em. Quit. Find something else. This is literally just a recipe for burning out and destroying any confidence you have left (as you’re discovering). Fuck it. Nothing’s worth that. And sure, maybe other people are sticking with it and appearing fine, but … that’s their lookout. Screw that kind of peer pressure. Not worth it. Walk out. Work in Chick-Fil-A.

                                                1. 2

                                                  Admittedly, I factored in commuting into that number. But yes, I leave home at 8am and get back home around 8pm. My actual “at work” hours are from 9am to 7pm. I clicked through to your website and see you’re in the UK—it’s (sadly) not terribly uncommon for these kinds of work hours to happen in the US, and especially in my area of the US (SF).

                                                  Chick-Fil-A would not even come close to paying the rent, is the thing :)

                                                  1. 4

                                                    Well I lived in the US for 4+ years, including 2 in NY (with its nuts work culture) and a several-month stint in SF, so I do have a feel for it. And sure, Chick-Fil-A was an overstatement ;-) - but seriously man, there’s an agenda there of people telling you that you need to work those kind of hours, and it’s not even a smart agenda, because it genuinely does end up with less valuable output. Even 10 hours straight is too much, even with a 1hr lunch break. (Especially with the whole 10-days-a-year vacation thing, c’mon, seriously.) I mean, obviously, doing a few hours extra here and there because you’re into the thing you’re doing, or because there’s a deadline looming, sure, no biggie - but as a sustained timing, with that as an unspoken expectation (especially if it’s the unspoken kind), it’s just not worth it, and I think you should find somewhere else. But of course I understand the rent issue. It’s a fucker. Just worth looking into finding somewhere that is more realistic about what actually gets good results and ends up leaving people feeling like they’re valuable.

                                                2. 5

                                                  That context changes things significantly. Balancing 60 hours a week (plus on-call obligations) with getting your degree, relationships, and taking yourself is a LOT. Do you want to be doing all of that? If the answer is no, I’m not sure if getting better at coding is going to fix this.

                                                  I have a really hard time focusing on code and liking coding

                                                  I would sit with this thought for a long while, however uncomfortable. If your discomfort comes from wanting to be better, then that’s a different thing entirely from, “I don’t want to be doing this type of work.”

                                                  I feel like I’ve already sacrificed too much

                                                  I just want to call this out to affirm it.

                                                  1. 2

                                                    Thanks for your response. I really do want to get better, because I need my job to pay for my degree and I get a lot of personal satisfaction around being good at what I do, even if my time as a developer is temporary.

                                                    For context, I only take one class a semester which equates to about 9–10 hours/week.

                                                    I would sit with this thought for a long while, however uncomfortable. If your discomfort comes from wanting to be better, then that’s a different thing entirely from, “I don’t want to be doing this type of work.”

                                                    It IS uncomfortable 🙂. I’ve spent five years in this field and the idea of leaving is hard because the money is better than a lot of other professions. I took a career aptitude test recently and I got “Author” and “Astronomer”—both unrealistic careers IMO.

                                                    The worst part though, by far, is that I used to love coding. If I could unlock it again it would solve a lot of problems for me.

                                                    1. 3

                                                      If you are motivated intrinsically by delivering quality software and meeting the needs of your users, you have some things you can chase down. Those two things are what sustain me working in a business software development environment. I try to ensure that at the end of the day I worked as best I could to my standards. Nobody can take that away from me. When I use practices such as breaking features into discrete modules, TDD, good domain modeling, and functional core/imperative shell, I move about as fast as I possibly can while feeling confident in the code I ship.

                                                      On the other hand, if a shop wants me to shove all my code into Rails controllers and clean it up later, then I’m not a good fit for it. Because of this, I actively avoid certain ecosystems because they encourage this behavior.

                                                      I hope this is helpful. Navigating career uncertainty is difficult and I wish you the best. Please let me know if I can be of further assistance.

                                                      1. 3

                                                        This has been extremely helpful—thanks so much for your response. 🙂

                                                      2. 2

                                                        So what was it about coding that you loved? And what is it about coding today that you don’t love? It may be that you are not doing the type of coding you love.

                                                    2. 3

                                                      This information is very relevant to the question, and changes the dynamic a lot.

                                                      How many of these situations apply to your co-workers?

                                                      If you’re the only person who is also going to college, then you’re going to be slower than your co-workers, they have less to worry about.

                                                      I’d also look into ways that you can spend less than 60 hours at your job, unless there are other, good reasons to do so. That might involve time boxing things at work more, changing your estimates, and/or conversations with co-workers who aren’t on your team, or scheduling more aggressively for yourself.

                                                      Without crazy drive combined with mixing up work so that it’s not always crazy hard stuff, and oftentimes even with both of these, working much over 40 hours a week will slow you down in the long run.

                                                      I would spend some time thinking about why focus is difficult. Is it always difficult? Have there been situations where it isn’t, and if it wasn’t, do you remember why? What got you into software development in the first place?

                                                      1. 2

                                                        How many of these situations apply to your co-workers?

                                                        Haha, that would be none of them. I find most people in our field are confused why I’m “wasting my money.” The reason I give them is that I’m future-proofing myself against an economic recession.

                                                        I’d also look into ways that you can spend less than 60 hours at your job, unless there are other, good reasons to do so.

                                                        This part is non-negotiable unfortunately—a cruel reality of a startup needing its next round of funding in addition to the more “performative” aspects of our field (leave after your manager, look busy, etc.).

                                                        I would spend some time thinking about why focus is difficult. Is it always difficult? Have there been situations where it isn’t, and if it wasn’t, do you remember why? What got you into software development in the first place?

                                                        It wasn’t always difficult. I for the first two years of my career I couldn’t stop thinking about coding. For some reason, once I moved to the SF Bay Area (three years ago) something in my head switched (whether it was the new job or new location, I am unsure) and now find coding pretty grueling.

                                                        1. 3

                                                          So, some thoughts I have, with a huge caveat that this advice may not apply 100%.

                                                          Big picture thoughts:

                                                          Well, I would consider a job or a location change long before I’d consider leaving the field, if only because being in this field gives you a lot of options for both. The working environment can change a lot about how things go.

                                                          I’ve worked remotely and on-site and your manager and co-workers can make a huge difference in how your day-to-day goes. Do you have co-workers you can trust to try to work through these issues with? If the nature of the startup is such that there isn’t enough time to assess things at a deeper level than “I’m slower than my teammates” with your co-workers? A startup isn’t always the best place to try to grow skills as a developer, especially if you’re not motivated by the company’s vision, or how things are run. If you don’t have much scope to change either at the company, it might be worth considering finding either a different team, or a different company to work for. That’s not a move I’d take lightly, but it sounds like there’s a decent amount of disconnect between you and your job at the moment, and that it’s been going for a while long-lasting disconnect. I would especially consider this if you’re not in an organization where you have someone to help mentor/challenge you through the issues that might be affecting your productivity. A change of scenery can help a lot of things.

                                                          Tactical Thoughts: If this is a long-term issue, it’s not going to resolve itself overnight. Some thoughts for the here and now (YMMV, I don’t know what all of this you’ve already tried) If you’re stuck with 60-hour work weeks, I’d make double sure that you’re also doing things to take care of your body, like getting short bursts of exercise (anything to get your heart rate up a bit), and/or getting away from your screen at least once every two hours. I’ve found that taking breaks is a good way to break cycles of distraction. Try to set up boundaries so that you have blocked out times (when not on call) of not having to think about work.

                                                          Also, try mixing things up at work as far as approach goes. That might be problem solving on paper, it might be talking through things out loud, it might be tracking where you spend your time, it might be shifting the hours you actually try to do deep work vs lighter work, either so that you’re not distracted by co-workers, or so that. I also like to mix up the keyboard and mouse I use, personally, so avoid RSI from always being in the same posture. YMMV.

                                                          Finally, if you can, ship something small, but meaningful, as a side project outside of work, and do it to the utmost best of your ability. It could be a single static page with a bit of Javascript that helps automate a small part of your day, or a desktop application that does something you need done. Not so that you’re accomplished, but so that you have a reminder that development doesn’t have to be done the way it is at your current job. If not, just remember that there are lots of other opportunities out there.

                                                  1. 3

                                                    I feel like I need an explainsmbc-comics.com for this one. I read smbc almost daily, but this strip struck me as flat.

                                                    1. 4

                                                      Same. And the 20 votes this has I believe adds further evidence to my “lobsters find things interesting and will upvote them even if it isn’t on-topic for the site, so feedback is helpful” position.

                                                      1. 1

                                                        It’s not entirely of-topic, is it? I mean, if humour has no place here then you’d be correct but I figured the satire tag was appropriate. Am I wrong?

                                                        1. 1

                                                          I suppose we’d need to know what exactly it’s a satire of.

                                                          IMO it’s funny in its own right, but neither satire nor on-topic.

                                                      2. 2

                                                        Huh. The punch line hinged on the subtle distinction b/w else (common in programming languages) & otherwise (common in spoken parlance).

                                                        1. 2

                                                          I also found it funny that it was implied that Jeff Atwood (unless there’s an ongoing Atwood character) was one of the remaining uncaught programmers.

                                                          There’s a lot of subtle reference in it.

                                                      1. 4

                                                        At work, I’m working through a maintenance backlog this week, and/or keeping up with tickets/issues coming in. I’ll also be refocusing on studying for an upcoming certification.

                                                        Outside of work, I’ll be working on clearing up some space around the house by organizing some things a bit better, and I’ll be working on learning how to use F# and .NET Core to build tools and websites on Linux.

                                                        I’d also be interested in finding out if F#/.NET has a way to target the termux “Linux shell on Android” environment, without going through the pain that is building a mobile application using Android Studio.

                                                        1. 6

                                                          I’ll be playing Pathfinder and spending some time with my brother, who recently got back in town.

                                                          If I can find the time, I’ll be trying to clean up a version of bashmarks so that it works well on systems with spaces in their file names, and/or building a website in F#/.NET Core/Giraffe. I’m considering either re-writing my erlang wiki in F#, or writing the a random link redirector in F#.

                                                          I’m mostly looking to move on from Erlang at the moment because the good properties about it (the strong distribued nature, and the debug tooling) are currently offset by fiddly set of tooling I’ve been using. My wiki instances are still running behind a set of tmux panes, and I’m unsure I want to take the limited free time I have to work through building Proper Erlang Releases to rectify that. I like the idea of being able to make my wiki software work on both Windows and Linux, and be super simple to get up and running. It’s looking like .NET core is going to have some interesting stories there, and I’ve been needing an excuse to get into F# for a while now. I’ve tried using it before, but I’ve yet to ship anything with it, and as the .NET Core story gets better, my interest has been going up.

                                                          1. 1

                                                            I will fully admit that other than always having a clean git bisect, I don’t quite understand the merits/differences of this workflow at the moment.

                                                            1. 3

                                                              For one, you can use the version control history as a piece of documentation, where each change comes with a useful commit message, and does only one thing.

                                                              1. 2

                                                                does only one thing

                                                                This also makes operations such as rebasing and cherry-picking much easier.

                                                            1. 4

                                                              Initial thought: rust would be an awkard choice for a web app. I missed the first part, so I went back.

                                                              I decided to use yew for the client side of the application. Yew is a modern Rust framework inspired by Elm, Angular and ReactJS for creating multi-threaded frontend apps with WebAssembly (Wasm). The project is under highly active development and there are not that many stable releases yet.

                                                              And then goes on to use capn proto and whatnot. Which seems like starting on “hurt me plenty” difficulty. Maybe try “I’m too young to die” for the first play through?

                                                              Which brings us to this article. And hey, the hard stuff was really hard.

                                                              Alas, I’m not really sure I’ve learned much about using rust (as opposed to lua, let’s say, my current preference) for web apps. I’ve written a few apps in lua, but they just run a luajit process on the server dishing out html. I didn’t bottle up luajit into wasm or anything like that.

                                                              1. 3

                                                                What’s your setup for using lua for web apps?

                                                                1. 3

                                                                  There’s not much to it. My own code to parse and route requests. Pattern match on URL and call a function. The heavy lifting is mostly the nginx proxy.

                                                                  I looked at Kepler, but it was weird and complicated. I think there are more “micro frameworks” now that didn’t exist when I started. I started with a few single file libraries for stuff like json, but found I didn’t need most of them.

                                                                  1. 1

                                                                    The heavy lifting is mostly the nginx proxy.

                                                                    Are you using the openresty nginx thing?

                                                                    1. 2

                                                                      Oh, no, that didn’t exist. Just the reverse proxy.

                                                              1. 5

                                                                I work as a software developer, and have these things that I consider hobbies at the moment, but which aren’t always the best at getting me away from the screen:

                                                                Writing programs using tools that I do not use at work, and shipping said programs. I don’t do it every day, or even necessarily every week, but there have been times where doing something that’s mostly alien to what I do at work has been a nice way to remind me what other types of programming. For quite a few years, Go was my langauge of choice for this, nowadays I’ve tried out Erlang, and Lua, but I may be trying out F#. (I work in C# and Javascript)

                                                                Video game design. This covers a lot of angles, from watching youtubers like Mark Brown, Extra Credits, and various GDC talks (which can be a gold mine), to participating in a few game jams, to playing various indie games to get a small sense of what’s out there.

                                                                Computing history: I like keeping up with websites like The Digital Antiquarian, or books like Coders at Work, and Windows 95 Unleashed, as well as learning tools like awk and sed, and/or reading about things like COBOL and MUMPS. Lobsters is often a nice way to find information on things like this. Generally, I like understanding where computing has come from as a whole, and the history of things like the Commodore 64, or the PDP-11 can be fascinating. You can also research this sort of topic at a library, if you want to get away from a screen.

                                                                Things that I could consider minor hobbies that are good at getting me away from the screen:

                                                                Reading in general, taking long walks, spending time with friends and family, table top gaming (of both the role playing and more general types), and/or finding new places to eat out with friends.

                                                                1. 2

                                                                  I’m not working on writing a command to parse dnote files an spit back the items added by date.

                                                                  I have a lot of ideas on hold, some can be found at my wiki

                                                                  I’m also not scanning over the fresh crop of GDC videos.

                                                                  I don’t know how much of this I should be doing, but it’s stuff that sticks on my mind

                                                                  1. 2

                                                                    I started pretty much exactly the same thing about 5 months ago, starting on kb-wiki, putting my public instance at idea.junglecoder.com. It’s something I created mostly for myself, and it was born out of a list of ideas I’d started collecting onto a server in a text file. It’s a place where I currently keep a fair amount of personal ideas that I don’t mind others reading about.

                                                                    1. 9

                                                                      I’m surprised to see that Go rated only 3/5 for simplicity. It’s far simpler than modern Java! Just consider how few concepts it has and that they’re all orthogonal to each other so you need not learn about those you don’t use.

                                                                      1. 9

                                                                        And bus factor for Go should be 5/5. It’s used a bit everywhere at Google and by all kind of large projects outside, so it’s there to stay for many, many years.

                                                                        1. 10

                                                                          A corporate google mandate could also kill the whole project at any time if they invented something much better. It may not die immediately, but I’m pretty sure they could kill it far more easily than C could be killed. One problem is a scale of 1-5 doesn’t have good resolution :)

                                                                          1. 6

                                                                            I don’t see how a corporate Google mandate would kill off Go. I could see it removing Go’s google contributions, in the worst case, but the code is open source, and there are a lot of outside companies that use Go, and several of them have implemented other languages in it (at least 2 separate Lua implementations and 1 Lisp come to mind). and Go gets a decent amount of outside developers working on it.

                                                                            At this point, Go’s use outside of Google is enough to keep it going should Google suddenly lose interest in it. But given that Go is used a lot inside Google, to the point that there exists a cross compiler from Python to Go, a sudden loss of interest from Google would be a very unlikely event. Dart, a language that is far less popular, is still quite alive and kicking at Google, on the basis of their Ads team using it, even though it has had a much harder time getting adopted outside of Google.

                                                                            I don’t think Go is going anywhere soon. I’d personally give it a 4.5/5, if C is the 5/5.

                                                                            1. 1

                                                                              I very much agree. I am making plans on how to leave the Google ecosystem for emails. Last week they killed Google Inbox (announced plans to do so very soon), and I loved that product very much. I wouldn’t be surprised if Gmail gets killed too. And the same could happen to Go language.

                                                                              Inbox wasn’t a less-popular product by any means, and still it got killed.

                                                                          2. 1

                                                                            I may be accidentally judging on the fact that my old job used an outdated version of java to support the old code. Modern java must be a different story for some things.