Как стать автором
Обновить
0
Руслан Мезенцев @RMiBread⁠-⁠only

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

Отправить сообщение

Оптимизация расхода батареи

Время на прочтение5 мин
Количество просмотров23K
image

Введение


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

Bacula: realtime filesets на Windows-клиентах

Время на прочтение3 мин
Количество просмотров5.3K

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

Ограничение, с которым я столкнулся, это невозможность задавать ограничение на размер файла. Но зато bacula поддерживает получение списка файлов через pipe от команды, которая может выполняться как на клиенте, так и на сервере. Подробнее читайте здесь.

Итак, поехали.
Читать дальше →

Готовим Linux на Asus U31SD/P31SD и подобных

Время на прочтение6 мин
Количество просмотров17K

После приобретения обновки в виде Asus P31SD и последующей установки на него Linux было очень обидно увидеть всего 6 часов автономной работы вместо желаемых 10-12. На Windows обратно вернуться не удалось (тут даже cywgin не помог), поэтому было решено запастись кофе и занять ближайшие выходные решением этих проблем.

Рассматриваем решение на примере Ubuntu 11.10.

P.S. В теории гайд подходит для всех ноутбуков с Sandybridge и Nvidia Optimus.
Читать дальше →

uWSGI включает полноценную поддержку PHP

Время на прочтение2 мин
Количество просмотров7.6K
uWSGI logo

Сегодня появилась приятная новость о том, что отныне uWSGI сервер поддерживает PHP. Нет, на уровне GGI он поддерживал и раньше, но это не идёт ни в какое сравнение с поддержкой на уровне ядра самого uWSGI.
Читать дальше →

Github выпустил сервер непрерывной интеграции на базе Jenkins

Время на прочтение1 мин
Количество просмотров8.6K
Github выпустил сервер непрерывной интеграции проектов Janky, сделанный на базе Jenkins под управлением CoffeeScript-бота Hubot. Фактически, Janky — это просто интерфейс для работы с Jenkins через скрипты и команды Hubot.

Разработка ПО методом непрерывной интеграции (continuous integration, CI) предусматривает выполнение частых автоматизированных сборок проекта для скорейшего выявления и решения интеграционных проблем. Например, сборка из репозитория может проводиться каждую ночь по расписанию, с автоматическим прогоном тестов, так что каждое утро разработчики видят результаты тестирования. Такой метод приучает и программистов работать эффективнее, в итеративном режиме с более коротким циклом.

Понятно, что Github как нельзя лучше подходит для работы в режиме непрерывной интеграции. Система Janky заточена на использование Github, в том числе она создаёт соответствующие web-hook’и, а также может ограничивать доступ для сотрудников организации на Github.

Сервер Janky сделан на основе известной системы Jenkins (Hudson). Использование бота Hubot придаёт Janky особый шарм, управление сервером осуществляется с помощью простых команд.

Что такое искусственные нейронные сети?

Время на прочтение10 мин
Количество просмотров126K
Искусственные нейронные сети применяются в различных областях науки: начиная от систем распознавания речи до распознавания вторичной структуры белка, классификации различных видов рака и генной инженерии. Однако, как они работают и чем они хороши?

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

Критическая уязвимость Windows 7 x64: BSOD и компрометация системы

Время на прочтение1 мин
Количество просмотров8.9K
image

Известный хакер webDEViL опубликовал в своем твиттере сообщение о том, что специальным образом сформированная web-страница (суть ясна из скриншота), содержащая iframe и просматриваемая браузером Safari, вызывает BSOD-ошибку в системе и позволяет злоумышленнику выполнить произвольный код на атакуемой системе.

Наличие уязвимости обусловлено ошибкой в файле win32k.sys, который уже ранее был неоднократно отмечен в качестве виновника критических ошибок в Win XP. Успешная эксплуатация приводит к выполнению кода с привилегиями уровня ядра системы.

Уязвимости подтверждена 64-битная версия Windows 7, однако и другие системы могут быть скомпроментированы.

Патча на данный момент не существует.

[Источник]

UPD: хабрапользователь KollinZ снял видео, иллюстрирующее уязвимость.

Посмотреть видео

Собираем GNU Emacs для Ubuntu

