1. 6

    Maybe it could be of interest here. The researcher from my alma mater was the initial author of the compression scheme used in this standard. They even created a video promoting that fact. What is more interesting is the fact that the companies tried to patent his work which he wanted to stay publicly available for anyone and this started a long legal battle between him and Google.

    1. 3

      Yep, the legal stuff around compression is always a headache–see also JPEG2000 iirc. One of the best examples in arguments against patents in software, if you ask me.

      1. 3

        The original JPEG as well, the arithmetic coding encumbered by IBM well into 2000s.

    1. 12

      This book was recommended to me by a senior programmer (my boss) back in 2006-2007. He introduced the book to me as, “This will teach the concepts of functional programming to you in a somewhat FP-hostile environment – Perl. But, it turns out that’s a lovely and fun way to learn the concepts.” At that time, FP wasn’t popular in any mainstream languages (e.g. Java was at 1.x versions headed toward Java 7, Clojure was new or non-existent, and FP was uncommon in JavaScript and Python communities). Meanwhile, in our production environment at a BigCo, Perl was the only dynamic language allowed in real apps, because it was commonly used as a portable alternative to shell scripts. This meant I could toy around with FP concepts while writing “production code” (typically, the wrappers & scripts surrounding our “real” app, which was usually written in Java).

      Higher-Order Perl was an enlightening read and it also gave me a deeper appreciation of Perl as a language for fun “expressivity hacking”. It was also when I started to go down the FP rabbit hole, which eventually led me to FP in JavaScript, Scheme/SICP/Racket, Clojure, etc. So I recall the book fondly! (It was also my last experience with Perl, so I left on a high note!)

      1. 2

        It is said in the preface, I think, that Perl can almost be considered a Lisp, so it isn’t at all surprising that it fits into FP mindset so well. I found the quote from the book:

        The book Paradigms of Artificial Intelligence Programming, by Peter Norvig, includes a section titled “What Makes Lisp Different?” that describes seven features of Lisp. Perl shares six of these features.

        ( Here you can find the original 7 features of Lisp listed in the book mentioned in the quote. )

      1. 5

        The regex as a value generator, as used in this book, is really quite good. I’ve been dying to see somebody write it up and stick it on CPAN.

        1. 3

          Which chapter? any link?

          1. 6

            I think parent comment mentions the Infinite Streams chapter of the book: https://hop.perl.plover.com/book/pdf/06InfiniteStreams.pdf (see page 18 in the link).

            1. 4

              Section 6.5 on page 272 for those just peeking in a browser. Good stuff! Thank you.

              1. 2

                Thanks! much appreciated.

          1. 6

            Hm, seems like a nice addition to the existing explain service I know - https://explain.depesz.com

            Here is a comparison between the outputs from the same query plan:

            1. 3

              It’s that and also a fork/continuation of PEV, which is awesome and left complete about 4y ago, but a lot of people wanted results to be stored server-side (for collaboration) rather than browser local.

              I remember dalibo forking it some time ago, it looks like it’s come a long way!

            1. 1

              Really insightful! I especially like the way it showed the relationship between different mathematical operations, just by switching the notation. Which reminded me about a similar thing that could be done - changing the usage of pi in mathematics to instead use tau as the basic mathematical constant.

              1. 4

                Is there sam sort of a description of the framework (maybe a blogpost or a video) ? Like highlevel description & key differences from the competition in the web framework space?

                1. 2

                  Overview of framework here: https://github.com/treenotation/jtree/tree/master/treeComponentFramework

                  No video yet, but good suggestion.

                1. 2

                  For a while I have been reading Unix & Linux System Administration Handbook. So far I love how they included very opinionated statements about the technologies that are available. It is really refreshing to see the practical side exposed instead of the hype alone, which unfortunately is not what’s often found in various web sources (or other books for that matter). I also like the answer to the why question that’s included in most of the chapters. It is in my opinion very useful, especially when reading about some more obscure topic (or something that isn’t used at the day job).

                  1. 2

                    I’ve never really needed it as a (mostly) hobby developer, but setting that aside, I think I was initially confused by the concept, that led me to be disappointed in what it, specifically docker-like, actually does. I thought that containers are like minimal VM’s that could be described easily shared without all the dependencies. That different containers could implement interfaces that made scaling and re-placing more seamless. I that an image could be generated and then inspected while it’s running. To be fair, I have no idea where I got the ideas from, seeing that I never used it, and when I tried it once I was very confused.

                    1. 2

                      “Containers” sort of means two things:

                      • OS facilities for lightweight “virtualization” by namespacing all the objects (filesystem, processes, users, network interfaces etc.) — FreeBSD Jails, Solaris Zones, Linux namespaces+cgroups-kind-of-a-mess-but-it’s-flexible-af
                      • tools for building and running “lightweight” OS images with filesystem layers and stuff

                      The latter usually relies on the former, but it can use real (ha) virtualization too.

                      I thought that containers are like minimal VM’s that could be described easily shared without all the dependencies

                      Well, the container images can be shared, they’re like glorified tarballs of a filesystem root that has a whole (stripped down) OS with your app and its dependencies.

                      different containers could implement interfaces that made scaling and re-placing more seamless

                      Anything related to scaling and stuff is a layer above, with all the fancy orchestration systems…

                      an image could be generated and then inspected while it’s running

                      Well, that sounds true? What do you mean by “inspected”?

                      1. 1

                        Also to explore these concepts by working through examples I recommend checking out the diyC project.

                    1. 1

                      Setting up new work laptop - Lenovo T490 with quite a beefy specs (a CentOS derivative). Plus, probably I’m gonna start reading Permanent Record by Ed Snowden.

                      1. 5

                        My shell prompt is quite involved, but I’m using fish, so I’m not gonna paste the whole code here.

                        But I’d like to share one change in approach, that I found a game changer:

                        Make it two lines.

                        The more stuff you put into your prompt, the longer it gets, so what I do is that I have one line with the path, git info etc and the second line just starts with . So my actual prompt is always on the very left, no matter how long the path. Which also means I don’t have to shorten the path or other things I’ve seen people do.

                        For example right now, it looks like this:

                        ~/Work/secret-project on master|→25!11?1
                        [2] ➤
                        

                        The git status on the top right means: 25 files staged, 11 changed, 1 untracked. The [2] is the return code of the last execution.

                        Of course there’s lots of colors. :)

                        1. 3

                          That’s also my approach to command line prompt, with the difference that I use Bash (but recently I have been exploring fish as a daily driver as well). I can’t recommend it enough, especially given the fact that current monitors allow for giving up one line like that.

                          1. 1

                            Similar here in fish:

                            ~/Code/somerepo master
                            ➫ 
                            

                            I only did a few small things after switching to fish:

                            ~/.config/fish/fish_variables (Set Vi mode)

                            SETUVAR fish_key_bindings:fish_vi_key_bindings
                            

                            ~/.config/fish/config.fish (ctrl-f to accept autocomplete suggestions in Vi mode)

                            bind -M insert \cf accept-autosuggestion
                            

                            Install pure

                            ~/.config/fish/conf.d/pure.fish:

                            _pure_set_default pure_symbol_prompt "➫"
                            _pure_set_default pure_symbol_reverse_prompt "➬"  # Shown in Vi edit mode
                            
                          1. 2

                            Truely, one of the greatest storytellers :D Thank you for posting this talk!

                            For people who would like to experience some of the style of storytelling in form different than lecture I strongly recommend reading book about Richard Feynman’s life - “Surely You’re Joking Mr. Feynman!”

                            1. 2

                              :D It’s on my to read pile, just haven’t got to it yet

                            1. 2

                              Learning for LFCS exam.