1. 7

    Turns out the cloud is just other peoples computers

    I really want to start using this one all the time.

    1. 4

      This is a very popular sticker in the bay area: http://www.chriswatterston.com/blog/my-there-is-no-cloud-sticker

    1. 14

      This article isn’t antagonistic like its title suggests. It’s a really great deep-dive into using a profiler to figure out what JS is slow at, and some good techniques for optimizing those parts.

      1. 2

        To divide by 3, I used a multiplication trick. On tiny devices, division is often implemented as a (slow) library call, but if you’re dividing by a constant, you can usually find a good equivalent fixed-point constant. “One third” in binary is “0.5555…” repeating, so using a 16-bit fixed-point fraction, you can multiply by 0x5556 and shift right 16 bits.

        Why 0x5556 and not 0x5555?

        1. 7

          Because shifting right by 16 is the math equivalent of “floor” instead of “round”, so we need the result to be not just “as close to 1/3 as possible”, but the error needs to be on the high side instead of the low side.

          0x5555 * 3 = 0xffff – shifts right to zero

          0x5556 * 3 = 0x10002 – shifts right to one

          I’ll add this to the post, thanks!

          1. 1

            Thank you!

          2. 1

            Because the number 0.555555… is a little closer to 0.5556 than 0.5555. When they say “in binary” I think they mean “in hex” too.

            1. 2

              0x0.55555… is closer to 0x0.5555 than 0x0.5556. Remember, 0x0.5 is five sixteenths, significantly less than a half (which would be 0x0.8).

              1. 2

                Well corrected! I clearly fluffed that in my head.

          1. 1

            the store has undefined behavior if the alignment is not set to a value which is at least the size in bytes of the pointee

            The alignment is 4. The pointee is size 1. 4 is at least 1?

            1. 7

              It’s the other way around. The bytes are guaranteed to be aligned to 1, but the store requires the bytes to be aligned to at least 4.

              1. 1

                I think he was making a language joke about how english lets “at least” mean both “mathematically not less than” and “not less restrictive than”. In this case, the two meanings are opposite. Ha, ha.

            1. 6

              If anyone asks you this question (or one like it) in an interview, walk out.

              1. 3

                I love a good rant, but this made me chuckle:

                Note: Linux offers this via the clone syscall now, but everyone just fork+execs anyway.

                Treating 1994 as “now” in certainly taking quite the long view. I have coworkers who weren’t born yet when clone was introduced.

                1. 2

                  Imma let you finish, but I feel like until there is a stable, well-supported(*), aesthetic Linux laptop, lists like this are sort of like pointing to a car with square wheels and asking, “Why won’t anyone use the stereo?”

                  There are many reasons why the Linux world never got a laptop better than the old Thinkpads – most of them out the control of kernel hackers, system programmers, and web developers (the people I assume are reading this article) – but without solving that problem, it doesn’t really matter which desktop window manager is the best. Sorry to be a downer.

                  (*) meaning, at bare minimum, that wifi & sleep modes work without a single line of config file tweaking

                  1. 3

                    To be fair, I never needed to tweak a single line of config in order to get wifi working since I switched to Mint a few years ago (and I’ve used multiple versions on multiple computers). But you’re absolutely right that there are all these minor things like headphones working strangely, webcams showing upside down, random crashes at boot time, even rare screen freezes at daily use. For a programmer, these minor annoyances aren’t enough to counter the value you get out of developing on Linux, but for a home user who just wants to browse Facebook, they’d be show stoppers from day 1.

                  1. 2

                    For net-based NGOs, aside from the ones already listed (EFF, Wikipedia, Internet Archive), I also like:

                    Some of the non-partisan non-tech charities I like include:

                    • MSF (US) - medical relief where it’s needed
                    • Pro Publica - journalism that doesn’t rely on the ad economy
                    1. 2

                      This is a great summary of a key reason why I won’t go to big companies. Thanks!

                      1. 19

                        Crypto should be for cryptography.

                        1. 5

                          It should, but in practice it’s also used for cryptocurrencies. Either we have to be diligent about using tag suggestions or rename it to be explicit. The latter seems simpler and less effort on us.

                          1. 2

                            I think it should be okay for newbies to not know what some of the terms mean, but that doesn’t mean we have to give up and throw in the towel immediately and redefine basic terminology. We can treat it as a teaching moment. “Wrong tag: crypto means…” That doesn’t seem like too high a price for people who might have something valuable to offer once they get their footing.

                            1. 2

                              That’s because they are cryptography. The problem is the people using a general label when a specific one exists. Better to just remind them cryptocurrencies is there for that. Also, this is another case where API could be handy to automate the steps of tag suggestion plus sending the message.

                          1. 3

                            Since their site doesn’t have a “what is it?” section, here’s the summary from wiki:

                            ReactOS is a free and open-source operating system for x86/x64 personal computers intended to be binary-compatible with computer programs and device drivers made for Windows Server 2003.

                            1. 1

                              That’s funny and cool that all the parser-combinator tutorials build a calculator.

                              Here’s mine, for a js-based GLL parser-combinator: https://github.com/robey/packrattle/blob/master/docs/tutorial.md. It focuses a bit more on the practical use of them, including handling recursion, reduce, error handling, and debugging.

                              1. 60

                                I’m pretty uncomfortable with calling software “sexy”.

                                1. 27

                                  Agreed. And going to a website promoting ostensibly professional software only to see “sexy” in large type multiple times just doesn’t feel work appropriate.

                                  “the little sweet and sexy” is just not a phrase you should be using to describe software. It’s off-putting to people, and it’s generally (at least in pop culture) used by leachers old men.This feels like yet another example of how tone deaf men in tech can be.

                                  1. -5

                                    Glad to you took the time to insult and signal how much better you are than those leacher, tone deaf old men who wrote some free software for you. It’s really a great way to earn friends and show them the errors of their ways by shaming people publicly. /s

                                    p.s. I agree with the sentiment, and hwayne’s comment is far more appropriate than some of the others I have seen. He expresses his own opinion, not theoretical opinions of others, and doesn’t shame anyone.

                                    p.p.s The funny thing Is rereading my own comment, I see I am not even following my own advice! A better comment would be something like:

                                    I do not agree with calling potentially well meaning people “tone deaf”.

                                  2. 5

                                    Same for me, but that’s probably the sign of times. I have also the same feeling when people say that they love this company or that software.

                                    Of course when old established projects use such a lingo it may sound like when old people say something in teenage slang. It will feel off for teenagers and alien to other old people. Sort of uncanny valley?

                                    1. 3

                                      At some point you are reading way too far into things… It just means ‘stronger than like’ in that context.

                                      I love my pet dogs. I love good food. I love good software.

                                      1. 5

                                        It may be because I’m not a native English speaker. In my language love is mostly reserved to the top emotion. Then if you love something (your work or music genere) it means that it can literally compete with the feeling you have to e.g. your spouse. I guess it’s something that I can’t get over. Especially regarding purely profit motivated endeavours.

                                        1. 4

                                          Almost certainly a native/non-native speaker thing. In American English at least, ‘love’ is a pretty tame word that gets thrown around for everything. There really isn’t a specific word distinct for, e.g., the feeling one feels about their spouse; about their kids; etc. Usually ‘love’ is used there too, and context determines the level of effect.

                                          Occasionally you might see modifiers like, “brotherly love”, “fatherly love”, “familial love”, etc. That’s not super common though, mostly just context to delineate the quality of the usage.

                                          What is your native language? I know Greek has a few different words for different classes of ‘love’, and I imagine it’s not super uncommon, but I’m always curious about language related topics and the different quirks various languages have.

                                          1. 3

                                            I’m Polish. We say something like “brotherly love” or “fatherly love”. One can love their work, hobby and certainly their pet. But when someone says that he loves food or a thing it sound strange. “Like” is “lubić”. “Love” is “kochać”. “Love” in context of things would be more commonly translated to “uwielbiać”. It literally means “worship”, but in this context it is really more like “love” used as “stronger than like”. So maybe it is more crazy then in English.

                                            Love as a verb is “kochać”. But love as a noun is “miłość”. So “kochać” means that you feel “miłość” to somebody.

                                            I heard people from more pop part of younger generation saying such things, but it sounds for me like a literal translation from English. I heard it in movies and especially children movies. It almost always sounded off to me, but next generation is learning this foreign use. So I guess I’m doomed thanks to globalization ;).

                                            1. 1

                                              I’m also Polish and to be honest I find nothing strange in usage of “love” in context of “food or a thing” (both in Polish and in English). Considering that it seems from your linkedin profile that I’m older (32) than you I think your generalizations about younger generation is wrong :)

                                    2. 3

                                      Yes. Also: laptops, companies, fields of study, consumer electronics, genres of literature, fonts, cooking techniques…

                                      Unless you are literally indicating sexual attractiveness, please use a word such as “exciting”, “sleek”, or “fashionable”.

                                      1. 2

                                        I don’t think I have a problem with the sexy part, I have a problem with the screenshots make it not even look all that great. Those fonts are terrible. There’s nothing in the feature list that really even makes me want to try it out over the editors/IDEs I currently use.

                                        1. 3

                                          I filed an issue. Please consider +1

                                          https://github.com/geany/geany/issues/1672

                                          1. 10

                                            Is not “sexy” a gender neutral word, that can be used about both genders?

                                            1. 14

                                              It’s not about whether it’s gender neutral. It’s just kinda weird.

                                              1. 6

                                                Agree, but linked issue mentions women as if word “sexy” offends women more than men.

                                                1. 9

                                                  Yes, sexy is gender neutral. What makes it potentially offensive to women is the association with exploitation and objectification.

                                                  The word itself isn’t offensive. I can say that I find my wife to be drop dead sexy, but that’s because in that context it’s entirely appropriate.

                                                  1. 4

                                                    I completely agree that sexy in context of software sounds strange at best. I just don’t think that mentioning one particular gender in that issue was needed.

                                                    1. -2

                                                      Stop taking offense on behalf of others.

                                                      1. 10

                                                        Fascinating that you see it that way. When there is a gigantic groundswell of people saying “your behavior makes me uncomfortable” I try to change that behavior.

                                                        I for one value women in tech. I find their presence in my day to day working life improves my productivity and the productivity of the teams I work on, as does a diversity of backgrounds, opinions and characteristics.

                                                        So, for me this isn’t about offense, it’s about trying to make the industry I care deeply about a more welcoming place for a group of people I also care deeply about.

                                                        1. 10

                                                          Folks can play dumb about “sexy” alone, but when you address the complete phrase, “little, sweet, and sexy,” someone’s gotta be pretending to be reeeal oblivious to show up and say oh that’s neutral we’re not talking about software like we wanna talk about women.

                                                          Anyway keep speaking up, because yeah it’s not “taking offense on behalf of others” its paying attention to them and having consideration without them having to speak every time. And I sure as heck don’t like to wade directly into this kind of talk on lobsters very often, it’s rarely worth it.

                                                          1. 2

                                                            Thanks. I think that’s why it’s important for people in privileged situations like myself to at least try and raise awareness. I don’t let the negative comments get to me - I was donning my asbestos underwear and wading into email/USENET threads before most of these people were born :)

                                                            1. 1

                                                              I can’t imagine people talking about women that way. Would be super creepy to use a phrase like “sweet and sexy” about a person instead of a thing…

                                                              1. -1

                                                                Maybe you are (or someone reading this is) not aware of the counter argument so I thought I’d share: the implication in your comment is that sex necessarily exploits women, which is false. The idea that sex necessarily exploits women reinforces the belief that we must protect women from sex as we do children. This is a defining aspect of anti-sex, Third Wave feminism, which I believe runs counter to the feminist goals of dismantaling fascist and patriarchal structures in society.

                                                              2. 6

                                                                I am very rarely seeing a groundswell of people saying “Your behavior makes me uncomfortable”.

                                                                What I actually see is people saying “I assume your behavior is making somebody else uncomfortable, and I am taking the credit for ‘fixing’ you”. I far prefer the original comment from hwayne where he was talking about his own opinions, rather than imagining those of other people.

                                                                1. 6

                                                                  My upvotes usually mean “you speak for me also”. It’s quite a time saver. :) So, to clarify, I myself personally was made uncomfortable by someone describing software as “sweet and sexy”. So much so that I only skimmed the first page or so and closed the tab.

                                                                  I assume they had good intentions. If I were the author, I’d work a bit more to come up with some way to express my excitement at having written something cool, without sounding creepy.

                                                                  1. 4

                                                                    And I’d like to be very clear, I don’t disagree with the argument, I disagree with some of the methods used to enforce them.

                                                                  2. 3

                                                                    I for one value women in tech. I find their presence in my day to day working life improves my productivity and the productivity of the teams I work on, as does a diversity of backgrounds, opinions and characteristics.

                                                                    Non-native English speaker here. How does the term sexy offend only women and make them unwelcome to OSS? I mean, I understand the top comment (by hwayne) here saying how it would make someone uncomfortable, but why I don’t understand why it is only limited to women.

                                                                    1. 5
                                                                      Quoting a woman who’s a friend of mine from another context, unattributed at her request:

                                                                      The word “sexy” when used to mean that something is sexually attractive, is what it is. You may or may not be expressing something offensive when you use it. The word “sexy” when used to describe something that is not sexual - a car, an algorithm, a user interface - still evokes the idea of sex. It implies that you should feel sexually “turned on” by it, even if it is not literally a thing with which you would have sex. Given the cultural and historical context of our times, a professional environment where people are expected to feel sexually “turned on” by things, or where the idea of sex is constantly referred to when it is not technically relevant, is not an environment where many women will assume they are respected or even safe. You personally might go ahead and assume you are safe and respected. Many women won’t. This reduces the pool of women who are interested in applying for jobs at your company, or interested in staying once they have experienced it for awhile. The people who create the culture of a company either care about that, or they don’t.

                                                                2. -1

                                                                  But you are the one drawing associating between “sex” and “exploitation” and “women”.

                                                          2. 7

                                                            For those who are about to read: note that geany.sexy is not managed by the maintainers of the Geany IDE, so the issue didn’t end up going anywhere.

                                                            1. 7

                                                              This seems like a silly thing to even care about. It’s like the whole master/slave IDE cable debate. Seriously, it doesn’t need to be a big deal. It’s not even the editors official site. There are more important things to spend time on.

                                                            2. -2

                                                              Are you uncomfortable with sexuality in general?

                                                            1. 49

                                                              I’m hiring for a weird stack. The people I’ve hired so far aren’t coming in with experience in that stack. They’re coming in with solid design and architecture foundations and enough experience in similar languages that I’m confident that I can develop in them the skills that I need. If I stuck to people with exact experience, as an uninformed recruiter would, I’d be looking for years. The person I hired with the least professional experience has the most experience in one element of the stack: she’ll hit the ground running while the more experienced people spin up on that and other elements.

                                                              I can teach languages and nuances of frameworks. I don’t want to teach good communication, collaboration, and teamwork skills.

                                                              1. 9

                                                                This is a good take. It sounds like you’re emphasizing growth and learning. It can be fun to push your boundaries and grow as you learn a new language but if you aren’t supported by a company in that process you’re not going to be happy.

                                                                Most companies try to claim they’re pro learning and pro growth but then throw their devs in with the sharks on their first week. Taking steps to show candidates you’re serious about their concerns and actively taking steps to mitigate them will set you apart.

                                                                1. 2

                                                                  But they don’t throw the devs in with the sharks. New devs are thrown unceremoniously into the water, but usually with some nice Code Review brand floaties. If the company fired people for getting too many code review comments their first week, that would really be throwing them in with the sharks.

                                                                  And if the company doesn’t do code review, what the hell are you so worried about? The company obviously doesn’t care about code quality anyway, so fire away. And maybe float your resume to some friends.

                                                                2. 7

                                                                  Very much this. When we were hiring for (failing giant social network), our lowest level code was in scala. At the time, nobody knew scala. But our best hires were the ones who knew a couple of other languages and were willing to learn something new. Your engineering chops are transferrable. Your syntax and library knowledge is not, but after you get 2 or 3 languages under your belt, you get to be pretty good at learning the local idioms. You’ll be fine. It’s your critical thinking and teamwork I want.

                                                                  1. 4

                                                                    What’s the weird stack?

                                                                    1. 9

                                                                      Almost completely greenfield development in Scala and Rust. Hints of groovy, Java, and standard web stuff. Mix of web development and on-premises server stuff. It might not be that weird, but I’m finding it difficult to hire precisely for.

                                                                      1. 5

                                                                        Ah, nifty.

                                                                        What benefit do you get from using Scala and Rust? What’s the problem domain?

                                                                        1. 5

                                                                          Will be running Scala stuff everywhere we control the environment, which is in the cloud and certain portions of the on-premise installation.

                                                                          For the Rust part, we concluded that C or C++ were the options given our “we know nothing about the environment except its kernel” requirements, but then decided that any new stuff in either of those should probably be done in Rust. A part of the role of the Rust app is to provision a JVM for a Scala app and monitor it and the environment in which it’s all running.

                                                                          It’s pretty exciting and if it all works out, we could be using Scala and Rust fairly interchangeably across the JVM, JavaScript, WebAssembly, and native.

                                                                          1. 4

                                                                            Cool, but again, what do those technologies get you? Like, what’s the business value over, say, just gobs of NodeJS or something?

                                                                            1. 6

                                                                              Ah, my kind of architectural question.

                                                                              I chose Scala because I wanted:

                                                                              • a statically typed functional programming language with a wide variety of libraries available, especially for accessing databases of all kinds
                                                                                • statically typed for intent/contract/etc
                                                                                • functional for testing and ergonomic benefits
                                                                                • JDBC is great because a ton of DB vendors support it; I don’t get to choose what DBMS my customers are using, so I need something that ~everything supports
                                                                              • a mature actor system for easier concurrent programming
                                                                                • easier to implement
                                                                                • easier to test
                                                                              • shareable components
                                                                                • Scala can deploy to JVM and JavaScript, so we can share components
                                                                                • Scala Native will change things a lot but it doesn’t get us what Rust gets us
                                                                              • I know it better than any other language and I can teach it better than any other language.
                                                                                • I know its rough edges, too: compilation speed, IDE wonkiness, build system areas for improvement

                                                                              I chose Rust because I wanted:

                                                                              • a native binary that can be small and not require any runtimes
                                                                              • code supporting a reliable, long-running service
                                                                              • concurrent tasks without worrying about common concurrency problems
                                                                              • a statically typed functional-ish programming language
                                                                                • ecosystem is still maturing but it has everything I need right now and I’ve got time to sand the edges
                                                                              • a community that was exceptionally welcoming to new developers, because I knew that my team would not likely know it better than I do, which isn’t that much – I was very fortunate to find someone who has done a lot of Rust work in an internship!
                                                                              • shareable components
                                                                                • Rust has a WebAssembly target so that we could eventually take advantage of that

                                                                              Rust beat out C, C++, C#, Go, Nim, and Pony. Scala was my first choice with a fallback to Ruby via JRuby or Elixir. It would have been easier to hire for Ruby in my area but I want to help build the Scala community beyond my former employer and a couple of others.

                                                                              If Scala Native was 1.0, I might have chosen it over Rust mostly for personal preference of language ergonomics. However, I see a lot of promise for Rust and intend to use Rust where it is appropriate.

                                                                              1. 2

                                                                                Ah, thank you for elaborating. The part about you already being really familiar with Scala for teaching purposes makes a good deal of sense to me. :)

                                                                              2. 1

                                                                                At the risk of being facile, my experience is that you can program better in those languages. The business value is whatever business value you were getting from programming, but more so; like, pick a point on the project management triangle, and you can get an improvement in those aspects.

                                                                          2. 1

                                                                            Sounds aligned with my experience and interests, on the off chance that you’re hiring Londoners and competitive with finance- industry rates.

                                                                            1. 2

                                                                              Alas, negative: local-remotes in the Pittsburgh metro area only.

                                                                      1. 5

                                                                        Interesting, I’ll give it a go. I know for a fact that people are going to gun it down because it’s electron though.

                                                                        1. 29

                                                                          I mean… it’s a web browser running in a web browser. We’re in, “Yo dawg, I heard you like Chrome tabs, so I put a Chrome tab in your Chrome tab so you can consume memory while you consume memory.”

                                                                          1. 7

                                                                            Fun fact, Servo is currently also like this, the official servo binary only renders one single page, and the GUI is implemented as browser.html. But someone already made a Cocoa based GUI :D

                                                                            1. 2

                                                                              This is interesting. I’ve been wondering what would happen if a browser were better integrated with the operating system rather than being standalone monoliths. Personally, I don’t like the apps-in-browsers model and would prefer to see services heading back to standalone apps with the browser used mostly for browsing. It would be nice to have things like passwords, messenger accounts, etc. be handled by the operating system. The OS could handle logging into things, and then you could just fire up a single browser window to look up URLs and webpages as needed. Having a lightweight renderer that focuses on quickly rendering a single page would be great for this.

                                                                              1. 3

                                                                                That’s what Safari/(Edge|IE)/(Epiphany|Konqueror) are.

                                                                                1. 1

                                                                                  That was kind of the dream of Nautilus, wasn’t it? But if electron seems sluggish today, you can imagine how well this played out in 2001.

                                                                                  1. 2

                                                                                    The dream of the browser for the web and files was realized by Windows 98. Turns out it wasn’t a great idea after all.

                                                                              2. 1

                                                                                I guess the alternative is stripping down the Chromium or Firefox’s source, or write an interface around either of their engines. If you think of it as Chromium with rebuilt UI, I guess Electron makes a little sense as it’s already done the stripping and documenting/exposing how to build on what’s left.

                                                                              3. 12

                                                                                It doesn’t help that it claims that it is fast without any evidence towards that claim.

                                                                              1. 2

                                                                                (This should probably be marked as “2014” since it doesn’t look like the page has any significant changes since it last hit the net.)

                                                                                1. 1

                                                                                  Doesn’t the typescript language plugin (at least) already have these features? I feel like we’re missing part of the story.

                                                                                  1. 22

                                                                                    I thought the point of pair programming was not to increase efficiency, but to allow a junior programmer to understand how a senior works and improve their own skills.

                                                                                    1. 6

                                                                                      This is incorrect. To quote from the Extreme Programming website:

                                                                                      One thing pair programming is not is mentoring. A teacher-stundent relationship feels very different from two people working together as equals even if one has significantly more experience.

                                                                                      An organization wanting to improve their junior developers through pairing will be very different from one that strives to practice pair programming proper. A few differences:

                                                                                      • Pairing seniors with juniors vs pairing equal partners.
                                                                                      • Pairing some of the time vs pairing all the time.
                                                                                      • Pairing to improve skills vs pairing to improve the code.
                                                                                      • Giving senior more authority vs partnering as equals.
                                                                                      1. 2

                                                                                        This is incorrect; look at u/gregnavis’s post.

                                                                                        Aside from that, efficiency != efficacy. https://english.stackexchange.com/questions/50662/is-there-any-difference-in-meaning-between-efficacy-and-efficiency

                                                                                        1. 0

                                                                                          Yeah, I think that’s the way experienced coders need to understand it. At least since 2010, new coders have outnumbered us by at least 5 to 1. They will either learn on their own, the hard way, probably hurting your company’s viability in the process, or they will need good mentoring. For the few years I did pairing, it was really an excuse to get us to mentor, and not just write solo code all week. And I think in the long term, it was worth it in time/quality tradeoffs.

                                                                                          1. 1

                                                                                            Since the sixties (as far as I’m aware), roughly half of programmers have had less than 5 years experience, with half the remainder having fewer than 10. That’s how fast people are entering the profession!

                                                                                        1. 4

                                                                                          The article itself was worth posting. It was the comment thread that turned into a boil. I think the right thing to do is to mark the inflammatory comments as “troll” so they eventually fade away. (I’ve been trying to do my part here but would appreciate any help.)

                                                                                          1. 9

                                                                                            For me the best productivity boost is when I’m working from home. When I’m in the office, I’m wasting a lot of time rebuilding my concentration, because of conversations in the background.

                                                                                            1. 2

                                                                                              Agreed. The only real solution I’ve found is to get “concentration” work done at home or in some other undisclosed location, and come into the office only for the socialization and brain storming.