1. 1

    It returns 404 now.

    1. 1

      Um, yeah, the author deleted the post. So what do I do now? Delete my post here? Hope that the post might come back?

      1. 1

        Yeah, even the cached version doesn’t work!

    1. 2

      This was a great talk!

      1. 1

        Page not found :-(

        1. 2

          Looks like the site structure changed, here’s the new link.

        1. 1

          6/20 but it was almost pure guesswork. The only two I had any confidence in was the IAM and CloudWatch icons shapes, and to a lesser degree S3’s icon colour.

          1. 1

            I particularly like the section about tech debt being a tool. It’s not intrinsically bad. Without taking on debt I would not be able to buy a house. Taking on debt is a tool I use to afford to buy a house now, rather than in 25 years time.

            1. 3

              Is there a comprehensive and/or up-to-date set of recommendations for simple, static HTTP servers anywhere?

              After years of trying to lock down Apache, PHP, CMSs, etc. and keep up to date on vulnerabilities and patches, I opted to switch to a static site and a simple HTTP server to reduce my attack surface and the possibility of misconfiguration.

              thttpd seems to be the classic option, but I’m a little wary of it due to past security issues apparent lack of maintainance (would be fine if it were “done”, but security issues make that less credible). I’m currently using darkhttpd after seeing it recommended on http://suckless.org/rocks

              Edit: I upvoted the third-party hosting suggestions (S3, CloudFlare, etc.) since that’s clearly the most practical; for personal stuff I still prefer self-hosted FOSS though :)

              1. 4

                If all you need is static http you don’t have to host it yourself. I host my blog in Amazon S3 (because I wanted to add SSL and GitHub didn’t support that last year) and for the last 13 months it’s costs me about $0.91 / month, and about two thirds of that is Route 53 :-)

                AWS gives you free SSL certificates, which was one of the main drivers for me to go with that approach.

                1. 3

                  I use S3 / CloudFront for static HTTP content. It’s idiot proof (important for idiots like me!), highly reliable, and I spend less every year on it than I spend on a cup of coffee.

                  The only real security risk I worried about was that someone could DDoS the site and run up my bill, but I deployed a CloudWatch alarm tied to a Lambda to monitor this. It’s never fired. I think at my worst month I used 3% of my outbound budget :)

                  1. 1

                    I’ve always wondered why AWS doesn’t provide a spending limit feature… it can’t be due to a technical reason, right? I know their service is supposed to be more complex, but even the cheapest VPS provider gives you this option, often enabled by default. I can only conclude they decided they don’t want that kind of customer.

                    1. 1

                      I also worried about the risk of “DDoS causing unexpexted cost” when I was looking for a place to host my private DNS zones. To me it appeared that the free Cloudflare plan (https://www.cloudflare.com/plans/) was the best fit (basically free unmetered service).

                      Would using that same free plan be a safer choice than Cloudfront from a cost perspective?

                    2. 3

                      You’d be hard pressed to go wrong with httpd from the OpenBSD project. It’s quite stable, it’s been in OpenBSD base for a while now. It’s lack of features definitely keeps it in the simple category. :)

                      There is also NGINX stable branch. it’s not as simple as OpenBSD’s option, but is stable, maintained and is well hardened by being very popular.

                      1. 3

                        In hurricane architecture, they used Nginx (dynamic caching) -> Varnish (static caching) -> HAProxy (crypto) -> optional Cloudfare for acceleration/DDOS. Looked like a nice default for something that needed a balance of flexibility, security, and performance. Depending on one’s needs, Nginx might get swapped for a simpler server but it gets lots of security review.

                        I’ll also note for OP both this list of web servers.

                      2. 1

                        Check out this.

                        1. 1

                          Yeah, I also like this similar list, but neither provide value judgements about e.g. whether it’s sane to leave such things exposed to the Internet unattended for many years (except for OS security updates).

                      1. 5

                        I love this. I am in the lucky position that my company is almost fully remote. (There is a head office but only 2-3 people work from there, and that doesn’t include senior managers.) One disadvantage I can see that isn’t mentioned is that remote employees often have to be contractors / self-employed, which means more accounting overhead for employees than being an employee. Being paid in a currency other than the local one where you live also has problems, for example it makes it harder to get a mortgage here in the UK.

                        1. 5

                          I love this! The line at the top was gibberish at first, and the explanation didn’t make much sense until I realised the whole line was interpreted right to left. Also, Mobile Safari’s reader mode was not helpful as it hid the buttons you can use to step through results in the examples!

                          Once I got over those issues the post became quite accessible and I marvel at the expressiveness of the language and ingenuity of the program. I’ll probably understand it for another few minutes until it fades away…

                          I think the point about touch screens was well made. With custom language-dependent keyboards literally at your fingertips, and game of life only a few handfuls of keystrokes away, maybe there’s hope for those of us that struggles with RSI? I could probably type out useful programs on a suitable (custom) keyboard in a few minutes with my toes with that kind of expressiveness…

                          1. 1

                            I mostly use iCloud, but I also use https://bitbucket.org/alfaromurillo/org-passwords.el for passwords that are not “consumed” through a browser.

                            1. 3

                              I had no idea dired had an editable mode! That’s a game-changer for me.

                              1. 3

                                Had a similar game-changer moment last week when I learned there are modes to make the grep results buffer editable:

                                https://github.com/mhayashi1120/Emacs-wgrep

                                (And similar modes exist for things like helm-ag, etc)

                                1. 2

                                  Yeah, I’ve been using those for a while. Never fails to impress colleagues :-)

                              1. 12

                                More posts like this please. Good focus, short but good analysis / reasoning for why Postgres doesn’t get it right by default, and practical advice on what to do about it. Bravo!

                                1. 4

                                  I’m not sure I follow what you’re talking about–the only way to see a user score is to click through to their profile or look on the users page.

                                  Do you mean something else?

                                  1. 2

                                    Your own score is in the top right beside your username.

                                    1. 5

                                      Indeed. I would have no problem if it were removed from there. Who really needs that feature?

                                      1. 3

                                        It could have motivational value for someone. On my end, I mostly just try to help people with stuff they might not know about. I avoid most topics and comment styles that get popularity votes. That means my score is significant indicator of impact. A large number in the first year meant high impact. Or that I spent way too much time on these sites versus other activities that could be more beneficial. We’ll just pretend that option isn’t a factor for now. :)

                                        So, that’s at least what I thought as I observed it over time. However, anyone contributing a lot probably doesn’t need to see the score on front page, though, since we’re the type of people to do that anyway. If we’re curious, it’s always in profile a few clicks away. Conclusion: it doesn’t need to be visible even for those of us that use it to assess impact over time. Plus, anyone consistently doing stuff here others appreciate will usually get individual comments or private messages saying so. Eventually.

                                        1. 2

                                          Need? No. But I sometimes use it to estimate the response to one of my comments in “the waiting period”. I think it’s usually a distraction though :-)

                                    1. 7

                                      I also agree with major version belonging in the name. For version 4 and 5 of SBJson I renamed all classes, enums, and identifiers so that you can install version 3.x.x, 4.x.x and 5.x.x in the same app without conflicts. I did this because I wanted to ease the upgrade path for people. If they use SBJson in different parts of their app (which is likely, in big apps) this allows them to upgrade parts of their app at a time, rather than be forced to upgrade all uses in one go. More importantly though: it also allows people to upgrade their own usage in their app, even as dependencies they rely on have not yet upgraded their usage of the library.

                                      1. 5

                                        The Apache Commons Java libraries practise your method and I think it’s fantastic for precisely the reasons you mention. Guava does not and that last sentence of yours is a huge ticket in Hadoop.

                                        1. 2

                                          That sounds more like a workaround to avoid the issues of runtimes not being able to handle versions and the lack of reasonable migration tooling.

                                          1. 2

                                            I disagree somewhat. Renaming was simple to do, and is simple to understand & deal with for users and machines alike. There’s no special case migration tooling or runtime support required at all. One could argue that requiring a runtime that is able to handle versions of libraries and requiring migration tooling is a workaround for poor versioning on behalf of library authors. However, I’ll admit renaming has its problems too. It would make back porting fixes across major versions much more annoying, but luckily my project is mature and small enough that it has not been a problem.

                                        1. 9

                                          The only difference in readability is that the Java version has a lot more parentheses.

                                          It’s not often I’ve seen the “Ye gads, the parenthesis are everywhere” card used in favour of Lisp :-)

                                          1. 3

                                            $WORK: Putting final touches on decommissioning our old hosts after migrating our flagship product to AWS. Wrote (internal) road map for adopting AWS automation (Sceptre & CloudFormation) to an extent where we can drop write access through the console to avoid fat finger errors when updating config variables etc. Look forward to start executing on that soon!

                                            At home I’m playing Minecraft with my son, running 3 times a week, and moving forward with home renovation projects. (Having oil tank from old central heating system emptied & removed this week.) Also, after owning various guitars for over 25 years I finally started lessons a few weeks (months?) ago and enjoying it immensely. Kicking myself for not starting sooner, as my skill and enjoyment is going up at record speed.

                                            1. 2

                                              Meeting up with my colleagues from all over Europe and the Americas in Lisbon, Portugal! My first time here, but we already have a full program so I don’t expect to be able to see many sights. Still, really looking forward to meet up in person again. (Very few of us—none in the tech team—share an office normally.)

                                              1. 14

                                                What’s most notable here to me is his use of Finnish to aid in text-to-speech.

                                                English (specifically when taken as a writing system for encoding spoken words) is notoriously inconsistent, (or as some academics phrase it, “orthographically defective”) which is a mere annoyance to sighted folk but a huge problem to people reliant on text-to-speech. This fellow works around that flaw by at first treating English writing as if it’s Finnish, using the Finnish text-to-speech engine (which is far superior to that of English due to Finnish orthography being quite sensible to begin with) and then converts the “raw” letters he hears into English words in his head, which is the error-prone part where software does a rotten job.

                                                Commercial text-to-speech engines would be much more effective for power users if they created an encoding for English written words which got rid of the ambiguity and pushed it to the user, but the market can’t support such a thing (it needs to be intuitive and usable without any training) so in absence of such a scheme, Finnish does the job instead. Brilliant hack.

                                                1. 3

                                                  To be fair, I don’t think that’s why he’s using a Finnish speech synthesiser. From the article:

                                                  Since I need to read both Finnish and English regularly I’m reading English with a Finnish speech synthesizer. Back in the old days screen readers weren’t smart enough to switch between languages automatically, so this was what I got used to.

                                                  My understanding is that he would use an English speech synthesiser if he started now, as programs are better at switching to the correct synthesiser for the current language now. However, I gather that learning to interpret words at that speed is a skill that takes some practice (it’s certainly just gobbledygook to me) and he sees no reason to change since his existing setup works for him.

                                                  (Edit: fixed typo.)

                                                  1. 1

                                                    Right; I don’t think it was his original reason, but I think it’s the reason he’s still using it even after the original reason no longer holds; because this way is actually more effective even tho it’s a pain to learn.

                                                1. 5

                                                  Now we can essentially treat all state in the computer like a github repo, with the ability to fork the state of the entire system. I think this would be huge. People would exchange useful workspaces online much as they do with Docker images. People could tweak their workflows add useful scripts embedded into the workspaces. The possibilities really are amazing.

                                                  This must be satire, right?

                                                  Relational filesystems do not have a compelling usecase–I doubt that 30+ years of standard practice is just due to sheer ignorance. Forcing everything into a “message bus” is no wiser than, say, requiring every application to talk to each other and the kernel via UDP and msgpack/json/protobuf/xml. Arbitrary docking of windows to weird places doesn’t actually matter beyond spiffy tech demos. Having a copy-paste buffer larger than one item has not been historically shown to be useful.

                                                  This whole article is a laundry list of bad, silly, or debunked ideas.

                                                  1. 5

                                                    I agree that the stuff you quoted sounds like satire. And the arbitrary docking of windows is where I stopped reading the article. However, the copy-paste buffer larger than one item is, IMO, incredibly useful. It is something I have in Emacs and it annoyed me so much not to have it in the OS that it’s one of the few things I’ve felt the need to pay for.

                                                    1. 2

                                                      Get yourself a clipboard manager.

                                                      Security disclaimer: Makes copy&pasting passwords more insecure.

                                                      1. 1

                                                        Oh, I have one; in fact I have three, as it took me a while to find one I liked. (I could have been more explicit, but I didn’t want my comment to sound like a product ad: I’m not affiliated.) You’re right about cutting & paste of passwords, but the manager I use (CopyClip 2) has an Exception lists so you can stop it from recording anything from a list of applications of your choice. (Keychain, for example.)

                                                    2. 4

                                                      That may be the case, but surely in 20 years there will be a better desktop. Or will we be using OS X 10.42 and Windows 42?

                                                      Now that we have phones, desktop users are indeed a minority. But in 20 years, people will still need to create graphics, video, 3D content, audio, do machine learning, and yes unfortunately they will need to run C++ compilers and IDEs too :)

                                                      So if anyone thinks his ideas are stupid, then I would like know what you think will happen.

                                                      I think some of the details are wrong, but the gist seems to be that software is data-centric and composable. I get that companies want to lock up your data behind their applications, but if we can dream about universal basic income, let’s also dream about open data formats :)

                                                      1. 2

                                                        Well said. :)

                                                        I do expect that what’s actually going to happen is that the majority of the tasks you mention will be done on locked-down operating systems. They do provide better UX, for the things they can do, as long as you aren’t somebody who wants to look under the hood.

                                                        But by all means we should be discussing ways to keep it from going that way. Part of that is talking about what we even like about non-locked-down platforms… I’ve seen some convincing arguments and some unconvincing ones.

                                                      2. 3

                                                        I doubt that 30+ years of standard practice is just due to sheer ignorance.

                                                        I’m surprised you didn’t mention marketing forces as opposed to just technical design or sheer ignorance. Windows filesystem was designed for whatever reason they had. Monopolistic practices are why it and its successor stuck around. Apple’s filesystem was admittedly a piece of crap by modern standards that they replaced or are replacing. The UNIX stuff seem to be whatever gets popular in a major distribution, proprietary or open. Backwards compatibility with common ways of doing stuff also factors in. So, marketing and legal concerns (esp patent/copyright suits) seem to be main cause of what’s been standard practice.

                                                        Meanwhile, other OS’s like OpenVMS (RMS), BeOS, and AS/400 did filesystems differently with successful use by lots of companies. Not to mention all the distributed or object filesystems in academia with better properties than traditional ones or sometimes corporate uptake. Then, there’s the capability-based systems with their security advantages. Generally, something didn’t have the necessary ecosystem, didn’t act monopolistic, wasn’t backwards compatible, or was just one isolated work no big player was integrating. Many seemed technically superior to the competition at the time, though, better meeting users’ needs. Esp the three on top with successful field use.

                                                      1. 4

                                                        Really hard to beat Latex/Tex for mathematical typesetting.

                                                        1. 6

                                                          Sure. But Pages.app supports LaTeX and MathML now. Further, Org mode also supports Embedded LaTeX fragments directly, and Pandoc supports Markdown with embedded LaTeX math fragments. I think the author is on to something.

                                                          1. 3

                                                            It’s really hard to beat LaTeX if you need to produce glossaries and multiple indices.

                                                          1. 2

                                                            If you want a great “starter pack” for Emacs, I’ve looked at a bunch, and Prelude is by far my favorite one.

                                                            Emacs Redux is also a great blog where you can learn and pick up neat tricks.

                                                            1. 7

                                                              I would avoid heavy starter kits; they add quite a lot and customize Emacs significantly, and it can be more work to undo the choices they made than to add the configurations that you need.

                                                              Rather, I encourage people to scour for emacs.d repositories on github: many are very well commented, and you can easily start grabbing things that interest you.

                                                              1. 2

                                                                I dunno. I agree with the sentiment, but some of the default Emacs settings are really quite off-putting, and could give beginners a poor first impression. (Littering your disk with backup files & the shitty way buffer names for files with identical names are uniqified comes to mind) so I think it could make sense to use starter kits when you start out and then ditch it and grab just the bits you need / want from the kit. Of course I’m biased, because it’s what I did :-)

                                                                For what it’s worth, I used the “better defaults” package.

                                                                1. 1

                                                                  That’s the neat thing about Prelude, unlike other kits it’s not heavy at all.