Как стать автором
Обновить
22
0

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

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

Завершён перевод книги «Pro Git»

Время на прочтение1 мин
Количество просмотров196K
Что может быть лучшим подарком на день знаний для программиста? Конечно, полезная книга ;) Поэтому команда переводчиков «Pro Git» поднапряглась и доделала перевод книги на русский язык.

«Pro Git» — это довольно обширная обучающая книга о Git от Скотта Шакона — активного участника разработки проектов Git и GitHub. Автор рассматривает в тексте всевозможные аспекты работы с Git'ом, начиная с установки программы и базовых принципов работы децентрализованных систем контроля версий, и заканчивая рассмотрением внутреннего устройства Git'а и созданием валидных объектов в базе Git'а собственными руками. Несмотря на довольно обширный материал и затрагивание довольно специфических тем, книга написана довольно простым языком, содержит массу примеров и иллюстраций, и поэтому должна быть понятна и новичкам, только начинающим знакомиться с системами контроля версий.

Последняя версия перевода книги доступна в форматах pdf, epub, mobi.
Также доступна онлайн-версия перевода, но она, к сожалению, не обновлялась с мая.
Читать дальше →
Всего голосов 141: ↑135 и ↓6+129
Комментарии55

Перехват видео в браузере или TCP сниффер под Windows на коленке (часть первая)

Время на прочтение19 мин
Количество просмотров39K
Однажды, не очень давно, мне порекомендовали фоновую качалку потокового видео под названием Jaksta, которая позволяет записывать потоковое видео на диск прямо во время просмотра YouTube, Facebook видео, GoogleVideo и так далее. В результате ее установки я получил стойкий BSOD при каждой загрузке Windows. Переключившись в Safe Mode я снес нафиг это творение, но возникли вопросы.
Краткое изучение софтины показало что она устанавливет NDIS Miniport драйвер, который конкретно в моей системе стал умирать при загрузке. «Нафига такие сложности?», подумал я и решил поэкспериментировать с реализацией перехвата потокового видео из браузера без всяких драйверов.
Читать дальше →
Всего голосов 91: ↑85 и ↓6+79
Комментарии38

Создаем стиль интерфейса Qt на примере таблицы

Время на прочтение11 мин
Количество просмотров61K
Как известно, Qt предлагает разработчикам практически неограниченные возможности для создания интерфейсов. В большинстве случаев, если вы используйте стандартные виджеты, внешний вид вашего приложения (и элементов его интерфейса) будет соответствовать внешнему виду вашей операционной системы. Для этого в Qt есть система так называемых стилей — классов, ответственных за отрисовку стандартных элементов интерфейса. В этой статье мы попробуем создать свой стиль и применить его к простейшему приложению для того, чтобы получить красивую таблицу на основе виджета QTableWidget.
Читать дальше →
Всего голосов 31: ↑28 и ↓3+25
Комментарии16

8 успешных лет freelance'а, tips and tricks

Время на прочтение9 мин
Количество просмотров34K
Доброго всем дня, вечера, здравствуйте, коллеги.

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

Я бы хотел рассказать об особенностях freelance-занятости для людей, которые никогда этим не занимались, но хотели бы иметь набор полезных советов, когда захотят попробовать. Приступать к какому-либо делу подготовленным — всегда хорошая идея.
Читать дальше →
Всего голосов 206: ↑193 и ↓13+180
Комментарии157

RuTracker взломан

Время на прочтение2 мин
Количество просмотров42K
В ночь на 14 августа торрент-портал RuTracker.org перестал открываться у большей части пользователей.
Судя по всему, ресурс был взломан хакерами. При заходе на сайт была установлена автоматическая переадресация на внешнюю страницу под заголовком Ita est! («это так» — лат.)

В учетных данных о домене rutracker.org на сервисе Whois появились строчки, набранные латиницей: «всего одному не стяжать человеку», «сокрушилась могучесть твоя», «завещанию внимай и исполни — никакой порнографии, никакой развязной, пошлой, оглупляющей рекламы».

Rutracker.org является наиболее популярным из российских торрент-трекеров. Первоначально ресурс существовал под названием Torrents.ru. В феврале 2010 года делегирование домена Torrents.ru было прекращено из-за уголовного дела по факту незаконного использования объектов авторского права.
Читать дальше →
Всего голосов 141: ↑121 и ↓20+101
Комментарии126

Вещи, которые я не знал о WebKit inspector

Время на прочтение2 мин
Количество просмотров5.7K
Прочитав статью jtaby.com/2012/04/23/modern-web-development-part-1.html я узнал несколько полезных вещей, напишу-ка я их здесь дабы не забыть.
Читать дальше →
Всего голосов 91: ↑84 и ↓7+77
Комментарии24

Wi-Fi: неочевидные нюансы (на примере домашней сети)

Время на прочтение14 мин
Количество просмотров1.4M
Сейчас многие покупают точки доступа 802.11n, но хороших скоростей достичь удается не всем. В этом посте поговорим о не очень очевидных мелких нюансах, которые могут ощутимо улучшить (или ухудшить) работу Wi-Fi. Всё описанное ниже применимо как к домашним Wi-Fi-роутерам со стандартными и продвинутыми (DD-WRT & Co.) прошивками, так и к корпоративным железкам и сетям. Поэтому, в качестве примера возьмем «домашнюю» тему, как более родную и близкую к телу. Ибо даже самые администые из админов и инженеристые из инженеров живут в многоквартирных домах (или поселках с достаточной плотностью соседей), и всем хочется быстрого и надежного Wi-Fi.
[!!]: после замечаний касательно публикации первой части привожу текст целиком. Если вы читали первую часть — продолжайте отсюда.
Читать дальше →
Всего голосов 234: ↑231 и ↓3+228
Комментарии138

Неприятная особенность std::list, о которой не все знают

Время на прочтение3 мин
Количество просмотров55K
Двусвязный список — это фундаментальная структура данных, о которой все знают и повсеместно используют. Все знают почему и в каких случаях он эффективнее вектора, какие операции имеют линейную сложность, а какие — константную…

Хотя постойте, знаете ли вы какова сложность функции size ()?
«Конечно же я знаю — О(1)!», ответят многие из вас, «Что может быть проще?»

size_type  size() const                             
{
       return _size;
}


Тривиально, эффективно и безопасно, не так ли?
Я бы реализовал эту функцию именно так, большинство из вас сделали бы тоже самое.

Однако, те, кто писал реализацию GNU STL, другого мнения на этот счет.
Читать дальше →
Всего голосов 111: ↑96 и ↓15+81
Комментарии92

Руководство по созданию ActiveX-контролов на C++ с помощью ATL

Время на прочтение13 мин
Количество просмотров29K
В интернете существует множество учебников по использованию ATL, и в частности, по созданию COM-компонентов с его помощью, в том числе и ActiveX/OLE контролов, но большинство из них почему-то описывают процесс тыкания мышкой в разные интересные места Visual Studio, использование графических инструментов последней, и мало какой из них затрагивает нутро сгенерированного средой разработки кода в достаточно глубоком объеме. В русскоязычном сегменте интернета ситуация и того хуже — материалов по ATL крайне мало, практически нет(да и не только по ATL, а и по созданию COM-компонентов вообще), поэтому я решил этот недостаток компенсировать.
Читать дальше →
Всего голосов 40: ↑28 и ↓12+16
Комментарии43

Список функций для получения текста ошибок из их кодов (WinAPI)

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


Здраствуйте!

Представляю обзор функций для получения текста ошибок из их кодов, который представлен в программе Error Lookup.
Читать дальше →
Всего голосов 38: ↑31 и ↓7+24
Комментарии11

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

Время на прочтение8 мин
Количество просмотров22K
image Это красноречивое объявление я увидел и сфотографировал в подъезде своего знакомого на двери неизвестного мне товарища. Возможно, стоило позвонить в дверь и познакомиться, но я растерялся и этого не сделал. Если товарищ есть на Хабре, то ему — большой привет.

Подобный крик души — мне хорошо знаком. Я несколько лет фрилансил, да и сейчас, перебравшись на постоянную работу, всё равно часто тружусь удалённо из дома. Наблюдательные соседи это заметили, поэтому для пяти из пятнадцати квартир подъезда мне «приходилось» с разной периодичностью оказывать техническую поддержку (порой срочную, порой бессмысленную). А ещё же есть компьютеры в своей квартире и у родственников на соседних улицах. При этом я всегда трудился и тружусь в области веб-разработок, и никогда — системным администратором. Но для окружающих негиков я всё равно «компьютерщик, который в этом деле понимает».

На этом печальная рефлексия закончена, ведь вы читаете позитивный воскресный пост.

Друзья, проблема «тех. поддержки по-соседски» существует для многих айтишников, но я поделюсь аж несколькими способами её благополучного решения, которые в моём случае — отлично сработали.

Ещё больше способов, наверняка, предложат в комментариях.

Поскольку соседи — часть тех самых ближних, которых (по известной концепции) мы должны возлюбить, то предлагаемые решения, в основном, будут гуманными и обоюдно комфортными. В общем, будем учиться конструктивно отказывать тем, кому прежде не говорили «нет».
Читать дальше →
Всего голосов 133: ↑107 и ↓26+81
Комментарии131

Заставляем компилятор отличать коров от галош

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

В этой статье мы попробуем обойти эту неприятную особенность.
Читать дальше →
Всего голосов 30: ↑22 и ↓8+14
Комментарии17

Графический стек Linux

Время на прочтение19 мин
Количество просмотров99K
(оригинал — Jasper St. Pierre, разработчик GNOME Shell, взято отсюда)

Это обзорная статья о составных частях графического стека Linux и том, как они уживаются вместе. Изначально я написал её для себя после разговоров об этом стеке с Оуэном Тейлором, Рэем Строудом и Эдэмом Джексоном (Owen Taylor — мэйнтейнер Gnome Shell; Ray Strode — мэйнтейнер большого количества десктопных пакетов сообщества RedHat; Adam Jackson — разработчик графического стека Gnome Shell и интеграции с XOrg; прим. переводчика)

Я постоянно дёргал их, снова и снова расспрашивал о всяких мелочах, а потом эти мелочи благополучно забывал. В конце концов, я задал им вопрос — а нет ли какого-нибудь обзорного документа, уткнувшись в который я бы избавил ребят от своего назойливого внимания? Не получив утвердительного ответа я решил написать эту статью, которая по завершению была вычитана Эдэмом Джексоном и Дэвидом Эйрли. Они оба работают над этим стеком.
Читать дальше →
Всего голосов 196: ↑191 и ↓5+186
Комментарии49

Небольшой логгер стека вызовов для C++

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

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

Будет рассмотрен небольшой, но иногда довольно полезный класс, плюс небольшой трюк с макросами, позволяющие проводить первичный анализ стека вызовов (call stack) прямо в stdout, в процессе работы программы. Разумеется, на stdout свет клином не сошёлся, и можете перенаправить хоть в файл, хоть куда-нибудь ещё — я лишь демонстрирую общий принцип.

Сразу договоримся:
  1. злоупотребление макросами — зло
  2. ничего нового и сверхъестественного в данной статье нет, она будет понятна даже новичку (на них и рассчитана)
  3. данный приём мало применим (или вообще не применим) в многопоточной среде
  4. реализация не претендует на идеальность, полноту, и уж тем более уникальность
  5. данный приём ни в коем случае не заменяет, а лишь дополняет дебаггер

Но если при написании программы вы не раз писали что-то вроде printf(«Entering Foo()\n»); для мониторинга входа в ту или иную функцию, то вы пришли как раз по адресу.
Поехали!
Всего голосов 63: ↑56 и ↓7+49
Комментарии38

Как я покупал квартиру

Время на прочтение11 мин
Количество просмотров62K
Я хотел написать статью про линейную регрессию, но потом подумал, да ну её, лучше куплю квартиру. И пошёл искать, что предлагают. А предлагают, как оказалось, много чего. В подходящий мне ценовой диапозон попало больше 500 квартир. И что, мне теперь все это просматривать? Ну нееет, программист я в конце концов или не программист. Надо это дело как-то автоматизировать.
Читать дальше →
Всего голосов 279: ↑272 и ↓7+265
Комментарии182

Памятка пользователям ssh

