Pull to refresh
0
Сергеев Петр @3ybHa9_Fe9read⁠-⁠only

User

Send message

Сделай сам: регистрация ООО

Reading time6 min
Views33K
Не так давно мы размещали подкаст, в котором Антон Шаяхов поведал миру, как быстро и качественно зарегистрировать ИП. Совершенно незаслуженно мы обошли вниманием более сложный процесс. Исправляемся.

Дано: ведется деятельность в качестве ИП, есть доступ в интернет, уровень интеллекта выше среднего.
Задача: в кратчайшие сроки и с минимальными затратами закрыть ИП и зарегистрировать ООО.

Почему ООО?

AA-Tree или простое бинарное дерево

Reading time6 min
Views19K
Тема бинарных деревьев уже обсуждалась на хабре (здесь и здесь).

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

Мне, однако, кажется, что AA-дерево заслуживает отдельной статьи.

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

Непрерывная интеграция: Hudson + PHPUnit

Reading time4 min
Views2.6K
Существует цепочка в мозгу: мы напишем юнит тесты, затем эти тесты нам расскажут если мы что-то сломали, затем они нам почту будут отправлять о том, что проект поломался.
Это ничто иное, как иллюстрация непрерывной интеграции (Continious Integration) нычне крайне модного направления гибкой разработки. Единственный недостающий элемент цепочки — «КАК». Ниже коротенький рецепт, как бы отвечающий «очень просто».
Читать дальше →

Введение в Cappuccino

Reading time10 min
Views5K
Фреймворк Cappuccino – уникальная технология, позволяющая создавать веб-приложения десктопного качества. Он абстрагирует DOM и вместо него предоставляет Cocoa-подобный API. Вместо того, чтобы возиться с CSS-версткой и кроссбраузерными проблемами, вы используете интерфейсы, специально созданные для разработки приложений, а не статических страниц, интерфейсы, взятые с платформ Mac OS X и iOS.

Я заметил, что на русском языке почти нет обучающих материалов о Cappuccino, и решил восполнить пробел. Этот очерк рассчитан на то, чтобы прочитав его, можно было сразу приступать к разработке своего первого Cappuccino приложения. Я познакомился с фреймворком, когда искал средство для реализации онлайновой среды разработки для своего проекта Akshell. Мне нужно было сделать полнофункциональную IDE, работающую в окне браузера, и Cappuccino отлично справился с поставленной задачей.
Читать дальше →

Заметки об объектной системе языка Python ч.2

Reading time10 min
Views90K
Вторая часть заметок об объектной системе python'a (первая часть тут). В этой статье рассказывается, что такое классы, метаклассы, type, object и как происходит поиск атрибутов в классе.

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

Строим мультикоптер, часть завершительная

Reading time6 min
Views31K
Часть 1 | Часть 2 | Часть 3 | Часть 4

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



Но не тут-то было.
Читать дальше →

Анимированные баннеры на Javascript — это просто*

Reading time7 min
Views20K
*) На самом деле все равно сложно, но зато проще, чем было раньше.

История началась с постановки задачи: нужно сделать анимированный баннер с примерно тридцатью объектами средствами HTML+javascript за один день. За день, конечно, баннер сделан не был, а был сделан за два усилиями трех человекодней. После выполнения задания осталась библиотека пакетной анимации, которую я назвал Scenario. О её доработанной версии я и хочу рассказать.

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

Запуск сценария из любого места предельно прост:

var newScenario = [...];
$.scenario(newScenario, {
    complete: function(time) {
        alert('Готово!');
    }
});

Осталось только разобраться, что писать вместо трех точек в примере :)
Читать дальше →

Двадцать вопросов, которые помогают разработать алгоритм

Reading time5 min
Views8.4K
Как разработать алгоритм, решающий сложную задачу? Многие считают, что для этого нужно «испытать озарение», что процесс этот не вполне рационален и зависит от творческой силы или таланта.

На самом деле решение любой задачи сводится к сбору информации о наблюдаемом объекте. Причем этот принцип применим как для решения самых сложных научно-исследовательских задач, так и для решения прикладных задач. Работа изобретателя напоминает не столько работу волшебника, сколько путешествие первооткрывателя по неизведанной территории. Главное качество хорошего изобретателя – умение собирать информацию.

Если вы хотите решить сложную задачу, собирайте информацию в самых разных направлениях. Ответив на следующие 20 вопросов, вы легко выстроите план работы над задачей.
Читать дальше →

Реализация графов и деревьев на Python

Reading time17 min
Views290K
Продолжаем публикацию наиболее интересных глав из книги Magnus Lie Hetland «Python Algorithms». Предыдущая статья расположена по адресу habrahabr.ru/blogs/algorithm/111858. Сегодня же речь пойдет об эффективной работе с графами и деревьями и особенностях их реализации в Python. Базовая терминология теории графов уже обсуждалась (например здесь: habrahabr.ru/blogs/algorithm/65367), так что я не включил часть главы о терминах в эту статью.

