Project Management Step 1

Обнаружил в драфтах свою статью. Как-то получилось, что она не была опубликована своевременно, а сейчас я даже не знаю, что туда можно дописать. Поэтому публикую as-is, вдруг кому-то покажется интересным:

Сейчас популярно стали всякие Management-ы. Прямо как грибы после дождя растут: то time management, то money management, даже офис management встречается. А что люди в это понятие вкладывают? Просто умение организовать что либо – процесс работы, финансы. На мой взгляд всем этим management-ам адекватнейшим переводом будет “управление”. Вот и я столкнулся с проблеммой управления. Хоть у нас и не очень большая фирма, мы связаны с заказчиками, freelancer-ами, внешними сотрудниками, а значет без эффективного управления проектами организация данной связи может создать узкое место в построении бизнеса.
Вот сегодня, я и решил слегка улучшить внутриофисную коммуникацию. Ну, вернее не сразу улучшить, а посмотреть на перспективы. Для управления большинством проектов достаточно ручки и листочка бумаги, однако если в офисе люди работают в разное время, то короткими записками не обойтись, а цеплять к почте файлы по 60Мб достаточно муторно. Обратив свой взор на рынок програмного обеспечения для управления проектами, я понял что подобные приложения сейчас непишут лишь ленивые. Рынок переполнен разнородной информацией по данному вопросу и поэтому я обратился к ручке с бумажкой, чтобы сформулировать свои требования. Итого вышло:

  • Поддержка любого количества проектов (отличного от 1)
  • Возможность устанавливать статус проекта, раздавать задачи по конкретным пользователям
  • Возможность прицеплять файлы разного типа

Посоветовавшись с коллегами-программистами, я выяснил что есть хороший пакет написанный на языке C# для MS SQL Server-a. Gemini отличается от многих подобных продуктов тем, что предлагает не “вомпу в мешке”, а вполне лицензионную версию с ограничением на 10 пользователей. Чего нам в принципе достаточно на первое время.
Потратив кусочек своего рабочего времени на установку компонент: версия 2.1.1 потребовала .NET Framework 2.0 и MS SQL Server 2000, я принялся за борьбу с инсталлятором. Не смотря на то, что само приложение полностью локализованно, инсталлятор отличается исключительной англоязычностью, как интерфейса, так и мануала. Без бубнов конечно не обошлось, но в конце концов – все заработало очень сносно.

Дата написания: 27 Июня 2007 года.

MongoDB for Developers

Я пишу этот пост, потому что нахожусь в некотором экстазе от онлайн курса M101: MongoDB for Developers. Если вы вообще смотрите в мир NoSQL, то думаю это самое то, что нужно для того чтобы идти в ногу со временем. Вообще, я заметил что за прошедшие пару лет с окончания вуза я отучился учиться… чтоже Coursera, Udacity и другие ресурсы с Class Central помогут мне вернуться в строй.

Иногда они возвращаются

Привет, народ!

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

Если кому-то нужны слайды, они доступны по ссылке в видео. Правда для их запуска придется установить Factor и немного пошаманить с исходным скриптом. С другой стороны, мы ведь все это время развивались и прогрессировали, так что легко и непринужденно осилим эти мелкие трудности.

Как считать jpg из папки на Ruby on Rails

Было дело, надо в одном проекте выводить список файлов лежащих в определенной директории, с возможностью их скачать, как говориться в натуральную величину. Это был мой первый кусочек кода написанный на ruby, а поскольку rails и их идеология для меня тогда еще были не вновинку, то реализовывал я это в самой view.

Надеюсь, этот код будет полезен тому человеку, который вот уже 3 месяца ходит на мой блог из поиска Google с запросом “ruby on rails jpg из папки считать”.

Кусок который исполняется, но не отображается. Все наши файлы лежат в папке public/files. Красиво было бы его вынести в соответсвующий контроллер в нужный метод.


<%
vendors = Hash.new { |hash, key| hash[key] = Array.new }
Dir.open('public/files').each do |file|

    # Заполняем хэш vendors файлами из директории, 
    # перебирая по очереди каждый из них
    next if file[-4..-1] != '.pdf'
    next if file =~ /^..?$/
    file.gsub!('.pdf', '')
    f = file.split(' ')

    # Разбиваем имя файла, получая необходимые логические части  
    # Прозводитель и Модель.
    # Заполняем хэш полученными значениями.

    model = f[-1] # Пробельчик чик-чик
    vendor = f[0..-2].join(' ')
    vendors [vendor] << model
end
%>

Кусок, который отвечает за вывод на экран. Тут уж и форматирование можно подставить, и оформить как следует.


