Pull to refresh
5
0.3

Программист, багхантер

Send message

Как нарисовать квадрат 3 × 3 см на веб-странице*

Reading time5 min
Views24K

* Не привлекая внимания санитаров

Меня зовут Илья, я занимаюсь фронтенд-разработкой вот уже 10 лет. Представьте, что вам нужно сделать стили для печати документов, а бегать к принтеру с линейкой, чтобы убедиться в корректности фактических размеров отдельных элементов, очень не хочется. Было бы куда проще иметь возможность приложить ту же линейку к экрану. Но размеры элементов на экране почти всегда не соответствуют их физическим размерам при печати. Казалось бы, зачем это вообще может быть кому-то нужно. Но это бывает важно. Например, в типографиях.

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

Что ж, вызов был брошен. И я поставил себе задачу (вы же тоже сами ставите себе задачи?) — нарисовать красивый красный квадратик размером 3 × 3 см. Тому, что у меня в итоге получилось, и посвящён мой необычный рассказ. 

Читать далее
Total votes 107: ↑98 and ↓9+106
Comments40

Что нового в безопасности пользователей на Android: доклад с Google I/O 2024

Reading time12 min
Views3.8K

Привет, меня зовут Аня, и я Android-разработчица в KTS. В этой статье разберем, какие обновления для обеспечения безопасности пользователей были представлены в докладе Safeguarding user security on Android на Google I/O, и как они отразятся на разработке.

Немного вводных по 2023 году:

– к публикации не допущено более 2 миллионов приложений, нарушающих правила;

– забанено примерно 330 тысяч плохих аккаунтов;

– каждый день сканировалось около 200 миллиардов приложений в поисках вредоносного ПО;

–  более 10 миллионов долларов выплачено в качестве награды за обнаружение ошибок в безопасности.

И это еще не все. Благодаря Google Play Protect обнаружено более 500 тысяч вредоносных приложений и вынесено более 3 миллионов предупреждений.

Google Play Protect может предложить просканировать приложения во время установки, если они не были проверены до этого. Это помогает Google намного быстрее отслеживать угрозы безопасности. 

Читать далее
Total votes 40: ↑40 and ↓0+41
Comments0

«Недоверчивые умы»: почему конспирология и поиск тайных смыслов — не баг, а фича человеческого мышления? Часть 1

Level of difficultyEasy
Reading time10 min
Views8.5K

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

Всё работает совсем не так, как мыслилось на старте, все путают карты друг другу и сознательно, и случайно, делают ошибочные выводы на основании неполных и неверных данных, и спустя несколько тактов всё начинает напоминать «пожар в дурке во время наводнения». «Ни один военный план не выдерживает столкновения с противником», — как писал мудрый фон Мольтке. Теория хаоса, бессердечная ты зараза. Ну а когда что-то как-то случается, потому что никогда ещё не бывало, чтобы не было вообще никак — кто-то делает загадочный вид и намекает, что это всё он, и давайте нам ещё бюджетов, а кто-то тушит диван и жалуется на то, что коварные рептилоиды опять обставили наивных теплокровных бедолаг. Однако давеча моя уверенность в том, что конспироложество — в лучшем случае бред сивого мерина в лунную ночь, а в худшем и вовсе прямая и явная угроза обществу, была поколеблена работой одного (буквально) британского учёного. Итак, «Недоверчивые умы» Роба Бразертона: аргументы в пользу того, что склонностью к конспирологии мы буквально обязаны самому тому факту, что… разумны?
Читать дальше →
Total votes 43: ↑39 and ↓4+52
Comments105

Вы сами это читали: как стать лучшим автором месяца

Level of difficultyEasy
Reading time10 min
Views5.3K

Когда-то давным-давно (почти десять лет назад) мне пришлось писать довольно много статей для разных компаний, которые впервые выходили на Хабр. Среди них были совсем небольшие стартапы, IT-компании побольше, международные корпорации, и все они хотели одного: написать статью, которую все прочитают, запомнят и к которой читатели непременно вернутся. Практически утопия. Идея найти формулу идеальной статьи сродни попыткам отыскать философский камень: вроде все компоненты есть, рецептура есть, но всегда чего-то не хватает. И кажется, что на Хабре волшебную формулу ищут многие. Кто-то пишет статью с самым высоким рейтингом, кого-то добавляют в закладки сотни пользователей, кто-то — мастер вызывать аудиторию на обсуждение и собирает буквально бесконечные ветки комментариев. А если автор опытный, то он периодически миксует суперспособности своих публикаций.

В самом начале июля мы выкатили статистику публикаций для всех авторов Хабра: теперь каждый может не только оценивать рейтинг и просмотры, но и видеть, как именно его статью читают, в какой момент уходят и сколько пользователей решают покинуть страницу почти сразу. Это классная опорная статистика, которая позволяет понять, что нравится аудитории и исходя из этого скорректировать подачу контента. Июль закончился, статистика поднакопилась, мы решили попробовать собрать компоненты успешной статьи и разобраться, как же написать «ту самую» звёздную статью. А заодно посмотреть, что и как писали лучшие авторы месяца.

Читать далее
Total votes 37: ↑32 and ↓5+54
Comments38

Челлендж по обработке миллиарда строк на Go: от 1 минуты 45 секунд до 4 секунд

Level of difficultyMedium
Reading time14 min
Views25K

Пару недель назад я прочитал о запавшем мне в душу челлендже по обработке миллиарда строк, поэтому захотел решить его на Go.

Я немного опоздал, соревнования проводились в январе. И на Java. Меня не особо интересует Java, зато давно интересует оптимизация кода на Go.

Этот челлендж был очень прост: обработать текстовый файл названий метеорологических станций и температур, и для каждой станции вывести минимальное, среднее и максимальное значение. Чтобы упростить задачу, было ещё несколько ограничений, однако я проигнорировал те, что относятся только к Java.

Читать далее
Total votes 50: ↑48 and ↓2+62
Comments20

Почему некоторым так сложно учиться программированию?

Reading time15 min
Views110K

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

Однако с этим я согласиться никак не могу. Программирование по содержанию ничуть не сложней многих других отраслей знаний, а в чем-то даже и легче, особенно когда касается прикладных задач. Наткнулся на заметку человека, который высказал весьма небанальную мысль: при обучении программированию "с нуля" этот "ноль" для всех сильно разный. И у меня есть стойкое убеждение, что сложность освоения четко зависит от значения этого нуля. А вот почему он разный и что на него влияет- мне и хотелось бы поразмышлять.

Читать далее
Total votes 251: ↑225 and ↓26+238
Comments720

Как я запустил Linux с Google Drive

Level of difficultyMedium
Reading time10 min
Views20K

Я грешен: во мне есть дух соперничества. Когда я услышал, что мой друг заставил Linux загружаться с NFS, мне обязательно нужно было его превзойти. Я обязан был доказать, что могу сделать что-то сложнее, лучше, быстрее, сильнее [прим. пер.: в оригинале отсылка к композиции Daft Punk «Harder, Better, Faster, Stronger»].

Как и все хорошие проекты, этот начался с идеи.

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

На грани безумия мой утомлённый мозг придумал мой magnum opus: запуск Linux с рута Google Drive.

▍ Но как?


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

Мне достаточно было установить программы FUSE в initramfs ядра Linux и сконфигурировать сеть. В этом ведь не должно быть ничего сложного, так?
Читать дальше →
Total votes 51: ↑50 and ↓1+69
Comments6

Тотемные утки и шаманские бубны: есть ли у разработчиков свои ритуалы и приметы?

Level of difficultyEasy
Reading time9 min
Views3.3K

Баги, баги, баги... Как же их много... Немудрено и фобию заиметь. И ведь никогда не знаешь, чем обернётся очередная ошибка в коде. Страх перед неизвестным, желание держать всё под контролем — закономерные спутники магического мышления. Но подождите, какие ещё магические ритуалы в 21 веке? Тем более у программистов...

Читать далее
Total votes 19: ↑18 and ↓1+20
Comments14

Как сотрудники могут саботировать работу компании

Reading time6 min
Views48K

Фото из архива УСС. Источник.

Мальчик играет в шпиона: представляет, как работает под прикрытием на чужой территории. Мужчина играет в шпиона: устраивается на должность технического директора в IT-компанию, чтобы снижать ее производительность, сохраняя видимость рвения и лояльности и оставаясь непойманым. Для тех, кто не саботажник: это история о том, как отсеять некомпетентных людей и получить максимальную отдачу от своей команды.
Читать дальше →
Total votes 109: ↑100 and ↓9+121
Comments83

Я тебя с вертухи сломаю, если ещё раз заговоришь об ИИ

Level of difficultyEasy
Reading time15 min
Views51K

Последние инновации в сфере ИИ, наиболее примечательными из которых стали проекты наподобие GPT-4, очевидно, могут иметь далеко идущие последствия для общества: от утопического избавления от монотонного труда до антиутопического ущерба для работы художников в капиталистическом обществе, а также до экзистенциальных угроз самому человечеству.

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

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

Читать далее
Total votes 203: ↑185 and ↓18+202
Comments215

От «эффективного менеджмента персонала» к бережливому управлению людьми. Часть 1: разбираем ошибки

Level of difficultyEasy
Reading time20 min
Views17K

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

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

Бережливо разобрать ошибки
Total votes 30: ↑27 and ↓3+25
Comments8

Улыбка сквозь баги

Level of difficultyEasy
Reading time5 min
Views2.6K

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

Читать далее
Total votes 18: ↑18 and ↓0+22
Comments1

Считываем и эмулируем карты с магнитной полосой

Reading time9 min
Views25K
Приветствую всех!

О том, что магнитные карты совсем скоро навсегда уйдут в историю, говорят уже не первый год. Тем не менее, хоть они и постепенно вытесняются другими технологиями (например, RFID, ISO7816), окончательно исчезать они пока даже не собираются.



Итак, в данной статье поговорим о том, как работает запись данных на карты с магнитной полосой, разберёмся, в каком формате хранится там информация, узнаем, как устроены считыватель и энкодер и, конечно же, ещё много чего интересного.
Читать дальше →
Total votes 54: ↑52 and ↓2+63
Comments36

Между холиваром и оверинжинирингом: что, если разработчик не доверяет тестам тестировщика

Level of difficultyHard
Reading time11 min
Views6.1K
Вы — разработчик и хотя бы раз говорили тестировщику «докажи руками»? Или вы — тестировщик и хотя бы раз слышали такое от коллег-разрабов? Либо вы — продакт или тимлид, в команде которого случались или могут случиться такие конфликты? Тогда эта статья для вас!

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



Меня зовут Илья Колесов, я — Senior SDET (Software Development Engineer in Test) в команде KasperskyOS Automotive & Embedded Quality Control «Лаборатории Касперского» и занимаюсь разработкой автоматизированных тестов на стыке embedded- и desktop-систем. В этой сфере я прошел весь путь с нуля до готовых решений. И в этой статье расскажу о взаимодействии с разработкой через автоматизацию тестирования — поделюсь своим опытом того, как удается преодолеть недоверие и сделать коммуникации более эффективными.
Читать дальше →
Total votes 25: ↑24 and ↓1+26
Comments4

Прекратите звать (не) меня на работу

Level of difficultyEasy
Reading time3 min
Views53K

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

Начну очень издалека. Видите мой ник? Его опосредованный источник — давно забытый одноимённый криминальный фильм двадцатилетней давности; когда мне нужно было придумать позывной для регистрации в местной локалке, забавное сочетание букв само выпрыгнуло из извилин на клавиатуру. И с тех пор кочует вслед за мной, не считаясь с моими желаниями, в том числе — и в одном из созданных ещё на заре gmail почтовых ящиков, используемых для всяких регистраций, подписок, и прочего спама.

Несколько лет назад на этот почтовый ящик стали приходить письма от рекрутеров, зовущих Станислава поработать iOS-разработчиком. Здесь было две проблемы: я никогда не писал для iOS, и я не Станислав.

Читать чужие письма
Total votes 131: ↑127 and ↓4+149
Comments147

Истории, достойные экранизации, или День защиты персональных данных

Reading time3 min
Views8.9K

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

Так благодаря одному тексту появилась идея — собрать самые необычные публикации, связанные с темой персональных данных, и объявить конкурс интересных «историй, достойных экранизации». Мы предлагаем продолжить в комментариях — рассказывать о из ряда вон выходящем опыте, а мы вместе с ***, ***, и *** выберем лучшие и наградим победителей призами — *** (если честно — это будет хабрамерч). 

Читать далее
Total votes 11: ↑9 and ↓2+19
Comments16

Уж послала, так послала: словосочетания-паразиты в технических текстах

Reading time7 min
Views20K

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

Вспомним наш любимый мультфильм «Падал прошлогодний снег» с его шикарными крылатыми фразами. Одна из них: «Уж послала, так послала». Вот и система так же — вместо отправки запроса посылает его куда-то далеко. А запросу обидно.

Читать далее
Total votes 56: ↑47 and ↓9+50
Comments93

«Кто на ком стоял?» Про страдательный залог в технической документации

Reading time5 min
Views17K

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

Читать далее
Total votes 79: ↑73 and ↓6+92
Comments52

Как учиться учиться и для чего интровертам телеграм-канал

Level of difficultyEasy
Reading time8 min
Views13K

«Лучший способ в чём-то разобраться до конца — это попробовать научить этому компьютер». Дональд Кнут (как минимум викицитатник говорит, что он так сказал).

Год назад я осознал, что моё развитие как инженера застопорилось. Не то, чтобы я перестал изучать что-то новое, скорее, страдал от отсутствия системности. Не было понятно, что изучать дальше, что уже получилось изучить и что из изученного я смог для себя извлечь. Поэтому я решил как-то осмыслить процесс самообучения и за год привёл его к системе, которая мне довольно сильно помогает.

Для тех, кто, как и я, испытывал похожие проблемы, я решил поделиться своим методом.

Читать далее
Total votes 22: ↑20 and ↓2+21
Comments7

Как Apple на самом деле следит за вами

Level of difficultyEasy
Reading time12 min
Views38K

По счастливой случайности я оказался резидентом Евросоюза, а значит, на меня также распространяется GDPR. Он позволяет мне запросить копию информации, которая хранится обо мне у всяких разных компаний. Я решил сделать это у Apple, и был неприятно удивлен.

Apple старается собирать как можно меньше данных.

Читать далее
Total votes 144: ↑129 and ↓15+142
Comments152
1
23 ...

Information

Rating
2,232-nd
Registered
Activity

Specialization

Backend Developer, Pentester