Pull to refresh
23
0.7

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

Send message

Как была украдена Half-Life 2

Reading time6 min
Views135K
Несколько дней назад в сети появилась одна из наиболее ранних на сегодняшний день версий Half-Life для прессы. О степени незавершенности того билда можно судить хотя бы по тому, что в игре центральным персонажем является не известный всему играющему миру очкастый физик-теоретик с защитным костюмом и монтировкой, а гномообразный бородач Иван, космический байкер, противоборствующий персоналу научно-исследовательского центра. 15 лет назад содержимое диска предназначалось исключительно для представителей регулярных печатных изданий.

Но куда более интересной остается история наиболее ранней, так сказать, демо-версии сиквела игры и путь её попадания в руки геймеров. Для того, чтобы понять, как это всё началось, вернемся на десять лет назад.

Half-Life 2 была лишь мимолетным слухом, будоражившим умы геймеров, но на выставке E3 в мае 2003 года демонстрация продукта произвела на публику настолько сильное впечатление, что ещё невышедшая видеоигра получила несколько наград. В Сиэттле говорили о дате релиза в сентябре 2003 года, и якобы незаскриптованные сцены геймплея на E3 заставляли в это верить.

В то же время на другом конце света, в крошечном (чуть больше двух тысяч человек населения) городке Шёнау в Германии проживал со своим отцом 22-летний Аксель Джембе, хакер, которому было уготовано сыграть в этой пьесе главную роль. Мир взлома затянул геймера случайно — однажды он скачал и установил программу-вирус sdbot, маскировавшийся под генератор ключей Warcraft III, но вместо того, чтобы почистить систему и забыть о трояне, Джембе подверг продукт обратному инжинирингу и изучил принципы её работы.
Читать дальше →
Total votes 181: ↑173 and ↓8+165
Comments89

Прокрастинация. Символическая система вознаграждения. Часть 1

Reading time7 min
Views154K
Что такое прокрастинация? Это термин в психологии, который подразумевает склонность к постоянному откладыванию дел или мыслей. Прокрастинация не является ленью, лень это отсутствие или недостаток трудолюбия. В чём проявляется прокрастинация? В том, что человек осознаёт выполнение важных дел, но откладывает их на потом или заменяет дела развлечениями. Когда сроки подходят, он либо бросает всё, либо пытается выполнить работу за короткий промежуток времени, с предсказуемым результатом.

Для тех кто хочет преодолеть прокрастинацию быстро, просто прочитав эту статью
Подробности под катом
Total votes 60: ↑55 and ↓5+50
Comments54

Прокрастинация. Новые задачи. Часть 2

Reading time5 min
Views110K
Сегодня мы продолжим борьбу с прокрастинацией.

Поговорим о новых задачах, узнаем что такое РЭПТ и для чего нужен план, существует ли кооперативная работа и когда это всё кончится?

Интересно?
Добро пожаловать под кат
Total votes 37: ↑33 and ↓4+29
Comments38

ООП-билдер «массивных» параметров

Reading time3 min
Views8.8K
Многие фреймворки любят магию и сложные многоуровневые массивы для передачи параметров. Что первое, что второе — зло с точки зрения истинно-ленивого программера, который любит IDE и доки всегда под рукой, а не тыкать в интернет/тело вызываемого метода. Мы можем победить это, как образец взяв параметры метода из одного фреймворка и создав ООП-билдер.
Как же он выглядит?
Total votes 31: ↑20 and ↓11+9
Comments33

Quipu — эзотерический язык программирования на основе узелковой письменности Инков

Reading time6 min
Views30K
Один мой друг, историк по профессии, подкинул мне замечательную идею об использовании древней мнемонической и счетной систем в современной криптографии. В процессе его рассказов об узелковой письменности Инков, я начал соображать, что все новое — хорошо забытое старое и было бы не плохо как-то применить древний опыт в современном мире. Первое, что пришло в голову — криптография. Это самое очевидное — просто сконвертировать узлы с ниток в байты и шифр готов. С одной стороны все казалось понятным, но потом я вспомнил про криптостойкость и другие параметры шифров и понял, что не обладаю достаточным опытом и знаниями в области криптографии, чтобы в одиночку разработать новый шифр.

Дальше я решил попытаться представить некий эзотерический язык программирования, конструкции которого могут быть записаны с помощью узелковой письменности Кипу. Поначалу казалось, что это невозможно: я придумывал язык и пытался написать на нем программу вычисления факториала. Первые три черновика спецификаций ушли в урну: языки никуда не годились. Они выглядели как полагалось для эзотерических языков, но не помогали мне решать поставленную задачу, т.к. не были полными по Тьюрингу. Энтузиазм потихоньку угасал и эта задача казалась мне не по-плечу. Собравшись с силами, я решил, что если смогу написать программу вычисления факториала — то язык работает.

Четвертая версия языка оказалось удачной: я написал факториал, затем генерацию последовательности Фибоначи и дюжину простых примерчиков аля “сумма чисел от 0 до 99”. Язык получился что надо: необычный и в тоже время с простой понятной идеей. Главное — язык может решить любую (ну или почти любую) задачу которую можно выразить в виде вычислимой функции.

А теперь все по-порядку
Total votes 82: ↑78 and ↓4+74
Comments40

Оптимизация выражения LIKE при использовании Sqlite в iOS приложении

Reading time2 min
Views9.6K
Недавно я столкнулся с задачей оптимизации запроса к Sqlite в моем iOS приложении.
Задача заключалась в следующем. Имелся список документов (PDF файлов), словарь (список слов), ну и связь документов и слов из словаря (вхождение слов в документ). Необходимо было реализовать поиск и вывести список документов в которых есть введенное слово.

Структура базы имела следующий вид:
Читать дальше →
Total votes 20: ↑16 and ↓4+12
Comments7

ViBe — алгоритм вычитания фона

Reading time5 min
Views16K
Предыстория

Пару лет назад, в процессе выполнения одного проекта, связанного с выделением и сопровождением движущихся объектов, было просмотрено немало алгоритмов вычитания фона, и в итоге одним из самых интересных оказался тот, о котором дальше и пойдет речь. Основной его недостаток — куча патентов, которыми он защищен. Но одно из несомненных достоинств — наличие библиотеки под Linux, которую разрешено использовать в некоммерческих проектах. На странице с его описанием можно найти эту самую библиотеку, а также demo-программы под Windows и Android, ссылки на патенты (где и можно найти основные описания алгоритма) и прочую интересную информацию.
Читать дальше →
Total votes 38: ↑30 and ↓8+22
Comments10

Светодиодная лента в качестве освещения комнаты

Reading time15 min
Views1.3M
Изначально для основного освещения одной из комнат, где шёл капитальный ремонт, планировалась обычная люстра. Но недавно мне на глаза попалась суперяркая светодиодная лента Ultra 5000 со светодиодами smd 5630 торговой марки Arlight. Решение было принято быстро, окончательно и бесповоротно — хочу такую ленту в качестве основного света в комнате.



О реализации светодиодного периметра освещения далее
Total votes 420: ↑415 and ↓5+410
Comments329

Обзор Flyme 2.0

Reading time13 min
Views77K
Приветствуем вас, Хабралюди! Последний пост в нашем блоге был посвящен обзору смартфона Meizu MX2, где я рассказал обо всех особенностях модели, однако тему фирменной оболочки почти не трогал. Сделано это было специально, потому что Flyme серьезно отличается от обычного Android 4.1 и я хочу посвятить ему отдельную статью, где расскажу про разные особенности Flyme.


Обзор Flyme 2.0. Внутри много текста и еще больше скриншотов
Total votes 45: ↑34 and ↓11+23
Comments72

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

Reading time6 min
Views256K
В этот понедельник я расскажу о мышке, помогающей избежать туннельного синдрома. Поехали!

Под катом — медицинский ликбез о причинах возникновения туннельного синдрома, о том, как его избежать, и конечно, обзор вертикальной мышки.
Читать дальше →
Total votes 94: ↑77 and ↓17+60
Comments181

Как вывести деньги из App Store на карту Payoneer

