Как стать автором
Обновить

Наблюдение за социальной сетью в режиме реального времени. Мысли администратора-организатора.

Доброго времени суток!

Компания, в которой я работаю, в ближайшем будущем планирует запустить для своих клиентов (более 300000 интернет-пользователей) закрытую социальную сеть (то есть вход в соц.сеть будет только у тех, кто является пользователем одной из он-лайн систем компании).

Перед тем, как социальная сеть станет доступной клиентам компании, мы решили открыть регистрацию в ней сотрудникам самой компании (более 4000 человек, имеющих доступ к сети).

Мне, как администратору этой системы, очень интересно наблюдать за тем, что происходит в нашей «социальной песочнице». Результатами 2х недельного наблюдения я хочу поделиться с вами.

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

Результаты опроса

получились следующими:
Читать дальше →

Сетевые камеры, RTSP->FLASH и 3gp. Surveiilance in a nutshell.

Всем привет.

Боремся с пробками вместе


В рамках этого проекта в г. Красногорск, мы решили установить пару сетевых камер и сделать удобным просмотр потокового видео. Забегая вперед, результат можно посмотреть на http://www.ventumnet.ru/live или с мобильного телефона по wap http://www.ventumnet.ru/camera, или просто смотрите на скриншоте.К сожалению, всё это пока не работает, если у Вас установлен Adobe Flash Player 10 (почему, будет написано ниже), в версии 9 все в порядке.

screenshot1.png - image uploaded to Picamatic

Читаем дальше...

Сравнение средств PL-SQL разработки.

Всем здравствуйте.
По роду деятельности приходится писать программы под Oracle на PL-SQL. Решил сравнить средства разработки под эту БД.

Общий список фигурантов дела (всего на данный момент имеется 11 программ):
  1. AquaData Studio 7.0
  2. ClearSQL 4.3.2.20
  3. Embarcadero DBArtisan 8.5.5
  4. – 11. Если Хабрасообществу понравится – то в дальнейшем.

В этой статье я не собираюсь оценивать что лучше, а что хуже. Хочу просто рассмотреть особенности некоторых программ и передать мои ощущения при работе с ними.
Картинки!

История одной автоматизации

Было дело, работал я в софтверной компании, ориентированной на госзаказы. И писали они (до сих пор пишут) на Visual FoxPro (VFP). Единственная причина, которая удерживала меня там — это деньги. В остальном ситуация напоминала ёжиков, грызущих кактусы.

Согласно политике компании автоматизация разработки должна опираться на бесплатные системы, поэтому в качестве системы управления проектами был выбран Trac, соответственно, система управления версиями — SVN. Но в результате внедрения возникли небольшие затруднения.

