Event: NevaCamp #2

28 - 30 мая 2010 года в Санкт-Петербурге в стенах выставочного центра у м. Кировский завод состоялась во второй раз не_конференция NevaCamp

Это конференция такого формата(barcamp), когда любой может предложить свою тему рассказа или обсуждения по ходу мероприятия. Всё нацеленно на то - чтоб быть в постоянном контакте с людьми. Создавать и участвовать в дискуссиях.

Ивент проходил в 3 дня:

  1. 28 мая - StartFormers. Выезд на природу(заброшенная военная база в Сертолово), активный отдых.
  2. 29 мая - будущее интернета: версия Opera, IdeaSpace, AR, Opera: HTML5, CSS3, SVG.
  3. 30 мая - технологии MS, директора стратегического развития МТС, Wikinomics, openNotebook, Ingria

/ перечислил только то, что сам захватил и запомнил /

Read more

Linux: простой web сервер на asm

Спятил, да? А ещё если напишу, что планировал сделать многопоточность и нечто CGI-интерфейса? Вполне может быть, в рамках just for fun

Но остановился на том, чтоб отдавать статические страницы - время не дало допилить, да и энтузиазм уменьшился. Идея мне пришла из за курсовой работа по "Системному программированию" В СПбГУ ИТМО. Всех заставили писать резидент под DOS, на 8086 архитектуре. Не торт.

Основные фитчи, которые я успел реализовать:

  • Форк, при необходимости
  • Чтение конфига(ini-like)
  • Создание слушающего сокета, установка параметров
  • Парсер заголовков и запроса
  • Обработчик запросов статического контента(не в /cgi-bin/)
  • В некоторых местах совершенно корявую работу со стеком

Реализовано на NetwideASM, c частичным использованием функций glibc. Работать сервер будет только на 32-битном процессоре i686+, из за того, что дёргается прерывание ядра Linux - а номера функций отличаются в зависимости от процессора.

Read more

Startup Crash Test Piter #5

Снова состоялось ежемесячное мероприятие для стартапов - крэш тест. И даже не в Ингрии, а в гостинице "Ольгино"(за городом, примерно между м. Старая деревня и г. Сестрорецк), причём в рамках СПИК(Санкт-Петербургская Интернет - Конференция). На SCT отвели всего полтора часа, из за этого, видимо не было докладов - только тест стартапов

Ивент прошёл 22 мая 2010, в субботу, в среднем зале отеля

Read more

j2me: пример с падающим мячиком

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

В эмуляторе выглядит всё не так красиво, как в живую, поэтому продемонстрирую на телефоне(SE P1i)




Понравилось? Для начала работы с j2me - самое то.
Используется MIDP-2.0, CLDC-1.1.

Read more

Kohana: AJAX контроллер с ловлей ошибок

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

Помимо удобной для меня выдаче данных(я предпочитаю в 99% случаев выдвать JSON) есть ещё ряд фитч:

  • Код контроллера многократно используется наследниками класса, которые при необходимости могут перегрузить необходимые методы. В них написать простой ответ клиенту с помощью не сложных функций можно в пару строк - не нужно отвлекаться на создание json ответа, а писать логику.
  • Дефолтные ответы об успешном выполнении запроса, предупреждения или ошибки
  • Ловятся ошибки фреймворка и формируется адекватный отчёт об ошибке, а не километровый HTML от Kohana - просто идеально при использовании fireBug или аналогичных средств отладки.
  • Если вызываемый метод не реализован в наследнике, то будет выдан user-friendly ответ(опять же если использовать регламент возвращаемых структур json)

Read more

Linux: count of lines and symbols in file

Цель: подсчитать количество строк и/или символов в файле.

Для этого нужно воспользоваться утилитой wc. Для подсчёта количества строк нужно воспользоваться флажком -l (lines), для символов: -c (chars)

Read more

Java: создание Jar руками

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

Всё довольно просто, достаточно разбить по шагам.

  • Скормить javac все исходники, прямо одной командой кучу файлов
  • Необходимо создать текстовый файл manifest в корне проекта(на уровне с src), в котором указать класс, который будет загружен(такого вида строчка Main-Class: practice.Main). Если не указать этот класс, то появится ошибка, навроде Failed to load Main-Class manifest attribute from
  • Запаковать все с помощью jar
  • По необходимости запустить командой java -jar file.jar

Read more

Startup Crash Test Piter #4

welcome to future

30 апреля, чуть меньше чем через месяц после третьего SCTPiter прошёл 4ый, как обычно в Ингрии - и снова на Обуховской обороны(ст. м. Елизаровская). Провели несколько раньше из за майских праздников - первые раз ивент проводился в пятницу, а не в субботу. Не обычное время проведения сильно отразилось на полноте аудитории - примерно половина мест(из 70) была свободна.

Тема для дискуссии - дополненная реальность (augmented reality), я считаю это как нельзя лучше вяжется с предыдущей - location-based services - логичное продолжение

Read more

Apache: быстрое добавление сайтов

Набросал простой скрипт, для удобного создания VirtualHost в debian.

Наверное тоже надоело лесть, создавать vhost по существующему, править пути, перезапускать сервер и так много раз и по кругу? А ещё не хватало опечататься?

Предлагаю такое решение: скрипт, делающий всю эту рутинную работу. Принимает только 1 аргумент - имя сайта и сам создаёт скелет и VirtualHost по шаблону.

В каталоге с сайтами создаётся папка с указанным именем. В ней - ещё 2 папки - log и www - для логов и сайта соответственно. А так же vhost - файл с описанием виртуального хоста по шаблону, лежащему в папке с сайтами. На этот файл создаётся симлинк в стандартное для дебиановского апача место - /etc/apache2/sites-avalable. После установки прав на созданные папки происходит вызов a2ensite и перезапуск апача. На скриншоте выше - кусочек такого скелета который получился после работы скрипта - из наутилуса

Read more