skysight-inc/HackerNews huggingface dataset:
I don't think you want to measure your timeseries datastructure against LSM-trees because the latter is inherently a pretty bad structure to use for timeseries (which are mostly append-only) as a few projects painfully found out.

Anyways, I'm interested in timeseries so I read the article and tried to understand the datastructure but to be honest it opens up more questions than it answers. I applaud people though who try to describe their datastructures that are core to the app. Thanks for that.

1. What is the exact datastructure of a leaf? You mention a leaf node can hold 1000 datapoints.
2. Why is using a WAL impossible? That should be possible for any datastructure.
3. In your example if level 3 is full and everything gets merged into level 4, there are no levels 1-3. How does one query the datastructure? Does it maintain a pointer from the root to level 4?
4. Related to above: if I want to query all data from last month until now which happens to be the start of level 4, it will first go to root, then to the level 2 Leaf, from there to the level 2 SBlock, from there to the level 3 Leaf, then level 3 SBlock, then level 4 Leaf, then level 4 Sblock, then the first level 4 leaf? That seems a lot of random access. How many iops does a lookup need?
5. SBlocks need to be kept in memory. If I have ten million timeseries (not uncommon, can be much more), each with 3 levels, then upon startup the app has to load 30M SBlocks into memory?
6. You say that several trees can be interleaved in a single file, how does that not break the linear IO advantage of columnar layouts?
7. How do you store information in the "inner nodes" (SBlocks?) to speed up aggregation? Do you store every possible aggregation in there? E.g. sum, avg, min, max, stddev, ...
8. Storage format of an individual time series is only a part of what a TSBD needs to do, another part is how to find all the timeseries for a particular query. How does that work?

And in general I think you can't have all three:

A) good write performance
B) no write amplification
C) low RAM usage

... because you have to either write data out immediately (and get either 2x+ write amplification or lots of random writes/reads) or buffer it in RAM to batch linear writes.

I think there are some interesting ideas in this structure, it looks to me more like a Linked List of one level deep B+Trees, not a big overall tree.
Ha ha ha! Spot on. Gavin would be so proud.
Which phone are you talking about, and which vulnerability?
Why I believe in Bitcoin
100% uptime is an unrealistical claim. There are so many things that can go wrong with a VPS (that is, by design, only ever running on one node at the time). The probability of that node failing or a messed up route taking offline all routers at once is low, but it's not 0%.

In order to even come close to 100%, you need a multi-region distributed system and even then, so many things can go wrong.

Look at their outage credits (https://www.vultr.com/sla/) if you want to get realistical percentages.

Even Google Cloud Platform - which has multiple layers of redundancy at every level - does not claim 100% uptime: https://cloud.google.com/compute/sla

Disclaimer: I work for a competitor who would never advertise 100% uptime - it's a known fact that shit happens
Could this be moved to ASK section please?
Some devil's advocate thoughts -

Proportional to how much damage they can do doesn't seem like a possible/reasonable measure. Should every car manufacturer now be responsible for insuring the cost of every car on the road causing a synchronized collision around the world? Should airplane manufacturers have to be insured for every airplane being in the sky, full of VIPs, and dropping onto the X most expensive buildings on earth, also full of prized possessions and more VIPs?

About giving white hats legal immunity to hack devices and be paid. How do you determine who is a white hat? Why wouldn't every black hat attempt to play the part of a white hat, gaining free range to play around with a system without any legal concerns. And if they find a crippling vulnerability, being able to sell it in a black market / partner with other black hats, and pretend they found nothing?
I'm not sure; what are you thinking?
> With the device in their possession they can extract software from the embedded system chip on the device to obtain the software running on it. By reverse engineering this software they can learn secrets in the memory of the onboard microcontroller.

Hoping to keep secrets from a physical attacker on a general purpose microcontroller is an excellent example of an IoT security anti-pattern. It's a shame the author missed the wider point.
The reason for pushback on the idea 10x programmers isn't the real gradient of skill, it's the labor aspect. Lots of companies want to hire 10x without paying 10x dollars, and they've figured out that blowing smoke up the ass of young people (though it works better on young men than women) is a way to squeeze blood from that stone.

Especially if you're working in a small company, you're going to hit a point when there is a massive wall of work to be done, bigger than you would ever be able to handle alone, and your organization will fail if you don't do it. The skills you need to actually handle that situation are going to be more in the vein of basic professionalism than technical talent. Better programmers might need a bigger wall before things get rough, but they will still hit it.

The reason for criticizing the 10x idea isn't that it doesn't exist, the reason is because feeds into myths that might end up being harmful far beyond the actionable decisions it lets you make.
Thank you for recommending jOOQ. I find many ORMs seem unnecessarily complicated compared to raw SQL (with a few exceptions), nice to find another one that offers readable code. Is the performance generally decent too?
They folded YC Fellowship last year. In some sense they replaced it with the MOOC but the programs look pretty different.

Also, there are plenty of investors that realize this, you just have to look for them. For example, Drive Capital in Columbus, OH was founded by ex-Sequoia in 2013 and has raised over $500M since.
This should be emphasised more. Schemaless is good for productivity during prototyping (like dynamically typed languages), but long term a well-defined schema will help maintenance (like statically typed languages).
Sofa, so good: What shopping for furniture taught me about product management
>> Note that you are trusting this app with your private key.

On Android, the Kryptonite code uses the AndroidKeyStore to store the private key, which means that the app does not have access to it. At a minimum (on old devices), AndroidKeyStore keeps the private key material in a separate process, so it never exists in the app's process space. On newer devices (launched with M or later), the private key material is kept in the Trusted Execution Environment, so nothing in Android user or even kernel space has access to it.

EDIT: Actually, there's one small flaw in the Kryptonite code that may make the private key accessible to a sophisticated attacker who compromises the app. The key allows signing without using a hash function. Signing a sequence of carefully-chosen plaintexts can reveal the private key. I filed an issue and sent a pull request.
People are stupid and cheap, and inappropriately use the Internet as a WAN.
Yes, administrative subpoenas exist.

The difference is whether courts are going to back the document in question.
Invoiced | Backend Software Engineer | Austin, TX | Onsite | Full-time | https://invoiced.com

Invoiced is a startup that helps companies modernize and automate their billing processes. We work with companies that have high-volume or complex billing processes that typically break other billing systems.

We are looking for employee #1, a top-notch backend engineer, that will help us grow and keep up with customer demand. The ideal candidate should be comfortable shipping production-level code in a fast-moving environment. We are currently a team of two developers supporting over 5,000 businesses that rely on our software to get paid.

What we use: PHP, Go, AWS, Git, AngularJS

We want to hear from you: founders@invoiced.com
SEEKING WORK (Brazil)

GitHub: https://github.com/alexandrevicenzi/

Linkedin: https://www.linkedin.com/in/alexandrevicenzi/

Remote: Yes

Relocate: Yes

I'm a Software Engineer with a background in Computer Science and expertise in cloud services, containers, microservices and video streaming.

Technologies:

Python (Django, Flask, Tornado), Go (gin-gonic, gorilla), C/C++, Java, C#, Lua, HTML/JS/LESS, Shell Script, Docker, Qt, REST, OAuth, AWS, RTMP/HLS/DASH.
Thanks for making the point about large teams -- I was coming here to make it myself. Even if you are using JSON, having a contract between client and server is super helpful.

Out of curiosity, what format did your infotainment system for serialization?
"planes being kept in the air"

I assume they mean "minimize time stuck on the tarmac" vs "literally flight critical", but I doubt even that.

The former would imply that something like dispatch functions are in production running on docker. I suppose that's possible, but it's not an area that lends itself to tech that's not very solidly proven for the space.
My own productivity fluctuates by more than an order of magnitude. But that means it's not my intrinsic ability. Sometimes it's choices. Most of the time it's who my manager is, what choices the team (or the team before) made, how much I care, and whether I get along with the people I'm working with.

The article is strangely defensive of the number 10 specifically; having discussed this topic here several times I get the feeling most people on HN already agree that there are order of magnitude fluctuations in productivity from person to person at any given time, but that 10 itself is a biblical number -- symbolic and not even meant to be taken literally.

I'm sure 10x has been true somewhere for someone, but there's nothing special -- nor empirical -- about the number 10. There are more people 2x better than average than 10x. The distribution looks like what you'd expect -- peaks at 1 and falls off in either direction.

> You become a 10x programmer not by doing an order of magnitude more work, but by making better decisions an order of magnitude more often.

I think this isn't necessary to be 10x more productive. You can make a single decision and become more productive. You can also use a single philosophy. You can also get yourself in the right company and on the right team surrounded by people who are smart and cooperative instead of competitive, and watch everyone's productivity soar.

The most 10x-famous programmers I know are ruthless about not implementing things until they need them so badly it hurts. And they keep their code really, really, really simple. No cleverness, no tricky bullshit, just super-simple super-readable easy to understand, and literally boring code.
Well the worst (or even simply "kinda bad") are so much worse that it's not hard to believe and even bigger gap exists.
> It's like types for programming languages. They always exist; it's just a matter of whether you have the compiler managing it or whether you need to keep it in your head when you're hacking.

While true to a degree, it's worth noting that some languages also reduce the number of types considerably at the same time, and maybe even provide some other conveniences when dealing with types (e.g. automatic interpretation as numeric when used in a numeric operation).

You still have to keep types in your head, but the reduction of types generally makes this non-problematic. Although, as your code grows and you define your own types (either formally through an included system or as ad-hoc data structures), you start needing to keep more types in your head, and this starts eating away at any benefit you had from not having to define them in the first place.
Touché! An index signals the data should be searched in a certain way!

I don't think I explained my arbitrary scenario particularly well :-) I'm definitely not suggesting 2 queries.

If I have articles that could be category: math|science and source: website_a|website_b|... and I only ever query for source and category together then the other indexes aren't used.

It's a contrived example, but in my mind the existence of a foreign key doesn't imply an index is required.
They found no difference between a programmer with 7 years of experience and a programmer with 25 years of experience.

They did find a difference between a programmer with 7 years of experience and a programmer with no experience.
There's also a certain kind of person who seems to really want 10x people _not_ to exist.

I'm not a 10x person, but I have worked with some. I don't think they are unique to programming..there are 10x folks in every field.

Sometimes you don't need a 10x person, and if you don't, it can seem like they don't matter. In those cases, a few 1x people will do just as well. But I do believe that sometimes you _do_ need a 10x person, and if you do, you can't do the same things without them. In those cases, I'd absolutely take a 'toxic' 10x person over the nice-but-1x alternative.

Part of the issue is that there's more work for programmers than ever, and most of that work is of the 1x variety.....if you're just banging out CSS for some small-business website, it doesn't matter whether you have Jeff Dean do it, or a new grad from Omaha Community college. If, however, you need to write a new globally consistent database abstraction at scale, then the new grad probably won't cut it. If you actually need that thing, then it wouldn't matter if the new grad was the nicest person on earth, and Jeff Dean the most 'toxic' (though actually I understand that he's a very nice person).
Spoiler alert! Steve Singh was Jack Barker all along!
It's still a great idea. Some companies just paid too much for some teams / products. Eight-figure acquihires are still weird to me.
As a system developer, you have the defender's dilemma: You have to defend against all possible attack vectors, and the attacker just needs to exploit one. There are many, many rules to follow w.r.t security of your system -- too many for this small textbox :).

Systems are heterogeneous, and so are the exploits. A great example of this would be getting into a smart TV through broadcast signals (Weeping Angel).

A good place to start would be at the system level with a DREAD, DREAD-D, STRIDE or other model analysis. This is often a creative process, and experience counts.
Central access management and secure key distribution for OpenSSH based on X.509
Strongly agree. I've worked with several.

Now have a blast whatabouting, caveating, and arguing definitions!
Features are not use cases, contrary to popular belief. A killer use case is where everyone uses the technology, not where the technology serves a use for all people. Speculation on the value of Ethereum is irrational, at best, even if it has a feature people think others will use in the future.
No, it's different.

Each Chrome tab is a process, but they share the same dynamic libraries in memory. Each Electron app is both a process and a separate copy of the dynamic libraries.

If you run half a dozen Electron apps, those redundant libraries will be taking up roughly a gigabyte already.
Ardamax Keylogger 4.6 Crack Full Version [Latest]
This is a one more example of the design in which one file holds many series and everything is chunked by time:

- "there is no longer a single file per series but instead a handful of files holds chunks for many of them"

- "We partition our horizontal dimension, i.e. the time space, into non-overlapping blocks. Each block acts as a fully independent database containing all time series data for its time window."

I don't believe this will work out well because it will introduce read amplification during query time (compared to file per series approach that they're using now).
And I'm really curious how they managed to get 20M writes per second on laptop. The article states that they're using compression algorithm from Gorilla paper and Gorilla paper authors claims that they managed to get 1.5M on a single machine.
Since 1995 or so, I've built perhaps 15 machines (several as personal machines, several for others, a few desktop-format servers), with a long detour through Apple land in the middle.

