Обновил langs.cpage.ru
Последние несколько дней активно занимался разными улучшениями нового сервиса для изучения иностранных слов.
В Android клиенте добавил подсветку пройденных слов, упростил интерфейс пользователя, исправил работу с синонимами, исправил множество различных багов.
На сайте добавил новый словарь неправильных английских глаголов. Упростил добавление новых слов в словари.
Сервис для изучения иностранных языков
Случилось так, что перед поездкой в Италию мне захотелось выучить, хотя бы чуть-чуть, итальянский язык. Для изучения иностранных языков сейчас есть множество различных программок, в том числе и те, что устанавливаются на мобильные телефон и когда, например, стоишь в очереди ты можешь учить иностранные слова, с пользой проводя время. Но, к сожалению, я не нашёл ни одной программы, которая позволяла бы, скажем, изучать неправильные глаголы, или скажем, для японского языка, изучать канзи и различные варианты их написания. Кроме этого, большинство таких программ или ориентированы только на работу с сайтом, либо только позволяют работать с фиксированными словарями без возможности редактировать сами словари. А ведь иногда бывает так - видишь незнакомое слово, хочется его добавить в программу и потом его периодически повторять. Поэтому, я задумал создать свой сервис для изучения иностранных языков, такой которой пригодился бы лично мне.
Несколько месяцев проектирования и, в-черне, прототип заработал. Пока это даже еще не бета, но основные функции уже реализованы. Проект пока не имеет постоянного адреса а живет на http://langs.cpage.ru/. Как только я придумаю как его обозвать сразу перенесу.
Что реализовано:
- регистрация на сайте;
- работа со словарями: возможность добавления, редактирования и удаления словарей;
- работа с несколькими устройствами - пока это только телефоны на Android;
- возможность скопировать словарь ближнего своего и работать как со своим;
- поддержка нескольких форм перевода;
- возможность учить неправильные глаголы;
- возможность учить варианты произношения канзей японского языка;
- самое главное: двусторонняя синхронизация между сайтом и мобильным клиентом;
- создан мобильный клиент под Андроид;
Что планируется:
- Большая работа по улучшению эргономики сайта и клиента
- Перевод сайта на несколько языков
- Создание клиентов под iOS и WP а также клиентов для Windows и Linux
Вот пока и всё. Всем кому интересно предлагаю протестировать сервис. Сначала нужно зарегистрироваться, скачать мобильный клиент на телефон (пока только под Android 2.2). В маркете его пока нет. Все фичреквесты можно писать в комментарии к этой записи, обязательно постараюсь учесть любые пожелания. Ну и критика приветствуется.
MySQL сервер ушёл гулять
Иногда на сервере происходят сошибки типа "mysql server has gone away". Ошибка весьма досадная тем, что возникает она не всегда а только иногда. При этом, путем эмпирических действий удалось выяснить, что такое сообщение вызывается если PHP скрипт какое то время чем то сильно был занят и при этом не обращается к базе данных. Когда после некоторго периода бездействия скрипт, наконец хочет что-либо записать в базу данных то обнаруживается, что ссылка на соединение с базой данных уже мертва и все последующие запросы вылетают с ошибкой "mysql server has gone away". Понятно, что соединение с базой данных рвется по некоему таймауту, но вот по какому и как его увеличить?
Оказалось, что дело в переменной wait_timeout которая живет в /etc/my.conf. В моем случае она оказалась установленной в 30 секунд, поэтому, если во время выполнения скрипта между запросами оказывается промежуток более тридцати секунд - соединение рвется и больше не восстанавливается.
Изменить это значение можно либо поправив my.conf, либо после установления соединения выполнив "SET wait_timeout=1000".
VML в IE8
Заметил, что моя векторная библиотечка не хочет работать в восьмом эксплорере. При этом в Интернете вообще мало примеров работы VML которые бы оставались работоспособными в этом замечательном браузере. Даже на сайте Microsoft примеры VML которые прекрасно работали в шестой и седьмой версии напрочь отказываются работать в восьмерке.
При этом, вроде бы, иногда, что-то как-то работает в режиме совместимости, но не всегда, и только при определенных условиях типа наличия или отсутствия DOCTYPE и даже версии Service Pack.
Убив день на исследования я так ничего не выяснил. Кто то говорит что нужно переделать все размеры в заданные явно в пикселях, кто-то указывает на баг в количестве каскадных таблиц в IE. Каждый раз когда я, наконец, думал, что локализовал проблему она появлялась с другой стороны.
И вот когда я уже почти собрался переделать код на вывод VML в отдельном iframe который бы работал только в режиме совместимости, я нашел код который работает всегда и всезде во всех режимах - это оказался все тот же raphael. Дмитрий Барановский нашел способ обуздать IE8 - весьма неочевидным и почти магическим способом он заставил это всё работать как надо.
Обновлил свой пример для работы c VML.