Search
Write a publication
Pull to refresh
17
0
Сергей @Zenker

User

Send message

Ресурсы, о которых должен знать каждый Android-разработчик

Reading time6 min
Views189K
Сегодня я хочу поделиться с вами моим вольным переводом статьи, написанной Сергеем Повзнером (Sergey Povzner). Сергей ведёт блог bongizmo.com и занимается разработкой туристических гидов под общим названием Citybot.

В то время как Android продолжает свой невероятный рост, всё больше и больше программистов начинают разрабатывать приложения на этой платформе. Если ты начинаешь свой путь сегодня, то ты определенно — счастливчик. За последние годы Android значительно повзрослел и избавился от множества детских болезней. Информации по платформе более чем достаточно. Я же расскажу о самых важных ресурсах.

Статья будет полезна как новичкам, так и опытным разработчикам. Это гид по миру Android-разработки.
Читать дальше →

Почему MineCraft стоит использовать в образовании

Reading time3 min
Views78K
Прочитал статью, что в Швеции ввели уроки Minecraft’а и подумал, а в этом, что-то есть! Эта игра выделяется на фоне других своей обучающей способностью.
Решил написать статью почему Minecraft стоит использовать как обучающую платформу для детей, с примером того чем он был полезен мне, что он заставил меня выучить и попробую аргументировать, почему стоит показать ребёнку эту игру, а лучше вместе с ним начать играть на одном сервере. Заодно и опишу особенности игры для тех кто знает о Minecraft, «только что там всё квадратное».
image
Читать дальше →

Regexponline – интерактивный анализатор и редактор регулярных выражений

Reading time4 min
Views53K
Есть одна бородатая шутка: «если у вас есть проблема, и вы собираетесь решать ее с использованием регулярных выражений, то у вас есть две проблемы». Действительно, регулярные выражения – очень мощный и гибкий инструмент, применяемый для решения весьма широкого круга задач. Но, как водится, для поддержания баланса, такой серьёзный инструмент имеет весьма недружелюбный вид.

(<([a-z]+[^>]*)>)(.*)(</\2>)

Такая чупакабра новичка приводит в трепетный ужас, да и знающего человека заставляет невольно поморщить нос. А ваша девушка вообще решит, что вы свихнулись, когда увидит вас за написанием такой конструкции.

image

Когда-то и мне пришлось по долгу службы подружиться с регулярными выражениями. Прочитав Фридла и несколько статей на Хабре, я, конечно, начал понимать этот синтетический язык. Тем не менее, каждый раз, когда приходилось написать очередную регулярку, я быстро закапывался в нагромождении скобок, слешей, точек, плюсов, знаков вопроса, и других хорошо вам знакомых конструкциях. Разобраться в этой каше было очень сложно, особенно если возвращаешься к задаче месячной давности. Я мечтал об инструменте, который помог бы мне разобраться в собственном творении. Приблизительно подходящих по смыслу сервисов нагуглилось с десяток, но все они приносили мало пользы. Как раз тогда я и начал разрабатывать этот проект.

Итак, regexponline – инструмент, способный наглядно изобразить структуру регулярного выражения, разобрав его по элементарным компонентам; продемонстрировать совпадающие и не совпадающие его части; помочь в написании и отладке выражения, которое почему-то не совпадает с нужной строчкой.
Читать дальше →

Возвращаем приватность или большой брат следит за мной на стандартных настройках. Часть 2. Блокируем следящие скрипты на сайтах и настраиваем VPN

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

Сегодня посмотрим (и избавимся) на то, сколько статистики собирают на нас даже без использования сторонних «куки»-файлов и расскажем о пользе и настройке VPN простым языком.

Хочу сказать большое спасибо всем, кто оставлял комментарии в прошлой статье (и оставит в этой) — все ваши дельные советы будут включены в этот или последующий мануалы.


Читать дальше →

Краткое введение в boost::program_options

Reading time5 min
Views44K
Занимаясь разработкой алгоритмов, постоянно одергиваю себя, а вдруг изменения, которые работают на небольшом примере, привнесут разброд и шатание в результаты на других, больших данных. Тогда мне на помощь приходит командная строка. Самое ужасное, что каждый раз реализовывать парсер аргументов уже надоело, а значит, не последним средством для C++ программиста оказывается пакет program_options из библиотеки boost.
Читать дальше →

