LINUX.ORG.RU

Избранные сообщения AX

Сотовой телефон «сделай-сам»

Форум — Talks

САБЖ

http://hlt.media.mit.edu/?p=2182

Исходный код, файлы интегральной схемы и разводки (Eagle), а также дизайн корпуса (Inkscape) доступны по адресу:

https://github.com/damellis/cellphone

 ,

gensym
()

chromium: чо за!?

Форум — Talks

кто может по-человечески объяснить какого в гугле закардкодили размер для ШГ в интерфейсе?
неужели так сложно в гытыка слабадь поддержку системных конфигов!?
для нормальных размеров ШГ в заголовках(в закладках тоже) пришлось патчить
с какого?

 , ,

megabaks
()

Трансляция виртуальных адресов как тьюринг-полный язык

Форум — Talks

Вот очень странный и невероятно крутой хак: trapcc - вычисление без единой инструкции CPU.

Авторы продемонстрировали, что механизм трансляции адресов на архитектуре x86 обладает полнотой Тьюринга, т.е. с его помощью можно реализовать любой алгоритм. С помощью хитрой настройки различных контрольных таблиц, которыми пользуется процессор, они вводят процессор в состояние, в котором он не может выполнить ни одной инструкции, т.к. непрерывно происходят исключения, но разные исключения в зависимости от приготовленных данных - и таким образом процессор вычисляет!

Известно, что одной инструкции условного перехода по вычитанию (вычисли a = a-b, и если это меньше или равно нуля, перейди в c) достаточно для Тьюринг-полноты. В этом хаке такая инструкция симулируется с помощью последовательности page faults (от невозможности загрузить данные), которая заканчивается double fault (когда указатель на стек уменьшается ниже нуля).

Несколько более подробное объяснение - в этом комментарии.

Любопытно, что ни один существующий эмулятор x86 не мог правильно запустить этот хак, потому что он опирается на слишком извращенную конфигурацию контрольных таблиц, и на тонкие нюансы поведения процессора в этой извращенной конфигурации. В итоге они смогли подстроиться под эмулятор Bochs.

Как ни странно, у всего этого даже есть практические применения, правда, в области, которая ничего хорошего и полезного миру не приносит - обнаружение того, что программа бежит под отладчиком или в виртуальной машине. Ну а так - это просто неимоверно круто и красиво.

(c) http://avva.livejournal.com/2570893.html

 

geekless
()

А давайте померяемся

Форум — Talks

Тут знакомый парсил ямловский файл на несколько мегабайт, и получил странные результаты

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 раза. По сравнению с чистым яваскриптом, который еще не до конца оптимизирован.

Что-то тут не так.

 libyaml, ,

Vit
()

MIN_INT / -1

Форум — Talks

Поискал по форуму, кажется, эта тема еще не обсуждалась.

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

!Ъ:
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

 

geekless
()

Венера почему она кипит?

Форум — Talks

Странный процес, как вы думаете что с ней будет потом? Будет ли там жизнь?

splinter
()

NetworkManager не готов

Форум — Talks

Подключил к своему компу телефон 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, мостов и т.п., а только о повседневно нужных возможностях, которыми пользуется обычный пользователь на ноутбуке.

 , ,

gentoo_root
()

MS: «WebKit разрушает идею web-стандартов»

Форум — Talks

Продвигая мобильную платформу 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

Уж аукнулось, так аукнулось...

Freiheits-Sender
()

Новый фундамент интерфейса, всплывающие окна, тонущие двери, мастерская идей

Форум — Talks

Инновационный интерфейс, новая корневая идея, всплывающие окна, тонущие двери, убегающие стенки, конкурирующие звёзды, толкающие шары

Приглашаю в творческю мастерскую идей интерфейса

Есть обширное рабочее пространство. Одни окна лежат поверх других. Есть обычные координаты xгоризонталь и yвертикаль. Также есть zглубина. Слишком глубокие окна тонут и сворачиваются в иконку нижнего моря панели. Слишком близкие окна конкурируют с другими близкими окнами, конкуренты представляются как звёзды в верхней панели небе.

Например я пишу в чате, рисую картину, и играю в сапёра. Все эти окна топовые, они в самом вершу, поэтому это звёзды, звёзды конкурируют, это разные задачи как разные рабочие столы.

Передо мной круглая дверь около изображения, на ней надпись размытие. Я постучал в дверь. Из неё вышли две двери, размыть гаусово, размыть пиксельно, дверь из которой они вышли вывернулась на изнанку и утонула.

Я стучу в дверь размыть гаусово и за ней начинает размываться картинка. Я достаю картинку из за двери, но не даю утонуть этой двери, поэтому изменения оригинальной картинки влияет на размытую версию.

Я листаю каталоги информация загружается и стенки убегают. Ограниченность оперативки не позволяет мне разогнать все стенки, я какбы в пузыре стенок.

Я захожу в виртуальную машину через дверь и закрываю эту дверь изнутри, мне не мещают другие элементы я полностью в контексте.

Я трогаю шар под определённым вектором и вызываю причину его качения, ура я сделал необративное действие, это шаротрон.

Но я до этого ясно видел последствия трогания шара в этом векторе, потому что я представлял дальнейшие касания. Это как всё равно как нажать на кнопку.

Прошу не придираться к фантастичности и другому. А приглашаю в мастерскую перлов во имя новых идей !!

Перемещено tazhate из development

 граф интерфейс,

masloed
()

Выбор обоев для рабочего стола в Gnome 3.6

Форум — Talks

Держу у себя на ноутбуке(пользуюсь им редко) gnome 3(за исключением настроек шрифтов и темы курсора мыши - полный дефолт), чтобы быть в курсе новых тенденций. И захотелось мне поменять картинку на рабочем столе, благо гномо разработчики еще не запретили это делать. Захожу в gnome-control-center - и что же я вижу?

http://img201.imageshack.us/img201/3979/20121111133857.png

В качестве картинки можно только выбрать изображения из каталога Документы/Изображения. Из произвольного места, например ~/Обои/Моя-любимая-обоина.png обоину уже не поставишь, нужно копировать ее в Документы/Изображения. Ну вот как после этого сомневаться, что разработчики гнома - наркоманы?

 

Vovka-Korovka
()

Однако

Форум — Talks

Обновил gtk3 до 3.6, и большая часть тем оформления превратилась в тыкву. Господа, что за беспредел такой? За 6 минорных релизов они так и не смогли стабилизировать этот их инновационный CSS? Что за несправдливость такая, и так мало тем оформления для gkt3, так еще и имеющиеся разваливаются.

Elementary глючит. Elegant Brit глючит. GrayBird глючит.

Нашел вот такую тему, которая более-менее прилично выглядит: http://s44.radikal.ru/i104/1211/67/ffde5c6844e9.png Но и у ней тоже глюки — серые прямоугольники вокруг разных виджетов.

А вы какое оформление юзаете? Посоветуйте годных тем. Желательно в стиле, похожем на Elementary или на то, что на скриншоте выше. Адвайта-подобных — не нужно.

 , ,

geekless
()

Как, как(??) вы пользуетесь Google Chrome?

Форум — Talks

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 расширений - всё работает идеально.

 , ,

juk4windows
()