Если система не имеет устоявшихся правил и постоянно модифицируется это свидетельствует об ошибках проектирования в самом начале пути. Можно безконечно заниматся модификациями и улучшениями, стараясь достигнуть совершенства и баланса всех ее составляющих. Но такой путь возможен при соблюдении нескольких условий.
Во-первых: при каждой существенной итерации система должна качественно улучшатся, избегая ошибок которые были допущены в плилотных версиях продукта.
Во-вторых: частое испралвение ошибок, слабый рост, в догоняющей позиции должен компенсироваться революционными идеями способными вместить в себя все предыдущие технологии в наиболее выгодном свете.
И, наконец, третье: такой рост возможен лишь с согласия всех лиц у чавствующих в разработке и использовании этой системы.
Получается, что как только аудитория становится более грамотной, переростает систему и ее авторов система умерает. Это происходит постепенно и нужно лишь ждать когда автор, ее идейный вдохновитель поймет свое бессилие и откажется догонять впереди его идующую толпу.
Очень наглядный тому пример можно увидеть в этом интервью.
Беседуют два уже не молодых человека. Каждый придерживается своей системы и своих взглядов. У каждого свое представлние об одних и тех же технолгиях (функциональном программировании, например), но они продолжают улыбаться друг другу и вести дружелюбную беседу. Вот она: полит корректность.
Для того чтобы двум людям, совершенно разных взглядов быть так приветливым необходимо: либо быть настоящим лицимером, политиком, либо иметь хорошую выдержку и понимать, что слабую технологию легче всего поглотить, чем воевать против нее.
...
SPJ: Whenever you've got concurrency and multiple processes working, you need to be very careful about side effects. Otherwise it just does your head in. Something that Haskell and Erlang both share is being careful about effects. Haskell is sort of super-careful and Erlang is merely careful, but in both cases, we don't have this, unrestricted side effects all the time, the computational fabric being effectful. It seems to me it makes it jolly hard to write programs that exploit multithreads.
...
JA: And the garbage collector doesn't need to know about what types are generated.
SPJ: Oh the garbage collector, that's not a problem. Our garbage collectors are complicated, not because of types, it knows nothing of types.
...
SPJ: Do you have any profiling tools?
JA: Yes, sure.
SPJ: So, you can see "Oh, this process is stalled."
JA: What's interesting is when you are finding the sequentiality.
...
JA: With each new generation of chips, it's... We don't know what's going to happen.
...
JA: When you're developing Erlang, you don't have to write the entire program to get it to work, and you're not quite sure what the types are. In Erlang you just write some program here, and you evaluate something and it throws out this great big thing and you say: "Oh, that's what the type was". Then you can say: "Well that wasn't quite right, let's change it to that". But you're not restricted in having to get all the bits working before you can just do those experiments. Wouldn't you miss something like that?
SPJ: You still don't have to get all the bits working, you have to think of what type you might have, but you might evolve that type.
JA: Or you can just run it and see. We have things called parse transforms which allow you to change them. In a module you can say there's a parse transform, and the parse transform is given the parse tree of the program and it can turn it into another parse tree before it's given to the compiler. That's a way of doing deeply sinful things that you normally can't do. And the nice thing about that is, somebody has asked me "How do I get started with this?"
Ссылки по теме:
понедельник, 28 сентября 2009 г.
суббота, 26 сентября 2009 г.
Macbook Pro USB flash boot (part 2)
- Macbook Pro USB flash boot (part 1)
Fedora 12 Snap3
Подготавливаясь к предстоящему резилу Fedora 12 решил провести основные тесты на своих машинах. У меня два ноутбука Asus M3N (живучий малый) и MacBook Pro 2.1 (железный малый), и один mac mini (Ну совсем маленький. Он не дорос доучастия в тестах). На обоих машинах я испытывал те или иные проблемы связанные с различными аспектами работы системы. Начиная от загрузки и заканчивая поддержкой различных устройств.
Могу сказать сразу: результаты внушают оптимизм и некоторые старые ошибки оказались исправлены. Что же касается новых фукнций (автоматическая отправка ошибок, переработанный anaconda устновщик, и ряд других, которые я не успел толком опробовать) они заставляют ждать резил Fedora 12 с нетерпением.
Не буду описывать все составляющие моего щастья связанные с Fedora 12. Опишу только все еще не решенную проблему с загрузкой с usb через EFI loader.
Всего существует 2 способа загрузки ноутбука MacBook Pro с usb насителя:
- загрузка с использованием efi загрузчика
- непосредственная загрузка с одного из 4 разделов mbr диска.
Первый (efi) использует расширенные фукнции переферии (EFI) и ориентируясь на разделы gpt диска может произвести загрузку с одного из 128 разделов. Что выгодно отличает этот способ загрузки от старого проверенного bios загрузчика поддерживающего всего 4 раздела на жестком диске.
Дальше больше. Так как современное ядро линукса научилось не только работать с жестким диском по всем современным технологиям, но уже начинает перенимать на себя и остальные фукнции операционной системы (постепенно разбухая и накапливая новый фукнционал). Так, совсем недавно, появилась новая фукнция ядра называемая KMS (Kernel mode settings). Мехнизм позволяющий иницилизировать видео карту в ядре с последующей передачей видео контекста в пользовательское приложение графического интерфейса (менеджера окон или других программ с поддержкой GUI). Эта новая фукнция не всегда работает хорошо и в некоторых случаях производит иницилаизацию ведео карты не правильно. Что в свою очередь приводит к зависанию системы сразу после загрузки ядра. Это еще одно условие успешной загрузки с usb flash.
Кроме того, имеет место сборка grub, и сборка X-server.
Так у нас получается некоторый набор условий неудачное совпадение которых может приводить к падению системы. Что мы и попробуем перечислить все возможные варианты:
Вот приблизительные варианты загрузки:
rEFIT \ Alt boot -> EFI \ BIOS -> USB \ HDD -> fedora grub \ grub2 -> KMS \ nomodeset
Попробуем проверить все эти комбинации на практике:
1) rEFIT -> EFI -> USB -> fedora grub -> В обоих случаях (KMS\nomodeset) зависание после включение grub, ядро не может инициализировать видео вывод и картинка menu grub не исчезает)
2) rEFIT -> EFI -> USB -> grub2 -> KMS (Порча экрана после загрузки ядра и зависание)
3) rEFIT -> EFI -> USB -> grub2 -> nomodeset -> Загрузка до запуска X server и падение x servera
4) rEFIT -> BIOS -> USB -> В обоих случаях (KMS\nomodeset) остановка загрузки - проблема с прошивкой MacBook Pro
5) rEFIT -> BIOS -> HDD -> fedora grub -> В обоих случаях (KMS/nomodeset) успешная загрузка
Из выше привиденных тестов можно сделать вывод: во-первых прошивка macbook pro несколько старовата, apple не желает их поддерживать. во-вторых загрузка linux через EFI всегда приводит к проблемам инициализации контекста видео карты. И в противовес последнему утверждению, загрузка через BIOS ядра линукса всегда успешная.
Fedora 12 Snap3
Подготавливаясь к предстоящему резилу Fedora 12 решил провести основные тесты на своих машинах. У меня два ноутбука Asus M3N (живучий малый) и MacBook Pro 2.1 (железный малый), и один mac mini (Ну совсем маленький. Он не дорос доучастия в тестах). На обоих машинах я испытывал те или иные проблемы связанные с различными аспектами работы системы. Начиная от загрузки и заканчивая поддержкой различных устройств.
Могу сказать сразу: результаты внушают оптимизм и некоторые старые ошибки оказались исправлены. Что же касается новых фукнций (автоматическая отправка ошибок, переработанный anaconda устновщик, и ряд других, которые я не успел толком опробовать) они заставляют ждать резил Fedora 12 с нетерпением.
Не буду описывать все составляющие моего щастья связанные с Fedora 12. Опишу только все еще не решенную проблему с загрузкой с usb через EFI loader.
Всего существует 2 способа загрузки ноутбука MacBook Pro с usb насителя:
- загрузка с использованием efi загрузчика
- непосредственная загрузка с одного из 4 разделов mbr диска.
Первый (efi) использует расширенные фукнции переферии (EFI) и ориентируясь на разделы gpt диска может произвести загрузку с одного из 128 разделов. Что выгодно отличает этот способ загрузки от старого проверенного bios загрузчика поддерживающего всего 4 раздела на жестком диске.
Дальше больше. Так как современное ядро линукса научилось не только работать с жестким диском по всем современным технологиям, но уже начинает перенимать на себя и остальные фукнции операционной системы (постепенно разбухая и накапливая новый фукнционал). Так, совсем недавно, появилась новая фукнция ядра называемая KMS (Kernel mode settings). Мехнизм позволяющий иницилизировать видео карту в ядре с последующей передачей видео контекста в пользовательское приложение графического интерфейса (менеджера окон или других программ с поддержкой GUI). Эта новая фукнция не всегда работает хорошо и в некоторых случаях производит иницилаизацию ведео карты не правильно. Что в свою очередь приводит к зависанию системы сразу после загрузки ядра. Это еще одно условие успешной загрузки с usb flash.
Кроме того, имеет место сборка grub, и сборка X-server.
Так у нас получается некоторый набор условий неудачное совпадение которых может приводить к падению системы. Что мы и попробуем перечислить все возможные варианты:
Вот приблизительные варианты загрузки:
rEFIT \ Alt boot -> EFI \ BIOS -> USB \ HDD -> fedora grub \ grub2 -> KMS \ nomodeset
Попробуем проверить все эти комбинации на практике:
1) rEFIT -> EFI -> USB -> fedora grub -> В обоих случаях (KMS\nomodeset) зависание после включение grub, ядро не может инициализировать видео вывод и картинка menu grub не исчезает)
2) rEFIT -> EFI -> USB -> grub2 -> KMS (Порча экрана после загрузки ядра и зависание)
3) rEFIT -> EFI -> USB -> grub2 -> nomodeset -> Загрузка до запуска X server и падение x servera
4) rEFIT -> BIOS -> USB -> В обоих случаях (KMS\nomodeset) остановка загрузки - проблема с прошивкой MacBook Pro
5) rEFIT -> BIOS -> HDD -> fedora grub -> В обоих случаях (KMS/nomodeset) успешная загрузка
Из выше привиденных тестов можно сделать вывод: во-первых прошивка macbook pro несколько старовата, apple не желает их поддерживать. во-вторых загрузка linux через EFI всегда приводит к проблемам инициализации контекста видео карты. И в противовес последнему утверждению, загрузка через BIOS ядра линукса всегда успешная.
Обзор ОС посетителей
| 1 | Opera / Windows | 21,75 % |
| 2 | Firefox / Windows | 19,46 % |
| 3 | Firefox / Linux | 16,10 % |
| 4 | Internet Explorer / Windows | 14,31 % |
| 5 | Safari / Macintosh | 7,59 % |
четверг, 24 сентября 2009 г.
t = malloc(...
Java 1.4, XSD, Java 1.5, Web2.0, Erlang, C, Flash, Flex SDK, HTML, IE, Opera, C#, docs.google.com, bing.com, QT4, C++, Eclipse, QT4.5, livejournal.com, XLT, Python, ICQ, OpenGL, VirtualBox, OpenSUSE, Skype, Google Talk, yandex.ru, kms, XEN, Bluetooth, Direct3D, WiMax, Firefox, google.com, blogspot.com, Netbeans, ...
Разгоняемся... ?
Пфуль был один из тех безнадежно, неизменно, до мученичества самоуверенных людей, которыми только бывают немцы, и именно потому, что только немцы бывают самоуверенными на основании отвлеченной идеи-науки, то есть мнимого знания совершенной истины. Француз бывает самоуверен потому, что он почитает себя лично, как умом, так и телом, непреодолимо-обворожительным как для мужчин, так и для женщин. Англичанин самоуверен на том основании, что он есть гражданин благоустроеннейшего в мире государства, и потому, как англичанин, знает всегда, что ему делать нужно, и знает, что все, что он делает как англичанин, несомненно хорошо. Итальянец самоуверен потому, что он взволнован и забывает легко и себя и других. Русский самоуверен именно потому, что он ничего не знает и знать не хочет, потому что не верит, чтобы можно было вполне знать что-нибудь.
Разгоняемся... ?
Пфуль был один из тех безнадежно, неизменно, до мученичества самоуверенных людей, которыми только бывают немцы, и именно потому, что только немцы бывают самоуверенными на основании отвлеченной идеи-науки, то есть мнимого знания совершенной истины. Француз бывает самоуверен потому, что он почитает себя лично, как умом, так и телом, непреодолимо-обворожительным как для мужчин, так и для женщин. Англичанин самоуверен на том основании, что он есть гражданин благоустроеннейшего в мире государства, и потому, как англичанин, знает всегда, что ему делать нужно, и знает, что все, что он делает как англичанин, несомненно хорошо. Итальянец самоуверен потому, что он взволнован и забывает легко и себя и других. Русский самоуверен именно потому, что он ничего не знает и знать не хочет, потому что не верит, чтобы можно было вполне знать что-нибудь.
Л. Н. Толстой
воскресенье, 20 сентября 2009 г.
gencodingconverter-1.1.0
После борьбы с непобедимой ленью я все же нашел в себе силы дописать плагин для конвертирования файлов на лету для Gedit.
В новой версии вы сможете:
- Настраивть список интересующих вас кодировок
- Использовать диалог наглядного преобразования кодировок
Недостаки:
- слабая поддержка encoding API приложеиня gedit (в коде есть некоторые хаки)
- не удобный функционал Gtk.ComboBox который съеадет нажатие enter у диалога
- небольшие проблемы порядком следования кодировок (они сортируются произвольно)
Получить эту утилиту можно по адресу: http://code.google.com/p/gencodingconverter/
В новой версии вы сможете:
- Настраивть список интересующих вас кодировок
- Использовать диалог наглядного преобразования кодировок
Недостаки:
- слабая поддержка encoding API приложеиня gedit (в коде есть некоторые хаки)
- не удобный функционал Gtk.ComboBox который съеадет нажатие enter у диалога
- небольшие проблемы порядком следования кодировок (они сортируются произвольно)
Получить эту утилиту можно по адресу: http://code.google.com/p/gencodingconverter/
пятница, 11 сентября 2009 г.
xorg-x11-drv-ati-6.12.3 fedora 11 build
Обновленный драйвер для Fedora 11.
# инициализация дерева rpmbuild
# rpmdev-setuptree
# cd ~/rpmbuild
# yumdownloader --source xorg-x11-drv-ati
# rpm -i xorg-x11-drv-ati-*
# cd
# mkdir source
# cd source
# получение нового клона репозитория
# git clone git://anongit.freedesktop.org/xorg/driver/xf86-video-ati
# cd xf86-video-ati
# или обновление
# cd xf86-video-ati
# git pull
# проверте последнюю версию релиза по ссылке (tag)
# http://cgit.freedesktop.org/xorg/driver/xf86-video-ati/
# git archive --format=tar --prefix=xf86-video-ati-6.12.3/ xf86-video-ati-6.12.3 | bzip2 > ~/rpmbuild/SOURCES/xf86-video-ati-6.12.3.tar.bz2
# cd ~/rpmbuild/SPECS
# далее необходимо удалить все секции patch (вручную или с помощью пача):
# patch << EOF
--- xorg-x11-drv-ati.spec.old 2009-09-11 01:58:19.000000000 +0400
+++ xorg-x11-drv-ati.spec 2009-09-11 01:58:45.000000000 +0400
@@ -4,7 +4,7 @@
Summary: Xorg X11 ati video driver
Name: xorg-x11-drv-ati
-Version: 6.12.2
+Version: 6.12.3
Release: 14%{?dist}
URL: http://www.x.org
License: MIT
@@ -43,14 +43,7 @@
%prep
%setup -q -n %{tarball}-%{version}
-%patch1 -p1 -b .modeset
-%patch2 -p1 -b .modeset-fixes
-%patch3 -p1 -b .modeset-still-more-fixes
-%patch6 -p1 -b .bgnr
-%patch7 -p1 -b .r600-fb-size
-%patch8 -p1 -b .srcrb
-%patch9 -p1 -b .rs690
-%patch10 -p1 -b .lvds
+
%build
autoreconf -iv
EOF
# rpmbuild -ba xorg-x11-drv-ati.spec
# sudo rpm -U ~/rpmbuild/RPMS/i586/xorg-x11-drv-ati-6.12.3-0.fc10.i386.rpm
Подписаться на:
Сообщения (Atom)





