Вот уже более 10 лет как я создал и руковожу компанией, которая занимается системной интеграцией. За это время я сформировал для себя определенные правила, которые помогают моему бизнесу расти и развиваться. Возможно, они буду полезны для тех, кто уже открыл или только собирается открыть свой бизнес.
Andrewus @Andrewus
Head of platform & devops lead
Избранное Хабра в PDF
3 min
17KВсех с наступившими!

Так как я люблю все упорядочивать и каталогизировать, давно вертелась мысль завернуть избранные топики с хабра в PDF и отсортировать по датам.
Собственно выделилось немного свободного времени в праздники, решил задуманное осуществить и поделиться с хабром
UPD:
— Исправлена ошибка «too large on page» (подробнее на github) Спасибо Bifidokk и StreetAngel
— Авторы топиков сделаны ссылкой
— Добавлена возможность сохранять избранное только из указанных блогов

Так как я люблю все упорядочивать и каталогизировать, давно вертелась мысль завернуть избранные топики с хабра в PDF и отсортировать по датам.
Собственно выделилось немного свободного времени в праздники, решил задуманное осуществить и поделиться с хабром
UPD:
— Исправлена ошибка «too large on page» (подробнее на github) Спасибо Bifidokk и StreetAngel
— Авторы топиков сделаны ссылкой
— Добавлена возможность сохранять избранное только из указанных блогов
+183
Виртуальная лаборатория для подготовки к сертификации Cisco на базе Linux
4 min
28KВведение

Многие при подготовке к сдаче экзаменов Cisco или просто изучения сетей для практических занятий предпочитают собрать и использовать лабораторию из реального железа. В таком случае одним из выходов является покупка подержанного цисковского железа на Ebay, но это вам обойдется не в одну сотню долларов.
Другие довольствуются использованием симулятора сети — Cisco Packet Tracer. Для подготовки к CCNA я использовал именно его. Он прост в использовании, удобен, не требует сильного железа и идеально подходит для начинающих. Но из-за ограниченности в функциях для более серьезного изучения он непригоден.
Если же вы не хотите тратить свои кровные $$ и получить устройства с реальными IOS-ами, то нужно смотреть в сторону использования эмулятора сети GNS3 на базе Dynamips. Введение в его использование уже есть на Хабре.
Я же расскажу как его можно соединить с хостовой ОС Linux (на котором он запущен) и серверами в VirtualBox-е. Это значительно расширяет наши возможности по созданию сложных топологий с использованием роутеров Cisco, серверов с различными сервисами в VirtualBox и выходом в Интернет через хостовую ОС Linux.
+28
Drupal Forms API. Часть 1 — для Drupal 6
4 min
8.5K
Данная статья предназначена для тех, кто уже знаком с написанием простейших модулей, и хотел бы разобраться в принципах работы FAPI (Drupal Forms API) «на пальцах». В ней, мы разберем основы друпаловского программного интерфейса создания форм, и составим небольшой модуль, возвращающий введенное имя при помощи аяксового движка Друпала, именуемого AHAH. Как раз для этой простой формы нам и понадобится FAPI.
Зачем статья на эту тему? В сети, и на Хабре в частности, есть несколько примеров модулей с FAPI. Для меня в прошлом представляло определенное затруднение разобраться в том, как создаются формы — и такое объяснение «на пальцах» очень бы мне пригодилось. Я не могу вернуться в прошлое — но могу помочь тем, кто испытывает подобные затруднения.
Статья соответствует 6.x версии Друпала. Я планировал в статье осветить параллельно и 7 версию — но отличие в API существенно, поэтому я опишу тот же фунционал для 7 версии API во 2 части статьи.
+18
HTML5 CANVAS шаг за шагом: Изображения
5 min
202KTutorial
CANVAS шаг за шагом:
Продолжение статьи про рисование на холсте, в которой мы научимся использовать изображения. Естественно рисовать на холсте примитивами очень не удобно и требует определённых трудозатрат, и результат иногода явно хромает качеством. Поэтому естественно в canvas api предусмотрено взаимодействие с изображениями. Добавление изображения условно можно разделить на два шага: создание JavaScript объекта Image, а второй и заключительный шаг это отрисовка изображения на холсте при помощи функции drawImage. Рассмотрим оба шага подробнее.
Продолжение статьи про рисование на холсте, в которой мы научимся использовать изображения. Естественно рисовать на холсте примитивами очень не удобно и требует определённых трудозатрат, и результат иногода явно хромает качеством. Поэтому естественно в canvas api предусмотрено взаимодействие с изображениями. Добавление изображения условно можно разделить на два шага: создание JavaScript объекта Image, а второй и заключительный шаг это отрисовка изображения на холсте при помощи функции drawImage. Рассмотрим оба шага подробнее.
+35
Автоответчик на звонки в Skype на Python
4 min
11KПривет! Данный топик будет посвящен написанию автоответчика для Skype, который будет принимать за вас звонки, проигрывать приветствие и записывать ответ.
+71
Как проектировать программы и их интерфейсы под пользователя, или теория DISC для «нечайников»
6 min
8.5KКак часто программист сталкивается с вопросом выбора целевой аудитории? Я, если честно, не могу особенно назвать себя программистом, но с этим связан очень тесно. Я заказчик, и по сути менеджер проектов. Как правило, этот вопрос возникает в момент, когда проектируешь новое приложение. Будь это модуль для 1С, веб сайт или приложение для iPhone – задача очевидна. Необходимо чтобы пользователю было удобно.
Как правило мы примеряем всё под себя – если мне понятно, мне удобно, значит и пользователю будет удобно. И на практике сталкиваемся с «нормальной» ситуацией, когда пользователь не может найти кнопку или функцию, которая для Вас, находится в очевидном месте. Итак давайте разберемся, откуда возникают такие недоразумения?
Как правило мы примеряем всё под себя – если мне понятно, мне удобно, значит и пользователю будет удобно. И на практике сталкиваемся с «нормальной» ситуацией, когда пользователь не может найти кнопку или функцию, которая для Вас, находится в очевидном месте. Итак давайте разберемся, откуда возникают такие недоразумения?
+42
GIMP Script-fu: быстрое изучение и написание простых скриптов на Scheme (+ пакетная обработка бесплатно)
8 min
25KTutorial

Вступление
В статье будет рассказано о том, как в кратчайшие сроки познакомиться с основами скриптинга в GIMP на языке Scheme и приступить непосредственно к решению простых практических задач. Данный материал предназначен лишь для тех, кто собирается автоматизировать рутинную обработку здесь и сейчас, не сильно вдаваясь в тонкости и не жертвуя драгоценным временем. Также, статью не рекомендуется использовать в качестве пособия по Scheme отдельно от Script-fu. Связано это с упрощённым стилем программирования в данном материале и отсутствием освещения других немаловажных фактов, которые нас сейчас волнуют гораздо меньше, чем скорость освоения.
Содержание:
- Что нам понадобится?
- Коротко о синтаксисе
- Переменные
- Функции
- Списки
- Регистрация скрипта в GIMP
- Написание кода
- Заключение
+56
Где хостятся стартапы
1 min
1K
+50
Tips & tricks в разработке букмарклетов
6 min
2.7KТак получилось, что в течение нескольких месяцев я занимался разработкой букмарклетов, сделав их около десятка. Использовал как jQuery, так и native JavaScript. О том, с какими подводными камнями я столкнулся, что нового узнал и нашел — об этом пойдет речь под катом.
+49
Жрецы программирования
4 min
7KСовсем недавно я понял, отчего многие программисты, использующие PHP, отличаются от программистов «в целом». Основой для моего понимания стали слова Руслана Косолапова: «Это PHP. Понять невозможно, только запомнить». А ведь действительно, это так. Объясню, почему.
+127
Документация по API платежных систем
1 min
7.3KЗа прошедший год в рамках проектов довелось поработать с рядом отечественных платежных системам. После чего, помимо опыта, осталось немного документации, которой и хочу поделиться. Возможно, кому-то пригодится в будущем.
+78
Рисуем кнопку в SVG
7 min
8.9KВ настоящее время я работаю над одним веб-приложением, и вот захотелось мне обновить нынешний, довольно-таки топорный интерфейс на что-то более современное, более красивое. Начать решил с кнопок как с наиболее технически нагруженной части: в них требуется не только заменить внешний вид, но и добавить индикацию нажатия и обработку событий. Сразу же возникла проблема: как обеспечить масштабирование? Обычной растровой картинкой не обойтись, так как у пользователей могут использоваться разные шрифты (как вид, так и размер), и картинка-подложка не будет под них адаптирована. Логично было бы попробовать использовать для этих целей SVG, чем я и занялся.
К сожалению, в конечном итоге я пришёл к выводу, что овчинка не стоит выделки: слишком много проблем вылезло при попытке реализации этой идеи. Тем не менее, я не считаю это время потерянным: я приобрёл новые знания и навыки и теперь хотел бы поделиться ими с сообществом, чтобы облегчить жизнь тем, кто решит повторить мой путь. Описать свои мучения я планирую в двух статьях: в первой — работа над собственно SVG-картинкой, во второй — техника внедрения полученной картинки в качестве кнопок, возникающие при этом проблемы и их решение или обходные пути. Кому интересна первая часть, прошу под кат.
К сожалению, в конечном итоге я пришёл к выводу, что овчинка не стоит выделки: слишком много проблем вылезло при попытке реализации этой идеи. Тем не менее, я не считаю это время потерянным: я приобрёл новые знания и навыки и теперь хотел бы поделиться ими с сообществом, чтобы облегчить жизнь тем, кто решит повторить мой путь. Описать свои мучения я планирую в двух статьях: в первой — работа над собственно SVG-картинкой, во второй — техника внедрения полученной картинки в качестве кнопок, возникающие при этом проблемы и их решение или обходные пути. Кому интересна первая часть, прошу под кат.
+35
Интеграция phpBB 3 и Kohana 3
5 min
2.9K
Краткий мануал о том, как сочленить эти два инструмента. На самом деле, все не так сложно.
Суть проблемы
phpBB имеет свой API, вопрос как его использовать. Вообще, достаточно подключить файл common.php, однако просто так это не работает. Во-первых пересекаются классы сессий. А во-вторых и в-третьих — читайте внутри.
+25
audio.js — слушаем музыку в любом браузере
1 min
70Kaudio.js — это javascript библиотека, позволяющая использовать HTML5 тэг повсюду. Что скрывается за словом «повсюду». Если есть возможность использовать тэг , то будет использоваться он, иначе будет подключен плеер на flash. В библиотеку так же входит и UI отображение для этого плеера, которое может быть видоизменено с помощью css.
+71
Малый бизнес 2011. Волк и овцы
6 min
35KНа прошлой неделе мы начали публикацию case’ов, помогающих решать проблемы реального бизнеса в реальной жизни. От вас было получено много пожеланий как это продолжать, у нас у самих возникла масса идей и вот, мы продолжаем! Уже немало написано о том, что с 2011 года для малого бизнеса наступят темные времена. Взносы вырастут в 2,5 раза, отчетность придется сдавать новую, больше и в 4 раза чаще, кроме того, нет никакой гарантии, что наши кровные деньги пойдут по назначению и сделают жизнь бабушек, дедушек и детушек лучше. Но что теперь делать бизнесменам? Уходить «в тень»? Закрываться? Бежать из страны?
Большинство способов малозаконны. А можно личто-то сделать вполне легально и пережить трудное время, пока правительство не одумается и не прекратит «кошмарить» малый бизнес?
Большинство способов малозаконны. А можно ли
+109
WXHR: старый добрый XHR со вкусом Web Workers
4 min
2.7KБывают ситуации, когда веб-приложению требуется поднять кучу данных с сервера, раскодировать их и отправить дальше по назначению. Примером этому может быть онлайн 3d редактор, где каждая модель может занимать несколько мегабайт в gzip'аном json'e.
Что же делать когда браузер среднего пользователя подвисает на секунду или даже больше при загрузке и распаковке данных?
1. Придумать что-нибудь на flash (я не уверен на 100%, но некоторые браузеры запускают плагины в основном потоке)
2. Загружать данные кусками, обрабатывать кусками.
3. Попросить пользователя сделать апгрэйд компьютера.
Все 3 варианта не очень, правда?
Под катом элегантное решение (без лишних скриптов и дописывания кода приложения) этой проблемы.
Что же делать когда браузер среднего пользователя подвисает на секунду или даже больше при загрузке и распаковке данных?
1. Придумать что-нибудь на flash (я не уверен на 100%, но некоторые браузеры запускают плагины в основном потоке)
2. Загружать данные кусками, обрабатывать кусками.
3. Попросить пользователя сделать апгрэйд компьютера.
Все 3 варианта не очень, правда?
Под катом элегантное решение (без лишних скриптов и дописывания кода приложения) этой проблемы.
+21
Делаем SMS-сервис «на коленке»
6 min
9.1K
Сейчас я расскажу, как мои коллеги за неделю (по часу в день) запустили «по фану» SMS-сервис и как это делается. Вообще, мне было интересно, как надо правильно прикручивать SMS-уведомления к интернет-магазину, но тут прямо целый кейс микропроекта. Сразу говорю, если вы хорошо знаете как работает SMS-агрегатор, SMS-шлюз и другие штуки, этот «первый кирпичик» покажется вам банальным.
Задача перед мини-стартапом стояла простая:
- Создать прикольную штуку на «коленке» за минимум времени
- Потратить на запуск меньше 1000 рублей (время не считается)
- Собрать работающий монетизируемый сервис
UDP: в комментах ещё есть статистика во время хабраэффекта и феерический конец истории от агрегатора.
+95
История создания одной социальной флэш-игры
8 min
2.5K
Так что все пришлось пробовать на своем опыте. До этого был только опыт создания различных сайтов — от простых, до довольно сложных (базы знаний по играм — см. раздел «ссылки»), т.е. по сути, опыт ограничивался HTML/PHP/MySQL. Но мы из тех людей, которые не боятся нового.
Я расскажу о создании, затратах, подводных камнях и профите.
Но обо всем по порядку…
+55
Тутумба: наш новый сервис пользовательских обзоров
2 min
6.2KНа этой неделе мы «официально» (это значит, что мы всем об этом теперь рассказываем:)) запустили новый проект. Месяцы кропотливого труда команды, десятки реализованных и сотни нереализованных идей, миллионы нервных клеток, которые никогда не восстановятся — и вот бета-версия Тутумбы готова. Теперь пара слов о том, что же получилось.


+8
Information
- Rating
- 2,831-st
- Location
- Москва, Москва и Московская обл., Россия
- Works in
- Date of birth
- Registered
- Activity