Reading time2 min
Views44K
Обещанного ждут не три года, а всего несколько месяцев. В нашем прошлом посте мы обещали рассказать про вывод из App Store и, вот, рассказываем.

Многие владельцы карт Payoneer зарабатывают на жизнь нелегким трудом разработчика приложений. А перед каждым разработчиком (или компанией оных) рано или поздно встает вопрос вывода заработанных средств. Услуга US Payment Service компании Payoneer позволяет получать выплаты от Apple, PayPal и Google и многих других прямо на вашу карту Payoneer MasterCard.
Читать дальше →
Total votes 48: ↑44 and ↓4+40
Comments53

Google объявил войну паролям

Reading time2 min
Views111K


История взломов и массовых утечек 2012 года показывает, что пароли дискредитировали себя как надёжное средство защиты конфиденциальной информации. Нужно искать альтернативу. Поэтому компания Google организовала ряд экспериментов с использованием альтернативных методов аутентификации. Один из них предполагает использование миниатюрных криптографических карт Yubico, изображённых на фотографии. Если вставить такую карту в разъём USB, то вы автоматически входите в свой аккаунт Google, без ввода пароля.
Читать дальше →
Total votes 122: ↑100 and ↓22+78
Comments279

Тестирование в Mail.Ru Group

Reading time12 min
Views41K
Эта статья написана по мотивам одноименного доклада на Highload++'2012. Предназначена она для руководителей, которые смогут, взглянув на наше тестирование, сравнить его с тестированием в своем проекте, для программистов и системных администраторов, которым представится возможность посмотреть на тестирование как на очень интересную работу, и, конечно, для тестировщиков.

В статье я расскажу, о том, каким на самом деле может быть тестирование, как мы сделали тестирование продуктивной и интересной работой, какие задачи мы решаем, и почему работать у нас хорошо.
Читать дальше →
Total votes 112: ↑76 and ↓36+40
Comments29

Применение D-Bus в веб-системах