Время на прочтение6 мин
Количество просмотров6.5K
Вопросы связанные с администрированием ОС лежат вне области моих интересов, поэтому когда возникает необходимость решить один из таких вопросов, я сначала стараюсь найти краткое howto, если же ничего не найдено, сажусь за чтиво руководств, которые после решения проблемы благополучно забываю. Поэтому для редко решаемых, но всё же время от времени возникающиx проблем, я пишу себе шпаргалки. Эта статья — одна из них. Чем она в большей мере является: «quick'n'dirty создание deb пакета» или «кратко о сборке emacs.deb» — судить не берусь, подойдёт как в качестве одного так и другого. Ниже описана сборка GNU Emacs 24.0.92 из исxодных кодов в Ubuntu 11.10.
Читать дальше →

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

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

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

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

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

Знакомство с мнемоникой

Время на прочтение6 мин
Количество просмотров99K
Введение

Доброго времени суток! Сразу оговорюсь, что цель этой статьи — познакомить и, возможно, заинтересовать вас такой штукой, как мнемоника. Мнемоника — наука о запоминании. То бишь совокупность способов и уловок, которые помогут вам запомнить большие объёмы информации в правильной последовательности (Например, 100 случайных слов (чисел) можно запомнить последовательно с интервалом в среднем в 6 секунд). Некоторые умудряются запомнить несколько тысяч цифр после числа Пи. Так же мнемотехника помогает в освоении иностранного языка ). Но нам пока рано об этом думать. Вы спросите:«Зачем мне ета ваша мнемоника?». Я отвечу: вы можете использовать её не только как хобби (от простого облегчения жизни, до того, что можете удивлять друзей, предложив с ними поочерёдно запомнить N информации поочерёдно), но и участвовать в соревнованиях (да-да, есть соревнования по запоминанию, где участвуют не прирождённые гении, а люди, натренировавшие себе память).
Читать дальше →

Работа с бинарными файлами в стиле STL

Время на прочтение6 мин
Количество просмотров31K
Я хотел бы рассказать о решении одной задачи, возникшей в процессе обучения старших школьников и младшекурсников программированию. Естественно, пишу я об этом, потому что считаю, что этот опыт может быть интересен более широкой аудитории.
Читать дальше →

Анализ keygenme от TPoDT #2

Время на прочтение5 мин
Количество просмотров2.8K
Всем доброго дня.
Это снова я, и снова несу темы reverse engineering в широкие массы. Так как, по некоторым причинам, я не могу освещать в своих статьях анализ коммерческих протекторов или программ, поэтому на сегодня нашим подопытным кроликом будет keygenme от группы T.P.o.D.T. Не сказать, что сложный, но пару часов не жалко было потратить на него.
Читать дальше

Работа с моделями и делегатами на примере создания списка аля FireFox

Время на прочтение8 мин
Количество просмотров27K
Не раз проскакивали сравнения сложности построения интерфейсов на Qt. В данной статье приведу пример, как можно сделать список в стиле списка модулей FireFox.



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


Весь процесс разделим на 3 части:
  1. создание модели
  2. создание делегата
  3. создание представления


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

Работа с памятью (и всё же она есть)

Время на прочтение13 мин
Количество просмотров108K
Существует распространенное мнение, что «рядовому» PHP разработчику практически не нужно заботиться об управлении памятью, однако «заботиться» и «знать» всё же немного разные понятия. Попытаюсь осветить некоторые аспекты управлению памятью при работе с переменными и массивами, а также интересные «подводные камни» внутренней оптимизации PHP. Как вы сможете убедиться, оптимизация это хорошо, но если не знать как именно она «оптимизирует», то можно столкнуться с «неочевидными граблями», которые могут вас заставить изрядно понервничать.

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

Исследование производительности сервера SockJS

Время на прочтение4 мин
Количество просмотров14K
Доброе время суток!

Так уж сложилось, что я занимаюсь всякими разнообразными push технологиями с использованием Tornado. Чуть ранее описывал Tornadio2, серверную реализацию протокола socket.io поверх Tornado.

Теперь хочу представить похожий проект — sockjs-tornado.

Для тех кому не очень интересно, есть другая полезная информация: сравнительное нагрузочное тестирование PyPy 1.7 против CPython 2.6.6, sockjs-node и socket.io (оба на node.js 0.6.5). Все под катом :-)
Читать дальше →

XNA Draw: пишем отложенное освещение на три источника с помощью шейдера

Время на прочтение7 мин
Количество просмотров19K
Привет хабравчанам!

Давненько я не писал на хабр: учеба, сессия надвигается, сами понимаете. Сегодня я попробую рассказать, как в XNA реализовать Deferred Lighting (отложенное освещение) с использованием normal mapping на три источника света, при этом использовать мы будем Reach-профиль и Shader model 2.0.
Напомню, раньше мы уже затрагивали тему шейдеров: тут. Остальное под катом, видео и демо там же.
Читать дальше →

Краткий обзор современного инструментария для начинающего разработчика Drupal

Время на прочтение6 мин
Количество просмотров5.4K
Относительно недавно в Москве проходила конференция DrupalConf'2011, на которой я рассказывал про инструменты для начинающего разработчика Drupal.

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

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


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

Рендеринг замедленной съёмки на основе отдельных кадров

Время на прочтение2 мин
Количество просмотров11K
Теперь нам не нужна высокоскоростная камера, чтобы делать замедленную съёмку. Швейцарский программист и дизайнер Саймон Югстер (Simon A. Eugster) выпустил замечательный видеоредактор slowmoVideo для рендеринга замедленной съёмки (slow motion) на основе отдельных кадров. Можно использовать slow motion как художественный эффект — чтобы подчеркнуть какой-то момент на видео. Или можно генерировать целые видеоролики на основе ограниченного количества кадров. Например, вы даёте на входе 24 кадра, а программа генерирует 240.



репозиторий git

Инструкция по установке необходимых библиотек и компиляции здесь. К сожалению, программа работает только на картах nVidia из-за использования библиотеки V3D (GPU-KLT+FLOW).

UI, скринкаст и образцы проектов

Mozilla приглашает разработчиков протестировать экспериментальную версию магазина приложений

Время на прочтение1 мин
Количество просмотров625
image
Mozilla Foundation начала воплощать в жизнь свою идею создания магазина кроссбраузерных приложений на открытой платформе, о планах создания которой было сообщено в начале этого года.

Сама по себе концепция приложений, выполняющихся в браузере, и их магазин уже воплощена главным конкурентом Mozilla — Google в браузере Chrome. Тем не менее, задались вопросом разработчики Mozilla, если строить приложения на основе HTML5, JavaScript и CSS, то почему же стоит ограничивать возможность распространять приложения только одним браузером?

Проект Mozilla Labs Apps дорос до определенного уровня, и Mozilla приглашает всех желающих разработчиков присоединиться к числу тестеров. Уже готовы инструменты и техническая документация на MDN Apps Developer Community, оценить будущие приложения и внешний вид магазина можно здесь, а желающие помочь проекту с тестированием могут присоединиться к команде могут сделать по этому адресу.

В конечном счете проект лаборатории Mozilla стремится создать развитую экосистему магазинов для реализации приложений, в том числе для рынка приложений Mozilla на HTML5. Все эти грандиозные планы компания намерена осуществить в 2012 году.

[Источник]

Учебный курс по разработке для Android от Google

Время на прочтение1 мин
Количество просмотров8.4K
image
Желая привлечь еще больше разработчиков, в Google приняли решение организовать самостоятельно специальную программу для обучения программированию под свою мобильную платформу.

Обучающая программа носит название Android Training и уже доступна желающим. Надо сказать, что диапазон тем программы весьма разный: начиная от азов, таких как работа с Layout — затем рассматриваются такие темы как работа с аудио, фото, оптимизация работы батареи — заканчивая вопросами монетизации приложения. Статьи, конечно, сопровождаются инфографикой и примерами кода, а сам ресурс, как обещает команда Android Team, будет развиваться и дополняться.

Думается, что перевод программы Android Training на русский язык может стать одним из лучших руководств по разработке для Android.

Пост-анонс можно посмотреть здесь.

[Android Training]

Информация

В рейтинге
Не участвует
Откуда
Тюмень, Тюменская обл. и Ханты-Мансийский АО, Россия
Дата рождения
Зарегистрирован
Активность