Как я ставил программы на Ubuntu.

Думаю что данный пост в какой-то мере можно считать продолжением моего прошлого поста про взгляд на Ubuntu. Тогда я смотрел на как работать с самой системой. Сейчас же я столкнулся с немного другими задачами.

1. Я решил развернуть LAMP. Ок. Ищем Apache в центре приложений Ubuntu:
Ну в принципе я и не удивительно что его там нет. Зачем засорять центр приложений программами для разработчиков. Все равно все ставят из командной строки. Благо командная строка нас не пугает.
Как оказалось позднее все ставится одной строчкой:
sudo tasksel install lamp-server
Но когда я ставил на эту команду я не наткнулся и поэтому ставил все вручную через apt-get. Ну на самом деле делается тоже все одной строчкой:
sudo apt-get install apache2 php5 mysql-server phpmyadmin
Я не очень помню, но вроде бы даже все сразу и заработало.

2. Под Windows я пользуюсь Sublime Text 2. Замечательный редактор. Попробуем поставить.
В центре приложений я его не нашел, хоть и был уверен что он там должен быть. Грустный смайлик нам говорит что соответствующие объекты отсутствуют:
Ок. Идем на сайт Sublime - там нам предлагают скачать архив, из которого все и работает. Но меня немного смутил вопрос "А будет ли это обновляться?", поэтому я пошел в гугл и нашел следующее решение:
sudo add-apt-repository ppa:webupd8team/sublime-text-2
sudo apt-get update
sudo apt-get install sublime-text
В большинстве мануалов по установке толком ничего не объясняется, поэтому команда add-apt-repository может ввести в заблуждение. Да, как можно заметить из названия, это подключение стороннего репозитория. Но в данном случае мы подключаем репозиторий, специально созданный для одной программы. Как я понял, Canonical таким образом решили проблему доступности софта, которого нет в основном репозитории. То есть кто угодно может создать программу и распространять ее через ppa:my_name/my_awsome_program. К слову, Sublime распространяют не сами разработчики.

3. И под конец я решил поставить Ruby on Rails. Внезапно он нашелся в центре приложений.
Это хорошо, но как оказалось, никто так не ставит Ruby. Для него есть такая штука как rvm - Ruby version manager, утилита, позволяющая переключаться между разными версиями ruby и устанавливать новые. Поэтому установка Ruby начинается с установки rvm. Но вот как раз rvm в репозитории Ubuntu нет. Более того на сайте rvm разработчики сами советуют устанавливать все напрямую, используя curl. В конечном итоге порядок установки рельс сводится к следующему:
sudo apt-get install curl # сначала ставим curl
curl -L get.rvm.io | bash -s stable --auto # скачиваем и устанавливаем rvm
rvm requirements
Последняя команда выведет список зависимостей. Так как мы ставим все не через apt-get, то и сами зависимости подтягиваться не будут, поэтому ставим их в ручную:
sudo apt-get install build-essential openssl libreadline6 libreadline6-dev curl git-core zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt-dev autoconf libc6-dev ncurses-dev automake libtool bison subversion pkgconfig
Дальше устанавливаем сам Ruby:
rvm install 1.9.3 # вместо 1.9.3 можно ввести ruby-head для установки последней версии.
rvm use 1.9.3 # указывает какую версию Ruby использовать. Без этого работать не будет.
ruby -v # Проверяем
Последняя команда выведет что-то вроде "ruby 1.9.3p327 (2012-04-20 revision 35410) [x86_64-linux]". Это информация нужна для следующей команды:
rvm --default use 1.9.3-p327 # это что бы Ruby работал сразу при открытия консоли
Вот теперь можно ставить рельсы:
gem install rails -v 3.2.9

Итого 8 команд. Когда я ставил в первый раз - я не знал про rvm reqirements. Понятное дело ничего не заработало. Во-второй раз я не знал про rvm use - в итоге команда gem только делала видимость работы. Пока я не нашел нормальный гайд на английском (на русском, как оказалось, ничего толкового), я не смог установить Ruby on Rails.

Итого: На Ubuntu легко установить LAMP - это давно сформировавшаяся и устоявшаяся связка программ, которую использует огромнейшее количество людей. Для установки менее популярных вещей, вроде Sublime Text 2, требуются знания о сторонних репозиториях, о том где их искать. Причем ни центр приложений Ubuntu, ни apt-get вам ничего не подскажут. Есть и третий тип программ, разработчики которых игнорируют стандартную систему распространения по, что сильно усложняет установку. Видимо у них есть на это свои причины. Может кто-то в теме почему так происходит?

PS. В центре приложений есть Rails, который подтянет все зависимости, но его версия 2.3.14.2, в то время как актуальная 3.2.9.

Pixel-graphic games

 Я люблю писксельную графику. Я обожаю пиксельную графику. Никак иначе этот пост начать я бы не смог. В моем детстве была Денди, а это часы 8битных игр и большие запасы воспоминаний и тем для ностальгии. Брат меня на меня сильно злился, когда я стрелял по своей базе в Battlecity, которую иначе как "танчики" никто не называл. И сейчас, иногда, я запускаю эмулятор и играю в Chip'n'Dail, Contra, Darkwind Duck, Battletoads. С этого у меня и пошла любовь ко всему компьютерному. Но хорошие игры делали не только в моем детстве.
 Однажды мне попалась в руки, а точнее на компьютер, игра Cave Story. Игра зацепила сначала графикой, потому музыкой, в итоге я стал ловить кайф и от системы оружия, и от самого главного - сценария. Первая версия была на английском и в сюжет я особо не вдавался. Потом поиграл в русскую версию, узнал про разные пути прохождения игры. И незаметно Cave Story присоединилась к тем замечательным играм, которые я прохожу по несколько раз. Скачать игру можно на ее сайте www.cavestory.org.
 Другое место, куда я захожу регулярно - это nitrome.com. Это замечательная студия, регулярно выпускающая игры с пиксельной графикой. Зачастую их игры еще и отличаются интересным геймплеем, например Fault Line. И во все из них можно поиграть у них на сайте. Будьте аккуратны - можно залипнуть надолго.
 Ну и пока последний в этом списке - konjak.org. Это один человек, который делает игры. Полностью. И графика, и музыка, и программирование, и история. И получается у него неплохо. Самая известная его игра, наверное, Noitru Love 2: Devolution. Игра продается всего по 5$, что на мой взгляд, для такой игры очень мало. Так что советую.

 Konjak, или как его зовут Joakim Sandberg, достаточно открыто общается со своими фанатами и выкладывает наработки своих проектов. Например сейчас он работает над The Inconoclast. Игру с парой первых уровней можно свободно скачать. Действие игры разворачивается в мире, где жизнью управляет одна корпорация и быть простым механиком, помогающим людям - преступно. Естественно главный герой в игре - механик и ее (да, это девушка) главное оружие - большой гаечный ключ. Звучит бредово, но выглядит замечательно. Особенно в движении.
 Особенно радует проработанность элементов. Я даже не представляю насколько это муторная работа - сидеть и вырисовывать попиксельно изображения. А здесь прекрасно все - персонажи, их действия, дома, деревья, задний фон, противники.
  А вот так в игре должны выглядеть некоторые способы передвижения (в доступной версии этого нет):

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

Кнопка поиска на Windows Phone 7

Многие владельцы телефонов на Windows Phone 7 отмечают полную бесполезность кнопки поиска. Так оно и есть. В аппаратах, которые продаются в России, по умолчанию эта кнопка запускает браузер и открывает Яндекс. Конечно можно порадоваться за российский поисковик.    Но лучше мы приведем поиск более удобный вид.
На самом деле в Windows Phone 7 есть специально приложение Bing. Но поскольку официально Bing в России не запущен, то и приложение не запускается в России. Но на самом деле достаточно только сменить язык браузера и посика в настройках телефона на Английский (США). После чего поиск станет намного функциональней и будет выглядеть так:
Но это еще не все. Внизу должна появиться иконка визуального поиска в виде глаза. Запустив его, мы сможем читать QR коды (правда не так хорошо как i-nigma), читать Microsoft Tag-и (правда они в России не особо распространены. Я сам только в Казанском IT-Парке видел), переводить надписи и указатели с любых языков мира (да, да! Это работает и это очень круто!).
Именно так должен выглядеть поиск на телефоне.

Про Дурова

Интересная ситуация получается с Дуровым. Решил было парень народ позабавить - самолетик с пятитысячной купюрой из окна бросить. Устроить, так сказать, лотерею. А ему сразу кричат - неправильно ты делаешь, нельзя так с людьми поступать. А почему нельзя, если они сами этого хотят? Каждый раз, когда я покупаю билет на поезд - мне предлагают купить лотерейный билетик. А потом в поезде по радио еще и услужливо напоминают что его можно приобрести у проводника, что в прошлом году выиграло столько то человек. И ведь покупают! Каждая раскрутка нового сервиса в интернете не обходится без розыгрыша айпада. МММ снова работает. Люди хотят халявы. Люди всегда будут её хотеть. И самолетик в пять тысяч рублей ничем не отличается от конкурса "собери больше друзей в социальных сетях что бы получить приз". Можете же вы смириться со всем этим, так не надо журить человека с деньгами.

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

Не меньше меня удивили статьи о том что Дуров решил этим показать инвесторам, что он может распоряжаться их деньгами как захочет. Такая трактовка не лучше разбора стихов в средней школе, когда на 4 строчки автора надумывают пол страницы убористого текста. Сам пару раз получал пятерки за полный бред высосанный из мизинца. Не хотел он ничего показывать - он просто решил немного развлечься. Будет у меня столько денег, тоже так сделаю. Это весело! А хотел бы он это показать что инвесторам, то сделал бы это как-нибудь поярче, например как на фотографии слева =).

Дуров не строит себе культа богатства. Всем известно что на работу он ездит на метро - ведь это быстрее и удобнее. И если для вас деньги это культ, то вам этого не понять.

Резонанс от самолетиков в Рунете пошел хороший и в итоге Дуров решил это использовать - хороший повод начать проповедовать свои ценности. Не так давно он, можно сказать, впервые появился на публике, рассказывая какой хороший проект Википедия и жертвуя ему 1 миллион долларов. Теперь же надо идти дальше. Вот и случай подобрался - про него и так все говорят, а значит пост больше людей прочитает. Я уверен что за пару дней про деньги прочитает больше людей, чем ранее появлявшиеся "10 правил". Молодец, все правильно сделал. Но вот у меня остался осадок, что он извиняется за самолетики. Особенно это впечатление усиливает ролик Мистера Фримена - он как будто независимый эксперт, подтверждающий слова Дурова. Как будто Фримен авторитетнее Дурова. Но на большую аудиторию покатит.

Нет, честно. Появился бы пост об отношении к деньгам до самолетиков, я бы сам с радостью ретвитил, распространял и подсовывал его всем вокруг (хотя именно это я сейчас и делаю :). Идея хоть и не несет в себе абсолютной истины, но интересная для обсуждения. Но в свете произошедших событий, это все выглядит как объяснительная почему прогулял уроки в школе. Объяснительная очень умного ученика, но все же объяснительная.

Timepicker на JS + Canvas

Когда я делал confday.ru, передо мной встала задача как реализовать ввод времени. Если с датой все просто (dev ветка Chrome содержит встроенный Datepicker для соответствующего поля), то со временем все сложнее. Беглый обзор гугла не дал серьезных результатов. Я не увидел ни одного варианта с использованием аналогового циферблата (ткните пожалуйста меня носом, если что-то есть). Тем более ни одного варианта с использованием Canvas. А Canvas - очень полезная и интересная вещь =). В общем сейчас выбор времени у меня на сайте выглядит так:
Наверное не особо эстетично и не так информативно, но мне нравится и оно работает =). Квадрат в центре - переключение AM/PM. Красные метки - выбранные часы и минуты.
Подключается просто: на TextBox надо повесить событие onclick = function(){new timePicker(this)}.
Если в поле изначально было задано какое-то время, то оно попытается спарситься и отобразиться на циферблате. Пример работы - http://agegorin.github.com/timePicker.js/.
Поскольку закрывать JavaScript код - дело достаточно сомнительное, решил выложить все на GitHub. Поэтому код смотреть отправляю туда. Жду комментариев, предложений, форков, пулл реквестов и прочего.

confday.ru: Архив

Два пункта обновления в работе сайта:

  1. Теперь все прошедшие события можно посмотреть в архиве. Попасть в него можно с основной страницы. Все та же информация с ссылками на страницы мероприятий. Вдруг там отчеты появятся. =)
  2. Время проведения. До этого сайт показывал только время начала мероприятия, а теперь еще и время окончания.
Пока все. Заходите на сайт confday.ru

PS. Похоже что в ближайшее время не будет такого количества мероприятий как в мае и начале июня. Все таки лето начинается. Поэтому и следующие обновления скорее всего будут уже осенью.

Впечатления от конференции .тостер {javascript}

Как я и писал в одном из предыдущих постов, 25 мая я съездил в Москву на .тостер {javascript}. И оно того действительно стоило. Сама конференция, напомню, платная. Билет можно было купить от 4000 до 7000 в зависимости от наличия регистрации на Хабрахабре и даты покупки. С учетом того что конференция проводится в центре Москвы, в современном конференц-центре Digital October, с обедом в Progress Bar и, что самое главное, с иностранными докладчиками из Mozilla, RIM, Cloud9 и других хороших фирм, цена достаточно низкая.

Немного поподробнее про Digital October. В главном зале, где читались доклады, расположено три экрана - один за спиной у докладчиков, состоит из 16 плазменных телевизоров, два других по бокам, из четырех плазм каждый. Свет в зале настолько мощный, что не видно черной плитки потолка. Но сцена освещается еще сильнее. Звук подается в колонки и докладчика прекрасно слышно во всем зале. Для тех, кто плохо понимает иностранную речь работают переводчики. Всем желающим выдаются передатчик с наушником. Я не представляю как еще можно оборудовать зал для конференций, что бы он был круче.

Доклады были разного уровня. Подготовить 8-10 докладчиков на высокий уровень, как не старайся, не получится. AmplifyJS ничего принципиально нового не предлагает, а докладчик активно перечитывал документацию и стандартные примеры с сайта библиотеки. Российские докладчики страдали от неумения создавать красивые презентации. На фоне американцев это было особенно заметно. Здесь, правда, исключением стал Кичинский из Microsoft Россия, но на то он и евангелист.

На мой взгляд больше всего удались доклады Роберта Нимана (Mozilla) про то, каким будет JavaScript API в будущем и Павла Добуша (Badoo) про измерение скорости работы веб-приложения на клиентской стороне и соответствующий мониторинг. Роберт смог хорошо расположить к себе аудиторию, начав доклад с поздравления с победой Российской сборной в Чемпионате мира по Хоккею =). Затем он рассказывал про то, что JavaScript будет уметь в будущем. Например доступ к телефону и sms. Доступ к веб-камере. Заодно он привез с собой смартфон, на котором была установлена Boot 2 Gecko - разрабатываемая в Mozilla платформа для мобильных устройств на ядре Linux. Все приложения в системе, в том числе и телефон и смс, написаны на js, и по сути являются локальными веб-приложениями. Смартфон можно было подержать в руках. Система заметно притормаживает, но это только один из первых образцов и к релизу будет еще много оптимизации.

Павел Добуш же рассказал о замечательной идее уменьшить нагрузки для сбора статистики. Классический вариант выглядит как <img src="statistic.php?param1=1&param2=2" /> Но это дополнительный запрос на сервер. В их случае для сайта с большим количеством посетителей это было накладно. Поэтому они сделали хитрость. Вся необходимая информация записывается в cookie. При следующем обращении к сайту, серверу отправляется cookie и остается только обработать информацию. Да, если человек сразу ушел с сайта, то информация теряется, но при большом количестве посетителей это не принципиально.

Так же был неплохой доклад Яна Йонгбума про Cloud9. Меня, честно говоря, сильно удивила, что многие в зале не знали что такое Cloud9. Вроде пришли на JS конференцию и не знают такой замечательный IDE =). Он умеет брать код прямо с github и сохранять обратно. Так же, если надо, можно разворачивать NodeJS приложения в Windows Azure практически одним кликом. Вообще Cloud9 произвел на меня впечатление такое же, как когда-то ideone.com.

Адам Стенли из RIM не смог приехать в Россию, поэтому свой доклад читал через skype. В некоторые моменты связь становилась хуже и некоторые слова Адама съедались, на что переводчик остроумно замечал что "не может перевести это кваканье" =). Рассказывал он про BBUI.js - библиотеку, включающую в себя все стандартные элементы управления для BlackBerry. Как оказалось для BlackBerry10 приложения тоже можно будет писать на JavaScript. В общем интересно, но, в силу нераспространенности BlackBerry в России, немного не актуально.

Сначала я подумал что Константин Кичинский будет тоже немного неактуален, так как про то что в Windows 8 можно писать приложения на JavaScript не знал только ленивый. Ленивых в зале оказалось много. Так же как и Windows-ненавистников. Однако все они в этот день узнали много нового. Благо Кичинский умеет хорошо и красиво рассказывать.

Другие доклады особо ничем не выделялись и представляли из себя рекламу своих продуктов. Поэтому и описывать их особого желания нету.

Отдельное спасибо компании Badoo, которая устроила afterparty для участников конференции. Там бесплатно наливали виски с колой, вино, пиво, коктейли и сок, там гнали самогонку сразу на трех самогонных аппаратах, играли в настольные игры, строили домики из подставок под пиво, курили кальяны, общались, знакомились, веселились.

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

Первые впечатления от Lumia 800.

Когда-то давно я не любил Microsoft. Синий экран смерти, появляющийся в Windows завидной регулярностью, вылетающие программы, тормозящая система, регулярные переустановки и так далее. XP в свое время принесла стабильность, Windows 7 еще и приятный интерфейс, хоть и не идеальный. Когда я стал не только играть в игрушки, но и программировать время от времени, я начал исправлять свое мнение о MS. А несколько месяцев назад удалось подержать в руках телефон на Windows Phone 7, и я влюбился в этот дизайн. Ничего лишнего, все подведено под единый принцип, красивые и приятные шрифты. И при этом интерфейс оказался живым, не смотря на свою простоту. Тогда я понял что следующий мой телефон будет именно на WP7.
Сейчас в России продается 6 моделей телефонов на WP7 - HTC Mozart, HTC Radar, HTC Titan, Samsung Omnia W, Nokia Lumia 710, Nokia Lumia 800. Скоро еще появятся Nokia Lumia 610 и Nokia Lumia 900.  Кстати, посмотреть, сравнить и выбрать можно на сайте microsoft.
Требования microsoft к технической стороне телефонов на WP7 привел к тому, что телефон практически идентичны по своим характеристикам. Поэтому я выбирал телефон по дизайну. Кстати очень странно, почему такая система как wp7, сделанная в своем уникальном стиле, ставится на вполне обычные в плане внешнего вида телефоны. Телефоны HTC вообще ничем не отличаются от своих android собратьев. Lumia 710, хоть и пытается выделиться цветом, тоже не блещет красотой. В противовес всему этому есть Lumia 800, причем сразу в 4 различных цветах. Один из цветов - главный цвет Windows Phone - голубой. Но Lumia в белом смотрится даже лучше голубого за счет черного фона и белого текста в системе. Поэтому теперь я счастливый обладатель белой Lumia 800.
Конечно дизайн самого аппарата важен далеко не всем, например моя девушка выбрала HTC Titan за большой экран и металлический корпус =). Как оказалось HTC имеет несколько киллер-фич под названием "сенсоры вежливости". Это выключения звука звонка, когда переворачиваешь телефон, и включение громкой связи, когда кладешь телефон на стол. Мелочь, а приятная. Nokia аналогов не имеет. Ну и конечно у HTC есть собственно приложение HTC Hub.
Но в плане приложений побеждает все таки Nokia. Хотя бы в количестве. Nokia Maps, Nokia Navigator, Nokia Music, Nokia Reader, App Hightlights. Правда их полезность остается под вопросом. У меня в итоге остался только Nokia Maps, потому что они в Ижевске лучше, чем стандартные Bing Maps, и то я скорее всего перейду на Яндекс.Карты. Reader представляет в основном платный контент, а мы все таки находимся в России. Тем более что существует большое количество альтернатив. Остальные дублируют стандартные функции системы. На HTC, к слову, ситуация не лучше.
Ну а теперь о хорошем =). В Lumia 800 установлен AMLOED дисплей. На практике это означает лучшие цветопередачу и яркость. Когда рядом лежат HTC Titan(у него Super LCD) и Lumia 800 разница в экранах хорошо заметна. Затем, Windows Phone 7 предоставляет полностью функциональный доступ к сообщениям в Twitter, Facebook, LinkedIn и, конечно же, Windows Live. Большинство твитов теперь я пишу с телефона. Кстати, что меня очень порадовало от использования телефона - это экранная клавиатура. Она действительно удобная. Выглядит сперва страшновато, но при использовании они идеальна. Живые тайлы (по сути виджеты), объединенные контакты, почта и мобильный Офис - это то, без чего современный телефон уже и не представляется. Чехол, который идет в комплекте с телефонов, хоть и скрывает белизну телефона, но очень приятен на ощупь. 
Отдельно хочется отметить игры. Для них на Windows Phone 7 выделено отдельное приложение XBOX Live. Все игры появляются именно здесь. Хороших игр не так много, но их можно найти. Например The Harvest. Ну и какой же Windows без классического сапера? =) Конечно же есть Angry Birds. Хорошие игры (да как и программы) все платные, но все имеют триальный период. Так что если можно опробовать, поиграть и потом уже решить будешь покупать игру, или нет.
В итоге я имею современный аппарат, которым очень доволен.

confday.ru: Импорт событий в свой календарь

При создании confday.ru я старался в максимально сжатые сроки запустить сайт. Поэтому некоторые особенности, которые я задумывал сразу, были сознательно отложены в сторонку. Правильный ли такой подход или нет - я не знаю, но так я хотя бы стимулирую себя что-то делать. Первым обновлением confday.ru я добавил генерацию .ics файлов. Это общепринятый стандарт описания событий в календарях, изначально сделанный Apple. Его понимает как и Outlook, так и Google Docs. Генерируется он достаточно просто, в интернете полно различных реализаций. Правда мне в итоге пришлось немного подправить код с учетом моих требований.
Теперь, если кликнуть по изображению календаря рядом с событием, то можно получить файл iCalendar для добавления мероприятия в свой календарь. Вверху страницы есть ссылка на общий  календарь со всеми событиями. Естественно он обновляется при добавлении и редактировании события, поэтому на него можно подписаться.
В Google Calendar это делается следующим образом: В Other Calendars выбираем Add by URL, где вставляем ссылку http://confday.ru/ics/izhevsk.ics и радуемся жизни.
В Outlook все так же просто: Выбираем "Открыть календарь", затем "Из интернета", вставляем ссылку, указываем что хотим подписаться на обновления и радуемся что мы в курсе ближайших событий.

День конференции - confday.ru

Сделал на праздниках сайт который выводит список ближайших событий, которые пройдут в Ижевске.
Да, конечно существует fanlife.ru который следит за всеми событиями, но на мой взгляд он хорош только для того, что бы посмотреть в каком кинотеатре какой фильм идет. В плане событий он не особо удобен, а раздела конференций вообще нету.

В качестве хостинга используется бесплатный hostinger.ru.
Работает в связке PHP + MySQL. PHP выбран, потому что его поддерживает бесплатный хостинг, в случае чего можно легко перейти на другой хостинг и на нем можно быстро написать что-либо.
В качестве шрифта использует PT Sans из коллекции веб-шрифтов Google. Если кто не знает - это свободный шрифт, который разработан компанией ПараТайп и хорошо оценен дизайнерам различного уровня. Выбран как самый приятный глазу из русских шрифтов, который легко подключается к странице.
Иконка с календарем взята с сайта thenounproject.com и перегнана в gif, так как вставлять svg в html то еще извращение.

В планах:
  • Реализовать генерацию iCal файлов для каждого мероприятия. Сделано.
  • Сделать возможность встраивать как виджет на другие сайты.
  • Добавить возможность выбора представления (в виде календаря).
  • Добавить возможность выбора города.
  • Сделать формат времени в виде промежутков.Сделано
  • Сделать архив мероприятий.Сделано
  • Сделать полуавтоматический парсер мероприятий.
Вот думаю что из этого предпочтительней.
Ну и еще раз: confday.ru

Выбор даты для мероприятия или почему меня не будет на EPAM Insider

Меня, как одного из организаторов встреч IzhDevCom, часто мучает вопрос выбора времени и даты проведения мероприятия. Когда перед нами встал такой вопрос, мы исходили из того что наши встречи ежемесячные и что мало кто из разработчиков захочет прийти в выходной день. Когда же готовишь большое мероприятие, с большим количеством участников, и на весь день то вариантом остается только выходные дни, иначе тоже никто не придет. Когда готовишь очень большое мероприятие (например DevCon), то там уже не стоит использовать выходные дни.
Кроме этого надо учитывать что посетители мероприятия редко приходят одни - они приходят с друзьями. Вдвоем или втроем сходить куда-либо намного интереснее. Если они идут к вам, то скорее всего они будут говорить людям вокруг них, что в этот день и час они будут у вас. Сарафанное радио, как бы странно это не звучало, один из самых мощных инструментов привлечения посетителей. Человек по природе скорее поверит и послушает знакомого человека, чем безликий аккаунт в социальных сетях или простенький сайт регистрации. Отсюда следует, что в первую очередь необходимо собирать тех людей, которые смогут распространить информацию дальше. Если же такие люди не могут прийти на ваше мероприятие, то вы теряете не только их, но и тех, кого они приведут с собой.
И тут включается третий важный фактор выбора даты для мероприятия. Надо учитывать проводятся ли в это время или близкое к нему какие либо другие мероприятия. Даже если вы полностью уверены что абсолютное большинство придет к вам, забывать про остальных людей нельзя. Конечно, если какой-то Вася Пупкин празднует в эти дни свой День Рождения, то вам должно быть на него наплевать. Но если одна из крупнейших компаний мира проводит в близкие дни свое ежегодное мероприятие на несколько дней рядом с Москвой... Ну в общем думаю вы поняли.
Написать данный пост меня сподвиг анонс EPAM Insider. Сам я, как и организаторы IzhDevCom, как и многие мои знакомые программисты, ради которых во многом и проводится это мероприятие, в это время будут в Москве. Да, DevCon будет 23-24 мая и кто-то уже успеет вернуться в Ижевск. Я же буду 25 мая на .тостер {javascript} и терять возможность погулять по Москве не хочу, тем более что билеты уже куплены. К тому же, согласно Иждайджесту и некоторой другой информации, май в Ижевске оказывается сильно перегруженным на мероприятия для IT-шников. А сходить хотелось бы.
Планируя проведения мероприятий, не забывайте про внешние факторы.

Zero RPG: Почему Godville лучше tweenk.me.

Zero Player Games - игры, в которых ничего не надо делать. Все происходит само собой и игрок не имеет влияния или влияет на процесс очень слабо. ZeroRPG - разновидность ZPG, где в качестве процесса взят процесс "прокачки" персонажа как в обычных RPG и MMORPG. Я думаю многие знают про представителя этого класса игр ProgressQuest.

Уже достаточно давно живет и процветает Годвилль - мир, где боги наблюдают за героями, а те в ответ восхваляют богов, сражаются в их честь, строят им храмы. В этой игре все продумано. Играющий ассоциируется с богом, который наблюдает и иногда извергает молнии на подчиненного и его врагов. Годвилль сразу говорит, что качаетесь не вы, качается кто-то другой - вы только наблюдаете. В этой игре есть города и гильдии, и каждый город поделен влиянием самых сильных гильдий. Герои игры по своему усмотрению меняют гильдии и дослуживаются до высоких постов. Герои сами заводят себе питомцев и сами путешествуют по миру. Но все это не имело бы смысл, если бы не главная фишка игры - весь контент, все действия сопровождаются веселыми фразами, которые проходят серьезный отбор у богов. Каждый монстр, каждый предмет инвентаря, каждый меч и щит придуманы самими игроками. Игра привлекает не тем, что не надо ничего делать, а тем что это интересно. Ты снова и снова заходишь почитать ленту героя что бы улыбнуться над "Боеприпасынок издал последний крик «Чтобы жила ты на одной воде и корешках!» и был забит насмерть. Получила купон на скидку в бездну и 9 монет."

Ничего из вышеперечисленного нету в tweenk.me. Да, есть гильдии, но они нужны только для объединения информации. Лента безлика - все сообщения однообразны. Предметы - банальны. Ачивки - да, прикольно, но не более того. Зайдя пару раз, я понял что ничего нового не увижу. Мне просто скучно.

Годвилль работает с Websokets - что позволяет постоянно обновлять информацию - можно просто сидеть и наблюдать как полоска жизни из зеленой становится желтой, а потом красно. Можно видеть динамичные бои между разными героями, а не только PvE сражения. Можно даже общаться с другими богами. Годвилль динамичен и это удерживает меня на его странице.

Tweenk.me обновляется раз в 5-10 минут, собирая твиты всех игроков. Никакой динамики, я просто забываю что хотел посмотреть получил ли мой герой уровень после последнего твита. Медленная отзывчивость системы отталкивает.

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

Еще у Годвилля есть хорошие виджеты для сайтов и приложения под все платформы, но это уже следствие большого сообщества и возраста игры.

На мой взгляд tweenk.me может стать интересным, если его переделать в Twitter-клиент. Тогда появиться и повод оставаться на странице и динамичность. Тем более такой формат уже использовали в Littlecosm.

Да и... Я в Годвилле и я в tweenk.me.

Взгляд на Ubuntu

Где бы не появлялись хвалебные или порицательные статьи с упоминанием Linux, всегда начинается страшный холивар. Я и сам не прочь поучаствовать в таких разговорах, потому что в них можно выяснить новые интересные факты. Однако что бы эффективно спорить, нужно уметь видеть все с разных точек зрения.
Устанавливать я буду Ubuntu, так как это самый распространенный дистрибутив Linux. Раньше я уже устанавливал и Ubuntu, и Debian, и Mint, и менее известный Sabayon, который, к слову, оставил самые лучшие впечатления. У меня даже где-то валяется диск с GameLinux. Все установки в конечном итоге проигрывали Windows по разным причинам.
Итак начну. Зашел на сайт ubuntu.com, нажал Get Ubuntu now. Ага. Одним из самых сложных порогов для перехода на Linux является необходимость сложных и долгих действий установки - скачать образ, записать на диск или флешку, устанавливать с флешки. Разработчики Ubuntu нашли хороший выход из этой ситуации и сделали Windows-installer для ленивых. Им я и воспользуюсь
Установка спрашивает минимальную информацию и начинает скачивать файлы. После того как файлы будут скачаны, установка потребует перезагрузки системы.
Первая проблема, на мой взгляд, это медленный отклик системы. После ввода пароля я по привычке нажал Enter и в течении секунд 4-5 ничего не происходило. Я не мог понять ушла команда системе или нет. Для сравнения в Windows такого сейчас нет.
Но надо отдать должное, в целом система загрузилась очень быстро, хотя были заметны притормаживания. То есть не критичные ресурсы грузились уже после того, как показалась картинка. А запущенный сразу Firefox выдал ошибку о медленном скрипте.
Зато скриншоты система умеет делать сама - за это плюс.
После запуска меня ждал сюрприз - я не смог переключить раскладку . Да, действительно. Не смотря на выбранное Russian при установке, русский язык не был подключен. Пришлось в ручную залезать в настройки. И хорошо что я знаю английский язык и представляю себе логику расположения настроек. Неподготовленному пользователю сделать это, да даже просто объяснить по телефону, будет сложно. Но даже когда я подключил язык, не были настроены комбинации переключения языков. Однако есть плюс - переключение языков можно настроить на несколько сочетаний сразу. Я привык использовать Ctrl+Shift, которое к слову отвратно работает в Ubuntu, а кто-то Alt+Shift.
А потом я увидел вот это:
Заголовок окна, кнопки закрытия и меню находятся на системной области и по сути отделены от окна. o_O WTF? Кто это мог придумать? Почему это находится в официальном релизе, который качается с официально сайта? Зачем разработчики хотят запутать своих пользователей? Я может и не крутой дизайнер, но понимаю что это дикий фейл со стороны разработчика интерфейсов. И ладно бы это было только есть окно развернуто на весь экран. Так нет же. Оторванные от контента кнопки управления - кто-то действительно может думать что это правильно? К этому можно привыкнуть, но это точно будет отталкивать новых пользователей.
Потом я взглянул в верхний правый угол и увидел что время не совпадает с моим текущем временем. Проблем оказалось в том, что Ubuntu непонятным мне образом определил что я нахожусь в Омске. Это при том что любая другая система спокойно определяет по подключению к интернету то я нахожусь в Ижевске.
В это время я заметил что Ubuntu нашла себе несколько апдейтов - отлично, запускаем и продолжаем заниматься своими делами. Попутно смиряясь с небольшими подлагиваниями. Видимо незаметно обновляться мы не умеем.
Так, а что там с моими файлами? Ubuntu прекрасно видит диски с Windows, но не видит тот диск, где расположена сама. К слову при установке через Windows Installer Ubuntu создает виртуальный диск и из под Windows виден только один файл, размеров в 10GB (У меня при установке было выбрано 10). Так вот тот самый большой диск, где у меня расположены все фотографии и видео, куда я и установил Ubuntu теперь не виден. Из-за 10 GB я не вижу около 150 GB. Замечательно.
А что действительно порадовало, так это работа поиска, после нажатия Win-клавишы - это то, чем я часто пользуюсь. Однако не без минусов - в Windows можно не дожидаться подгрузки меню, а сразу набирать - текст не пропадет. В Ubuntu я успеваю набрать 4 символа, пока фокус не переключится на строку поиска.
Пока обратно перезагружаюсь в Windows 7. Но где в выборе Restart? А это еще и нельзя заскриншотить! Ну тогда Shut Down. Ах вот куда запрятали Restart. Логика, где ты?
Думаю LibreOffice, Ubuntu Software Center и Ubuntu One требуют отдельного сравнения, но каждый из них является несомненным плюсом в сторону Linux. Просто в рамках беглого обзора я не смогу из оценить, возможно позже отдельной статьей.

Итак плюсы:
+ Windows Installer
+ Встроенный создатель скриншотов
+ Несколько сочетаний клавиш на одно действие
+ Поиск по Win клавише
+ LibreOffice, Ubuntu Software Center и Ubuntu One
Минусы:
- Слабая отзывчивость (На мощных компьютерах видимо не заметна)
- Отсутствие русского языка во включенных раскладках
- Решение вынести управление окном на заголовок рабочего стола
- Система определения положения
- Заметная работа апдейтера
- Отсутствие доступа к файлам на диске с файлом-диском Ubuntu
- Непонятная логика расположения некоторых

[Перевод] Nodester: Советы для Windows пользователей

Оригинал статьи находится в блоге Nodester: blog.nodester.com/post/199...

Развертывание Node.JS приложений на Nodester из под Windows происходит немного другим путем в отличии от Mac и Linux. Прошлой ночью при помощи Bootcamp на моем Mac я установил Node.JS из MSI на Windows 7, после чего установил Nodester-CLI и развернул "Hello world" приложение. И вот какие шаги у меня получились:

  1. Загрузить и установить Node.js выбрав Download и Windows на сайте http://nodejs.org. Затем перезагрузить компьютер, что бы заработали пути запуска Node. (Вероятно существует более простой способ добиться этого, но я не так хорошо знаю Windows)
  2. Установить Git for Windows и сгенерировать свой RSA ключ воспользовавшись инструкциями на GitHub здесь: http://help.github.com/win-set-up-git/
  3. Вместо того что бы мучаться с командной строкой Windows, лучше будет проделать оставшиеся шаги в Git Bash. (Перев.: Я использую для этого PowerShell.)
  4. Установить Nodester-CLI командой:
    npm install nodester-cli -g
  5. Связать CLI с Nodester аккаунтом:
    nodester user yourusername yourpassword
  6. Отправить RSA ключ в Nodester что бы можно было использовать команды Git:
    nodester user setkey
  7. Создать свое первое Node.JS "Hello world" приложение двумя командами:
    nodester app create mycoolnewappname
    nodester app init mycoolnewappname
  8. Эти команды создадут новую папку приложения с файлами и Git репозитарием. Но CLI не сможет отправить новые файлы в Nodester, так как они еще не добавлены в репозитарий. Поэтому надо вручную добавить файлы, после чего можно разворачитвать приложение. Для этого достаточно следующих команд:
    git add .
    git commit -m "initial commit"
    git push origin master

Если все сработает так же как и у меня, то ваше новое Node.JS приложение станет доступно по адресу mycoolnewappname.nodester.com

[Интересный сайт] CGHub и Hellodesigners

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

CGHub.com

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

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

Hellodesigners.ru

Небольшой и максимально простой сайт. Здесь все изображения одного размера, голосование простым нажатием кнопки плюс и полный список пользователей на каждой странице. Все просто и ничего лишнего.

Что примечательно, создатель проекта – Максим Мезенцев, дизайнер в Ижевской студии Пихель.

Игра Inky

Захотелось вдруг вернуться к написанию игрушек на JavaScript. Идея появилась с сайта krazydad.com. Там очень много разных головоломок, одну из которых я и исполнил. Эта игра Inky. Смысл в том что бы расставить числа так, что бы не было одинаковых в столбцах и строчках. При это числа в каждом блоке должны соответствовать указанным действию и результату. То есть если в блоке указано 12*, значит если все числа в блоке перемножить, то получится 12. Играть здесь: agegorin.ru/games/inky.

С технической стороны отмечу что Canvas здесь использовать было бы избыточно. Все квадраты - отдельные div-ы. Блоки формируются за счет border-ов с определенной стороны. В коде я использовал forEach для массивов. Выглядит страшновато, но пользоваться удобно. Еще столкнулся с проблемой с замыканиями, когда присваивал onclick в цикле нескольким div-ам. Вся логика игры уложилась в 200 строк кода. Посмотреть код можно здесь: agegorin.ru/games/inky/main.js.
Игра протестирована на Android, iOS и WP7 - спасибо @feeeper@iPATOGEN и @kipwoker =).

[Интересный сайт] Memolane

Кто-то хорошо запоминает номера телефонов, а я хорошо запоминаю адреса интересных сайтов и веб-проектов. Не знаю почему. Просто помню домены. Вот про такие сайты я и решил писать. Первым проектом, про который я расскажу, будет Memolane.
В современном интернете много различных сервисов и социальных сетей. Все они разные: по-разному работают, по-разному позволяют людям общаться, по разному ставят приоритеты. Но все они сохраняют историю действий человека. Все что он изменял, писал, комментировал. Facebook не так давно ввел timeline, на котором можно посмотреть всю эту активность человека. Но что если объединить данные с разных сервисов? Так, задолго до timeline на Facebook, эту задачу решил Memolane. http://memolane.com
Memolane позволяет просмотреть всю историю подключенных к нему аккаунтов. Подключать же можно аккаунты следующих сервисов: Facebook, Twitter, flickr, Picasa, last.fm, foursquare, instagram, Tripit, YouTube, myspace, vimeo, SoundCloud, WordPress.com и любую RSS рассылку. Последнее, при желании, позволяет подключить практически все что угодно. В результате вы получаете ленту ваших воспоминаний, как их называют создатели сервиса:
Серая панель внизу позволяет выбрать время. Границы определяются вашим первым и последним воспоминаниями из всех подключенных аккаунтов. Каждое воспоминание можно делать приватным. Так же Memoline по сути сам является социальной сетью и позволяет просматривать воспоминания друзей и комментировать их.
Меня можно найти по адресу http://memolane.com/agegorin/Personal%20Lane

Мой пост-тысячник во ВКонтакте

Это случилось:
За 11 дней пост набрал 1000 лайков. Это при том что до этого максимум у меня был 46. Что интересно, у самой фотографии 1057 лайков.
Фотографию я поймал в твиттере по хештегу #ижевск. К сожалению уже не скажу кто скинул туда ссылку. Саму фотографию выложил у себя в блоге Агашин. На автора фотографии ссылок никаких нету, поэтому ничего про него сказать не могу, хотя хотелось бы узнать про него. Если кто-что знает, просьба поделиться знаниями.