Pull to refresh
40
0
Анфилатов Иван @t0pep0

Погроммист

Send message

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

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

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



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



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

Бенчмарки в Go

Reading time4 min
Views62K

Бенчмарки


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

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

Reading time9 min
Views98K


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

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

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

Читать дальше →
Total votes 229: ↑227 and ↓2+225
Comments46

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

Reading time7 min
Views192K
Мне очень понравилась вот эта статья о космонавтах, которые круче героев боевиков. Поэтому, найдя блог автора, я решил перевести для вас другую статью из той же серии.


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

image

Читать дальше →
Total votes 236: ↑206 and ↓30+176
Comments45

Я дойду

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

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

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


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

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

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

image

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

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

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


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

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

Reading time3 min
Views9.8K
Хотя на Хабре уже проскакивали статьи о создании гемов, они либо содержат устаревшую, либо неполную информацию.

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

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

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

Reading time3 min
Views27K
Итак, сегодня мы соберём генератор миниатюрок на базе любимого народом веб-сервера — nginx-а. Что примечательно, сделаем мы это без единого гвоздя, т.е. без единой строчки кода, не считая конфигурации.
Что ж приступим...
Total votes 81: ↑76 and ↓5+71
Comments42

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

Reading time5 min
Views277K
В очередной раз отмывая раковину от рыжих пятен хлорного железа, после травления платы, я подумал, что пришло время автоматизировать этот процесс. Так я начал делать устройство для изготовления плат, которое уже сейчас можно использовать для создания простейшей электроники.

image

Ниже я расскажу о том, как делал этот девайс.
Читать дальше →
Total votes 161: ↑161 and ↓0+161
Comments164

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

Reading time2 min
Views33K

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


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

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


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

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

xrandr --auto


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

--mode

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

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

Читать дальше →
Total votes 49: ↑42 and ↓7+35
Comments23

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

Reading time5 min
Views57K
Каждый программист — проектировщик API. Хорошие программы состоят из модулей, а протокол взаимодействия модулей — это тоже API. Хорошие модули используются повторно.

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

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

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

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

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

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

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

Reading time3 min
Views68K
Эта статья предназначена в первую очередь для программистов-одиночек, желающих попробовать свои силы на рынке платных мобильных приложений. Статья не претендует на истину первой инстанции, поэтому любые ваши замечания крайне приветствуются.

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

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

Reading time3 min
Views4K


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

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

Интересно? Приглашаю под кат.
Читать дальше →
Total votes 29: ↑27 and ↓2+25
Comments1

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

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

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

Читать дальше →
Total votes 54: ↑50 and ↓4+46
Comments6

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

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

Читать дальше →
Total votes 92: ↑92 and ↓0+92
Comments19

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

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

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

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

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

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

В качестве реципиента, по совету одного достаточно компетентного товарища, я выбрал немножко старый (но не потерявший актуальности, в силу качества исполнения) 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 баллов.

Пожалуй, начнем.
Читать дальше →
Total votes 154: ↑151 and ↓3+148
Comments75
1

Information

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