Programming Leftovers
-
Daniel Lemire ☛ Iterating through matched characters in modern C++: views::filter and coroutine
Because our input is a regular C++ string, we can do slightly better by using one of the methods of the std::string instance. We lose in generality, but gain in simplicity: [...]
-
Jamie Brandon ☛ Smolderingly fast b-trees
Ordered data-structures like b-trees don't have any of these disadvantages. They are typically slower than hashmaps, but I was surprised to find fairly wide variation in people's expectations of how much slower. So let's compare: [...]
-
Rlang ☛ Handling Large Investment Datasets with R: A Powerful Solution to Data Management Challenges
Dealing with large datasets—where observations run into the millions and file sizes reach gigabytes or more—can be daunting for many data practitioners. However, there is no shortage of specialized tools, many of which are open source, that offer efficient solutions for such challenges.
I illustrate the challenges of handling large data sets with a solution. Recently, Statistics Canada released a comprehensive dataset on investor-owned condominiums. I intend to conduct an in-depth analysis of this data in the near future. But even before diving into that, I want to illustrate the superior data-handling capabilities of R, specifically the data.table package, and how it enables rapid and efficient data manipulation.
-
Redowan Delowar ☛ Writing a circuit breaker in Go
A circuit breaker acts like an automatic switch that prevents your application from repeatedly trying to execute an operation that’s likely to fail. In a distributed system, you don’t want to bombard a remote service when it’s already failing, and circuit breakers prevent that.
It has three states: Closed, Open, and Half-Open. Here’s a diagram that shows the state transitions: [...]
-
[Old] Bruce Schneier ☛ Essays: The Process of Security - Schneier on Security
Security is a process, not a product. Products provide some protection, but the only way to effectively do business in an insecure world is to put processes in place that recognize the inherent insecurity in the products. The trick is to reduce your risk of exposure regardless of the products or patches.
-
Preston Thorpe ☛ Confusing or misunderstood topics in systems programming: Part 0 - Inside thoughts
This will begin a series of posts about some of the more confusing or easily misunderstood topics in (linux) systems programming.
As part of a few potential upcoming opportunities to volunteer teaching, I’m going to talk about some topics that were slightly confusing to me for a while, that I think may be helpful to either newer developers, or just web developers who might be interested in moving towards the systems space. Be aware that this post is geared towards beginners, so there is some details and complexity left out.
Being completely self-taught, I often find myself thinking “damn, I wish someone would have just explained it to me like that”. So I hope to do that for someone else.
-
Education
-
Rlang ☛ Second edition of Geocomputation with R is complete
We are excited to announce that the second edition of Geocomputation with R is (almost) complete. It took us about three years to update and improve the book. This blog post summarizes the process and lists things we added and changed. It also mentions what is left to do.
-