HNHacker News
TopNewBestAskShowJobs

itroot

150 karma · joined January 31, 2014

Hello! My name is Ivan. I am passionate software developer. My personal page is : https://itroot.org E-mail is itroot <AT> itroot.org
submissionscomments
itroot··on Russia Bans Roblox
Yeah, I see it as a radical anti-establisment resource. I would not call it a complete nonsence though, for me it's a place where you can "get" thinking of folks who are opposing "the System". So there is some value.

I'm not political or activist of any kind. However sometimes it makes sense to get understanding how other people think, so sometimes I read comments here and there.

HN has its own bias as well. Usually the quality of discussion here is quite high though.

itroot··on Russia Bans Roblox
I'm from Russia (currently in Moscow), and I can read your comment just fine without VPN. BBC won't open... which is fine, as I jump straight to comments as many do here :))) .

Also do not miss twitter and facebook. Youtube is working (so far) with no ads.

Also stuff like WaPo is perfectly acessible. Sometimes I skim through it (also mostly comments), then check ZeroHedge to get the opposite view.

So a lot of info is acessible. Quite a few of resources are blocked on the other side though.

I surely can use VPN but prefer not to unless that required for more intellectual activity then reading news.

itroot··on Ask HN: How to Find Mentorship
I think you can just ask for it. IMO it's better to specify more what kind of mentorship do you need.

I have experience in mentorship, and now I'm mentoring a FE guy who wants to move into go development. It very interesting and fulfilling to help another person to achieve theirs goals.

itroot··on Ask HN: How would you store 10PB of data for your startup today?
It's a complex question. I had experience of working with ~60petabytish system back in 2016, and there a lot of things to cover (not only storage):

* network access - do you have data that will be accessed frequently, and with high traffic? You need to cover this skewed access pattern in your solution.

* data migration from one node to another, etc...

* ability to restore quickly in case of failure.

I would suggest to:

* use some open-source solution on top of the hosted infrastructure (Hetzner or similar is a good choice)

* bring in a seasoned expert to analyze your data usage/storage patterns, maybe there are some other ways to make storage more cost effective, that simply moving out of AWS S3.

itroot··on Ask HN: Best programmable robot for a child with SDK?
I also do not want to push... I just want to play with that robot by myself, and see if kid will be interested to join. It's just fun thing to do!
itroot··on Ask HN: Best programmable robot for a child with SDK?
:-) it will be nice from some point of view...
itroot··on Russia opposition leader poisoned with Novichok
Guy from Russia here. Not an expert, but I feel the pain when my country looks so negative in the news.

First, I wish Alexey fast recovery.

Second, Alexey wasn't a popular politic figure in past time, I believe that his peak of popularity was in 2013-2015.