Reading time7 min
Views16K
В процессе разработки нескольких Интернет-сервисов мы заметили, что значительная часть их функционала является общей, и руководствуясь принципом DRY (Don't Repeat Yourself — не повторяйся), приняли решение вынести общий функционал в отдельный модуль.

К модулю были предъявлены следующие требования:
  • независимость от использующих его сервисов;
  • простота «клиентского» кода;
  • многопоточность и высокая скорость работы.
Читать дальше →
Total votes 18: ↑17 and ↓1+16
Comments19

Радиопередатчик из Raspberry Pi и куска провода

Reading time1 min
Views164K
Теперь каждый может сделать из своего Raspberry Pi неплохой FM передатчик. Для этого не нужно каких-то особых умений или деталей, всё, что вам понадобится — кусок провода длиной примерно в 20см.


Читать дальше →
Total votes 72: ↑61 and ↓11+50
Comments93

10 причин, по которым Вы бросите свою работу в 2013 году

Reading time9 min
Views809K
imageЭто перевод нашумевшей статьи с TechCrunch от Джеймса Альтушера — инвестора, программиста, автора статей и немного предпринимателя. Его последние книги: Я был слеп, но теперь я вижу и 40 альтернатив колледжу. Читайте его в Twitter @jaltucher.

Люди читают TechCrunch потому, что они хотят что-то создать, они не желают следовать приказам всю жизнь и хотят финансовой свободы. Давайте начистоту. Эти три пункта кажутся притягательными. Да благословит Вас Бог. Надеюсь, что когда Вы их обретете, Вы сможете сохранить их. Большинству людей (например, МНЕ), нужно просто немного покататься на американских горках, потому что мы тупые. Но некоторые люди умные.
Читать дальше →
Total votes 287: ↑206 and ↓81+125
Comments391

Разрабатываем новый формат файла для бэкапа сайтов

Reading time5 min
Views25K
Сейчас работаю над новым PHP-скриптом, который будет бэкапить не только базу данных, но и все файлы сайта.

Изначально планировалось использовать один из распространённых форматов архивов. В данном случае, первое, что приходит в голову — ZIP и TAR. Для них есть множество готовых классов, а расширение ZIP даже входит в стандартную поставку PHP. Но изучив спецификации форматов, а также опробовал готовые решения, склонился к изобретению своего велосипеда.

Просьба «велосипедохейтеров» воздержаться от комментариев в стиле «хватит нам велосипедов». В конце концов, без создания «велосипедов» не было бы ни Google, ни Google Chrome, ни Facebook, ни WinRAR и 7-Zip.
Читать дальше →
Total votes 113: ↑92 and ↓21+71
Comments143

Полезные факты о языке программирования Objective-C

Reading time3 min
Views23K
Я уже 2 года занимаюсь разработкой приложений под iOS и в этой статье мне захотелось представить те факты, которые показались мне интересными и полезными. Буду рад, если вы так же поделитесь своими знаниями в комментариях. В следующей статье хотелось бы собрать подобные факты о Foundation Kit.

.m


Расширение .m (message) ввели для того чтобы выделить ключевую особенность Objective-С. По сути, мы не вызываем методы у класса, мы отправляем сообщение объекту, после чего происходит диспетчеризация в ходе которой диспетчер методов Objective-C ищет нужный класс и вызывает у него необходимый метод.

NS


Префикс NS обозначает Next Step. Он возник еще в те времена, когда не было Cocoa, а фрейворк назывался NextSTEP и был продуктом NeXT Software. Apple купила эту компанию в 1996 году и чтобы не нарушать обратную совместимость кода продолжила использовать этот префикс.

Читать дальше →
Total votes 45: ↑30 and ↓15+15
Comments37

Specification By Example – BDD для прагматиков

Reading time11 min
Views96K

На Хабре довольно много упоминаний о BDD. К сожалению, статьи, которые я читал, так и не дали мне ответа на вопрос «а зачем мне все это нужно?» Ответ пришел с неожиданной стороны. Когда я всерьез занялся вопросом автоматизации приемочного тестирования, мне под руку попалась книга Gojko Adzic (не уверен в транскрипции, поэтому не стал переводить имя автора) Specification By Example.
Читая ее, я не уставал удивляться: каждая новая глава описывала шишки, которые я набивал на своем личном опыте, и предлагала решения аналогичные или лучшие, чем те, к которым я приходил сам методом проб и ошибок.

Эта статья – первая в цикле «BDD для прагматиков». В ней описаны ключевые элементы наиболее эффективного, на мой взгляд, процесса разработки коммерческого ПО в современных условиях. Два продолжения будут посвящены работе со SpecFlow и автоматизации приемочного тестирования.
Часть первая - живая документация
Total votes 34: ↑31 and ↓3+28
Comments32

Регулярные выражения изнутри

Reading time5 min
Views121K
Регулярные выражения (РВ) — это очень удобная форма записи так называемых регулярных или автоматных языков. Поэтому РВ используются в качестве входного языка во многих системах, обрабатывающих цепочки. Рассмотрим примеры таких систем:

  • Команда grep операционной системы Unix или аналогичные команды для поиска цепочек, которые можно встретить в Web-броузерах или системах форматирования текста. В таких системах РВ используются для описания шаблонов, которые пользователь ищет в файле. Различные поисковые системы преобразуют РВ либо в детерминированный конечный автомат (ДКА), либо недетерминированный конечный автомат (НКА) и применяют этот автомат к файлу, в котором производится поиск.
  • Генераторы лексических анализаторов. Лексические анализаторы являются компонентом компилятора, они разбивают исходную программу на логические единицы (лексемы), которые могут состоять из одного или нескольких символов и имеют определенный смысл. Генератор лексических анализаторов получает формальные описания лексем, являющиеся по существу РВ, и создает ДКА, который распознает, какая из лексем появляется на его входе.
  • РВ в языках программирования.


В данной статье мы сначала ознакомимся с конечными автоматами и их видами (ДКА и НКА), и далее рассмотрим пример построения минимального ДКА по регулярному выражению.
Читать дальше →
Total votes 77: ↑69 and ↓8+61
Comments38

Information

Rating
1,328-th
Registered
Activity