Как стать автором
Обновить
53
0

Разработчик под Android, перешедший на Rust

Отправить сообщение

Страх и ненависть в IT

Время на прочтение7 мин
Количество просмотров127K
Всем привет. Я — обычный программист, носящий лычку сеньора в одной обычной продуктовой компании. Я занимаюсь коммерческой разработкой около 10 лет, начинал с разработки прошивок для небольших железок, а сейчас изготавливаю бекенды различной степени сложности преимущественно на модных нынче Java/Kotlin. Эту профессию я выбрал по призванию — будучи ещё школьником все время что-то паял, программировал на бумажке (компьютера не было) и всё такое. Дальше шли профильное образование, работа в различных компаниях — именитых и обычных, зарубежных и отечественных. Поэтому я могу сказать, что являюсь идейным программистом. И никогда не понимал людей, которые ждут пятницу — всегда с удовольствием ходил на работу, какой бы ад там не творился. Так было по-крайней мере до недавнего времени. С какого-то момента я “сломался” и с трудом мог заставить пойти себя на некогда любимую работу. Меня и раньше что-то смущало, но теперь, когда мысли до конца оформились в голове — я могу сказать, что же не так с моим некогда уютным IT-мирком.
Читать дальше →

Пишем простой модуль Magisk для Android

Время на прочтение2 мин
Количество просмотров18K

Введение


Одним вечером я устал менять TTL после перезагрузки устройства и подумал как можно было бы делать это автоматически. Android же Linux и на нем должен быть аналог systemd или он сам. В процессе исследований мой взор пал на Magisk.


На удивление разработать модуль для него было очень просто.

Читать дальше →

Поиски «идеального» GUI. Путь новичка

Время на прочтение3 мин
Количество просмотров13K
Изучая первый язык я хотел видеть кнопочки, а не только текст в консоли. Я сделал на Python3+tkinter калькулятор. Это заняло 585 строк. Применив к коду магию py2app, я получил bundle размером 45MB. Мне не понравилась работать с py2app. Иногда все переставало работать, если использовались сторонние библиотеки, а иногда я исправлял код py2app. Из-за этого я думал, что standalone-приложения делать очень сложно.

Читать дальше →

Как создать 2D игру с Python и аркадной библиотекой

Время на прочтение8 мин
Количество просмотров18K

Привет, Хабр! представляю вашему вниманию перевод статьи How to create a 2D game with Python and the Arcade library автора Paul Vincent Craven


Как создать 2D игру с Python и аркадной библиотекой


Узнайте, как начать работу с Arcade, простой в использовании библиотеки Python для создания 2D-видеоигр.


image


Phython это отличный язык для людей, обучающихся программированию, и идеально подходит для тех, кто хочет "сделать что-то" а не тратить кучу времени на шаблонный код. Arcade это библиотека Python для создания 2D-видеоигр, которая проста в использовании и очень эффективна, когда вы набираетесь опыта. В этой статье я объясню, как начать использовать Python и Arcade для программирования видеоигр.

Читать дальше →

Как сделать ваш HTML отзывчивым, добавив одну строку кода на CSS

Время на прочтение4 мин
Количество просмотров65K
Привет, Хабр! представляю вашему вниманию перевод статьи «How to make your HTML responsive by adding a single line of CSS» автора Per Harald Borgen.



В этой статье я научу вас, как использовать CSS Grid для создания крутой сетки изображений, которая изменяет количество столбцов в зависимости от ширины экрана или окна браузера.

Самое крутое, что для добавления отзывчивости потребуется написать одну строчку кода на CSS
Читать дальше →

Взламываем механизм приватности Mimblewimble

Время на прочтение7 мин
Количество просмотров4.8K
Приватность криптовалюты Mimblewimble/Grin фундаментально уязвима. Потратив всего $60 в неделю на AWS, я однозначно связал отправителей и получателей для 96% транзакций Grin в режиме реального времени.

Уязвимость находится в основе протокола Mimblewimble, и я не думаю, что ее можно исправить. Поэтому в плане защиты приватности Mimblewimble больше нельзя считать жизнеспособной альтернативой Zcash или Monero.
Читать дальше →

Я больше не хочу работать, никогда и ни над чем. Но из меня научились выжимать результаты

