В данной статье я расскажу, что такое Eclipse Rich Client Platform, как она работает и с чем ее есть. Прошу обратить внимание, если вы ищите туториал, как создать свою RCP, то вам сюда, я же хочу рассказать как она работает изнутри.
Владимир Пестов @KozzyKoder
User
9-килобайтный скрипт превратит любой браузер с WebRTC в узел распределённой CDN
3 min
26KЧуть больше двух лет назад я написал статью-исследование "Темная материя интернета". Основная идея той статьи — использовать ресурсы миллионов обычных пользователей интернета для того, чтобы снять большую часть нагрузки с веб-сайтов, подобно тому, как в сетях BitTorrent участники помогают друг другу качать файлы. Это могло бы многократно снизить стоимость хостинга, уменьшить зависимость сайтов от рекламы и платных сервисов или пожертвований. Тогда любые попытки реализовать подобную «децентрализованную CDN» наталкивались на необходимость устанавливать специальный софт в виде отдельного приложения или расширения браузера.
Но пару месяцев назад состоялся первый видеозвонок между браузерами Firefox и Chrome, ставший возможный благодаря технологии WebRTC. Вместе эти браузеры имеют долю рынка почти в 60%, а значит всё необходимое, чтобы стать узлом P2P-сети, у большинства пользователей интернета есть уже сейчас или появится в ближайшие недели (когда полноценная поддержка WebRTC войдёт в стабильную сборку Firefox).
Стартап PeerCDN собирается использовать новые возможности для создания распределённой CDN для статического контента, воспользоваться которой можно будет, просто включив в код страницы небольшой (9 кб) скрипт. Никаких плагинов, дополнений и дополнительных телодвижений не нужно, всё происходит прозрачно для клиента. Создатели обещают запустить сервис в течение ближайших недель, а пока можно записаться в список рассылки.
Но пару месяцев назад состоялся первый видеозвонок между браузерами Firefox и Chrome, ставший возможный благодаря технологии WebRTC. Вместе эти браузеры имеют долю рынка почти в 60%, а значит всё необходимое, чтобы стать узлом P2P-сети, у большинства пользователей интернета есть уже сейчас или появится в ближайшие недели (когда полноценная поддержка WebRTC войдёт в стабильную сборку Firefox).
Стартап PeerCDN собирается использовать новые возможности для создания распределённой CDN для статического контента, воспользоваться которой можно будет, просто включив в код страницы небольшой (9 кб) скрипт. Никаких плагинов, дополнений и дополнительных телодвижений не нужно, всё происходит прозрачно для клиента. Создатели обещают запустить сервис в течение ближайших недель, а пока можно записаться в список рассылки.
+47
Как я перестал волноваться и стал отдавать метаданные restful API
5 min
18KЕсли вы делаете публичный API, то скорее всего сталкивались с проблемой его документации. Большие компании делают специальные порталы для разработчиков, где можно почитать и обсудить документацию, или скачать библиотеку-клиент для вашего любимого языка программирования.
Поддержка такого ресурса (особенно в условиях, когда API активно развивается) — достаточно трудозатратное дело. При изменениях, приходится синхронизировать документацию с фактической реализацией и это напрягает. Синхронизация состоит из:
Поддержка такого ресурса (особенно в условиях, когда API активно развивается) — достаточно трудозатратное дело. При изменениях, приходится синхронизировать документацию с фактической реализацией и это напрягает. Синхронизация состоит из:
- Проверки, что вся существующая функциональность описана в документации
- Проверки, что всё описанное работает как заявлено в документации
+17
Стив Бланк: Жить ради работы или работать для жизни?
4 min
22KTranslation

UPD: Возможно в статье достаточно очевидные вещи, я понятия не имею как к этому отнесутся разработчики и программисты, но наверное в этом что-то есть. Стив отнюдь не бизнес-тренер, он запустил около 10 компаний и продолжает развивать свои бизнесы, попутно делясь своим опытом.
Итак его мнение насчет совмещения жизни и работы:
+9
Новые инструменты для разработки игр на Windows Phone
3 min
15K
На проходящей в Сан-Франциско конференции GDC был сделан ряд анонсов о новых инструментах для разработки игр на платформе Microsoft. Теперь, помимо существующих средств, таких как DirectX, разработчики могут использовать Unity 3D, Marmalade, Havok.
+15
Pixi.js — 2D движок с прозрачной поддержкой WebGL
1 min
81K
+58
Desktop vs Cloud
1 min
5.5KДано: «чистая» Linux машина.
Задача: создать простое Spring приложение из темплейта и развернуть его на Cloud Foundry.
Решение: На видео. Левая сторона: desktop подход (Maven, Tomcat, JVM, Eclipse...). Правая сторона: cloud, а конкретно, Codenvy.
Видео лучше развернуть на весь экран и смотреть в HD качестве
Предвосхищая критику, сразу же скажу следующее. Это отнюдь не попытка очернить десктоп ИДЕ. Исключительно исследовательский подход. Результат в 1 час — приблизительный и округленный к часу (девелопер, имеющий дело со спрингом и Cloud Foundry, очевидно, справится быстрее). Можно управиться и за 25 минут. А при большом желании и быстрых руках — и вовсе за 15 (будет рекордом, кстати). Все же, в данном аспекте («запрыгнуть на борт») преимущества облака очевидны.
Задача: создать простое Spring приложение из темплейта и развернуть его на Cloud Foundry.
Решение: На видео. Левая сторона: desktop подход (Maven, Tomcat, JVM, Eclipse...). Правая сторона: cloud, а конкретно, Codenvy.
Видео лучше развернуть на весь экран и смотреть в HD качестве
Предвосхищая критику, сразу же скажу следующее. Это отнюдь не попытка очернить десктоп ИДЕ. Исключительно исследовательский подход. Результат в 1 час — приблизительный и округленный к часу (девелопер, имеющий дело со спрингом и Cloud Foundry, очевидно, справится быстрее). Можно управиться и за 25 минут. А при большом желании и быстрых руках — и вовсе за 15 (будет рекордом, кстати). Все же, в данном аспекте («запрыгнуть на борт») преимущества облака очевидны.
-14
Разработка под BlackBerry 10. Начало
3 min
4.6KTutorial
Платформа BlackBerry 10 уже довольно давно привлекает к себе внимание. Решение от RIM оказалось довольно таки интересным, так почему бы не попробовать свои силы на этом поле.
Сегодня мы попробуем запустить простое приложение для BB 10 в симуляторе и посмотрим на это чудо.
Сегодня мы попробуем запустить простое приложение для BB 10 в симуляторе и посмотрим на это чудо.
+13
Частые ошибки при разработке lockfree-алгоритмов и их решения
13 min
61KНа хабре уже было несколько статей про lock-free алгоритмы. Этот пост — это перевод статьи моего коллеги, которую мы планируем публиковать в нашем корпоративном блоге. По роду деятельности мы пишем огромное количество lock-free алгоритмов и структур данных, и этой статьей хочется показать, насколько это интересно и сложно одновременно.

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

Эта статья во многом похожа на эту статью, но в той статье рассматриваются не все проблемы, с которыми можно столкнуться, разрабатывая lock-free структуры данных, и уделяется очень мало внимания решению этих проблем. В этой статье хочется детально остановиться на некоторых решениях, которые мы используем в реальной реализации lock-free структур данных в нашем продукте, и больше внимания уделить оценке производительности.
+146
У iPhone больше уязвимостей, чем у Android, BlackBerry и Windows Phone вместе взятых
1 min
60KКогда дело касается мобильной безопасности, то мы чаще всего обсуждаем Android с его вирусами и троянами, живущими в основном за пределами Google Play Store. Однако новое исследование SourceFire легко показало, что у iPhone больше проблем с безопасностью, чем у Android, BlackBerry и Windows Phone вместе взятых.
Аналитики SourceFire проанализировали уязвимости, записанные в Common Vulnerabilities and Exposures (CVE) и National Vulnerability Database (NVD) за 25 лет. Ив Йунан, ведущий исследователь в Vulnerabilities Research Team компании и автор отчета, говорит, что результаты, касающиеся мобильных платформ, были «удивительными».

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

+51
Браузер Chrome разбудил человека в 3:00 ночи криками монстров
2 min
151KНеприятная история произошла с одним из пользователей браузера Chrome. Полное ужасов изложение событий он опубликовал в баг-трекере Chromium, см. Issue 224182.
Как воспроизвести ситуацию
1. Перед сном посмотрите очередной эпизод сериала «Сверхъестественное» или какой-нибудь другой фильм про зомби на Neflix.
2. После окончания фильма выключите монитор и ложитесь спать. Закройте глаза, расслабьтесь, подумайте о чём-нибудь приятном и погрузитесь в беззаботный мирный сон.
3. Около 3 часов ночи, когда вы только начали получать удовольствие от второго цикла глубокого сна, операционная система Windows может установить несколько апдейтов, которые потребуют перезагрузки компьютера. Конечно, здесь нет никакой проблемы, ведь вы сейчас спите.
+49
GamePlay 3D Framework — лёгкий старт в кроссплатформенную разработку 3D игр
13 min
32KДоброе время суток, уважаемые хабражители!
Прослушав курс по компьютерной графике в университете и вдоволь наигравшись с OpenGL, я решил, что пора бы уже двинуться дальше и попробовать себя в разработке игр. Писать с нуля свой движок, прямо скажем, не очень-то хотелось. Главной целью было скорее посмотреть как это делается, вынести уроки и может быть создать что-то на базе выбранного движка. Беглый поиск показал, что с открытыми кроссплатформенными движками немного туго. У одного проблемы с Linux, Windows или Mac OS, у другого со свежими версиями мобильных ОС, третий почти заброшен… Но я-таки наткнулся на один очень привлекательный экземпляр, о котором и хочу поведать в этой статье.

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

Имя этому фреймворку — GamePlay 3D. Информации о нём на просторах интернета не очень много, чего уж говорить про рунет. Это open source фреймворк написанный на C++ для программирования игр на C++ со всеми вытекающими из этого достоинствами и недостатками. Авторы проекта позиционируют его как универсальный инструмент, эдакий аналог cocos2d для 3D игр. Чтобы начать писать на GamePlay 3D не нужно обладать глубокими знаниями OpenGL, GLSL или математики 3D графики, однако все мы понимаем, что для достижения хорошего результата от этого никуда не деться. Подробности и небольшой пример для старта под катом.
+27
Идентифицировать человека среди 1 500 000 пользователей мобильной связи можно всего по 4 точкам во времени и пространстве
2 min
123K
Анализ базы данных, в которой была собрана анонимизированная информация о времени и месте звонков и СМС 1 500 000 абонентов на протяжении пятнадцати месяцев показал, что для идентификации 95% людей достаточно знать всего четыре пространственно-временные точки.
Всего две точки позволяют различить индивидуальный след половины пользователей, а одиннадцати достаточно, чтобы различить все до единого следы. На иллюстрации слева приведены примеры таких индивидуальных следов. Авторы исследования сравнивают уникальность мобильного следа с отпечатками пальцев — в 1930 году французский пионер криминалистики Эдмон Локард показал, что для идентификации по отпечатку пальца достаточно двенадцати совпадений деталей рисунка.
Таким образом, получив из открытых источников (Facebook, Twitter, Foursquare, LinkedIn и т.п.) всего несколько характерных для человека пространственно-временных точек, можно деанонимизировать абонента мобильной связи среди миллионов записей, не содержащих вообще никакой персональной информации, и отследить все его перемещения.
+124
Eclipse. Улучшенный поиск и подсветка блоков кода
1 min
23K
Устав искать, как улучшить навигацию по коду в эклипсе, и в первую очередь поиск, я почти решился писать свой собственный велосипед, но, к счастью, нашел решение в виде связки двух must-have плагинов — Glance и EditBox.
+32
Новый этап в гонке скоростей JavaScript. Модуль OdinMonkey ускоряет низкоуровневый код в 10 раз
2 min
37KМодуль OdinMonkey — часть движка IonMonkey, отвечающая за оптимизацию и компиляцию низкоуровневого Asm.js — 21 марта был включён в состав сборки Firefox Nightly. Что такое Asm.js? — это подмножество языка JavaScript, позволяющее программировать «на уровне ассемблера» — без динамической типизации и выделения памяти. В каком-то смысле Asm.js аналогичен технологии Google Native Client, только с обратной совместимостью — код, написанный по спецификации Asm.js, является корректным кодом JavaScript и будет выполняться на любом движке, только медленнее, чем при наличии OdinMonkey.
Asm.js позволяет в ряде случаев вплотную приблизиться к производительности нативного кода — программа на Си, скомпилированная в Asm.js, обычно работает всего вдвое медленнее оригинала:

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

+88
Canvas в GIF на Javascript
9 min
24K
Расскажу об особенностях с которыми я столкнулся при сохранении изображения из canvas в GIF.
Тут будут рассмотрены готовые решения и мой собственный javascript код квантизации изображения (то есть уменьшение палитры до 256 цветов). Так же будут затронуты вопросы быстродействия некоторых javascript конструкций.
+62
Обновление Windows Azure: Hadoop, Dropbox, Mercurial, PhoneGap
4 min
6.1K
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.
+4
Настраиваемая авторизация в Asp.Net MVC
9 min
47KПривет Хабраюзер! Хотел бы поделиться с сообществом своим небольшим опытом разработки на фреймворке ASP.NET MVC. А именно очень важной частью аутентификации пользователей в приложении. А так же реализации системы безопасности, основанной на ролях.
Данная статья скорей всего будет полезна начинающим программистам, использующим ASP.NET MVC в качестве платформы для разработки. Но возможно и «бывалые» (опытные) пользователи подчерпнут для себя какие-нибудь идеи. Критика, предложения и тому подобное приветствуется. Всех заинтересовавшихся прошу под кат.
Данная статья скорей всего будет полезна начинающим программистам, использующим ASP.NET MVC в качестве платформы для разработки. Но возможно и «бывалые» (опытные) пользователи подчерпнут для себя какие-нибудь идеи. Критика, предложения и тому подобное приветствуется. Всех заинтересовавшихся прошу под кат.
+10
90 рекомендаций по стилю написания программ на C++
20 min
419KTranslation
От переводчика. Искал в интернете простой и легко применимый гайдлайн по написанию программ на C++. Мне понравился один из вариантов, и я решил его перевести и опубликовать. Если хабрапользователи хорошо встретят этот топик, могу перевести и другие связанные документы, а также гайдлайны по написанию кода от других компаний.
1 Введение
Настоящий документ содержит рекомендации по написанию программ на языке C++.
Рекомендации основаны на установившихся стандартах, собранных из различных источников, личного опыта, частных требований и потребностей определённых проектов, а также почерпнутых из источников (см. ниже).
Но для появления ещё одного списка рекомендаций, помимо указанных источников, есть несколько причин. Основная причина — их излишняя обобщённость, поскольку зачастую требуется задать частные правила (в особенности правила именования). Данный документ содержит комментарии, что делает его более удобным в использовании при проведении ревизий кода, чем другие уже существующие документы. К тому же, рекомендации по программированию обычно вперемешку содержат описания проблем стиля и технических проблем, что не совсем удобно. Этот документ не содержит каких-либо технических рекомендаций по C++, делая упор на вопросах стиля.
+93
Move semantics в C++11 и STL-контейнеры
2 min
78KЭта небольшая заметка о том, как с приходом нового стандарта 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&); //запретить присваивание
};
+64
Information
- Rating
- Does not participate
- Location
- Челябинск, Челябинская обл., Россия
- Date of birth
- Registered
- Activity