Pull to refresh
7
Karma
0
Rating
Иван Доев @janekprostojanek

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

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

Хекслет corporate blog Website development *Programming *IT Standards *Development Management *

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

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

Читать далее
Total votes 301: ↑197 and ↓104 +93
Views 161K
Comments 403

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

Information Security *IT career IT-companies

Syn ack, Хабр!

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

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

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

Читать далее
Total votes 275: ↑266 and ↓9 +257
Views 81K
Comments 201

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

Аладдин Р.Д. corporate blog Information Security *System Programming *Reverse engineering *
Не так давно при разработке фильтра файловых систем возникла проблема, которая приводила к подвисанию всей системы. Казалось бы, фильтр выполнял очень простые действия и сам был очень примитивным. Чтобы выяснить причину, пришлось спуститься до отладки и реверс-инжиниринга драйвера NTFS. Анализ выявил очень интересный эффект. Если скомпилировать и выполнить очень простую программу, изображенную на рисунке ниже, то доступ к соответствующему тому подвиснет.


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

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

Аладдин Р.Д. corporate blog Information Security *Open source *System Programming *
Вряд ли пользователь домашнего ПК заинтересуется тем, чтобы блокировать устройства на своем ПК. Но если дело касается корпоративной среды, то все становится иначе. Есть пользователи, которым можно доверять абсолютно во всем, есть такие, которым можно что-то делегировать, и есть те, кому доверять совсем нельзя. Например, вы заблокировали доступ к Интернету одному из пользователей, но не заблокировали устройства этого ПК. В таком случае пользователю достаточно просто принести USB-модем, и Интернет у него будет. Т.е. простым блокированием доступа к Интернету дело не ограничивается.

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

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

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

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

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

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

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

RUVDS.com corporate blog Website development *JavaScript *
Translation
В 1920-м году вышла книга Уильяма Странка-младшего «Элементы стиля». Рекомендации из неё, касающиеся английского языка, актуальны и сегодня. Те же принципы, применённые к коду, позволяют повысить качество программ.

image

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

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

Software


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

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

Читать дальше →
Total votes 133: ↑127 and ↓6 +121
Views 175K
Comments 85

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

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

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

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

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



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

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

КРОК corporate blog

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

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

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

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

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

Выход KolibriN9

KolibriOS Project Team corporate blog Open source *
Спустя полтора года разработки, вышла новая версия сборки KolibriOS — KolibriN9!

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

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

Popular science Astronautics


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

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

ООО «ЦИТ» corporate blog Website development *Programming *


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

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

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

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

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

Assembler *Debugging *Reverse engineering *
image

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

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

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

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

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

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

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

Предыстория


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

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

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

JavaScript *
Translation
Чрезвычайно важно понимать, как работают 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
Views 98K
Comments 20

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

Astronautics


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

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

Читать дальше →
Total votes 40: ↑37 and ↓3 +34
Views 22K
Comments 61

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

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

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

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

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

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

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

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

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

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

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

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

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity