1. 2

        What a wonderful, accurate, and relaxing video.

          1. 2

            Oh my goodness, how have I never run across this timing-diagram editor tool before 😍

            You can jump to the actual code that implements the above algorithm, but I prefer to think about implementations visually. Thus, I created this timing diagram that fully encapsulates all of the above steps, and the data movements between each part (click on the image for an editable, larger version; works best on desktop): (Image) Interactive Timing Diagram Editor View

            1. 2

              Previous: https://lobste.rs/s/3kcqtu/php_8_before_after

              (looks like the URL changed, so it didn’t get detected).

              1. 2

                Ah, that post is comparing PHP 7.4 with the (then) newly released 8.0, this post is comparing 8.0 to 8.1.

                1. 2

                  Oh wait, I missed that 🤦

              1. 5

                A table of contents would be fantastic. There’s a lot of helpful examples in here but you have to run through the whole slide deck to get to them.

                1. 1

                  This time, a single page with a nav will do the job. Thank you very much for your suggestion, I appreciate!

                1. 1

                  Company: Carbonhouse

                  Company site: https://www.carbonhouse.com/

                  Position(s): Web Designer

                  Location: Charlotte, NC / Remote / Hybrid


                  • Craft responsive and accessible websites for the entertainment and sports industries
                  • Deliver strategic and consistent end-to-end experience for users
                  • Influence the design and directions of the projects you work on
                  • Work collaboratively with developers to execute design vision
                  • Design according to requirements documentation
                  • Follow client brand guidelines and modifying these guidelines when appropriate

                  Tech stack: CSS, JS, PHP, FreeBSD

                  Contact: https://www.carbonhouse.com/careers/web-designer/

                  1. 2

                    See their paper on BullFrog:

                    BullFrog: Online Schema Evolution via Lazy Evaluation. Souvik Bhattacherjee, Gang Liao, Michael Hicks, and Daniel J. Abadi. In Proceedings of the ACM SIGMOD International Conference on Management of Data (SIGMOD), June 2021.

                    Also, nice that they just built this on top of PostgreSQL:

                    We implemented a complete prototype of BullFrog on top of PostgreSQL 11.0. Our implementation leverages PostgreSQL’s existing view expansion and query rewriting/optimization functionalities – we did not have to modify any core PostgreSQL code. Our bitmap data structures (see Section 3.3) use PostgreSQL’s existing TIDs for mapping tuples to bits in the bitmap.

                    1. 2

                      debugger: on_failed

                      Ugggh how did I not know about Ansible having a built-in interactive debugger

                      1. 1

                        Oh, nice, I’d forgotten about about:about 😁

                        1. 3

                          Linked from this article is also a super-helpful and interesting DTrace One-Liners

                          1. 2

                            Should have the “satire” tag (it’s not clear until you read to the punch line at the end.)

                            1. 1

                              Ah! Agreed, thanks, updated.

                            1. 9


                              Unlike many other HAT projects, CaribouLite utilizes the SMI (Secondary Memory Interface) present on all the 40-pin RPI versions. This interface is not thoroughly documented by both Raspberry-Pi documentation and Broadcomm’s reference manuals. An amazing work done by https://iosoft.blog/2020/07/16/raspberry-pi-smi/ (code in https://github.com/jbentham/rpi) in hacking this interface contributes to CaribouLite’s technical feasibility. A deeper overview of the interface is provided by G.J. Van Loo, 2017 https://github.com/cariboulabs/cariboulite/blob/main/docs/Secondary%20Memory%20Interface.pdf. The SMI interface allows exchanging up to ~500Mbit/s between the RPI and the HAT, and yet, the results vary between the different versions of RPI. The results further depend on the specific RPI version’s DMA speeds.

                              1. 2

                                Whoa that is news!

                              1. 2

                                ALiEn Project Website

                                ALiEn Documentation

                                What I find cool about this is that in order to handle the scale of the required simulations, the simulation code is entirely written in CUDA:

                                Artificial Life Environment (ALiEn) is a simulation program based on a specialized 2D physics and rendering engine in CUDA. Each simulated body has a graph-like structure of connected building blocks that can either be programmed or equipped with functions to act in the world (accelerators, sensors, weapons, constructors, etc.). Such internal processes are triggered by signals coming from circulating tokens. The bodies can be thought of as small machines or agents operating in a common environment.

                                The simulation code is written entirely in CUDA and highly optimized for large-scale real-time simulations of millions of bodies and particles.

                                1. 8

                                  Huge write-up about a huge release!

                                  • Async/await - SE-0296
                                  • Async/await: sequences - SE-0298
                                  • Effectful read-only properties - SE-0310
                                  • Structured concurrency - SE-0304
                                  • async let bindings - SE-0317
                                  • Continuations for interfacing async tasks with synchronous code - SE-0300
                                  • Actors - SE-0306
                                    • Beyond actor isolation, there are two other important differences between actors and classes:
                                      • Actors do not currently support inheritance, which makes their initializers much simpler – there is no need for convenience initializers, overriding, the final keyword, and more. This might change in the future.
                                      • All actors implicitly conform to a new Actor protocol; no other concrete type can use this. This allows you to restrict other parts of your code so it can work only with actors.
                                  • Global actors - SE-0316
                                  • Sendable and @Sendable closures - SE-0302
                                  • #if for postfix member expressions - SE-0308
                                  • Allow interchangeable use of CGFloat and Double types: - SE-0307
                                  • Codable synthesis for enums with associated values - SE-0295
                                  • lazy now works in local contexts
                                  • Extend property wrappers to function and closure parameters - SE-0293
                                  • Extending static member lookup in generic contexts - SE-0299
                                  • Concurrency Interoperability with Objective-C - SE-2097
                                  • Task Local Values - SE-0311
                                  • Package Collections - SE-0291
                                  1. 3

                                    I implemented a build-log parsing web app that would show which parts of the build failed using awk cgi. I’ll be really honest, I don’t recommend it. AWK is great if it is all you have, but compared to something like, python, perl, javascript, etc, it isn’t very pretty to build big parsers in, that correctly emit json or html. I can recommend CGI as a whole though, it’s great for quickly adding a hacky api to any service, especially if it is internal or has low volume. A lot of the stuff at my work is implemented like this since the engineering org is maybe ~25 people.

                                    Also, why the chroot? hopefully this behavior can be turned off. trying to copy over the interpreter and hoping ldd catches all the linked components seems troublesome for no real benefit. what would the scripts even usefully do in such a limited context?

                                    1. 5

                                      httpd with chroot is the default on OpenBSD. The philosophy is: why give an attacker able to compromise your web-app access to your entire system?

                                    1. 1

                                      Really glad to see the focus on performance improvements in the compiler & type system:

                                      Runtime Performance and Code Size Improvements

                                      In Swift 5.4, protocol conformance checks at runtime are significantly faster, thanks to a faster hash table implementation for caching previous lookup results. In particular, this speeds up common runtime as? and as! casting operations.

                                      Further, consecutive array modifications now avoid redundant uniqueness checks.

                                      Finally, there are a variety of performance improvements:

                                      • String interpolations are more aggressively constant-folded
                                      • Fewer retain/release calls, especially for inout function arguments and within loops
                                      • Generic metadata in the Standard Library is now specialized at compile time, reducing dirty memory usage and improving performance
                                      1. 3


                                        “Pyodide was originally developed inside Mozilla to allow the use of Python in Iodide, an experimental effort to build an interactive scientific computing environment for the web.”

                                        1. 9

                                          I’ve been using OpenSCAD for a few years and have made some pretty complicated parametric designs, but even in Chapter 2 I learned things I didn’t know about!

                                          Figure 4.: Preview individual geometry parts by temporarily prefixing them with a ! character

                                          Since our funnel shape is the subtractive part of a difference operation, it is somewhat difficult to model the shape “blindly”. If we prefix the funnel shape with an exclamation mark (!translate( … ) union() …) and run a preview, then only the funnel shape will be drawn and no other geometry (Figure 4.). This selective preview of individual geometry parts is very useful and you will probably use it very often as a modeling aid.