Search
Write a publication
Pull to refresh
20
0
Сергей Поповичев @Vanger

DevOps

Send message

Скрипт для работы с виртуальными хостами apache2 на локале

Reading time8 min
Views3.4K

0. Intro


Для чего это все? Цели было 2:
  1. избавиться от рутины ковыряния в консоли и файлах
  2. получить экспы в разработке shell-скриптов.

1. Что это такое?


Ниже будет представлен скрипт, для работы с виртуальными хостами апача под кубунтой для локальной машины только. Для сервера врядли сгодится. Не для этих целей писался.
Читать дальше →

TDD для начинающих. Ответы на популярные вопросы

Reading time8 min
Views51K
Исходники проекта написанного с помощью TDD. Visual Studio 2008/C#
Для написания тестов использована библиотека xUnit, для создания mock-объектов – Moq.




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

Мне задают много вопросов про TDD. Из этих вопрсов я выбрал ключевые и написал на них ответы. Сами вопросы вы можете найти в тексте, они выделены курсивом.
Читать дальше →

Zend_XmlRpc_Client и кросспостинг в LiveJournal

Reading time5 min
Views2.5K
На новый год один добрый человек подарил мне домен. Если есть домен значит там что то должно быть. Решил сделать себе блог. Но так как последние года 2 я использовал livejournal я захотел чтобы мои сообщения синхронизировались с ЖЖ.
Программирую я при помощи любимого Zend Framework.
как написать пост в ЖЖ при помощи протокола xml-rpc и ZF

Бюджетный backlight своими руками

Reading time2 min
Views17K

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

Highcharts: Красивые, динамические чарты за 5 минут!

Reading time2 min
Views67K
image
Highcharts — библиотека для создания чартов написанная на JavaScript, позволяет легко добавлять интерактивные, анимированные графики на сайт или в веб-приложение. На данный момент чарты поддерживают большое количество диаграмм линейных, круговых, колоночных рассеивающих и многих других типов.

Чарты работают со всеми популярными браузерами, включая Safari на iPhone.
Минимальная версия для IE составляет 6+. Также браузеры поддерживающие Canvas элемент, и в некоторых случаях SVG для графического рендеринга.
Читать дальше →

Feedback для интернет-магазина, моя практика

Reading time10 min
Views5.3K
К уже написанному на хабре топику "Мелочи решают все".

Прочитал топик. Согласен со многим написанным там. Но… Я занимаюсь интернет-магазинами давно, и с более или менее постоянной занятостью. Если конечно мне в жизни больше нечем заняться, хотя даже в подобные моменты я занимаюсь интернет-магазинами. Речь в посте пойдет о том как заработать больше на обратной связи с заказчиком, клиентом… ээ «customer» :) И так дальше под катом. Кстати, извините за большое количество текста… но по другому в письменном виде не получается.

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

PastryKit: средство разработки сайтов для iPhone, написанное в Apple

Reading time1 min
Views1.2K
Обратите внимание вот на какую картинку:

[пример web-приложения PastryKit]

На экране этого iPhone вы видите приложение, которое выглядит как обычное приложение; тем не менее оно запущено через Интернет, оно является сайтом, который просматривается в мобильной версии браузера Safari. Этот эффект достигается использованием библиотеки PastryKit, разработанной в Apple: библиотека отключает адресную строку Safari, библиотека обеспечивает фиксированное позиционирование панелей инструментов, библиотека даже заменяет способ прокрутки сайтов Safari, добавляя к нему такое «сохранение импульса», которое свойственно именно приложениям iPhone, а не сайтам Safari.

Библиотека PastryKit состоит из CSS и джаваскриптов. Она используется в «iPhone User Guide», а также, до некоторой степени, в LP-файлах iTunes, но ещё не очень ясно, собирается ли Apple пропагандировать и документировать использование PastryKit; блоггер и разработчик Джон Грубер (John Gruber; это тот самый, который придумал язык разметки Markdown) сравнительно случайно обнаружил библиотеку PastryKit на сайте Apple и дал знать о её существовании другим заинтересованным разработчикам.

Подробнее обо всём этом вы можете прочесть во блоге Ajaxian; там же рассказывается, как и где можно скачать и подключить PastryKit.

Сетевые плееры бывают разные: черные, белые, ASUS-ы…

Reading time6 min
Views46K
Компания ASUS в очередной раз собирается напечь вкусных блинов ;) На этот раз она замахнулась на рынок сетевых медиа-плееров.

image

Делюсь рецептом.
Читать дальше →

Проект по переводу «Погружения в Python 3»

Reading time1 min
Views25K
      Осенью вышла книга Марка Пилгрима «Dive into Python 3», и я решил попробовать её перевести на русский язык.
      Собственно, вся работа ведётся в Викитеке — ru.wikisource.org/wiki/Погружение_в_Python_3_(Пилгрим).
      Пока переведено только несколько первых глав, потому что занимаюсь этим я один.
Читать дальше →

Профилирование PHP-кода

Reading time3 min
Views36K
Профилирование PHP-кода

Рано или поздно каждый из нас сталкивается с унаследованным кодом и его оптимизацией. Дебаггер и профилировшик в такой ситуации — лучшие помощники программиста. У тех кто работает с PHP, благодаря Дерику Ретансу (Derick Rethans) есть хороший инструмент — xDebug. Информации касательно xDebug много даже в рунете, поэтому речь в этой статье пойдет не о нем.

Наткнувшись на упоминание о профилировщике для PHP я сразу подумал об xDebug ( о проприетарных инструментах от Zend я давно уже успел позабыть ), но на этот раз ошибся — речь пойдет об XHProf.
XHProf

Этот профилировшик был разработан специально для Facebook, а исходный код его был открыт в марте 2009 года.
Читать дальше →

DjangoCMS2.0 — быстрее, больше, эффективней

Reading time5 min
Views70K
Django — очаровательный в своей простоте и гибкости фреймворк. Однако, для быстрого построения большого числа несложных сайтов требуется поставить разработку сайтов на поток. Разрабатывать систему управления сайтом каждый раз утомляет и грозит потерями времени. Именно поэтому программисты часто обращаются к готовым CMS.

Почти все знают о гигантах конвеерного веб-программирования, основанных на php — Drupal, Joomla!, Wordpress и прочих, но не все знают, что в мире Python существуют не менее мощные и даже гораздо более зрелые инструменты.

Ниже - чуть-чуть о них и много - об одном из новичков индустрии

Как делегировать?

Reading time3 min
Views24K
Последняя версия этой статьи о делегировании.
Есть такое умное слово — делегирование. Определение я бы дал такое: делегирование — это процесс передачи ответственности за результат исполнение на другого субъекта. Вряд ли, кто то в здравом уме скажет «Я тебе это делегирую», чаще мы используем слово «поручаю». Попробую поделиться своим опытом, как перекладывать с больной головы на здоровую.

Читать дальше →

Эффективный сотрудник — никакой не винтик

Reading time2 min
Views2.4K
Для того, чтобы эффективно работать, человек должен четко знать, что он – большой молодец, что его решения – важны для компании и правильны. Большинство же людей работают «под начальством», т.е. с одной стороны – все время исполняют команды, а с другой – все время вынуждены согласовывать каждый свой шаг.
Читать дальше →

Загрузка браузером нескольких файлов

Reading time5 min
Views30K
Если нужно дать пользователю возможность загрузки нескольких файлов, традиционное решение на данный момент — использовать для этой цели Flash (реже — Java applet или ActiveX). В случае, если соответствующий плагин недоступен, пользователю, как правило, показывают стандартный HTML-элемент для загрузки файла.

Последнюю ситуацию можно улучшить, если использовать встроенную в браузеры возможность множественной загрузки файлов. Из всех браузеров сейчас данную возможность не поддерживает только Internet Explorer (впрочем, мы ещё не видели девятую версию, может там что-то изменится), остальные браузеры — Opera 9 и выше (а так же версии 3.5—6.05), Firefox 3.6+, Chrome 3.0.191.0+ и Safari 4.0.1+ такую возможность предоставляют.

Достаточно написать что-то вроде
Copy Source | Copy HTML
  1. <form enctype="multipart/form-data" method="post">
  2.    <input type="file" min="1" max="9999" name="file[]" multiple="true" />
  3.    <input type="submit" name="submit" />
  4. </form>
