HNHacker News
TopNewBestAskShowJobs

biokoda

577 karma · joined January 21, 2014

submissionscomments
biokoda··on ActorDB – Distributed SQL database
Schemas are per actor type and you can have many types. Actors are active or inactive. When you run a query against one, when it becomes active it will check if schema has changed and apply that before processing any query.
biokoda··on ActorDB – Distributed SQL database
From that point of view yes you are right. There is a ton of nuance in CAP. Usually in these discussions the CAP question is if it is eventually consistent or not.
biokoda··on ActorDB – Distributed SQL database
It's raft; thus firmly CP.
biokoda··on Server-Side I/O Performance: Node vs. PHP vs. Java vs. Go
Yes a user space thread pool which is what node.js does on top of libuv.
biokoda··on Reasons to use Phoenix instead of Rails
> Waiting 200ms for the database + an additional 20ms for rendering

Those are pretty awful numbers. https://blog.gigaspaces.com/amazon-found-every-100ms-of-late...

biokoda··on Improving Ruby Performance with Rust
History has proven that anyone no matter their abilities is going to shoot themselves in the foot regularly while using C. Some just less frequently.
biokoda··on Rust 1.21
> Depending on how you define "big changes".

The way every reasonable person would. This release being the obvious example.

biokoda··on Rust 1.21
That is entirely untrue. Releases are regular, big changes are anything but.
biokoda··on Matcha – A framework for building iOS and Android apps in Go
> Well, someone probably said the same about Go or React-Native when they first came out too

RN came from a giant company that uses it in its core product. Big difference.

biokoda··on Writing a SQLite clone from scratch in C
Yes SQLite with type check constraints.
biokoda··on Thread Pools in Nginx Boost Performance 9x (2015)
io_ syscalls only really work on XFS and require O_DIRECT which means kernel is not caching anything. Unsuitable for web servers.
biokoda··on The NOVA filesystem
Changing the number of cores given to a VM is not so uncommon.
biokoda··on Rust: Not So Great For Codec Implementing
> There's no middle ground.

Not at all. This is what the ? operator is for (was try! before).

The idiomatic rust way is to have your own Error type that implements From for other Error types that you may encounter (io::Error, Utf8Error, etc.).

Then you can simply just write let result = dosomething()?; for any operation that may fail. If an error happens, function will return with the error.

I don't think you can do it any cleaner, given the constraints Rust is operating under.

biokoda··on Rocket, Rust Web Framework, v0.3: Fairings, TLS, Private Cookies
Overly complicated
biokoda··on Rocket, Rust Web Framework, v0.3: Fairings, TLS, Private Cookies
It's far from clear if tokio is not a dead end.
biokoda··on Why you should, actually, rewrite some of it in Rust
You can write low level code. Tier 1 platform list is very short however.

https://forge.rust-lang.org/platform-support.html

biokoda··on Why you should, actually, rewrite some of it in Rust
A huge win compared to C is fearless refactoring. Making changes to an existing codebase in C is a minefield. Refactoring in Rust is a breeze.
biokoda··on Why you should, actually, rewrite some of it in Rust
The relatively low portability of rust programs is definitely one of its largest shortcomings.
biokoda··on How Discord Scaled Elixir to 5M Concurrent Users
The point of Erlang is that it makes writing robust distributed systems easy and fast. The language itself is tiny.

Scala on the other hand is not remotely small and easy to understand.

biokoda··on Increasing Rust’s Reach
Lots of companies (like us) use it as basically a replacement for C/C++. They just don't discuss it much.
biokoda··on Haret: A strongly consistent distributed coordination system implemented in Rust
Anyone needing that can also extract tikv's raft implementation. It's actually quite easy.
biokoda··on Android O Beta Program
One plus is the best choice. Great hardware, reasonable price, up-to-date Android no horrible skins on top of stock.
biokoda··on Rust 1.17
C/C++ compiler will compile your code if it is correct. Rust will not compile code if it can detect that it will not work or it is not safe even though the syntax is correct. It can guarantee the program is memory safe (double free, user after free, null dereferencing, using uninitialized memory, array bounds checks).

This makes large refactorings so much easier. It also makes working on large projects with lots of people much easier.

biokoda··on Ask HN: Will Rust ever become a mainstream systems programming language?
A single repo can have lots of crates
biokoda··on Ask HN: Will Rust ever become a mainstream systems programming language?
> The only problem is that the compiler is very slow now, so it doesn't scale to large code bases

The way of working with that is use cargo check command which is much faster and splitting your problem into multiple crates so you don't have everything in one giant project. Which is what tends to happen in large code bases anyway.

Also they are putting quite a lot of work into making it faster. Before you get to that large code base it will be better.

biokoda··on Ask HN: Will Rust ever become a mainstream systems programming language?
This is like reading criticism of Erlang which we use. A bunch of people (the vast majority of which never shipped anything in it) have plenty of arguments against it, those of us that actually use it love it to bits.

Rust is productive, efficient and a joy to use. For things we required C/C++ before, we will be using Rust now.

biokoda··on Espresso – Google’s peering edge architecture
Anycast is pretty standard.
biokoda··on Ask HN: Why isn't VoIP better?
> When you're doing voip you're doing so over UDP because TCP has far too much latency to be agreeable,

Lots of wifis, corporate especially block all UDP traffic. Sometimes they even block all non http/https traffic. Apps like Skype or Biocoded will find a way to route the call, but that can sometimes mean it has to go over https!

biokoda··on Ask HN: Why isn't VoIP better?
VOIP calls are very sensitive to intermittent connectivity.

Sometimes wifi will work in batches. No packets will get through for a few hundreds of milliseconds (or seconds), then they will get sent all at once.

Sometimes UDP traffic is blocked completely and the call has to get relayed over TCP. Now no packets can get dropped and you get delays due to retransmits.

Sometimes 3g/4g connection disappears because someone entered a building an overpass or passed a corner in a city.

Sometimes the sides of the conversation are far and the audio delay is high.

If any side of the conversation encounters a problem described above both will get a bad quality.

biokoda··on Mentat: A persistent, relational store inspired by Datomic and DataScript
Because a Rust library is safer, equally efficient, faster to develop, easier to build and can expose a C interface.
Page 1 of 8Next →