Eclipse. Улучшенный поиск и подсветка блоков кода

Reading time1 min
Views23K

Устав искать, как улучшить навигацию по коду в эклипсе, и в первую очередь поиск, я почти решился писать свой собственный велосипед, но, к счастью, нашел решение в виде связки двух must-have плагинов — Glance и EditBox.
Читать дальше →

Использование отладчика GDB по максимуму

Reading time4 min
Views40K
В нашей повседневной работе, как и всем, требуется много пользоваться отладчиком. В силу специфики работы: (разработка ОС, использование технологий виртуализации наподобие Intel-VT, ит.д.) нам часто требуется использовать отладчик для работы со специфическими случаями: отладка кода загрузчика ядра, отладка загрузчиков виртуальных машин, а так же в принципе обеспечение возможности отлаживать ОС собственной разработки. Именно эти особые случаи так пафосно названы в заголовке ”по максимуму”.

Для решения всех этих задач (и конечно, многих других) мы используем gdb. Возможно использование и таких оболочек как DDD, но лично я предпочитаю использовать cgdb как оптимальный выбор, особенно для случая работы с отладчиком по ssh.
В этой статье мы расскажем о том, как можно использовать gdb для отладки кода загрузочных секторов и загрузчиков.
Читать дальше →

90 рекомендаций по стилю написания программ на C++

Reading time20 min
Views419K
От переводчика. Искал в интернете простой и легко применимый гайдлайн по написанию программ на C++. Мне понравился один из вариантов, и я решил его перевести и опубликовать. Если хабрапользователи хорошо встретят этот топик, могу перевести и другие связанные документы, а также гайдлайны по написанию кода от других компаний.

1 Введение


Настоящий документ содержит рекомендации по написанию программ на языке C++.

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

Но для появления ещё одного списка рекомендаций, помимо указанных источников, есть несколько причин. Основная причина — их излишняя обобщённость, поскольку зачастую требуется задать частные правила (в особенности правила именования). Данный документ содержит комментарии, что делает его более удобным в использовании при проведении ревизий кода, чем другие уже существующие документы. К тому же, рекомендации по программированию обычно вперемешку содержат описания проблем стиля и технических проблем, что не совсем удобно. Этот документ не содержит каких-либо технических рекомендаций по C++, делая упор на вопросах стиля.
Читать дальше →

Как работают браузеры: принципы работы современных веб-браузеров

Reading time2 min
Views190K
Просматривая одно из обучающих видео "Школы разработки интерфейсов" Яндекса, наткнулся на ссылку на офигенный труд израильской веб-программистки Тали Гарсиэль (Tali Garsiel) "How browsers work" (Как работают браузеры).

Она в течение нескольких лет отслеживала всю издаваемую информацию о внутреннем устройстве браузеров, изучала исходный код WebKit и Gecko и, в конце концов, собрала все воедино. Вот что пишет сама Тали:
Когда на 90% компьютеров был установлен IE, приходилось мириться с тем, что это загадочный «черный ящик», однако теперь, когда более половины пользователей выбирает браузеры с открытым исходным кодом, пришло время разобраться, что скрывается у них внутри, в миллионах строк программного кода на C++...
Пролистав, я был поражен — отличная работа. Внутреннее устройство браузеров, алгоритмы разбора — все хорошо иллюстрировано, доступно и понятно. И без излишних подробностей, страниц на 30-40. Как раз то, что нужно. Решил — это надо обязательно перевести. Покопался еще немного — оказалось перевод уже как 1,5 года есть!

Возможно для кого-то это давно уже не новость, но, надеюсь, для тех, кто не слышал, будет полезно (на хабре упоминаний не нашел).

Под катом содержание перевода, чтобы решить стоит ли читать.
Читать дальше →

О законах Универсальности или что нам может объяснить Тетрис про кофейные пятна

Reading time6 min
Views44K
На следующее утро после больших метелей, охвативших северо-восток США, я сидел в своей машине, готовый бросить вызов опасным дорожным условиям, чтобы съездить в местное кафе. Мой дом в Нью-Джерси был за пределами основного пути шторма, так что вместо сугробов нас приветствовала смесь мокрого снега и ледяного дождя. И сидя в своей машине, я не мог не быть очарован этими странными узорами из льдинок, образующихся на лобовом стекле. Вот что я увидел:


Читать дальше →

Как выглядит беспорядок или были ли у фашистов самонаводящиеся ракеты

Reading time7 min
Views154K
13 июня 1944 года, через неделю после вторжения союзников в Нормандию, громкий жужжащий звук прогремел в небе избитого боями Лондона. Источником звука было недавно разработанное немецкое орудие войны: воздушная бомба V-1. Будучи предшественником крылатых ракет, V-1 была самоходной бомбой, управляемой с помощью гироскопов, питалась она от простого пульсирующего воздушно-реактивного двигателя, который поглощал воздух и воспламенял топливо 50 раз в секунду. Такая высокая частота пульсации давала бомбе характерный звук, зарабатывая ей прозвище «жужжащая бомба» (в оригинале – «buzz bomb» – прим. перев.).
Читать дальше →

Видеоредактор OpenShot с обновлённым движком идёт на Windows и Mac

Reading time2 min
Views41K


OpenShot — один из самых качественных полноценных нелинейных видеоредакторов на платформе Linux. Его создатель Джонатан Томас, начиная разработку в 2008 году, хотел создать простой, понятный, и в то же время мощный и стабильный редактор. И, как мне кажется, ему это удалось. В OpenShot есть всё, что нужно, и ничего лишнего. Он молниеносно быстр и предельно прост. Трудно придумать что-то лучшее для эпизодического редактирования несложных проектов.

Последние два года Джонатан Томас посвятил созданию совершенно нового движка на C++, который опирается на кроссплатформенные библиотеки работы с мультимедиа — FFmpeg, LibAV, JUCE audio library, ImageMagick. Новый интерфейс редактора будет основан на HTML5 и WebKit, что позволит с лёгкостью создавать любые мыслимые темы и скины. И одна из главных «фишек» OpenShot — 100% функционала видеодвижка будет доступно через Python API. Думаю, для тех, кому что-то говорит слово AviSynth, не надо объяснять, насколько это круто.

Чтобы закончить работу к ноябрю-декабрю этого года, Томас запустил кампанию на Кикстартере. Цель достаточно скромна — 20 000$, и почти половина денег уже собрана. Код OpenShot будет опубликован под лицензией GPLv3.
Читать дальше →

Move semantics в C++11 и STL-контейнеры

Reading time2 min
Views78K
Эта небольшая заметка о том, как с приходом нового стандарта C++11 изменились требования стандартных контейнеров к своим элементам. В C++98 от элемента контейнера требовалось, по сути, наличие «разумных» конструктора копирования и оператора присваивания. Если, например, объект вашего класса владеет каким-либо ресурсом, копирование обычно становится невозможным (по крайней мере, без «глубокого» копирования ресурса). В качестве примера давайте рассмотрим следующий класс-обертку вокруг FILE*, написанную на C++98:

class File
{
    FILE* handle;
public:
    File(const char* filename) {
        if ( !(handle = fopen(filename, "r")) )
            throw std::runtime_error("blah blah blah");
    }
    ~File() { if (handle) fclose(handle); }
    // ...
private:
    File(const File&); //запретить копирование
    void operator=(const File&); //запретить присваивание
};

Читать дальше →

GCC 4.8 завершил миграцию на C++

Reading time2 min
Views29K
С выпуском GCC 4.8.0 разработчики набора компиляторов GNU Compiler Collection завершили переход на C++ в реализации GCC. Работа по переводу кодовой базы на C++ продолжалась c 2008 года, и теперь подошла к концу. Миграция на C++ означает, что теперь для сборки GCC из исходников обязательно требуется компилятор С++ 2003.

Ричард Столлман написал первый вариант GCC в 1985 году на непереносимом диалекте языка Паскаль. В 1987 году компилятор был переписан на языке Си, и в таком виде существовал до 2013 года.
Читать дальше →

Оценка сложности алгоритмов

Reading time4 min
Views86K

Введение


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

Всегда следует искать оптимум в соответствии с поставленной задачей, в частности, при разработке алгоритмов решения класса задач.
Важно также оценивать, как будет вести себя алгоритм при начальных значениях разного объёма и количества, какие ресурсы ему потребуются и сколько времени уйдёт на вывод конечного результата.
Этим занимается раздел теории алгоритмов – теория асимптотического анализа алгоритмов.

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

Подробности

Adblock теперь работает независимо от Google Play

Reading time1 min
Views94K


Не так давно Google убрал блокировщик рекламы AdBlock из своего каталога приложений. В общем-то, эта новость расстроила многих пользователей приложения, поскольку оно реально полезно в некоторых ситуациях. Понятно, что стоило ожидать появления независимого дистрибутива данной программки, которая работала бы вне среды Google Play. Так и случилось — разработчики выпустили версию Adblock Plus 1.1 for Android, которая теперь работает автономно.

Читать дальше →

АнтиЗапрет — Скажи цензуре нет!

Reading time1 min
Views280K
Как и обещал, сделал бесплатный VPN и прокси-сервер, который проксирует только ресурсы, внесенные в единый реестр запрещенных сайтов Роскомнадзором, Роспотребнадзором или ФСКН.
Не нужно искать прокси или VPN, включать/выключать их постоянно, а один раз настроить и забыть.

ПростоVPN.АнтиЗапрет


Сервис использует API сайта antizapret.info и обновляет списки раз в сутки.
Есть два способа настройки: как прокси и как VPN.
Читать дальше →

Полезные советы новичкам в дизайне под Android

Reading time3 min
Views171K
Этот пост послужит своеобразным началом серии публикаций на тему «как я учусь дизайну под Android». Никогда не уделял гайдлайнам достаточно внимания, считая их скучными и неинтересными, но все изменилось. Сейчас я начинаю понимать, платформа достигла своей зрелости и предлагает ряд интересных решений.
Читать дальше →

Видимость сквозь турбулентную атмосферу. Компьютерная коррекция изображений удаленных объектов

Reading time6 min
Views11K
Авторский пересказ двух публикаций с демонстрационным фильмом.

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

Читать дальше →

Почтовые индексы — на свободу! (Реверсинг в картинках)

Reading time4 min
Views28K
Пару лет назад я писал об использовании базы PAF (Postcode Address File) британской Королевской почты (Royal Mail) для приведения почтовых адресов, вводимых пользователями, к стандартному виду. Поскольку PAF — основная интеллектуальная собственность Royal Mail, то заполучить её не так-то просто: годовая подписка стоит от £400 в зависимости от полноты базы и от частоты апдейтов. Спустя неделю-другую после оформления подписки по почте приходит солидная красная коробочка с CD-диском:


На диске — EXE-файл, который запрашивает «серийный номер» и распаковывает базу (набор CSV-файлов) на диск. Серийный номер присылают отдельно, чтобы злоумышленник, перехвативший посылку, не смог бы воспользоваться базой. (Вот выдумают же — текстовый файл с серийным номером!) Номер у каждого клиента свой, чтобы в случае «утечки» было ясно, к кому предъявлять претензии. Впрочем, организовать «утечку» самих данных серийный номер никак не мешает, и на WikiLeaks в 2009 г. появилась база Postzon (одна из составляющих PAF). В комментариях к ней отмечено, что "данная база составлена на средства налогоплатильщиков, и активисты, в их числе газета The Guardian и сэр Тим Бернерс-Ли, уже давно пытаются убедить Royal Mail открыть свободный доступ к PAF; но до сих пор эти попытки не увенчались успехом". Впрочем, через год после появления Postzon на WikiLeaks аналогичная по содержанию база появилась в открытом доступе от имени британской картографической службы Ordnance Survey и под названием OS Code-Point Open — таким образом и Royal Mail сохранила лицо, не уступив требованиям активистов, и утёкшие данные официально получили статус общедоступных. Тем не менее, полностью PAF до сих пор необщедоступна. (Пока я готовил эту статью, Postzon и с WikiLeaks куда-то пропала; но гугл всё помнит.)

Спустя год после получения PAF мне понадобилось в неё снова заглянуть, но листочек с серийным номером, присланный отдельно от диска, за год успел куда-то затеряться. Тут мне и стало интересно — насколько сложно будет обойти проверку серийного номера в продукте таком солидном и так яростно защищаемом от «освободителей информации»? Через полчаса данные были у меня на винте, а сама программа-распаковщик мне показалась неплохим демонстрационным примером для начинающих реверс-инженеров. Никакая IDA не потребуется — только бесплатные и быстроустанавливаемые инструменты.

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

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity