Pull to refresh
4
0
Alexander Irbis @BlessMaster

Разработчик

Send message

Rust должен умереть, МГУ сделал замеры

Reading time 25 min
Views 99K

В предыдущих сериях:



Медленно, но верно Раст проникает не только в умы сотрудников больших корпораций, но и в умы школьников и студентов. В этот раз мы поговорим о статье от студента МГУ: https://rustmustdie.com/.


Её репостнул Андрей Викторович Столяров, доцент кафедры алгоритмических языков факультета ВМК МГУ им. М. В. Ломоносова и по совместительству научрук студента-автора статьи.


Я бы сказал, что тут дело даже не в том, что он "неинтуитивный". Дело скорее в том, что компилятор раста сам решает, когда владение "должно" (с его, компилятора, точки зрения) перейти от одного игрока к другому. А решать это вообще-то должен программист, а не компилятор. Ну и начинается пляска вида "как заставить тупой компайлер сделать то, чего я хочу".
Бред это всё.

— А. В. Столяров
Кощунство!
Total votes 363: ↑344 and ↓19 +325
Comments 230

Как тимлиду можно развивать команду

Reading time 6 min
Views 4.2K
Гораздо приятнее руководить командой опытных разработчиков, а не командой новичков. Однако на рынке труда очень мало опытных разработчиков, у них большие запросы и за них огромная конкуренция. Что делать? Один из способов — вырастить своих сеньоров из мидлов и джунов. В этой статье я опишу свои методики как можно ускорять профессиональный рост сотрудников. Это не окончательный список, не какой-то стандарт, а просто описание моего опыта руководства двумя командами разработки. Методы работают у меня, значит возможно сработают и у других. Просьба коллег тоже делиться своими подходами в комментариях. Итак, поехали.
Читать дальше →
Total votes 8: ↑6 and ↓2 +4
Comments 0

Локальный TCP Anycast — это действительно сложно

Reading time 4 min
Views 3.3K

Pete Lumbis и Network Ninja в своих комментариях к моим записям, посвященным UCMP, упомянули интересный случай использования UCMP в центре обработки данных: а именно серверы anycast.

Вот типичный сценарий, который они упомянули: группа серверов, случайно подключенных к нескольким leaf-коммутаторам, предоставляет услугу на одном и том же IP-адресе (отсюда и происходит anycast).

Читать далее
Total votes 5: ↑4 and ↓1 +3
Comments 0

Consul: Service Discovery это просто, или прощаемся с конфиг-файлами

Reading time 8 min
Views 125K
Что здесь интересного:

image

Обзорная статья о Consul (http://consul.io) — системе для поддержания обнаружения сервисов и распределенного хранилища ключ-значение. Кроме самого Consul, рассмотрим Consul-Template — средство для управления конфигурациями сервисов автоматически отражающее изменения в топологии. Статья будет интересна DevOps инженерам, системным архитекторам, тим-лидам проектов и прочим интересующимся микросервисными архитектурами.
Читать дальше →
Total votes 15: ↑15 and ↓0 +15
Comments 28

Всё, что нужно знать об автоматических переносах в CSS

Reading time 6 min
Views 46K


Недавно меня пригласили выступить с вечерней лекцией в Типографском обществе Австрии. Для меня стало большой честью последовать по стопам таких светил, как Мэтью Картер, Вим Краувел, Маргарет Калверт, Эрик Шпикерман и покойная Фреда Сэк.

Я рассказал о некоторых золотых правилах типографики в интернете, а потом во время секции QA меня спросили о текущей ситуации с автоматическими переносами в вебе. Это хороший вопрос, особенно с учётом того, что немецкий язык знаменит часто используемыми длинными существительными (например, Verbesserungsvorschlag означает «предложение для улучшения»), поэтому переносы широко используются в большинстве письменных носителей.
Читать дальше →
Total votes 31: ↑31 and ↓0 +31
Comments 11

Postgresso 35 — спецвыпуск: PostgreSQL 14

Reading time 13 min
Views 6.3K


Пресс-релиз PostgreSQL обширен и основателен. Есть и выжимка (highlights), в которой после бурных обсуждений в рассылках выделили главное.

Статей о 14-й много. Мы смотрели и разрозненные статьи и целые сериалы:
обзоры коммитфестов Павла Лузанова (5 серий),
waiting for PostgreSQL 14 Хуберта 'depesz' Любашевского (18),
микрообзоры Postgres 14 highlights Мишеля Пакье (Michael Paquier) (5),
в блоге Fujitsu OSS (5).

Кроме того есть пространная статья-справочник от HPE: PostgreSQL 14 New Features With Examples (Beta 1).

Начнём со статей, в которых авторы стараются охватить версию 14 в целом. Но перед этим разомнёмся

в облаках и контейнерах

Читать дальше →
Total votes 16: ↑16 and ↓0 +16
Comments 1

Соотношение «цена-прибыль» Шиллера и пузыри на рынке акций

Reading time 20 min
Views 22K
Адриан Ханнеман. Два мальчика, выдувающие пузыри. ок. 1630 г. Музей искусств Нортона, Уэст-Палм-Бич.

Пару месяцев назад на Хабре вышла статья «На фондовом рынке США сформировался пузырь небывалых размеров». Согласно этой статье, «мультипликаторы находятся на исторических максимумах», так что «большой кризис неизбежен».

Один из мультипликаторов, на который ссылается статья — это известное соотношение «цена-прибыль» Шиллера. Честно говоря, я уже сбился со счёта, сколько раз за последние годы я читал апокалиптические прогнозы, основанные на индикаторе Шиллера. Чтобы выяснить, насколько можно верить этим прогнозам, я решил наконец-то почитать работы Шиллера и других исследователей. Оказалось, что недавно даже сам Шиллер написал, что такой прямолинейный взгляд на показатель «цена-прибыль» может быть весьма спорным.

В этой статье я расскажу, как устроен многострадальный индикатор Шиллера, почему сам Шиллер не вполне поддерживает всёпропальщицкие предсказания, есть ли статистическая связь между индикатором и долгосрочной доходностью рынка акций, и можно ли на ней заработать. Спойлер: скорее всего, философский камень инвестиций всё ещё не найден, а высокое соотношение «цена-прибыль» в первую очередь связано с низким процентными ставками.
Читать дальше →
Total votes 43: ↑43 and ↓0 +43
Comments 26

Как пересчитать электронную таблицу

Reading time 13 min
Views 6.3K
Предположим, я заказываю буррито для двоих друзей и хочу рассчитать общую стоимость заказа:



Поток данных в этой таблице немного сложно проследить, поэтому вот эквивалентная диаграмма, которая представляет таблицу в виде графа:



Округляем стоимость буррито El Farolito super vegi до 8 долларов, поэтому при доставке стоимостью 2 доллара общая сумма составит 20 долларов.
Читать дальше →
Total votes 22: ↑21 and ↓1 +20
Comments 6

Многомерные данные и оценка качества их визуализации

Reading time 5 min
Views 3.5K
image

  • Многомерные данные — что они из себя представляют?
  • Зачем их визуализировать и что мы можем понять из визуализации?
  • Какими способами можно уменьшить размерность таким образом, чтобы сохранилась главная структура данных и какие свойства учитывать при проектировании?
Читать дальше →
Rating 0
Comments 1

Смарт контракты Ethereum: структурируем токены как акции

Reading time 9 min
Views 28K
В настоящее время идет настоящая волна хайпа криптовалют и череда успешных ICO самых разнообразных проектов, в том числе имеющих весьма сомнительное или не имеющих вообще никакого отношения к децентрализации и другим базовым принципам блокчейн. В ходе ICO на продажу широкой публике выставляются некие виртуальные сущности – токены. Наполнение этих самых токенов какой-либо реальной «ценностью», как правило, уникально для каждого проекта. В рамках данной статьи я хочу рассмотреть структурирование токена как «акции», когда держатель этих токенов претендует на получение дивидендов от проекта, пропорционально имеющемуся у него проценту токенов от общей эмиссии. Это создает целый ряд правовых коллизий и неопределенностей, поэтому на сегодня нет ни одного крупного проекта, построенного по этой логичной и понятной для инвесторов модели, но юридические аспекты мы вынесем за скобки и остановимся лишь на технической реализации.
Читать дальше →
Total votes 12: ↑10 and ↓2 +8
Comments 9

Смарт контракты Ethereum: что делать при ошибке в смартконтракте или техники миграции

Reading time 7 min
Views 10K
При написании смартконтрактов важно помнить, что после загрузки в блокчейн, они уже не могут быть изменены, а следовательно, не могут быть внесены какие-либо улучшения или исправлены какие-то найденные ошибки! Все мы знаем, что ошибки есть в любой программе, а вернувшись к написанному пару месяцев назад коду мы всегда найдем, что там можно улучшить. Как же быть? Единственно возможный вариант – это загрузить новый контракт с исправленным кодом. Но как же быть, если на базе имеющегося контракта уже выпущены токены? На помощь нам приходит миграция! За последний год я попробовал много разных техник ее реализации, проанализировал применяемые в других крупных блокчейн проектах и что-то поизобретал сам. Подробности под катом.

Читать дальше →
Total votes 18: ↑16 and ↓2 +14
Comments 0

Как развитие алгоритмов сжатия остановилось 20 лет назад, или о новом конкурсе на 200 тысяч евро

Reading time 18 min
Views 70K

В октябре прошлого года я опубликовал статью «О талантах, деньгах и алгоритмах сжатия данных», где с юмором описал, как «изобретают» новые алгоритмы сжатия люди, не имеющие достаточно навыков для реализации своих идей. А заодно рассказал про существующие конкурсы по новым алгоритмам, в том числе двигавшийся тогда к завершению конкурс алгоритмов сжатия с призовым фондом 50 тысяч евро.

Пост набрал 206 «плюсов», вышел на 2 место топа недели и вызвал оживленную дискуссию, в которой мне больше всего понравился комментарий: «Коммерческого интереса эффективность по сжатию алгоритмов сжатия без потерь сегодня не представляет, в силу отсутствия принципиально более эффективных алгоритмов. Деньги сегодня — в сжатии аудио-видео. И там и алгоритмы другие. Тема сжатия без потерь удобна именно лёгкостью верификации алгоритма, и не слегка устарела. Лет на 20.» 

Поскольку я сам уже 20 лет в области сжатия видео, с ее бурным развитием мне спорить сложно. А вот что сжатие без потерь развиваться перестало… Хотя логика тут понятна каждому. Я до сих пор пользуюсь ZIP, все мои друзья пользуются ZIP с 1989 года — значит, ничего нового не появляется. Так ведь? Похоже рассуждают сторонники плоской земли. ))) Я не видел, знакомые не видели, и даже некоторые авторитеты утверждают, значит, это так! 