<% for v in vendors.keys.sort do %>
<!-- Впечатываем производителя-->
<h2><%= v ></h2>
    <ul>
    <% for m in vendors[v].sort do %>
    <!-- Заполняем список названиями моделей-->
    <li>
<a href="/files/<%= v + ' ' + m + ' .jpg' %>" target="_blank"><%= m %></a>
</li>
    <% end %>
    </ul>
<% end %> 

В ходе написания этого поста, обнаружил, что отвалился плагин Markdown Extra, который у меня раньше изолировал трансляцию всего чего и почему-то в рамках <code> пришлось переменять всякие < на &lt; вручную. Коллеги-программеры, если у кого есть удобное решение для wordpress с оформлением кусков кода, поделитесь в комментариях.

Верстальщикам и веб-программерам в помощь

По причине организации работы мне пришлось заняться несколько несвойственным, хоть и не противным, мне делом – версткой. А именно преобразованием дизайнов в шаблоны HTML и файлы разметки CSS. Версталось все в XHTML 1.0 Transitional, а форматировалось и оформлялось эксклюзивно CSSом как учил Иван Григорьевич. На основании определенных рабочих моментов и родился этот пост. Итак, начну с выражения огромного спасибо Димычу за статью о букмарклетах ибо почерпнутые из нее знания помогли свести обычную “угадайку” где в IE тупой бордер закрался (в смысле в тупом IE лишний бордер прокрался) к систематическому багодавлению. Если вдруг ваше начальство считает что пользователи IE6 это значительный сегмент посетителей сайта, то XRay ваш незаменимый помошник.

Второй важный факт: в Safari есть свой инструмент для отлова всевозможной фигни. Кроме того, что там можно использовать XRay, гораздо удобнее заглянуть в настройки и включить меню разработчика.

Тогда после этого вам становиться доступен такой удобный инструмент как Web Inspector, что не может не радовать. Кроме того, что он отслеживает валидность HTML, показывает наглядное применение стилей CSS к разным элементам страницы, он еще представляет возможности по запуску скриптов. В общем, адекватный заменитель Firebug для Safari. Это не просто JavaScript Debugger вызывающийся в Google Chrome по нажатию Alt+~, а полноценная консоль, позволяющая понять чего ждать от ваших функций под WebKit.

Кроме того, как и Firebug Safari Web Inspector умеет рисовать вот такие симпатичные картинки, которые позволяют определить почему страница грузиться дольше чем вы расчитывали.

В общем, если вдруг вам надо разбираться с версткой под Safari, пожалуйста, пользуйтесь и наслаждайтесь! Да, если вдруг вы все об этом знали, то не надо “боянов” – для меня и моих коллег этот инструмент – открытие, которое заставляет задуматься о возможности миграции с FF на Safari. За последнее голосует скорость обработки JS последним, а так же красивый рендеринг шрифтов, чем под Windows не многие программы могут похвастаться.

Немного багов с Gems

В последнее время, меня немного поколбасило. Ну, не считая сессии, прошел BarCamp, где я проявился на Инкубаторе Инноваций. Ушел с работы, чтобы освободить больше времени для оффициального и личного образования. Теперь, перехватываю сторонние проекты, которые изредка падают на голову.

В связи с уходом с работы, пришлось менять сервер. Блога это не коснулось, хостинг-то у меня зарубежный, платный и shared, но приятно иметь 24/7 сервер на котором у тебя есть права root-а. Тоесть можно легко и просто поставить нужные пакеты, или просто перезагрузить машину, когда она просто начала сильно сбоить. Слава Богу, мир не без добрых людей. Jujo, выделил мне место на своем development server-e, и я теперь планомерно переношу туда свои разработки.

Сервер хороший, и работает на правильной операционке Ubuntu Server, поэтому большинство пакетов поставились простым apt-get. Но, не все было просто. Поскольку я любитель-экспериментатор, то свой репозиторий gem пакетов (это специальные библиотеки для ruby) я предпочитаю хранить отдельно. Мало ли кому не понравятся development версии. Для этого, я пользуюсь простым решением, когда найденым на форумах хостера.

Ниже идет решение, которое будет полезно любому, кто решил завести свой gem repository, а также список ошибок, которые могут быть причиной не совсем верных апдейтов или нехватки пакетов. В общем, если вас зацепило, то надо жать на ссылку, а если нет, то гляньте в Blogroll, там много интересных кандидатур. Кстати, чтобы ссылка на ваш сайт оказалась в моем блогролле, нужно регулярно – раз в месяц – перечислять мне 1.99 долларов на каждый из счетов в webmoney, moneybookers, paypal и 3ех банках. 🙂

Continue reading Немного багов с Gems