Цифровой скиталец

Мы живём, пока мы летаем

EVE Online

    А ещё я играю в MMORPG (многопользовательскую онлайновую ролевую игру) EVE Online.  Действие происходит в космосе, игрок - владелец межзвёздного судна (или сотни судов). Игра уникальна одной особенностью - 6000 звездных систем и 25000 игроков находятся одновременно на одном сервере. Насколько мне известно, больше таких игр нет, во всех остальных игровой мир делится на части. (шарды).  Плюс отличная графика (скриншоты), подходящая музыка, навороченность ролевой части и настоящая космическая атмосфера. 
   Очень порадовала такая деталь. Когда подлетаешь к jumpgate (воротам для прыжка в другую солнечную систему) , видишь прямо в космосе огромный экран. На нём крутится реклама (к счастью, ненастоящая), и кое что ещё - объявления "Разыскивается за преступления против человечества" по отношению к игрокам-пиратам с суммой вознаграждения, выплачиваемого убийце пирата Такие детали придают играм дьявольский шарм и реалистичность. (Учитывая, что вознаграждение может добавить любой, и получить тоже любой, то есть всё на самом деле).

Скриншот из космической MMORPG EVE Online: космический корабль совершает прыжок на фоне темного звездного неба. Игровой интерфейс отображает информацию о маршруте и процессе перемещения, а также сообщение «WANTED» на дисплее корабля.

Читать дальше →

Злой как чёрт

Убью криворуких админов!!!

   Адрес https://web.archive.org/web/20060415181401/https://radio.super.lv не везде работает - и всё из-за института математики ЛУ, который отвечает у нас за DNS имена. Они считают себя сильно умными и настроили всё в нарушение стандартов. Причём на письма не отвечают, звонить надо.

Читать дальше →

Good news, everyone! Big and dull programming article follows!

Сделал что хотел.
   В общем есть такой онлайновый многоязычный словарь с фразами https://abc.times.lv. Но бесплатная версия выдаёт только слово за раз. Как-то раз мне стукнула в голову мысль создать хитроумный скрипт. Действует он так: 
1)Пользователь на моём сайте запрашивает слово для перевода, то есть передаёт его моему скрипту.
2)Скрипт обращается на abc.times.lv, скармливает это слово тамошнему словарю, и узнаёт сколько страниц со словами-результатами получилось
3)Скрипт качает все эти страницы по порядку, и выводит в одном окне, красиво и без рекламы
Однако, такой механизм, реализованный на языке PHP (который я вообще не знаю, кстати) совершенно безбожно тормозил. Ещё бы! Чтобы такое проделать, скрипту надо скачать от 10 до 150 страниц размером 50 КБ, причём делается последовательно, а не параллельно.
В итоге страница грузилась минуту, и я на такую идею забил. Сырая версия для латышского языка, впрочем, до сих пор валяется вот тут. Слово abols (яблоко) с 34 вариантами перевода грузится 42-70 секунд.
   Уже тогда появилась мысль грузить страницы параллельно, как это делают современные менеджеры закачек вроде FlashGet, загружающие одновременно разные части скачиваемого файла. Но на PHP возможность это сделать колеблется от "трудно" до "невозможно" в зависимости от условий хостинга.
Поэтому сейчас, когда руки дошли оценить среду разработки ASP.NET, решил реализовать идейку.
В итоге получилась ASP.NET программа на C#, запущенная на моём домашнем компе.
Поддерживается пока что только латышско-русский словарь.
Работает новый алгоритм так:
1)Качает первую страницу, узнаёт, сколько будет всего страниц.
2)Создаёт столько потоков (threads), сколько страниц, и заставляет каждый поток качать свою страницу. В итоге всё скачивается более-менее одновременно.
3)Выводит результат.
  Затрачиваемое время - 25-30с. Увы, выигрыш почему-то невелик. Впрочем, сравнивать не очень корректно, потому как запускалось это на совершенно разных компьютерахв разных местах.
   Из интереса сделал вариант, работающий по-старому. Время стало сравнимо с вариантом на PHP, что логично, ведь упирается всё в скорость скачивания, а не исполнения программы.
В общем, пользоватся пока нельзя. Следующий логичный шаг - сделать кэширование слов. Но это станет уже крайней стадией нарушения копирайтов, и в открытый доступ такое выложить не получится.

Читать дальше →

;-(