• Пишем maintainable код

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

      Читать дальше →
    • Выбираем плагин для кэширования WordPress: бенчмаркинг 18 плагинов

      • Translation


      При разработке собственного сайта мы всегда хотим снизить время загрузки до минимума, и многие сделали это уже почти спортом, стараясь выгадать хотя бы 1/10 секунды. Все мы знаем, насколько важно кэширование, но существует много способов обмануть самого себя, смотря только на оценку времени загрузки. Для проведения теста мы попытались найти несколько различных кэширующих плагинов и проверить их производительность.
      Читать дальше →
    • Автоматическая загрузка файлов на Яндекс.Диск

        Предлагаю вашему вниманию PHP скрипт автоматической загрузки файлов на сервис Яндекс.Диск. Скрипт прост до безобразия, достаточно передать ему в качестве параметров логин, пароль и путь к файлу и в результате он загрузит ваш файл на сервис и выдаст вам ссылку на него. Не знаю, сколько еще меня вместе с моими постами будет терпеть Яндекс, но все-таки приведу исходный код скрипта :)
        Читать дальше →
      • Как искать клиентов для небольшой региональной веб-студии

        image
        К сожалению у нас таких не было.

        Хочу поделиться нашим опытом привлечение клиентов для вновь созданной веб-студии. Основанием нашей веб-студии официально можно считать 31 августа 2012 года, именно тогда мне выдали свидетельство о регистрации меня как индивидуального предпринимателя. С этого момента было перепробовано много методов привлечения клиентов в нашу молодую веб-студию. Все будущие сотрудник еще трудились на прежних местах работы и по вечерам делали сайты, а я в свою очередь пытался найти клиентов, совмещая с эникейством нескольких не больших организаций (да и так бывает, менеджер из эникейщика). Разработкой сайтов профессионально никто из нас раньше не занимался и естественно, как и кому продавать сайты тоже не знали. Все делалось путем проб и ошибок. Сначала не было даже программиста, был дизайнер и верстальщик в одном лице (в то время не очень сильный) и я в роли менеджера (тоже откровенно слабый).
        Приступим к перечислению что делалось, как работало, а что не приносило результата:
        Читать дальше →
      • Гибкое управление проектами и продуктами



          Думаю многие на Хабрахабр знакомы с блогом Бориса Вольфсона. Нам посчастливилось посотрудничать с Борисом и сделать замечательную книгу — Гибкое управление проектами и продуктами.

          Книга доступна в печатном и электронном виде — PDF и EPUB. При покупке «живой» книги вы также получаете электронные версии (бонус действует только после подтверждения оплаты). А также в течение недели на нашем сайте действует скидка 20% на раздел книг — Карьера в IT-индустрии. Код купона — 2c4590fd98eca723.
          Читать дальше →
        • Организованный фриланс. Часть 3. Продукт

            Продолжаю публикации на тему организованного фриланса.
            Предыдущие публикации: Часть 1. Руководитель, Часть 2. Исполнители.

            Какие услуги предоставлять клиентам?


            Главное, что необходимо понимать при работе с клиентом, для чего ему ваш продукт, ваши услуги. Я сам работал в местных веб-студиях и всегда видел одну и ту же картину: веб-студия делала именно сайты, настраивала директ, занималась сео-продвижением, но они не видели общей картины и не понимали, для чего клиент к ним приходит и почему обращается за помощью. Вам необходимо понять клиента, хотя бы на уровне его первостепенных задач. Вы создаете не сайт, а инструмент по обработке клиентов, вы должны понимать, какую пользу принесет ваше дело.
            Читать дальше →
          • Как защитить свои данные

            Рассматривается ситуация, когда злоумышленники (доброумышленники) могут заполучить Ваш сервер для подробного изучения.

            Основная идея


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

            Читать дальше →
            • +3
            • 11.4k
            • 9
          • Как мы открывали и потом закрывали интернет-магазин

            Всем доброго времени суток.

            Традиционно принято делиться удачными историями, мол, вон как было трудно, но мы все выдержали и теперь мы очень успешная компания. Я же хочу рассказать вам историю создания своего интернет-магазина «Тафигудс» без хеппиэнда. Честно признаться, никак не мог начать, две недели собирался то ли мыслями, то ли духом. Ведь признаваться в своих неудачах – дело не из легких. В общем, если мой опыт будет полезен тем, кто только в начале пути, то значит, я не зря старался.

            Немного предыстории. Я работал клерком, сидел в уютном теплом офисе, где всегда можно налить себе вкусного горячего кофе, получал зарплату по итогам каждого месяца, и вообще все было стабильно и хорошо. Но с годами начинаешь ко всему этому привыкать и все меньше ценить, появляется желание прыгнуть выше и сделать что-то новое. Начитавшись разных историй успеха на Хабре, я пришел к выводу, что надо открыть свой бизнес. Ведь главное было бы желание, поэтому оставалось найти перспективное направление. Учитывая, что работаю в логистическом бизнесе в американской компании, то ничего другого мне не приходило на ум, как дистрибутировать что-нибудь эксклюзивное из США. Я начал рассматривать разные направления от товаров для спорта до электроники и одежды. В ходе переговоров и переписки с производителями пришла мысль, что выявлять одно перспективное направление — смысла нет, тем более при какой-либо ошибке риски могут быть фатальными, что-то вроде «не клади все в одну корзину». В итоге я пришел к выводу, что надо возить всего понемногу и продавать, выявляя самое интересное направление. К тому же раз сейчас идет тренд всяких гаджетов и вообще разных мобильных штучек, то к этому больше и будем склоняться. Ассортимент магазина будет состоять из гаджетов и аксессуаров к ним, товаров для дома, активного отдыха и т.п. Мы исключили одежду из-за необходимости иметь разные цвета и размеры, а также смартфоны и планшеты из-за отсутствия в них маржинальности, да и вообще, их продают все кому не лень.
            Читать дальше →
          • Что делать, если у банка отозвали лицензию?

            • Tutorial

            В последнее время всё чаще появляются новости о том, что Центробанк отозвал лицензию у какого-нибудь банка. Иногда это происходит внезапно и неожиданно, а бывает, что до этого в интернете уже проскальзывал слух. Когда нужно верить плохим новостям и бежать менять банк и, самое главное, что делать, если вы остались без банка — не будем тянуть с лиричными вступлениями и расскажем прямо сейчас.
            Читать, пока еще не поздно
          • Как IT-фрилансеру стать предпринимателем. Часть 2

              Всем привет! В предыдущем посте мы рассказали, зачем фрилансеру ИП и почему ИП лучше, чем ООО. Сегодня вы узнаете, как зарегистрировать ИП самостоятельно и что делать потом.



              Всё для самостоятельной регистрации ИП на сайте «Я люблю ИП»
              Читать дальше →
            • Распознавание текста в ABBYY FineReader (2/2)

                Содержание
                imageРаспознавание текста в ABBYY FineReader (1/2)
                imageРаспознавание текста в ABBYY FineReader (2/2)

                Общая теория распознавания


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

                Есть некоторый набор классов C и пространство объектов R. Есть некая внешняя «экспертная» система, с помощью которой для произвольного объекта можно определить, к какому классу он относится.

                Задача автоматического распознавания – построить такую систему, которая на основе переданной ей ограниченной выборки заранее классифицированных объектов выдавала бы для любого нового переданного ей объекта соответствующий ему класс. При этом суммарная разница в классификации между «экспертной» системой и системой автоматического распознавания должна быть минимальной.

                Система классов может быть дискретной или непрерывной, множество объектов может быть какой угодно структуры, экспертная система может быть произвольной, начиная с обычных человеческих экспертов, оценка точности может производиться только на некоторой выборке объектов. Но в своей основе практически любая задача автоматического распознавания (от ранжирования результатов поиска до медицинской диагностики) сводится именно к построению связки между объектами из заданного пространства и набором классов.


                Читать дальше →
                • +34
                • 24.8k
                • 4
              • Распознавание текста в ABBYY FineReader (1/2)

                  Содержание
                  imageРаспознавание текста в ABBYY FineReader (1/2)
                  imageРаспознавание текста в ABBYY FineReader (2/2)

                  Систему распознавания текста в FineReader можно описать очень просто.

                  У нас есть страница с текстом, мы разбираем ее на текстовые блоки, затем блоки разбираем на отдельные строчки, строчки на слова, слова на буквы, буквы распознаем, дальше по цепочке собираем все обратно в текст страницы.



                  Выглядит очень просто, но дьявол, как обычно, кроется в деталях.

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



                  В этой статье мы начнём рассказ про распознавание текста от уровня строки и ниже.
                  Читать дальше →
                • Доверяй команде, но проверяй

                    Вы доверяете своей команде?
                    Я доверяю. Но проверяю.
                    В этой статье я расскажу о том, как меня кинул один из участников нашей команды, попытавшись увести людей и заказчиков. И как мы оставшейся частью команды выправили ситуацию.
                    Читать дальше →
                  • Reedy – Скорочтение, которое действительно можно использовать

                      Reedy – продвинутая реализация технологии скоростного чтения

                      В последнее время наблюдается рост интереса к скорочтению на основе технологии RSVP. Однако большинство приложений и расширений на эту тему, при более близком знакомстве, увы, оказываются не очень удобны для ежедневного использования. А ведь в потенциале они могу помочь значительно экономить время и быстрее получать информацию. Мой друг OlegCherr решил доработать технологию, создав реализацию пригодную для постоянного использования, а я ему в этом помогаю. После двух месяцев постоянной практики чтения, тестирования, исследований и улучшений решил написать статью с разбором того, что получилось в результате, потому что результат, смею считать, будет интересен и другим. На текущий момент всё выполнено в виде расширения к браузеру Chrome и названо Reedy. Приложение под Android на подходе.
                      Подробности
                    • Получаем банковскую карту, находясь за границей



                        Есть несколько вопросов, которые встают перед фрилансерами, использующими кредитки или карты-рассрочки перед выездом за границу. Один из важнейших — это средство хранения денег и платежей. Карты русских банков по ряду причин становятся неудобны при длительном пребывании за границей — например, в случае утери, блокировки и необходимости восстановления. Или, например, при необходимости завести новый счёт в другой валюте — не полетишь же специально в Россию за этим? В последнее время добавились и политические риски. Но в итоге всё сводится к вопросу чисто логистическому: как получить банковскую карту, находясь за пределами родной страны.
                        Читать дальше →