Pull to refresh
5
0
Send message

Бобры-п[р]огромисты

Level of difficultyEasy
Reading time4 min
Views13K

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

Бобер-HRобер: я увидела как грызете дерево в соседнем лесу, не хотите перебраться к нам? У нас деревья синие и потолще ваших, зеленые деревья нынче не в моде.
Бобер-погромист: хм, наверное нет, толщина текущих деревьeв меня устраивает.

Бобер-HRобер: ну вы всё-таки приходите, мы заложили пару делянок, где самые опытные бобры будут распиливать очень старую монолитную сосну с ветками длиной 98 см, на доски очень модной нынче длины 23 см, а еще у вас также будет возможность повлиять на толщину досок длиной 26 см.
Бобер-погромист: а вот это интересно, отправляйте соловья.

Через неделю, на комфортабельной полянке где-то в синем лесу.

Senior-Бобер: Итак, вы считаете себя хорошим бобром?
Бобер-погромист: Всё верно. Грызу деревья разной толщины уже лет двадцать.

Lead-Бобер: А ветки какой длины предпочитаете?
Бобер-погромист: Ветки 17см самые вкусные

Бобры идут, бобрам дорогу!
Total votes 93: ↑82 and ↓11+89
Comments27

Разбираемся со считыванием и записью магнитных домофонных ключей

Reading time19 min
Views35K
Приветствую всех!

Мы уже давно привыкли, что самыми распространёнными типами домофонных ключей являются Touch Memory (iButton) и EM-Marine. Набирают популярность Mifare и различные проприетарные решения в формате Touch Memory. Но, конечно, так было далеко не всегда.



Итак, в сегодняшней статье поговорим о той эпохе, когда возможность размагничивания ключей от подъезда была не городской легендой, а суровой реальностью. Узнаем, как работали такие домофоны, как устроены подъездные домофонные сети, как считывать и записывать такие ключи. Традиционно будет много интересного.
Читать дальше →
Total votes 66: ↑66 and ↓0+66
Comments68

Всё про USB-C: механика разъёмов

Level of difficultyMedium
Reading time11 min
Views34K

Бывает два случая, в которых электронщикам приходится задумываться о механике разъёмов USB-C. Первый связан с поломкой разъёма, а второй с потребностью его установки на собственную плату. В этой статье мы разберём оба.
Читать дальше →
Total votes 55: ↑53 and ↓2+75
Comments56

Эпические баги прошлого

Reading time9 min
Views41K

Баги в программах — это любимая тема программистского фольклора. Они сопровождают разработчиков всю жизнь. Ошибки бывают разные: совсем глупые описки, которые отлавливаются при первой же компиляции; более серьёзные, которые можно найти при прогоне на тестовых примерах; системные, которые связаны со сложными аспектами взаимодействия разных систем. Самые неприятные — это плавающие ошибки, которые появляются неожиданно и так же неожиданно исчезают. Этакие привидения программной среды.

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

Читать далее
Total votes 56: ↑54 and ↓2+75
Comments89

Умещаем простую 16-битную VM в 125 строк Си

Reading time21 min
Views23K

Это руководство предназначено для тех, кто только начинает изучение Си и хочет получить ценный опыт в области низкоуровневого программирования, а также понять внутреннее устройство виртуальных машин. К завершению статьи у нас будет рабочая регистровая виртуальная машина, способная интерпретировать и выполнять ограниченный набор инструкций ASM, плюс несколько дополнительных программ для тестирования ее работоспособности.
Читать дальше →
Total votes 56: ↑54 and ↓2+71
Comments21

Понимание утечек памяти в Java

Reading time11 min
Views39K

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

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

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

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

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

Странные вещи в Солнечной системе

Reading time7 min
Views56K

Когда Илон Маск запустил в космос кабриолет, интернет наполнился возмущёнными комментариями неравнодушной общественности: что за глупая идея и к чему это бесполезная вещь в космосе? Лучше бы запустил что-нибудь полезное для науки! Однако до автомобиля Маска в космосе оказалось немало непонятных и, в общем, бесполезных вещей: грампластинка в межзвёздном пространстве, осколочное ядро на Луне, одноцентовая монета на Марсе, игрушки у Юпитера, и вообще непонятная загогулина в поясе астероидов…
Читать дальше →
Total votes 86: ↑85 and ↓1+115
Comments70

Скандал вокруг Хитмана и будущее DRM-free

Reading time15 min
Views43K

На фоне проблем с доступностью социальной сети Facebook и взлома стриминговой платформы Twitch, новость о том, что из сервиса цифровой дистрибуции GOG была удалена Hitman — Game of the Year Edition, прошла незамеченной. А между тем это событие является одной из важнейших побед сообщества геймеров, хотя его значимость оценит далеко не каждый. Ведь, как бы громко это ни прозвучало, именно произошедшее 8 октября 2021 года определило то, как именно мы с вами будем играть в видеоигры на ПК в ближайшие годы.

Что же произошло?
Total votes 91: ↑86 and ↓5+107
Comments308

Чему нас может научить теорема о четырех красках в разработке ПО

Reading time5 min
Views31K
Теорема о четырёх красках — это математическая формулировка, связанная с картами. Все примеры карт, которые я нашёл в Интернете, были слишком сложными для введения, поэтому я набросал собственный неказистый рисунок:


Если посмотреть под другим углом, то можно воспринимать её как граф — достаточно ужать все области до кругов и соединить круги, соответствующие соседним областям карты:


Теорема о четырёх цветах утверждает, что для разметки любого рисунка, похожего на мой, (или соответствующего ему графа) достаточно четырёх цветов, чтобы никакие соседние области не имели одинаковой раскраски. Это значит, что если мы возьмём карту США или Европы, даже со всеми этими причудливыми границами, и присвоим каждому штату или стране свой цвет, то для разметки всей карты будет достаточно четырёх цветов.

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

Первое, что поразило меня, как разработчика ПО: четыре цвета — это совсем мало. Кажется поразительным, что любой граф можно раскрасить всего четырьмя цветами; мне кажется, что если я нарисую графы некоторых из кодовых баз, с которыми я работал, где рёбрами будут соединены обменивающиеся данными объекты, то им запросто может потребоваться дюжина цветов.
Читать дальше →
Total votes 43: ↑43 and ↓0+43
Comments13

Бойтесь регистраторов, они могут разрушить бизнес. Или хотя бы попытаться

Reading time4 min
Views46K
image

Жила-была одна подмосковная швейная фабрика. Ну она и сейчас жива, но так принято начинать рассказы. И было у неё несколько юридических лиц, ООО и ИП разные. Бухгалтерские тонкости, в которые вдаваться – себе дороже. И вся эта большая дружная семья работала вместе, принимала заказы, шила, собирала, развозила и в ус не дула. Это присказка, а сказка впереди.

Как-то раз погожим майским днём пришло на почту админу письмо, которое показалось настолько шуткой, что админ даже посмотрел на адрес отправителя в надежде, что это спам…
Читать дальше →
Total votes 117: ↑103 and ↓14+127
Comments241

Откровения трезвого инженера

Reading time3 min
Views69K
image

Ответ на: Откровения пьяного старшего инженера

… Я выскажу свое мнение и значительно короче, наверное.

  1. Работа в нашей отрасли полностью построена на порочных стимулах.
  2. Лучший способ продвинуться по карьерной лестнице — это смена компании. Компании, в которых вы работаете, будут вознаграждать хорошую работу большей работой и ответственностью, а не большим количеством времени и/или денег. Компании, в которые вы переходите, вознаградят вашу предыдущую хорошую работу в других компаниях большими деньгами. На самом деле это не имеет смысла… См. Пункт №1.
  3. Каждый раз, когда я меняю работу, я сокращаю свои обязанности на 50% и увеличиваю зарплату на 50%. На моей первой работе я был очень раздражен, когда новые сотрудники, которые были на моем уровне квалификации, зарабатывали больше, чем я. Теперь другие старожилы в моей компании с таким же уровнем квалификации раздражаются, когда я зарабатываю намного больше, чем они (обратите внимание, что количество смен работы >= 3). На самом деле это не имеет смысла… См. Пункт №1.
Читать дальше →
Total votes 116: ↑101 and ↓15+124
Comments148

Повышаем качество кода с Dart Code Metrics

Reading time8 min
Views7.1K

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

Читать далее
Total votes 20: ↑20 and ↓0+20
Comments2

Самый беззащитный — уже не Сапсан. Всё оказалось куда хуже…

Reading time8 min
Views541K
{UPD 10.02.2021} Евгений Чаркин дал интервью на эту тему gudok.ru/newspaper/?ID=1552569
Под катом мои комментарии на некоторые тезисы.
{/UPD}

Больше года назад хабравчанин keklick1337 опубликовал свой единственный пост «Самый беззащитный — это Сапсан» в котором рассказывает как он без серьёзных ухищрений получил доступ ко внутренней сети РЖД через WiFi Сапсана.

В ОАО «РЖД» прокомментировали результаты этого расследования. «Есть результаты проверки. Почему удалось взломать? Наверное, потому, что злоумышленник. Наверное, из-за этого… Ну, он из „фана“. Юный натуралист. Там уязвимостей, которые бы влияли на утечку каких-то критических данных, нет. Мультимедийный портал „Сапсанов“ функционирует как положено и не нуждается в доработке», — заявил Евгений Чаркин.

То есть вместо того, чтобы выразить благодарность за обнаруженную уязвимость, автора обозвали «злоумышленником» и «Юным натуралистом».

К сожалению, но специалисты РЖД, начиная с директора по информационным технологиям, отнеслись к статье очень пренебрежительно, проигнорировав важное указание автора:
Также оттуда в сеть РЖД есть впн. Если захотите — найдёте её там сами.

И вот, год спустя я попал в сеть РЖД даже не садясь в Сапсан.



Видимо, только этот котэ добросовестно охраняет вокзал.

Как именно я попал в сеть РЖД с пруфами, чего не сделал директор по информационным технологиям ОАО «РЖД» Чаркин Евгений Игоревич и возможные последствия — под катом.
Читать дальше →
Total votes 1135: ↑1132 and ↓3+1447
Comments990

Ящики, усы и скрипки

Reading time4 min
Views6.9K


Очень часто данные необходимо сравнивать. Например, у нас есть несколько рядов данных из какой-то области деятельности человека (промышленности, медицины, государственного управления, …), и мы хотим сравнить, насколько они похожи или, наоборот, чем одни показатели выделяются по сравнению с другими. Для простоты восприятия возьмем данные более простые, универсальные и нейтральные — высоту в холке и вес нескольких пород собак по сведениям Американского клуба собаководства (American Kennel Club). Данные по размерам пород в среднем можно найти здесь. Прибавим к ним функцию random.uniform из Python-библиотеки numpy, переведем дюймы в сантиметры, а фунты в килограммы, и вот мы получаем реалистично выглядящий набор данных по размерам собак нескольких пород, с которым можно работать. В нашем примере это чихуахуа, бигли, ротвейлеры и английские сеттеры.
Читать дальше →
Total votes 6: ↑6 and ↓0+6
Comments0

От поиска к исследованию документов в сетевых шарах и файловых помойках

Reading time3 min
Views6.6K


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

Читать дальше →
Total votes 10: ↑9 and ↓1+8
Comments2

Пишем действительно тестируемый код

Reading time18 min
Views18K
Что такое тестируемый код? Каких правил стоит придерживаться для его написания? Как начать писать такой код, если кодовая база к этому не готова?

Статья с большим количеством примеров кода и иллюстраций, в основе которой – выступление Антона на конференции Mobius 2017 в Питере. Антон является разработчиком Android-приложений в Juno, и в своей работе затрагивает множество смежных технологий. Этот доклад не об Android и не о Kotlin, он о тестировании в целом, об идеях, которые лежат над платформой и над языком и которые могут быть адаптированы к любому контексту.


Total votes 22: ↑21 and ↓1+20
Comments4

Information

Rating
3,648-th
Registered
Activity