Как стать автором
Обновить
40
0
Анфилатов Иван @t0pep0

Погроммист

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

Вы неверно измеряете загрузку процессора

Время на прочтение6 мин
Количество просмотров63K
Та метрика, которую мы называем «загрузкой процессора» на самом деле многими людьми понимается не совсем верно. Что же такое «загрузка процессора»? Это то, насколько занят наш процессор? Нет, это не так. Да-да, я говорю о той самой классической загрузке CPU, которую показывают все утилиты анализа производительности — от диспетчера задач Windows до команды top в Linux.

Вот что может означать «процессор загружен сейчас на 90%»? Возможно, вы думаете, что это выглядит как-то так:



А на самом деле это выглядит вот так:



«Работа вхолостую» означает, что процессор способен выполнить некоторые инструкции, но не делает этого, поскольку ожидает чего-то — например, ввода-вывода данных из оперативной памяти. Процентное соотношение реальной и «холостой» работы на рисунке выше — это то, что я вижу изо дня в день в работе реальных приложений на реальных серверах. Есть существенная вероятность, что и ваша программа проводит своё время примерно так же, а вы об этом и не знаете.
Читать дальше →
Всего голосов 95: ↑88 и ↓7+81
Комментарии62

Бенчмарки в Go

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

Бенчмарки


Бенчмарки это тесты для производительности. Довольно полезно иметь их в проекте и сравнивать их результаты от коммита к коммиту. В Go есть очень хороший инструментарий для написания и запуска бенчмарков. В этой статье я покажу, как использовать пакет testing для написания бенчмарков.
Читать дальше →
Всего голосов 30: ↑27 и ↓3+24
Комментарии2

Дешёвый хронограф для пневматики своими руками

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


В своей первой публикации я хочу рассказать вам, как я собрал хронограф за пару вечеров из дешевых и доступных всем деталей. Как вы наверное уже догадались из названия, этот девайс служит для измерения скорости пули у пневматических (и не очень) винтовок и бывает полезным для контроля её технического состояния.
Читать дальше →
Всего голосов 44: ↑44 и ↓0+44
Комментарии94

Космонавты, которые намного круче чем любой герой боевика

Время на прочтение6 мин
Количество просмотров100K
От переводчика: В последнее время на первый план выходит техническая часть космических программ. В сети можно найти большое количество статей, рассказывающих о тех или иных научных достижениях, помогающих нам в освоении космоса. Но не стоит забывать и про космонавтов, отважно бросающих вызов звездам. В этой статье автор рассказывает о пяти случаях, которые заставляют как никогда проникнуться уважением к этим покорителям космоса.

Читать дальше →
Всего голосов 229: ↑227 и ↓2+225
Комментарии46

5 Самых захватывающих событий, произошедших в космосе [перевод]

Время на прочтение7 мин
Количество просмотров192K
Мне очень понравилась вот эта статья о космонавтах, которые круче героев боевиков. Поэтому, найдя блог автора, я решил перевести для вас другую статью из той же серии.


Когда лётчики-испытатели прокачиваются до следующего уровня, получаются космонавты. И они настолько суровы, что могут использовать алмазы вместо жвачки. Мы уже говорили о крутых космонавтах, но вот что, ребята: в космосе всё круто. Поэтому вот вам ещё кое-что.

image

Читать дальше →
Всего голосов 236: ↑206 и ↓30+176
Комментарии45

Я дойду

Время на прочтение3 мин
Количество просмотров69K
— Да, милая, я тебя тоже люблю.
Пальцы автоматически нажимают хоткей отправки сообщения. Я тру уставшие глаза, в которые неизвестный злой волшебник насыпал песка. Уже почти сутки без сна, надо выделить себе 4 часа. Это — мой цикл. Пять, шесть, семь часов — для меня самоубийство, я встану уставшим, недовольным, а значит, неэффективным. Следующая цифра — восемь, но это слишком много. Так что только 4 часа сна.
Прогресс-бар, дергаясь, словно в конвульсиях, дополз до правой границы, уперся в нее и исчез.
Я привычно лезу в лог отправки сообщений. Отклонений, вроде, нет. Четыре слоя шифрования, для скольких… для где-то тридцати символов. Надо будет до конца недели закончить скрипт-анализатор, а то вручную просматривать… бред.
Читать дальше →
Всего голосов 267: ↑188 и ↓79+109
Комментарии98

В ГД одобрен проект закона о блокировке сайтов с любым пиратским контентом

Время на прочтение1 мин
Количество просмотров74K
Комитет Госдумы по информационной политике рекомендовал принять в первом чтении законопроект, который распространяет действие «антипиратского» закона на все объекты авторских и смежных прав.


12 марта планируется рассмотреть поправки к закону, если все пройдет в обычном режиме, то с 1 июля 2014 года вступит в силу. Несколько следствий:

1. Блокировать можно будет любые сайты за любой пиратский контент.
2. Операторы связи, хостинг и владельцы сайтов освобождаются от ответственности за блокировку.

Здравствуй дивный новый мир.

image

UPD: Подробности о том, чем хорош-плох этот закон, можно найти здесь: habrahabr.ru/post/214037
Всего голосов 101: ↑90 и ↓11+79
Комментарии89

История одного байта

Время на прочтение15 мин
Количество просмотров54K
Предисловие.
Этот рассказ имеет свою длинную историю. Для многих это, возможно, будет махровый баян, но мне кажется он стоит того, что бы его прочитали новые люди.
Во всех источниках, где я встречал его сведения об авторе были просты и незатейливы: Dmitry Galuscenko. Если кто-то может указать сайт или e-mail — напишите в комментариях, я с удовольствием добавлю.
Итак, начнем.


Мне не хватало байта. Всего одного. Да, да. Того самого, что из восьми бит состоит. Что? Hет, я не псих, хотя одному богу известно, сколь тонкой была граница отделявшая меня от этого состояния.
Hо все по порядку
Всего голосов 140: ↑121 и ↓19+102
Комментарии120

Создание гемов — Руководство

Время на прочтение3 мин
Количество просмотров9.8K
Хотя на Хабре уже проскакивали статьи о создании гемов, они либо содержат устаревшую, либо неполную информацию.

Как же на самом деле надо создавать, развивать и публиковать свои гемы?

Современный подход заключается в использовании Bundler совместно с другими инструментами, такими, как Git, YARD и RSpec-2.
Читать дальше →
Всего голосов 32: ↑29 и ↓3+26
Комментарии12

Генератор миниатюрок из Nginx-а

Время на прочтение3 мин
Количество просмотров27K
Итак, сегодня мы соберём генератор миниатюрок на базе любимого народом веб-сервера — nginx-а. Что примечательно, сделаем мы это без единого гвоздя, т.е. без единой строчки кода, не считая конфигурации.
Что ж приступим...
Всего голосов 81: ↑76 и ↓5+71
Комментарии42

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

Время на прочтение5 мин
Количество просмотров277K
В очередной раз отмывая раковину от рыжих пятен хлорного железа, после травления платы, я подумал, что пришло время автоматизировать этот процесс. Так я начал делать устройство для изготовления плат, которое уже сейчас можно использовать для создания простейшей электроники.

image

Ниже я расскажу о том, как делал этот девайс.
Читать дальше →
Всего голосов 161: ↑161 и ↓0+161
Комментарии164

Автоматическое определение подключения\отключения второго монитора

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

Всем, доброго времени суток.


По сути, к реализации этой маленькой автоматизации меня сподвигла лень.

Собственно, с чего все началось.


У меня есть ноутбук с установленной gentoo, и i3wm оконным менеджером. Так же есть несколько мониторов(дома, на работе и т д). Разрешения на всех мониторах разные, способы подключения тоже (VGA, HDMI, DVI) разные. Активно, использую первые два.

Раньше, при подключении второго монитора, приходилось вызывать команды, которые инициализировали этот самый монитор. Запуск команды с автоматическим ключом, не всегда давал, желаемого результата(не угадывал разрешение).

xrandr --auto


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

--mode

И хотя, в xrandr для каждого монитора у меня есть несколько вариантов разрешений, есть одно (максимальное для данного монитора, которое удовлетворяет), но на каждом мониторе оно разное(так как сами мониторы разные).

Потому пришлось искать решение…

Читать дальше →
Всего голосов 49: ↑42 и ↓7+35
Комментарии23

Создание API: в рамку и на стену

Время на прочтение5 мин
Количество просмотров57K
Каждый программист — проектировщик API. Хорошие программы состоят из модулей, а протокол взаимодействия модулей — это тоже API. Хорошие модули используются повторно.

API — это большая сила и большая ответственность. У хорошего API будут благодарные пользователи; поддержка плохого превратится в кошмар.

Публичный API — не воробей, опубликуешь — не уберешь. Есть только одна попытка сделать все правильно, поэтому постарайся.

API должно быть легко использовать, но сложно использовать неправильно. Сделать что-то простое с помощью такого API должно быть просто; сложное — возможно; сделать что-то неправильно должно быть невозможно, или, по крайней мере, трудно.

API должен описывать сам себя. Изучение кода на таком API не вызывает желания читать комментарии. Вообще, комментарии редко нужны.

Перед разработкой API собери требования с долей здорового скептицизма. Осознай общие задачи и реши их.

Оформляй требования как шаблоны использования API. Сверяйся с ними в процессе проектирования.
Читать дальше →
Всего голосов 154: ↑143 и ↓11+132
Комментарии97

О правомерности работы физического лица с магазином App Store в РФ

Время на прочтение3 мин
Количество просмотров68K
Эта статья предназначена в первую очередь для программистов-одиночек, желающих попробовать свои силы на рынке платных мобильных приложений. Статья не претендует на истину первой инстанции, поэтому любые ваши замечания крайне приветствуются.

Итак, суть статьи заключается в том, чтобы понять: можно ли в РФ физическому лицу законно получать прибыль от продаж программ в App Store? Просмотр тематических форумов с подобными вопросами привел к выводу: мнения людей на этот счет расходятся. Одни считают, что можно, другие — что такая деятельность будет квалифицироваться как незаконная предпринимательская деятельность, т.к. договор от Apple — это агентский договор и в нем нет ни слова про авторские вознаграждения, и, как следствие, нужно регистрироваться в качестве индивидуального предпринимателя (ИП).
Читать дальше →
Всего голосов 114: ↑110 и ↓4+106
Комментарии51

Использование TileMill

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


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

В этом посте будут рассмотрены:
  • Подготовка данных, перепроецирование в Web Mercator
  • Повышение скорости обработки shape файлов
  • Создание проекта и импорт данных в студию
  • Создание точечного слоя землетрясений
  • Стандартные селекторы и атрибутивная таблица

Интересно? Приглашаю под кат.
Читать дальше →
Всего голосов 29: ↑27 и ↓2+25
Комментарии1

Еще один дайджест (теперь Go)

Время на прочтение4 мин
Количество просмотров19K
image Привет всем фанатам и интересующимся Go. Это 6-й выпуск дайджеста ссылок и новостей о набирающем популярность языке. Не сочтите за наглую попытку пропиарить ресурс, на котором я регулярно публикую новости все о том же Go. Все последующие выпуски «тулзовин и хреновин» будут публиковаться именно на 4gophers.com. Кроме того, по просьбам трудящихся, теперь есть подписка на рассылку.

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

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

Организация многозадачности в ядре ОС

Время на прочтение22 мин
Количество просмотров77K
Волею судеб мне довелось разбираться с организацией многозадачности, точнее псевдо-многозадачности, поскольку задачи делят время на одном ядре процессора. Я уже несколько раз встречала на хабре статьи по данной теме, и мне показалось, что данная тема сообществу интересна, поэтому я позволю себе внести свою скромную лепту в освещение данного вопроса.
Сначала я попытаюсь рассказать о типах многозадачности (кооперативной и вытесняющей). Затем перейду к принципам планирования для вытесняющей многозадачности. Рассказ рассчитан скорее на начинающего читателя, который хочет разобраться, как работает многозадачность на уровне ядра ОС. Но поскольку все будет сопровождаться примерами, которые можно скомпилировать, запустить, и с которыми при желании можно поиграться, то, возможно, статья заинтересует и тех, кто уже знаком с теорией, но никогда не пробовал планировщик “на вкус”. Кому лень читать, может сразу перейти к изучению кода, поскольку код примеров будет взят из нашего проекта.
Ну, и многопоточные котики для привлечения внимания.

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

Анализ приложения защищенного виртуальной машиной

Время на прочтение52 мин
Количество просмотров44K
В данной статье будет рассмотрено построение защиты приложения с использованием различных программных «трюков» таких как: сброс точки входа в ноль, шифрование тела файла и декриптор накрытый мусорным полиморфом, сокрытие логики исполнения алгоритма приложения в теле виртуальной машины.

К сожалению, статья будет достаточно тяжелая для обычного прикладного программиста, не интересующегося тематикой защиты ПО, но тут уж ничего не поделать.

Для более или менее адекватного восприятия статьи потребуется минимальные знания ассемблера (его будет много) а так-же навыков работы с отладчиком.

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

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

В качестве реципиента, по совету одного достаточно компетентного товарища, я выбрал немножко старый (но не потерявший актуальности, в силу качества исполнения) keygenme от небезызвестного Ms-Rem.

Вот первоначальная ссылка, где он появился: http://exelab.ru/f/index.php?action=vthread&forum=1&topic=4732
А потом он попал вот сюда: http://www.crackmes.de/users/ms_rem/keygenme_by_ms_rem/
Где данному keygenme был выставлена сложность 8 из 10 (*VERY VERY* hard).
Хотя, если честно, это слегка завышенная оценка — я бы поставил в районе 5-6 баллов.

Пожалуй, начнем.
Читать дальше →
Всего голосов 154: ↑151 и ↓3+148
Комментарии75

Умные часы своими руками за 1500 рублей. Часть 2 – плата и компоненты

Время на прочтение3 мин
Количество просмотров84K
По многочисленным просьбам, выкладываю исходники схемы часов с описанием компонентов.

Читать дальше →
Всего голосов 75: ↑72 и ↓3+69
Комментарии36
1

Информация

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