Linker Unsafe
220 subscribers
182 photos
24 videos
18 files
859 links
Собираю ржавые и лямбдообразные новости, прикольные цитатки с форумов, ссылки на статьи и всё такое. В-общем, сюда я тащу такие крупицы, которые мне будет жаль потерять в цифровой бездне. Возможно, они покажутся интересными и вам.

Фи сюда: @nlinker
Download Telegram
Mike Lubinets:
Но если надо динамически, то тут только боксить, конечно.

Dima:
https://github.com/rust-lang/rust/blob/5205ae8bdc2991eecf3bfbb58ed8f56c0673e738/src/librustc/ty/mod.rs#L603-L706 вот че-то такое в итоге запилил

Mike Lubinets:
Хакерство)
Forwarded from Nikita Vilunov
ты не можешь в расте создать тип, который можно дропнуть только передав какое-то дополнительное значение
Nikita Vilunov:
например тебе нужно закрыть сессию с сервером с каким-то результатом. в линейной системе типов ты бы создал сесионный тип и функцию close(Session, &Msg)

вот тебе пожалуйста юзкейз

Анто Шка:
Ты лучше про BufWriter расскажи и про то, как он в дропе проёбывает ошибки от .flush()

Nikita Vilunov:
вообще интересно зачем ты веришь в то, что у раста линейные типы, у тебя от этого погода солнечнее?

Анто Шка:
А что там рассказывать? BufWriter в дропе дёргает .flush(), чтобы все данные из буфера записались. .flush(), разумеется, может возвращать ошибку. Но если она происходит в дропе, то ты про неё не узнаешь, вообще
Как тут не вспомнить знаменитые слова

Новые научные идеи побеждают не потому, что их противники признают свою неправоту, просто противники эти постепенно вымирают, а подрастающее поколение, не обремененное предрассудками, усваивает новые идеи сразу. (Макс Планк)
Forwarded from Nik Bond
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
structopt = { version = "0.2.18", features = [ "paw" ] }
failure = "0.1.5"

Да
Forwarded from Kirill Kuzminykh
@vlad20012 Подскажи пожалуйста - у CLion вышло обновиление 2019.3, и в окне с предложением обновиться указано, что плагин Rust не совместим с новым CLion. Это правда и лучше пока не обновлять CLion?
Forwarded from Андрей Власов
Forwarded from Aleksandr Vershilov
Screenshot 2019-12-02 at 14.19.59.png
89.5 KB
Iceland Jack не любит, когда его ретвитят
Forwarded from A64m AL256m qn<cores> I0
"никто не любит, когда всякие нерды оскорбляют то, во что инвестировал много времени"
Forwarded from Слава
@rynok_shkurr
Какой прекрасный, восхитительный канал. Читаешь и понимаешь, что программистам платят мало.
Forwarded from Αλεχ Zhukovsky
"вторые сутки гасится в карелии"/"её модель прямая"/"гоняет на низкобюджетные темы как модель"/...

Что это за язык? Я не понимаю ни слова
Forwarded from Αλεχ Zhukovsky
def stateMonad[S]: Monad[State[S, ?]] = {
type StateS[A] = State[S, A]

new Monad[StateS] {

override def unit[A](a: => A): StateS[A] =
State(s => (a, s))

override def flatMap[A, B](f: StateS[A])(g: A => StateS[B]): StateS[B] =
State[S, B](
s1 => {
val (a, s2) = f.run(s1)
g(a).run(s2)
}
)
}
}
Forwarded from Αλεχ Zhukovsky
Forwarded from Dmitry Rodionov
К проблеме консистентности в распределенных системах отношение имеет, чаще всего используется для выбора лидера (текущего master) с учетом подводных камней в виде отвала ноды и/или network partition. Возможно вас также заинтересует такая штука как CRDT, они используются в некоторых хранилищах (например Riak) и вроде попадались упоминания, что и в akka они тоже используются. Есть способы организовать транзакции между разными системами (в вашем случае рсубд и redis) почитать про это можно например тут. Eсть еще вариант который может вас заинтересовать: читать лог транзакций из субд и записывать данные в кеш (возможно для этого вы используете redis), это позволит видеть в кеше согласованные данные. Прошу поправить знающих коллег если в чем-то неточно выразился
Спасибо, nats streaming