HN user

itroot

150 karma

Hello! My name is Ivan. I am passionate software developer. My personal page is : https://itroot.org E-mail is itroot <AT> itroot.org

Posts6
Comments29
View on HN
Russia Bans Roblox 8 months ago

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.

Russia Bans Roblox 8 months ago

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.

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.

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.

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.

SQLite 3.33 6 years ago

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.)

SQLite 3.33 6 years ago

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
SQLite 3.33 6 years ago

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?

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!

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.

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!

geogebra is just an aspiring example, I do not have any encounter there. So, kudos to geogebra founders =)))

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.

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?