Как стать автором
Обновить
14
0
Helen Allien Poe @besteto

Engine && Tools Programmer

Отправить сообщение

Делаем HTML5/Flash игры на Java

Время на прочтение3 мин
Количество просмотров14K

PlayN и «Как Rovio Angry Birds на HTML5 писала»


На прошедшей конференции Google IO в Сан Франциско была представлена библиотека PlayN. Сессия называлась — Kick-ass Game Programming. И эта технология действительно заманчиво выглядит. Только представить, что пишешь игру на одном языке на любой ОС и используя любимые IDE, а на выходе получаешь игру под HTML5/Android/Native/Flash(!). PlayN свободный и с открытым исходным кодом, а еще на нем была сделана Angry Birds (HTML5).
Читать дальше →
Всего голосов 46: ↑41 и ↓5+36
Комментарии10

История одного бага

Время на прочтение7 мин
Количество просмотров8.5K
Буквально вчера мне пришлось разбираться с одним очень тонким и специфичным багом. Баг оказался фичей, которая спотыкалась о другой баг. В ходе изучения проблемы я был вынужден изучить несколько особенностей Debian, угробить 4 часа времени и получить массу опыта.

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

Предыстория

В ходе разворачивания стенда для экспериментов из нескольких идентичных серверов захотелось иметь возможность запускать нужные версии приложения без ручной работы по обновлению кода на куче хостов. Было решено запускать нужные программы с NFS-шары. Приложения были internal use only, одноразовые, причём написанные под конкретную задачу. Шара монтировалась в каталог /opt при загрузке и приложения оттуда запускались с помощью скрипта rc.local. Поскольку речь шла про экспериментальный стенд с очень частым изменением кода, играть в честного разработчика (пакеты, репозиторий, обновления, init.d скрипты) было лениво. Всё происходило под Debian Squeeze.

Шара была прописана в /etc/fstab, запуск нужных тестов — в rc.local. Казалось бы, всё сделано.

… И тут я наткнулся на Мистику. Приложения стартовали раз из пяти, причём версия «кривое приложение» была отметена почти сразу — ровно так же иногда не запускались любые другие исполняемые файлы. Причём, с /opt. Из других каталогов отрабатывали нормально. При этом руками rc.local запускаешь — 100% всё хорошо. При загрузке — успешный запуск раз из пяти, или даже реже.

В начале я не воспринимал эту проблему как серьёзную, и пытался её решить нахрапом. Поскольку проблема проявлялась только для /opt я дописал в rc.local команду ls -a1 /opt >/var/log/ls. Как и предполагалось, в /opt на момент выполнения rc.local было только два файла — точка и две точки. Другими словами, NFS-шара не подмонтировалась. Иногда. А иногда подмонтировалась.

Читать дальше →
Всего голосов 187: ↑172 и ↓15+157
Комментарии78

Ghost in the Xen

Время на прочтение2 мин
Количество просмотров1.8K
Я продолжаю пристально изучать Xen Cloud Platform и в ходе экспериментов мне удалось создать «призрак»: виртуальную машину, которая (с точки зрения гипервизора) отсутствовала.

Эта виртуальная машина когда-то имела диск, но диск был удалён (и осталась только его кешированная копия в памяти), что, в принципе, не мешало на этот диск писать/читать.

Эта виртуальная машина когда-то имела виртуальный сетевой адаптер, но он был удалён, что в принципе, не мешало отправлять и получать ip-пакеты.

Эта виртуальная машина была — и её не стало. Её не было видно ни на высоком уровне, ни на низком. Её не существовало. Всё осложнялось тем, что я не знал, на каком из серверов облака эта виртуальная работала.

Другими словами, я имел настоящий полноценный призрак. После того, как я перегрузил нужный (лабораторный) сервер, виртуальная машина умерла. Но вопрос остался открытым:
Читать дальше →
Всего голосов 91: ↑81 и ↓10+71
Комментарии64

Математика карьеры

Время на прочтение6 мин
Количество просмотров7K
catchy image Пару недель назад все начали писать о предстоящей майкрософтовской конференции PDC (Professional Developers Conference). В частности, Дуг Рейли написал пост «Кто управляет вашей карьерой?». Многие прочитали и сослались на пост, а некоторые (например, Сэм Джентайл или Роберт Херлбат) даже развили идею в ответных постах.

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

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

Думали, математика никогда не пригодится?
Всего голосов 97: ↑77 и ↓20+57
Комментарии100

Фундамент знаний и кирпичи навыков

Время на прочтение4 мин
Количество просмотров5.3K
       Третий, и я думаю, последний пост из цикла «о карьере ИТ-специалиста». Предыдущие: 1, 2.

В предыдущих обсуждениях возникло некоторое недопонимание смысла синдрома «многорукого Шивы» и смысла «изучать вглубь». Примеры, которые я буду приводить, будут касаться системного администрирования, но, думаю, в остальных ИТ-областях ситуация аналогичная (будь то программирование, вёрстка, написание баз данных, или возня с железом).

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

Представим себе навыки, как кирпичи. Приобретение каждого из них относительно просто и быстро (хотя может и заставить сильно материться в процессе).

Представим себе знания, как фундамент.

Можете ли вы раскидать кирпичи по пляжу? Можете.



Именно так выглядят знания начинающего эникейщика или просто компьютерного пользователя. Местами кирпичи даже накладываются друг на друга и образуется кучка в 2-3 кирпича высотой. Это опытный пользователь, который хорошо знает, как устанавливать драйвера, как чистить реестр и оптимизировать производительность.
Читать дальше →
Всего голосов 115: ↑102 и ↓13+89
Комментарии66

Выключаем монитор с клавиатуры

Время на прочтение3 мин
Количество просмотров25K
Предыдущий топик про ddccontrol, открыл для меня, что по DDC можно мониторы выключать. Не вгонять в сон, не включать энергосберегающий режим, а реально выключать. Так, чтобы гасла (и совсем не мигала!) лампочка питания на морде. Как от нажатия выкл на той же самой морде. Разумеется, можно не только выключать, но и включать. Программно!

1) Это можно сделать программно (ddccontrol)
2) Это можно прописать в скрипт
3) Скрипт можно повесить на хоткей

5) PROFIT??

В список профитов можно записать возможность включения/выключения ОДНОЙ кнопкой на клавиатуре ВСЕХ мониторов (у меня их сейчас два, и я планирую больше в будущем). Кнопка на клавиатуре куда приятнее для нажатия, чем кнопка монитора (по которой её целиться надо, да и монитор от нажатия может слегка поворачиваться, что раздражает).

Читать дальше: скрипты и руководство по настройке
Всего голосов 109: ↑95 и ↓14+81
Комментарии47

Эмулятор компьютера с linux на JavaScript

Время на прочтение2 мин
Количество просмотров45K
Никакой серверной части. Только JS: полноценный эмулятор компьютера с линуксом на борту.

bellard.org/jslinux
(внимание, только хром и FF4)

Я долго с ним игрался — это не имитация, линукс ведёт себя как настоящий линукс — компилированные программы работают, ошибки в них вызывают segmentation fault, повреждение корневой файловой системы вызывает бурю возмущения в dmesg и т.д.
Эмулятор PC на JS с линуксом на борту

dd показывает при работе с памятью более чем приличную производительность — более 40 мб/с (не забываем, что это эмулятор, и что это JS в вашем браузере!).

Я никогда не думал, что мы доживём до подобного.

… А теперь начинается оргия:

* С использованием локального хранилища мы можем организовать диски (каждый key-value соответствует одному сектору).
* С использованием web-socket мы можем создать паравиртуализированный драйвер сети с выходом на железный машрутизатор и получить нормальную сеть.
* С использованием существующих технологий (NUMA, DRBD, corosync) можно организовать вычислительный кластер из браузеров.

(Кстати, показывать консоль в этом случае не обязательно — вы запускаете виртуальную машину у клиента в бэкграунде, виртуальная машина присоединяется к кластеру, начинает считать, по её аварийному завершению — закрытию браузера — кластер автоматически переконфигурируется).

Я это пишу как хохму, но в реальности, если у вас есть линукс и есть — у вас есть все возможности для работы чего угодно. Любые сетевые приложения, любые системы синхронизации и управления.

Никто не мешает создать паравиртуализированный драйвер видео с помощью canvas, у вас есть webGL, для которого можно написать свой вариант cuda и получить довольно мощную акселерацию вычислений…

Ну и финал — запуск хрома внутри эмулируемой виртуальной машины.

