1. 1

    Beginning of the end of a big chunk of ad-revenue source of revenue for tech business.

    (ok not a technology)

    1. 1

      I just finished adding a Trackpoint to my keyboard, so I have a quick way to move my cursor without having to move my hand too much. That gave me a good excuse to play with uinput (user-mode input devices for Linux).

      Github’s repository of the project

      1. 4

        You can achieve something similar using -fuzz in ImageMagick. convert -delay 10 input*.png -fuzz 5% +map -layers Optimize output.gif will produce a 10 fps GIF where pixels are constant unless their colors change by at least 5%, and performs global palette optimization on the result.

        1. 2

          That’s a great trick, does it work with other animated formats (especially those handling more than 256 colors)? I wish there was a codec optimized for screen casts (meaning here mostly static such as coding, not game screen casts), or codecs for which you could declare regions. So you would have a mask for the face of the speaker that is in a tiny box and the rest would use a different algorithm.

          1. 1

            You’d be better off sending the screen and the face as two separate video streams and letting the client render them together. Writing an encoder that tries to do segmenting like this automagically would be a huge pain. I believe H.264 has room in the standard for something like that however. Make sure you use YUV 4:4:4 colorspace, not 4:2:0 or 4:2:2 since those subsample the color information turning colored text into a blurry mess.

            As for better screen codecs, there are tons to choose from. ZMBV, dosbox’ capture codec, is one of the more interesting ones. I’ve worked on FFmpeg’s encoder for that. You also have VNC’s set of codecs, which are quite simple. APNG might also be an option.

            1. 2

              Thanks a lot for the explanation on the YUV spaces, now I understand why some mkv’s weren’t looking nice with text.

              1. 3

                Assuming you’re doing the face as a picture-in-picture for streaming, try aligning the face to a 32x32 grid (eg: make it 128x128 in the bottom-left corner).

                h.265 divides the image into blocks (of up to 32x32 pixels). If you align the sub-stream to that grid boundary you should get fewer encoding artifacts.

        1. 5

          I’ve done that at work because we needed our own infrastructure and I found a great deal on used equipment (just required to loan a truck to go to another state and load it from the storage it was in and going through stairs with large UPSes). I would:

          • Recommend for it if you want to learn how to deal with “pro” servers. There is so much I learned doing that: SAS, real RAID cards with battery backup for the cache, servers boot time, monitoring hardware and UPSes, automated deployment, mounting a rack, finding the right kind of rails (what a pain, there are so many models), distributing power supplies, VLANs, making and running your network cables properly, professional routers and switches and so many other things…

          • Recommend against it if you just need something that work, I would go with consumer machines for that, they are much more silent, they boot fast, and getting spare parts is cheap. Of course they are usually less reliable (no ECC-RAM, less rugged, lower quality components), but if you have good backups or redundancy, it shouldn’t matter much. And really hardware RAID (at least on the DELL PERC I have) has caused me more issues than it solved. As was said in other comments, old servers tend to use a LOT of power (so heat!) compared to today’s consumer systems for the same efficiency. And really if your room doesn’t have a good AC or air recycling system depending on the area, you are in for a surprise. The servers I got are most of the time not that noisy (bunch of Dell R[67]10 and HP DL380G6) and could clearly be in a room adjacent to a bedroom as long as they are not all at 100% CPU (or that you don’t force fans to max speed). In that case, they become pretty noisy, but it is not that bad (and I have always 5 machines running at a time, with others ready as backups).

          For dev, I would not trade my workstation with its NVMe drive for anything else… Just as an example (using mostly memory, but the loading time was reduced by almost the same ratio), that $1000 machine (i7-8700K, 32G, samsung 960pro nvme) runs a bunch of queries (250,000 to be exact) on redis (single instance in docker) in 2s whereas it takes 12s on a Dell R710…

          1. 11

            What is he referring to when he say “underground programming world”?

            1. 30

              this was also asked on HN: https://news.ycombinator.com/item?id=23689615

              quoting antirez:

              Yep it’s the open source, and in general the “spontaneous” development world, that happens without big money, just for hacking. This “place” once was kinda free and not observed much. Now you can’t say anything, if you don’t respect a good practice (LOL) people yell at you on Twitter. Even saying that commenting is a good idea is a problem. Not cool.

              1. 18

                So true: Imagine yelling at the mason that build you a house for free.

                Even for a paid work it would not acceptable.

                1. 4

                  In this analogy, if you think the mason is building your house wrong, it would be right to say something to him.

                  It wouldn’t be right to yell. But given the context of people complaining on twitter, seeing yelling might just be projecting.

                2. 8

                  Probably referring to things like this http://antirez.com/news/122

                3. 4

                  Interesting wording.

                  I thought about using “anti-commercial” for some of my projects, but felt it would require more explanatory text around it than I care to write.

                  1. 3

                    Maybe license it under a freeloading-corporate-hostile license [edited, was “business-hostile”], like https://licensezero.com/licenses/parity ?

                    I wrote about the reasoning to do so a while back: https://blog.joeardent.net/2017/01/say-no-to-corporate-friendly-licenses/

                    1. 2

                      But Parity is not business-hostile, quite the contrary! A lot of the thinking behind LicenseZeros licenses, especially around prototyping and such is precisely in the license for companies. They just don’t get to use it for free.

                      1. 3

                        I understand that’s the point, but that still means they deal with it on your terms, and you don’t need to grant any other licenses to anyone.

                        1. 1

                          Edited for clarity :)

                  1. 1

                    curl -i -H “Accept: application/json” -H “Content-Type: application/json” http://doesynaassupportothermimetypes.ynaas.com/

                    too bad…