1. 5

    Going to see the Hamilton broadway musical with my wife, and also chasing down a fix for https://gitlab.gnome.org/GNOME/gdm/issues/432 provided I can cram enough understanding of Gtk and Gdm into my feeble brain :)

    1. 1

      Going to see the Hamilton broadway musical with my wife

      Nice! Have you seen / heard it yet, or will this be a first?

      1. 2

        First. We’re super psyched :) Been purposefully avoiding the soundtrack etc :)

    1. 2

      What messengers does everyone else use? I’ve got actually a good amount of my contacts using Signal, and I hesitate to make the attempt at migrating yet again, but if the benefits are significant enough I might be able to be convinced.

      1. 9

        You should consider submitting that as an Ask Lobsters. It probably deserves its own thread. Ask’s on Lobsters are usually pretty interesting with lots of good ideas and setups.

        1. 2

          Fully agree (unless we can politely ask moderators to split this into its own thread, if that’s actually a thing)

            1. 1

              Sweet!

          1. 8

            IRC is still one of my main messengers. weechat makes it so nice.

            Other than that, I have quite a few friends and family using telegram, which is a great client with questionable crypto.

            1. 1

              weechat is a bit annoying to use on mobile. I got a proper weechat relay setup and use the official weechat Android app. However, it really likes using a ton of battery. Do you experience the same problem?

              1. 2

                Are you referring to weechat-android? If so, I use the same setup.

                I leave it on all the time and haven’t noticed any significant battery drain. According to the battery stats, it’s about 1% of today’s usage. Compare that to syncthing, which counts for 9%.

                1. 1

                  Ironically I found XMPP to be the best way (for me) to use mobile IRC. Thanks to biboumi, a very reasonable bridge. And you can also connect biboumi to your Irssi or WeeChat IRC relay

              2. 5

                We shouldn’t dismiss XMPP yet. It comes pretty good off in that matrix above there, and with Conversations and ChatSecure has good mobile support. Some criticise it’s distributed nature, which I believe to be a strength. And the chaos in the implemented features often cited from Matrix side can be seen in another matrix wr.t the publicly operated servers thanks to the “XMPP Compliance Tester”

                • Another plus is that you do not need to share your phone numbers or upload your phone book
                1. 3

                  I’ve been looking into XMPP in response to both this post and Librem’s desire to support it in their phone. I was quite disappointed that XEP-0313 isn’t supported well on Desktop.

                  Mobile is doing fantastic, but it’s hard for me to get excited when I don’t feel like there’s a large range of clients. Even for Windows to chat with my SO.

                  1. 2

                    You may be interested in movim.eu https://github.com/movim/moxl#xmpp-support

                    or Dino https://dino.im/

                    Gajim is also ok.

                    Edit: may also be interesting: https://conversejs.org/#features

                    Personally I have not enabled MAM on my server at all, Carbon copies seems enough (I rarely need a coherent history on all devices). Another thing you can do is open a “group chat”, which has it’s own way to record the most recent history.

                    If you are using terminal based clients, you may find they are running on a server 24/7 anyway and thus do not need explicit MAM either

                    1. 1

                      movim is interesting, but looked like it was a social network rather than an IM software? Maybe I’ve misunderstood though. Dino looks great, except that it hasn’t had a release yet. Gajim doesn’t have a UI that I think my partner would like, saying that, I don’t want it to change, because I quite like it.

                      Converse.js is rather neat, especially inverse. That would probably provide a good experience for desktop use for my partner.

                      I personally could get by with the carbon copy stuff, but my partner could not. I have to convince her that XMPP is superior to other things. Being able to randomly open/close the desktop application is part of her workflow, even where it may not be part of mine.

                  2. 1

                    Check out the note on XMPP towards the end of this post https://blog.torproject.org/sunsetting-tor-messenger

                  3. 3

                    I went from irc in the old days (never a heavy user) to msn (around 2006), Skype (from 2004 until they were bought by Microsoft), Hangouts (my mind is a bit fuzzy), WhatsApp (early adopter and huge fan until Facebook bought it and made it “free”), Telegram (again, huge fan until I realized there are actual problems with the crypto, still use it).

                    Considering transitioning to Signal or Matrix but I’ll think twice about it before I migrate my family to a new messenger service. They are really stubborn, like more stubborn than I am :-P

                  1. 4

                    A 2013 Macbook Air.

                    I was annoyed to find that newer electronics weren’t necessarily better than my 4/5 year old gear. I got a new 2017 Macbook Pro for work and a reasonably good value phone around the same time, but I ended up being rather disappointed by them both. It makes me wonder if it’s related to the demise of Moore’s Law. The generational differences in tech during my formative years were vast. These days? I think I’ll stick with my Macbook Air until it bites the dust.

                    1. 4

                      Nobody else said it, so martial arts tricking and dance.

                      Martial Arts Tricking - I like to explain this as a “youtube sport” even though it got its start in the 1980’s North American Sport Karate Association (NASKA). It’s a combination of all the flips, kicks, and tricks you can imagine from all the various martial arts disciplines, flips from gymnastics and capoeira, and some homegrown tricks. It exploded in popularity when YouTube became a thing.

                      Dance - mostly hip hop styles (bboying, popping, locking, etc.), but I have a strong appreciation for the technique in ballet and the aesthetic of just about any kind of dance.

                      1. 2

                        Dance - mostly hip hop styles (bboying, popping, locking, etc.), but I have a strong appreciation for the technique in ballet and the aesthetic of just about any kind of dance.

                        How did you go about starting to learn hip hop dance?

                        1. 3

                          To be honest, YouTube tutorials and, when I was a student, the hip hop/bboying student organization (Floor Lovers Illinois). It’s where I met a lot of friends. There was also a few chances to perform with the Asian orgs on campus.

                          If I were to get back into it now, I’d look around for community spots (like this post to r/bboy) and go on a regular basis, try to make friends even if I suck and I’m out of practice.

                          If I were just starting, you should probably do the same, but I’d be pretty hesitant without some sense of rhythm and movement. I’m already hesitant. Take this with a grain of salt though - I was just telling my wife that I’d grind in RPGs to be 3x the level that I’d need to beat the next boss. You should do as I say and not as I do in this case - probably just go to the sessions and learn the basics. Breakers are generally friendly and like to share the culture.

                          Other styles have similar scenes, as well. And if you want, you can just find a dance studio to learn choreography at, which is more or less a different culture than the hip hop scene. If you’re in Chicago and want to ask more, feel free to send me a message.

                          1. 1

                            Thank you for your helpful reply!

                      1. 3

                        On one hand, I can see how it is literally not what that error class is intended for. On the other hand, I can also see how it’s more instructive for someone using a subclass of something to understand NotImplementedError as meaning “it’s not implemented, and you have to do it” rather than NoMethodError, which is more ambiguous.

                        Are there any definitive reasons not to do this? The one I can think of is if something unexpectedly rescues from NotImplementedError and your additional code triggers it. Seems fairly unlikely in a web development context, though.

                        1. 3

                          I would probably suggest a custom error class over NotImplementedError or NoMethodError.

                        1. 8

                          Is it just me or are other people also bothered by the over use of emoticons and the low quality of this writing? I wish that style of writing would stay confined to SMS and not bleed into technical articles.

                          1. 14

                            I don’t know how you measure “quality of writing”, but I thought it was fine.

                            No typos I could read and good sentence structure. Tasteful use of emojis I thought. Distasteful would be every one or two paragraphs, but they only used like 5 in the whole article.

                            Just a different way to express. A waaaay more casual one.

                            1. 5

                              i’m a fan of emoji used to decorate text, but not used to replace words.

                              1. 3

                                That’s a good way to put it. Indeed.

                              2. 5

                                Tasteful use of emojis I thought.

                                Maybe it’s just me but when I see “Oh 💩, it compiles to JavaScript.” I just have to think of trying-to-be-cool parents, which I just find tiering. And that’s setting aside that I don’t believe vulgar language should be used at all in written documents.

                                1. 1

                                  Can’t disagree with that, tbh (on the use of the shit emoji).

                                2. 1

                                  “Tasteful use of emojis” sounds like “subtle trolling” to me.

                                  Although it’s ok, I only see the same “tofu box” emoji.

                                  1. 1

                                    ‘Subtle trolling’ is quite like emoji use in that if you notice it, it’s wrong. The whole point of trolling is to rial someone up without them realising they’ve been rialed up.

                                    1. 3

                                      Did you mean to write “rile” or is this comment itself an example of subtle trolling? ;) ❤

                                      1. 1

                                        I did mean to write ‘rile’, yeah.

                                      2. 1

                                        I am reacting to the over-use of emoji as a way to get personal. It’s good, but companies tends to use it to promote a product, so I have gotten allergic. Made with :love: by $BigCorp. Put a :tiger: in your :engine: …

                                        On the other hand, I see no reason against putting emoji on one’s own blog, readers are not pushed straight onto the posts after all…

                                  2. 4

                                    Didn’t bother me since it was at least a different style. I like seeing a mix of styles. If it annoyed you, I think you’ll like some of his comments on the HN thread which get right to the point. Specifically, he as a list of what’s bad and what’s great.

                                    1. 0

                                      Indeed, these are more substantial. I might be a little bit burned out by the “code ninjas” out there and the impression that software engineering is a dying art. Now you can do a two month bootcamp on React and VSCode and get a job. Even Google stopped asking for CS degrees.

                                      1. 5

                                        Careful. In my day job I work on implementing dependent type systems, with an eye for improving low level binary format parsing by leveraging formal verification. And yet I dropped out of CS and I use VS Code. Opening up other pathways to people getting into programming does not mean that we have to discount the importance of a high quality CS education. We would also be wise to not assume that a CS degree correlates with a good aptitude for programming.

                                        1. 1

                                          Yes, you’re absolutely right, and I’d really like a wider range of people get into software engineering, CS degree or not. However, from my anectodal experience, I find there is a growing gap in knowledge and values, and am wondering why it seems so.

                                          1. 4

                                            I find in fact that many university courses are actually doing more harm than good, pedalling decades old software engineering practices (like the gospel of Java, OOP, imperative programming and UML) rather than teaching core principles of programming languages, mathematics, and algorithms that age more slowly, and are critical to encouraging and inspiring the next generation of CS researchers. This is partly industry’s fault, and partly the fault of universities.

                                            I see industrial programming as more a vocational trade, and employers should shoulder more of the burden of teaching up-to-date best practices. Let the universities do what they do well: theory, and don’t expect CS graduates to be excellent programmers from day one, but do expect them to be able to eventually become much more effective and nimble in the long run than a entry level boot-camp employee (depending on that eployee’s desire for self-education). By the same token I think universities should not get caught up in chasing the treadmill of the latest technology, and be up front to prospective students about that.

                                            1. 2

                                              This is really spot-on. I studied in France, where the curriculum is much more theoretical (hence less dependent on the technology of the day), but living and working in North America I see that a lot of CS graduates trained to specific tools & technologies without a good understanding of the underlying principles. This makes new recruits ready to use technicians if you use the technology of they day, but if you use anything exotic both parties are facing a lot of pain.

                                              1. 1

                                                The best we can do is try to swallow our sadness and frustration, and do a best to inspire and excite the next generation of programmers. I find new programmers are often far more receptive to more interesting ideas, including formal verification, rich type systems, and functional programming. I always treat a new programmer as a great opportunity: we have the power to shape their future directions through the doorways we open to them, and the opportunities we provide.

                                                1. 2

                                                  I like your enthusiasm, it’s good to be reminded of that. Thanks a lot for the conversation!

                                        2. 2

                                          Even Google stopped asking for CS degrees.

                                          As far back as 2008, Steve Yegge was saying you don’t need a CS degree to get a job at google: https://steve-yegge.blogspot.com/2008/03/get-that-job-at-google.html

                                          So I would say Google’s hiring practices and the bootcamp movement are largely unrelated, at least, seeing as I was a relatively early bootcamp grad and that was in 2011/2012.

                                    1. 4

                                      I always thought Ken Thompson was the originator of this thought, but he notes that:

                                      I first read of the possibility of such a Trojan horse in an Air Force critique [4] of the security of an early implementation of Multics. I cannot find a more specific reference to this document. I would appreciate it if anyone who can supply this reference would let me know.

                                      Has anyone ever found the original source for this Air Force critique?

                                      1. 9

                                        Paul Karger, one of INFOSEC’s founders, invented it during MULTICS Security Evaluation. They then solved it with combo of high-assurance design, verification to object code, and repo security. Several products were built by Karger and others to do that.

                                        1. 1

                                          Thanks!

                                          1. 4

                                            Ok, this comment was my longer description of that, how high-assurance security worked (summary), and specific tech addressing compiler side of problem. The specs, traceability, and analyses were main way subversion was to be detected. Every tool in Trusted Computing Base, from kernels to compilers, should be done that way if possible to mitigate risk. The biggest threat isn’t a compiler subverting compilers: it’s a malicious developer backdooring the source in non-obvious way (see obfuscated code contest) or, most often, compiler transforms or optimizations defeating security. That’s on top of MITM that is prevented by secure repos w/ transport security. For hardware, they used “trusted trucks” aka couriers with security clearance.

                                            Note: The main story in that thread is also ultra-cool. Probably favorite project I found researching bootstrapping.

                                            1. 1

                                              You’re welcome. Got more detailed comment for you later tonight that’s in bookmarks at home. Lobsters search isnt working right now. You’ll probably find that paper interesting by itself.

                                              1. 3

                                                It might have been the B2 report, but that’s ‘86 - https://multicians.org/multics-fer.pdf - I have pretty much every Multics document I could find at https://ban.ai/multics/doc/ but not as nicely indexed as the Multicians’ Bibliography at https://multicians.org/biblio.html

                                                1. 1

                                                  The original evaluation is this by Schell and Karger. In response to that and Computer Security Initiative, MULTICS would need upgrades that were evaluated if Honeywell was to sell it. They targeted TCSEC’s B2 class. Each certification ended with Final, Evaluator’s Report ranging from scathing to supportive in design choices.

                                                  For a while, MULTICS was the most secure, evaluated system you could buy that wasn’t just a limited demonstrator.

                                        1. 3

                                          I finished 44CON last week but we’re extending our CTF for another week. It’s a blockchain heist ARG based on a soldering token we built. Sign up at the CTF if you want to join in, and start here. There’s still about $6k in crypto left to win, although that figure might be different by the end of the week ;)

                                          1. 1

                                            Oh hey! I just discovered CTFs and I really like them. Is there a niche community that shares or creates them? I’d like to do more! Also, are non-con attendees allowed to participate in that CTF?

                                            1. 2

                                              There’s a subreddit that’s worth a look.

                                              Non-con attendees are more than welcome, although there were clues there that you’ll have missed. Should be able to spot them with some creative OSINT though.

                                          1. 5

                                            I’m continuing work on NewBusinessMonitor.

                                            I didn’t manage to roll out the letter-sending feature. Basically my users want to click on companies they want to advertise to, and for NewBusinessMonitor to automatically print, envelope, and send their sales letters to those companies. I’m still working on this, and hopefully it’ll be ready for everyone this week.

                                            Tech: Haskell, Elm, PostgreSQL, Redis, NixOps/AWS.

                                            1. 1

                                              What API are you calling to send letters automatically?

                                              1. 1

                                                Not GP, but I’ve used Lob in trivial cases twice before. And by “twice” I mean I literally sent two letters. Seemed fine.

                                            1. 5

                                              Started learning Chinese (characters/pinyin) again. It only took the better part of a decade to realize that I should just learn a helluvalot of vocabulary. I’ll also be reading through The Rust Programming Language and diddling on Yousician for piano, which has been pretty great.

                                              Regarding learning languages - has anyone had success with learning vocabulary for multiple languages at once?

                                              1. 4

                                                Some tips as a Chinese learner that has been studying Chinese full time in China for a half year so far and longer 国外:

                                                • best way to do vocab is to read text, have conversations, and such and then use Pleco to find words you don’t know and add them to the flash card functionality in the app. From here you can categorize and customize your testing very well. Flash cards work very very well if you stick to a daily routine.
                                                • If you’re trying to learn to write characters, 听写 works well where you have a set of characters you practice, then hear a subset of these characters as audio and try to write them down. Repeat what you wrote incorrectly.
                                                • Download 今日头条,斗音段视频,爱奇艺,and 喜马拉雅fm for a good smatter of real text and audio. The app Hellotalk can also connect you with people that speak Chinese and as an English speaker you will have no problem finding people to practice with.
                                                • Find Chinese people and talk to them.

                                                It’s a really hard language that’s inseparable from the culture, especially at a higher level when you’re using 成语。If possible find a way to study Chinese in China, it’s cheap compared to US education even at the best universities and you can make money on the side by a (illegal) English teaching gig. Good luck!!

                                              1. 10

                                                This might be a stupid question, but why not less instead of cat? Cat is not really meant to display files but to concatenate them. I’d definitely like a better pager, but neither w3m or vi in view mode worked for me, so i’m still using less

                                                1. 5

                                                  Cat is still cat. Bat is like the kitchen sink that just clobbers more? Yeah, I don’t quite understand why this tool is positioning itself relative to cat.

                                                  It is definitely not a clone. But I am all for new, more usable terminal based tools that use what we have at our disposal, more cores, more ram, ssd read/write.

                                                  I’d really like a tool that built an n-gram inverted index of all files below my current dir and allowed me to jump to anything, that showed similar token/phrases/lines, etc. All terminal driven, with an option to load a rich GUI over a local http connection.

                                                  1. 3

                                                    Although I agree with you, I can see why this would be positioned as an alternative to cat.

                                                    Quite a lot of people use cat to preview files, and that’s what bat does. I know less and more exist, but for some reason I still find myself using cat. Perhaps other people do the same.

                                                    1. 4

                                                      I use cat because, if I’m lucky, the output will fit in my terminal, and I’m ready for my next command; with a pager, I need to press a key to exit out of the pager before I can issue my next command, and the output disappears (in the case of less) as if the pager never ran, so I can’t keep context around.

                                                      1. 11

                                                        By the way, less can be configured to act well in these circumstances. I have more as an alias for less -FX. Those two options to less are:

                                                               -F or --quit-if-one-screen
                                                                      Causes less to automatically exit if the entire file can be displayed on the first screen.
                                                               -X or --no-init
                                                                      Disables sending the termcap initialization and deinitialization strings to the terminal.  This is sometimes desirable if the deinitialization string does something unnecessary, like clearing the screen.
                                                        

                                                        I also define $PAGER to be less -FX, so manpages and the like don’t clear the screen once the pager quits.

                                                        1. 5

                                                          I second this. -c would be helpful in $PAGER as well so that everything above on your screen stays untouched.

                                                          Personally, I’ve been rolling with this:

                                                          $ type le
                                                          le is an alias for 'less -FcmNqX --follow-name'
                                                          
                                                        2. 2

                                                          the output disappears (in the case of less) as if the pager never ran, so I can’t keep context around.

                                                          If you want to get rid of this sort of behaviour globally, disable “alternate screen” in your terminal.

                                                          In tmux, set-window-option -g alternate-screen off. In putty there’s Disable switching to alternate terminal screen under Terminal → Features.

                                                          1. 1

                                                            Just tested bat, and the output doesn’t disappear. When you need a specific section from a file (not the whole thing) - using bat over cat and not less makes sense. Neat.

                                                        3. 2

                                                          Bat will act like cat if it determines there is no tty. Thus, bat is like less when used interactive and like cat when scripting.

                                                          Like someone else said, people use cat to dump contents to the terminal so they can refer to it while continuing work.

                                                          1. 2

                                                            Proof!

                                                            Oh.. you can also use it to concatenate files 😉. Whenever bat detects a non-interactive terminal, it will fall back to printing the plain file contents.

                                                        1. 1

                                                          Elation Health is hiring.

                                                          We’re a smallish co in SF building EHR (and other) systems for independent primary care physicians.

                                                          We’re hybrid remote/onsite. Most of our remote people are in North American timezones.

                                                          Eng Lead: https://www.elationhealth.com/careers?gh_jid=1172268 (Preferably onsite).

                                                          Eng: https://www.elationhealth.com/careers?gh_jid=714360

                                                          1. 1

                                                            I inquired a bit earlier (actually last year, as well) would you mind if I PMed you about the engineering position?

                                                            1. 1

                                                              Go ahead! (I’m less than a year there).

                                                          1. 3

                                                            Why Does He Do That?: Inside the Minds of Angry and Controlling Men (Amazon) which has been surprisingly eye opening on the habits and motivations of abusive men.

                                                            I just got through Why We Sleep (Amazon), which was good, but surprisingly not that much of an improvement over listening to the Joe Rogan Experience #1109 with Matthew Walker, the author of the book.

                                                            1. 19

                                                              There’s so much excellent content on wiki.c2.com it’s ridiculous. Many of the things people rant about on HN, on Facebook, on Twitter, in their blogs, have already been debated to death over a decade ago on the original wiki. (And probably on usenet before that.)

                                                              1. 6

                                                                At my first job in the early 00’s, c2.com escaped the workplace net filter since it was low bandwidth, so I’d be browsing it whenever I had a free minute.

                                                                I was exposed to more CS concepts in 6mo than the last two years of college. It helped me finally understand functional programming (which I then used on the job with XSLT), and got me learning Ruby&Io(via “what exactly are coroutines?”), which lead directly to my next job.

                                                                1. 1

                                                                  Any favorites for learning CS?

                                                                  1. 2

                                                                    Continuations and Coroutines was pretty mind-expanding for a first page, as I was trying to understand a Tim Sweeney interview comment that monsters in UnrealScript “all moved at the same time”

                                                                  2. 1

                                                                    This is great to hear someone else had a similar experience. I still (infrequently) point other programmers at it - though wikipedia has lots more of this information now.

                                                                  3. 1

                                                                    I think I’ve read almost all of several sections of that site.

                                                                    Totally amazing and worth the time, even if some pages are not very good.

                                                                  1. 4

                                                                    Not to spoil the article, but the ending quote in bold really sort of scares me. I’ve spent most of my life hearing stories about how machines will take human jobs. The reality of that has played out much less scary (so far) than they’d have had us believe 20 or 30 years ago. It’s never really occurred to me, though, that in another 20 or 30 years that my job as a programmer might be obsoleted as well. It’s like the matrix; funny ha ha, but for real.

                                                                    Thankfully I hope to be retired 30 years from now :P

                                                                    1. 4

                                                                      I think this is the natural progression of things, isn’t it? Programming isn’t immune to the effects of automation - just the opposite, in fact. It’s like boiling a frog - things are automated so often and so incrementally that programmers no longer notice when jobs that would have taken 10x longer a few years ago are basically instantaneous today.

                                                                      1. 11

                                                                        Programming will be the last thing to be automated, because it is itself automation - once you have automated programming you just have to run your automated programmer and then you’ve automated everything.

                                                                        1. 2

                                                                          …No. The only thing that will save programming from being automated NEXT is… wait, I see what you did there. “Your keys are always found in the last place you look.” :)

                                                                          On a serious note, regarding future job prospects, I think programming will not be the last available job. Some job that isn’t an attractive candidate for automation will be the last available job. Programming, with all its expense, is a prime target.

                                                                          1. 4

                                                                            Once you can automate programming you can automate everything else at approaching 0 cost, so it’s moot.

                                                                            1. 1

                                                                              Can you? I would imagine lots of jobs rely on intrinsically tacit, “local” intuition, and not merely knowledge and cognitive function, which is what it seems to me the only thing that “solving programming” entails automatically.

                                                                              1. 1

                                                                                Programming often relies on intrinsically tacit, local intuition. I mean think of the last time you received feedback from the customer about how they felt the software should work.

                                                                                1. 1

                                                                                  Good point I didn’t think about that end of the situation

                                                                        2. 2

                                                                          Hopefully, this allows them (and me) to do their (and my) jobs more efficiently, and focusing on other more important things. Of course, other stuff will eventually fall into obsolescence, but don’t we have graveyard keepers, working on decrepit technologies for sizeable amounts of money? COBOL experts, where art thou?

                                                                          1. 2

                                                                            All very true. I think the reality just sort startled me.

                                                                          2. 5

                                                                            This is why it’s important to move past capitalism ASAP: it’s more and more immoral to couple the ability to get a job with the ability to stay alive and retain dignity. Once all labor is automated, there shouldn’t be any jobs (coerced or obligatory labor), and we should all be rejoicing.

                                                                            1. 0

                                                                              Will there still be a free market? Or will what we consume be planned by the machines. At which, point, without the ability to decide what I want - or the illusion thereof - my job as a human is done too …

                                                                              1. 5

                                                                                woe to those who think their job as humans is to consume

                                                                                1. 1

                                                                                  I eat, therefore I am.

                                                                                2. 1
                                                                                  1. We all make the world;
                                                                                  2. define “free market”.
                                                                                  1. 0

                                                                                    There is a medium of exchange (please not barter) and a market for goods and services. I have goods/services to offer and I have goods/services I need. I have markets to go to sell and buy these. The market is not controlled by the commissariat which determines how much toothpaste I get and what color tube it comes in because for reasons most people can not fathom, I like to chose.

                                                                                    1. 1

                                                                                      you can chose what color tube your toothpaste comes in?

                                                                                      1. 0

                                                                                        In capitalist America, toothpaste color chooses you!

                                                                                      2. 0

                                                                                        What is available in these markets? What is not? How are its dynamics damped, to avoid balloons and crashes? How are negative externalities, like advertising or air pollution, accounted for? You throw around the “free” as though its interpretation were obvious, when the devil is in the details, and the details are everything.

                                                                                        1. 0

                                                                                          This is strawman nonsense, and nowhere do I imply central planning. What you’re really saying is, “I want freedom of choice for consumption and production,” which doesn’t require capitalism, though you’re strongly implying you think it does.

                                                                                          1. 0

                                                                                            You need to elaborate your scheme then. Every time I’ve heard someone say “I hate capitalism and I have an alternative for it” what they really have is state capitalism (AKA communism in practice as opposed to the silly theory of communism written down somewhere).

                                                                                            1. 0

                                                                                              The universal means of production (automated labor), universally distributed.

                                                                                              1. 0

                                                                                                Who decides resource allocation?

                                                                                                1. 0

                                                                                                  Who decides it now?

                                                                                                  1. 0

                                                                                                    The market

                                                                                                    1. 0

                                                                                                      How’s that workin’ out.

                                                                                                      1. 0

                                                                                                        Better than anything else people have tried.

                                                                                                        1. 0

                                                                                                          Citation needed.

                                                                                                          1. 0

                                                                                                            Also, punch cards were better than anything that came before, and then we had better ideas that were enabled by advancing technology. It’s time we did the same for meeting basic human needs.

                                                                                                            1. -1

                                                                                                              You haven’t actually said what the replacement is for free markets and capitalism.

                                                                                                              1. 0

                                                                                                                Start with democratic socialism. End with technological post-scarcity.

                                                                                                                1. 0

                                                                                                                  All countries with governments are socialist, not all are democratic, and not all have free markets. So that doesn’t add anything new.

                                                                                                                  Post-scarcity is another way of saying we have no plan on how to deal with resource contention, which is the hard problem

                                                                                      3. -1

                                                                                        it’s more and more immoral to couple the ability to get a job with the ability to stay alive and retain dignity.

                                                                                        What dignity is possible once you’re livestock to be taken care of?

                                                                                        The truth of the matter is there’s an ongoing demographic implosion. If they wait it out awhile, there won’t be that many people to have to have the universal income or whatever it is you’re arguing for.

                                                                                        1. 3

                                                                                          You’re assuming that dignity and purpose are only possible under conditions of coerced labor. Your premise is false.

                                                                                          I’m not arguing for UBI. I’m arguing for democratic access to the means of universal production (robotic labor, molecular nanotech, etc.), removing the need for things like “income”.

                                                                                    1. 1

                                                                                      I also hated the academic side when I attended, but one of the greatest benefits I got out of university was being in a little village with lots to do, everything accessible on foot, surrounded by friends. It’s a state of things that has a beautiful quaint aspect to it, especially when you consider how disparate our connections grow afterwards. If not for the high price tag, I might encourage people to go just for that experience. You can learn throughout your entire life, but it’s hard to find a similar social environment.

                                                                                      1. 1

                                                                                        Hah! Thanks for this review. I cracked up at a few points:

                                                                                        In the preface of the second edition it says that the first edition was reviewed “by a professional C programmer hired by the publisher.” That programmer said it should not be published. That programmer was right, but the publisher went ahead and published it anyway.

                                                                                        Also

                                                                                        If you browse search results for other books by Traister you’ll find a lot of questionable sounding titles: Making money with your microcomputer (1982), Leaping from BASIC to C++ (1994), […] Cave Exploring (1983)

                                                                                        😂

                                                                                        1. 1

                                                                                          Cave Exploring sounds like it could be harmful to your health. Given Traister’s reputation in C programming.

                                                                                        1. 2

                                                                                          This is the first time Heroku has ever been able to detect configuration options and block a deploy for a vulnerability like this.

                                                                                          1. 1

                                                                                            Is there a particular reason for it being a first? Also thanks for the write up and the fixes!

                                                                                            1. 2

                                                                                              Is there a particular reason for it being a first? Also thanks for the write up and the fixes!

                                                                                              We’ve never had the capability before. I just added the code to detect configuration via rails runner recently https://github.com/heroku/heroku-buildpack-ruby/pull/758.

                                                                                          1. 15

                                                                                            As a junior developer doing my best to learn as much as I can, both technically and in terms of engineering maturity, I’d love to hear what some of the veterans here have found useful in their own careers for getting the most out of their jobs, projects, and time.

                                                                                            Anything from specific techniques as in this post to general mindset and approach would be most welcome.

                                                                                            1. 33

                                                                                              Several essentials have made a disproportionate benefit on my career. In no order:

                                                                                              • find a job with lots of flexibility and challenging work
                                                                                              • find a job where your coworkers continuously improve themselves as much (or more) than you
                                                                                              • start writing a monthly blog of things you learn and have strong opinions on
                                                                                              • learn to be political (it’ll help you stay with good challenging work). Being political isn’t slimy, it is wise. Be confident in this.
                                                                                              • read programming books/blogs and develop a strong philosophy
                                                                                              • start a habit of programming to learn for 15 minutes a day, every day
                                                                                              • come to terms with the fact that you will see a diminishing return on new programing skills, and an increasing return on “doing the correct/fastest thing” skills. (e.g. knowing what to work on, knowing what corners to cut, knowing how to communicate with business people so you only solve their problems and not just chase their imagined solutions, etc). Lean into this, and practice this skill as often as you can.

                                                                                              These have had an immense effect on my abilities. They’ve helped me navigate away from burnout and cultivated a strong intrinsic motivation that has lasted over ten years.

                                                                                              1. 5

                                                                                                Thank you for these suggestions!

                                                                                                Would you mind expanding on the ‘be political’ point? Do you mean to be involved in the ‘organizational politics’ where you work? Or in terms of advocating for your own advancement, ensuring that you properly get credit for what you work on, etc?

                                                                                                1. 13

                                                                                                  Being political is all about everything that happens outside the editor. Working with people, “managing up”, figuring out the “real requirements’, those are all political.

                                                                                                  Being political is always ensuring you do one-on-ones, because employees who do them are more likely to get higher raises. It’s understanding that marketing is often reality, and you are your only marketing department.

                                                                                                  This doesn’t mean put anyone else down, but be your best you, and make sure decision makers know it.

                                                                                                  1. 12

                                                                                                    Basically, politics means having visibility in the company and making sure you’re managing your reputation and image.

                                                                                                    A few more random bits:

                                                                                                2. 1

                                                                                                  start a habit of programming to learn for 15 minutes a day, every day

                                                                                                  Can you give an example? So many days I sit down after work or before in front of my computer. I want to do something, but my mind is like, “What should I program right now?”

                                                                                                  As you can probably guess nothing gets programmed. Sigh. I’m hopeless.

                                                                                                  1. 1

                                                                                                    Having a plan before you sit down is crucial. If you sit and putter, you’ll not actually improve, you’ll do what’s easy.

                                                                                                    I love courses and books. I also love picking a topic to research and writing about it.

                                                                                                    Some of my favorite courses:

                                                                                                    1. 1

                                                                                                      I’ve actually started SICP and even bought the hard copy a couple weeks ago. I’ve read the first chapter and started the problems. I’m on 1.11 at the moment. I also started the Stanford 193P course as something a bit easier and “fun” to keep variety.

                                                                                                3. 14

                                                                                                  One thing that I’ve applied in my career is that saying, “never be the smartest person in the room.” When things get too easy/routine, I try to switch roles. I’ve been lucky enough to work at a small company that grew very big, so I had the opportunity to work on a variety of things; backend services, desktop clients, mobile clients, embedded libraries. I was very scared every time I asked, because I felt like I was in over my head. I guess change is always a bit scary. But every time, it put some fun back into my job, and I learned a lot from working with people with entirely different skill sets and expertise.

                                                                                                  1. 11

                                                                                                    I don’t have much experience either but to me the best choice that I felt in the last year was stop worrying about how good a programmer I was and focus on how to enjoy life.

                                                                                                    We have one life don’t let anxieties come into play, even if you intellectually think working more should help you.

                                                                                                    1. 8

                                                                                                      This isn’t exactly what you’re asking for, but, something to consider. Someone who knows how to code reasonably well and something else are more valuable than someone who just codes. You become less interchangeable, and therefore less replaceable. There’s tons of work that people who purely code don’t want to do, but find very valuable. For me, that’s documentation. I got my current job because people love having docs, but hate writing docs. I’ve never found myself without multiple options every time I’ve ever looked for work. I know someone else who did this, but it was “be fluent In Japanese.” Japanese companies love people who are bilingual with English. It made his resume stand out.

                                                                                                      1. 1

                                                                                                        . I got my current job because people love having docs, but hate writing docs.

                                                                                                        Your greatest skill in my eyes is how you interact with people online as a community lead. You have a great style for it. Docs are certainly important, too. I’d have guessed they hired you for the first set of skills rather than docs, though. So, that’s a surprise for me. Did you use one to pivot into the other or what?

                                                                                                        1. 7

                                                                                                          Thanks. It’s been a long road; I used to be a pretty major asshole to be honest.

                                                                                                          My job description is 100% docs. The community stuff is just a thing I do. It’s not a part of my deliverables at all. I’ve just been commenting on the internet for a very long time; I had a five digit slashdot ID, etc etc. Writing comments on tech-oriented forums is just a part of who I am at this point.

                                                                                                          1. 2

                                                                                                            Wow. Double unexpected. Thanks for the details. :)

                                                                                                      2. 7

                                                                                                        Four things:

                                                                                                        1. People will remember you for your big projects (whether successful or not) as well as tiny projects that scratch an itch. Make room for the tiny fixes that are bothering everyone; the resulting lift in mood will energize the whole team. I once had a very senior engineer tell me my entire business trip to Paris was worth it because I made a one-line git fix to a CI system that was bothering the team out there. A cron job I wrote in an afternoon at an internship ended up dwarfing my ‘real’ project in terms of usefulness to the company and won me extra contract work after the internship ended.

                                                                                                        2. Pay attention to the people who are effective at ‘leaving their work at work.’ The people best able to handle the persistent, creeping stress of knowledge work are the ones who transform as soon as the workday is done. It’s helpful to see this in person, especially seeing a deeply frustrated person stand up and cheerfully go “okay! That’ll have to wait for tomorrow.” Trust that your subconscious will take care of any lingering hard problems, and learn to be okay leaving a work in progress to enjoy yourself.

                                                                                                        3. Having a variety of backgrounds is extremely useful for an engineering team. I studied electrical engineering in college and the resulting knowledge of probability and signal processing helped me in environments where the rest of the team had a more traditional CS background. This applies to backgrounds in fields outside engineering as well: art, history, literature, etc will give you different perspectives and abilities that you can use to your advantage. I once saw a presentation about using art critique principles to guide your code reviews. Inspiration can come from anywhere; the more viewpoints you have in your toolbelt the better.

                                                                                                        4. Learn about the concept of the ‘asshole filter’ (safe for work). In a nutshell, if you give people who violate your boundaries special treatment (e.g. a coworker who texts you on your vacation to fix a noncritical problem gets their problem fixed) then you are training people to violate your boundaries. You need to make sure that people who do things ‘the right way’ (in this case, waiting for when you get back or finding someone else to fix it) get priority, so that over time people you train people to respect you and your boundaries.

                                                                                                        1. 3

                                                                                                          I once saw a presentation about using art critique principles to guide your code reviews. Inspiration can come from anywhere; the more viewpoints you have in your toolbelt the better.

                                                                                                          The methodology from that talk is here: http://codecrit.com/methodology.html

                                                                                                          I would change “If the code doesn’t work, we shouldn’t be reviewing it”. There is a place for code review of not-done work, of the form “this is the direction I’m starting to go in…what do you think”. This can save a lot of wasted effort.

                                                                                                        2. 3

                                                                                                          The biggest mistake I see junior (and senior) developers make is key mashing. Slow down, understand a problem, untangle the dependent systems, and don’t just guess at what the problem is. Read the code, understand it. Read the code of the underlying systems that you’re interacting with, and understand it. Only then, make an attempt at fixing the bug.

                                                                                                          Stabs in the dark are easy. They may even work around problems. But clean, correct, and easy to understand fixes require understanding.

                                                                                                          1. 3

                                                                                                            Another thing that helps is the willingness to dig into something you’re obsessed with even if it is deemed not super important by everyone around you. eg. if you find a library / language / project you find fun and seem to get obsessed with, that’s great, keep going at it and don’t let the existential “should i be here” or other “is everyone around me doing this too / recommending this” questions slow you down. You’ll probably get on some interesting adventures.

                                                                                                            1. 3

                                                                                                              Never pass up a chance to be social with your team/other coworkers. Those relationships you build can benefit you as much as your work output.

                                                                                                              (This doesn’t mean you compromise your values in any way, of course. But the social element is vitally important!)

                                                                                                            1. 7

                                                                                                              Deno seems very interesting. He’s trying to rectify his mistakes and adopt typed, async JS.

                                                                                                              URL imports seem somewhat interesting but have one large flaw in my opinion - they drop the singular responsibility of security in exchange for a shared one.

                                                                                                              NPM has a lot of issues, especially security ones, but at least it’s an actively maintained, up to date entity. If something goes wrong someone will notice very quickly and they will attempt to rectify it very quickly.

                                                                                                              With URL imports, however, I’m worried that we’ll lose the quickly part of this. Imagine a scenario in which an early adopter makes a left-pad like module - something trivial that isn’t in the STL but everyone wants. In a few years they migrate away, and become removed from the tech community (but still host their domain/js)

                                                                                                              If this domain gets compromised, every package with that import will be done. There won’t be a central authority that can sink that package or domain - it will be a shared responsibility of every developer, which is significantly more dangerous than the singular responsibility of npm.

                                                                                                              1. 14

                                                                                                                I was amused to note that he cautions against using “cute” code and then goes on to call URL imports cute at around 21:14

                                                                                                                1. 4

                                                                                                                  The main thing I’d counter with is that the web has run on URL imports like that, and has managed it fairly well. Spread of imports also means spread of attack targets. NPM is a singular target by comparison, vs the various CDNs, libraries copied locally, and so on that this scheme proposes.

                                                                                                                  Overall, it’s a different tradeoff, and so far, this JS runtime is a thought experiment.