1. 5

    I’ve always told my kids to find a job like I have - something I would do for free (shhh, but don’t tell my boss). If / when I finally retire, I’ll just code my way into the grave. IOW, I love it!

    1. 1

      Tells your boss. 😂

      That’s awesome to hear. How did you learn to like it or did it come naturally?

      1. 2

        Just fell into it and learned it from the seat of my pants. Took a couple programming courses in college but it didn’t click until a friend hired me basically because I knew what a keyboard looked like (those were desperate days!). A co-worker and I dove into it and I’ve never come out.

    1. 2

      Work: Think I may finally have finished my re-write of our iOS capture code, to split off the UI from the back end. Took a bit - I’m not really happy working in Objective C++, that’s for sure. Now for some more cleanup and get out of the iOS development business again.

      Home: Finish cleaning up my various web sites and the providers. I am slowly consolidating on name server provider, DNS provider and VM provider. Maybe get some of the web sites updated even!

      1. 2

        One question I had about Zig that I can’t seem to find an answer to in an admittedly cursory look is what does it have for multithreading / parallel processing? I won’t look at a new language that doesn’t have thread support builtin.

        1. 5

          this is in process, see https://github.com/ziglang/zig/issues/174 for an overview and links to relevant issues.

          Coroutines have already landed on master: https://github.com/ziglang/zig/issues/727

          1. 2

            I won’t look at a new language that doesn’t have thread support builtin.

            Funnily enough, I’d say that I wouldn’t get excited at a new language that does have thread support builtin.

            My reasoning is that the operating system should be enough for scheduling.

            Now, I know I’m probably biased by my work on Jehanne’s kernel and the Plan 9 style, so I’m sincerely curious about your opinion.

            Why do you want more schedulers to integrate instead of using just the OS one?

            1. 1

              Threads are OS-scheduled too; they’re a kernel-provided parallelism API on both POSIXey systems and Windows. Maybe you’re thinking of green threads or threadlets or whatever?

              1. 1

                Maybe you’re thinking of green threads…

                I thought @jdarnold was talking about green threads, coroutines, and other similar techniques that are usually provided by language specific virtual machines.

                Pthreads are not language specific: they are a C api that any language could wrap, but not something that requires particular support from the language.

              2. 1

                Because threads are necessary for modern programming. If you want to take advantage of processor and OS level threading, how can you do it if the language doesn’t have some way of taking advantage of it? I’ve spent far too much time trying to figure out all the various ugly threading problems in other languages and I think the language should “just do it” for me.

            1. 1

              Yeah, I got out of this rat race a long time ago - basically, when I started a family. The game business is no place for anyone that wants a life outside of work!

              1. 2

                Always a little wary when this is the first line:

                At Microsoft, the core of our vision is “Any Developer, Any App, Any Platform”
                

                Orlly?

                But I’m interested…

                1. 4

                  Maybe “all platforms” means all versions of Windows, most OS X, and latest Debian stable.

                  1. 6

                    To be fair, that puts them miles ahead of almost everybody else working on platforms these days :(

                    All the action right now seems to be on “JS tool of the week” and “build for Android and iOS with one codebase”

                  2. 3

                    I sincerely don’t understand this hate against Microsoft.

                    Yeah sure, Ballmer days sucked and they really screwed up. But since Natya picked up the role, there seems to have been quite a shift in the company’s mindset. Plus all the OS things they’ve been doing in the past few years.

                    1. 1

                      That’s a description of what they want to extend and eventually extinguish.

                      1. 1

                        That view is a little out of date, don’t you think? What have they tried to extinguish recently?

                    1. 5

                      don’t know why this is here. Brick was an experiment during Firefox OS era, that is like four years ago. It haven’t been worked on or changed as far as I know.

                      It was a cool idea and project but it is not something that is news…

                      1. 2

                        Oh, you are right! The linked article is new, and I thought it looked interesting, but digging deeper, as you say, it hasn’t been updated in nearly 4 years. Yeesh.

                        1. 1

                          Looks like you’re right, last commit was in 2014. Weird that they didn’t update the landing page to state that it’s no longer in development.

                        1. 2

                          Some day, some way, I will go back to my blogging and I want to make it static, so this is another nudge in that direction. Just as a reminder: Static-gen - a list of top static site generates is a great resource.

                          1. 1

                            Sad to not see Blosxom on that list, although statically generated files are basically an afterthought for that system.

                          1. 2

                            That’s the main reason I left the insane game programmer market. The hours were crazy. Much more reasonable these days. However, I work from home, so the work/home split is a little harder.

                            1. 2

                              Work: Checking out Meson to see if I can stop writing project files for all the systems I have to maintain, as I try to create a library to share with 3rd parties. I remain unconvinced, but perhaps. Any other multi-platform build file creation programs you recommend? Google’s gyp and GN just seem like typical Google overkill.

                              Home: Still hope to check out pony, he says for like the 5th week in a row…

                              1. 3

                                At work: battling on squashing the few remaining (known!) bugs in our move from Qt WebKit to Qt WebEngine. In general, the migration has been smoother than I would have thought, but, as usual, it seems like the last 10% of the process is taking up 90% of the time.

                                At home: Too busy really for much. I still really really really want to take a deep dive into Pony

                                1. 2

                                  Oh man, so many cool tools!

                                  BTW, you have a typo in the link to the powerline-shell page.

                                  And the x-macro link too!

                                  1. 1

                                    Thanks, that should be fixed now!

                                    1. 2

                                      Holy…

                                      My first blog was a bash script that served up raw html. I moved via MT to WP and finally to Blosxom that’s been running statically for years now.

                                      The real enabler here is stuff like markdown.

                                      Edit to clarify - for me personally it makes more sense to have my textual content in a “normal” filesystem than stuck in a CMS database.

                                      Markdown is an ideal markup language for me, it’s very easy to write prose with just occasional elements mixed it, it scales well by interpreting HTML, and it’s almost universal at this point.

                                    1. 3

                                      Pretty good read. I have a very similar story, with a similar timeline (scary really) and I too can’t recall the last time I started a true C/C++ project. Perhaps it doesn’t interest him, but 2 things he doesn’t mention that draw me to Python and Go are their vastly more useful standard libraries for things like string processing and networking, and, at least in Go’s case, a much more plausible way of doing threads. The thought of doing HTTP with C++ gives me the hives, mostly for the reasons he mentions here for why he doesn’t think Rust is mature enough today - there are so many different libraries to do it, with no particular way of deciding which one is “good”.

                                      1. 9

                                        Libraries are an interesting story, and break down a couple ways: Old vs New, and Nyetwork vs Network.

                                        Old vs New is the simple fact we didn’t have JSON or networking or graphics or other things we rely on now when C was in its development phases. We had, at most, attempts at networking, none of which have survived (Arpa went from NCP to TCP/IP after C had become established), meaning that any C network library would likely have been shaped wrong for what we ended up with. Ditto graphics and data serialization. We know what those things look like now, so we can bake those libraries into a programming language core.

                                        Nyetwork vs Network is the simple fact we couldn’t reasonably develop a “CPAN for C” (CCAN?) before pervasive networking solved the distribution problem. People got new C libraries from their OS vendor at the speed of a station wagon full of tapes. This means non-core C libraries are still a bit more annoying to get unless you’re one of the anointed few who use a package manager such as apt-get or yum.

                                        Maybe this implies something about language development, but maybe the second factor solves the first: Do languages cycle in and out based on what libraries they’re new enough to ship with, or does the fact we can download new libraries these days mean Python or Go are going to stick around? Or is the field mature enough now we’ll never have a serious revolution in how major system components change again?

                                        1. 2

                                          We had serialisation before JSON. There were ASN.1, canonical S-expressions, netstrings … JSON only won because lazy programmers used eval until it was in the standard library.

                                          1. 2

                                            We had multiple data serialization standards before JSON, like we has multiple network standards before TCP/IP and multiple graphics standards (hardware) before raster graphics.

                                        2. 3

                                          FWIW, he basically found a very old issue WRT epoll; I left a comment on the issue for others finding it in the future. Basically you can call epoll directly, but mio is the cross-platform binding to this that everyone uses, and Tokio is the higher-level network stack.

                                        1. 1

                                          Whoa - dizzying, but in a good way.

                                          1. 2

                                            Sounds like our pain trying to get our code to work with WebRTC. Things were (still are?) changing so fast, and at such a different rate for each browser, it became impossible to keep up, even using a shim.

                                            1. 4

                                              I’m amazed that this hasn’t been submitted before!

                                              1. 1

                                                yeah, isn’t it a decade old?

                                                1. 1

                                                  Protobuf is. gRPC is more recent. Well, at least the publicly released version.

                                                2. 1

                                                  It has been submitted before

                                                  1. 2

                                                    Ha! Apparently by me, even!

                                                    1. 1

                                                      Ahh, yeah, you submitted the /docs link, while I just used the base URL, so the check for duplicate link didn’t work. Sorry about that!

                                                1. 1

                                                  Sorry for the presumably dumb question, but what is “Modules TS” anyway? It isn’t even defined in the linked article.

                                                  1. 5

                                                    Related site: LightVM

                                                    But what is this TinyX (a tool that enables creating tailor-made, trimmed-down Linux virtual machines) they speak of? All I find in a search is a “tiny” X server.

                                                    1. 5

                                                      But what is this TinyX (a tool that enables creating tailor-made, trimmed-down Linux virtual machines) they speak of?

                                                      https://github.com/sysml/lightvm/issues/1

                                                      1. 2

                                                        Ah, good piece of information that perhaps should have been mentioned in the paper as “not ready for prime time”.

                                                    1. 0

                                                      Brilliant

                                                      1. 1

                                                        I like the URL title better: The sad state of Linux socket balancing