Время на прочтение7 мин
Количество просмотров274K


Дерьмовое утро удалёнщика всегда начинается одинаково. Если детский плач не смог вытащить меня из кровати, то нытье жены сделает это с гарантией. Сумасшедшие девять утра, через час дейли-синк-ап, а за вчера, как всегда, сделано нихрена. Быстро варю кофе и за комп. За пять минут до созвона пулл реквест с кодом энтерпрайзного качества увесисто встал в очередь на билд. Иду курить, но по дороге телефон заорал — я зачем-то установил на него скайп, и теперь работа может добраться до меня где угодно. Курение откладывается, я готовлюсь возмущаться, что мне позвонили раньше положенного. Напялил наушники, принял вызов. Вместо привычной девушки менеджера созвон начал какой-то незнакомый мне чел. «Всем привет, Аня заболела, я буду её замещать». Окей, кому какое дело, с таким же успехом они могли бы прислать нам в качестве менеджера собаку — ничего бы не изменилось.
Читать дальше →

Практический опыт обновления MySQL 5.7 до версии 8.0

Время на прочтение3 мин
Количество просмотров37K
image

Недавно мы обновили свои сервера с MySQL 5.7 на 8.0.

Оставим за рамками этой статьи зачем и какие новые плюшки появились в MySQL 8.0, а вместо этого расскажем о том, с какими сложностями мы столкнулись в процессе обновления.
Читать дальше →

Архитектурная шизофрения Facebook Libra

Время на прочтение10 мин
Количество просмотров13K
Спустя два года я вернулся к блогу ради поста, который отличается от обычных занудных лекций о Haskell и математике. Последние несколько лет я занимался финансовыми технологиями в ЕС, и, кажется, пришло время написать на тему, которой технические СМИ уделили мало внимания.

Недавно Facebook выпустил то, что именует «новой платформой финансовых сервисов» под названием Libra. Она позиционируется как цифровая расчётная система, основанная на корзине международных валют, которые управляются на «блокчейне» и хранятся в денежном пуле, управляемом из Швейцарии. Цели проекта амбициозны и влекут масштабные геополитические последствия.

В Financial Times и New York Times много разумных статей о необоснованных денежных и экономических предположениях в основе предлагаемой финансовой системы. Но не хватает специалистов, способных на анализ с технической точки зрения. Не так много людей работают над финансовой инфраструктурой и публично говорят о своей работе, поэтому данный проект не слишком освещён в технических СМИ, хотя его внутренности открыты для всего мира. Я имею в виду открытые исходники в репозиториях Libra и Calibra Organisation.

То, что открыто миру — это архитектурно шизофренический артефакт с претензией на роль безопасной платформы для мировой платёжной инфраструктуры.
Читать дальше →

Хватит использовать смехотворно малый TTL для DNS

Время на прочтение6 мин
Количество просмотров32K
Низкая задержка DNS — ключевой фактор для быстрой работы в интернете. Чтобы её минимизировать, важно тщательно подобрать DNS-серверы и анонимные рилеи. Но первым делом следует избавиться от бесполезных запросов.

Именно поэтому DNS изначально создавался как сильно кэшируемый протокол. Администраторы зон устанавливают время жизни (TTL) для отдельных записей, а резолверы используют эту информацию при хранении записей в памяти, чтобы избежать ненужного трафика.

Эффективно ли кэширование? Пару лет назад моё небольшое исследование показало, что оно не идеально. Взглянем на нынешнее положение дел.
Читать дальше →

Как мы делали тариф для Windows VPS за 99 рублей

Время на прочтение3 мин
Количество просмотров16K
Если вы являетесь клиентом VDS-хостинга, задумывались ли вы о том, что идет в комплекте со стандартным образом операционной системы?

Мы решили поделиться, как мы готовим стандартные клиентские виртуальные машины и покажем на примере нашего нового тарифа Ultralight за 99 рублей, как мы создавали стандартный образ Windows Server 2019 Core, а также расскажем, что в нем изменилось.


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

Асинхронное общение — вот настоящая причина, почему удалённая работа более эффективна

Время на прочтение12 мин
Количество просмотров71K

Теперь асинхронную связь внедряют не только на удалёнке



Иллюстрация: Yin Weihung

Исследование за исследованием вновь доказывают, что удалённые работники более продуктивны, чем их коллеги в офисе.

Только не совсем понятно, почему.

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

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

Субъективный user.js для Mozilla Firefox и не только

Время на прочтение2 мин
Количество просмотров16K
Вот уже почти 15 год я пользуюсь Mozilla Firefox на ежедневной основе, и, конечно, у меня есть свой небольшой субъективный user.js, который с каждым релизом новой версии приходится обновлять. Спешу им (и не только) поделиться.

Если кому-то интересно, то добро пожаловать под кат.
Читать дальше →

Критика протокола и оргподходов Telegram. Часть 1, техническая: опыт написания клиента с нуля — TL, MT

Время на прочтение60 мин
Количество просмотров74K

В последнее время на Хабре стали чаще появляться посты о том, как хорош Telegram, как гениальны и опытны братья Дуровы в построении сетевых систем, и т.п. В то же время, очень мало кто действительно погружался в техническое устройство — как максимум, используют достаточно простой (и весьма отличающийся от MTProto) Bot API на базе JSON, а обычно просто принимают на веру все те дифирамбы и пиар, что крутятся вокруг мессенджера. Почти полтора года назад мой коллега по НПО "Эшелон" Василий (к сожалению, его учетку на Хабре стёрли вместе с черновиком) начал писать свой собственный клиент Telegram с нуля на Perl, позже присоединился и автор этих строк. Почему на Perl, немедленно спросят некоторые? Потому что на других языках такие проекты уже есть На самом деле, суть не в этом, мог быть любой другой язык, где еще нет готовой библиотеки, и соответственно автор должен пройти весь путь с нуля. Тем более, криптография дело такое — доверяй, но проверяй. С продуктом, нацеленным на безопасность, вы не можете просто взять и положиться на готовую библиотеку от производителя, слепо ему поверив (впрочем, это тема более для второй части). На данный момент библиотека вполне работает на "среднем" уровне (позволяет делать любые API-запросы).


Тем не менее, в данной серии постов будет не так много криптографии и математики. Зато будет много других технических подробностей и архитектурных костылей (пригодится и тем, кто не будет писать с нуля, а будет пользоваться библиотекой на любом языке). Итак, главной целью было — попытаться реализовать клиент с нуля по официальной документации. То есть, предположим, что исходный код официальных клиентов закрыт (опять же во второй части подробнее раскроем тему того, что это и правда бывает так), но, как в старые времена, например, есть стандарт по типу RFC — возможно ли написать клиент по одной лишь спецификации, "не подглядывая" в исходники, хоть официальных (Telegram Desktop, мобильных), хоть неофициальных Telethon?

Ответ на этот вопрос неоднозначен

Мы ускорили планировщик Tokio в десять раз

Время на прочтение23 мин
Количество просмотров18K
Мы в поте лица готовим очередную мажорную версию Tokio, асинхронной среды выполнения для Rust. 13 октября для слияния в ветку оформлен пул-реквест с полностью переписанным планировщиком задач. Результатом станет огромное улучшение производительности и уменьшение задержки. В некоторых тестах зафиксировано десятикратное ускорение! Как обычно, синтетические тесты не отражают фактическую выгоду в реальности. Поэтому мы также проверили, как изменения в планировщике повлияли на настоящие задачи, такие как Hyper и Tonic (спойлер: результат замечательный).

Готовясь к работе над новым планировщиком, я потратил время на поиск тематических ресурсов. Кроме фактических реализаций, особо ничего не нашлось. Я также обнаружил, что в исходниках существующих реализаций трудно ориентироваться. Чтобы исправить это, мы постарались написать шедулер Tokio как можно более чисто. Надеюсь, эта подробная статья о реализации планировщика поможет тем, кто находится в том же положении и безуспешно ищет информацию на эту тему.

Статья начинается с высокоуровневого обзора дизайна, в том числе политик захвата работы. Затем погрузимся в детали конкретных оптимизаций в новом планировщике Tokio.
Читать дальше →

Автоматизация Android. Супер простое руководство по созданию первого Espresso-теста

Время на прочтение5 мин
Количество просмотров33K
Здравствуйте, друзья. В преддверии старта курса «Mobile QA Engineer», хотим поделиться с вами переводом интересного материала.




Что такое Espresso?


Нет, это не напиток, который вы пьете каждый день, чтобы взбодриться. Espresso — это тестовый фреймворк с открытым исходным кодом, разработанный Google. Он позволяет выполнять сложные тесты пользовательского интерфейса на реальном устройстве или эмуляторе. Потребуется ли время, чтобы начать писать сложные тесты для Android?

Возможно. Но ничего не мешает вам сделать первый шаг и научиться писать простые тест-кейсы для Android с помощью фреймворка Espresso прямо сейчас.
Читать дальше →

Почему вам стоит разгонять оперативную память (это легко!)

Время на прочтение5 мин
Количество просмотров195K


Любая программа на ПК использует для работы оперативную память, RAM. Ваша RAM работает на определённой скорости, заданной производителем, но несколько минут копания в BIOS могут вывести её за пределы стандартных спецификаций.

Да, скорость работы памяти имеет значение


Каждая запускаемая вами программа загружается в память с вашего SSD или жёсткого диска, скорость работы которых гораздо ниже, чем у памяти. После загрузки программа обычно остаётся в памяти некоторое время, и CPU получает к ней доступ по необходимости.

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

Опасные 3rd-party драйверы в вашей системе или LOLDrivers

Время на прочтение9 мин
Количество просмотров14K


А вы знали, что вполне легитимный драйвер может дать злоумышленнику возможность прописаться в вашей системе надолго, оставаясь внутри даже после ее переустановки? Или превратить ваш компьютер в кирпич? Например, некоторые безобидные на вид доверенные (подписанные) драйверы являются попутно инструментами для перезаписи BIOS. После такой атаки спасет лишь программатор.


В ОC Windows существуют доверенные приложения/скрипты/библиотеки с дополнительной интересной опасной функциональностью вроде исполнения произвольного кода, загрузки файлов, обхода UAC и т.п. Если подобная дополнительная функциональность встречается у компонента ядра, становится еще интереснее.

Тирания позитивного мышления угрожает вашему здоровью и счастью

Время на прочтение7 мин
Количество просмотров82K
Каждый слышал такое: «просто будь на светлой стороне!» или «счастье — это выбор, просто будь счастливым!». Бесконечные книги «помоги себе сам» или «как быть счастливым» заполняют полки книжных магазинов. Книга «Ни Сы» Джен Синсеро (приведено название русского издания, в оригинале «You Are a Badass», прим. перев.) была в списке бестселлеров Нью-Йорк Таймс в течение 32 недель, а «Сила позитивного мышления» Нормана Винсента Пила («The Power of Positive Thinking», Reverend Norman Vincent Peale), опубликованная в 1952 году и переведённая на 15 языков, до сих пор популярна. Идея того, что вы можете быть счастливым, если вы просто захотите этого, глубоко интегрирована в американскую армию, школу, и на рабочие места, и призвана улучшить производительность труда, душевное здоровье и способность справляться с жизненными трудностями.


Читать дальше →

Назло Роскомнадзору: список зеркал для t.me без рекламы

Время на прочтение2 мин
Количество просмотров40K

Модератор Хабра:


Внимание! Использование некоторых из упомянутых в данной статье (и комментариях) сервисов для обхода блокировки может быть небезопасным: авторы могут добавлять в них рекламу и ссылки на вредоносное ПО. Будьте бдительны!

Одна из проблем, вызванных попытками Роскомнадзора заблокировать доступ к «Телеграму» на территории России стали перебои с работой внешних ссылок на каналы и профили вида t.me/habr_com. При попытке перейти по ссылке без включённого VPN или прокси появляется страница «Не удалось получить доступ к сайту». Впрочем, кому война, а кому мать родна — как это и бывает, попытки Росокомнадзора создать трудности для одних, открыли возможности для других. Справиться с проблемой поможет простая смена адреса, поэтому на свет появилось уже несколько сервисов, предоставляющих функционал t.me ему на замену. Некоторые из них увешаны баннерами или предложениями их купить, но для этого обзора я отобрал сервисы без рекламы.

Читать дальше →

Информация

В рейтинге
10 010-й
Откуда
Bratislava, Bratislava, Словакия
Дата рождения
Зарегистрирован
Активность