Forwarded from Alla Aleksandrovska
#Vacancy #Tech #Lead #Python
Есть ремоут в американский стартап на #FinTech проект.
Распределенная команда, постоянный ремоут, возможно в будущем откроют офис в Украине (Киев).
Ранняя стадия. У всех есть возможность решать проблемы с нуля и брать на себя ответственность за проекты.
По ЗП: готовы обсуждать все ожидания.
Responsibilities:
- Build and ship new products
- Act as a technical leader for the development team
- Help accelerate time-to-value for the initial customers
Requirements:
- Software development experience with Python/Django 7+ years
- Lead experience in managing developers
- Experience working directly with VP or CTOs of startups
- Recent product company experience
- Passionate for hands-on work
Мои контакты:
[email protected]
Skype: socioengineer
Есть ремоут в американский стартап на #FinTech проект.
Распределенная команда, постоянный ремоут, возможно в будущем откроют офис в Украине (Киев).
Ранняя стадия. У всех есть возможность решать проблемы с нуля и брать на себя ответственность за проекты.
По ЗП: готовы обсуждать все ожидания.
Responsibilities:
- Build and ship new products
- Act as a technical leader for the development team
- Help accelerate time-to-value for the initial customers
Requirements:
- Software development experience with Python/Django 7+ years
- Lead experience in managing developers
- Experience working directly with VP or CTOs of startups
- Recent product company experience
- Passionate for hands-on work
Мои контакты:
[email protected]
Skype: socioengineer
Forwarded from oleg_log (Oleg Kovalov)
Достаточно детальная статья с разбором, а почему Rust медленно собирается.
https://medium.com/@jondot/8-steps-for-troubleshooting-your-rust-build-times-2ffc965fd13e
Отдельно упомяну упомянутые https://github.com/google/bloaty и https://github.com/jondot/goweight и https://github.com/RazrFalcon/cargo-bloat (cpp gо, rust соотв)
https://medium.com/@jondot/8-steps-for-troubleshooting-your-rust-build-times-2ffc965fd13e
Отдельно упомяну упомянутые https://github.com/google/bloaty и https://github.com/jondot/goweight и https://github.com/RazrFalcon/cargo-bloat (cpp gо, rust соотв)
Medium
8 Steps for Troubleshooting Your Rust Build Times
To be able to troubleshoot Rust compilation, we first need to understand in a rough cut how it works. The goal is to give you a map that…
Forwarded from Senior Sigan blog (Ilya Siganov)
Осенний аниме-сезон не очень. Но что тогда смотреть за завтраком/обедом и вечером? Делюсь с вами подборочкой.
- Линейная алгебра и геометрия ФКН ВШЭ. Онгоинг. Прикольный, бодрый сериал про алгебру, мне нравится.
- Машобуч СПбГУ - Сергей Николенко. Онгоинг. Сериал про классический ML. (Вообще смотрите все видосы на канале)
- Маш обуч ФКН ВШЭ - Евгений Соколов. Онгоинг. Классический ML. Хороший сериал.
- Алгоритмы и структуры данных. Онгоинг. Смотрел пару серий, мне понравилось.
Вышедшие сериалы, которые можно посмотреть.
- Алгоритмы и структуры данных. ШАД. М.А.Бабенко. Вышло в 2014. Огонь сериал, смотрел на одном дыхании.
- Программирование на С++ от CSC. Первый сезон. Второй сезон. - лучший сериал про с++, что я смотрел.
- Программирование на Rust от CSC. - Советую смотреть после сериала про С++. Отлично дополнит.
- Линейная алгебра и геометрия ФКН ВШЭ. Онгоинг. Прикольный, бодрый сериал про алгебру, мне нравится.
- Машобуч СПбГУ - Сергей Николенко. Онгоинг. Сериал про классический ML. (Вообще смотрите все видосы на канале)
- Маш обуч ФКН ВШЭ - Евгений Соколов. Онгоинг. Классический ML. Хороший сериал.
- Алгоритмы и структуры данных. Онгоинг. Смотрел пару серий, мне понравилось.
Вышедшие сериалы, которые можно посмотреть.
- Алгоритмы и структуры данных. ШАД. М.А.Бабенко. Вышло в 2014. Огонь сериал, смотрел на одном дыхании.
- Программирование на С++ от CSC. Первый сезон. Второй сезон. - лучший сериал про с++, что я смотрел.
- Программирование на Rust от CSC. - Советую смотреть после сериала про С++. Отлично дополнит.
Forwarded from Блог*
#prog #rust
Пара советов по строкам в Rust:
1) Если вам нужно разбить строку по одному из нескольких возможных символов — не спешите расчехлять регулярки, для это задачи вполне хватит стандартной библиотеки. Множество строковых методов навроде {, r}split{, _terminator}, trim{, _start, _end}_matches, find и прочие принимают в качестве аргумента для поиска значение, тип которого реализует пока нестабильный трейт Pattern. В настоящий момент его реализуют
2) Если функция принимает на вход
Вызвать `next`?
Нет.
Также вызвать `next_back`?
Нет.
Это всё неполные ответы. Если мы получаем мутабельную ссылку на
Покажу на примере.
Вот первый способ вытащить строку из
Второй способ (побыстрее и не требующий аллокаций):
Пара советов по строкам в Rust:
1) Если вам нужно разбить строку по одному из нескольких возможных символов — не спешите расчехлять регулярки, для это задачи вполне хватит стандартной библиотеки. Множество строковых методов навроде {, r}split{, _terminator}, trim{, _start, _end}_matches, find и прочие принимают в качестве аргумента для поиска значение, тип которого реализует пока нестабильный трейт Pattern. В настоящий момент его реализуют
&str, &&str, &String, impl FnMut(char) -> bool и (почему-то малоизвестный) &[char]. Таким образом, разбить строку по нескольким символам легко:let result = "Hello, world!".split(&['o', 'l'][..]).collect::<Vec<_>>();
assert_eq!(result, vec!["He", "", "", ", w", "r", "d!"]);
2) Если функция принимает на вход
&mut std::str::Chars, что она может с ним сделать?Вызвать `next`?
Нет.
Также вызвать `next_back`?
Нет.
Это всё неполные ответы. Если мы получаем мутабельную ссылку на
Chars, мы можем редактировать произвольным образом, в том числе и поменять его целиком. Chars внутри себя содержит строки, символы которой он перебирает, и при помощи метода Chars::as_str эту строку можно достать. Таким образом, имея мутабельную ссылку на Chars, можно вытащить из него строку, вырезать из строки нужный кусок и переписать переданный итератор .chars() от этого кусочка.Покажу на примере.
Вот первый способ вытащить строку из
Chars (медленный, требующий аллокаций и не совсем корректный):fn extract_line2(chars: &mut Chars) -> String {
chars.take_while(|&ch| !matches!(ch, '\r' | '\n')).collect()
}Второй способ (побыстрее и не требующий аллокаций):
fn extract_line<'s>(chars: &mut Chars<'s>) -> Option<&'s str> {
let s = chars.as_str();
let line = s.lines().next()?;
*chars = s[line.len()..].chars();
Some(line)
}doc.rust-lang.org
Pattern in std::str::pattern - Rust
A string pattern.
Forwarded from oleg_log (Oleg Kovalov)
Развернутое сравнение rust & Zig. Не побоюсь сказать, что лучшее из увиденного по теме.
https://scattered-thoughts.net/writing/assorted-thoughts-on-zig-and-rust/
https://scattered-thoughts.net/writing/assorted-thoughts-on-zig-and-rust/
Forwarded from Bortlog
Вот вам подборочка хаков из кишочек Pebble:
1) https://github.com/cockroachdb/pebble/blob/master/internal/rawalloc/rawalloc.go
Аллоцируем неинициализированый (незануленый) слайс байт. Иногда надо если Вы знаете что всеравно сейчас перезапишите все эти байты своими, так что на инициализацию платить не хочется. Еще бывают случаи что вы предаллоцируете такой слайс, но может на полную его использовать не будете, поэтому вручную делаете инициализацию ленивой. Остальные варианты использования можете придумать сами и написать в коментарии.
2) https://github.com/cockroachdb/pebble/blob/master/internal/fastrand/fastrand.go
Прилинкованый
3) https://github.com/cockroachdb/pebble/blob/master/internal/bytealloc/bytealloc.go
Если Вы знаете что сейчас будете аллоцировать много маленьких байтслайсов можно предалоцировать их в одном слайсе побольше.
4) https://github.com/cockroachdb/pebble/blob/master/internal/intern/intern.go
Смотрите кто использует
5) https://github.com/cockroachdb/pebble/tree/master/internal/invariants
Как понять что тебя запустили под рейс детектором.
1) https://github.com/cockroachdb/pebble/blob/master/internal/rawalloc/rawalloc.go
Аллоцируем неинициализированый (незануленый) слайс байт. Иногда надо если Вы знаете что всеравно сейчас перезапишите все эти байты своими, так что на инициализацию платить не хочется. Еще бывают случаи что вы предаллоцируете такой слайс, но может на полную его использовать не будете, поэтому вручную делаете инициализацию ленивой. Остальные варианты использования можете придумать сами и написать в коментарии.
2) https://github.com/cockroachdb/pebble/blob/master/internal/fastrand/fastrand.go
Прилинкованый
lock free uint32 рандом из рантайма Go.3) https://github.com/cockroachdb/pebble/blob/master/internal/bytealloc/bytealloc.go
Если Вы знаете что сейчас будете аллоцировать много маленьких байтслайсов можно предалоцировать их в одном слайсе побольше.
4) https://github.com/cockroachdb/pebble/blob/master/internal/intern/intern.go
Смотрите кто использует
sync.Pool для построения кеша интернированых строк. А я то думал что первым додумался так ипользовать Pool 😐 в https://github.com/storozhukBM/pcache5) https://github.com/cockroachdb/pebble/tree/master/internal/invariants
Как понять что тебя запустили под рейс детектором.
GitHub
pebble/internal/rawalloc/rawalloc.go at master · cockroachdb/pebble
RocksDB/LevelDB inspired key-value database in Go. Contribute to cockroachdb/pebble development by creating an account on GitHub.
Forwarded from PONV Daily (Danila Matveev)
#distributed #lectures #edu
Странный состав лекций, возможно есть предварительный осенний курс. Но это MIT.
https://www.youtube.com/playlist?list=PLrw6a1wE39_tb2fErI4-WkMbsvGQk9_UB
Странный состав лекций, возможно есть предварительный осенний курс. Но это MIT.
https://www.youtube.com/playlist?list=PLrw6a1wE39_tb2fErI4-WkMbsvGQk9_UB
YouTube
MIT 6.824 Distributed Systems (Spring 2020)
Share your videos with friends, family, and the world
Forwarded from Linker Unsafe
В закладки.
A curated selection of artisanal consensus algorithms and hand-crafted distributed lock services.
https://github.com/graydon/awesome-consensus
A curated selection of artisanal consensus algorithms and hand-crafted distributed lock services.
https://github.com/graydon/awesome-consensus
GitHub
GitHub - graydon/awesome-consensus: Awesome list for Paxos and friends
Awesome list for Paxos and friends. Contribute to graydon/awesome-consensus development by creating an account on GitHub.
Forwarded from Linker Unsafe
В дополнение анимированный интерактивный туториал по Raft консенсусу. Известная ссылка, но вдруг кто не видел.
https://thesecretlivesofdata.com/raft/
https://thesecretlivesofdata.com/raft/
Forwarded from Kitsu
https://reberhardt.com/blog/2020/10/05/designing-a-new-class-at-stanford-safety-in-systems-programming.html
https://reberhardt.com/cs110l/spring-2020/
Еще лекций по расту подвезли, кажется тут еще не мелькало. Тут правда похоже нужен хороший бэкграунд по C/C++
https://reberhardt.com/cs110l/spring-2020/
Еще лекций по расту подвезли, кажется тут еще не мелькало. Тут правда похоже нужен хороший бэкграунд по C/C++
Reberhardt
Designing a New Rust Class at Stanford: Safety in Systems Programming
Writing quality software is hard. Sometimes, software breaks in entertaining ways. However, when software runs everything from personal assistants like Alexa and Google Home to banking to elections, some bugs can be much more severe. Thi...
Forwarded from Evil Martians
Чем заняться вечером нерабочего дня? Можно вложиться в самообразование и начать смотреть стенфордский курс лекций по распределенным системам от Мартина Клеппманна. Имя хорошо известно в кругах CRDT (бесконфликтные реплицируемые типы данных).
Плейлист: https://www.youtube.com/playlist?list=PLeKd45zvjcDFUEv_ohr_HdUFe97RItdiB
Плейлист: https://www.youtube.com/playlist?list=PLeKd45zvjcDFUEv_ohr_HdUFe97RItdiB
YouTube
Distributed Systems lecture series
Accompanying lecture notes: https://www.cl.cam.ac.uk/teaching/2122/ConcDisSys/dist-sys-notes.pdf These videos form an 8-lecture series on distributed systems...
Forwarded from Блог*
#prog #article
Продолжение темы от того же автора: Names are not type safety.
https://lexi-lambda.github.io/blog/2020/11/01/names-are-not-type-safety/
В рассуждениях автора легко провести параллели с тем, как использовать и ограничивать unsafe-код в Rust.
Продолжение темы от того же автора: Names are not type safety.
https://lexi-lambda.github.io/blog/2020/11/01/names-are-not-type-safety/
В рассуждениях автора легко провести параллели с тем, как использовать и ограничивать unsafe-код в Rust.
Forwarded from oleg_log (Oleg Kovalov)
А здесь более расширенный бугурт по поводу ipv6. И он вполне логичен.
Когда я впервые посмотрел, сколько же нас ждёт адресов, возник осмысленный вопрос: зачем моей стиральной машинке несколько лярдов адресов? (и если бы только моей).
NAT хоть и имеет свои особенности, но все же решает(?) проблему. Забавно что теперь это NPT (network prefix translation, а не address).
Ах, и конечно же безопасность. Самое время думать о миграции из network engineer в network security engineer, 3х ставку требовать с порога)
Думаю сейчас кто-то из сетевиков придет в коменты или в лс и расскажет мне как мир устроен, но все же - много.
Лонгрид на самом деле, но советую https://teknikaldomain.me/post/ipv6-is-a-total-nightmare/
Когда я впервые посмотрел, сколько же нас ждёт адресов, возник осмысленный вопрос: зачем моей стиральной машинке несколько лярдов адресов? (и если бы только моей).
NAT хоть и имеет свои особенности, но все же решает(?) проблему. Забавно что теперь это NPT (network prefix translation, а не address).
Ах, и конечно же безопасность. Самое время думать о миграции из network engineer в network security engineer, 3х ставку требовать с порога)
Думаю сейчас кто-то из сетевиков придет в коменты или в лс и расскажет мне как мир устроен, но все же - много.
Лонгрид на самом деле, но советую https://teknikaldomain.me/post/ipv6-is-a-total-nightmare/
Tek's Domain
IPv6 Is a Total Nightmare — This is Why
So this is just going to be a total rant. IPv6 is, in theory, a solution to many things, including the dwindling IPv4 address space. IPv6 was officially a draft in 1997, and became a real Internet Standard in 2017. And, quite frankly, it's one of those things…
Forwarded from There will be no singularity
Егор Бугаенко замутил конфу по code quality: iccq.ru
Должно быть круто, жаль не успею подготовить доклад до 4 декабря.
Справедливости ради, это не первая конфа по качеству кода. Существует Static Analysis Symposium, который через несколько дней будет проводиться уже в 27 (!!!) раз. Да, это не совсем про code quality, но все-таки...
Должно быть круто, жаль не успею подготовить доклад до 4 декабря.
Справедливости ради, это не первая конфа по качеству кода. Существует Static Analysis Symposium, который через несколько дней будет проводиться уже в 27 (!!!) раз. Да, это не совсем про code quality, но все-таки...
Forwarded from Блог*
#prog #rust #article
Статья про то, как писать код с инициализацией данных, сохранив сильную exception safety.
Статья про то, как писать код с инициализацией данных, сохранив сильную exception safety.
Arthur::Carcano
Exception safety in Rust: using transient droppers to prevent memory leaks
In this post, we dive into a common Rust pattern to prevent memory leaks in case of exceptions in unsafe code, as used in the `array-init` crate.