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

Двинутый пользователь Linux

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

Как понять, что перед вами плохой разработчик

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

Мало просто сменить свою сферу работы на IT, желательно еще и стать хорошим разработчиком. Бывший тимлид и консультант Александр Усков рассказывает, как понять, что перед вами плохой разработчик и что с ним вообще можно делать

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

Читать далее
Всего голосов 301: ↑197 и ↓104+93
Комментарии402

Что делать, когда преследует бывший… работодатель?

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

Syn ack, Хабр!

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

В преддверии 2022 года я сидел и не думал о Новом Годе, тем не менее, новогоднее чудо со мной все же случилось - ко мне на работу пришел настоящий Дед Мороз (с бородой)! Только в мешке у него были не подарки, а проблемы, которые он надеялся мне доставить. Сначала, дойдя до моего руководства, он пытался очернить мою репутацию, а затем встретился и со мной - этот Дед Мороз не хотел слушать от меня стихи, он хотел, чтобы я наконец удалил статью, написанную  почти полгода назад. С тех пор её настойчиво просят удалить неизвестные мне личности.

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

Читать далее
Всего голосов 275: ↑266 и ↓9+257
Комментарии201

Баг в NTFS, или как подвесить всю систему

Время на прочтение5 мин
Количество просмотров82K
Не так давно при разработке фильтра файловых систем возникла проблема, которая приводила к подвисанию всей системы. Казалось бы, фильтр выполнял очень простые действия и сам был очень примитивным. Чтобы выяснить причину, пришлось спуститься до отладки и реверс-инжиниринга драйвера NTFS. Анализ выявил очень интересный эффект. Если скомпилировать и выполнить очень простую программу, изображенную на рисунке ниже, то доступ к соответствующему тому подвиснет.


Т.е. в данном примере, если попытаться открыть любой файл относительно файла $mft, доступ ко всему тому «С» повиснет, а так как этот том является системным, подвиснет и вся система. При этом не нужно иметь каких-либо прав. Если же том был не системным, то повиснет только доступ к этому тому, но если выполнить перезагрузку, то система повиснет на ней.
Читать дальше →
Всего голосов 127: ↑126 и ↓1+125
Комментарии305

Пишем простой драйвер под Windows для блокировки USB-устройств

Время на прочтение11 мин
Количество просмотров25K
Вряд ли пользователь домашнего ПК заинтересуется тем, чтобы блокировать устройства на своем ПК. Но если дело касается корпоративной среды, то все становится иначе. Есть пользователи, которым можно доверять абсолютно во всем, есть такие, которым можно что-то делегировать, и есть те, кому доверять совсем нельзя. Например, вы заблокировали доступ к Интернету одному из пользователей, но не заблокировали устройства этого ПК. В таком случае пользователю достаточно просто принести USB-модем, и Интернет у него будет. Т.е. простым блокированием доступа к Интернету дело не ограничивается.

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

В этой статье я расскажу немного теоретическую часть, на основе которой все строится, и расскажу принцип самого решения.
Читать дальше →
Всего голосов 23: ↑20 и ↓3+17
Комментарии88

50% клик-фрод на Яндекс.Маркете или как обнаружить клик-фрод, используя стандартные инструменты

Время на прочтение3 мин
Количество просмотров3.3K
Серьезно задумываться о проблеме клик-фрода начинаешь только тогда, когда расхождение данных собственной статистики более чем на 30% расходится с данными рекламной системы.

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

Мы решили это проверить, анализируя данные логов нашего сервера, Яндекс.Метрику и Google Analytics.
Читать дальше →
Всего голосов 14: ↑14 и ↓0+14
Комментарии7

JavaScript: элементы стиля

Время на прочтение16 мин
Количество просмотров26K
В 1920-м году вышла книга Уильяма Странка-младшего «Элементы стиля». Рекомендации из неё, касающиеся английского языка, актуальны и сегодня. Те же принципы, применённые к коду, позволяют повысить качество программ.