Third, I think no one here is actually benefiting from this tragic event... the whole story just seems quite strange. Frankly, there a lot of more simple approaches that can kill a man - no need to use sophisticated things like chemical weapons (which actually doesn't work as intended).

I hope that this story will be more clear pretty soon.

itroot··on Pieter Levels Makes $600k a Year from Nomad List and Remote OK
You can have several clients. If you do not have long-live write transactions, performance will be fine.
itroot··on The Splitgraph Data Delivery Network – query over 40k public datasets
https://www.sqlite.org/appfileformat.html - it is OK to use sqlite that way! =)
itroot··on Micro-Optimizing .tar.gz Archives by Changing File Order
I recently impletented an extension to sqlite - https://github.com/itroot/sqlite-brotli-compress - that adds ability to compress blobs to sqlite via brotli, and I think it is trivial to add any compression format to sqlar (with some format extension, of course). But sqlar I believe is not very popular, and just an example of how sqlite can be used.
itroot··on SQLite 3.33
If you are doing this for analytical things, setup with one database is OK. But, imagine that you a running something on production with sqlite, and database is really big. It is hard to : VACUUMizing, creating indexes and so on. In that case it's great to shard this thing, even it will be several files on one machine (of course, if you have data that can be sharded, like different users data can be stored on different dbs.)
itroot··on SQLite 3.33
I think that this applies to all modifying operations - INSERTs, UPDATEs, DELETEs.

It's perfectly ok to write to sqlite from different processes in the same time, but to achieve good results it's better to:

* use WAL mode - so the readers and writers do not block (you can turn on it with `PRAGMA journal_mode=WAL;` in CLI, and it's better to add `PRAGMA main.synchronous=NORMAL;` also).

* all concurrent writes will be queued by sqlite3 lib and done in sequential manner, and if any write attempt will wait longer that BUSY_TIMEOUT ( see https://www.sqlite.org/pragma.html#pragma_busy_timeout ) , it will return error.

Snippet

  # setting things up...
  itroot@l7490:/tmp$ grep -i pragma ~/.sqliterc
  PRAGMA journal_mode=WAL;
  PRAGMA main.synchronous=NORMAL;
  PRAGMA busy_timeout=1000;
  itroot@l7490:/tmp$ sqlite3 test.sqlite 'CREATE TABLE records (id INTEGER PRIMARY KEY, record TEXT);' > /dev/null 2>&1

  # running 10 parallel processes that inserts numbers from 1 to 1000...
  itroot@l7490:/tmp$ echo {1..1000} | xargs -n1 -d' ' -P 10 -i% sqlite3 test.sqlite 'INSERT INTO records (record) VALUES (%);' >/dev/null 2>&1

  # getting number of records
  itroot@l7490:/tmp$ sqlite3 test.sqlite 'SELECT count(*) FROM records;'
  count(*) = 1000
itroot··on SQLite 3.33
Yep, that's a great use-case! However on such amounts of data I would recommend to split it to several databases - backup, replication, vacuum will be much easier and better. Doesn't applies to sqlite3 only =) . I assume that you data is immutable or append-only, and there is rare writes with lots of reads?
itroot··on CGo-free SQLite Go database/SQL driver for Linux/amd64 v1.4.0-beta1 is released
Is it go implementation of sqlite3 data format?
itroot··on Cold Showers: For when people get too hyped up about things
Why single connection? Sqlite in WAL mode will allow to co-exist writer and readers.
itroot··on Cold Showers: For when people get too hyped up about things
I think there are a lot of places where sqlite can outperform postgres... This is read-heavy and latency-critical apps, where additional hop is costly, for example.
itroot··on Ask HN: Database migration on production without downtime
I made a lot of migrations with MongoDB without downtime with dbs up to 200-300Gb. Most easy way is to support this on your backend side, and then gradually switch data. It is easy to do when you can move your date item-by-item, if it possible. Feel free to PM me!
itroot··on Git partial clone lets you fetch only the large file you need
Also --reference (or --shared) is a good parameter to speed-up cloning (for build, for example), if you have your repository cached in some other place. I was using it a long time ago when I was working on system that required to clone 20-40 repos to build. This approach decreased clone timings by an order of magnitude.
itroot··on My Second Year as a Solo Developer
Hey, Michael!

I was following you story since your first post two years ago. I just want to say that to succeed you need to sell something. As a software developers we can scale something (move from 1 to N, in terms of tech), but you need to find initial niche (from 0 to 1). I think that main success (as a business person) that you have is an audience reach that you had (almost every developer feels that things that you are described in your initial post). So why don't you try to play with your audience? Man, 2 years ago, when you posted you story of quitting, I was sitting in Yandex office at Moscow, and a lot of colleagues were talking about you and you story. Isn't that cool? I am not a real entrepreneur, but I really advice you to use your strengths (audience reach, mastery in writing, etc) along with you software development skills to find point of growth. Thanks for sharing and good luck!

itroot··on Show HN: Plan Thanksgiving dinner and compare prices at 7k grocery stores
Hi! This is a great app!

Is it works only in US?

How do you get actual prices? Is it some kind of scraping, or some other channels? (If is it not a secret)

Thanks!

itroot··on Show HN: Codelapse.com
geogebra is just an aspiring example, I do not have any encounter there. So, kudos to geogebra founders =)))
itroot··on Show HN: Codelapse.com
Thanks for the feedback, espacially for #2.

I really like to see visualisation with feedback loop ( ability to change source code and commit a-la wikipedia) in educational process. For example, consider https://www.geogebra.org/m/ZFTGX57r , it's look beautiful.

itroot··on Show HN: Codelapse.com
Hey, thanks for comment! You are right, it uses debugger output.

This is opinionated custom visualization, and I do not have some generic tool here. I think it is possible to do it, but it will be

* generic, like pythontutor - it misses "meaning" of what's happening, just showing the facts without emphasis

* specific cases for popular data structures (I thinking about that way)

* hand-made every time (like a Disney in old good times) - hard work =)

I'm just scratched my own itch, and learned vue.js + vuex + a bit of modern frontend during this project.

itroot··on Show HN: Codelapse.com
Hey, HN!

I think that visualizing interview algorithms in that way can help lot of people to understand them, to form a "gut feeling" what's going on. What do you think?

This particular example, linked list reversal, is a "medium" interview question, but I've seen many times people failing it. When I solve this question by myself I always imagine this pointers, how they act and so on, and this visualization - it's what's going in my head. I really think that putting it on the list and animating it helps people to form long-term understanding.

What do you think?

itroot··on Ask HN: Random upper back pain is ruining my life. At wits end. Anyone else?
Look, I had simular problems. What helped is : exercises, cold shower, good chair.
itroot··on Ask HN: Who wants to be hired? (October 2019)
Role: Senior Backend Engineer

Location: Worldwide

Remote: yes

Willing to relocate: no

Technologies: golang, python, JS, postgresql, mongodb, docker, - mostly backend things, lots of them.

Résumé/CV: https://www.linkedin.com/in/ivan-tolstosheyev-134a8232/

Email: itroot@itroot.org

I'm mostly a backend developer with 10y experience of building and improving high-load apps (up to 1000+ physical hosts).

itroot··on The lat/lon floating point delusion
Ugh. It's better to use geohash almost everywhere. It solves this and many other problems (lat/lon ordering), etc..
itroot··on Ask HN: Who wants to be hired? (August 2019)
Location: Moscow

Remote: preferred

Willing to relocate: no

Technologies: golang, python, postgresql, mongodb, C++, aws, javascript

Résumé/CV: https://itroot.org/cv.pdf

Email: itroot@itroot.org --

I'm a backend developer with 10y experience interested in solving infrastructure problems.

itroot··on What are good Linux laptops for 2019?
How are you are dealing with all those HiRes problems on linux? Or it's ok now?