|
Подпишитесь на новости сайта по RSS
|
|
Главная страница
Здравствуйте!
Вы находитесь на сайте WebHamster.ru. Наш хомячок бегает по интернету в поисках интересной информации. Он собирает её по крупицам и аккуратно складывает здесь. А еще хомячок знает буквы, садится за свою маленькую пишущую машинку и сам пишет всякую ерунду. Он такой непоседа...
Новости
|
|
|
В данный момент я активно занимаюсь изучением PHP-фреймверка Kohana. Этот фреймверк всем хорош, за исключением одного - очень неудачной документации. Документация на английском языке весьма скудная и непоследовательная. Какая-то она фрагментная, и не объясняет всех тонкостей. Последовательность изложения оставляет желать лучшего. Авторы документации прыгают с пятого на десятое, вместо того чтобы технично, шаг за шагом, изложить устройство и принцип работы того или иного класса.
С документацией на русском языке всё еще хуже, хотя она есть, и местами очень неплохая. Я решил положить свою копеечку в копилку русскоязычных статей о Kohana, и написал статью о принципах валидации данных, принятых в Kohana.
Читаем здесь: Kohana 3.x : Валидация данных.
|
|
|
|
В 1990 году в четвёртом номере журнала "Наука и жизнь" была опубликована статья, резко изменившая досуг многих советских граждан. Статья называлась "От биржи к акционеру", автор - замечательный человек и идейный вдохновитель Александр Зырянов. В этой статье описывались правила экономической игры "Акционер". В игре была специальная колода из 52-х карт и информационное табло, на котором отмечались курсы акций.
На страницах журнала эта игра выглядела вот так:
Увеличить
Спустя девять лет, мой товарищ, Сергей Шпаков, задумал сделать компьютерную версию этой игры. Он быстро сделал на Delphi вполне рабочую игру в режиме "Горячий стул" (хотсид). В этом режиме компьютер мешал колоду, раздавал карты игрокам, предлагал сделать ход первому игроку, потом второму, и т. д. Во время каждого хода игроки должны были садиться за компьютер так, чтобы другие не видели, какие карты на экране.
Это было неудобно, требовалась воможность поиграть с компьютером если человек один, а напарников нет. Сергей попросил меня написать искуственный разум для игроков. Для того, чтобы написать компьютерного игрока, мне нужно было сначала разобраться с правилами и понять выигрышную стратегию. Но после нескольких игр с Сергеем и другими игроками стало ясно, что я не понимаю как правильно играть в эту игру. Сергей много раз приглашал меня и других друзей поиграть в Акционера, и я всегда проигрывал. Я играл хуже всех, и не понимал, как в эту игру толком играть. У меня, видимо, такой Акционеро - кретинизм.
Итак, требовалось переложить игру на язык математики и алгоритмов, но как переложить, если сам слабо играешь и не понимаешь выигрышной стратегии? Тогда у меня родилась идея использовать элемент искуственного интеллекта - дихотомайзер. Эта математическая модель умеет выделять "главное" из казалось бы несвязанных друг с другом факторов. Я взял полные логи нескольких игр между нашими "мэтрами", в них было учтено всё что присутсвует в игре - номер хода, раскладка карт, количество денег, вышедшие карты, курсы акций... На основе этих данных было построено бинарное дерево выбора наиболее важного фактора при текущей игровой ситуации. После чего был написан код самих электронных игроков с деревом перебора как в шахматах, но только суженного рекомендацией дихотомайзера. Применять дихотомайзер пришлось именно для того, чтобы сузить дерево перебора, ибо количество возможных действий игрока на каждом ходе на порядки больше, чем в шахматах, что увеличивает дерево перебора в геометрической прогрессии. После основных действий в ходе, применялся несложный алгоритм раскладки средств по акциям.
Игра с встроенными компьютерными игроками была написана к 2000-му году. После чего Шпаков потерял к ней интерес, заявив, что компьютерные игроки играют "по-жлобски". Действительно, электронный разум играл гораздо лучше меня, и поначалу жостко обыгрывал биологических мэтров. Вот на этом этапе разработка и была заброшена. Когда у меня появился свой сайт, я выложил её на этой страничке: Игры под Windows : Shareholder (Акционер).
На этом история могла бы закончиться, но на днях (на улице 2011 год), она получила неожиданное продолжение. Автор игры, господин Зырянов, недавно нашел мою страничку с игрой, установил, поиграл, и написал мне письмо:
Здравствуйте, Сергей!
Набрел нечаянно на ваш сайт, скачал игру Акционер, попробовал сыграть… Нормально ))) Видел и другой вариант, значительно более слабый. Там я сыграл «в одни ворота» штук 5 партий и потерял к ним интерес. Правда, было это год назад. Не исключаю, что тем парням удалось что-то поправить. Поинтересуюсь и у них при случае…
В вашем варианте сыграл одну партию… Доволен тем, что имея первый ход (начинал игру), не проиграл… хоть и не выиграл )))
В истории игры прочитал ссылку на журнал «Наука и жизнь». Приятно. Эту статью в 1990 году написал я. Как, собственно, и саму игру в каких-то деталях отрабатывал, так как правил американской оригинальной игры никогда не видел (воспринял их на слух еще в середине 80-х).
В «Вопросах и ответах» прочитал о ваших намерениях разработать версию игры в сети. Я так понял, что она предусматривает возможность игры не с компьютером, а с реальными игроками. Такой вариант и мне интересен мог бы быть. В свое время организовал игровой клуб по переписке (тогда компьютеры были еще крайне редкой роскошью), в рамках которого игре было обучено около 500 человек… В турнирах участвовало не более 50 (оргпроблемы ограничивали)… Но турниров провели много ))) за 10 лет… К тому же в клубе были реализованы некоторые интересные идеи, которые и на игровом сайте могли бы иметь успех.
Очень неплохо и толково дано описание игры на WebHamster.ru, изложены ее правила. Что касается теории игры… В свое время я написал книгу по теории (не издана, конечно). По крайней мере, для игры вдвоем, против одного соперника. Дело в том, игра против двух соперников требует другой тактики, имеет свои нюансы. Я отдаю предпочтение игре вдвоем.
Игра же получилась реально классная! Говорю об этом, обладая огромным игровым опытом, хоть и малость подзабытым. Надо только вникнуть во все ее нюансы и после этого наслаждаться и самой игрой и, особенно, выигрышами в результате уникальных комбинаций, возможность для которых не только появляется, но и целенаправленно создается опытным игроком.
Если это письмо заинтересует разработчиков, то можно будет подумать о расширении контактов.
С уважением, Александр Зырянов
В ходе дальнейшей переписки выяснилось, что Александр вынашивает идею сделать сайт с онлайн-игрой "Акционер", по типу всяких онлайновых преферанс-клубов, где люди играют друг с другом через интернет. В рунете есть один сайт - http://game-birga.narod.ru, на котором можно играть с другими людьми, но реализация там сделана чисто на JavaScript, без регистрации, без возможности сохранить свои достижения. Как бы, чего еще ожидать от сервиса народ.ру. Зырянов состыковался с автором этого сайта, но видимо они не достигли взаимопонимания, так как автор game-birga.narod.ru ратует за гибкую разновидность игры с настраиваемыми правилами. А Зырянов хочет развивать версию чисто по классическим правилам.
Так что, если вы, например, студент, разбираетесь в веб-технологиях и у вас есть свободное время, я вам дарю идею разработать такой сайт в контакте с Зыряновым. Потенциальные выгоды можете оценить сами, но полученный опыт разработки вам точно пригодится независимо от финансового результата. Игра на самом деле простая в смысле реализации с помощью современных фреймверков, студент справится. Ведь справились Степанов и Шпаков с локальной реализацией, как раз когда были студентами.
Узнать контакты Александра Зырянова можно у меня, написав на email xintrea@gmail.com.
Ну, и напоследок, сканы той статьи, которая была опубликована 20 лет назад:
Увеличить
Увеличить
Всего вам доброго, спасибо за внимание.
|
|
|
|
С выходом операционой системы Ubuntu 11.04 Natty Narwhal, появилась проблема запуска MyTetra в графической среде Unity. Проблема в том, что MyTetra недоступна в трее Unity, вследствие чего программу невозможно развернуть после сворачивания.
Пользователь Chon решил эту проблему. Оказывается что по умолчанию в Unity в трее находятся только разрешённые приложения. Их список можно посмотреть так:
gsettings get com.canonical.Unity.Panel systray-whitelist
Чтобы разрешить всем приложениям использовать трей, достаточно выполнить в терминале следующую команду:
gsettings set com.canonical.Unity.Panel systray-whitelist "['all']"
Если же нужно разрешить помещать в трей только ограниченный список программ (включая MyTetra), то его можно задать так:
gsettings set com.canonical.Unity.Panel systray-whitelist "['JavaEmbeddedFrame', 'Mumble', 'Wine', 'Skype', 'hp-systray', 'mytetra']"
|
|
|
|
Как вы думаете, что это? Жестяные изделия, найденные на территории ярославского кремля конца XI века? Заготовка наконечника копья? Нож для разделки рыбы? Металлические накладки на сундук?
Тогда скажите мне, что это: древнее орудие пыток? Наручники? Кандалы?
Вижу, что затрудняетесь сказать. Ну тогда вам всё станет ясно, когда вы увидите вот этот прекрасно сохранившийся образец кованой железной пластины:
Посмотрите, как кузнец, виртуозно орудуя молотом и пробойником, сделал аккуратное отверстие в центре. Но для чего? Для чего нужны все эти предметы?
Тот, кому не терпится узнать, что же это такое, бегите скорее на сайт В. Тихвинского, старшего преподавателя кафедры информатики РГУ Нефти и Газа им. И.М.Губкина. Он вам вместе с Ю. Густяковым все покажет и расскажет.
* * *
Остальным объясняю что это, и с чего все началось. Около года назад я опубликовал на сайте WebHamster.ru технологию изготовления диафильмов в домашних условиях. Для этого нужны компьютер и обычный черно-белый лазерный принтер. Товарищ Тихвинский решил пойти еще дальше. Он решил самостоятельно сделать не только диафильм, но и диапроектор. Кроме того, диафильм у него получился цветной. Ссылки на свои работы он любезно сообщил мне по email. Ну а я - вам.
|
|
|
|
Ко мне на почту и в форум много раз обращались люди с просьбой помочь исправить последствия самостоятельного внесения изменений в файлы данных MyTetra. Кто-то вручную перегонял себе в MyTetra свои старые записи из какого-то другого формата. Кто-то пытался автоматически вставить набор статей, выкачанный с какого-то сайта.
Проблемы возникали из-за незнания формата хранения данных в MyTetra, и как MyTetra с этими данными работает. Чтобы раз и навсегда закрыть этот вопрос, я сделал описание формата.
Документация находится здесь - MyTetra: формат хранения данных.
|
|
|
|
Около недели назад я выложил в открытый доступ проект переключателя клавиатуры LoLo Switcher для оконной среды X11. Принцип работы этого переключателя сильно отличается от общепризнанных архитектурных решений в этой области.
Про архитектуру
Все ныне существующие переключатели раскладки работают только на уровне X11, что весьма православно и гарантирует их использование при удаленном подключении к иксам. Однако эти переключатели имеют застаревшие болячки, вызванные неудачной архитектурой подсистемы событий ввода X11, и часто ограничены в конфигурировании. Переключатель, который работает более-менее стабильно, например старый не совсем добрый xxkb, впринципе не может быть гибко сконфигурирован. А продвинутый xneur спустя шесть лет разработки до сих пор неспособен работать (как бы помягче сказать) в некоторых программах, таких как Kate и Kopete. У разработчиков xneur даже есть рекомендации, как переконфигурировать другие программы (например, XTerm) для того, чтобы они начали работать с xneur. Такой подход уже выходит за рамки здравого смысла. В общем, я не вижу в Linux переключателя клавиатуры, в котором бы гибкость конфигурирования сочеталась бы с безглючностью и беспроблемностью работы.
Любой сторонний наблюдатель скажет, что если за многие годы в X11 так и не появился человеческий переключатель клавиатуры, то что-то не так в самой архитектуре иксов, как минимум в той её части, которая отвечает за события ввода. Да, так и есть. Это признают и сами разработчики X11, и в данный момент подсистема ввода переписывается под именем XInput2. Мне даже предложили еще подождать. Т. е. дождаться когда XInput2 везде станет стандартом де-факто, параллельно с этим влиять на разработчиков XInput2 чтобы они при проектировании учли те проблемы, которые существуют сейчас при написании переключателей клавиатуры. Но я и так ждал тринадцать лет, и мне предлагают подождать еще! Да у меня внуки к тому времени уже появятся.
Принцип работы LoLo Switcher следующий. LoLo Switcher работает как процесс на низком системном уровне, и получает данные от клавиатуры напрямую из файла устройства. Обнаружив нужную последовательность кодов, LLS вызывает функции X11, отвечающие за переключение раскладки.
Я сознательно пошел на создание такой архитектуры, так как при локальном использовании она гарантирует переключение языка в X11 при любых условиях, а ситуаций "в одном окне работает, в другом нет" просто не может быть. Кроме того, мне важна скорость и отзывчивость переключения. По моему мнению, существующие переключатели в X11 работают не так быстро как хотелось бы. Им приходится держать в памяти "модель" клавиатуры, динамически меняя ее при нажатии/отжатии/удерживании обычных клавиш и клавиш-модификаторов по тем обрывочным данным, которые дает интерфейс X11 (а он дает, кстати, не все события, которые генерирует клавиатура, в частности поэтому и приходится воссоздовать картину состояния клавиатуры на "модели"). Кроме того, скорость автоповтора клавиш (который, кстати, есть даже у клавиш-модификаторов), в X11 совершенно другая, нежели заданная в BIOS или непосредственно на самой клавиатуре (да, есть и такие клавиатуры, с треугольничками на функциональных клавишах). Скорость автоповтора в X11 настраивается в любом современном DE, но это никак положительно не влияет на рассинхрон с аппаратной частью клавиатуры, который чуствуется при быстрой работе. А так как автоповтор есть даже на клавишах-модификаторах, которые традиционно используются для переключения раскладки, то мы имеем проблемы рассинхрона и при смене языка, особенно если язык должен переключаться при отжатии клавиши.
В общем мне, как пользователю, совершенно необходим быстрый, низкоуровневый и максимально конфигурабельный переключатель клавиатуры, который можно было бы настроить на любую комбинацию кодов устройства ввода. Поэтому я и реализовал переключатель LoLo Switcher с такой нестандартной архитектурой.
Новый релиз
Сегодня я выпускаю стабильный релиз LoLo Switcher v.0.20.
В этом релизе исправлены серьезные проблемы, которые были в первом публичном релизе, в частности устранена утечка дескрипторов процессов и памяти, которая возникала из-за неправильного запуска bash-команд, прописываемых в опциях CommandX. Внешне это проявлялось в том, что примерно после 500-600 переключений RUS/LAT переключатель вываливался с ошибкой "Failed to create thread to command".
Было проведено обширное тестирование LoLo Switcher через отладчик valgrind, чтобы исключить любые проблемы неправильного выделения памяти, так как переключатель клавиатуры должен работать практически всё время работы компьютера. В настоящий момент valgrind показывает отчет "ERROR SUMMARY: 0 errors from 0 contexts" в любом режиме работы переключателя.
Версия v.0.20 является стабильной, и рекомендована к использованию. Впринципе, на этом этапе возможности LoLo Switcher меня устраивают полностью, и следующих релизов в ближайшее время не предвидится. Всё, что закладывалось в программу, сейчас работает без нареканий, и что-то менять и дорабатывать не вижу никакого смысла.
Спасибо за внимание, успешного вам дня.
|
|
|
|
Удобно обустроить рабочее окружение - одна из главных задач для обеспечения продуктивности работы за компьютером. Linux в этом смысле очень несбалансированная система. Некоторые вещи поддаются точной настройке, и иногда возможности конфигурирования зашкаливают за все разумные рамки. А некоторые вещи, которым просто необходима возможность тонкой настройки "под себя", традиционно её не имеют.
Так, начиная с 1998 года, я за тринадцать лет не смог настроить переключатель клавиатуры на нужную мне комбинацию клавиш. Нет, конечно настроить переключение языка на нужную комбинацию не составляет труда, проблема только в том что пользоваться нужной комбинацией невозможно - всегда вылезут какие-нибудь побочные эффекты, которые перечеркнут все удобство выбранной комбинации. Каждый, кто достаточно долго работал в Linux, постепенно приходят к выводу, что самая беспроблемная клавиша для переключения языков - это CapsLock.
Да, CapsLock - самая беспроблемная клавиша с точки зрения ограничений системы ввода в Linux. Но не самая удобная с точки зрения эргономики. Поэтому недавно, сказав себе "хватит мучиться", я засел за написание нового переключателя клавиатуры, который можно было бы настроить на любое устройство ввода, на любую комбинацию действий с любой логикой срабатывания. И я смог его написать. Это звучит слишком невероятно, но тем не менее это так.
Наконец-то я легко настроил переключение языка ввода на нужную мне комбинацию клавиш, и использование этой комбинации не натыкается на побочные эффекты, возникающие, например, при использовании клавиш-модификторов. Да что там клавиши! Я даже смог настроить переключение языка на рычажок USB-джойстика! Была бы педаль - настроил бы переключение по педали.
Итак, встречайте! LoLo Switcher - новый низкоуровневый переключатель клавиатуры для X11! Особенности программы:
- Функционирует в любых окружениях рабочего стола (KDE3, KDE4, GNOME2, LXDE...);
- Поддерживает любые модели клавиатур и джойстиков;
- Работает напрямую с устройством ввода;
- Предельная компактность, скорость работы, нулевая нагрузка на систему;
- Прозрачная работа параллельно с другими переключателями клавиатуры;
- Феноменальная конфигурабельность;
- Встроенные средства диагностики устройства ввода.
За подробностями переходим сюда:
Официальная страница программы LoLo Switcher
Руководство по конфигурированию LoLo Switcher
Видео с демонстрацией работы LoLo Switcher на YouTube
Ветка форума с обсуждением переключателя клавиатуры LoLo Switcher
PS: Меня просят написать, что это за сочетание клавиш, которое невозможно настроить существующими средствами. Отвечаю: переключение языков ввода при отжатии левого и правого SHIFT. Обращаю внимание - при отжатии, а не при нажатии. Причем, если SHIFT использовался для написания большой буквы, то переключения при отпускании SHIFT происходить не должно. Если нажималась сложная комбинация, например CTRL+SHIFT+F1, то переключения при отпускании SHIFT тоже происходить не должно. Обоснование использования левого и правого SHIFT для переключения двух языков ввода дано здесь.
|
|
|
|
Программа накопления информации MyTetra обновилась до версии 1.30.1. В этом релизе были исправлены проблемы с шифрованием, возникающие у пользователей 64-х битных систем.
На официальной странице проекта выложены исходники новой версии MyTetra, и готовая сборка под Mac Os X (спасибо постоянному Mac-майнтейнеру Андрею Сергиенко).
Перед релизом были проведены тесты на шифрацию-дешифрацию в разных дистрибутивах Linux x86_64 и Mac Os X, а так же перекрёстные тесты шифрации-дешифрации на платформах с разной разрядностью.
PS: Пользователям традиционных 32-x битных систем i386-i686 смысла обновляться нет, доработки были проведены только для 64-х битных платформ.
|
|
|
|
Выпущена новая версия криптографической библиотеки RC5Simple v.1.23. В этом релизе была проделана работа по портированию на 64-х битные архитектуры. Теперь RC5Simple может работать как на традиционных 32-х битных платформах, так и на 64-х битных.
Перед выпуском библиотеки, были проведены тесты в следующих операционках:
- CentOS 5.5 x86_64
- openSUSE 11.3 x86_64
- Ubuntu 11.04 (x64)
- Mac OS X 10.6.8
Использовались микропроцессоры:
- AMD Phenom(tm) 8450 Triple-Core Processor
- AMD Athlon(tm) 64 X2 Dual Core Processor 4200+
- Intel Core2 Duo E8400 3.00GHz
- Intel Core2 Duo T7400 "Merom" 2.00GHz
Благодарю откликнувшихся тестеров: Андрея Сергиенко, Кирилла Детинова, Александра Зайцева. Особую благодарность выражаю Анатолию Мельнику за предоставление удаленного доступа к консоли 64-х битной платформы.
В ближайшее время выйдет новая версия MyTetra с полной поддержкой 64 бит. Следите за новостями.
|
|
|
|
Уважаемые пользователи MyTetra и 64-х битных операционных систем (Linux x64, Mac Os X).
Должен вас огорчить, что в 64-х битном варианте неправильно работает библиотека шифрования RC5Simple. Я, к сожелению, не имел и не имею возможности проверить ее работу на 64-х битных системах и исправить ошибку.
При публикации библиотеки два месяца назад, я попросил заинтересованных людей протестировать поведение библиотеки в 64-х битном окружении. Вот новость с описанием технологии тестирования:
https://webhamster.ru/site/page/index/main/news/158
За два месяца не нашелся ни один человек, который бы смог помочь. Поэтому сейчас могу только рекомендовать не пользоваться шифрованием в MyTetra на 64-х битных операционках.
Спасибо за понимание.
|
|
|