Pull to refresh
4
0

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

Send message

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

Reading time12 min
Views178K

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

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

Читать далее
Total votes 301: ↑197 and ↓104+93
Comments402

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

Reading time12 min
Views87K

Syn ack, Хабр!

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

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

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

Читать далее
Total votes 275: ↑266 and ↓9+257
Comments201

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

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


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

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

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

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

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

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

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

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

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

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

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

image

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

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

Reading time2 min
Views331K


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

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

Читать дальше →
Total votes 133: ↑127 and ↓6+121
Comments86

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

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

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

Reading time6 min
Views78K
Дистрибутив операционки крошечный — всего 17 мегабайтов. Его можно быстро скачать и опробовать.

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



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

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

Reading time8 min
Views102K

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

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

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

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

Заходите, буду делиться другими историями.
Читать дальше →
Total votes 164: ↑162 and ↓2+160
Comments56

Выход KolibriN9

Reading time3 min
Views17K
Спустя полтора года разработки, вышла новая версия сборки KolibriOS — KolibriN9!

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

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

Reading time7 min
Views47K


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

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

Reading time7 min
Views103K


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

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

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

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

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

Reading time10 min
Views14K
image

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

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

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

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

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

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

Reading time9 min
Views43K
О всяких чёрных списках и Роскомнадзоре написан не один десяток хабратопиков.
А сегодня я расскажу о совсем другом способе запрещения сайтов, который уже давно делает своё чёрное дело, но очень тихо.

Предыстория


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

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

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

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

Продолжение
Total votes 69: ↑60 and ↓9+51
Comments20

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

Reading time2 min
Views42K


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

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

Читать дальше →
Total votes 40: ↑37 and ↓3+34
Comments61

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

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

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

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

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

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

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

Опасность использования SUID в сценариях командной оболочки
Total votes 6: ↑4 and ↓2+2
Comments9

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

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

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

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

Information

Rating
Does not participate
Location
Белград, Белград, Сербия
Date of birth
Registered
Activity

Specialization

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