Skip to content

Моя лаборатория

05/08/2009

Наверняка у каждого программиста есть папочка, в которой он складывает всякие экспериментальные и просто интересные скрипты. У меня такие скрипты свалены прямо в htdocs, так что сначала пришлось отделить их от рабочих папок 🙂

Итак, краткое описание папок и файлов в Kuroki Kaze Labs 🙂

builder

builder
Инструмент — ну скажем так, для собирания коллекций, вдохновлённый Google Wave. Добавляет элементы в список прямо пока Вы печатаете название. Изначально затачивался под создание армилистов для Warhammer 40K. Возможно, когда нибудь станет полноценным Wave-ботом.

elo

В эту папку я скидывал различные версии скрипта elo.php чтобы их сравнить. Сам скрипт лежит прямо в корне, см. его ниже 🙂

euler

Каталог с решениями проблем Эйлера. Сейчас там скрипты для проблем с 3 по 9.

phpmorphy-0.2.5

phpmorphy
Морфологический обработчик. Переводит слова в основную форму. Я его использовал для парсинга дампа Википедии.

trueskill

Тот же симулятор турниров что в elo.php, но в качестве рейтинговой системы используется Microsoft TrueSkill. Эту штуку я портирую с F#, и продвигается это медленно. Пока не работает.

wargame

Тестовый хабраобразный сайт на движке Drupal. Тут я тестировал различные друпаловские модули для социальных сетей. Так как его базу в MySQL я удалил, сейчас не работает.

array-kill.php

Маленький скрипт для проверки — является ли массив массивом (is_array) после того как из него удалили последний элемент unset’ом. Ответ — является.

beer.php

beer.php
«99 bottles of beer» в стиле Code Golf (минимальное число символов в коде). Попытка довольно неудачная — сильно сократить код не получилось.

class-reference.php

class-reference.php
Проверка обращения к статическим переменным класса без создания экземпляра класса.

continue-test.php

Просто проверка поведения continue.

cutting.php

cutting.php
Скрипт, нарезающий скин для TeeWorlds на составные части и делающий из него Tee. Создавалось просто так, но в принципе может использоваться в каком нибудь скинохранилище. Дополнительно добавлен сортировщик цветов по оттенку и яркости — скины должны были раскрашиваться палитрами с colourlovers.com. Сортировщик должен был выбирать мягкие цвета для частей тела и более яркие — для глаз, рта и т.д. Тут ещё работа не закончена. Сейчас отображение tee выключено, я делал только сортировщик.

diamond-square.php

diamond-square.php
Тест алгоритма генерации ландшафтов Diamond-Square. Не работает, заброшен 🙂

dices.php

dices.php
Интерпретатор dice-нотации в стиле code golf. Т.е. должен бросать кубики согласно нотации, например, 4d6 + 20.

dmfunctions.php

dmfunctions.php
Испытание алгоритма фонетического поиска (алгоритм Дейча-Мокотоффа, адаптированный для русского языка) с Хабрахабра.

elo.php

elo.php
Симулятор турниров на выбывание с подсчётом рейтингов по системе Эло. Создание этого скрипта я уже описывал.

enchant2.php

Тест модуля enchant для PHP. Модуль предоставляет возможности спеллчекера. Сейчас не работает, т.к. модуль не включен.

euler1.php

Скрипт для решения проблем Эйлера. С каждой новой проблемой я перезаписывал этот файл, и только с третьей решил складывать файлы в отдельную папку.

fizzbuzz.php

fizzbuzz.php
Решение задачи FizzBuzz в стиле code golf.

genetics.php

genetics.php
Мини-фреймворк для тестирования генетических алгоритмов. Предоставляет функции для работы со строкой генов, мутации, кроссовер и т.д. Я уже и не помню на какую эволюцию он настроен сейчас.

golf.php

Непонятно что. Видимо пытался сделать что то связанное с code golf.

hex2bin.php

Перевод из шестнадцатеричной системы в двоичную в стиле code golf. Выдает бинарную строку.

image-a-nation.php

image-a-nation.php
Решение к Google Image-a-Nation Challenge. Составляет мозаику из маленьких картинок. Решение не моё.

language.php

language.php
Тест Google AJAX Language API — онлайн-переводчик.

mongo.php5

Тест mongodb. Вставка миллиона записей в коллекцию через mongo и через MySQL и замер времени. Mongo сервер сейчас не включен, так что — не работает.

scan.php

Ещё одна задачка от друга. Не работает.

sierp.php

sierp.php
Рисование треугольника Серпинского. Код не мой, а откуда то со StackOverflow. Я только немного поигрался с цветами и другими параметрами.

skyline.php

skyline.php
Решение проблемы горизонта. Работает, но неправильно.

token.php

token.php
Токенайзер. Подсчитывает количество повторений каждого слова в тексте, за исключением вспомогательных слов вроде ‘a’ и ‘the’. Это было задачкой на StackOverflow.

transpose.php

transpose.php
Транспонирование массива через array_unshift и array_map. Способ подсмотрен где то на StackOverflow.

twitter.php

Обращение к twitter API через Curl. Сейчас не работает т.к. выключен curl.

uploader.php

uploader.php
Простенький аплоадер, писал как пример.

xml-cleaner.php

Скрипт для нарезки большого XML (дамп английской википедии) на маленькие куски. Запускать не буду — очень уж долго работает 🙂

Одно время я пытался сделать поддомен labs на локалхосте, чтобы перенести туда все эти вещички, но у меня так и не получилось.

Реклама
7 комментариев
  1. TrueSkill предполагает одинаковую среднюю сложность игр. Вelief далекая от реальности с полученным далее μ-believed.

    • kuroikaze85 permalink

      Сложность игр в принципе зависит от уровня участников. Для новичков (когда алгоритм ещё не разогнался) она действительно может варьироваться. Но дальше участники специально подбираются с похожим скиллом (лучший матч — где максимальная вероятность ничьей), насколько я понял эту систему.

      Вообще, хороших систем ранжирования не так уж много, к сожалению. А у тех что есть — свои ограничения.

  2. Спасибо за дневник. Буду Вашим читателем.

    • kuroikaze85 permalink

      Есть желание описать свою «лабораторию»? 🙂 Было бы интересно посмотреть чем занимаются другие программисты.

  3. Моя «лаборатория» не блещет новыми технологиями, поэтому не буду её вытаскивать на обозрение. Хотелось бы просчитать теоретический предел успешности в моем тесте, но для этого требуется суперкомпьютер.
    Еще к вопросу рейтингов. Есть, по крайней мере, две компоненты успешности в играх: скорость реакции, принятия решений и интеллект — продуманность последствий. Если игры требуют того и другого, то в рейтинге два этих свойства будут смешаны.

    • kuroikaze85 permalink

      Да, естественно. На исход игры влияют тысячи компонентов — даже что съели игроки перед матчем. Любая система рейтинга собирает все эти компоненты в единый «скилл» игрока. Да, там не учитывается что рейтинг может быть по нескольким ситуациям, не учитываются ситуации типа «камень-ножницы-бумага» и т.д.

      С другой стороны, хорошая игра таких ситуаций допускать и не должна. Так что тут вопрос в основном что именно мы измеряем 🙂

  4. Что нам важнее измерить — наши приоритеты.

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s

%d такие блоггеры, как: