Tuesday, September 30, 2008

Выложил реализацию recaptha на erlang

Сегодня обнаружил, что на googleсode выложили реализацию протокола openid. У нас в компании тоже есть реализация протокола openid - но она не полная, там не все особенности протокола реализованы - только наиболее важные для реализуемой нами системы.

Посоветовавшись мы решили выложить часть кода которую мы реализовали полностью для протокола recaptha чтобы не отставать:-) Результаты можно посмотреть здесь. Также выложена часть внутренней документации - как пояснение работы этого кода (на русском языке - так как было для внутреннего использования). Будет настроение переведу на более распостранненый в IT сфере английский.

Sunday, September 21, 2008

Ура:-) UTF8 работает в mc

Сегодня я наконец исправил установочный скрипт mc в используемом мною дистрибутиве, теперь русские буквы отображаются правильно и сроки не разжижаются - до сих пор я менял локаль, чтобы хоть как-то пользоваться mc(уж очень меня это досаждало). Теперь у меня красиво с подсветкой табов (показываются стрелочки) и все надписи ровненькие и не появляются в разных частях экрана. Пытался прикрутить патчи от CRUX, fedora и gentoo:-) Подошли объединенные скрипты :-)

Из федоры взял перекодировку манов и надписей. Падчи поддержки не подошли от нее(не компилировались исходники).

Нашел patches от CRUX все заработало, но версия mc (4.6.1) не поддерживала отображение табов стрелочками и надписи верхнего меню немного были неправильного размера.

Решил попробовать еще раз, но от генту (она использует patches от дебиана) и все заработало теперь мой любимый mc(4.6.2-pre1) работает как мне нужно:-)

Потом решил на этом не останавливаться и попробовать установить новые иксы - как раз вышла новая меса. Оказалось у меня в системе(в дистрибутиве) стоят почти последнее версии пакетов нужно было вручную обновить только xorg, libdrm и mesa. Обновил - запускаю, а у меня появильсь 3D ускорение(r4xx) - теперь можно в игрушки в линуксе запускать. И довольно неплохо - демки тунеля показывает 150 fps в игре gl-117 - 35 кадров(только какие-то глюки с клавой). И это на gpl дровах:-). Пропроритарные у меня не смогли откомпилить модуль ядра и не запустились - и во общем-то не очень и хотелось возиться с установкой приложения с закрытыми исходниками.

Из неполностью рабочего остался только wifi(ath5k) - он как-то тормознуто и не всегда стартует. А так если пару раз перегрузить карточу она отликаеться - но пока не очень уверено. Можно конечно написать разработчикам ядра - но пока не нашел кому написать и как правильно нописать описание ошибки. На своем не очень богатом опыте знаю, что правильное сообщение ошибки 90 процентов решения ее.

Относительно патча для gtkhtml - доделал по максимому что хотелось на первый раз подправить и написал в bugzilla gnome - пока не ответили. Надеюсь, что после того как выйдет новый релиз, напишут пожелания относительно моего патча - очень хочется сделать что нибудь хорошее!

В общем ура:-)

Sunday, September 14, 2008

Исправление gtkhtml

Для исправления моего проекта, решил немного подправить:
  1. не поддерживал иные кодировки кроме utf, нужно было перекодировать исходный текст страниц;
  2. не корректная кодировка в передаваемом запросе.
Результат моих изменений можно посмотреть в папке patches.

В исходном коде удалена перекодировка entity - так как кодировка определяется после разбора кода страницы. В разборе удалена перекодировка строк и проверки на соответствие последовательности байт utf, теперь код только копирует части строк. При запросе из разобраного дерева tokens они перекодируються и заменяються Entity. В результате рендеринг отображает страницу в правильной кодировке, если кодировка указана в заголовке ответа или через указание http-equiv. Для перекодировки при формирование запроса заменил код http_encoding_string - теперь при вызове указываеться кодировка в которую нужно перекодировать строки. Данные о кодировке беруться из htmlengine.

В коде остались такие проблемы:
  1. в gtkhtml храниться кодировка хотя там она не как не используеться - нужно перевести на использование кодировки указаной в htmltokenizer
  2. в htmltokenizer есть код в цикле добавляющий по одному символу в буфер нужно заменить на strcpy
  3. существуют проблемы перекодировки на mail.ru заголовки сылок заменяються знаками вопроса

Thursday, September 11, 2008

Портирование приложений на 64 битные платформы

К вопросам всегда ли равны указатели разным целым типам и почему стоит избегать преобразований.

Так как размеры могут не совпадать и компилятор вполне может что предположить например привести к какому-то типу ( наприме ошибка из-за которой на новом компиляторе gcc 4.3.x не компилируеться erlang) . Если не изменять типы указателей маловероятны ошибки когда на разных платформах приложения работают по разному. Даже без особеностей адресации и доступа к памяти как на ppc.

И еще маленькая идея - не передавать в скриптовые языки указатели преобразовав их в целые числа - гораздо удобнее создавать для них хеш и передавать вместо них скриптовому языку именно его. В результате мы получим возможность точно кантролировать какие области используються как переданные скрипту и управлять памятью. И мы получаем достаточно безобасную работу с указателями.
(Идея содрана как мне кажеться с интерфейса работы с gobject c Python и c управления памятью .NET(C#)).

P.S. Еще близкое к этой теме.

Семинар It-Talk


Обнаружил себя на фотографиях с семинара. Семинар очень понравился. Как я понял: он являлся сокращённой версией внутреннего курса, хотелось бы прослушать весь курс.

Содержание можно посмотреть по ссылке выше.

Жаль только что пропустил первый семинар.