1. 8

    Due to unintended effect of interaction with the software, the text of a story I posted (that should have been a comment here) got wiped. @pushcx was kind enough to resurrect the markdown so I could repost it here. This should make @friendlysock’s reply make more sense.

    ===

    I’ve seen a sudden uptick against new users, as if another Eternal September looms on the horizon. The regular approach to push September away is to just educate new users and guide them toward being productive Crustaceans, but a lot of the discussion lately is downright negative (to the point of a proposal banning new users altogether).

    I don’t get paid to be on here. I come here because it’s interesting and fun, and I imagine that’s the kind of vibe we want to encourage on Lobsters. People are attracted to our stories, discussions, and general emphasis on technical or artistic topics (instead of, say, business success). Let’s keep that spirit in mind when interacting with new people so we can show them the right way instead of scaring them off. If the only nudges you get are negative ones, you may expect that’s all you’re going to get. If @friendlysock can make a conscious decision to be friendlier, so can you.

    I’d like to specify that when I mean “negative,” I’m talking about negative reinforcement – “you’re posting wrong” instead of “you’re posting right,” or “this is the kind of content we don’t want” instead of “this is the kind of content we like.” There will always be a place for technical criticism, and I don’t want to say that we should always be upbeat happy people. I just think that we should always mention positive examples when demonstrating negative ones.

    For a long time I’ve supported a “new poster’s guide” to bolster the rather technical about page. We tried to do this a while ago but that effort unfortunately lost steam. If we don’t have anything written down, we rely on people trying to post what they think is right while navigating the gauntlet of negative feedback until they “get it.” This is an extremely discouraging process. It’s also not really interesting or fun, both for the new posters and the people who have been here a while. If it’s not interesting or fun, why are we even here?

    I’ll leave you with a _why quote that really guides my thinking on this: “when you don’t create things, you become defined by your tastes rather than ability. your tastes only narrow & exclude people. so create.” Let’s create an encouraging environment for new users, and find ways to guide them toward sharing some really awesome stuff. Thanks.

    1. 6

      No. If we think new members are a problem (I don’t), then we should require more referrals (two or more people need to invite you) or just charge buxx. A blanket closing off of the site is how you kill it.

      1. 7

        There are a lot of words on this page, so I’ll try to keep it short (and recommend you do as well!):

        • I agree that the general tone of the entire discussion was not great (although I think that top-level post was pretty respectably written)
        • Viewing the site as “technology without the humanity, unless that humanity is related to building more technology” is just denying reality. There’s a reason we’re not using ReiserFS anymore, and I think that particular reason is just as relevant to Lobsters as its metadata journaling.

        As someone who’s participated in more than a few “ethical slapfights” on this site, I think the major problem is runaway threads, not the content that starts the threads themselves. One of the many reasons I like Lobsters is its slower pace compared to other sites (only a few new stories come up every day), so maybe a response cooldown really is the answer.

        1. 2

          Using Alpine for Docker containers is great, and many language runtimes have an Alpine variant. As the author points out, python has python:3.6-alpine. Java, Groovy, Node, Ruby, Erlang, Clojure and Swift also have -alpine variants. Be aware that it uses musl instead of glibc which theoretically might affect production applications, but I haven’t noticed any difference in the workloads I’ve been running.

          1. 4

            If you aren’t doing anything too complicated with a multi-stage build, Alpine’s apk tool has a virtual package feature designed to make using temporary build tools in Docker easier:

            RUN apk --no-cache add --virtual build-dependencies python-dev build-base wget \
              && pip install -r requirements.txt \
              && python setup.py install \
              && apk del build-dependencies
            

            Docker layers are only created after an entire RUN command is run, meaning those packages never go into a layer.

            1. 4

              Sorry for your loss, and I hope someone can help you out.

              I like the idea of having a more community-oriented side to lobste.rs, maybe kept separate from the main page to keep the original spirit of the site unmodified.

              1. 1

                After reading this I looked around for an OSM app that would be a relatively decent replacement for Google Maps, it looks like OsmAnd Maps might do the trick. One thing that’s missing for me is public transit, but Citymapper does a good job of that. It’s just nice to flip between car/transit/bike/walk quickly to get a sense of how long each method will take.

                1. 1

                  For me Maps.me hits the spot. Have you tried it?

                  1. 1

                    Not yet! It was also high on the list of OSM map apps, but I’m a bit worried that it was acquired by a Russian internet company.

                1. 2

                  This sounds like a description my dad gave me of using Fortran on a mainframe in the 70s.

                  1. 3

                    Note: this appears to be completely separate from Kx Systems’ q.

                    1. 30

                      Props for risking high-paying jobs to stand up for your principles. I’m a pro-gun, pro-Constitution, pro-privacy American whose fine with justifiable, measured actions by U.S. military where actually needed with minimal blowback expected. I’ve opposed most of what U.S. military has done over past two decades. So, I’ll add my reaction to two quotes:

                      ““If big tech companies are going to turn their back on the US Department of Defense, this country is going to be in trouble,” he said. “

                      ““a defeat for US national security [and] patriotism”.

                      That’s un-American bullshit supported by a large segment of right-leaning voters. The very design of U.S. government is to limit trust to any one branch. Relevant example is Executive branch directing military-industrial complex daily theoretically kept in check by suspicious Congress and courts. If there’s argument, ask right-leaning voters if they want liberals or Hillary Clinton to decide who to kill or not kill for 4 years straight. I bet they won’t be unconditionally supportive.

                      Further, historical, heavy hitters that led the military like George Washington and Dwight Eisenhower cautioned us to keep it in check citing prior and likely outcomes of bad behavior that would hurt America. Most of those happened, too. The biggest critique coming from General Smedley Butler: a two-time awardee of Medal of Honor who confessed most wars he led were specifically for capitalist exploitation, not freedom or democracy. Or as George Carlin says: “War is rich old men protecting their wealth by sending lower and middle-class young men off to die.”

                      I’ll listen to Washington, Eisenhower, and Butler about managing a military over a Bezos or Bloomberg any day. Hell, have they even shown they understand the concept of putting their lives on the line and giving up business opportunities to protect the average American? I don’t know if they have service records or what they did if they did. Hell, I’ll even count peaceful organizations or nonprofits that require full-time work at lower-than-tech pay. Although I lack that data, I do know Bezos was willing to risk killing Americans just to make himself a bit more money and personal satisfaction. Dude isn’t much better than terrorists in my book. If it was legal, such an amoral leader would probably be killing his opponents like his ilk used to.

                      1. 13

                        Eisenhower literally coined the term military-industrial complex in his farewell address to the nation. In an earlier speech he decried the buildup of defense spending, not only in terms of economic drain but also of mental and creative output:

                        Every gun that is made, every warship launched, every rocket fired signifies, in the final sense, a theft from those who hunger and are not fed, those who are cold and are not clothed. This world in arms is not spending money alone. It is spending the sweat of its laborers, the genius of its scientists, the hopes of its children. The cost of one modern heavy bomber is this: a modern brick school in more than 30 cities. It is two electric power plants, each serving a town of 60,000 population. It is two fine, fully equipped hospitals. It is some fifty miles of concrete pavement. We pay for a single fighter with a half-million bushels of wheat. We pay for a single destroyer with new homes that could have housed more than 8,000 people. . . . This is not a way of life at all, in any true sense. Under the cloud of threatening war, it is humanity hanging from a cross of iron.

                        Quite a departure from the turn of phrase on Ginsberg: “The best minds of my generation are thinking about how to make people click ads.”

                        1. 1

                          Oh yeah. Thanks for posting it. He brilliantly put defense spending into perspective by showing what we sacrifice to waste that money. The hospital comparisons show we might be wasting lives, too. I’ve used paraphrased versions of his arguments in debates with die-hard military supporters for years. It doesn’t get as far as I’d like but it always works to get them to back off a bit. Gotta force them to choose between investing in America, esp American lives, versus wasting money on useless toys.

                        2. 15

                          History has made it plainly clear that the constitution has failed to keep military power at bay. Our complete loss of privacy is another failure. It turns out a bunch of rich slave owners make a flawed system.

                          One success of the constitution is no internal wars for 150 years, which is nice.

                          1. 16

                            Not descending into civil war periodically isn’t really unique to the US though, so it’s hard to say whether anything about that is really because of the constitution.

                            1. 1

                              It might be worth looking into how many democracies avoid a civil war with and without a constitution. For a case study, did Australia have more civil war and/or less protection for individuals before its constitution or afterward?

                              1. 5

                                Australia is a bit of an odd one, since prior to the constitution it was a military-occupied colony of a country that did have a constitution.

                                1. 1

                                  Didn’t the different constituent parts of Australia have their own mini-versions of the “constitution” of the UK?

                                  The constitution of the Confederate States of America was essentially a carbon-copy of the US one, with the right to own slaves explicitly added. In all other respects both states considered themselves as heirs to the original US constitution.

                              2. 1

                                Which nations are you thinking of?

                                1. 3

                                  I mean, Australia hasn’t really descended into civil war. We’ve only been a federated country in our current form for a little under 120 years but still.

                          1. 2

                            While this has the perl tag, it’s worth nothing that TRE happens to be a solid BSD-licensed C regex library if you ever need one. It looks like RE2 might be a bit faster but TRE was nice to work with last time I used it.

                            1. 9

                              I switched to an iPhone SE two years ago after getting burned by two flagship phones in a row (Nexus 5 and Nexus 5X). Maybe things are better now, but after 6 months both became noticably slow and janky. At the time the SE was (and still is) the only low-jank smartphone that fit in my hand. I wish I could have a more forward-thinking web rendering engine, but being able to actually scroll webpages is worth the switch. Maybe things are better now after the bad old days of the 5X, but I’d have to have solid proof that 6 month old devices can smoothly scroll stuff before I’d consider moving back.

                              My colleagues set a reminder to ask me if, after 2 years, my phone got slow. I can say that it did a little bit in the past few months, but iOS 12 has restored it to a nearly jank-free experience and I have no plans to replace it anytime soon.

                              1. 3

                                I have been using a nexus 5x for a while now. Replaced the OS with lineageOS and its super fast.

                                1. 1

                                  That’s reassuring to hear, thanks for the feedback!

                                1. 7

                                  How has this remained a secret for so long?

                                  1. 2

                                    It might be new. It’s showing on my phone but other android users are saying it isn’t there

                                    1. 5

                                      The codepoints have been around since at least 2016: https://twitter.com/unicode/status/722133439726505984

                                    2. 2

                                      my Android phone doesn’t seem to support them out of the box

                                      1. 1

                                        Meh. There are an awful lot of code points, and not so many native speakers of hieroglyphs. If you go through the spec you’ll see all sorts of stuff.

                                        The question in my mind is why this post has so many upvotes.

                                        1. 2

                                          The question in my mind is why this post has so many upvotes.

                                          Because boys will be boys.

                                      1. 2

                                        This is interesrting, but I’m seeing / hearing SO much more lately about Clang, I wonder where GCC’s future lies.

                                        1. 13

                                          GCC isn’t going anywhere as it supports a wide range of platforms and targets that are not the focus of Clang, among other reasons.

                                          1. 7

                                            GCC also still produces faster code in most cases.

                                            1. 4

                                              That has been my experience with ldc2 vs gdc: better optimisation in gdc for the cases I cared about.

                                              1. 2

                                                Then why are the Linux kernel and some other projects switching to Clang? (Honest, stupid question. I’m WAY rusty on the C world :)

                                                1. 11

                                                  Great question! But Linux actually isn’t, sort of. Most Linux distros still ship with gcc-compiled Linux, except Android. I don’t know exactly why Android switched, but I wouldn’t be surprised if clang works better when compiling to ARM, since Apple built clang to compile iOS.

                                                  Linux has loads of reasons to compile with clang, even if the releases are still gcc-compiled. Just checking the warnings clang produces to compare with gcc provides a lot of value. But clang is more than a compiler, it’s a “set of reusable C++ libraries for building powerful source-level tools”, like the clang static analyzer. YouCompleteMe, the popular vim plugin does semantic code completion using libclang. So making Linux compile on clang opens up a lot of opportunities to use different tooling.

                                                  Building Linux with a different compiler has other advantages too, even if that compiler wasn’t clang. Compiling on multiple C compilers helps suss out obscure undefined or implementation-defined behavior bugs, or even compiler bugs! I don’t have an references on hand but the Linux on clang effort has found incorrect Linux code that happened to work due to one or more gcc bugs. There is an alternative rust compiler written in C++, mrustc that partially exists for this same reason.

                                                  Historically Linux has been gcc-only because it relies on lots of gcc features and extensions. Compiling with a totally different toolchain like MSVC is just a non-starter. Porting to clang has actually been viable because clang aims to be mostly gcc compatible, from compiler flags to special syntaxes to builtins, even down to many implementation-defined behaviors.

                                                  Lastly, getting Linux to compile with clang keeps the option of switching open. Linux might switch to clang one day if clang produces faster code than gcc on amd64. It’s not like Linux could switch overnight, it’s taken years of hard work to get this far. Android made the switch only recently. And even if most Linux distros did switch to building with clang, gcc would still be supported by Linux for many of these same reasons, in addition to gcc supporting many architecture targets that clang doesn’t (as mentioned by @trn).

                                                  1. 3

                                                    I get it! So it’s more like Clang is a new, interesting toolchain that it makes sense to support because being compatible means people can use it for a variety of interesting analysis and optimization projects.

                                                    Thanks!

                                                    1. 3

                                                      https://groups.google.com/a/chromium.org/d/msg/chromium-dev/bIWc8vFMF-w/wfMJsNHvDAAJ lists why the Chromium team pushed to get Chromium to compile with Clang on Windows. I forget how much overlap there is with reasons to favor Clang over GCC (having an open-source compiler certainly doesn’t apply there).

                                                  2. 5

                                                    FWIW aren’t many projects like Linux aiming for compatibility with Clang and to build with both, rather than a complete switch-over?

                                                    1. 4

                                                      No one else has seemed to mention licensing. I’ve always felt Clang was a response to the GPL licensing around gcc. After all, Apple has slowly been removing as much GPL code as possible from MacOS.

                                                      1. 4

                                                        clang in my book is predominantly the response to GCC not wanting to modularise their system. Apple has issues with the GPL, but I would expect that to be more of a nice addon for them.

                                                        (See https://lwn.net/Articles/582697/ for background)

                                                        1. 0

                                                          I sometimes wonder if the world would be a better place if we all just agreed that GPL-ish licenses were overly restrictive and counter productive and that BSD/MIT-ish licenses were Good Enough.

                                                        2. 2

                                                          Among other things, Clang has a lot of great security features like (Cross-DSO) Control Flow Integrity. Android is using CFI for their version of the Linux kernel already.

                                                          Also, clang (well, any LLVM-backed compiler) is always a cross-compiler (and LLD is always a cross-linker), so you can completely avoid the nightmare of toolchain management (x86_64-unknown-linux-gnu-gcc-omgwtf)

                                                          1. 1

                                                            Yeah, building cross compliation toolchains is a PITA to say the least.

                                                  1. 3

                                                    A long, long time ago, I had a boss who would say “This Linux thing will never catch on because no one knows how to pronounce it. LIE-nux, LEE-nooks… DEEB-ian, deb-EE-an… it’s doomed.”

                                                    He may have been right for the desktop… (-:

                                                    1. 1

                                                      I consistently say “Mac Oh-Es Ex” but apparently the consensus is “Mac Oh-Es Ten”?

                                                      1. 2

                                                        “Tencode Ecks Beta Six”

                                                        1. 1

                                                          I say it Os-Es-Ex, and no has corrected me.

                                                          1. 2

                                                            If you walk around Apple HQ saying “oss ecks” (with the “oss” being the same sound as in “hoss” or “cross”), people get really mad at you. I’ve also been saying “eye oss” for so long I’ve forgotten it was initially a joke, and have probably weirded out a few coworkers after I switched jobs.

                                                            1. 3

                                                              Thank goodness they dropped it and it is plain old macOS now ;-)

                                                          2. 1

                                                            Not just consensus, that’s how Apple employees pronounced it in keynotes.

                                                            Now, I know that’s basically the “GIF argument”, but “OS Ten comes after OS Nine” actually makes sense, unlike “Jraphics Interchange Format” :)

                                                            (and now it’s pronounced mac-O-S anyway)

                                                        1. 8

                                                          IBM TO ACQUIRE RED HAT, COMPLETELY CHANGING THE CLOUD LANDSCAPE AND BECOMING WORLD’S #1 HYBRID CLOUD PROVIDER

                                                          Most significant tech acquisition of 2018 will unlock true value of cloud for business

                                                          “The acquisition of Red Hat is a game-changer. It changes everything about the cloud market”

                                                          I don’t read a lot of these Enterprise Software(tm) press releases – is this level of hyperbole normal?

                                                          1. 9

                                                            Yes. They’re just drumming up press for whatever cloud hosting things they want to do. Disregard it and press F12 to pay respects, or however you want to mourn :-(

                                                            Rest in peace, RHEL.

                                                            1. 9

                                                              I don’t read a lot of these Enterprise Software(tm) press releases

                                                              I don’t either but man am I excited that the acquisition will be free cash flow and gross margin accretive within 12 months!!!!!!! I normally have to wait years to be gross margin accretive.

                                                            1. 5

                                                              First of all - congratulations on the release! This looks cool and I’ll definitely try it out.

                                                              So to ask an audio developer anything: How did you (and how can I) get into DSP/audio programming? I’m thinking mostly resources to learn both the concepts and math of DSP, as well as the tricks of the trade in writing fast DSP code. It seems like if you want to learn ML, or compilers, or OS-design, etc, there are piles of good books, tutorials and videos available – but I’m having trouble finding good resources to learn audio stuff. Do you have any tips?

                                                              1. 11

                                                                I had my introduction to signal processing with a course at the university. At least I can recommend some books for you:

                                                                PS: I think lobste.rs’ needs an dsp tag.

                                                                Edit: typos.

                                                                1. 1

                                                                  There’s at least two tags we need that will cover lots of articles that people might filter if we get too specific on application area or arcane internals users of black-box tools don’t need to know. Relevant here is “parallel:” techniques for parallel programming. It’s already a huge field that HPC draws on. It can cover DSP, SIMD, multicore, NUMA, ways of stringing hardware together, parallel languages, parallelizing protocols, macros/libraries that parallelize, and so on. I plan to ask the community about the other one after I collect relevant data. Mentioning this one here since you already brought it up.

                                                                2. 4

                                                                  Hey, thanks! Do feel free to reach out and let me know what you think.

                                                                  With regards to DSP literature – klingtnet has provided some great resources already, so I’ll just talk a little about my path. My background has always just been in development, and my math has always been weak. Hence, the best resources for me were studying other people’s code (for which github is a particularly great resource) and figuring out enough math to implement research papers in code.

                                                                  Audio DSP has this weird thing going on still where companies in the space are generally incredibly guarded about their algorithms and approaches, but there’s a few places where they’ll talk a little more openly. For me, those have been the music-dsp mailing list and the KVR audio DSP forum. The KVR forum in particular has some deep knowledge corralled away – I always search thorough there when I start implementing something to see how others have done it.

                                                                  And, one final little tidbit about DSP: in real-time, determinism is key. An algorithm which is brutally fast but occasionally is very slow could be less useful than one slower but more consistent in its performance. Always assume you’re going to hit the pessimal case right when it’s the most damaging, and in this industry those moments are when a user is playing to a crowd of tens of thousands.

                                                                  That being said, I’d encourage just jumping in! Having a good ear and taste in sound will get you further than a perfect math background will.

                                                                  1. 4

                                                                    https://jackschaedler.github.io/circles-sines-signals/index.html is a really well done interactive intro to the basics (note that the top part is the table of contents, you’ll have to click there to navigate).

                                                                    1. 1

                                                                      Thanks a lot for this, I just finished and felt like I finally got some basic things that eluded me in the past. Good intro!

                                                                  1. 4

                                                                    You’ve got at least one audio synthesis nerd in your audience here! Looks nice, sounds nice, and I’m glad to see work like this. I’m going over somewhat similar ground, but doing the work in Rust.

                                                                    Do you do the DSP computations using SIMD? That’s one of the areas I’m focused right now. My latest explorations get sinewave generation in under half a nanosecond. That’s without modulation, though the algorithm is designed to be phase-modulable.

                                                                    Regarding other resources, I pointed to three books when a similar question came up. One of those is available online. Interesting how little overlap there was!

                                                                    1. 4

                                                                      Raph, it’s a pleasure to see you here! Long-term I would like to gradually move to Rust as well, but shipping 1.0 has naturally been the priority up until now.

                                                                      I’m doing a fair amount in SIMD, basically all xmmintrin.h. I am in fact using a heavily modified version of your state-space ladder filter, with nonlinearities, and extended to support pole mixing (which was no easy feat). It’s still not as efficient as I’d like, so my next steps are to further unroll the matrix construction (I already assemble them from unrolled versions of your bilinear version). I’m very interested in seeing your accelerated sine work – I’m using somebody’s SSE2 version which is accurate but not particularly fast currently. Oh, and I have an SSE2 implementation of your tanh approximation if you’d like it. :)

                                                                      1. 3

                                                                        Hah, excellent. Glad to see you adapted and extended my stuff, that’s very much what I was hoping for. I can see that pole mixing would be hard with the nonlinearities.

                                                                        Not to be too smug, but I think I’ve got SIMD tanh covered. I was planning on targeting SSE4.2 as a minimum, but I’ll probably have some SSE2 fallbacks in there, as you can absolutely count on it for x86_64 and going all the way to scalar would be quite a hit.

                                                                        1. 2

                                                                          Not smug at all – and, coming from you, I believe it! Very interested to see what your approach is.

                                                                        2. 2

                                                                          I would like to gradually move to Rust as well

                                                                          My colleague will be giving a talk about this at ADC this year that you may be interested in (scroll down to “An introduction to Rust for audio developers” on https://juce.com/adc/programme). IIUC this will be live-streamed, but I know ADC puts up past talks online as well.

                                                                          1. 4

                                                                            Yeah, I saw that! For context, I’ve actually been using Rust professionally for a few years now, mostly for back-end network services, but I also gave a talk at the first Rustfest back in late 2016 about reverse-engineering USB HIDs, using the NI Maschine as my specimen.

                                                                            I wanted to start with my UI layer, but I make heavy use of inheritance and sub-classing in Rutabaga, and that’s not going to be easy to port. I could probably find other ways of implementing the kind of toolkit I want, but that’s R&D I just haven’t spent time on yet. Soon, soon (probably).

                                                                            I’ll check the livestream. Can’t make it out there in an official capacity this year, but perhaps next year. :)

                                                                            1. 2

                                                                              Very interesting, I did not know about that. It’s a week after a talk I will give at the SF Rust meetup with somewhat similar goals (“Fearless low-latency audio synthesis”). I’d be more than happy to chat with him about what I’m doing.

                                                                        1. 28

                                                                          I often enjoy accidentally clicking or touching something and then having to start all over when I press the back button.

                                                                          1. 12

                                                                            The infernal cousin of infinite scroll is “left or right swipe to navigate between articles,” which usually resets your scroll position when you swipe back. It makes scrolling impossible on a phone if you are holding it in any imprecisely aligned way (such as one-handed scrolling with a cup of coffee in hand). Luckily this has mostly died out, but the NYT iOS app still does this.

                                                                            1. 5

                                                                              And, of course, the sites that implement navigation like this are quite bloated so one false swipe leads to a deluge of ads there and a deluge of ads back to your original place. The whole process taking 15 seconds and drains a tiny bit of the life force from your ever dwindling data plan, like a technological vampire.

                                                                              I’m not bitter.

                                                                            2. 8

                                                                              Often followed by trying to get back ‘down’ with ctrl+f, which of course never yields any result.

                                                                              1. 4

                                                                                It’s especially bad in mobile apps: not only clicking (and you don’t have separate scrolling wheel, you scroll by dragging the same clickable elements), but locking and unlocking screen, switching between apps clears UI state, causing scroll position and loaded data to be lost.

                                                                                What frightens is that everyone agrees with these patterns, despite big companies having the best UX designers and so much talks about mobile UX everywhere. It feels like political choice: you must have short attention span and indifference to content, you just scroll, scroll, scroll. It’s like mix of TV and slot machine.