В VFP есть такие типы файлов:
• *.SCX/*.SCT (зависимая пара файлов, описывающая одну форму)
• *.VCX/*.VCT (зависимая пара файлов, описывающая одну библиотеку классов).

Эти типы по своей сути представляют DBF со спецполями, некоторые из которых не документированы. Т.е. для SVN это просто бинарные файлы. Если кто-то менял класс в библиотеке VCX, то все остальные ждали коммита, ибо операция слияния для бинарных файлов обламывалась. По той же причине не работала операция сравнения, в результате между SVN-сервером и клиентом TortoiseSVN гонялись бинарные файлы в полном объёме.

Не долго думая, решили на-лету конвертировать их в текстовый формат, благо в Интернете нашли генератор (ftp://ftp.prolib.de/public/vfp/pl_scctext.prg). Я был немало удивлён, когда узнал, что патриоты VFP создали на базе него свой генератор Alternate SCCText (http://www.codeplex.com/VFPX/Release/ProjectReleases.aspx?ReleaseId=12955). И это в ноябре 2008 года! К сожалению, утилита SCCText.prg работала только в одну сторону, т.е. из текста получить обратно SCX или VCX было нельзя.

Мы пошли другим путём. Использовали проект TwoFox (http://www.foxpert.com/docs/cvs.en.htm), который преобразовывал в обе стороны без потерь, при чём создавал XML из VCX/SCX и наоборот, из XML формировал VCX/SCX. Оставалось сделать так, чтобы конвертирование производилось на лету, т.е. мы хотели, чтобы на SVN-сервере хранились XML, а сам FoxPro подхватывал уже VCX/SCX.

Поставили на каждое клиентское место nnCron (менеджер автоматизации) и nnBackup (утилита резервного копирования, умеющая создавать и обрабатывать файл-листы) (http://www.nncron.ru/index_ru.shtml). При изменении папки проекта (при сохранении файла из среды программирования VFP, или в результате операции Update из SVN), а также по таймаутам планировщик nnCron натравливал на папку проекта утилиту nnBackup, которая строила файл-лист проекта. Сравнивая новый файл-лист со старым, мы определяли, какие собственно файлы проекта необходимо конвертировать.

Далее, к TortoiseSVN была прикручена утилита сравнения XML (тогда мы использовали Altova DiffDog) и всё заработало как часы.

5 возможностей, в которых нуждается Perl 5

Лидер проекта Parrot представил заметку с анализом 5 возможностей, в которых нуждается Perl 5.
Оригинал: broadcast.oreilly.com/2008/12/five-features-perl-5-needs-now.html

Языку программирования Perl 5 уже исполнилось 14 лет. Несмотря на то, что язык претерпел много изменений с 1994, он не может остановиться в развитии. Perl 5.10 добавил много нового, и Perl 6 сильно изменит язык программирования, но каково видение Perl 5? Как язык может остаться востребованным?

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

В Perl 5 следует добавить:



Регулярные релизы.
Parrot собирается выпустить свой 24-й stable месячный релиз. Если только одно решение изменило судьбу этого проекта, то это то что надо. Ежемесячная релизы позволили найти нужный ритм развития, демонстрируют о том, что мы можем выполнить обязательства, а также осуждение, которое позволило исправлять неизбежные ошибки дизайна. Трехмесячный цикл для выпуска следующей версии Perl 5 может быть труднодостижим (нужно упростить процесс выхода релиза), поэтому нужно избавится от неопределенностей и беспорядка, сдерживать развитие функционала, поскольку следующие релизы обеспечат и стабильность и надежность.

Лось, Мышь, и автокоробка.
Perl 5 система объектов, заимствованная Питоном, достаточно гибка, но является не удобной в использовании. Moose и Mouse улучшают использование ситемы объектов для Perl 5, и это перевешивает, если нужна большая мощность. Если включить эти модули в ядро, то все используя 5.12 будут извлекать выгоду, а также это смягчит переход на объектную модель Perl 6, для тех кто собирается это делать. Точно также autobox добававляет одну из излюбленных вещей Ruby – возможность вызывать методы для примитивов как если бы они являлись объектами. Такое использование может сильно упростить код.

ctypes.
Система расширений Perl является очень сложной. Для того чтобы писать расширения для Perl необходимо иметь много знаний о том как устроен Perl внутри, о том, какие значения возвращает и принимает shared библиотека. Мой P5NCI является попыткой упростить использование, но у меня не было ни времени, ни сил чтобы работать над такой системой. Библиотека Питона ctype умнее, имеет более разумный подход, чем заставлять людей писать и компилировать C код только для того чтобы совпадали правила вызова Perl 5 и C. Здесь есть пространство для улучшения ctypes API, но концепция непременно нужна perl 5.

Улучшение CPAN интеграции.
Это звучит странно, но CPAN представляет собой целую последовательность установок. Для примера, чтобы установить модуль с CPAN, сперва необходимо ответить на несколько вопросов для конфигурирования CPAN клиента. Потом скачается пакет, который запустит небольшую программу, которая сгенерирует Makefile, который выполнит настройку, соберется, протестирует а затем проинсталирует модуль, если всё корректно.

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

Если у Вас нету доступа к серверу, или Вы не имеете доступа к C компилятору, или Вы не имеете доступа к сети, то у Вас скорее всего будут проблемы при установке расширения.

Я не говорю о том, что процесс не работает, но я думаю, что разные манеры и разный опыт делают процесс не таким простым, каким он должен быть во многих случаях. Если CPAN это звезда которая очень важна при использования Perl 5, то почему бы не сделать возможным более простое использование простых вещей, но при этом не препятствовать более сложным но менее необходимым.

mod_perlite.
mod_perlite, эквивалент mod_php, но для Perl.mod_perl – это замечательная технология, но она требует более детального администрирования, и поэтому редко применима на web серверах. Perl 5 в сети может иметь преимущество над системами, которые позволяют дешёвым хостинг-провайдерам говорить «Просто закачайте несколько файлов в эту директорию, и всё будет работать автоматически» без беспокойства за других пользователей в плане дискового пространства (или пространства имён, или памяти, или...). Для более серьезных разработок можно использовать mod_perl, но новички, и остальная часть, кто не обрабатывает больше хита в секунду в пиковое время, должны иметь что-то более легкое и менее требовательное к ресурсам чем CGI.

Perl 5 разработчики (perl 5 porters list) иногда обсуждают много новых хороших особенностей. Недавние дебаты рассмотрели 5.12. Особенности перечисленные сдесь, за исключением Moose, Mouse и autobox, не получили должного внимания. Понятно, что вопросы связанные с CPAN и mod_perlite могут оказаться вне поле зрения основных разработчиков, но рассматривать мир Perl 5 следует целиком, а не как состаящий из отдельных кусков.