483 karma · joined October 21, 2015
Well kinda actually. In countries with good culinary, even basic konbini food can be better than more "serious" restaurant in bad culinary countries.
Many attempts has been made for an AOT compiler for Python and Ruby, but they don't reach those performance because of this.
I was not aware of f5bot, but I got inspired by another bot called Little Birdie which doesn't exist anymore and it's basically just a re-implementation of it.
Turns out the whole app needs only ~ 10 SQL requests, and it's way funier to write modern SQL than fighting the ORM.
The new code looks like this :
db_message = Model.save_new_message!(@conf.db, DbButler::Hn, item, DbState::Processing)
Than I have a Model module with all the interactions with the DB def self.save_new_message!(db, butler, external_id, state) : Message
sql = {{ read_file "./db/save_new_message.sql" }}
db.query_one(sql, butler.to_s.downcase, external_id, state.to_s.downcase, as: Message)
end
(thanks to Crystal ability to read a file at compile time - I can write raw SQL in a file with syntax highlithing and maybe typesafe if I connect the DB to the editor)The land page is not ready, but the bot has been working for me for months https://newsbutler.xyz/
struct Add {} std::variant<Add, int> Expr;
OR
class Expr {} class Add : Expr {}
The most common example of a sum type is the "Expression problem" - please read some literature before commenting on a topic.
(Btw, it's called sum type for a reason: summation. The cardinality of the sum type is the sum of the cardinality of its variants)
sum Expr { Int; Add(Int,Int) }
VS
class Expr { }
class Add extends Expr { Expr left; Expr right; }