image

Надо заметить, что речь не идёт о жёстких правилах. То, о чём мы сегодня поговорим — лишь рекомендации. Даже если вы решите следовать им, вполне могут найтись веские причины для того, чтобы от них отклониться, например, если это поможет сделать код понятнее. Однако, поступая так, будьте бдительны и помните о том, что люди подвержены когнитивным искажениям. Например — выбирая между обычными и стрелочными функциями в JavaScript, тот, кто не очень хорошо знаком с последними, предпочтёт обычные функции, в силу привычки считая их понятнее, проще, удобнее.
Читать дальше →
Всего голосов 35: ↑32 и ↓3+29
Комментарии32

11 лет игры в Civilization II без перезапуска: продолжение истории

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


В прошлом году на Хабре публиковалась интереснейшая новость о том, что один из поклонников мира Civilization II продолжает играть в эту игру уже 10 лет. За это время в игровом мире прошли сотни лет, и геймер управлял, фактически, космическими и ядерными державами. Правда, этот мир находился в состоянии перманентной войны, в которой никто не мог победить — все стороны находились примерно в равных условиях.

На днях исполнилось уже не 10, а 11 лет игры в Civilization II, и наш геймер, Lycerius (ник с Reddit) отчитывается о прошедшем периоде времени.

Читать дальше →
Всего голосов 133: ↑127 и ↓6+121
Комментарии86

Civilization 2: десять лет без перезапуска

Время на прочтение1 мин
Количество просмотров125K
Вы когда-нибудь думали, как будет выглядеть мир Civilization 2, если играть десять лет подряд без перезапуска? Один геймер прошёл через этот кошмар и делится впечатлениями. Хорошая новость в том, что человечество ещё существует. Но итог марафона — 1700 лет войны, повсеместное загрязнение, бесконечные восстания. Ледяная шапка Земли таяла 20 раз. Около 90% населения планеты уничтожено либо в результате ядерных войн, либо от голода, вызванного глобальным потеплением, из-за чего на Земле абсолютно не осталось почвы, пригодной для фермерского хозяйства.
Читать дальше →
Всего голосов 206: ↑188 и ↓18+170
Комментарии163

TempleOS: библейская операционная система, которую пишет шизофреник

Время на прочтение6 мин
Количество просмотров78K
Дистрибутив операционки крошечный — всего 17 мегабайтов. Его можно быстро скачать и опробовать.

Целевая платформа — x86-64. Маловероятно, что кто-то будет экспериментировать с подобным в качестве реально установленной операционки, поэтому нам понадобится любая виртуальная машина, к примеру, VirtualBox или QEMU. Сам создатель пользуется коммерческой VMware Workstation. Задайте для виртуальной машины как минимум полгигабайта памяти.



Со скачанного образа можно просто загрузиться и работать в режиме LiveCD или установить систему на диск. Установка TempleOS не сложнее, чем установка любой современной операционной системы. Нужно лишь несколько раз нажать на клавишу y и дождаться копирования файлов.
Читать дальше →
Всего голосов 53: ↑47 и ↓6+41
Комментарии71

Романтика дальних инженерных выездов (а наша крыса выжила)

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

"— Да ладно тебе, чё, правда нельзя так? Удобно же, кабель многожильный, мягкий. В одножильный так не завернёшь..."

Заказчик — большая компания — объявляет тендер на ИБП и кондиционирование для инфраструктуры своих дата-центров по всей стране. Объектов чуть меньше 30 штук, причём включая города, где нет железной дороги. В основном. В августе стартует конкурс, в ноябре только-только заканчивается оформление всей документации. Соответственно, наши инженеры приезжают уже в тот момент, когда «снаружи» от -30 до -40 наружного воздуха. А по условиям контракта нужно мыть наружный блок кондиционера.

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

В такие выезды мы всегда отправляем хотя бы одного инженера с опытом подобных работ, потому что подводных камней много. Начиная от того, что за святотатство могут банально побить, и заканчивая тем, что ящик водки потом «дома» надо как-то провести по бухгалтерии. А вопросы будут. Ещё одна опасность — при распрыскивании на внешний блок кондиционера можно крайне быстро надышаться парами спирта. Как шутят бывалые — в инструментальном наборе обязательно нужно иметь отсек для огурчиков, чтобы снимать последствия ингаляций такого типа. Следующая проблема — всё надо делать быстро, потому что при -35 и ниже с учётом температуры конденсатора около 60 градусов в плюсе — запах водки стремительно распространяется по району в направлении ветра. Или всенаправленно, если ветра нет. Местные жители реально начинают очень странно себя вести и искать источник беспокойства.

Заходите, буду делиться другими историями.
Читать дальше →
Всего голосов 164: ↑162 и ↓2+160
Комментарии56

Выход KolibriN9

Время на прочтение3 мин
Количество просмотров17K
Спустя полтора года разработки, вышла новая версия сборки KolibriOS — KolibriN9!

KolibriN9 — это неофициальная сборка, выпускаемая лично Leency. В ней он развивает свое видение дизайна KolibriOS и того, каким должна быть дружелюбная для простого пользователя ОС, которое расходится с мнением основной команды разработчиков. Также отличием данной сборки от официальных ночных является поставка по умолчанию практически всех программ и игр, написанных для KolibriOS.
Читать дальше →
Всего голосов 38: ↑35 и ↓3+32
Комментарии27

Нужно ли Марсу магнитное поле?

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


Продолжаем рубрику "Прикладное терраформирование". В предыдущем выпуске мы оценили марсианские запасы углекислотного льда, и человеческие возможности по его преобразованию в атмосферу. Сегодня поговорим о том есть ли какой-либо смысл наполнять атмосферу Марса в условиях отсутствия магнитного поля.
Читать дальше →
Всего голосов 74: ↑74 и ↓0+74
Комментарии60

Техническое собеседование: пять способов отпугнуть соискателя / пять способов взбесить интервьюера

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


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

К сожалению, универсальных правил прохождения и проведения собеседования нет и быть не может, потому что сотрудников подбирают не только по их техническим навыкам и личностным качествам, но и по совпадению с некоторым (зачастую неявным и очень субъективным) «профилем», который, по мнению интервьюеров, вписывается в их команду или компанию. Что же касается руководств из серии «как правильно проходить собеседования», то они обычно вызывают не меньше боли в комментариях, потому что очень субъективны и обязательно задевают чьи-нибудь болевые точки.

За свою профессиональную карьеру мне довелось побывать по обе стороны баррикад, хотя, пожалуй, проводить технические собеседования приходилось всё же немного больше, чем проходить их. Но за это время у меня накопилось некоторое количество «пунктиков», которые отпугивают меня во время технического интервью и сразу в моём сознании ставят крест на дальнейшей беседе. Об этом мне и хотелось рассказать — с позиций интервьюера и соискателя. Хочу сразу оговориться, что статья отражает мои личные субъективные впечатления и не претендует на «руководство по прохождению собеседований». С другой стороны, это не минутный всплеск ярости от неудавшегося интервью, а давно взвешенный набор тех критериев, которые, хотя и по негативному принципу, позволяют мне отсеять варианты, либо самому не отпугнуть потенциально подходящего соискателя.

А что на собеседованиях раздражает или напрягает вас? Поделитесь в комментариях.
Читать дальше →
Всего голосов 67: ↑45 и ↓22+23
Комментарии149

«Pimp my game», или как «прокачивать» игры без API

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

Думаю, многие из вас хотя бы раз в своей жизни занимались модификацией любимой компьютерной игры. Это могло быть редактирование ресурсов (например, моделей персонажей и объектов из GTA), написание разнообразных скриптов (к примеру, планировщик задач для Dwarf Fortress, запускаемый при помощи DFHack) или разработка модов для своего сервера Minecraft, которые работали под управлением Minecraft Forge.

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

Сидя однажды вечером за одной из своих любимых игр под названием UnReal World (далее — URW), я в очередной раз столкнулся с невероятно неудобным для меня поведением. Естественное желание практически любого игрока при встрече с более-менее сильным врагом — моментально сохраниться, чтобы не потерять всё, чего он достиг на данный момент (да, некоторые сочтут это «хамством» / «читом» / etc, но о вкусах не спорят). Проблема заключается в том, что сохраниться-загрузиться по-быстрому в URW просто не получится. При сохранении персонажа автоматически выполняется выход в главное меню, а выйти не сохранившись, чтобы вернуться к предыдущей точке сохранения, можно лишь убив процесс игры через taskmgr. В итоге в большинстве случаев сложные бои на поздних этапах игры (когда уже действительно жаль терять всё то, что накопил за долгое время) заканчивались безумными комбинациями и заученными наизусть сочетаниями клавиш.

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

Как протекал процесс, и что из этого вышло, читайте под катом (осторожно, много скриншотов). Перед прочтением данной статьи также настоятельно рекомендую ознакомиться с предыдущими, т.к. в них уже объяснены некоторые из опущенных здесь моментов.
Читать дальше →
Всего голосов 29: ↑28 и ↓1+27
Комментарии2

Как прокуроры Ухрюпинска объявляют сайты экстремизмом, не давая сайтам защищаться

Время на прочтение9 мин
Количество просмотров43K
О всяких чёрных списках и Роскомнадзоре написан не один десяток хабратопиков.
А сегодня я расскажу о совсем другом способе запрещения сайтов, который уже давно делает своё чёрное дело, но очень тихо.

Предыстория


Зовут меня Эдуард Черненко, я администратор Абсурдопедии.
Некогда мы вляпались в чёрный список в первый месяц его работы, о чём был предыдущий хабратопик: «Чёрные списки: как мы судились с Роспотребнадзором (часть 2)».
Как говорится, никогда такого не было, и вот опять.

Началось всё с того, что решил я в конце 2013 года погуглить по запросу вроде «Абсурдопедия суд». Гугл выдал вот что: rospravosudie.com/court-pyatigorskij-gorodskoj-sud-stavropolskij-kraj-s/act-428488026
[...] выявлены сайты, на которых размещены предложения о незаконной продаже оружия и информация о способах изготовления оружия и взрывных устройств в кустарных условиях [...] http://absurdopedia.net/wiki/Как_правильно: изготовить_дома_бомбу [...]
Читать дальше →
Всего голосов 139: ↑133 и ↓6+127
Комментарии63

О том, как работают JavaScript таймеры

Время на прочтение4 мин
Количество просмотров101K
Чрезвычайно важно понимать, как работают JavaScript таймеры. Зачастую их поведение не совпадает с нашим интуитивным восприятием многопоточности, и это связано с тем, что в действительности они выполняются в одном потоке. Давайте рассмотрим четыре функции, с помощью которых мы можем управлять таймерами:
  • var id = setTimeout(fn, delay); — Создает простой таймер, который вызовет заданную функцию после заданной задержки. Функция возвращает уникальный ID, с помощью которого таймер может быть приостановлен.
  • var id = setInterval(fn, delay); — Похоже на setTimeout, но непрерывно вызывает функцию с заданным интервалом (пока не будет остановлена).
  • clearInterval(id);, clearTimeout(id); — Принимает таймер ID (возвращаемый одной из функций, описанных выше) и останавливает выполнение callback'a.
Главная идея, которую нужно рассмотреть, заключается в том, что точность периода задержки таймера не гарантируется. Начнем с того, что браузер исполняет все асинхронные JavaScript-события в одном потоке (такие как клик мышью или таймеры) и только в то время, когда пришла очередь этого события. Лучше всего это демонстрирует следующая диаграмма:

Продолжение
Всего голосов 69: ↑60 и ↓9+51
Комментарии20

NASA объявило о сборе проектов/идей по экспедиции на Европу, спутник Юпитера

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


Многие ученые и обыватели уверены в том, что внеземная жизнь существует, причем не где-то там, у далеких звезд, а в Солнечной системе, на других планетах и их спутниках. Среди потенциально обитаемых спутников внимание ученых привлекает Европа — шестой спутник Юпитера. Практически доказано, что под многокилометровой толщей льда (водяного, кстати) Европы есть океан, в котором могут обитать живые существа (микроорганизмы или многоклеточные).

В общем, идея организации экспедиции на Европу (пока роботизированной, без людей, что касается экспедиции с людьми — есть интересный НФ фильм) возникла уже давно. И сейчас эта идея может быть реализована на практике.

Читать дальше →
Всего голосов 40: ↑37 и ↓3+34
Комментарии61

Инструменты для ITшника: варган

Время на прочтение1 мин
Количество просмотров16K
В прошлой заметке я рассказал про флейту, волынку и бубен. Сегодня хочу ответить на вопрос «А как же варган?».

Рассказывать про те варганы, к которым мы привыкли — скучно. Скажу только, что из обычных варганов мне ближе алтайский комус:
комус

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

Под катом: двойной варган, бамбуковый, китайский полифонический варган
Всего голосов 59: ↑36 и ↓23+13
Комментарии43

SUID и безопасность

Время на прочтение8 мин
Количество просмотров22K
Предисловие. Некогда в июне 2001 года в журнале «Системный администратор» (Sys Admin Magazine, June 2001, Volume 10, Number 6) была опубликована статья Томаса Акина «Danger of SUID Shell Scripts», которая не теряет своей актуальности и сегодня. К сожалению, в конце лета 2007 года журнал перестал выходить. По неизвестным мне причинам сайт журнала также прекратил существование — точнее он сейчас переадресовывает посетителей на другой. Было бы здорово, если бы сайт просто «заморозили», сохранив архив всех накопившихся материалов, который бесспорно представил бы собой кладезь полезной практической информации для специалистов сферы ИТ. В Сети можно найти скудные копии статьи, о которой идет речь; у меня же нашелся бумажный вариант оригинала и я хочу представить вольный перевод с небольшим дополнением. Некоторые моменты статьи мне кажутся несколько глупыми (например, использование временных файлов), некоторые — непривычными (оболочки, которые использует автор), но в целом я уверен — в статье есть на что обратить внимание, взять на заметку и не забывать.

Опасность использования SUID в сценариях командной оболочки
Всего голосов 6: ↑4 и ↓2+2
Комментарии9

Интересная фича Grub2: загрузка из ISO-файла

Время на прочтение3 мин
Количество просмотров72K
Собственно, захотелось мне посмотреть на Unity. По картинкам и видео – вроде ничего. Да вот беда. В виртуальной машине его не запустишь — 3D требует. Сам я KDEшник. Основной ОС на ноутбуке является kubuntu. Ну, думаю, можно поставить второй системой. Свободное место, вроде, есть.

Ок. Качаю образ Natty, прожигаю а вот хрен. Оказалось, не работает мой CD-ROM. Ноут уже довольно старенький. Загрузки с флешек в биосе тоже нет. После кратковременной паники было найдено решение.

Оказалось, что grub2 научился понимать формат ISO 9660 и может загружать ОС прямо из ISO-образа, расположеного на жестком диске. Как выяснилось далее, не все системы готовы к такому повороту событий. Многие по тем или иным причинам приходят в замешательство при загрузке. К счастью, Ubuntu не является одной из них.
Читать дальше →
Всего голосов 129: ↑115 и ↓14+101
Комментарии44
1

Информация

В рейтинге
Не участвует
Откуда
Белград, Белград, Сербия
Дата рождения
Зарегистрирован
Активность

Специализация

System Software Engineer, Server Administrator
Junior
Git
Python
Linux
Bash
English