О том, как Intel просили меня не прекращать читать курс по сжатию, ибо людей нет новые алгоритмы делать, я в прошлый раз писал. Но тут и Huawei в ту же дуду дует! Вместо того, чтобы раздать призы и должности победителям, а затем успокоиться, поскольку развитие давно встало, эти эксцентричные люди посчитали конкурс крайне успешным и запустили новый с призовым фондом 200 тысяч EUR.

Развивались ли алгоритмы сжатия без потерь в последние 20 лет? Чем закончился прошлый конкурс и на сколько опередили baseline? Сколько денег получили русские таланты, а сколько зарубежные? И есть ли вообще жизнь на Марсе в сжатии без потерь? 

Кому интересно — добро пожаловать под кат! 
Читать дальше →
Total votes 259: ↑258 and ↓1 +257
Comments 134

Объяснение легковесных потоков в 200 строк на Rust

Reading time 26 min
Views 12K

Объяснение легковесных потоков в 200 строк на Rust


Легковесные потоки (ligthweight threads, coroutines, корутины, green threads) являются очень мощным механизмом в современных языках программирования. В этой статье Carl Fredrik Samson попытался реализовать рантайм для легковесных потоков на Раст, попутно объясняя, как они устроены "под капотом".


Так же следует учесть, что статья не суперсвежая, так что для того, чтобы примеры заработали в современной ночной версии компилятора Раст, скорее всего понадобятся изменения, найти которые можно в репозитории кода для этой статьи.


