Если нельзя, но очень хочется, то нужно обязательно и ничего в мире не стоит того, чтобы делать из этого проблему!


Интересна Java? Кликай по ссылке и изучай!
Если тебе полезно что-то из того, чем я делюсь в своем блоге - можешь поделиться своими деньгами со мной.
с пожеланием
столько времени читатели провели на блоге - 
сейчас онлайн - 
Показаны сообщения с ярлыком demo. Показать все сообщения
Показаны сообщения с ярлыком demo. Показать все сообщения

воскресенье, 24 мая 2015 г.

Поднимаем OpenEdx на локали

Задача возникла поднять OpenEdx для того, чтобы поиграться с ним и посмотреть что он за зверь такой.



Так как я работаю под виндой, а мне надо (так сказали опытные админы) под линуксом все это устанавливать. Потому пришлось скачать VirtualBox и под него развернуть Ubuntu 14.04 (скачал ubuntu-14.04.2-desktop-amd64.iso). Важно! Раздел на который будет монтироваться "/" надо сделать большим - так просили разработчики (50Gb). Я сделал 100 :) - все равно виртуалку vhd делал с динамическим расширением и она занимала не больше 5Gb после установки. После получаса установки я имел красивую убунту в матрице.


После установки заходим в терминал и обновляемся до последней версии
sudo apt-get update -y
sudo apt-get upgrade -y
sudo reboot


Так как разрешение было всего лишь 640х480 пришлось ставить гостевые плагины VirtualBox. У него есть менюшка Устройства->Установить гостевые дополнения. После этого убунту предложит установить пакет, ей надо позволить. Если не получается, у убунты должен быть подмонтирован диск на котором есть исталятор - его и запускаем. Дальше снова ребутимся и теперь разрешение перестраивается под размеры окна. Спасибо!

Теперь будем делать матрицу в матрице. Надо установить VirtualBox на Ubuntu (я взял ту, что  AMD64). Просто скачал в браузере файл и запустил его гуйовым установщиком по умолчанию. Так же проделал с Vagrant (поставил тот что  Debian 64 bit).


Заходим в терминал и как велено в мануале по установке FullStack выполняем команды я на это время находился в корне /
mkdir fullstack
cd fullstack
curl -L https://raw.githubusercontent.com/edx/configuration/master/vagrant/release/fullstack/Vagrantfile > Vagrantfile
vagrant plugin install vagrant-hostsupdater
export OPENEDX_RELEASE="named-release/birch"
vagrant up
После выполнения последней команды варгант будет выкачивать большой файл (~3-4Gb) из сети. У меня это был вонтэтат. Потому рекомендую запастить толстым интернетом и попкорном. Или вот как я запостить какой-нибудь пост в блоге. Позже пригодится.

Но после загрузки vagrant выплюнул мне не информативаное сообщение
root@openedx-pc:/fullstack# vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Importing base box 'birch-fullstack'...
==> default: Matching MAC address for NAT networking...
==> default: Setting the name of the VM: fullstack_default_1432361710797_91832
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
    default: Adapter 2: hostonly
==> default: Forwarding ports...
    default: 22 => 2222 (adapter 1)
==> default: Running 'pre-boot' VM customizations...
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
The guest machine entered an invalid state while waiting for it
to boot. Valid states are 'starting, running'. The machine is in the
'poweroff' state. Please verify everything is configured
properly and try again.

If the provider you're using has a GUI that comes with it,
it is often helpful to open that and watch the machine, since the
GUI often has more helpful error messages than Vagrant can retrieve.
For example, if you're using VirtualBox, run `vagrant up` while the
VirtualBox GUI is open.
И пришлось запустить virtualbox (под рутом). Графическая оболочка открылась, я увидел там новосозданный образ и попробовал его запустить вирчелбоксом. Но тот сообщил мне:
Failed to open a session for the virtual machine fullstack_default_1432361710797_91832.
VT-x is not available. (VERR_VMX_NO_VMX).
Видимо нельзя запускать одну виртуалку под другой - пронеслось у меня в голове. Но стэковерфлов ответил что как бы можно, но. И я решил проделать то же самое под моей родной убунтой, которую давно не пробуждал от виндовой сплячки.

Но перед тем еще одна гипотеза. Заглянув в варгант скрипт я нашел там способ, как получить на руки виртуалочкку. Вот она http://files.edx.org/vagrant-images/20150224-birch-fullstack.box Качаю... Может под виндой получится запустить. Попутно скачал вагрант под винду... 

Еще на одну гипотезу меня натолкнуло сообщение в одном из мануалов. If you have any problem installing or starting the VM with Vagrant, first check that you have the required versions of VirtualBox 4.2.16 and Vagrant 1.3.5. Ща проверим... 

С установкой нужной версии я обломался, потому попробовал засетапить варгант под винду и открыть им скачанный box файл. Попутно узнал, что box файл - это tar архив внутри которого находится виртуалка, а достав ее попробовал открыть напрямую в virtual box. Он проимпортировал себе в папку образ и открыл его. Запуск сразу не удался, там что-то с настройками сети были проблемы, но я удалил адаптер и все ок. 

Но на этом квест не закончился. Убунту загрузилась под виртуалкой под виндой и в консольке меня попросили ввести логин/пароль. А где его брать-то? :) Погуглив натолкнулся на строчку Default username/password: vagrant/vagrant и заработало! Я в системе... В консольке :) 

И как проверить, что там запущено? В мануале написано, что достать можно приложение по урлу 
Вот и попробуем curl http://192.168.33.10 и в консоле напечатался кусочек html'ины. Ура. Теперь надо вывести это за пределы виртуалки. Но как? Идем гуглить... Есть статья Настроил второй адаптер как мост и пробую запуститься... 

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

Интеренет появился после того, как на virtual box я зашел в меню Devices -> Network и клацнул на подключение, которое использовало NAT (второе подключение было настроено на мост и использовало один из моих сетевых адаптеров - без него не поднималось сервак на 192.168.33.10). Инет пошел. Поставил командой sudo apt-get install ubuntu-desktop и установка пошла. Только с ошибками, потому перед тем пришлось сделать sudo apt-get update -y и sudo apt-get upgrade -y, а потом повторить инсталяцию gui. Дальше надо было всего лишь запустить gui командой startx - тут же запустилась gui там был firefox и набрав в нем урл приложения я получил к нему доступ. Ура! 

Дальше вот так можно посоздавать юзеров и сделать других полезностей.

Если кому надо виртуалку, могу выложить. Пиши в комменты. 

четверг, 14 июня 2012 г.

Идеи для дивелоперов: Записываем видеоролик-объяснение тому, что закоммитили

В последнее время очень много пишу видеороликов - капитализирую результаты своих тренинговых усилий. Много приходится общаться с трейни по коду и не только. Есть несколько способов как это сделать. Можно написать в скайпе (или письмо), можно написать пост в вики и поделиться линком, а можно включить скринрекордер и записать голосовое сообщение с демонстрацией того, что собирался донести - прямо в коде. Так, со временем этих вижяшек становится столько, что не даже куда их девать :) Но сейчас не об этом. О другом - развивая это направление (видеописательство) я начал применять скринрекордер в других местах (не только при общении с трейни).

Вот, например, сегодня хотел напарнику Сергею задать вопрос. Но понимаю, что ему сейчас может быть не совсем удобно давать ответ. Да и мы удалены друг от друга минимум на пару километров. Писать текст? Малоинформативно. Созвониться в скайпе и расшарить свой рабочий стол - уже лучше, но опять же напарник может быть занят в эту минуту, а когда он освободится занят уже буду я... Вот тут то я и решил записать скрипрекордером свой вопрос, показывая сразу на коде то, что хотел спросить так, как будто бы напарник сидит рядом. Записал - вышло 5 минут видео - и выложил в скайп с пояснением что, мол посмотри, когда будет минутка. 5 минут на полноценный вопрос. Текстом бы я его формулировал (даже с учетом слепого 10пальцевого) не менее 10 минут, а потом еще напарник мог бы не так понять. А тут все как в парном программировании...

Идем дальше. Следующее узкое место, которое можно таким образом задокументировать - коммиты проделанной работы. Сколько раз я ловил себя на слове во время резолвинга конфликтов: "ну и что он хотел этим сказать? зачем тут это?" Из дескрипшена это обычно не понятно - дескрипшен описывает только поверхностно суть коммита, а что касается реализации - тут поможет видяшка, записанная за 5-10 минут перед коммитом, поможет твоему напарнику в будущем разобраться что ты хотел сказать своим фиксом. Чем еще хорошо такое нововведение (кроме как информация для напарника)? А тем, что перед коммитом ты просматриваешь файл за файлом то, что проделал и тут, о чудо!, ты видишь глюки, которые не стоило бы коммитить. Я не знаю каким коротким должен быть сеанс кодинга между коммитами и внимательным дивелопер, чтобы случайно не закоммитить какой-то там system.out.println или кусок кода, который использовался временно для отладки. Такие строительные леса я всегда убирал просматривая код перед коммитом и это само по себе работало. Все что надо - всего лишь включить камрекордер и озвучивать мысли в такой форме, чтобы она было понятной напарнику.

Идем дальше. Записывать видео можно так же и sprint demo. Зачем напрягаться, и мьютить постоянно микрофон со словами "беги быстро пофикси, пока он (заказчик) не заметил", если можно спокойно записать видяшку, аккуратно ее смонтировать и выслать на ревью заказчику. А он посмотрит ее в удобное для него время и расскажет команде, что именно и где не так... Да, тут меньше интерактива для заказчика, но все же, в кое-каких случаях этим инструментом можно воспользоваться...

Предлагайте идеи, где еще можно заюзать камрекордер в разработке ПО?

Да, забыл - запись должна прохождить максимально комфортно, чтобы у команды небыло отговорок типа "эта тулза корявая, я записал а потом еще пол часа потратил на монтаж" - для этого пользуйтесь Camtasia Studio. Она стоит того, чтобы за нее заплатить 300$ Но можно, конечно поискать и фришные тулы (дай Бог чтоб удобную)...