Search
Write a publication
Pull to refresh
1
0
Владимир Пестов @KozzyKoder

User

Send message

Eclipse RCP Cookbook Part I

Reading time7 min
Views13K
В данной статье я расскажу, что такое Eclipse Rich Client Platform, как она работает и с чем ее есть. Прошу обратить внимание, если вы ищите туториал, как создать свою RCP, то вам сюда, я же хочу рассказать как она работает изнутри.
Читать дальше →

9-килобайтный скрипт превратит любой браузер с WebRTC в узел распределённой CDN

Reading time3 min
Views26K
Чуть больше двух лет назад я написал статью-исследование "Темная материя интернета". Основная идея той статьи — использовать ресурсы миллионов обычных пользователей интернета для того, чтобы снять большую часть нагрузки с веб-сайтов, подобно тому, как в сетях BitTorrent участники помогают друг другу качать файлы. Это могло бы многократно снизить стоимость хостинга, уменьшить зависимость сайтов от рекламы и платных сервисов или пожертвований. Тогда любые попытки реализовать подобную «децентрализованную CDN» наталкивались на необходимость устанавливать специальный софт в виде отдельного приложения или расширения браузера.

Но пару месяцев назад состоялся первый видеозвонок между браузерами Firefox и Chrome, ставший возможный благодаря технологии WebRTC. Вместе эти браузеры имеют долю рынка почти в 60%, а значит всё необходимое, чтобы стать узлом P2P-сети, у большинства пользователей интернета есть уже сейчас или появится в ближайшие недели (когда полноценная поддержка WebRTC войдёт в стабильную сборку Firefox).

Стартап PeerCDN собирается использовать новые возможности для создания распределённой CDN для статического контента, воспользоваться которой можно будет, просто включив в код страницы небольшой (9 кб) скрипт. Никаких плагинов, дополнений и дополнительных телодвижений не нужно, всё происходит прозрачно для клиента. Создатели обещают запустить сервис в течение ближайших недель, а пока можно записаться в список рассылки.



Как это работает?

Как я перестал волноваться и стал отдавать метаданные restful API

Reading time5 min
Views18K
Если вы делаете публичный API, то скорее всего сталкивались с проблемой его документации. Большие компании делают специальные порталы для разработчиков, где можно почитать и обсудить документацию, или скачать библиотеку-клиент для вашего любимого языка программирования.

Поддержка такого ресурса (особенно в условиях, когда API активно развивается) — достаточно трудозатратное дело. При изменениях, приходится синхронизировать документацию с фактической реализацией и это напрягает. Синхронизация состоит из:
  • Проверки, что вся существующая функциональность описана в документации
  • Проверки, что всё описанное работает как заявлено в документации
Читать дальше →

Стив Бланк: Жить ради работы или работать для жизни?

Reading time4 min
Views22K
Вопросы «положить ли все на алтарь стартапа?» и «стоит ли работать 15 часов в сутки вместо 14 для достижения цели?» рано или поздно возникают в голове любого основателя компании. Много слов уже было сказано на тему работы не «12 часов, а головой», однако найти баланс между работой и остальной жизнью получается не у каждого.

UPD: Возможно в статье достаточно очевидные вещи, я понятия не имею как к этому отнесутся разработчики и программисты, но наверное в этом что-то есть. Стив отнюдь не бизнес-тренер, он запустил около 10 компаний и продолжает развивать свои бизнесы, попутно делясь своим опытом.

Итак его мнение насчет совмещения жизни и работы:
Читать дальше →

Новые инструменты для разработки игр на Windows Phone

Reading time3 min
Views15K

На проходящей в Сан-Франциско конференции GDC был сделан ряд анонсов о новых инструментах для разработки игр на платформе Microsoft. Теперь, помимо существующих средств, таких как DirectX, разработчики могут использовать Unity 3D, Marmalade, Havok.
Читать дальше →

Pixi.js — 2D движок с прозрачной поддержкой WebGL

Reading time1 min
Views81K
Pixi.js позволяет использовать мощь WebGL для рендеринга 2D-сцен, совершенно не вникая в подробности реализации, более того, он умеет самостоятельно определять наличие поддержки WebGL и переключаться между способами рендеринга. В отсутствие WebGL рендеринг осуществляется средствами canvas. Кроме того в Pixi.js реализован граф сцены, поддержка текстур и спрайтов, чуть больше недели назад в нём появилась поддержка интерактивности — на спрайты можно повесить обработчики событий мыши и тачскрина.
Читать дальше →

Desktop vs Cloud

Reading time1 min
Views5.5K
Дано: «чистая» Linux машина.
Задача: создать простое Spring приложение из темплейта и развернуть его на Cloud Foundry.
Решение: На видео. Левая сторона: desktop подход (Maven, Tomcat, JVM, Eclipse...). Правая сторона: cloud, а конкретно, Codenvy.

Видео лучше развернуть на весь экран и смотреть в HD качестве


Предвосхищая критику, сразу же скажу следующее. Это отнюдь не попытка очернить десктоп ИДЕ. Исключительно исследовательский подход. Результат в 1 час — приблизительный и округленный к часу (девелопер, имеющий дело со спрингом и Cloud Foundry, очевидно, справится быстрее). Можно управиться и за 25 минут. А при большом желании и быстрых руках — и вовсе за 15 (будет рекордом, кстати). Все же, в данном аспекте («запрыгнуть на борт») преимущества облака очевидны.

Разработка под BlackBerry 10. Начало

Reading time3 min
Views4.6K
Платформа BlackBerry 10 уже довольно давно привлекает к себе внимание. Решение от RIM оказалось довольно таки интересным, так почему бы не попробовать свои силы на этом поле.
Сегодня мы попробуем запустить простое приложение для BB 10 в симуляторе и посмотрим на это чудо.

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

Частые ошибки при разработке lockfree-алгоритмов и их решения

Reading time13 min
Views61K
На хабре уже было несколько статей про lock-free алгоритмы. Этот пост — это перевод статьи моего коллеги, которую мы планируем публиковать в нашем корпоративном блоге. По роду деятельности мы пишем огромное количество lock-free алгоритмов и структур данных, и этой статьей хочется показать, насколько это интересно и сложно одновременно.



Эта статья во многом похожа на эту статью, но в той статье рассматриваются не все проблемы, с которыми можно столкнуться, разрабатывая lock-free структуры данных, и уделяется очень мало внимания решению этих проблем. В этой статье хочется детально остановиться на некоторых решениях, которые мы используем в реальной реализации lock-free структур данных в нашем продукте, и больше внимания уделить оценке производительности.
Читать дальше →

У iPhone больше уязвимостей, чем у Android, BlackBerry и Windows Phone вместе взятых

Reading time1 min
Views60K
Когда дело касается мобильной безопасности, то мы чаще всего обсуждаем Android с его вирусами и троянами, живущими в основном за пределами Google Play Store. Однако новое исследование SourceFire легко показало, что у iPhone больше проблем с безопасностью, чем у Android, BlackBerry и Windows Phone вместе взятых.

Аналитики SourceFire проанализировали уязвимости, записанные в Common Vulnerabilities and Exposures (CVE) и National Vulnerability Database (NVD) за 25 лет. Ив Йунан, ведущий исследователь в Vulnerabilities Research Team компании и автор отчета, говорит, что результаты, касающиеся мобильных платформ, были «удивительными».

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

Браузер Chrome разбудил человека в 3:00 ночи криками монстров

Reading time2 min
Views151K
Неприятная история произошла с одним из пользователей браузера Chrome. Полное ужасов изложение событий он опубликовал в баг-трекере Chromium, см. Issue 224182.

Как воспроизвести ситуацию

1. Перед сном посмотрите очередной эпизод сериала «Сверхъестественное» или какой-нибудь другой фильм про зомби на Neflix.

2. После окончания фильма выключите монитор и ложитесь спать. Закройте глаза, расслабьтесь, подумайте о чём-нибудь приятном и погрузитесь в беззаботный мирный сон.

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

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

GamePlay 3D Framework — лёгкий старт в кроссплатформенную разработку 3D игр

Reading time13 min
Views32K
Доброе время суток, уважаемые хабражители!

Прослушав курс по компьютерной графике в университете и вдоволь наигравшись с OpenGL, я решил, что пора бы уже двинуться дальше и попробовать себя в разработке игр. Писать с нуля свой движок, прямо скажем, не очень-то хотелось. Главной целью было скорее посмотреть как это делается, вынести уроки и может быть создать что-то на базе выбранного движка. Беглый поиск показал, что с открытыми кроссплатформенными движками немного туго. У одного проблемы с Linux, Windows или Mac OS, у другого со свежими версиями мобильных ОС, третий почти заброшен… Но я-таки наткнулся на один очень привлекательный экземпляр, о котором и хочу поведать в этой статье.

gameplay

Имя этому фреймворку — GamePlay 3D. Информации о нём на просторах интернета не очень много, чего уж говорить про рунет. Это open source фреймворк написанный на C++ для программирования игр на C++ со всеми вытекающими из этого достоинствами и недостатками. Авторы проекта позиционируют его как универсальный инструмент, эдакий аналог cocos2d для 3D игр. Чтобы начать писать на GamePlay 3D не нужно обладать глубокими знаниями OpenGL, GLSL или математики 3D графики, однако все мы понимаем, что для достижения хорошего результата от этого никуда не деться. Подробности и небольшой пример для старта под катом.

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

Идентифицировать человека среди 1 500 000 пользователей мобильной связи можно всего по 4 точкам во времени и пространстве

Reading time2 min
Views123K
Каждый из нас изо дня в день бывает в одних и тех же местах примерно в одно и то же время — дом, работа, спортзал, магазин, снова дом… Наш ежедневный маршрут достаточно стабилен и в то же время уникален. Совместное исследование американских и бельгийских учёных продемонстрировало, что степень его уникальности гораздо выше, чем можно предположить.

Анализ базы данных, в которой была собрана анонимизированная информация о времени и месте звонков и СМС 1 500 000 абонентов на протяжении пятнадцати месяцев показал, что для идентификации 95% людей достаточно знать всего четыре пространственно-временные точки.

Всего две точки позволяют различить индивидуальный след половины пользователей, а одиннадцати достаточно, чтобы различить все до единого следы. На иллюстрации слева приведены примеры таких индивидуальных следов. Авторы исследования сравнивают уникальность мобильного следа с отпечатками пальцев — в 1930 году французский пионер криминалистики Эдмон Локард показал, что для идентификации по отпечатку пальца достаточно двенадцати совпадений деталей рисунка.

Таким образом, получив из открытых источников (Facebook, Twitter, Foursquare, LinkedIn и т.п.) всего несколько характерных для человека пространственно-временных точек, можно деанонимизировать абонента мобильной связи среди миллионов записей, не содержащих вообще никакой персональной информации, и отследить все его перемещения.
Читать дальше →

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

Reading time1 min
Views23K

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

Новый этап в гонке скоростей JavaScript. Модуль OdinMonkey ускоряет низкоуровневый код в 10 раз

Reading time2 min
Views37K
Модуль OdinMonkey — часть движка IonMonkey, отвечающая за оптимизацию и компиляцию низкоуровневого Asm.js — 21 марта был включён в состав сборки Firefox Nightly. Что такое Asm.js? — это подмножество языка JavaScript, позволяющее программировать «на уровне ассемблера» — без динамической типизации и выделения памяти. В каком-то смысле Asm.js аналогичен технологии Google Native Client, только с обратной совместимостью — код, написанный по спецификации Asm.js, является корректным кодом JavaScript и будет выполняться на любом движке, только медленнее, чем при наличии OdinMonkey.

Asm.js позволяет в ряде случаев вплотную приблизиться к производительности нативного кода — программа на Си, скомпилированная в Asm.js, обычно работает всего вдвое медленнее оригинала:


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

Canvas в GIF на Javascript

Reading time9 min
Views24K

Расскажу об особенностях с которыми я столкнулся при сохранении изображения из canvas в GIF.
Тут будут рассмотрены готовые решения и мой собственный javascript код квантизации изображения (то есть уменьшение палитры до 256 цветов). Так же будут затронуты вопросы быстродействия некоторых javascript конструкций.
Читать дальше →

Обновление Windows Azure: Hadoop, Dropbox, Mercurial, PhoneGap

Reading time4 min
Views6.1K
image

18 марта Скотт Гатри в своем блоге анонсировал очередные нововведения в облачную платформу Windows Azure. Представленный новый функционал включает в себя:



  • HTML5-клиенты (CORS) для Windows Azure Mobile Services, включая доступ из популярной библиотеки PhoneGap;
  • улучшенная поддержка Windows Phone 7.5, новые библиотеки и пакет Nuget;
  • поддержка размещения веб-сайтов из Mercurial (Bitbucket, Codeplex) и Dropbox;
  • новые шаблоны в Web Sites;
  • публичный доступ к сервису HDInsight – облачной платформе Hadoop как сервис.

Ниже о этих нововведениях чуть подробнее.



Поддержка HTML5/JS-клиентов и PhoneGap в Mobile Services


Windows Azure Mobile Services предлагает облачную инфраструктуру для всех популярных мобильных платформ: Windows 8, Windows Phone, iOS и Android. В текущем обновлении к поддержке мобильных платформ добавилась поддержка веб-клиентов на HTML5/JS, в частности популярной библиотеки PhoneGap. Теперь вы можете получить доступ ко всем данным сохраненным из мобильных клиентов через код написанный на HTML5/JS.


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

Настраиваемая авторизация в Asp.Net MVC

Reading time9 min
Views47K
Привет Хабраюзер! Хотел бы поделиться с сообществом своим небольшим опытом разработки на фреймворке ASP.NET MVC. А именно очень важной частью аутентификации пользователей в приложении. А так же реализации системы безопасности, основанной на ролях.
Данная статья скорей всего будет полезна начинающим программистам, использующим ASP.NET MVC в качестве платформы для разработки. Но возможно и «бывалые» (опытные) пользователи подчерпнут для себя какие-нибудь идеи. Критика, предложения и тому подобное приветствуется. Всех заинтересовавшихся прошу под кат.
Читать дальше →

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

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

1 Введение


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

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

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

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&); //запретить присваивание
};

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

Information

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