Хабрахабр:
К рою описаний мини-компьютеров, начало которому положил 25-долларовый Raspberry, которые соревнуются между собой компактностью и ценой, добавился ещё один экземпляр ? MK802, который имеет одну особенность ? устройство имеет слот для SD-карт при помощи которого можно загрузить альтернативную операционную систему, помимо идущей по умолчанию Android 4.0. Аппаратная начинка MK802 выглядит следующим образом: процессор Allwinner A10 ARM Cortex-A8 с частотой 1.5 ГГц, 512 ОЗУ и флеш-диском объемом в 4Гб. Интерфейсная часть также сравнительно небогата ? Wi-Fi, USB и HDMI. Стоимость устройства ? 74$. Редакторы сайта liliputing.com, используя слот для SD-карт, запустили на MK802 полноценную десктопную версию Ubuntu 10.04, описав процесс установки образа системы на SD-карту и сняли видео работы мини-компьютера. Отмечается, что, хотя запуск тяжёлых приложений, таких как OpenOffice и Firefox занимает довольно много времени, но работают программы сравнительно шустро, без заметных лагов; на видео промежуток между кликом по значку Firefox и его запуском проходит около 8-9 секунд. Посмотреть видео
Java vs. C#? Что может быть лучше вечного спора? Нет, данная статья не посвящена очередному бенчмарку, и даже не является holy war, не стоит даже вопрос: ?кто круче?. Для каждой задачи существует свой инструмент. Сравнивать C# и Ruby, например, не имеет смысла, т.к. их целевое предназначение совершенно разное, да и природа также. Однако именно C# и Java являются наиболее близкими по своей философии. Очень часто коллеги, пишущие на Java, даже не подозревают о многих (!!!) вещах, которые предоставляет (или, наоборот не предоставляет) C#. Если Вам интересно посмотреть на C# и Java без субъективизма, а также узнать внутреннее устройство той или иной возможности, тогда вперед. Читать дальше →
Почти год прошел с момента первого обзора ASUS Transformer TF101. C тех пор гибридный планшет ASUS успел получить обновление до Android 4 и? морально устареть. Компания уже выпустила Slider, Slate, Transformer Prime ? устройства премиум-класса, и вот теперь появился ASUS Transformer Pad 300T (TF300T) ? новое доступное устройство, которое пришло на смену первому Трансформеру. Планшет уже поступил в продажу, а в самое ближайшее время ожидаются поставки новой модели класса hi-end ? Transformer Pad Infinity (и не будем забывать о неведомом Padfone). Скорость выпуска продуктов ASUS поражает ? несколько месяцев назад писали обзор Transformer Prime. Откровенно говоря, TF300T не сильно отличается от Prime: батарея держит чуть меньше, дисплей не такой яркий (10-дюймовый экран имеет 350 nit яркости, а не 600). Оба планшета работают на Tegra 3 под управлением Android Ice Cream Sandwich, обладают практически идентичной 8-мегапиксельной камерой, корпус TF300T, несмотря на пластик, заимствует многие элементы дизайна более дорогого собрата. На этом, казалось бы, обзор можно было бы завершить, но самое интересное, как обычно, вас ждет дальше. Читать дальше →
Многим из нас чуть не ежедневно приходится сталкиваться с недружным строем разнообразных разъёмов для подключения между собой различных устройств. Вспомнить хотя бы многообразие портов на некоторых компьютерах некоторое время назад, когда на одном системном блоке можно было встретить COM, LPT, PS/2, MIDI, USB и FireWire одновременно. По счастливому стечению обстоятельств, COM, LPT, PS/2 и FireWire на современных бытовых компьютерах вымерли, теперь для целей подключения периферии у нас остался только USB. Разнообразной периферии стало больше. А интерфейсов ещё больше. В этом топике я оставлю за кадром беспроводные интерфейсы, а также аналоговые проводные, и расскажу о существующих проводных интерфейсах для передачи дискретных сигналов. Читать дальше →
Часто бывает так, что поставив новую стабильную систему, да ещё и отмеченную как LTS, вам всё равно хочется установить новое ядро (в котором, например, улучшено энергосбережение и наконец-то заработает ваш новый планшет Genius). Патчить и собирать ядро из исходников ? игра, конечно, интересная, но для ленивых пользователей Ubuntu существует готовый репозиторий. Одна беда ? скачивать пакеты и следить за обновлениями придётся вручную. До недавнего времени за обновлениями можно было следить, к примеру, на сайте где ко всему прочему публиковались списки команд для каждой архитектуры, которые можно было просто скопировать в терминал. Но недавно появился скрипт который и послужил мотивом для создания этого очерка. Я искренне верю, что авторы скрипта задавались единственной целью ? перестать публиковать надоевшие списки команд и объяснять в комментариях какая у кого архитектура, но тем не менее скупая мужская слеза покатилась по моей щеке когда я смотрел на его содержимое. Поэтому я решил сделать паузу и вспомнить как же это делалось раньше, когда деревья были большими, а иногда даже бинарными. Читать дальше →
I. Суть проблемы. В список основных предназначений XMLHttpRequest, конечно, не входит запрос HTML, чаще этот инструмент взаимодействует с XML, JSON или простым текстом. Однако связка XMLHttpRequest + HTML хорошо работает при создании расширений к браузеру, которые в фоновом режиме опрашивают на предмет новостей сайты, не предоставляющие для этого почтовую подписку, RSS или другие экономные API или предоставляющие эти сервисы с какими-то ограничениями. При создании нескольких расширений для Firefox я сталкивался с такой необходимостью. Работать с полученным от XMLHttpRequest кодом HTML при помощи регулярных выражений ? способ очень ненадёжный и громоздкий. Получить DOM от XMLHttpRequest можно было лишь для правильного XML. Поэтому приходилось следовать хитрым советам на сайте разработчиков. Однако начиная с Firefox 11 появилась возможность непосредственного получения DOM от XMLHttpRequest, а в Firefox 12 была добавлена обработка таймаутов. Я испытал новую возможность на создании мини-индикаторов новых топиков для двух небольших форумов, и это оказалось очень удобным (50 строчек кода плюс расширение CustomButtons ? вот и готовый индикатор за пять минут, с опросами по таймеру и четырьмя состояниями: нет новостей, есть новости, ошибка и таймаут). Всё работало как часы. Поэтому я попытался убрать из кода своих расширений все прежние костыли и ввести туда новый удобный парсинг. Однако при работе с сайтом rutracker.org возникла странная проблема (тестирование проходит на последней ночной сборке под Windows XP; очень прошу прощения за все косяки в коде и формулировках: у меня нет программистского образования и опыт мой в этой сфере, к сожалению, очень невелик.). Читать дальше →
В комментариях к статье Алгоритмическая неразрешимость ? это не препятствие для алгоритмического ИИ я высказался, в свете того, что Почему-то все зациклились на задачах NP. Но никто почему то не ставит задачи БЫСТРЕЕ решать задачи класса P (вплоть до мгновенного ответа) и намекнул, что проблемы построения ИИ заключаются скорее в принципиальной (непреодолимой) медленности компьютеров построенных по принципу машин Тьюринга. В статье же говорилось о теоретической проблеме алгоритмической неразрешимости на примере задачи останова. Человек решает задачу останова, но делает это с ошибками, вероятность которых повышается с усложнением программ. Способность человека решать алгоритмически неразрешимые проблемы (как массовые проблемы) является крайне сомнительной. Его способность находить решения для отдельных частных случаев ничего не доказывает, ведь это под силу и компьютеру. и вот тут кажется недооценен ?алгоритм? работы человека с нахождением частных случаев. Не под силу это компьютеру, ему не хватает устройства, благодаря которому он мог бы выделять частные случаи. Конечно, в комментариях в этой статье ? многие сразу закодировали эти частные случаи, но речь же идет о том, чтобы компьютер сам это осуществил бы при решении. Представляется, что нахождение частных случаев как минимум принципиально снижает сложность расчетов. Человек упрощая и идеализируя затем переходит к формулированию законов, тем самым переходя на качественно другой уровень. И вот это компьютеру не доступно. Но все по порядку. Читать дальше →
Composer (getcomposer.org) ? это относительно новый и уже достаточно популярный менеджер зависимостей для PHP. Вы можете описать от каких библиотек зависит ваш проект и Composer установит нужные библиотеки за вас! Причём Composer ? это не менеджер пакетов в классическом понимании. Да, он оперирует с сущностями, которые мы будем называть ?пакетами? или библиотеками, но устанавливаются они внутрь каждого проекта отдельно, а не глобально (это одно из основных отличий от старого-доброго PEAR). Кратко, как это работает: У вас есть проект, который зависит от нескольких библиотек. Некоторые из этих библиотек зависят от других библиотек. Вы описываете в своём проекте те библиотеки, от которых непосредственно зависит ваш код. Composer находит нужные версии требуемых библиотек для всего проекта, скачивает их и устанавливает в папку вашего проекта. При создании Composer авторы черпали идеи и вдохновение из аналогичных проектов: npm для Node.js и Bundler для Ruby. Изначально он был спроектирован и разработан двумя людьми Nils Adermann и Jordi Boggiano, сейчас в проекте участвует более двадцати контрибьюторов, Проект написан на PHP 5.3, распространяется под лицензией MIT и доступен на github. Первые коммиты были сделаны апреле 2011 года и на сегодняшний день Composer находится в стадии ?alpha3?. Однако, он уже достаточно стабилен и используется многими популярными PHP проектами (например, Symfony 2). Список проектов использующих Composer можно посмотреть на сайте packagist.org ? это официальный репозиторий Composer пакетов. Кстати, на недавней конференции Devconf 2012 разработчик фреймворка Yii в своём докладе упомянул, что Yii2 скорее всего тоже будет использовать Composer. В этой статье я кратко опишу основные возможности Composer и мы попробуем создать демонстрационный проект использующий Composer для загрузки необходимых библиотек. Все примеры будут доступны на github.com и bitbucket.org. Читать дальше →

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