Реализация графов и деревьев


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

Инструменты для дизайнеров и разработчиков

Reading time2 min
Views4.8K


Предлагаю ознакомиться с небольшим набором инструментов для веб-разработки, которые могут сделать вашу жизнь проще. Все сервисы бесплатны и просты в использовании, но (как обычно) есть и минус – они все на английском, хотя когда и кого это останавливало?)

Смотрим

Автоматизированная проверка PHP кода при комитах

Reading time6 min
Views34K
В свое время работая в узком кругу программистов, отдельными задачами и даже проектам, мы не задумывались о проблемах связанными с текучкой кадров. Точнее думать — думали, но ни каких мер не применяли, да и в целом коллектив был сплоченный никто не уходил и никого «не уходили». С ростом внутренних проектов и корпоративных клиентов, штат начал разрастаться и казалось, что все отлично — нас больше, значит будем больше успевать и делать, но не тут то было. Мы начали тратить кучу времени на “бесполезные” обсуждения, проверки, излишние проектирование и т.д, больше всего раздражает — это проверка кода. И тут я начал думать, что “мудрые и древние” наверняка решали эти проблемы с сотнями, тысячами программистов, неужели мы не справимся? Я решил провести эксперимент, под названием “автоматизированная проверка стиля кода при комитах”. Для большинства из Вас это не новость и наверняка вы этим пользуетесь, но поделиться опытом внедрения думаю, не будет лишним.
Читать дальше →

Видео с HighLoad++: Петр Зайцев — Диагностика и исправление проблем производительности MySQL

Reading time1 min
Views9.4K
Добрый день,

Вот и последний обещанный видеодоклад с HighLoad:

Петр Зайцев — Диагностика и исправление проблем производительности MySQL

Часть 1 (30:56): video.mail.ru/corp/miftahetdinova/5/6.html

Часть 2 (28:35): video.mail.ru/corp/miftahetdinova/5/7.html

Часть 3 (28:33): video.mail.ru/corp/miftahetdinova/5/8.html

Часть 4 (28:29): video.mail.ru/corp/miftahetdinova/5/9.html

Часть 5 (28:13): video.mail.ru/corp/miftahetdinova/5/10.html

Часть 6 (28:10): video.mail.ru/corp/miftahetdinova/5/11.html

Часть 7 (28:13): video.mail.ru/corp/miftahetdinova/5/12.html

Часть 8 (22:50): video.mail.ru/corp/miftahetdinova/5/13.html

Часть 9 (16:01): video.mail.ru/corp/miftahetdinova/5/14.html

Часть 10 (15:02): video.mail.ru/corp/miftahetdinova/5/15.html

Также мы постараемся до конца года выложить доклады с HighLoad++ в Power Point.

Хорошего вам дня!

UPD. Уважаемые хабраюзеры! Мы хотим еще раз извиниться за невысокое качество видео, которое, тем не менее, решили выложить, т.к. знали, что темы HighLoad-a для вас крайне важны и интересны и наряду с негативным фидбеком получили очень много позитива, благодарностей и просьб продолжать выкладку докладов.

Завтра, 29 декабря, как мы уже обещали, на «Хабре» также будут выложены презентации всех докладов в PPT. В хорошем качестве ;)

Спасибо за терпение и фидбек!

Текст из картинки

Reading time1 min
Views3.2K
Понадобилось для одного проекта сделать текст с цветами букв из нужной картинки. Делать все из картинок было бы неправильно, да и текст поисковиками пусть лучше обрабатывается. Нужного плагина не нашлось и было интересно написать свой.

Вкратце
Текст из картинки, jQuery плагин pictotxt

Демо 1 | Демо 2.
Читать дальше →

Hg Init: Часть 1. Переобучение для пользователей Subversion

Reading time9 min
Views124K
Hg Init: Учебное пособие по Mercurial.


Mercurial — это современная распределенная система контроля версий с открытым кодом. Эта система — заманчивая замена для более ранних систем вроде Subversion. В этом простом учебном пособии в шести частях Джоэль Спольски (Joel Spolsky) рассказывает о ключевых принципах Mercurial.

Если вы использовали Subversion, то Mercurial будет непонятным. Эта часть рассказывает о главных отличиях при работе с Mercurial. Если вы никогда не использовали Subversion, то можете просто пропустить эту часть.

Часть 1. Переобучение для пользователей Subversion


В каком же я был смятении, когда программисты в моей компании решили сменить Subversion на Mercurial!

Для начала, я начал приводить всевозможные тупые причины, по которым нам не надо ничего менять. «Мы должны хранить репозиторий на центральном сервере, так безопаснее», — сказал я. Знаете что? Я был неправ. При работе с Mercurial у каждого разработчика на жестком диске хранится полная копия репозитория. Это, на самом деле, безопаснее. В любом случае, почти в каждой команде, использующей Mercurial, центральный репозиторий тоже существует. И вы можете делать резервное копирование этого репозитория со всей необходимой одержимостью. А еще можете устроить трехступенчатую защиту с Сайлонами, Штурмовиками и прелестными лабрадудлами или что там требует ваш IT-отдел.

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

Создание UML по существующему PHP коду

Reading time2 min
Views14K
Когда большинство проектов давно находятся на стадии поддержки, а не разработки, то поддержание документации в актуальном виде зачастую не проводится. Тогда довольно полезно будет получить диаграмму UML по существующему коду. Это также необходимо в случае, если предпроектная документация велась не полностью или проектированию подвергались не все части системы. Вопрос особенно актуален, когда появляется новый разработчик.

В этой статье я рассмотрю 2 скрипта, реализованных на PHP:
  • Консольный скрипт php2xmi
  • Библиотека PHP_UML
Читать дальше →

Эмулятор машины Тьюринга на MySQL

Reading time8 min
Views12K
Недавно на одном из собеседований мне задали задачку на разбор строки только средствами MySQL.
После этого я задумалась: а вообще, насколько сложные задачи такого рода можно решить с помощью одной лишь СУБД? Ответ нашелся быстро: средствами MySQL можно решить вообще любую задачу на распознавание строк. А чтобы делать это более удобным и универсальным способом, достаточно написать примитивный эмулятор конечного автомата, а еще лучше — машины Тьюринга, разумеется используя только лишь конструкции, любезно предоставляемые MySQL. Итак, начнем эксперимент.

Проектируем

Любая программа начинается с проекта. Так будет и в этот раз. Прежде всего, что такое машина Тьюринга, что она делает, что умеет? Умеет она, прямо скажем, немного. Имея в распоряжении бесконечную ленту и управляющее устройство (каретку) машина может:
  1. Двигаться по ленте влево и вправо
  2. Читать с ленты символ
  3. Писать на ленту символ
  4. Переходить в различные состояния

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

Ускоряем раздачу фоток

Reading time8 min
Views14K

С проблемой медленной отдачи статического контента рано или поздно сталкивается каждый сисадмин.

Проявляется это приблизительно так: иногда 3Kb картинка грузится так, как будто бы она весит 3Mb, на ровном месте начинают «залипать» (отдаваться очень медленно) css-ы и JavaScript-ы. Вы нажимаете ctrl + reload — и уже, вроде, проблемы нет, потом спустя всего несколько минут все повторяется опять.

Не всегда истинная причина «тормозов» очевидна и мы косо поглядываем то на nginx, то на хостера, то на «забитый» канал, то на «тормозной» или «глючный» браузер :)

На самом деле проблема в несовершенстве современного винчестера, который до сих пор не расстался с механическими подсистемами вращения шпинделя и позиционирования головок.

В этой статье я предложу Вам свое решение этой проблемы, основанное на практическом опыте использования SSD дисков совместно с web-сервером nginx.
Читать дальше →

Кейс «Проектирование веб-сервиса бронирования билетов». Бизнес-анализ. Описание предметной области

Reading time2 min
Views16K
Параллельно с описанием бизнес-процессов, контекста и профилей заинтересованных лиц необходимо изучать предметную область. Основными инструментами здесь являются словарь терминов (который лучше составлять совместно с экспертом предметной области) и диаграмма сущностей, которая изображает, какие есть сущности, и какие между ними есть взаимосвязи.

IV. Описание предметной области


Законодательные ограничения

— Зрителю должно быть больше 14 лет (для сделкоспособности).
— Необходимо дополнительное пользовательское соглашение, в котором пользователю будет необходимо дать согласие на использование его персональных данных.
— В соглашении также должно быть указано, что услуга бронирования предоставляется безвозмездно.

Словарь терминов

Диаграмма сущностей

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


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

Memcached и PHP ликбез

Reading time6 min
Views227K
В интернете достаточно много информации на данную тему, но, несмотря на это, многие обходят её стороной. Цель данного поста, разъяснить на пальцах основы взаимодействия с Memcached.
Читать дальше

Форки движка MySQL: MariaDB, Percona. who is who?

Reading time3 min
Views89K
MySQL стал собственностью Oracle, есть ли альтернативы и как быстро движение вперед?.. Вроде как обобщающего обзорчика «who is who?» еще не было. Итак, обзорчик для тех кто «не в теме»
Читать дальше →

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity