понедельник, ноября 02, 2009

Русский сайт с видеолекциями.


Вчера у меня наконец появился достаточно толстый канал, чтобы смотреть видео в интернете в прямом эфире без подзагрузок, и по этому поводу вчера несколько часов я провёл за исследованием содержания нового портала-агрегатора видео лекций по различным предметам univertv.ru

До этого мне уже попадался англоязычный аналог - academicearth.org. На нем лекций, конечно, побольше и они из более солидных источников, типа Кембриджа, Массачусетского Технологического и Йеля, а не Марийского политеха, но всё же на родном языке слушать приятнее.

P.S. Еще один классный сайт с видео-курсами для ИТ-шников - Интернет Университет www.intuit.ru

пятница, августа 21, 2009

Список open source игр.

Случайно нашёл в википедии список опенсорсных игр, для которых можно скачать исходники и при желании поучаствовать в их дальнейшей разработке. В нем больше 100 игр, причем, насколько я понял, совсем не доделанные проекты отсутствуют.

В принципе, должно быть полезно для того, чтобы учиться писать программы в команде. Всё равно в одиночку сейчас ничего серьёзного не напишешь, а так и fun и польза. Посмотрел тут на днях исходники одной open source игры в процессе разработки (в том списке она ещё отсутсвует) - FreeOrion - по мотивам Master of Orion. Она еще до версии 1.0 не добралась, но написано уже порядочно. Пишут на C++ и Python, используют Boost, OGRE и еще много интересных технологий и библиотек.

Код написан в хорошем объектно-ориентированном стиле, при поверхностном осмотре замечены boost::graph (библиотека для работы с графами - для моделирования вселенной, в которой каждая звездная система - вершина графа), boost::statechart (конечный автомат - для переходов между разными состояниями игры), boost::python, boost::shared_ptr, а также обильное использование STL. Так что можно просто посмотреть, как надо писать.

Я думаю, что и в других достаточно давно существующих проектах, таких как Battle for Wesnoth (пошаговая стратегия в фэнтези мире), FreeCol (клон Colonization написанный на java), OpenTDD (open source клон Transport Tycoon Deluxe), UFO Alien Invasion (клон X-COM) есть чему поучиться в смысле программирования игр. У таких долгоиграющих проектов есть развитое community, wiki сайты, форумы, всегда можно получить помощь, если что-то не понятно.

P.S. Нашёл wiki, посвященную таким играм - Libregamewiki.
А так же блог на английском - freegamer.blogspot.com

пятница, июля 24, 2009

Игры для программистов

Update от 10 Сент 2015 г: Более свежие посты на эту тему:  #1#2 и #3.

Интересный способ учиться программированию вообще или какому-то языку программирования в частности - играть в игры для программистов, в которых обычно от игрока требуется запрограммировать поведение робота, космического зонда, живого существа или еще чего-нибудь в этом роде так, чтобы победить другие алгоритмы.

Список таких игр с кратким обзором можно найти на хабрахабре.

Самые известные:

  • Robocode - соревнования между танками-роботами, алгоритм нужно писать на Java (пытаются написать C# клон игры - http://www.pureai.com/TankAI/).
  • Google AI Challenge - создание программы по контролю над колонией муравьев, сражающихся с колониями муравьев других игроков. Программу можно писать на куче реальных языков программирования.
  • GalaxyFx:Старатели - космические зонды должны собирать ресурсы. Игра сделана в Sun Microsystem, писать нужно на JavaFX Script. Можно участвовать в соревновании и выиграть призы от компании - главный приз ноутбук.
  • Terrarium - создать живое существо и победить в борьбе за существование. Писать надо на C# (.Net 2.0)
  • Breve - моделирование децентрализованных систем и искуственной жизни. Написано на Python, алроритмы нужно писать на нём же или на собственном языке.
  • HabraWars - сражение роботов, писать надо на JavaScript.
  • web-worker-wars - еще одно сражение ботов написанных на JavaScript.

Это все open source по большей части, так что если надоест играть, то можно и в самих проектах поучаствовать.
Есть куча подобных игр, использующих свои собственные языки программирования. С точки зрения обучения программированию это несколько более запутанный способ, чем писать на реальном языке, но в принципе тоже полезно. В конце концов когда я в ВУЗе учился, за 5 лет нас заставили попробовать писать примерно на 10 языках программирования, включая всякую экзотику, реально я из всего этого только C/C++ и Perl сейчас использую.
  • A.I. Wars - программирование роботов-жуков
  • Colobot, Ceebot - роботы, осваивающие другую планету. Язык программирования Cbot - смесь C#, C++ и Java.
  • DarwinBots - программирование колонии микробов
  • Infon Battle Arena - программирование жучков на языке Lua.
Полный (наверное) список подобных игр можно увидеть на DMOZ.

P.S. Еще одна возможность что-то запрограммировать в игре, которая приходит мне в голову - программирование скриптов в R3: Reunion. Это большая игра, посвященная космосу и разработчики оставили для всех желающих возможность перепрограммировать всевозможные скрипты в ней, подробнее можно ознакомиться тут - Космическое программирование.

пятница, июня 26, 2009

Подготовка к собеседованию

Хорошая мысля приходит опосля, как известно... но все же на будущее. Типичное собеседование для программиста проходит обычно в течении 1-1,5 часов, в течении которых тебя мучают задачками на далекие от повседневной работы темы. Засада обычно не в сложности задачи (за компом при наличии MSDN она легко пишется за 5 мин), а в том, что тебя заставляют решать ее на бумажке, а весь синтаксис у тебя из головы вылетел.

Так что перед собеседованием надо потренироваться в решении простых задачек на каком нибудь из этих сайтов (это сайты для "спортивного программирования"/олимпиад) - просто, чтобы набить руку в применении STL к примеру - C++ программистов любят озадачивать чем-нибудь подобным.

Я STL ценю, уважаю и время от времени использую в работе - но не настолько часто, что бы помнить без документации мелкие детали. Или, к примеру, просят вас написать программу на скриптовом языке, perl'е допустим, который вы в принципе знаете и несколько месяцев/лет назад использовали, но за это время подзабыли синтаксис - а в резюме конечно его перечислили. Когда я устраивался на предыдущую работу, мне весь мозг вынесли, расспрашивая про детали c++ и параллельного программирования - и после того, как все же взяли, я почти 2 года писал на чистом C, без всяких плюсов и тем более без параллельного программирования - просто проект существовал уже много лет и никто на C++ его переписывать не стал бы.

В общем, чтобы избегнуть неприятных моментов на собеседовании я все же впредь буду предварительно тренировать руку на олимпиадных задачках, и всем коллегам советую тоже.

P.S. Оч. хорошая статья - Joel on Software: Искусство проведения интервью

вторник, июня 09, 2009

Techdays.ru - "вебинары" для IT-шников

Недавно наткнулся на этот проект - коллекцию веб-семинаров по новым технологиям в основном от Микрософт и Intel на русском языке. Прослушал/просмотрел несколько и проникся - замечательный ресурс, на котором можно познакомится с современными IT-тенденциями, причем значительная часть семинаров - из разряда "узнай за 15 мин" - пожалуй, так получать представление о чем то новом удобнее, чем читая статьи - благодаря лекции и слайдам все нагляднее.

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

Ссылка - techdays.ru

четверг, апреля 23, 2009

Online обучение

Несколько лет назад я случайно обнаружил в сети сайт с видео/аудио/текстовыми версиями лекций, прочитанных в одном из крупных американских университетов (Йельском). Несколько позже я скачал аудио версии одного из курсов, чтобы слушать по дороге на работу - заодно и в английском попрактиковаться лишний раз.
Недавно обнаружил, что прогресс не стоит на месте - появился сайт, на котором собираются подобные бесплатные курсы крупных университетов по разным дисциплинам - academicearth.org.
Сейчас на сайте собраны лекции 6 крупнейших штатовских университетов, 60 полных курсов, более 2400 лекций. В том числе лекции по Computer Science - 17 курсов.
На ту же тему - есть сайт http://www.ocwconsortium.org/ предлагающий курсы еще большего количества универов многих стран. Хотя интерфейс тут мне показался менее удобным.

пятница, апреля 10, 2009

Evernote на русском

Недавно заметил, что сервис по ведению заметок Evernote, за которым  я издавна следил был локализован. Сегодня скачал клиент, на первый взгляд достойная замена неподдерживаемому нынче Google Notebook и Microsoft OneNote.

Правда бесплатная версия имеет некоторые ограничения по количеству сохраняемой информации в месяц, но для меня совершенно не напряжные. Можно сохранять до 40 Мб в месяц, создавать в месяц не более 20000 текстовых заметок, 270 копий вебстраниц, 400 фото с телефона, 39 голосовых заметок, 11 фото высокого разрешения.

Платная версия, заменяющая эти ограничения на более легкие:


Текстовых заметокМного, много тысяч
Фото с телефона / рукописных заметок5,000
Копий веб-страниц3,300
Голосовых заметок450
Картинок высокого разрешения150

стоит 5$ в месяц.

среда, апреля 01, 2009

WorldWide Telescope от Microsoft

Microsoft играет в догонялки с Google, не так давно они сделали конкурента режиму Sky в Google Earth - WorldWide Telescope. Это виртуальный телескоп, с помощью которого можно рассматривать небо в нескольких диапазонах электромагнитных волн, а также рассмотреть поверхность планет Солнечной системы. Работает по тому же принципу, что и Google Earth, нужно скачать небольшой клиент, затем он скачивает картинки со звездным небом, полученные с помощью лучших телескопов на Земле и в космосе, включая телескоп Хаббла. NASA подарило им 100 террабайт данных и обещает дарить и дальше. Недавно появился и чисто браузерный режим работы, для которого нужен Silverlight.

Программка довольно симпатичная, траффика правда много жрет, но тут уж ничего не поделаешь.

вторник, февраля 10, 2009

Украденные секретные документы.

Для памяти.

Благодаря lenta.ru узнал новость дня: в свободном доступе в сети появилось несколько тысяч аналитических отчётов для конгресса США, доступ к которым обычно предоставлялся только за крутые бабки, созданных с 1990 до 2009 года. В том числе о России, к примеру об августовской войне. Или про экономический кризис.

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

Весь архив размером 2 Гб можно скачать на торренте.

среда, февраля 04, 2009

Эксперимент с собственным сайтом закончен

Оплаченные полгода кончились, я поигрался с собственным блогом на wordpress, все было интересно поначалу, но потом энтузиазм иссяк и я с ноября перестал писать в блог. Попытки зарабатывать закончились печально, заработал чуть больше доллара на продаже ссылок и несколько долларов на Adsense, которые еще и получить можно только тогда, когда там будет $100. Так что даже близко затраты не окупаются. В общем решил я с этим экспериментом завязать, отныне буду писать здесь и только когда мне захочется. Я блог использую в основном, чтобы делать записи по работе, чтобы не потерять информацию. С зарабатыванием денег на нем я пожалуй завяжу.