воскресенье, 1 мая 2011 г.

Хабрахабр

КупиКупон - скидки от 50% до 90%

Хабрахабр:



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


На днях получил комментарий от Google по поводу того как кодировать Webm для Android и планируется ли делать какие-либо presets, чтобы видео игралось наверняка. Вот что я получил в ответ: Большинство текущих декодеров в Android реализованы программно и поэтому не справятся с воспроизведением HD видео. Мы рекомендуем использовать обычный 360p preset, распространяемый с нашими патчами для ffmpeg. Наши тесты показали, что 480p файлы воспроизводятся на некоторых девайсах. Как только у нас будут готовы 480p presets, мы, как обычно, их выложим. Что за патчи имеют ввиду разработчики? Так как в текущей реализации ffmpeg поддерживаются не все возможности libvpx, команда webm выкладывает патчи, добавляющие presets и полноценную поддержку библиотеки (маппинги команд кодировщика). Последнюю версию патчей можно взять отсюда: http://code.google.com/p/webm/downloads/list 360p пресет, о котором шла речь выше, используется через параметр -vpre ffmpeg -i "$inputFileName" -s 640x360 -vpre libvpx-360p -b 500k -acodec libvorbis -aq 2 -ac 2 -ar 44100 -f webm -threads 12 -y "$finalName"


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


Недавно задали задачку ? написать систему онлайн консультаций для сайта. Чтобы просто и понятно, без наворотов. Что требовалось: Посетителю не нужно регистрироваться, чтобы задать вопрос Логи переписки должны храниться сколько угодно Желательно, чтобы логи были в админке MODX Конечно, пользоваться этим должна быть способна любая блондинка Побольше ajax, чтобы без перезагрузок страницы Короче, получается по сути, аська на Ajax+MODX. Сразу покажу, что получилось (слева ответы, справа вопросы): Читать дальше →


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


Предыдущая часть Вот вы и создали полноценные страницы для вашего приложения. Теперь вы, наверно, захотите заполнить их различными данными. В этой части вы узнаете: Как привязать данные к пользовательскому интерфейсу. Как Visual Studio может помочь вам создать привязки к данным. Как отображать данные в списке. Как работать с более сложными сценариями привязки. Читать дальше →



? При разработке многих Android-приложений требуется организовать процесс синхронизации данных с данными на сервере. Есть два основных способа как данную синхронизацию можно реализовать. Первый способ ? классический (наиболее популярный и наиболее простой) ? с помощью AlarmManager и Service. Например, как описано в этой статье. Второй способ ? ?правильный? (но пока что, видимо, редко кем используемый) ? с помощью SyncAdapter. Разрабатывая своё приложение, изначально я попытался реализовать ?правильный? (т.е. второй способ). Читать дальше →




Американский комитет Accredited Standards Committee X9 в апреле 2011 года утвердил использование самого быстрого алгоритма асимметричного шифрования NTRU (NTRUEncrypt). Удивительно, но широкая публика раньше ничего не слышала о таком алгоритме, а вот он уже становится технологическим стандартом для финансовых транзакций, причём демонстрирует быстродействие на пять порядков быстрее RSA. Например, графический процессор GTX280 может осуществлять до 200 000 операций в секунду шифрования 256-битным ключом NTRU. Это уже сравнимо скорее с симметричными ключами, например, это всего в 20x медленнее AES. Читать дальше →



Ола, амигос! Недавно в топике Мешок банальных советов комментатор alexanderyastrebov предложил простой способ запустить простой http-сервер с помощью 1й строчки в консоли. Я решил попробовать найти, можно ли на нем запускать еще и питоновские скрипты, и вы, читая этот топик, наверное, уже догадались, что можно. Сам сервер запускается одной коммандой: python -m CGIHTTPServer Как вы можете видеть, по умолчанию он использует 8000й порт и предоставляет доступ к текущей директории терминала. Но скрипты должны запускаться из папки ?cgi-bin? текущей директории. Например так: localhost:8000/cgi-bin/helloworld.py Спасибо за внимание, удачного тестирования скриптов!


Реализованное нами в прошлый раз атомарное умножение является примером более общей модели, которую Реймонд назвал ?сделай, запиши,(попытайся снова)?. for (;;) { // берём начальное значение общей переменной, // которую мы собираемся изменять oldValue = sharedVariable; ... берём начальные значения других параметров ... newValue = ... вычисляем новое значение, используя oldValue и копии остальных параметров ... // вместо Xxx может быть Acquire, Release, или ничего if (InterlockedCompareExchangeXxx( &sharedVariable, newValue, oldValue) == oldValue) { break; // запись удалась } ... удаляем newValue ... } // попытаемся снова Мы вычисляем новое значение, и затем вызовом InterlockedCompareExchange записываем его в общую переменную только в том случае, если её значение не изменялось. Если оно изменилось, значит другой поток нас опередил; в этом случае попытаемся выполнить операцию по-новой, с самого начала, ? в надежде, что в следующий раз никто нас не ?подрежет?. Читать дальше →


Во время работы над крупными проектами с множеством макетов и видов объекта даже минимальное изменение в повторяющемся компоненте может потребовать времени. Проход по множеству макетов и подстройка цвета или начертания у подобного повторяющегося элемента может стать изнуряющим делом. Конечно же, если у вас есть подмастерье, выполняющий всю грязную работу за вас, то вы, определённо, везунчик, но что же делать нам, фрилансерам? Неужели нам остаётся лишь сносить эту му?ку? Что ж, теперь нет! Недавно я обнаружил подход, который позволит дизайнерам распрощаться с открытием 23 PSD-файлов только ради смены цвета элемента в шапке. Вместо этого мы можем поступать разумно, как наши коллеги, разработчики, и импортировать внешние файлы при помощи кое-чего с названием ?Variables (Переменные)?. Сие позволит поместить многократно используемый компонент в отдельный файл и просто импортировать его во все макеты. Теперь, когда нам понадобится внести изменение, мы будем просто вносить его в одном месте. Читать дальше →



Не секрет, что работу с профилями пользователей в Django иначе как несчастьем не назовёшь. Все мы сталкивались с монолитностью модели auth.User, неадкеватным набором полей у неё, а также всеми теми ухищрениями, к которым приходилось прибегать. Извращаться приходилось всем: не только пользователям джанги, но и самим её core-разработчикам. Помните, например, как в Django 1.2 внезапно стало возможно использовать в поле username символы собаки (@) и точки? Знаете зачем? Чтобы в качестве логинов можно было использовать адреса e-mail. Нам, простым пользователям, тоже жилось несладко. Для того, чтобы изменить профиль пользователя, добавив ему какие-нибудь интересных полей ? обычная, казалось бы, вещь, да? ? приходилось действовать разными способами. Интересно?


Собственно, захотелось мне посмотреть на Unity. По картинкам и видео ? вроде ничего. Да вот беда. В виртуальной машине его не запустишь ? 3D требует. Сам я KDEшник. Основной ОС на ноутбуке является kubuntu. Ну, думаю, можно поставить второй системой. Свободное место, вроде, есть. Ок. Качаю образ Natty, прожигаю а вот хрен. Оказалось, не работает мой CD-ROM. Ноут уже довольно старенький. Загрузки с флешек в биосе тоже нет. После кратковременной паники было найдено решение. Оказалось, что grub2 научился понимать формат ISO 9660 и может загружать ОС прямо из ISO-образа, расположеного на жестком диске. Как выяснилось далее, не все системы готовы к такому повороту событий. Многие по тем или иным причинам приходят в замешательство при загрузке. К счастью, Ubuntu не является одной из них. Читать дальше →


Отписаться от этой рассылки

Комментариев нет:

Отправить комментарий