Время на прочтение13 мин
Количество просмотров1.5M
abstract: В статье описаны продвинутые функций OpenSSH, которые позволяют сильно упростить жизнь системным администраторам и программистам, которые не боятся шелла. В отличие от большинства руководств, которые кроме ключей и -L/D/R опций ничего не описывают, я попытался собрать все интересные фичи и удобства, которые с собой несёт ssh.

Предупреждение: пост очень объёмный, но для удобства использования я решил не резать его на части.

Оглавление:
  • управление ключами
  • копирование файлов через ssh
  • Проброс потоков ввода/вывода
  • Монтирование удалённой FS через ssh
  • Удалённое исполнение кода
  • Алиасы и опции для подключений в .ssh/config
  • Опции по-умолчанию
  • Проброс X-сервера
  • ssh в качестве socks-proxy
  • Проброс портов — прямой и обратный
  • Реверс-сокс-прокси
  • туннелирование L2/L3 трафика
  • Проброс агента авторизации
  • Туннелирование ssh через ssh сквозь недоверенный сервер (с большой вероятностью вы этого не знаете)
Читать дальше →
Всего голосов 360: ↑352 и ↓8+344
Комментарии148

Простой bookmarklet как средство очистки содержимого веб-страницы от нежелательных элементов

Время на прочтение2 мин
Количество просмотров1.8K
JavaScript использую достаточно давно, букмарклеты рассматривал когда-то в познавательных целях, но чтобы использовать,- необходимости не было.

Мысль о написании букмарклета пришла спонтанно: проверяя почту на одном из онлайн серверов ощутил явный дискомфорт, вызванный навязчивым (пёстрым и большим) флэш-банером, и это меня несколько озадачило, так как реклама встречается сплошь и рядом, временами некачественно сделанная реклама досаждает, но не так что бы очень (скорее воспринимается как окружающий фон). Первая мысль была найти дополнение для браузера (типа Flashblock), и уже было собрался устанавливать, но по разным причинам (использую разные браузеры на нескольких компьютерах, нежелание настраивать и сопровождать и т.п., да и далеко не все флэш-объекты провоцируют на то, чтобы их удалили) особого энтузиазма по поводу установки подобных дополнений не испытывал, но тут вспомнил про букмарклеты и написал простой код, позволяюший по мере необходимости легко справляться с очисткой страницы:
Читать дальше →
Всего голосов 8: ↑6 и ↓2+4
Комментарии2

Как распознать кракозябры?

Время на прочтение1 мин
Количество просмотров428K
В комментариях к предыдущему посту про иероглифы сказали, что хорошо бы иметь такую же блок-схему для кракозябр.

Итак, вуаля!


За источник информации была взята статья из вики. В блок-схеме «UTF-16 → CP 866» означает, что исходная кодировка была «UTF-16», а распозналась она как «CP 866».

Как всегда — кликабельно. Исходник в .docx: здесь.
Всего голосов 429: ↑418 и ↓11+407
Комментарии64

Восстановление расфокусированных и смазанных изображений. Практика

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

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

Ниже показан результат обработки реального размытого изображения (не с синтетическим размытием). Исходное изображение было получено камерой Canon 500D с объективом EF 85mm/1.8. Фокусировка была выставлена вручную, чтобы получить размытие. Как видно, текст совершенно не читается, лишь угадывается диалоговое окно Windows 7.



И вот результат обработки:



Практически весь текст читается достаточно хорошо, хотя и появились некоторые характерные искажения.

Под катом подробное описание проблем деконволюции, способов их решения, а также множество примеров и сравнений. Осторожно, много картинок!
Читать дальше →
Всего голосов 459: ↑456 и ↓3+453
Комментарии141

В сеть утекли пароли Yahoo

Время на прочтение1 мин
Количество просмотров7.6K
Хакерская команда D33Ds Company выложила в сети более 453 тысяч паролей пользователей сервисов Yahoo.
Известно, что взлом произвели через union-based sql injection.
А самое интересное, что пароли хранились в незашифрованном виде.
Под катом, линк на файл с паролями.
Читать дальше →
Всего голосов 58: ↑54 и ↓4+50
Комментарии105

Информация

В рейтинге
Не участвует
Откуда
Helsinki, Southern Finland, Финляндия
Дата рождения
Зарегистрирован
Активность