|
Intro Here’s a quick update on the PiArtFrame. I already posted an update in the old post, so to keep things organized, I decided to write a new one. As reference you can read the old post Basically, GitHub user kevlol has ported the Python code by runezor (the original PiArtFrame ) to C++. This is awesome because: The system is more stable. You can choose the exact refresh time. You can adjust the “black level” of the generat..
|
|
Making Smarter A/B Testing Decisions with Event Tracking and Session Replays
-
devblog.kogan.com
-
1 year ago
-
eng
A/B tests are theoretically simple but sometimes offer challenges when insufficient data or events are tracked. In e-commerce, conversion rates are often highlighted as a key metric but what causes it and why. By leveraging additional tools that enable event tracking and session replays such as FullStory we can attach context and understand what users are actually doing, allowing us to make data-driven decisions which is crucial in modern b....
|
|
This is a story about a failure to apply dynamic programming to a woodworking project. I’ve been building a shed in my backyard, and for one section I decided to build the floor by laying 2x4 planks side by side. I didn’t feel the need to join them with tongue-and-groove, but I did notice that using 2x4s alone wouldn’t fit the width they were supposed to fill. I also had some 2x6 boards left over from a different part of the shed, and I rea..
|
|
This is a story about a failure to apply dynamic programming to a woodworking project. I’ve been building a shed in my backyard, and for one section I decided to build the floor by laying 2x4 planks side by side. I didn’t feel the need to join them with tongue-and-groove, but I did notice that using 2x4s alone wouldn’t fit the width they were supposed to fill. I also had some 2x6 boards left over from a different part of the shed, and I rea..
|
|
This is a story about a failure to apply dynamic programming to a woodworking project. I’ve been building a shed in my backyard, and for one section I decided to build the floor by laying 2x4 planks side by side. I didn’t feel the need to join them with tongue-and-groove, but I did notice that using 2x4s alone wouldn’t fit the width they were supposed to fill. I also had some 2x6 boards left over from a different part of the shed, and I rea..
|
I am playing Marvel’s Midnight Suns. Like any big modern game, it is a sloppy mess of systems, for which the balance and neatness of design doesn’t matter as the point is the joy of the complex systems smooshing together. Many characters can take actions to add the “Lifesteal” modifier to attacks. Traditionally, Lifesteal (or […]
|
|
Under ASP.NET 8, NGINX returns 502 Bad Gateway after authentication by IdentityServer
-
nicolaiarocci.com
-
1 year ago
-
eng
Today, I learned the hard way that NGINX has default buffer sizes, which can cause trouble in specific scenarios like mine.
|
|
A developer’s journey through LLM-powered development tools. Shares favorite tools, reasons for skipping others, and 8 battle-tested tips for LLM coding.
|
|
A developer’s journey through LLM-powered development tools. Shares favorite tools, reasons for skipping others, and 8 battle-tested tips for LLM coding.
|
|
Introduction Web scraping typically refers to an automated process of collecting data from websites. On a high level, you're essentially making a bot that visits a website, detects the data you're interested in, and then stores it into some appropriate data structure, so you can easily analyze and access it
|
|
I admit, like many of my compatriots in this last year and a half, I follow a lot more tennis than usual, and it is all the fault (or merit) of Jannick Sinner. The top-level pro tennis field appears distant, privileged, brilliant and rewarding. We appreciate the immense talent of these players and sympathize with the struggle and stress they undergo. We praise their character, determination, and mental strength. They make a lot of money, so..
|
|
Fearless Concurrency Ep.1: Rust's Approach to Safe and Manageable Multithreading
-
www.ardanlabs.com
-
1 year ago
-
eng
Introduction: In Episode 1 of the Fearless Concurrency in Rust series, Herbert Wolverson introduces the foundational concept of threads in programming, tracing their origins and evolution while demonstrating how Rust handles concurrency in a safer, more manageable way. He explores the history of threads and their role in enabling programs to perform multiple tasks simultaneously, comparing Rust’s threading model with traditional approach..
|
|
This is part 4 from series “Tiny Great Languages”. Final code is on Github. Part 1: Assembly. Part 2: BASIC. Part 3: Forth/MOUSE. Part 4: Lisp. Part 5: APL/K. Part 6: PL/0. Done with the concatenative language MOUSE, we can now turn our attention to another small and elegant language from way back: Lisp. Lisp is famous for its minimalist syntax (similar to Forth, the parser is almost nonexistent) and its clear, logical evaluation rules.
|
|
This is part 4 from series “Tiny Great Languages”. Final code is on Github. Part 1: Assembly. Part 2: BASIC. Part 3: Forth/MOUSE. Part 4: Lisp. Part 5: APL/K. Part 6: PL/0. Done with the concatenative language MOUSE, we can now turn our attention to another small and elegant language from way back: Lisp. Lisp is famous for its minimalist syntax (similar to Forth, the parser is almost nonexistent) and its clear, logical evaluation rules.
|
|
Reflecting on my journey with computers, from the C64 and Amiga 500 to the present day, I've found a renewed excitement in software development. New tools like repl.it and websim.ai empower rapid creation of full-stack, disposable web apps – software built for personal use and easily discarded. This ease of creation removes the barrier to starting projects, making the web an ideal platform for even single-user applications. It's a shift fr..
|
|
Reflecting on my journey with computers, from the C64 and Amiga 500 to the present day, I've found a renewed excitement in software development. New tools like repl.it and websim.ai empower rapid creation of full-stack, disposable web apps – software built for personal use and easily discarded. This ease of creation removes the barrier to starting projects, making the web an ideal platform for even single-user applications. It's a shift fr..
|
|
Strokkur The main attraction at Geysir is Strokkur, a geyser that supposedly erupts about every 10 minutes. While we were there, it seemed to erupt about every 5 minutes! We saw more than half a dozen eruptions, and the height varied a lot. Geysir The namesake of Geysir, this geyser is a stone’s throw from Strokkur, but nowadays is dormant...
|
|
Strokkur The main attraction at Geysir is Strokkur, a geyser that supposedly erupts about every 10 minutes. While we were there, it seemed to erupt about every 5 minutes! We saw more than half a dozen eruptions, and the height varied a lot. Geysir The namesake of Geysir, this geyser is a stone’s throw from Strokkur, but nowadays is dormant...
|
|
We’re excited to announce a new Snyk AppRisk integration with Orca Security that brings together application security from Snyk and leading cloud security from Orca.
|
|
Caching can be super complicated in MediaWiki because there are many different types of cache. This article goes over what to do for each kind.
|
|
Caching can be super complicated in MediaWiki because there are many different types of cache. This article goes over what to do for each kind.
|
|
Caching can be super complicated in MediaWiki because there are many different types of cache. This article goes over what to do for each kind.
|
|
Caching can be super complicated in MediaWiki because there are many different types of cache. This article goes over what to do for each kind.
|
|
Caching can be super complicated in MediaWiki because there are many different types of cache. This article goes over what to do for each kind.
|
|
Caching can be super complicated in MediaWiki because there are many different types of cache. This article goes over what to do for each kind.
|
|
Caching can be super complicated in MediaWiki because there are many different types of cache. This article goes over what to do for each kind.
|
|
Well-ingrained into every Emacs user is the echo area, a one-stop shop to receive any kind of message from the editor, located at the bottom of the frame. Posting messages to this area from elisp couldn't be simpler: (message "Hello world") If we want to get a little fancier, we can propertize the text to add some styling. (message (propertize "hello " 'face '(:foreground "#C3E88D")) (propertize "world" 'face '(:foreground "#FF5370"....
|
|
This is part 3 from series “Tiny Great Languages”. Final code is on Github. Part 1: Assembly. Part 2: BASIC. Part 3: Forth/MOUSE. Part 4: Lisp. Part 5: APL/K. Part 6: PL/0. Let’s go Forth. A concatenative language available on early computers, a great example of how small, elegant languages can be both powerful and efficient. I’ve already covered building a proper Forth from the ground up in an earlier post.
|
|
We’re going to be writing a BF compiler for a class I’m in. Last night I threw together a little interpreter for the program in about an hour; it doesn’t do input—that should be easy to add—but it’s enough to handle some benchmarks for the language, albeit slowly. You can see my repository on Codeberg for the source code. I needed one function to do two closely related jobs—the logic was identical, but some parameters needed to chan....
|
|
This is part 3 from series “Tiny Great Languages”. Final code is on Github. Part 1: Assembly. Part 2: BASIC. Part 3: Forth/MOUSE. Part 4: Lisp. Part 5: APL/K. Part 6: PL/0. Let’s go Forth. A concatenative language available on early computers, a great example of how small, elegant languages can be both powerful and efficient. I’ve already covered building a proper Forth from the ground up in an earlier post.
|
|
We’re going to be writing a BF compiler for a class I’m in. Last night I threw together a little interpreter for the program in about an hour; it doesn’t do input—that should be easy to add—but it’s enough to handle some benchmarks for the language, albeit slowly. You can see my repository on Codeberg for the source code. I needed one function to do two closely related jobs—the logic was identical, but some parameters needed to chan....
|
|
In the context of Alejandro Colomar stepping down as a man-pages maintainer :(, I learned from him that it is possible with git to create an email patch set that spans multiple target repositories. Specifically, he pointed to a review thread by Jiri Olsa where this was done, and whose outline takes a similar shape to this (simplified): [PATCH proj v3 0/3] foobar: Add transmogrifier [PATCH proj v3 1/3] foobar: Prepare flux compe....
|
|
In the context of Alejandro Colomar stepping down as a man-pages maintainer :(, I learned from him that it is possible with git to create an email patch set that spans multiple target repositories. Specifically, he pointed to a review thread by Jiri Olsa where this was done, and whose outline takes a similar shape to this (simplified): [PATCH proj v3 0/3] foobar: Add transmogrifier [PATCH proj v3 1/3] foobar: Prepare flux compe....
|
|
In the context of Alejandro Colomar stepping down as a man-pages maintainer :(, I learned from him that it is possible with git to create an email patch set that spans multiple target repositories. Specifically, he pointed to a review thread by Jiri Olsa where this was done, and whose outline takes a similar shape to this (simplified): [PATCH proj v3 0/3] foobar: Add transmogrifier [PATCH proj v3 1/3] foobar: Prepare flux compe....
|
|
In the end we won because the open source community started to converge on distributed version control and we were the only ones in the hosting space that truly cared about how developers worked at all. The only ones who questioned it, approached it from first principles, tried to make it better holistically rather than just throwing more features onto something existing in order to sell it. Full story here . A great run-down by Scott C..
|
|
Ransomware makes up 154 million of the threats Cisco blocks monthly; information stealers make up 246 million more. However, the continued evolution of online threats from ransomware and persistent bad actors is only one small piece of the risk management puzzle. Security leaders are not only responding to more sophisticated and expanding threats, but they’re […] The post Where Do I Start With SASE Evaluations? Gartner® Report appeared ..
|
|
This is part 2 from series “Tiny Great Languages”. Final code is on Github. Part 1: Assembly. Part 2: BASIC. Part 3: Forth/MOUSE. Part 4: Lisp. Part 5: APL/K. Part 6: PL/0. Meet BASIC, the king of home computing in the late 1970s. Originally designed to promote computer literacy in schools, BASIC inspired a whole generation of professional software engineers. BASIC typically combined a simple text editor with a command shell and interpreter..
|
|
This is part 2 from series “Tiny Great Languages”. Final code is on Github. Part 1: Assembly. Part 2: BASIC. Part 3: Forth/MOUSE. Part 4: Lisp. Part 5: APL/K. Part 6: PL/0. Meet BASIC, the king of home computing in the late 1970s. Originally designed to promote computer literacy in schools, BASIC inspired a whole generation of professional software engineers. BASIC typically combined a simple text editor with a command shell and interpreter..
|
|
5 reasons why developers at FinServ institutions are outpacing their security teammates
-
snyk.io
-
1 year ago
-
eng
Learn why the development practices at financial services companies are outpacing older security technologies and techniques.
|
|
In this post, we are going to take a deep dive into pointer tagging, where metadata is encoded into a word-sized pointer. Doing so allows us to keep a compact representation that can be passed around in machine registers. This is very common in implementing dynamic programming languages, but can really be used anywhere that additional runtime information is needed about a pointer. We will look at a handful of different ways these pointers c..
|
|
Andrew Wilkinson's autobiography on his path to become an accidental billionaire. Captivating and full of little golden nuggets to pick up by aspiring entrepreneurs.
|