
Рассмотрим разницу между популярными ошибками при работе с многопоточностью, такими как Data Race и Race Condition, а также способами борьбы с ними.
User
Рассмотрим разницу между популярными ошибками при работе с многопоточностью, такими как Data Race и Race Condition, а также способами борьбы с ними.
Одна из страниц его биографии известна чуть менее широко. Связана она с решением поистине чудовищно сложного для тех времен алгебраического уравнения 45-ой степени!
Последний пост про развитие моего Telegram чата для сайта (Telegram Feedback) был в марте, чуть больше полугода назад. С тех пор проект подрос, пользователей стало больше, а деньги пусть и не полились рекой, но хотя бы тоненьким ручейком.
Да здравствует мыло душистое демосцена! И вам привет, дорогой читатель ;)
С демосценой я познакомился примерно 25 лет назад (или чуть больше). Но тогда это выражалось лишь в просмотре 128–256-байтовых интр (и демок, конечно же) с изумлением а‑ля: «А что так можно было?» Думаю, у многих знакомство с этой киберкультурой начинается похожим образом :). Если вам эти слова мало о чём говорят, почитайте о демосцене скудную статью на Вики, ну и/или послушайте подкаст, а также посмотрите что люди умудряются сделать, укладываясь всего лишь, например, в 256 байт кода (справа у большинства работ есть ссылка на видео YouTube).
Полноценные интры на любимом ассемблере x86 я начал писать только 5 лет назад, в 2018 году. Именно тогда я отправил на знаменитый фестиваль Chaos Constructions (который, кстати, организаторы обещают возродить в 2024) два прода (от слова «production»): 256b intro StarLine (заняла 1-е место) и 64b intro radar (заняла 6-е место в том же compo). После этого демосцена меня засосала стала частью моей жизни, в которую время от времени я с энтузиазмом погружаюсь.
Пусть вас не смущает, что разбор я начал с работы, занявшей шестое место, а не первое. Такой выбор обусловлен тем, что её код более простой и короткий. Вместе с тем, там не так уж и мало трюков, с которыми начинающему (а может, и не только) самураю демосцены может быть интересно познакомиться. Так что не надейтесь на лёгкое расслабляющее чтиво :)
Многие, возможно, думают, что работа с байт-кодом Java (будь то чтение или, тем более, генерация) — это какая-то особенная магия, доступная только продвинутым разработчикам с особенно крутым опытом. На самом деле, я считаю такую точку зрения ошибочной. JVM устроена гораздо проще, чем CPU; она оперирует такими высокоуровневыми понятиями как классы, интерфейсы, методы, а не просто лопатит байты в памяти. В отличие от CPU, который легко уронить криво сгенерированным машинным кодом, JVM заботливо отверифицирует любой байт-код и в общем не даст выстрелить в ногу.
Но с чего начать погружение в байт-кодную магию? В сети есть некоторое количество туториалов по этому вопросу. Как мне кажется, они либо показывают слишком простые случаи, от которых непонятно, как перейти к чему-то более интересному, либо очень основательные и требуют вникать в теорию, собирать целиком картину в голове по кусочкам. Я хотел бы попробовать внести свой вклад в эту тему — надеюсь, у меня получится показать, как можно побороть первый страх и написать что-то похожее на реалистичный сценарий без особого вникания в теорию на первом этапе.
Весь приведённый код доступен в моём репозитории.
Отказ от углеводов и особенно быстрых часто обоснуют тем, что они создают гликемические качели. Съедая что-то углеводное, уровень глюкозы, а затем инсулина резко поднимаются, а когда инсулин разгонит всю глюкозу по клеткам, уровень глюкозы в крови резко снижается.
Резкий всплеск дарит эйфорию, насыщение, а резкий спад голод и даже гипогликемию со своими последствиями: тремором, голодом, слабостью, перепадом настроения и снижением работоспособности.
Сколько тут правды? Похоже, что в значительной степени это миф.
В ИТ-индустрии есть сито, которое часто (по экспертному мнению нанимающего звена) отделяет зёрна от плевел — степень в области компьютерных наук. Многие возражают, что опыт важнее каких-то бумажек, но мы-то знаем, кого в следующий раз продвинут по карьерной лестнице, а кто будет делать всю работу на старой позиции.
Степень бакалавра CS — это не только крепкий фундамент в основах информатики, алгоритмов, структур данных и принципов разработки программного обеспечения, но и дверь в мир возможностей, которые в противном случае могли бы остаться недостижимыми. Расскажу, как я строила свой фундамент, учась бесплатно и онлайн в американском университете.
Если вдруг кто не знает, Anki - это бесплатная opensource программа для запоминания слов (и не только). Есть версии под декстоп и мобилы. Она довольно популярна при этом имеет интуитивно-НЕпонятный интерфейс. Мне понадобилось много лет, чтобы понять, насколько она крута, т.к. базовые статьи и туториалы этого не описывают. А многие люди используют ее даже не понимая ее возможностей.
Впервые про Anki я услышал много лет назад. Может быть 10 или больше, точно сказать сложно. Прочитал здесь на Хабре, что есть такая крутая штука как интервальное повторение, и что Anki как раз такая программа, которая использует этот механизм. Помню что в статье рассказывалось только про версию под декстоп.
Продолжаем разговор об историях массовых увольнений в Интел. Двум памятным случаям из моей практики и будет посвящена эта глава.
В данной статье будет затронута тема создания криптоконтейнеров с помощью различного опенсорсного софта. Коснемся TrueCrypt и VeraCrypt, рассмотрим все с самых азов. Разберемся как создать простой том, том с двойным дном, как создать ключи шифрования и прочее. Все это проделаем под линуксом в консольном режиме.
Отлаживал я как-то тесты и параллельно размышлял о null-safety. Звезды сошлись и родилась довольно странная идея - замокать null.
Вот выходишь ты утром на работу, а на газоне перед домом окурки и прочие отходы жизнедеятельности. Бывает, что приходишь домой, а у тебя на балконе пепел или даже окурок. Как же хочется понять, кто это сделал! Я вот терпеть не могу таких людей. Моя история о том, как найти вредителей и, возможно, сделать свой дом немного чище и безопаснее.
Данный пост является переводом первой статьи 2007 года про устройство регулярных выражений от автора библиотеки RE2. Для понимания требуется немного терпения и свободного времени, чтобы осилить прочтение статьи до конца. Будет плюсом знакомство с теорией автоматов и языком программирования Си (но это необязательное требование).
Так же в статье приводится интереснейшая историческая справка и краткий обзор возможностей современных регулярных выражений.
Как оказалось, с тех пор мало что поменялось, так что статья не потеряла своей актуальности.
Обо всех ошибках и опечатках большая просьба сообщать, чтобы я мог их поправить.
Cloak — это подключаемый транспорт, который расширяет возможности традиционных прокси-инструментов, таких как OpenVPN, Shadowsocks и Tor для обхода сложной цензуры и дискриминации данных.
Руководство будет включать:
1. Предисловие
2. Описание работы Cloak
3. Настройку сервера Cloak
4. Настройку клиента Cloak на OpenWRT
5. Настройку клиента OpenVPN
В публикациях на хабре, чаще всего самое интересное в комментариях. Вот и в моем прошлом посте "Сгенерировать web интерфейс из БД или объектной модели не стало проще даже 10 лет спустя" я собрал джекпот из SharePoint, Vaadin и нескольких библиотек либо устаревших, либо поддерживаемых "одним автором".
Что я пытался объяснить читателям, что на этапе проверки идей не нужна дополнительная сложность в виде серверной инфраструктуры только ради этой самой инфраструктуры и нового языка программирования/платформы. Именно поэтому мне не нужны сейчас Yii, Symfony и Laravel, не подойдет ADF. На любое обучение тратится драгоценное время и поэтому надо понимать зачем тратить время на что-то, что потом возможно навсегда придется забыть через неделю-другую игры с прототипом.
В своих эксперементах с помощью лапшекода на JavaScript я быстро разработал вполне функциональный интерфейс. А начиналось все с Java 21, хотя в итоге обошелся без нее!
Если Вы как и я решили впервые взглянуть в сторону Python после нескольких попыток изучения С++/C# то скорее всего первым проектом станет desktop-приложение. Отходя от темы скажу что тяга к изучению этих языков была безнадежно утрачена в виду классического преподавания в духе "лишь бы сдали" и бесчисленных однотипных и монотонных лекций. Как я сказал выше хоть и на начальном уровне, но я всё же касался разработки приложений для шинды и поэтому мне хотелось посмотреть на принципы работы питона сначала отсюда(а не прыгать в django и прочие мощные фреймворки).
По сравнению с другими, ранее описанными мной архитектурами, архитектура Sony Playstation 1 (PSX) - сравнительно современная. И дело даже не в годе выпуска (1994) - скорее это общее ощущение сочетания новых возможностей и исчезновения привычных старых, которые были типичными для компьютеров и приставок предыдущей эпохи.
PSX (это сокращение пошло от первоначального названия проекта - Playstation X) имеет в качестве центрального процессора MIPS R3000, работающий на частоте 33МГц. Причём, Sony отказалось от сопроцессора для вычислений с плавающей точкой и вместо него сопроцессором в PSX является так называемый GTE (Geometry Transformation Engine), выполняющий различные операции с фиксированной точкой над векторами и матрицами.
Apache Kafka - давно уже стала стандартом для распределенного лога, буфера для потоков данных. Можно сказать, что технология прочно вошла в разряд "скучных". Множество статей на хабре, медиуме, видео на ютубе, обширное сообщество в телеграме. Подводные камни известны, специалистов много, уровень зрелости дошел до такой стадии, что начали принимать достаточно сложные KIP типа отказа от Apache Zookeeper и т. п.
Но мы же айтишники, зуд улучшательства и непрерывного повышения качества (чтобы ни скрывалось под этой фразой) у нас в крови. И вот она - Redpanda, которая обещает нам полную совместимость с протоколом kafka, и еще кучу бонусов сверху.
Привет, меня зовут Стас, последние 5 лет я работаю на позиции data platform engineer. Из них Apache Kafka была одной из составляющих моих платформ данных около 3 лет. Эта статья будет итогом более чем полугода эксплуатации в продуктиве кластера redpanda. Спойлер: вчера я поднял из гита удаленные плейбуки для кафки и вернул ее в продакшн обратно, прощай мечта...