Category: it

запуск Civilization I под Android и Ubuntu

Захотелось олдскульного - первой Цивилизации в которую играл еще в школе. Ставится на смартфон она так:

1. Ставим aFreebox через Google Play
2. Качаем Civilization с Абандонии куда-нибудь в файловую систему, распаковываем
3. Запускаем freebox
4. DIR
5. cd CIVILI~2 или аналогично
6. CIV.EXE

Я запускаю в VGA, с мышью, без звука



В убунте все еще проще, используется то же содержание архива с абандонии, дальше:

apt-get install dropbox
dropbox
mount c /home/sim/dos/Civilization
c:
civ.exe

Компиляция Pandas в Python 2.7 в MinGW

Почему-то установка pandas в Python 2.7 это какой-то гемор, не pip, ни easy_install не хотят ее устанавливать, последний на

easy_install pandas

ругается:

error: Setup script exited with error: Unable to find vcvarsall.bat

Для исправления ситуации интернетом рекомендуется установить Microsoft VC Express, но он хоть и бесплатный какой-то большой и мрачный, ну его нахрен. Поменяем компилятор на православный MinGW. Схема подчерпнута здесь.

Скачиваем и устанавливаем MinGW: http://sourceforge.net/projects/mingw/files/latest/download

Запускаем консоль и идем в папку MinGW\bin:

cmd
cd c:\MinGW\bin\

Говорим там:
mingw-get install gcc
mingw-get install mingw-utils

Создаем c:\Python27\Lib\distutils\distutils.cfg, пишем там такое:

[build]
compiler = mingw32

Добавляем в переменную PATH бинарники MinGW
PATH=%PATH%;c:\MinGW\bin

Находим файл: distutils\cygwinccompiler.py и отредактировать его, убрав все-mno-cygwin (почему)

Ставим собственно панду:

easy_install pandas

Проверяем:

python
import pandas

Запросы к Википедии, как к базе данных

Пардон за ретроградство, но недавно я осознал, что википедия это не только энциклопедия, но и огромная база данных. После посещения конференции тамошний доклад про семантический веб как-то сильно меня затронул. Я конечно слышал про linkeddata и до этого, но никогда не воспринимал его всерьез и почему-то в этот раз это сильно задело, на википедию и на веб вцелом я стал смотреть по другому.

Например есть задачка, получить список стран и их площадь. Казалось бы, все просто, лезем, гуглим ищем, находим какой-нибудь приличный источник...Это подход прошлого и настоящего, в будущем мы будем осуществлять запрос к некой вселенской базе данных и получать инфу. Чем это отличается от настоящего, тоже базы данных и т.д.? Тем что из себя представляет эта вселенская БД - связанное множество источников знающих друг о друге и транслирующих себя в интернет.

Вернусь к задаче. Википедия это не структурированная база данных к которой можно делать запросы. Ее структурированной версией является DBPedia. Чтобы решить нашу задачку надо составить правильный запрос на SPARQL - языке запросов который может запрашивать данных хранимые в формате RDF.

Наш будет выглядеть так:
select distinct * where
 ?country dbpprop:areaKm  ?area .
}
Читается он так, выбери все неповторяющиеся (distinct) сущности Country и их площади в километрах. Чтобы понять какие есть параметры у сущностей, надо просто перейти по ссылке и посмотреть что есть в списке. Вместо dbpprop:area можно писать ссылкой: http://dbpedia.org/property/areaKm
select distinct * where
}
Так как нам нужно на самом название страны, а не ее сущность, то расширим так. Вместо звездочки поставим названия переменных которые нам нужны, добавим еще одно свойство commonName (а - это сокращение для rdf:type).
select ?name ?area where
{?country rdf:type <http://dbpedia.org/ontology/Country> . 
}
И наконец отфильтруем всякую фигню не на английском добавив FILTER:
select ?name ?area where
{?country rdf:type <http://dbpedia.org/ontology/Country> . 
 FILTER langMatches( lang(?name), "EN" )
}
Результат копируем и засовываем в Virtuoso SPARQL Query Editor.  Обратите внимание, что можно выбрать вывод сразу в CSV.

Еще подробные примеры можно найти тут.