Hacker Newsnew | past | comments | ask | show | jobs | submit | agacera's commentslogin

DevX in Rust for backend development is quite good nowadays. Things are WAY easier than it was a couple of years ago.

I migrated a couple of projects from Java, TS and Go to Rust and honesly, I couldn't be happier.


> (But in case he’s listening, please add Rusts discriminated enums, it really hurts to move from a language with them to a language without them.)

I'm not a programming language expert, but my understanding is that discrimitated enums is jut a way to support sum types. Dart now has the sealed class modifier [1], that fills this role.

https://dart.dev/language/class-modifiers#sealed


Same here. But have you tried duckdb? You can do sql in the pandas dfs and it is fast af.

https://duckdb.org/2021/05/14/sql-on-pandas.html


  mydf = pd.DataFrame({'a' : [1, 2, 3]})
  print(duckdb.query("SELECT SUM(a) FROM mydf").to_df())
I can see the appeal, but if you're working in Python, something doesn't sit right with me when having to write out variable names as strings. E.g., if I want to refactor the code, my LSP or parser won't pick up those references.

> The SQL table name mydf is interpreted as the local Python variable mydf [...] Not only is this process painless, it is highly efficient.

It might be painless and convenient at first, but I feel like this could get you in trouble down the line. Is there a way to avoid this?



Duckdb is sick. You can also do queries on parquet, etc.


Thanks for sharing this.

Did you notice any improvements with your condition (type 1 diabetes) once you started to do intermittent fasting?


It's difficult to tell if IF alone had a change because I also switched to a very low carbohydrate diet at pretty-much the same time. The two combined had a massively positive effect on my diabetes.

My glucose level is much more stable, and A1C is lower. I also use significantly less insulin than a lot of people with type 1 diabetes.

My reason for doing both was to reduce insulin levels as much as possible.


This looks really nice. I was reading about this and realized it had similar ideas to this [1] Phd thesis from Jon Gjengset. I checked his twitter [2] and it was based on his work indeed.

Great that someone is productionalizing this!

Btw, is Jon involved in ReadySet?

[1] Partial State in Dataflow-Based Materialized Views - https://github.com/mit-pdos/noria

[2] https://twitter.com/jonhoo/status/1537474261689872384



Depending on the cost per database, a service like this could allow one to build SAAS apps with Single Tenant model [1] in a really simple and elegant way.

I always liked this model since it gives the best isolation and not having to code with multi-tenant in mind really simplifies development and security. But maintaing an infra for this is hard and costly.

[1] https://docs.microsoft.com/en-us/azure/architecture/isv/appl...


Yes, SQL Azure has customers with 10K+ tenants. I's anecdotal, but I'm pretty sure since I used to work at SQL Server!

This makes it super easy.


How do you handle upgrades for single tenant databases?


We shut down the old compute and start a new one with a new version (after loads of testing and making sure it'll work).


Dan Luu impact at Wave.com is noticable already. Since he joined in March, Wave is pushing one great blog post per week (in contrast to 1 in 2021, 0 in 2020 and 3 in 2019).

I tried creating this culture of blogging but failed, would love to hear strategies that worked to achieve this.


Be a good writer to be able to recognize and hire good writers?


wow.... this is amazing!

I dindn't get this:

`OrioleDB implements default 64-bit transaction identifiers, thus eliminating the well-known and painful wraparound problem`

I thought that PG's 32-bit transaction identifier and wraparound issue was due to the current MVCC implementation that keeps old versions of rows in page tables, so there is the need to vacuum to clean up the dead rows. So my assumption was that using another approach for MVCC, like the UNDO log, this problem wouldn't exist (since page tables would only have the latest version).

What am I missing here?


PostgreSQL 32-bit transaction identifiers are cycled in a ring. This is why PostgreSQL needs to "freeze" old transaction identifiers before they could start being identified as future. This routine is "vacuum freeze" and it have to scan and re-write pages, which could have no dead rows.


This is really nice! Congrats!

I once started building as a side project something similar but focused on querying cloud resources (like S3 buckets, ec2s, etc... discovering the biggest file from a bucket was trivial with this). I abandoned the project but someone else built a startup on the same concept - even the name was the same: cloudquery.

I built it using the multicorn [1] postgres extension and it is deligthful of how easy it to get something simple running.

[1] https://multicorn.org/


That is pretty landing page!

Just read that the meaning of oku [1] is 1) private, intimate, and deep; 2) exalted and sacred; and, 3) profound and recondite

anyway, your brazilian users will find this funny since oku has the same sound of "o cu" that literally means "the butt hole".

[1] https://en.wikipedia.org/wiki/Oku_(theory)#:~:text=3%20Bound....


Not really, because the O is only open when alone, or a longer word. This reads Óku, not Uku. At least that's how I read it being Portuguese.

The defunct social network Orkut is a good example of this. It's Órkut, not Urkut.

Of course, none of this matters :)


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: