Search
Write a publication
Pull to refresh
4
0
xRay @xRay

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

Send message

Онлайн просмотр интерактивных 3D-моделей при помощи WebGL

Reading time3 min
Views61K
Доброе время суток!
Несомненно многие из читателей Хабрахабр слышали, видели или даже использовали технологию WebGL. Если быть кратким — это библиотека для аппаратного ускорения интерактивной 3D графики прямо в веб-браузере без установки дополнительных плагинов. Обычно WebGL воспринимается как технология для создания развлекательного контента, например трехмерные многопользовательский онлайн игры. Однако интерактивная трехмерная графика в браузере может пригодиться и вполне для более серьезных профессиональных целей. И пример такого использования уже доступен каждому из нас.
Design Review Quickshare — веб вьювер 3D моделей с использованием облачных технологий. Сразу не терпится сказать, что с его помощью Вы с легкость сможете разместить 3D модель на своей странице!
Читать дальше →

Вышел FlashDevelop 4.0

Reading time1 min
Views7.3K


Замечательная новость для всех flash-разработчиков — буквально пару дней назад вышла финальная версия отличной IDE FlashDevelop 4.0. Те, кто уже знаком с FlashDevelop могут сразу перейти к загрузке новой версии. Остальных хабражителей я приглашаю под кат, чтобы ознакомиться с кратким changelog'ом и описанием основных фич FD4.
Читать дальше →

Импорт кода из Android в основное Linux-ядро

Reading time1 min
Views1.7K
В рамках рабочей группы Linux Foundation CE Workgroup организован проект по «возврату» программного кода из операционной системы Android в стандартную ветку ядра Linux (mainline). Это очень полезный проект, поскольку разработчики мобильной ОС сделали некоторые патчи, которые могут быть полезны для мобильных Linux-устройств, таких как нетбуки и планшеты. Некоторые патчи внесены обратно в ядро, а другие — нет, а ведь тот же патч wakelocks может заметно улучшить энергоэффективность Linux-устройств.

С момента появления Android использовалось ядро Linux 2.6.x, с некоторыми изменениями, внесёнными Google. Версия Android 3.x Honeycomb была основана на ядре Linux 2.6.36. До сих пор эти патчи так и не возвращены обратно в ядро Linux, хотя лежат отдельно на kernel.org.

Инициативу по возврату кода из Android выдвинул председатель рабочей группы Architecture Group из компании Sony Тим Бёрд (Tim Bird). Созданы вики-страница и лист рассылки для обсуждения этого проекта.

Архитектура логирования

Reading time10 min
Views122K
Мой опыт разработки в основном строится вокруг разнообразных сетевых cервисов под Windows и Linux. Я обычно стремлюсь добиться максимальной кроссплатформенности вплоть до бинарной совместимости. И конечно, накопилось некоторое количество стабильных решений связанных с логированием.

Топик написан как продолжение к этой статье и будет полезен в первую очередь начинающим программистам.

Здесь я собираюсь осветить следующие вопросы:
  • Внутреннее свойство логгера и примеры софта который его использует.
  • Объемы, уровни и детализация сообщений лога.
  • Общие правила конфигурации в разработке, в бою и в расследовании.

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

Выбор Pull To Refresh инструмента

Reading time5 min
Views22K
    Недавно столкнулся с проблемой внедрения в проект механизма Pull To Refresh для обновления списков. Ввиду специфичности имеющихся списков (списки разной длины, от 0 до ~100; подгрузка элементов по требованию; набор списков располагается в самописном компоненте, аля ViewPager) это действительно оказалось проблематично. О всех моих изысканиях в данном направлении читайте под катом.
Читать дальше →

Ruby on Rails уже на 3.2, следующая станция 4.0.0.beta

Reading time1 min
Views3.7K
Не покладая рук команда разработчиков Ruby on Rails прокладывает железнодорожный путь к следующим версиям, радуя нас все новыми и новыми плюшками. И вот на днях, Девид (который Heinemeier Hansson) сообщил в блоге новость об очередном обновлении Rails до версии 3.2 RC1, заодно подметив, что версия 3.2 будет последней в третьей ветке и на подходе 4.0.0.beta.
Читать дальше →

Мониторинг прогнозированием, оповещения о потенциальном сбое

Reading time6 min
Views5.6K

Этот пост является продолжением предыдущего. Мониторинг прогнозированием – не стандартный метод мониторинга. Поэтому и оповещения необходимо использовать не совсем стандартные. Рассмотрим, как это делается и почему именно так.
Читать дальше →

Паттерн Наблюдатель: списки и матрёшки из слушателей

Reading time6 min
Views25K
В этой хабрастатье на примере паттернов Наблюдатель и Компоновщик рассмотрено, как применять принципы объектно-ориентированного программирования, когда стоит использовать композицию, а когда наследование. А так же рассмотрено, какие существуют способы повторного использования кода, кроме copy-paste.

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

Почему программисты работают по ночам

Reading time3 min
Views108K
Мозг шимпанзе в лондонском музее наукиСогласно поговорке, программисты — это устройства, преобразующие кофеин в код.

Если спросить первого попавшегося программиста, когда он наиболее продуктивен, — скорее всего, он назовёт ночь. Кто-то пораньше, кто-то попозже. Популярен вариант встать в 4 утра и сделать работу до начала дневной суматохи. А некоторые предпочитают ложиться в 4 утра.

Цель всего этого — избавиться от отвлекающих факторов. Но можно было бы просто закрыть дверь… Что же такого особенного в ночи?

Я думаю, что всё сводится к трём вещам: расписанию творца, сонному мозгу, и яркому экрану компьютера.

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

Autodafé

Reading time3 min
Views1.6K
Autodafe — node.js фреймворк для разработки веб приложений

Содержание статьи может описывать неактуальный код. У фреймворка уже давно свой сайт autodafe.ws

Самые вкусные плюшки из коробки:


  • архитектура: MVC + подключаемые модули
  • Mysql ORM (ActiveRecord с поддержкой отношений, асинхронное подобие того, что предлагает Yii framework для PHP )
  • HTTP сервер
  • WebSockets ( обертка для socket.io )
  • удобное перенаправление запросов и человеко понятные УРЛ
  • управление пользователями
    • аутентификация и авторизация, сессии
    • система управления правами ролей пользователей
  • почта
  • логирование в консоль, фс и на почту
  • шаблонизатор

Ложка дегтя:


  • очень малая часть задокументирована
  • задокументированная часть плохо задокументирована
  • плохо задокументированная часть задокументирована только на русском языке
  • тестами покрыт не весь фреймворк


Hello World на Autodafe

Простые и умные формы для получения Яндекс.Денег

Reading time1 min
Views6.6K
Вчера благотворители и краудфандеры начали собирать Яндекс.Деньги в Facebook, а сегодня в распоряжение жителей интернета поступают и вовсе универсальные кнопки и платежные формы. Их можно разместить на своих сайтах и блогах, настроив любым удобным для вас образом.
Читать дальше →

Evernote Clearly теперь доступен и для Firefox

Reading time1 min
Views2.3K

Evernote Clearly, наше расширение для браузера, которое позволяет создавать комфортные условия для чтения статей и блогов в Интернете, теперь доступно и для Firefox.

Установить Evernote Clearly »
Читать дальше →

Запущена бета новых «Рамблер-Новостей»

Reading time1 min
Views7.3K
Вчера вечером мы сделали публичной и начали тестировать бета-версию наших новых «Рамблер-Новостей».



На beta.news.rambler.ru можно увидеть, как будут выглядеть новости на «Рамблере» уже совсем скоро — в нашем новом фирменном стиле и с новыми интерфейсами.
Читать дальше →

Про ICQ

Reading time5 min
Views9K
В прошлом году холдинг Mail.ru Group (не путать с почтовым сервисом Mail.ru) купила ряд крупных проектов, среди которых оказалась небезызвестная «аська», она же ICQ. На днях с рядом коллег мне удалось побывать на родине легендарного «о-оу» — в самое ближайшее время ждите обзор их израильского офиса. А пока — немного информации из беседы с руководством проекта ICQ.



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

Эмуляция события вызова функции

Reading time2 min
Views5.4K
Около полугода назад мне задали примерно такой вопрос: “Я использую крупный фреймворк, запускающий некую функцию по действию пользователя. Хочу, не меняя кода этой функции, выполнить по событию вызова этой функции свой код.”. Практика далеко не лучшая, события вызова функции не существует, я просто покрутил пальцем у виска и сказал, что это жуткий говнокод, так делать не стоит, да и это, просто-напросто, — невозможно.

Пару дней назад, направляясь домой относительно тёплым зимним вечером, не типичным для Одессы, у меня возникла нетипичная мысль: “А что если попробовать сделать то, что спрашивал Богдан полгода назад?”. Придя домой, я включил компьютер, и, в течении пары минут, сделал то, что задумал. В первую очередь, меня интересовало то, как будут себя вести встроенные методы, если их переопределить, и можно ли после этого как-нибудь вызвать прежнее их состояние, бывшее до переопределения. Я знал, что, если объект переопределяют, то ссылки на него не уничтожатся, сохраняя прежний вид. Что касается встроенных функций, имелись сомнения. Оказывается, можно.

Скорее всего, мне даже никогда не придется воспользоваться таким инструментом, но, чисто гипотетически, возможно, у кого-то возникнет задача проследить вызов той или иной функции, получив отчет о каждом вызове, состоящий из:
  1. Результата выполнения
  2. Переданных аргументов
  3. Контекста вызова (что есть this при вызове)
  4. Количества вызовов функции после создания обработчика

(Этот список полностью соответствует аргументам, передающимся в обработчик)
Очень мало буков

Включение общей адресной книги в Zimbra

Reading time3 min
Views46K
В нашей компании в качестве почтового сервера используется Zimbra Collaboration Server. И хотя при наборе адреса подходящие имена автоматически подставляются в адресное поле, однажды была поставлена задача сделать общую адресную книгу на базе GAL (global address list). Преимущество такой книги в том, что она всегда является актуальной, операции над акаунтами (удаление/добавление/редактирование) автоматически применяются к книге и отображаются у всех пользователей. В принципе задача не сложная, но как оказалось несколько заковыристая. Поэтому я опишу весь процесс, дабы помочь тем, кто столкнется с подобным. А также приведу примеры исправления возможных ошибок.

Описание касается Zimbra Coloboration Server версии 7.1.x установленной на Ubuntu server. Описывается настройка GAL в режиме «Внутренний». Использованы материалы из статьи GAL Sync Account, а также Zimbra forum
Читать дальше →

Яндекс крадёт мобильный трафик у вебмастеров?

Reading time1 min
Views839
Вы уже могли читать вот этот пост в блоге Яндекса, написанный как всегда толково и задорно.

Позвольте зацитировать наиболее обеспокоившие меня фрагменты:

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

… специальная кнопка. Нажав на неё, вы сразу увидите больше информации с сайта. То есть с большей вероятностью найдёте ответ, не загружая найденную страницу


Так-так. То есть пока Гугл рассылает письма с текстом, мол, «чувак, скоро мобильный трафик будет больше обычного, вот тебе специальный мобильный Адсенс», Наше Найдётсявсё вдруг с прежней энергией и искрящейся заботой о пользователях решает, что оно может показать на телефоне кусочек контента с сайта, а вебмастер при этом раскладе должен получить ноль переходов, ноль показов баннера своего рекламодателя. Ну или ноль показов того же Адсенса или Директа. То есть — как ни кинь, всюду ноль.
Зато теперь пользователь может узнать сколько глаз у пчелы, не тратя трафик: ведь это время и деньги! Какие лапочки.

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

Установка Redis + Redis PHP + phpRedisAdmin на боевом сервере за 15 минут

Reading time4 min
Views71K
Всем уже давно известно, что самые лучшие бинарные файлы — это те, которые были скомпилированы именно на этом компьютере. И, когда вопрос заходит о производительности, то компилирование компонентов на этом компьютере даст свое преимущество в скорости и стабильности.

В данной статье речь пойдет о том, как подготовить Redis, phpredis (С модуль для php) и phpRedisAdmin для работы на боевом сервере.

Для того, чтобы собрать все полноценно, нам нужно иметь на сервере:
  • gcc 4.5.2 (Я компилировал под этой версией, но думаю, что с другими проблем не возникнет)
  • Make 3.81 (Опять же, версия не принципиальна)
  • php5-dev (Версия должна совпадать с версией php)


После того, как мы убедимся, что все зависимости удовлетворены, начинаем собирать все компоненты.
Нам потребуются:
  • Redis 2.4.4 Stable
  • phpredis 2.1.3
  • phpRedisAdmin

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

Гипербург — трехмерный вариант игры «Каркассон»

Reading time5 min
Views2.4K
Недавно на одном из форумов, посвященных многомерным пространствам, был задан вопрос: «А какие игры реализованы в нетривиальных пространствах, в частности, нет ли где реализации игры Каркассон на плоскости Лобачевского?» Вопрос мне показался интересным, тем более, что про эту игру я ни разу не слышал.

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

Понятно, что простор для обобщений в сторону нетривиальной геометрии огромен. Можно вместо квадратных карточек разработать треугольные или шестиугольные. Можно укладывать квадратные карточки на поверхность куба (появится 8 особых точек, в которых сходятся 3 а не 4 карточки, но это не очень принципиально). Можно нарисовать на плоскости Лобачевского квадратную сетку, в каждой вершине которой сходится 5 (или 6, или бесконечно много) квадратов. А можно заменить квадратные клетки на кубические и строить карту в пространстве.

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

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

Тёмная сторона ContentProvider'ов

Reading time2 min
Views13K
ContentProvider — класс Android для обмена данными между приложениями. Именно так и написано в явадоках: A content provider is only required if you need to share data between multiple applications. Но кто же читает документацию, пока всё работает? Очевидно, только тот, кто набил достаточно шишек, наступая на всевозможные грабли.

Итак, в этой заметке я хотел бы поделиться своим негативным опытом использования ContentProvider'ов в качестве источника данных внутри приложения. Почему же собственно их использование для доступа к данным внутри программы неоправданно?
Читать дальше →

Information

Rating
Does not participate
Registered
Activity