Forwarded from Aleksei (astynax) Pirogov
(это кусок из домашки, которую я задаю своим ученикам)
Forwarded from Aleksei (astynax) Pirogov
Парсер на скрине — практически (E)BNF с точностью до операторов
Forwarded from Kakadu
Народ, я могу сделать какой-нибудь standalone Deriving Via чтобы по инстансу монады у меня сам сгенерировался инстанс аппикатива и функтора? Не хочу писать бойлерплейт
Forwarded from A64m AL256m qn<cores> I0
newtype ExistingMonadInstance m a = EMI (m a)
instance Monad m => Functor (ExistingMonadInstance m) where
fmap f (EMI v) = EMI (liftM f v)
instance Monad m => Applicative (ExistingMonadInstance m) where
pure = EMI . return -- единственное отличие от WrappedMonad
EMI f <*> EMI v = EMI (f `ap` v)
liftA2 f (EMI x) (EMI y) = EMI (liftM2 f x y)
data Foo a = Foo a
deriving Show
deriving (Functor, Applicative) via ExistingMonadInstance Foo
-- deriving (Functor, Applicative) via WrappedMonad Foo -- pure = pure
instance Monad Foo where
return = Foo
Foo a >>= f = f a
Forwarded from Yuriy Syrovetskiy
28 ноября прочитаю лекцию о том, как работают CRDT (LWW, OR-Set, RGA) и зачем они вам. Осторожно, моноид!
https://meetup.com/ru-RU/progmsk/events/266580965
https://meetup.com/ru-RU/progmsk/events/266580965
Meetup
1) CRDT; 2) Куда расти сеньору?
чт, 28 нояб. 2019 г., 19:00: ВАЖНО-ВАЖНО-ВАЖНО-ОБРАТИТЕ-ВНИМАНИЕ. Регулярно на проходной не пускают программистов, потому что их нет в списке. Чтобы быть в списке, надо регистрироваться по ссылке: htt
Александр Гранин:
Привет всем, я открыл позицию Haskell-разработчика в пользу Juspay.
Спросите у @parketgo , он вам в привате расскажет, как ему работается
Привет всем, я открыл позицию Haskell-разработчика в пользу Juspay.
Спросите у @parketgo , он вам в привате расскажет, как ему работается
Forwarded from Mikail Bagishov
Кажется надо rustup install nighty -c clippy -c rustfmt
Forwarded from Andrew Demonov
TC = total compensation.
Сюда входит:
Base salary
Bonus
Stock bonus
Vested RSU
Sign in bonus
Всякая херня вроде страховок, спортзалов и печенек не считается
Всё до налогов, пересчитанное в долларах в год (rsu пакет может вестится 4 года, пересчитываем)
Сюда входит:
Base salary
Bonus
Stock bonus
Vested RSU
Sign in bonus
Всякая херня вроде страховок, спортзалов и печенек не считается
Всё до налогов, пересчитанное в долларах в год (rsu пакет может вестится 4 года, пересчитываем)
Forwarded from Andrew Demonov
Вообще если интересна информация из первых рук, то я прям блайнд рекомендую.
А по зарплатам - levels.fyi
А по зарплатам - levels.fyi
Αλεχ Zhukovsky:
https://superuser.com/questions/1273927/word-link-in-slack
Вафель:
У телеги очень, очень много проблем. Я бы сказал "лучшая из худших".
К примеру:
— ебанутый (и возможно небезопасный) протокол
— спорный интерфейс в некоторых местах
— проблемы с большими чатами (такое сложно решить ибо как в дискорде тоже не айс)
— кривое bot-api
— ужасная документация
— в десктопной телеге нельзя открыть 2 окна с чатами
и т.д. и т.п.
Αλεχ Zhukovsky:
1. протокол пофиг, ты работаешь через вебапи, которое адекватное (когда я писал бота проблем у меня не возникло)
2. Хз, вроде интерфейс как интерфейс
3. Большие чаты в слаке просто не работают. В телеге же в мейне 3000 человек и проблем с этим нет
4. уже сказал выше
5. более-менее нормальная. Я когда делал бота на расте не было нормальных телеграм либ еще и я пилил сам по доке. Особых проблем не возникло
6. никогда не возникало такой нужды
Вафель:
1. протокол не пофиг, если пишешь клиент/враппер над bot-api. +это влияет на то как добавляют новые фичи. +это влияет на скорость работы/безопасность/потребление инета.
2. как я ниже добавил — нельзя открыть 2 окна; поиск всратый; в каналах лишняя кнопка mute/unmute которая занимает много места;
5.1 дока совершенно не для машин, сгенерить по ней апи не тревиально.
5.2 всё странно структурированно (имхо)
5.3 у них битность инта определяется в ОПИСАНИИ ПОЛЯ
5.4 многие поля которые по логике u32 определены как i32
5.5 про битность float'ов вообще ни слова
5.6 разрабы не умеют в сум типы — некоторые типы сериализуются очень странно
6. если надо в одном чате что-то посмотреть а потом прогнав через мозг кинуть в другой это полезно. Так-же это очень удобно чтобы не искать один и тот же чат каждый раз (а с системой телеги где сверху у тебя сплошные чаты 10кк сообщений/сек это особенно актуально)
Αλεχ Zhukovsky:
лепота)
ну у нас как минимум:
#![feature(option_result_contains)]
#![feature(core_intrinsics)]
#![feature(type_alias_impl_trait)]
#![feature(try_blocks)]
https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=a51688e00d9d9b31576eeca19441c9cf
сигнатура функции
fn foo() -> [closure@src/lib.rs:2:5: 2:10] {}
Mike Lubinets:
Попробуйте лучше trait_alias вместо type alias impl trait
Типа там трейт алиасы можно делать как trait NewTrait = OldTrait и оно разворачивается в что-то типа
trait NewTrait: OldTrait {}
impl<T: OldTrait> NewTrait for T {}
Два чая
Kitsu:
Опч какая милота, а заработает с trait T = Y<impl F>?
Mike Lubinets:
Ноуп :((
Αλεχ Zhukovsky:
https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=fcf73e6be1544af12ae1be3a2dbf168a
правда развернуть и сделать фн возвращающий итератор уже низя
Stanislav Popov:
расходимся посоны раст ничего не может
red75prime:
Хмм. Длину можно регулировать
#![feature(type_alias_impl_trait)]
type Foo = impl Fn();
type Bar = impl Fn() -> Foo;
fn foo() -> Bar {
||||()
}
https://superuser.com/questions/1273927/word-link-in-slack
Вафель:
У телеги очень, очень много проблем. Я бы сказал "лучшая из худших".
К примеру:
— ебанутый (и возможно небезопасный) протокол
— спорный интерфейс в некоторых местах
— проблемы с большими чатами (такое сложно решить ибо как в дискорде тоже не айс)
— кривое bot-api
— ужасная документация
— в десктопной телеге нельзя открыть 2 окна с чатами
и т.д. и т.п.
Αλεχ Zhukovsky:
1. протокол пофиг, ты работаешь через вебапи, которое адекватное (когда я писал бота проблем у меня не возникло)
2. Хз, вроде интерфейс как интерфейс
3. Большие чаты в слаке просто не работают. В телеге же в мейне 3000 человек и проблем с этим нет
4. уже сказал выше
5. более-менее нормальная. Я когда делал бота на расте не было нормальных телеграм либ еще и я пилил сам по доке. Особых проблем не возникло
6. никогда не возникало такой нужды
Вафель:
1. протокол не пофиг, если пишешь клиент/враппер над bot-api. +это влияет на то как добавляют новые фичи. +это влияет на скорость работы/безопасность/потребление инета.
2. как я ниже добавил — нельзя открыть 2 окна; поиск всратый; в каналах лишняя кнопка mute/unmute которая занимает много места;
5.1 дока совершенно не для машин, сгенерить по ней апи не тревиально.
5.2 всё странно структурированно (имхо)
5.3 у них битность инта определяется в ОПИСАНИИ ПОЛЯ
5.4 многие поля которые по логике u32 определены как i32
5.5 про битность float'ов вообще ни слова
5.6 разрабы не умеют в сум типы — некоторые типы сериализуются очень странно
6. если надо в одном чате что-то посмотреть а потом прогнав через мозг кинуть в другой это полезно. Так-же это очень удобно чтобы не искать один и тот же чат каждый раз (а с системой телеги где сверху у тебя сплошные чаты 10кк сообщений/сек это особенно актуально)
Αλεχ Zhukovsky:
лепота)
ну у нас как минимум:
#![feature(option_result_contains)]
#![feature(core_intrinsics)]
#![feature(type_alias_impl_trait)]
#![feature(try_blocks)]
https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=a51688e00d9d9b31576eeca19441c9cf
сигнатура функции
fn foo() -> [closure@src/lib.rs:2:5: 2:10] {}
Mike Lubinets:
Попробуйте лучше trait_alias вместо type alias impl trait
Типа там трейт алиасы можно делать как trait NewTrait = OldTrait и оно разворачивается в что-то типа
trait NewTrait: OldTrait {}
impl<T: OldTrait> NewTrait for T {}
Два чая
Kitsu:
Опч какая милота, а заработает с trait T = Y<impl F>?
Mike Lubinets:
Ноуп :((
Αλεχ Zhukovsky:
https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=fcf73e6be1544af12ae1be3a2dbf168a
правда развернуть и сделать фн возвращающий итератор уже низя
Stanislav Popov:
расходимся посоны раст ничего не может
red75prime:
Хмм. Длину можно регулировать
#![feature(type_alias_impl_trait)]
type Foo = impl Fn();
type Bar = impl Fn() -> Foo;
fn foo() -> Bar {
||||()
}
Super User
Word link in Slack
How can I create a word link in Slack?
By word link I mean a link which is attached to the word. For instance, in SO it is achieved by typing the word in brackets and after that the link in parent...
By word link I mean a link which is attached to the word. For instance, in SO it is achieved by typing the word in brackets and after that the link in parent...
Forwarded from 🇻🇦Agrailag
ишь чего придумали, владение, заимствование, лайфтаймы, иммьютабл, набор каких то слов бесполезных, нормальный программист никогда не ошибётся и два раза не напишет фри или не начнёт мутировать из 2 ух потоков данные без синхронизации, в общем только сишечка. а эти ваши игрушки пусть в аду горят