PHP оказался готов к такой конструкции (именно для него в параметре «name» стоят квадратные скобки), он просто разложит загружаемые файлы по элементам массива $_FILES, если только мы не используем «Оперу».

К сожалению, «Опера» (ещё с версии 3.5) отправляет, при использовании мультизагрузки, файлы в контейнере «multipart/mixed», который PHP не понимает.

Я попробовал исправить эту ситуацию.
Читать дальше →

Организация on-line платежей на сайте. Для тех, кто никогда этим не занимался, но боится, что придётся. Часть 2: архитектура

Reading time13 min
Views7.2K
Вслед за первой частью, призванной в первую очередь показать, что «не так страшен чёрт, как его малюют»

Статья об архитектуре части проекта, которая занимается он-лайн платежами. Намеренно не хотелось бы сейчас подробно описывать API конкретного биллинга или процедуру регистрации в нём. Тонкости конкретных биллингов нужно обсуждать отдельно, иначе тему просто не раскрыть. Цель статьи: обсудить вариант архитектуры, позволяющий нанизывать новые виды биллингов и типы платежей, с наименьшей головной болью.
Читать дальше →

Делаем сайт своей компании

Reading time2 min
Views1.7K
Год назад мы с stervec решили сменить работу. Одним октябрьским вечером мы встретились на кухне девятиэтажного дома и начали воспитывать свое новое детище (старое, кстати, не умерло, а просто спит).
Назвались — «Девять утра», а заниматься решили интернет-проектами и делать сайты для клёвых компаний нашего региона (для не клёвых сначала не делали).
Ох, через что нам пришлось пройти и сколько открытий сделать — стыд и позор, но об этом отдельный сказ. Сегодня мы хотим рассказать, в чем была наша основная ошибка.
Читать дальше →

Создаём страницы-«заглушки» для своих сайтов

Reading time7 min
Views109K
Страницы-«заглушки»Если вы купили домен, а сайт ещё не запустили, то решить, что делать с ним — это довольно непростая задачка. Оставить начальную страницу вашего регистратора или стандартную страницу хостинга? Оба варианта выглядят, по меньшей мере, непрофессионально. Особенно, если вы собираетесь попиарить свой новый проект, рассказать о нём. В то же время, вы не хотите тратить слишком много времени для создания временной страницы, т.к. вам нужно работать над самим проектом.

Лучший выход из ситуации — создать простую страницу-«заглушку», которая будет рассказывать посетителям, что здесь, в конечном счёте, появится. Хорошая страница-«заглушка» может быть двух вариантов: информационная страничка, которая просто расскажет, что здесь будет после запуска; или страница, которая предлагает посетителям подписаться на уведомления или оставить запрос на бета (или альфа) тестирование. Ниже вы увидите несколько отличных примеров обоих типов, следуя которым, вы сможете создать свою такую страницу-«заглушку». Разумеется, среди них вы не увидите обычных страниц «В разработке» (с надоевшим дизайном), которых целая куча в сети.
А теперь подробнее и с примерами...

Не забывайте про ReadyBoost-флешки

Reading time2 min
Views6.8K
История произошла не со мной, но при мне — в буквальном смысле, в соседней комнате. Публикуется с позволения виновника/главного участника/а также главного пострадавшего.

Ситуация проста до не хочу. Скачанный с ThePirateBay'я plug-in для Photoshop'а. Далее по цепочке — инъекция даже не при запуске, а просто при отображении exe-файла установщика в Проводнике Windows Seven. AVG Internet Security смог только лишь промямлить: «Сударь, в системном процессе троян!» Точнее, два трояна: Win32/Virut и Win32/Heur. Сработали они оба на славу: инфицированы все exe-шники в Windows, Program Files. В том числе, taskmgr.exe и explorer.exe. При следующем запуске, система отказывается стартовать explorer, как результат — отсутствующий рабочий стол.

Читать дальше →

Настраиваем Vim под Python

Reading time4 min
Views43K
Сегодня я хочу рассказать вам, как я настраивал любимый всеми редактор Vim (который в одном режиме пищит, а в другом — все портит) для написания кода на Python. Статья расчитана на начинающих виммеров.
У меня получилась такая картинка:

Настроить и свой!

Information

Rating
Does not participate
Location
Калужская обл., Россия
Date of birth
Registered
Activity