This looks like a disaster. It is like it was fast-tracked based on the oomph factor because seriously, how come you didn't notice
how hard it is to read text or even notice overlapping objects/controls? Maybe once we use it for some time, we will all get it - it is possible - but
as it now stands, I hope there will be an option to turn all that off, _especially_ on MacOS which is what I use to get work done.
Velocity is about familiarity, about expressiveness, about being able to quickly translating what you want to accomplish to code. It’s also about, for me anyway, not being constrained by inherent limits of the language or runtimes. Like I said, checks all the boxes.
As for experience, I have been writing C since the very early nineties and moved on to c++ soon thereafter.
Again, all that is, for the most part anyway, not specific to this language.
All our infrastructure technology, services, and almost all “applications” we have built are written in C++. That’s millions of lines of code and span everything from IR, distributed storage and computation, ads serving, relational and columnar datastores, caching and much more.
It’s about velocity and experience. Language rarely matters ( and when it does, you can use what’s appropriate ). For us, C++ checks all the boxes.
We have been running hundreds of services that effectively consume from various topics, perform mostly simple transformations and produce back to other topics. Providing this kind of functionality makes a lot of sense.
We are using TANK, and that functionality is not available there, but given the benefits such a feature provides, we will likely use RP as well in order to save on development time and number of distinct services we use for various events streams transformations.
This is quite ridiculous. I’d say it’s obviously ridiculous but others may have a different point of view. The government there is eager to side with Murdoch and his friends for favorable coverage so that they can pocket money from this extortion stunt while disregarding the impact to its many many citizens. Suggesting Bing is good enough is stupid because if their citizens were to use it over google if google quits that market, what then ? Government goes after them and if it does what if Microsoft also gets out? And if government doesn’t then doesn’t that show to the world that it was personal with google? People shouldn’t be stupid. It’s a low bar to clear.
This is fantastic news. What would you say were the hardest aspects of the design and implementation, in terms of effort and thinking that went into those accomplishments ?
In addition to those I highly recommend studying ClickHouse’s codebase. There are brilliant design and engineering bits everywhere. I learned more from studying this codebase than most other I can think of, especially with regards to templates meta-programming ( I learned about “template template parameters” from coming across extensive use of those there ). It’s actually somewhat challenging to grok what’s going on — but it is worth pushing through until you “get it”.
Pocket ( https://getpocket.com/ ). It’s really bad. Been using it for years and it’s always been broken. Crashes often, narration sometimes works most of the time it doesn’t, other times it works if you force stop the app and restart it. It’s very slow too. I depend on for my long daily commutes and I only stick to it because InstaPaper is also very broken and there is no reasonable way to move the stories from pocket to instapaper. I am convinced the people who build it never really use it for those issues are otherwise trivial to encounter and I would think trivia to fix as well. I hope someone will build a better such app and make them irrelevant.
I never had coffee. I drink Diet Coke and I enjoy tea ( I have some once every week or so ). I have been writing code for over 25 years now, and I never felt that I was missing out but then again not sure I’d know either way.
> One trend I’m most curious about right now is the rise of no or low alcohol drinks. I noticed this in Europe years ago — that nearly everywhere you went they not only offered, but touted non-alcoholic beverages in bars — highlighting the opposite approach the US was taking: pushing more extreme alcoholic drinks like Four Loko and the like, with non-alcoholic drinks being almost a taboo here. That is changing, quite quickly, it seems.
Our (https://bestprice.gr/) services/“programs” generate three different types of events:
- Short events (no longer than ~1k in size) where the cost to generate and transmit is very low(sent to dedicated service via UDP). We can generate dozens of them before we need to care about the cost to do so. They are binary-encoded. The service that receives those datagrams generates JSON representations of those events and forwards them to all connected clients(firehose) and also publishes them to a special TANK partition.
- Timing samples. We capture timing traces for requests that may take longer-than-expected time to be processed, and random samples from various requests for other reasons. They capture the full context of a request(complete with annotations, hierarchies, etc). Those are also persisted to TANK topics
So, effectively, everything’s available on TANK. This has all sorts of benefits. Some of them include:
- We can, and, have all sort of consumers who process those generates events, looking for interesting/unexpected events and reacting to them (e.g notifying whoever needs to know about them, etc)
- It’s trivial to query those TANK topics using `tank-cli`, like so:
tank-cli -b <tank-endpoint> -t apache/0 get -T T-2h+15m -f "GET /search" | grep -a Googlebot
This will fetch all events starting 2 hours ago, for up to 15 minutes later, that include “GET /search”
All told, we are very happy with our setup, and if we were to start over, we’d do it the same way again.
I like how the blog post title is, likely, based on Google's Page and Brin seminal paper "The Anatomy of a Large-Scale Hypertextual Web Search Engine". :)
This blog post, and other in the series, mention RocksDB is used for the index, but it's not explicitly described how and to what end. I 'd love to know the details.