Переводил для себя большей частью. Обо всех замечаниях пишите — оперативно исправлю. Старался переводить близко к тексту, но в некоторых местах переформулировал, чтобы читалось легче и было понятнее.
Читать дальше →
Total votes 25: ↑25 and ↓0 +25
Comments 8

Алгоритм Верхуффа для произвольной чётной системы счисления

Reading time 4 min
Views 12K
КДПВ Иногда возникает задача защитить строку-идентификатор от случайных ошибок, сделанных человеком. Например, номер платёжной карты. Для этого к строке добавляется вычисленная специальным образом контрольная цифра, и когда человек вводит этот номер, можно сделать первичную проверку на ошибки без обращения к базе данных. Самый простой вариант — добавить остаток от деления суммы всех цифр на 10, в таком случае искажение любой одной цифры (в том числе контрольной) будет легко обнаружить, и такая строка не пройдёт проверку. Но некоторые другие ошибки такая контрольная сумма пропустит, например, перестановку двух цифр местами, а это тоже довольно распространённая ошибка.
Читать дальше →
Total votes 41: ↑40 and ↓1 +39
Comments 15

Так ли токсичен синтаксис Rust?

Reading time 19 min
Views 49K
fn main() {
  println!("Hello, Rust!");
  println!("... Goodbye!");
}

Синтаксис — это первое, на что обращают внимание разработчики, впервые столкнувшись с кодом на Rust. И сложно найти что-то другое, что вызывало бы больше негодования у новичков, и при этом такое, к чему совершенно спокойно относятся уже "понюхавшие пороха" Rust-программисты. Посмотрите, например, сколько эмоций вызывает синтаксис Rust у комментаторов одной из типичных новостей про Rust на OpenNET:

Читать дальше →
Total votes 152: ↑136 and ↓16 +120
Comments 737

Современные накопители очень быстры, но плохие API это не учитывают

Reading time 11 min
Views 14K


Почти десять лет я проработал в компании, создающей довольно специализированный продукт — высокопроизводительные системы ввода-вывода. Я имел возможность наблюдать за быстрой и решительной эволюцией технологий хранения данных.

В этом году я сменил работу. Окружённый в новой большой компании инженерами, имевшими опыт в разных сферах работы, я удивился тому, что у каждого из моих коллег, несмотря на выдающийся ум, сложились ложные представления о том, как наилучшим способом использовать современные технологии хранения. Даже если они и были в курсе совершенствования технологий, такие представления приводили к созданию неоптимальных архитектур.

Поразмышляв о причинах этой неувязки, я понял, что в основном устойчивость таких заблуждений вызвана следующим: даже если они проверяли свои предположения при помощи бенчмарков, то данные показывали их (кажущуюся) истинность.

