Сотовой телефон «сделай-сам»
САБЖ
http://hlt.media.mit.edu/?p=2182
Исходный код, файлы интегральной схемы и разводки (Eagle), а также дизайн корпуса (Inkscape) доступны по адресу:
САБЖ
http://hlt.media.mit.edu/?p=2182
Исходный код, файлы интегральной схемы и разводки (Eagle), а также дизайн корпуса (Inkscape) доступны по адресу:
кто может по-человечески объяснить какого в гугле закардкодили размер для ШГ в интерфейсе?
неужели так сложно в гытыка слабадь поддержку системных конфигов!?
для нормальных размеров ШГ в заголовках(в закладках тоже) пришлось патчить
с какого?
Вот очень странный и невероятно крутой хак: trapcc - вычисление без единой инструкции CPU.
Авторы продемонстрировали, что механизм трансляции адресов на архитектуре x86 обладает полнотой Тьюринга, т.е. с его помощью можно реализовать любой алгоритм. С помощью хитрой настройки различных контрольных таблиц, которыми пользуется процессор, они вводят процессор в состояние, в котором он не может выполнить ни одной инструкции, т.к. непрерывно происходят исключения, но разные исключения в зависимости от приготовленных данных - и таким образом процессор вычисляет!
Известно, что одной инструкции условного перехода по вычитанию (вычисли a = a-b, и если это меньше или равно нуля, перейди в c) достаточно для Тьюринг-полноты. В этом хаке такая инструкция симулируется с помощью последовательности page faults (от невозможности загрузить данные), которая заканчивается double fault (когда указатель на стек уменьшается ниже нуля).
Несколько более подробное объяснение - в этом комментарии.
Любопытно, что ни один существующий эмулятор x86 не мог правильно запустить этот хак, потому что он опирается на слишком извращенную конфигурацию контрольных таблиц, и на тонкие нюансы поведения процессора в этой извращенной конфигурации. В итоге они смогли подстроиться под эмулятор Bochs.
Как ни странно, у всего этого даже есть практические применения, правда, в области, которая ничего хорошего и полезного миру не приносит - обнаружение того, что программа бежит под отладчиком или в виртуальной машине. Ну а так - это просто неимоверно круто и красиво.
Тут знакомый парсил ямловский файл на несколько мегабайт, и получил странные результаты
js-yaml (https://github.com/nodeca/js-yaml) - около 1 секунды
ruby/python нативные биндинги к libyaml - около 30 секунд
Колесо пинал, дверь хлопал, гудок жал, глаза протирал. Прошу подтвердить. Я был в курсе, что pyyaml не до конца вменяем, но насчет libyaml не подозревал.
Данные https://gist.github.com/anonymous/5028302
Запускался просто импорт, с разными библиотеками.
time ruby -r yaml -e "YAML.load_file 'data.yml'"
time ruby -r psych -e "Psych.load_file 'data.yml'"
time python -c "import yaml; yaml.load(open('data.yml'))"
time js-yaml -j data.yml > /dev/null
time ruby -r syck -e "Syck.load_file 'data.yml'"
Update
После разбора и улучшений выяснилось, что libyaml медленнее «всего лишь» в 2-4 раза нативного JS. Оказывается, у поциента не открытый, а закрытый перелом. Что не снимает вопроса «какого хрена?»
time js-yaml -j data.yml > /dev/null
real 0m1.420s
user 0m1.272s
sys 0m0.148s
то же самое, но без cli:
time node -e "var yaml=require('js-yaml'), text=require('fs').readFileSync('data.yml', 'utf-8'); yaml.load(text);"
real 0m0.984s
user 0m0.940s
sys 0m0.040s
нода с libyaml:
time node -e "require('libyaml').readFileSync('data.yml');"
real 0m3.424s
user 0m3.300s
sys 0m0.136s
питон с libyaml:
time python -c "import yaml; from yaml import CLoader as Loader; yaml.load(open('data.yml'),Loader=Loader)"
real 0m5.530s
user 0m5.268s
sys 0m0.212s
Perl (хм, неплохо, перепроверил)
time perl -MYAML::XS -e 'YAML::XS::LoadFile "data.yml"'
real 0m0.484s
user 0m0.456s
sys 0m0.024s
PHP (ну раз перл быстрый, наверное и PHP может быть)
time php -r 'yaml_parse_file("/Users/olegchiruhin/Documents/data.yml");'
php -r 'yaml_parse_file("/Users/olegchiruhin/Documents/data.yml");'
0,49s user
0,04s system
99% cpu
0,537 total
В рубях 2.0 ~ как в питоне, 6 секунд.
syck в рубях (не полная реализация, биндинги) - 0.9 секунд
java (snakeyaml) - 1.7 секунды без прогревва и 0.9 с прогревом ( А давайте померяемся (комментарий) и А давайте померяемся (комментарий) )
JSON node.js (просто для сравнения)
time node -e "var text=require('fs').readFileSync('data.json', 'utf-8'); JSON.parse(text);"
real 0m0.265s
user 0m0.152s
sys 0m0.040s
Итого
Даже в php/perl, где (возможно) дешевое создание объектов или качественные биндинги, профит от libyaml всего в 2 раза. По сравнению с чистым яваскриптом, который еще не до конца оптимизирован.
Что-то тут не так.
Поискал по форуму, кажется, эта тема еще не обсуждалась.
После нескольких веселых дыр в рельсах и свежей дыры в макоси, вот еще одна эпичная дырка, которая сейчас обсуждается в рунете. При том она особенно эпична тем, что затрагивает не конкретное ПО, а неограниченно широкий класс программ.
!Ъ:
http://avva.livejournal.com/2548306.html
http://users.livejournal.com/_winnie/375276.html
Ъ:
Прикольно - оказывается, инструкция idiv, деление со знаком, на x86 кидает исключение не только при делении на ноль, но и когда результат не помещается в регистр. А этого очень легко добиться, написав в C например INT_MIN / -1. Как мы помним, INT_MIN по модулю на единицу больше, чем INT_MAX; например, в 32-битных числах INT_MIN равно -2147483648, а INT_MAX равно 2147483647. Поэтому когда INT_MIN делят на -1, положительный результат не вмещается в 32 бита.
Само по себе это не катастрофа - ну кидает исключение, ну и подумаешь. Дело в том, однако, что про деление на ноль все знают и помнят, и проверяют перед попыткой делить. А против INT_MIN/-1 никто практически не защищается. Поэтому можно, например:
- крэшнуть компилятор (правда, игрушечный), PostgreSQL (не игрушечную) или антивирус;
- подвесить Windows 8;
- убить bash
Странный процес, как вы думаете что с ней будет потом? Будет ли там жизнь?
Подключил к своему компу телефон HTC с андроидом. Нажал на телефоне на кнопку для включения reverse tethering over usb, чтобы на телефоне пользоваться интернетом с компа. NetworkManager на удивление увидел телефон, создался интерфейс usb0, NM получил по DHCP IP-адрес от сервера на телефоне. Но на этом всё и закончилось. Андроид упорно не видел, что подключение состоялось, а NM не настроил NAT в iptables для раздачи интернета.
Оказалось, что телефон ожидает магической последовательности байт на порту 6000 от компа, означающей, что комп подключился и раздаёт интернет. Ладно, допустим, можно написать соответствующий скрипт и вызывать его при поднятии подключения — для этого в убунте был плагин к NM (хоть я и без понятия, как им пользоваться на других дистрибутивах, но думаю, с этим можно разобраться). Проблему здесь вызывает только меняющийся каждый раз IP-адрес телефона, но его можно выдернуть из /var/lib/dhclient/dhclient-*-usb0.lease.
С iptables всё хуже: здесь неправильно аналогичным скриптом в if-up.d настраивать NAT, потому что NM тоже меняет iptables и ничего не знает о внесённых нами изменениях. Кажется, в настоящее время NM не трогает чужие записи в iptables, но было бы неплохо иметь возможность в настройках поставить галочку «раздавать интернет» независимо от настроек IP-адреса, а сейчас есть возможность раздавать интернет через NM только тогда, когда этот же комп назначает себе адрес 10.42.0.1 (который, кстати, никак не поменять) и является DHCP-сервером в сети, куда раздаётся интернет, что не соответствует данной ситуации.
Ещё хуже с DUN over bluetooth. Мой телефон Nokia не поддерживает одну из AT-команд, которые посылает ему NM, поэтому соединение не удаётся. И никак это не исправить (кроме как пропатчить modem-manager у себя локально, что я и делал, когда мне это было нужно), потому что настроек посылаемых AT-команд у NetworkManager'а нет. Да они же были даже в Windows XP (а, может быть, и гораздо раньше, этого не помню). Видимо, разработчики NM решили пойти по стопам GNOME и даже обойти его: они не выпиливают нужные фичи, они их просто изначально не запиливают и не собираются.
Совсем плохо с раздачей интернета через Wi-Fi. Раздавать в master mode NM в принципе не умеет. В ad-hoc у него это получается только с шифрованием WEP, а если установить WPA, то просто ничего не будет работать. Тем временем, я видел ноут с вендой 7, который стандартными средствами создавал точку доступа с WPA2 (был ли это master mode или ad-hoc, я не знаю).
Кажется, довольно давно развивается проект, а новых возможностей с новыми версиями и незаметно. Таких элементарных вещей, как настройки, до сих пор нет, а там, где они есть, они сильно ограничены. Нет нормальной поддержки Wi-Fi. И это я уже не говорю о всяких специфичных вещах вроде vlan, мостов и т.п., а только о повседневно нужных возможностях, которыми пользуется обычный пользователь на ноутбуке.
Продвигая мобильную платформу Windows Phone 8, поставляемую с браузером Internet Explorer 10, компания Microsoft столкнулась с проблемами совместимости с web-приложениями, использующими нестандартные web-технологии, испытав на себе все трудности, которые во времена доминирования Internet Explorer 6 на десктопах сама создавала разработчикам альтернативных браузеров.
Тем не менее, в данном случае вина лежит не на разработчиках WebKit, а на создателях web-приложений, не считающихся со стандартами и использующих экспериментальные тестовые возможности движка. Все современные браузеры, и Internet Explorer в том числе, предоставляют возможность тестирования ещё не стандартизированных и экспериментальных CSS-свойств, оформляя поддержку подобных возможностей в форме элементов, снабжённых специфичными для каждой платформы префиксами. WebKit поддерживает тестовые возможности с префиксом "-webkit-", Firefox - "-moz-", Opera - "-o-", Internet Explorer - "-ms-".
Со временем, после обеспечения унифицированной поддержки в других браузерах, возможность становится доступна web-разработчикам без префикса. Но даже после этого некоторые разработчики продолжают по привычке использовать префикс популярного продукта. Например, после того как браузеры реализовали "-moz-border-radius", "-webkit-border-radius", "-o-border-radius" и "-ms-border-radius", стало доступно CSS-свойство «border-radius», но многие по прежнему продолжают использовать "-webkit-border-radius".
Суть описываемой Microsoft проблемы состоит в том, что так как в настоящее время WebKit используется на 90% всех мобильных устройств, разработчики сайтов и web-приложений для мобильных устройств не утруждают себя вопросами обеспечения совместимости и используют в своих web-приложениях экспериментальные возможности, снабжённые префиксом "-webkit-". Для решения проблем с совместимостью с подобными приложениями разработчики браузера Opera были вынуждены начать поддержку префиксов "-webkit-" в своём движке, чем только усугубили ситуацию, сделав шаг в сторону превращения префиксов "-webkit-" в форму псевдостандарта. Сейчас с подобной проблемой столкнулись и разработчики Internet Explorer.
http://www.opennet.ru/opennews/art.shtml?num=35369
Уж аукнулось, так аукнулось...
Инновационный интерфейс, новая корневая идея, всплывающие окна, тонущие двери, убегающие стенки, конкурирующие звёзды, толкающие шары
Приглашаю в творческю мастерскую идей интерфейса
Есть обширное рабочее пространство. Одни окна лежат поверх других. Есть обычные координаты xгоризонталь и yвертикаль. Также есть zглубина. Слишком глубокие окна тонут и сворачиваются в иконку нижнего моря панели. Слишком близкие окна конкурируют с другими близкими окнами, конкуренты представляются как звёзды в верхней панели небе.
Например я пишу в чате, рисую картину, и играю в сапёра. Все эти окна топовые, они в самом вершу, поэтому это звёзды, звёзды конкурируют, это разные задачи как разные рабочие столы.
Передо мной круглая дверь около изображения, на ней надпись размытие. Я постучал в дверь. Из неё вышли две двери, размыть гаусово, размыть пиксельно, дверь из которой они вышли вывернулась на изнанку и утонула.
Я стучу в дверь размыть гаусово и за ней начинает размываться картинка. Я достаю картинку из за двери, но не даю утонуть этой двери, поэтому изменения оригинальной картинки влияет на размытую версию.
Я листаю каталоги информация загружается и стенки убегают. Ограниченность оперативки не позволяет мне разогнать все стенки, я какбы в пузыре стенок.
Я захожу в виртуальную машину через дверь и закрываю эту дверь изнутри, мне не мещают другие элементы я полностью в контексте.
Я трогаю шар под определённым вектором и вызываю причину его качения, ура я сделал необративное действие, это шаротрон.
Но я до этого ясно видел последствия трогания шара в этом векторе, потому что я представлял дальнейшие касания. Это как всё равно как нажать на кнопку.
Прошу не придираться к фантастичности и другому. А приглашаю в мастерскую перлов во имя новых идей !!
Перемещено tazhate из development
Держу у себя на ноутбуке(пользуюсь им редко) gnome 3(за исключением настроек шрифтов и темы курсора мыши - полный дефолт), чтобы быть в курсе новых тенденций. И захотелось мне поменять картинку на рабочем столе, благо гномо разработчики еще не запретили это делать. Захожу в gnome-control-center - и что же я вижу?
http://img201.imageshack.us/img201/3979/20121111133857.png
В качестве картинки можно только выбрать изображения из каталога Документы/Изображения. Из произвольного места, например ~/Обои/Моя-любимая-обоина.png обоину уже не поставишь, нужно копировать ее в Документы/Изображения. Ну вот как после этого сомневаться, что разработчики гнома - наркоманы?
Обновил gtk3 до 3.6, и большая часть тем оформления превратилась в тыкву. Господа, что за беспредел такой? За 6 минорных релизов они так и не смогли стабилизировать этот их инновационный CSS? Что за несправдливость такая, и так мало тем оформления для gkt3, так еще и имеющиеся разваливаются.
Elementary глючит. Elegant Brit глючит. GrayBird глючит.
Нашел вот такую тему, которая более-менее прилично выглядит: http://s44.radikal.ru/i104/1211/67/ffde5c6844e9.png Но и у ней тоже глюки — серые прямоугольники вокруг разных виджетов.
А вы какое оформление юзаете? Посоветуйте годных тем. Желательно в стиле, похожем на Elementary или на то, что на скриншоте выше. Адвайта-подобных — не нужно.
1) Нет встроенного просмотрщика RSS/Atom
2) Adblock/Adblock+ особенно на тяжёлых страницах превращают браузер в жуткое тормозилово
3) Нет русско-английского spell checker'a
4) Нет возможности переключения на ходу языка проверки текста
5) Нельзя посмотреть свойства картинки + Exif данные (расширения крайне убогие - В Firefox есть суперские FxIF + Extended Link Properties+)
6) Только встроенные поисковые системы поддерживают Live Results (в Firefox можно добавить всё, что угодно)
7) По умолчанию выключен smooth scroll - даже когда включаешь, он на половине страниц не работает
Спасибо, но Firefox форева - не знаю у кого он тормозит, течёт и прочее - у меня более 30 расширений - всё работает идеально.
← назад |