Press ESC to close

6591
42
USA
42 Min Read

Programming language memory models answer the question of what behaviors parallel programs can rely on to share memory between their threads. For example, consider this program in a C-like language, where both x and done start out zeroed. // Thread 1 // Thread 2 x = 1; while(done ==…

21640
6
USA
6 Min Read

When programming, the map data structure is quite handy. When I first used Perl, the thing that struck me the most was how simple it was to use hashes, as they are called. They came in handy for everything! Map is also a major element…

35716
4
USA
4 Min Read

On October 25th, I found a bug in the Anti-Exploit driver of Malwarebytes v3.6.1.2711 that caused BSOD and finally exploited it to achieve an EoP from a standard user to SYSTEM. In short, it’s a combination of incomplete input validations and an insecure manner of accessing a…

4934
14
USA
14 Min Read

For companies running their own datacenter, setting up internal DNS infrastructure is essential for performance and ease of maintenance. Setting up a single DNS server for occasional requests is pretty straightforward, but scaling and distributing requests across multiple data centers is challenging. In this post,…

64870
12
USA
12 Min Read

Although the main interface between applications and a Vitess database is through the MySQL protocol, Vitess is a large and complex distributed system, and all the communication between the different services in a Vitess cluster is performed through GRPC. Because of this, all service boundaries and…

2662
107
USA
107 Min Read

The A Priori Argument (also, Rationalization; Dogmatism, Proof Texting.): A corrupt argument from logos,starting with a given, pre-set belief, dogma, doctrine, scripture verse, “fact” or conclusion and then searching for any reasonable or reasonable-sounding argument to rationalize, defend or justify it. Certain ideologues and religious fundamentalists…

3836
4
USA
4 Min Read

Writing assembly is itself an art. When C, C++, or any other language is compiled, the compiler determines the art of writing assembly. However, this time, we will some of the techniques and decisions we can make to write these ourselves. We will use RISC-V…

5807
13
USA
13 Min Read

API gateways are an integral part of microservices architecture in recent years. An API gateway provides a single point of entry for all our apps and provides an interface to access data, logic, or functionality from back-end microservices. It also provides a centralized place to…

1803
13
USA
13 Min Read

The run-time speed and memory usage of programs written in Rust should about the same as of programs written in C, but overall programming style of these languages is different enough that it’s hard to generalize their speed. This is a summary of where they’re…

1820
5
USA
5 Min Read

If you’re like most people, your answer to this is… “What? Why?” When ssh was introduced back in the 1990s, its appeal was simple. Passwords are too short, too guessable, too phishable, too often stored incorrectly, too MITM-able, too brute-forceable. Also its primary competition was rsh’s classic…

2835
11
USA
11 Min Read

Database systems typically give users the ability to trade off correctness for performance. In distributed systems, there is a whole other category for trading off correctness for performance: consistency levels. There are an increasing number of distributed database systems that are giving their users multiple…