Вот самые распространённые примеры таких заблуждений:

  • «Вполне нормально скопировать память здесь и выполнить эти затратные вычисления, потому что это сэкономит нам одну операцию ввода-вывода, которая была бы ещё более затратной».
  • «Я проектирую систему, которая должна быть быстрой. Поэтому она должна находиться в памяти».
  • «Если мы разобьём эти данные на несколько файлов, то выполнение будет медленным, поскольку возникнут паттерны произвольного ввода-вывода. Нам нужно оптимизировать выполнение под последовательный доступ и осуществлять считывание из одного файла».
  • «Прямой ввод-вывод очень медленный. Он подходит только для очень специализированных областей применения. Если у тебя нет собственного кэша, ты обречён».

Однако если изучить спецификации современных NVMe-устройств, то мы увидим, что даже в потребительском классе это устройства с задержками, измеряемыми в единицах микросекунд, и пропускной способностью в несколько ГБ/с, поддерживающие несколько сотен тысяч произвольных IOPS. Так в чём же нестыковка?
Читать дальше →
Total votes 46: ↑42 and ↓4 +38
Comments 40

Возможно, вам не нужен Rust, чтобы ускорить ваш JS

Reading time 32 min
Views 28K

Несколько недель назад я обнаружил пост "Окисляем Source Maps с Rust и WebAssembly"
распространяющийся по Твиттеру и расказывающий о выигрыше в производительности от замены обычного JavaScript в библиотеке source-map на Rust, скомпилированный в WebAssembly.


Пост возбудил мой интерес не потому, что я большой фанат Rust или WASM, скорее потому что я всегда интересовался фичами языков и оптимизациями, которых не хватает Javascript для того чтобы достичь аналогичной производительности.


Так что я скачал библиотеку с GitHub и отправился в небольшое исследование производительности, которое я документирую здесь практически дословно.

Читать дальше →
Total votes 58: ↑54 and ↓4 +50
Comments 43

Пол Грэм «Как стать богатым» (глава из книги Hackers&Painters)

Reading time 28 min
Views 12K
Это эссе было впервые опубликовано в книге Hackers & Painters, и в онлайн появилось только в декабре 2005 года. Я решил воскресить его с веб-архива, потому что это одно из самых важных эссе в моей жизни, а я сейчас делаю коллекцию лонгридов, которые оказали влияние на мировоззрение: проект Ontol

image

С чего бы вы начали, если бы вдруг решили разбогатеть? Я думаю, что самым лучшим решением было бы запустить новую компанию — стартап, или присоединиться к уже существующему. Этот способ показывает себя эффективным в течение сотен лет. Само слово «стартап» возникло в шестидесятые годы прошлого века, но то, что происходило в то время, было очень похоже на авантюрные торговые путешествия, которые предпринимались в средние века.

Обычно понятие стартап связано с высокими технологиями. Настолько сильно, что выражение «технологический стартап» — почти тавтология. Как правило, это небольшая компания, которая взялась за решение сложной технической проблемы.

Многие люди становятся богатыми, не зная ничего из того, о чем идет речь в этом эссе. Вам вовсе не нужно знать физику, чтобы быть хорошим торговцем. Однако, понимание некоторых основных принципов, может помочь. Почему стартапы должны быть маленькими компаниями? Обязательно ли они перестают быть стартапами, если вырастают? Почему они почти всегда занимаются разработкой новых технологий? Почему так много стартапов продают новые лекарства или программное обеспечение, и так мало подсолнечное масло или моющие средства?

Тезис


С экономической точки зрения к стартапу можно относиться, как к способу сжать всю вашу рабочую жизнь в несколько лет. Вместо того чтобы сорок лет работать не очень интенсивно, вы работаете четыре года настолько сильно, насколько это возможно. Это особенно важно в высоких технологиях, где успех зависит от скорости вашей работы.

Давайте порассуждаем. Предположим, что вы хороший хакер (в первоначальном, положительном смысле этого слова) 20-25 лет.
Читать дальше →
Total votes 26: ↑23 and ↓3 +20
Comments 2

Information

Rating
Does not participate
Location
Киев, Киевская обл., Украина
Date of birth
Registered
Activity