I have fairly frequently had issues like the ones mentioned by the gp. Some factors: I'm clumsy and break things. I did not, in the 1990s, take static seriously. The instructions that come with computer parts are often more reminder than instruction: they have a lot of useless boilerplate, and then the actual instructions will admit more than one interpretation or simply imply the correct actions rather than state them. I have more than once had the experience of not being able to complete a build until the next day because some screw I needed was not included, or the screwhole wasn't threaded, or because a 2 cent plastic tool was not included, but still semi-required. Going back to the store might be something you can do, but maybe you'll have to wait for shipping, or maybe the store is far enough that it's a weekend activity to go (not everyone has a Fry's or Microcenter within ten miles...).

Over the weekend, I, too, picked up a shiny new Ryzen and mainboard. Since I have had poor experiences ordering parts from Amazon, Newegg, etc, I drove to Microcenter and picked up the parts I needed. If I got the wrong part, it would be a week before I could go back, so I'd probably order online, but that doesn't satisfy they "build a new machine this weekend" desire...

The sales rep helpfully told me I'd need an adaptor for the heatsink/fan, which was important and which I'd not run across online in research... why would there be a bunch of mainboards available for AM4, but no heatsinks to attach to them? But that seemed to be the case, at least there in the store. If I'd bought parts online, frustration would have definitely ensued.

The heatsink came with around 20 screws and other parts, and a complicated process for attaching a part that looked like a swiveling X to hold the heatsink against the CPU. The adaptor had a single bar with two latch-and-screw arrangements. It showed an image of how to attach it. It said "Easy installation!" in the instructions, and that was the only clue that you need not use all the other hardware that came with the heatsink. It literally took more than half an hour for me to understand that this was how it was.

While there are definitely similarities, and things that don't change much any more (ATX, for example), the details of things like storage connectors (large plastic with thick metal pins for IDE, then small plastic tabs for SATA, now a spring-loaded card insert on the mainboard with a screw to hold down the other end of the m.2 card...) change so frequently that if you only build a machine when you need it (4-10 years apart), you'll be dealing with several new connections and card types, and everything has to be approached from the standpoint of "if I slip or the static clip is pulled off the grounding or I am too confident that something should fit where it does not, I will end up going back to the store and buying a new whatever".
Voodoo Manufacturing | New York, NY | Full-time | Onsite

We are building a digital robotic 3D printing factory to compete with injection molding. We're well funded, have significant revenue, and are scaling quickly.

We're hiring for:

-- Product Manager

-- Software Engineer, Full Stack

-- Software Engineer, Front End

-- Computational Geometry Scientist

-- Operations Research Scientist

-- Robotics & Automation Engineer

-- Customer Support Manager

Learn more at https://voodoomfg.com/jobs (not all jobs posted yet).

or

Email us at jobs@voodoomfg.com if you're interested in chatting.
Was TensorFlow written by a single person?
I read that a lot of call center luminaries were former Taylorist factory managers, which would make a lot of sense if accurate.
"Why do we still use SQL" and "Why do we still use relational databases" are two very different questions. They seem like much the same thing, because SQL is pretty much the only query language offered by relational database systems nowadays... so if you use SQL, you use an RDBMS, and vice versa. But other query languages used to exist. There was QUEL [1], for example. It seems to have fallen by the wayside; most people have probably never heard of it. I guess there is very little room for multiple languages in this particular space.

[1] https://en.wikipedia.org/wiki/QUEL_query_languages
That is the right opinion and programmers should think like this, but i also believe that this kind of thing is hard to stop when it makes it easier for devs to churn out software with existing skills and most non-technical users do not really care anyway. I guess it is a reality we have to accept and wait for web-tech based desktop app development solutions to mature. Maybe react-native is the way ?
Using Optane as a cache for an HDD is only supposed to work with Intel hardware. Optane can work as a really fast SSD on any system.
VS Code is a great example... resource hungry it may be but as an app, it's a huge success (based on the Github extension for example that has over 6 million installs - https://marketplace.visualstudio.com/items?itemName=GitHub.G...).

It would seem like building desktop apps with Electron is a big boost productivity wise (shorter learning curves, quicker time to working app) than older alternatives (Java, .NET etc, MFC etc.). If that assumption is correct, then it's trade-off against resource is worth it: get working but resource hungry app quickly in the hands of real users vs. take more time building something resource efficient but with user-validation still to do.
Format is ugly, but like a bulldog it is so ugly it's cute.

If you don't want loop, you can always use iterate. :-)
I'm assuming the grandparent meant to say "mark-up" rather than margin.

EDIT: And I just saw the comment below yours pointing out the same thing.
I've been very keen with https://UpCloud.com at first their servers don't seem to be cheap. But when you factor in the actual performance, those do provide a good on bang ratio. So far I don't have any complaints about UpCloud. But it's not the same story with OVH. UpCloud didn't throttle the disk I/O, even it was truly insane, due to a software bug. That's what I recommend, if you're looking for good instead of just cheap. UpCloud doesn't oversell resources, so full CPU / RAM utilization is totally acceptable. Also VPS resources are guaranteed and performance is pretty much constant.

Scaleway is actually quite good when you factor in the performance / price ratio with it. (VC1S) But that's not something I would recommend for 'production use'. Yet, it's very nice for hobby projects.

All systems are under constant monitoring. CPU, RAM, Disk I/O & Networking. Unfortunately the data collected isn't something I can publish.

Btw. OVH SSD VPS 1 does provide IPv6, yet it's not being tested. Why? - Yes, you'll need to manually add the routing once to enable it.
Yale historian: “pretty much inevitable” Trump will try to overthrow democracy
A function that tests for something involving its arguments
is called a predicate and usually ends in p or -p.

http://www.cliki.net/Naming+conventions
I dunno, I think that the distinction between pairs/ipairs is quite handy - there are times when you want to use an array, a list, a dictionary, a sparse array, a sorted array, and so on. Lua's tables are so flexible that it can be used in all of these cases quite handily - of course, the programmer has to pay attention to how he's using those tables, though. I think thats kind of a strength, but ymmmv ..