пятница, 13 января 2012 г.

Карелия, Медвежегорск

Удалось наконец-то съездить в Карелию, где проводил почти все детские летние каникулы.
В этот раз не дикарями, а туристами, но всё равно круто. Успели порыбачить на Онежском озере


понедельник, 8 августа 2011 г.

Записки с полей

Однокурсник уехал в Якутию от той-же Спецгеофизики, от которой я ездил на Алтай. Записывает свои впечатления в дневник.

понедельник, 11 июля 2011 г.

Ogre3D. Practical Application - Организация

Организация [или спасибо кэп]
Ваша программа должна где-то находиться. В Windows у вас скорее всего будет красивый MSI установщик, который запихнёт вашу игру куда-то в Program Files. В Linux это вероятно /usr/local или /opt tree. Но в любом случае вы не должны устанавливать игру в системные папки.

Всё, что вы должны запомнить это:
  • Располагать файлы игры только в папке данного приложения
  • Использовать относительные пути к файлам проекта

Запускаемый .exe файл будет удобно разместить в корне директории приложения, которую выберет пользователь. Например, если игра установлена в C:\Program Files\MyGameCompany\ReallyCoolFPS тогда .exe файл должен находиться в C:\Program Files\MyGameCompany\ReallyCoolFPS\game.exe. В коде ты всегда будешь ссылаться на ресурсы и модули в виде относительных путей. Например, если в папке C:\Program Files\MyGameCompany\ReallyCoolFPS\maps находятся карты в любом месте кода программы ты должен будешь указывать относительный путь к этой папке - "maps/", а не "C:\Program Files\MyGameCompany\ReallyCoolFPS\maps". Лучше всего хранить путь к директории игры, как константу, доступную из любых модулей игры, тогда её будет легко изменить (вместо того, чтобы искать 624 места в коде, куда ты её впечатал). Это считается хорошим правилом программирования, я надеюсь вы всегда так и делаете. Так же лучше ничего не устанавливать в системную директорию, это вызовет кучу проблем при удалении приложения и DLL-помойку, даже если у вас есть хитрый план, по которому вы назовёте файлы. Держите всё под рукой, в смысле помещайте всё в MSI или RPM установщик приложения. Это позволяет легко найти запускаемый файл и помогает следить за используемыми модулями и их версиями.

С другой стороны вы не всегда можете быть уверены в доступности чтения/записи в директорию приложения. В Windows XP Home например, или в папке /usr/local, куда приложение было установлено под рутом. Так, что вы должны написать конфигурацию для записи пользовательских данных в определённое место для каждой системы. На Linux вы можете создать что угодно в $HOME (доступно через использование getenv() system API), на Windows используется Application Data Folder через \Documents And Settings\ и \Documents And Settings\Local Settings эту информацию можно получить используя SHGetFolderPath() API. [Так же можно использовать char *userpath = getenv( "USERPROFILE" ) на Windows]. В любом случае нужно создать поддиректорию и хранить там дынные своего приложения.

Ogre3D Beginner Tutorial without the ExampleApplication framework

Появилась идея заняться разработкой игр, в связи с чем начали осваивать и выбирать графический движок. В основном нас заинтересовали Unity3D, Ogre3d и UDK (может быть ещё XNA). Наткнувшись на гайд по Ogre решил его перевести для себя. Пусть будет криво, но будет. Я потренируюсь в переводе и необходимость закончить перевод будет дополнительным стимулом изучить Огра.

Введение (о чём этот гайд)
Организация (или спасибо кэп)

пятница, 24 июня 2011 г.

Lenovo, acpi & keyboard

На баг трекере вчера написали решение проблемы с неработающей клавиатурой нетбука Lenovo S10-3c на Ubuntu, и на других дистрибутивах. Там ссылаются на совет как включать и отключать клавиатуру, следуя этому совету сегодня без проблем включил клавиатуру на своём нетбуке и уже ставлю убунту, ибо периодические подвисания винды на нём надоели.
Работает и клавиатура и acpi, что и требовалось. Оказалось всё так просто.

вторник, 5 апреля 2011 г.

Дипломное проектирование

Сейчас я должен был бы сидеть и писать свой диплом, на тему: "Региональные сейсморазведочные работы на территории Республики Коми с целью выявления локальных нефтегазоперспективных объектов" и бла бла бла, но лыжи что-то не едут.

По идиотическому стечению обстоятельств мне (и ещё нескольким людям) поменяли дипломных руководителей чуть ли не в день подписания приказа. Такая вот у нас организация всего в институте, но это отдельная история. Хотя с руководителем я знаком только по телефону, мне ещё повезло. Ребятам, у кого руководителем попался зав. кафедрой приходится каждый раз объяснять кто они и зачем пришли, и получать каждый раз новую, и иногда противоречащую старой инструкцию.

До защиты ещё 2 месяца, успокаивает то, что такая фигня не у меня одного. На диплом потратил пока только пол дня, открыл методичку и скопипастил из данного мне проекта часть информации, в соответствии с методичкой.
В планах прочитать всё это и встретиться с руководителем и консультантами по геологии и экономике (и смету мне составлять тоже надо).

Но это всё теория, на практике я чиню компы, дежурю в офисе, где работал раньше в свободное время и радостно ковыряюсь в python. За этим ковырянием время на работе пролетает быстрее.

Язык очень понравился, красиво, удобно, легко осваивается. В планах освоить потоки, попробовать написать приложение с использованием gui, порисовать в openGL, ну и может ещё чего. Уже начал читать уроки по django. Надо как-то по порядку учить, а хочется всё вместе.

Пока не совсем понятно как делать .exe приложения на python, решение с py2exe кажется каким-то не очень удобным, ну гуглится в основном оно. Поживём посмотрим.
Зато сразу проснулось желание поставить linux, но на нетбуке, на котором я в основном программирую у линуха есть проблемы с совместимостью, либо не работает клавиатура и мышь, либо acpi (bug). И так и так использовать не удобно.
Хочется для начала что-то попроще, вроде ubuntu, на которой я уже сидел когда-то. Жду второй беты.

среда, 23 марта 2011 г.

VB6

До сих пор кто-то интересуется visual basic 6, видимо в институтах всё учат и учат. Да так учат, что люди ищут как отделить целую часть от дробной.
Делается это вообщем то совсем просто:

Dim a as Single
a = 3.14
Print Int(a) 'Целая часть
Print a - Int(a) 'Дробная часть

Так отвык уже от басика. Он по своему няшен и потом первый язык, которому меня начали учить.