Итак, эмуляция дошла до браузеров…
Всего голосов 362: ↑333 и ↓29+304
Комментарии356

Как стать системным администратором — пособие для начинающих (часть 4)

Время на прочтение9 мин
Количество просмотров134K
Предыдущая часть: habrahabr.ru/post/119407

В этой части: в поисках специализации. По просьбам в конце поста оглавление по предыдущим частям.

Карьера сисадмина


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

Я не буду рассказывать вам, как организовать сеть компании и «что делать сисадмином» — эти статьи про карьеру, и описывать я буду именно вещи, важные для карьеры, а не для повседневной работы.

Как только у вас появилось свободное время — вы снова стоите на концептуальном перепутье. Вы можете просто продолжать работать администратором, и делать это долгое время. У вас будет копиться опыт, ваше резюме будет становиться всё менее и менее крикливым, а ожидаемая сумма будет постепенно расти, у вас появится сколько-то настоящих success story… Так может продолжаться неограниченно долго. Более того, про эту стадию сисадминства чуть ли не легенды складывают «я всё настроил и могу заниматься чем хочу», «чем больше админ работает, тем хуже он», «хороший админ должен бездельничать, пока сервера работают» и т.д.

Но что дальше? А дальше изменения могут быть только с вашей стороны. Вы можете либо продолжать стихийное развите «под потребности работодателя», либо начать выстраивать собственную специализацию. При этом «развитие под потребности работодателя» у вас будет идти спорадически, т.к. бизнесу в моменты затишья ничего не нужно нового от ИТ, нужно, чтобы оно продолжало работать. Для настоящего развития нужно смотреть глубже, и свободное время тратить не на исполнение обязанностей офисного планктона, а на обучение (если вы думали, что пройдя путь от аникея до «крутого админа» мучения с книжками/мануалами закончатся — не мечтайте).

Потребности бизнеса


Кстати, о потребностях бизнеса (поскольку деньги платит именно он, то именно он и определяет ситуацию на рынке труда)
Читать дальше →
Всего голосов 83: ↑75 и ↓8+67
Комментарии70

Knight rider. Программируем плавную анимацию на микроконтроллере

Время на прочтение3 мин
Количество просмотров5.3K
Доброго времени суток.

Сегодня хочу вам рассказать как сделать плавную анимацию на микроконтроллере с помощью светодиодов. За основу взято микросхему attiny2313 фирмы Atmel, именно такая у меня валялась нашлась. Не буду углубляться в подробности прошивки, программатора, все это было на хабре. Вот и вот и под линукс

Большинство помнят фильм, а потом уже и сериал «Рыцарь дорог» (Knight Rider). Кто в детстве не мечтал о такой машине? Ну вот, для примера решил сделать анимацию, такую как впереди самой машины.

image

Читать дальше →
Всего голосов 42: ↑39 и ↓3+36
Комментарии7

Интернет-радио своими руками

Время на прочтение4 мин
Количество просмотров231K

Как сделать свою радиостанцию в интернете?


image
Для ответа на этот вопрос, сначала нужно спросить себя о том, зачем нужно делать эту радиостанцию и что она будет из себя представлять. Но если Вы уже давно нарисовали в своей голове этот маленький «бизнес-план», то «добро пожаловать под кат» к изучению мат-части.
Читать дальше →
Всего голосов 70: ↑49 и ↓21+28
Комментарии35

Первые главы «Основы Blender 2.6» готовы

Время на прочтение1 мин
Количество просмотров14K
image
Сегодя завершил оформление первой четверти книги «Основы Blender 2.6».

Книга представляет собой учебное пособие по преподаванию 3D-графики в Школе и ВУЗе. Книгу написал Джеймс Кронистер — преподаватель компьютерной графики из Central Douphile School, США. На протяжении нескольких лет он вел предмет по собственной методике и в конце концов решил собрать все в одном издании.

Каждая глава книги расчитана на 2 часа теории и в конце каждой главы есть практическое задание, предлагаемое студенту для выполнения.

После завершения перевода книга будет отличным пособием для преподавания 3D-графики в школах.

Книга «Основы Blender 2.6»
Читать дальше →
Всего голосов 80: ↑79 и ↓1+78
Комментарии77
12 ...
24

Информация

В рейтинге
Не участвует
Откуда
Санкт-Петербург, Санкт-Петербург и область, Россия
Зарегистрирован
Активность