1. 17

    Excellent doggo detection. 8/10 would listen to bark.

    As the ESP32 can do voice/wakeword detection I was kind of hoping this would be some kind of wake word detection rejigged to detect barks. But still an impressive detector (and much simpler!) :)

    (Full disclosure: I work on ESP32 software at Espressif.)

    1. 4

      Wow I had no idea. Thanks for letting me know about that. Perhaps there is a need for Woof Alert v2 :-P

    1. 5

      Does Barry have his own email address?

      1. 5

        He does!

      1. 5

        For all those who think that the 60 characters ergonomics rule doesn’t matter: show some empathy for dyslexic coders. Even when accounting for indentation, it’s not easy for everyone to read lines > 80 characters. Anecdotally, I think the developer population has a higher number of dyslexics than the general population so it’s surprising to not see this come up more in these discussions.

        1. 33

          They’re more popular than ever, as AWS Lambda.

          1. 27

            If I was good at writing satire, I would write a satire article that is a CGI scripting tutorial, but never use the word CGI and instead call it a “new Open Source function as a service library”.

            Similar twist: “Hi folks, I wrote a new library that converts JVM byte code to WebAssembly. For the first time ever, we can write Java that runs in the browser! Never before seen!”

            1. 11

              They are both stack machines, so it should be simple enough I guess. Don’t give me ideas.

              1. 5

                Do it.

              2. 3

                I started trying to write this article a while back, not as satire, but as a direct comparison to the evolution of serverless. But then I realized it’s probably been done better than I could do and aborted.

                1. 7

                  I have literally never not published something just because I think it might have been done. If I see something that is almost entirely what I wrote, sure, I’ll axe it. (Even retroactively, in one case, where I read someone else with a better take and thought, “oh, never mind then.”) But if I haven’t specifically read an article of what I want to write, then:

                  1. I might have a unique take after all.
                  2. Even if my take isn’t unique, it might be different enough to be helpful to someone else.
                  3. Even if it’s neither unique nor different enough, if I’m not aware of it (and after deliberately cursory search can’t find it, if applicable), it will likely reach a different audience.

                  In the draft post you’ve got, I think you are heading in a good direction, and it might be worth continuing. I’d suggest dropping the FastCGI/SCGI/WSGI/Rack section in favor of diving a lot more into early attempts to speed up CGI requests and how those relate to lambdas (you touch on mod_perl, but I’d also at least touch on PHP in particular, and quite possibly AOLServer, as close peers), highlighting similar issues with startup time and how lambdas are trying to solve them in their own ways/differently.

                  The other way to approach this kind of thing, incidentally, which I like for my equivalent writings on these axes, is to walk through how trying to solve the problems with the old old-and-busted resulted in the new old-and-busted. You can write that kind of article sarcastically, but you definitely don’t have to; my article comparing Win32 to Flux has a bit of humor in it, but I deliberately avoided anything past that. If you went that route, the FastCGI/SCGI section fits better, but also pairs very nicely with talking about things like the Danga Interactive products (Gearman, memcache, Perlbal, etc.), which turn out to be necessarily reinvented whenever a PaaS-like environment is used.

                  Anyway, all this to say: I’d love to see someone actually write a post along these lines. If you really don’t want to finish yours, you’ve given me half a mind to take my own stab.

                2. 3

                  I have that as a laptop sticker. I don’t know if commercial advertising on lobste.rs is appropriate (even for an enterprise which makes me on the order of $2/month) so I won’t link it directly, but you could probably find it quite easily by searching redbubble.com for “serverless cgi-bin”

                  There is the reasonable objection that using a FaaS platform you have the expectation that it will autoscale to performance levels far in excess of anything that cgi-bin of yore managed, but really, that’s a implementation detail not an attribute of the API

                  1. 2

                    Kelsey Hightower made a similar comparison at Gophercon: https://youtu.be/U7glyWYj4qg

                    1. 2

                      “This is xinetd… the new hotness”

                      Love it.

                1. 8

                  I’m not sure if it’s appropriate to talk about CGI like it’s dead. OpenBSD ships slowcgi(8) and their man page viewer in mandoc is a genuine CGI application. The BCHS people endorse pure CGI with C, too.

                  (Whether these are good ideas is another story, but they exist right now.)

                  1. 5

                    I use them for a couple things (the order form on https://atreus.technomancy.us being one of them), and they’re fantastically useful for sites like that which can be 99% static. I wish more people realized that not everything has to be full of moving parts everywhere.

                    1. 3

                      Whenever I have some sort of local web thing, I still use CGI. It’s easy and, like you say, works well when the site is mostly static. Adding all that other stuff seems like a complete waste.

                    2. 4

                      Author does write

                      CGI scripting was undoubtedly useful and continues to be useful for small scale web applications, such as developer utilities, simple form data collection and local intranet tools.

                      (my emphasis)

                      1. 1

                        Oh, I see. My bad. I skimmed the article too quickly.

                      2. 2

                        In the first draft of this article, I used the term “near obsolescence” rather than just the term “obsolescence”, because you’re right, there are still people out there using CGI scripts (I am one of them).

                        Ultimately, I removed the weakening word. Determining when a technology is obsolete is a tough call, and often opinion based. In this case, it’s my opinion. If the definition of obsolete is “no longer produced or used; out of date.”, then there are very few technologies that can truly and in all cases be described as obsolete. In the case of CGI scripts as they were used in the late 90’s, I think it’s safe to say that that train left the station a long time ago.

                        1. 4

                          First I thought no one needs this article, but then I realized I’m now old. ;)

                          By the way, why your website keeps making requests to https://rickcarlino.com/owa/blank.php ?

                          1. 1

                            I realized I’m now old

                            Same.

                            making requests to https://rickcarlino.com/owa/blank.php

                            Open Web Analytics

                            1. 2

                              It sounds like a rather intrusive approach, and for people on mobile, it’s not free of charge either.

                      1. 3

                        Chuck’s words on the importance of fun cannot be understated. Anecdotally, it seems that programming as a hobby is becoming less and less common. Many of the great breakthroughs in computing were created by or for hobbyists. I hope more people can see the fulfillment in programming creatively or as a hobby.

                        1. 1

                          Setting up the serial line as a separate network adapter on the laptop and setting up IP forwarding in the kernel is probably the “right” way to do it, but it’s generally a lot easier to run a getty on the serial port (to ask for login/password and launch a shell), and then have Trumpet just launch SLiRP, a userspace implementation of SLIP/PPP and NAT.

                          1. 2

                            Aha! I wish I knew what SLiRP was a month ago. I will give it a try on my next project.

                            I had so many failed attempts with PPPD that I gave up.

                            Thanks for pointing me in the right direction!

                          1. 9

                            If you were broke in the 90’s, you may want to say thanks for Trumpet Winsock now: https://thanksfortrumpetwinsock.com/

                            1. 3

                              Purchased a license last night! I hope others do the same.

                            1. 3

                              I would have gone for Ethernet, personally. I’ve definitely had to do SLIP before, on a laptop where I didn’t have a PCMCIA ethernet card; I set up an NT 4 VM to do it. Once I got the Ethernet card, I decided to use ZModem to transfer the drivers for it over.

                              1. 3

                                I picked up an old ethernet card that was new in box, but it expected Windows for Workgroups. This machine only had the standard home edition of 3.1. I never was able to get the card running, which is unfortunate given the slow speeds of the serial line.

                                1. 1

                                  Now that you do have Internet, you could transfer windows 3.11 to the machine.

                              1. 2

                                can we get a retrocomputing tag? historical here is a real stretch.

                                1. 1

                                  Sorry :(. I did not see that tag in the list and historical was the closest relevant thing I could find.

                                  1. 3

                                    FWIW, I think historical is quite appropriate for this story.

                                    @evanmcc I don’t understand your concern. What is the important distinction that a new tag would make? What other recent historical links would be better labeled retrocomputing?

                                1. 3

                                  I’ve been observing this community over the last few months with great interest. http://tilde.club/ seemed very interesting the first time I found it (I wished it had existed when I was limited to using Windows), but it was closed (which of course has it’s benefits too, as this site shows). Nevertheless I consider http://tilde.town/ to be more successful in it’s message and idea.

                                  It’s kind of a more general, and larger, community like the one around suckless/cat-v/nixers that I found very interesting around a year ago. They have common opinions that go against contemporary trends, forging a community that does stuff and creates stuff. But what makes it even more interesting is how it transcends just one site, while not loosing it’s character. The affinity to the fediverse also delights me.

                                  Sadly it seems to be kind of a 10%/90% affair when it comes to activity: Just look at http://tilde.town/ as you’ll see most people still have the little more added than the default index.html (examples 1, 2). What I read into this is that although this exists, and people find it interesting, many don’t know what to do with it. Kind of sad… General lack of creativity maybe? But I haven’t seen it from the other side, so maybe they are more active in other ways.

                                  1. 5

                                    Not all people are super creative with their sites; at least for me most of the social activity occurs on the irc net and the mailing lists.

                                    1. 3

                                      I think it’s important to note that many of these pubnix servers are not oriented toward generating a lot of public web content, but rather to intra-system activities. IRC chat, bulletin boards, local gaming, “botany”, grafitti walls, and so on are extremely popular. tilde.town is a lush playground of activity of all sorts, just not a lot of it bleeds out through the web. But that’s also kind of the point. Everyone on a tilde knows how to toss a webpage out there in some form or another. They congregate for the community. The outputs are very different.

                                      Now, there are other tildes, like my own https://cosmic.voyage (or gopher://cosmic.voyage) which ARE oriented toward a public channel (collaborative storytelling in our case). Our activity is still more robust in IRC with people talking and planning than the output suggests.

                                      Finally, you touched on federation and that’s some new and exciting territory for the tildeverse. While we do have a round-robin of IRC servers that all federate, there’s also some novel experimentation going on. The circumlunar pubnix servers are rsyncing their local bulletin boards to one another. Cosmic, baud.baby, and circumlunar are experimenting with a low-fi social networking system built on top of fingerd. There’s a lot of playing around of this sort as people push limits and turn their hobby eye toward community building.

                                      1. 2

                                        maybe they are more active in other ways.

                                        Yes. The community is super active on IRC, 24 hours a day. They also have a local intranet for more private things that users don’t want indexed by google. There are a number of CLI apps that don’t have a web presence, also, such as feels, bbj, botany etc…

                                      1. 6

                                        What? No links at all to these fabulous text only websites?

                                        1. 2

                                          You’re right! I can’t believe I forgot that “detail”. I will update the article when I get home. Sorry about that! Thanks for pointing this out.

                                        1. 3

                                          This is interesting. But between HTTPs and being lynx friendly, I’d choose the former.

                                          1. 3

                                            I’m not sure where you got the idea lynx doesn’t support https, but it does.

                                            There are a few text based browsers that support more modern features as well. Elinks for example has mouse support and tabs. Links2 also supports graphics, even in framebuffer mode. So technically your OS is text only, you can still browse in graphics mode.

                                            1. 2

                                              Do you know why this viewpoint is so common? SSL works fine on my machine™, but I hear this complaint a lot from people. Earlier comment source

                                              1. 2

                                                That might be an explanation. I never had any issue with it TBH, and I’m one of those people who have a/multiple text based browsers installed on my machine by default and regularly try out another distro. It sounds it’s just a packaging issue on some versions.

                                            2. 2

                                              Glad you liked my article!

                                              I don’t use Lynx more than a few times a month (this was a thought experiment, mostly). My understanding of the SSL issues in Lynx is that it is related to how the distros configure OpenSSL. I never bothered looking deeper into the matter, but have heard from users on HN that it is possible, it’s just not the default on most [Debian based?] systems.

                                              If someone out there does use Lynx on a regular basis, would love to hear about a solution.

                                              1. 0

                                                Apologies, I meant: your website is Lynx friendly, but it’s not using HTTPs. Being lynx friendly is value-added, but using HTTPs is a must.

                                              2. 1

                                                Holy False Dilemma, Batman!

                                                lynx supports HTTPS just fine. Always has, for values of “always” including “longer than most here have been programming”. There’s nothing about HTTPS which excludes lynx or any other text browser.

                                              1. 5

                                                There’s more to life than HTTP

                                                Agreed.

                                                I’ve found MQTT to be a good alternative to HTTP for real-time (or extremely stateful) applications, especially those that exist outside of a web browser. Whenever there is overlap with the web, it is fairly easy to tunnel MQTT over WebSockets.

                                                1. 0

                                                  How does MQTT fair against HTTP with billions of users? HTTP has the advantage here for not needing to be stateful.

                                                  As the article says too: sometimes HTTP makes sense. IMO the title should have something like “You should use a real pub/sub broker, not HTTP - VerneMQ is one”.

                                                  1. 11

                                                    You don’t have billions of users. Or if you do, you’re unusual, and shouldn’t be making technology decisions based on blog posts.

                                                    1. 2

                                                      I can’t say much for VerneMQ, but most of the solutions out there were built for very large scale.

                                                      The broker I use (RabbitMQ) supports MQTT and supposedly handles one million requests per second although I’ve never dealt with that much traffic first hand. I’ve heard similar stories for the MQTT product that IBM sells.

                                                    1. 7

                                                      In the other direction, there’s the Grammatical Framework that uses dependent types to translate among multiple languages.

                                                      I used GF to build a small webapp to improve my Swedish vocabulary while I lived there. The code would generate random sentences in both Swedish and English and I’d enter the translation and check my input against the GF translation.

                                                      1. 1

                                                        Wow, that’s neat. Did you open source it, by any chance?

                                                        1. 1

                                                          Please share this with us. Would love to see it

                                                          1. 1

                                                            Sadly no, I think it’s gone forever. Probably wouldn’t be hard to recreate it though.

                                                        1. 2

                                                          I like jrnl I never get to actually use it continuously…

                                                          1. 4

                                                            I wrote a cron job that uses espeak and notify-send to tell me “Please make a log entry” every half hour. I was going to put it in the article, but people always give me funny looks about it so I left that part out ;-)

                                                            Maybe I will make a part II to this article.

                                                            1. 1

                                                              That probably helps in the beginning but it seems like it would be very annoying and it would break concentration efforts.

                                                            2. 1

                                                              I’ve solved this with a physical journal. I find it’s harder to forget when it’s in front of me. Downsides, my handwriting could be better, so it’s not the easiest thing to review. Plus it’s organised chronologically, rather than by task.

                                                            1. 1

                                                              Great to see folks using this language- I’ve had my eyes on it for some time, but haven’t tried it out yet.

                                                              Is the book available in text or Epub format?

                                                              1. 2

                                                                Not yet as far as I can tell. The other ATS documents are available in PDF and epub.

                                                              1. 14

                                                                Yes I do! I thought I was alone in this practice.

                                                                1. Set a cron job to call espeak every 16 minutes and say “Please make a log entry” (so I don’t forget)
                                                                2. Use jrnl (http://jrnl.sh/) to keep logs, making backups as needed.

                                                                Being able to remember what you did Friday afternoon on a Monday morning is valuable.

                                                                1. 3

                                                                  What I like about jrnl’s date syntax is how easy it is to inject events into the past. For example I just got interruped by a coworker so I can tell jrnl after he left: “jrnl 45 minutes ago: hunt for bug foo #32456”

                                                                  1. 2

                                                                    OMG. This is almost exactly what I need in my life.

                                                                    1. 1

                                                                      Never heard of jrnl before. Thanks! I am using my own scipt log-append, but it’s only meant to report what’s happening right now. In workplace I plug it into booting, shutting down, screen lock and unlock too, so I have rough estimate of time spent outside of desk and time spent in work in general. My other scripts help me here: day and month (which I have somehow forgotten to commit and push).

                                                                    1. 2

                                                                      Am I the only one that does not see big benefits in this?

                                                                      1. 9

                                                                        It’s actually a huge deal. If you were around the web in the late 90’s, you may remember plugins like “ThirdVoice”. It was basically Disqus, for every website, managed externally from the website.

                                                                        Social sticky notes + social comments + notes for any site.

                                                                        I haven’t read the spec yet, but I imagine this is significant for taking discussions out of the “walled gardens” and giving that control back to users. I would quite like the ability to discuss a websites content without needing to register for an account on every page I visit.

                                                                        Although many won’t remember ThirdVoice today, it was quite disruptive in that regard. It gave end users to have a discussion on a medium that was entirely separate from the main site. I even recall websites such as SayNoToThirdVoice.com (or this one I found via google that is still online) organized by webmasters who felt they were losing control over discussions about their site. It will be exciting to see where this one goes.

                                                                        1. 6

                                                                          If the only thing it achieves is getting rid of disqus and facebook comments then that will count as a win to me :)

                                                                        2. 4

                                                                          I’m not even really sure I understand what it is.