• Личный опыт Web разработки в Mac OS X

    Привет Хабр!

    По мотивам вот этой статьи

    Как веб-разработчик, выбравший Mac OS X в качестве основного рабочего инструмента, я столкнулся с проблемой настройки необходимого окружения. По многолетней привычке работы с серверами на Linux, руки сами потянулись в консоль дабы все поставить, но остановились — постойте, постойте, но зачем мне превращать эту операционку в очередной Linux сервер? Мне этого шаманства с консолью на серверах хватает, спасибо. Будем использовать встроенные компоненты, насколько это возможно.
    Поехали
  • Собираем базу аудиокниг для удобной фильтрации

      Мой телеграм канал: https://t.me/winc0de.
      Всем привет! Наверняка многим из вас знакома проблема уставших глаз из-за длительной работой за компьютером. К сожалению, из-за этого приходится ограничивать себя в других занятиях. Одним из них есть чтение книг. В связи с этим, я уже более 5 лет почти каждый день слушаю аудиокниги. За это время научился параллельно заниматься чем-то и вникать в суть озвучки. Сейчас я даже в спортзале слушаю книги! Представьте как это удобно: час дороги пешком туда и обратно + полтора часа упражнений. Средняя книга в районе 10-15 часов записи.

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


      Читать дальше →
    • Собеседование в Booking.com (часть 1, московская)



        В последнее время здесь стали популярными статьи на тему рабочей иммиграции в Европу. Поскольку я также являюсь IT-иммигрантом и работаю в Амстердамском офисе Booking.com, я решил, что у меня тоже есть, что рассказать.

        Меня зовут Георгий, и вот уже полтора года я живу в Голландии и работаю разработчиком/тим-лидом в Booking.com. Начать свой рассказ про жизнь в Амстердаме я хочу с истории о том, с чего вообще все это началось. История эта будет про то, как и почему я выбрал для работы свою текущую компанию, как проходил процесс собеседования и последующего сопровождения.
        Читать дальше →
      • Опыт переезда в Германию системным администратором

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

        Прошу прощения, что публикую в не совсем профильный «Государство и IT», потому что более подходящего хаба на данный момент нет, а при попытке опубликовать в песочницу на GeekTimes, попросили опубликовать здесь.
        Читать дальше →
      • Опыт переезда для работы программистом в Берлин (часть 1)

        Добрый день.

        Представляю на суд общественности материал о том, как я за четыре месяца получил визу, переехал в Германию и нашел там работу.

        Считается, что для переезда в другую страну нужно сначала долго искать работу удаленно, потом, в случае успеха, ждать решения по визе, и лишь после паковать чемоданы. Я решил, что это далеко не оптимальный способ, поэтому пошел другим путем. Вместо того, чтобы искать работу удаленно, я получил так называемую «визу на поиск работы», въехал в Германию, нашел здесь работу и уже после подал документы на Blaue Karte. Во-первых, в этом случае документы не ездят из страны в страну, и время ожидания визы значительно уменьшается. Во-вторых, поиск работы на месте радикально повышает ваши шансы, и это тоже заметно ускоряет процесс.
        Читать дальше →
      • Опыт переезда для работы программистом в Берлин (часть 2)

          Добрый день! В первой части я рассказывал о том, как получал визу и искал жилье, а в этой расскажу, как найти работу в Германии и как это делал я. Забегая вперед, скажу, что в Берлине мне потребовалась 10 дней, чтобы получить первый оффер, который я в итоге и принял. Но приготовления были, конечно, более длительными.
          Читать дальше →
        • Подборка бесплатных инструментов для разработчиков

          • Translation
          Сегодня мы представляем вашему вниманию адаптированную подборку инструментов (в том числе облачных) для разработчиков, которые позволяют создавать по-настоящему качественные проекты. Здесь представлены исключительно SaaS, PaaS и IaaS сервисы, предоставляющие бесплатные пакеты для разработчиков инфраструктурного ПО.

          Читать дальше →
        • Балансировка 70 тысяч запросов в секунду на HighLoad++


            Библиотека докладов


            Это не просто статья — это целая библиотека докладов про внутреннее устройство тех или иных крупных и высоконагруженных проектов. Все эти доклады звучали на конференциях HighLoad++ и РИТ++ за последние несколько лет.


            Читать дальше →
          • Безумный PHP. Фьюри код


              Сборник PHP ненормальностей или что надо знать чтобы не сойти с ума и не прострелить себе что-нибудь


              Прочитал статью mnv: "Приведение типов в PHP == табурет о двух ножках?" и захотелось в комментариях добавить немного дополнений, но… Но потом увидел комментарий и понял, что лучше дополню статью тем, про что мало кто пишет и мало где это имеется в централизованном виде. Вроде бы всем известная тема, а все же кому-то в новинку. Это не совсем про приведение типов, но они тоже есть. Это про особенности, зная которые можно делать меньше ошибок. Если интересно, го под кат, я создал!
              Читать дальше →
            • Примеры использования MongoDB в e-commerce (часть 2)

              • Tutorial


              [ Первая часть ]

              В этом посте будет то, что не поместилось в первую часть. Это некоторые операторы, которые есть в aggregation framework и достаточно вольный перевод трех статей из раздела экоситема на сайте со справкой к MongoDB, описывающих некоторые случаи применения для интернет-коммерции.

              Случаи использования разделены там на восемь статей, которые условно можно разделить на три группы. Мне показались самыми интересными для перевода три материала, связанные с e-commerce.

              1. Операторы в aggregation framework
              2. Каталог продуктов
              3. Корзина и управления остатками на складе
              4. Иерархия категорий

              Читать дальше
              • +10
              • 23.4k
              • 7
            • Шпаргалка по mongodb: e-commerce, миграция, часто применяемые операции и немного о транзакциях

              • Tutorial

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


              Не хотелось бы, чтобы пост воспринимался в ключе холиваров на тему SQL vs. NOSQL И так понятно что везде есть свои плюсы и минусы, в данном случае это просто где-то немного справки, где-то немного примеров из того, с чем приходилось сталкиваться. Примеры на mongo shell и на python.


              1. Миграция в на новые версии в mongodb
              2. Запросы сравнения и логические
              3. Полнотекстовый поиск в Mongodb, regexp, индексы и пр.
              4. Атомарные операторы (модифицирующие данные )
              5. Немного о транзакциях в Mongodb
              6. Агрегационный фреймворк и JOIN-ы в Mongodb
              7. Примеры
              8. Небольшая песочница на Python

              Читать дальше
            • Git Rebase: руководство по использованию

              • Tutorial
              Rebase — один из двух способов объединить изменения, сделанные в одной ветке, с другой веткой. Начинающие и даже опытные пользователи git иногда испытывают нежелание пользоваться ей, так как не видят смысла осваивать еще один способ объединять изменения, когда уже и так прекрасно владеют операцией merge. В этой статье я бы хотел подробно разобрать теорию и практику использования rebase.

              Теория


              Итак, освежим теоретические знания о том, что же такое rebase. Для начала вкратце — у вас есть две ветки — master и feature, обе локальные, feature была создана от master в состоянии A и содержит в себе коммиты C, D и E. В ветку master после отделения от нее ветки feature был сделан 1 коммит B.


              Читать дальше →
            • Статический анализ PHP кода на примере Symfony2 (часть 2)

                Аннотация


                Второй части этой статьи не планировалось, но тема нашла отклик, так что можно продолжить.

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

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

                О том, что можно найти и исправить с минимальным вложением времени (и максимальной отдачей) я расскажу под катом.
                Читать дальше →
              • Статический анализ PHP кода на примере Symfony2

                Аннотация


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

                С PHP дело обстоит сложнее: уже писали про статический анализ PHP кода, но в целом инструментарий тут гораздо беднее, и динамическая природа языка делает процесс разработки-тестирования сложнее. Для сравнения, в той же Java компиляция проекта сама по себе помогает найти ошибки, а в PHP типизация слабая, поэтому даже тесты могут пропустить ошибки.
                Читать дальше →
              • Нестандартная аутентификация в проектах на Symfony 2.0

                Цель данной статьи — рассказать об организации нестандартной аутентификации для проектов на базе Symfony 2.0.

                Зачем это может понадобится?


                Это может понадобиться, в случае, когда затруднительно организовать доступ к учетным записям пользователей через ORM, либо авторизация осуществляется с помощью внешних ресурсов, например соц.сетей.
                Читать дальше →
                • +25
                • 16.6k
                • 6
              • Как быстро раздать wifi с ноутбука — 3 простых команды

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

                И помогают мне в этом 3 команды:
                netsh wlan set hostednetwork mode=allow
                netsh wlan set hostednetwork mode=allow ssid=FastWifi key=12345678 keyUsage=persistent
                netsh wlan start hostednetwork

                Под катом я детально расскажу как и что нужно делать и покажу на примере настройки Windows 7.

                Читать дальше →
              • Создание собственного вендорного бандла в Symfony2

                • Tutorial
                Часто возникает необходимость использовать одинаковый код в разных проектах. Чтобы не было повторения кода, такой код обычно помещают в библиотеку. В фреймворке Symfony2 весь код должен быть помещён в так называемые бандлы (bundle). Уже сейчас существует огромное количество бандлов, решающих совершенно разные задачи, но всё-таки часто возникает необходимость создания своего бандла, решающего рутинную задачу.

                Это может быть обычный бандл, находящийся в папке src, и тогда при необходимости использовать его в новом проекте нужно скопировать его в новый проект. Но в таком случае возникает проблема с обновлением кода, ведь, когда код доступен для изменения, то он будет изменён (особые извращенцы изменяют даже код в папке vendor). Для удобства процедуры использования своего кода в других проектах можно оформить бандл как внешний, вендорный бандл, и управлять им через composer наравне с остальными сторонними бандлами.

                Эта статья пошагово показывает, как можно с нуля создать бандл, доступный к установке через composer.

                Содержание:
                1. Создание нового бандла
                2. Добавление настроек в бандл
                3. Подготовка бандла к публикации
                4. Публикация бандла

                Будет рассмотрено создание бандла для управления статичными страницами сайта. Можно найти несколько готовых подобных бандлов, но они либо слишком простые, либо слишком сложные (типа SonataPageBundle). Уровень статьи — продвинутый новичок. Подразумевается, что читатель уже умеет создавать бандлы в проекте, а также пользоваться контроллерами и шаблонами.
                Читать дальше →
                • +14
                • 19.7k
                • 6
              • Фреймворки JavaScript. Как изучить их по-быстрому

                • Translation
                Здравствуйте, коллеги.

                Сегодня мы хотели затронуть такую многогранную и противоречивую тему, как фреймворки JavaScript. За последние несколько месяцев в издательстве неоднократно обсуждались перспективы издания книг и по Angular.js, и по Knockout.js, а книга по Backbone.js у нас выходила в прошлом году. Следующий материал призван помочь разобраться в сильных и слабых сторонах различных фреймворков JavaScript. Возможно, после изучения статьи читателю будет проще ответить на вопросы о том, так ли схожи эти фреймворки, и желает ли он дополнительно изучить какую-то из технологий, упомянутых в этом обзоре. Мы же попросим вас поделиться вашими соображениями о том, нужны ли новые книги по этим фреймворкам, если да — то по каким (высказываемся в комментариях, не стесняемся давать ссылки на книги).
                Читать дальше →
              • Характеристики микросервисов, приложений и систем

                  Всем привет!



                  Вниманию хабрасообщества хочу представить интересную презентацию Стефана Тилькова, со основателя и главного консультанта в innoQ. Стефан рассказывает об идее разделения больших систем на небольшие приложения, которые отвечают за разные аспекты системы. Сама идея не нова, но автор упирает на то, что основной причиной такого разделения должна быть изоляция. Благодаря границам приложений полученных таким образом, сложнее получить связанные модули, которые на самом деле должны быть независимыми. Тут еще можно вспомнить подход «domains boundary», для разделения доменных сущностей по областям применения, вместо того, чтобы создавать единую модель данных на всю большую организацию/процесс.

                  Дополнительным плюсом изоляции является возможность точечно масштабировать части системы в зависимости от нагрузок. Этот процесс можно локализировать в одной команде, чтобы они соразмерно своим знаниями и инструментам выполняли задачу в границах изолированной подсистемы.
                  Читать дальше →
                  • +13
                  • 6.9k
                  • 2
                • Управление API и SOA

                  • Translation
                  Достижение начального успеха для Сервис-ориентированной Архитектуры (Service Oriented Architecture, SOA) определяется:
                  • созданием слабосвязанных соединений «потребитель-поставщик»,
                  • соблюдение принципа разделения ответственностей между потребителем и поставщиком,
                  • публикация набора повторно используемых, общих сервисов
                  • и обеспечение того, чтобы потребители приняли и стали использовать сервис.

                  Множество команд разработчиков создают и используют сервисы, но до сих пор идет мучительный подбор архитектуры, при которой сервисы будут широко использованы, с потенциалом для повторного использования внутренними командами разработки. Вместо создания согласованной сервисной архитектуры и демонстрации множественного использования одних и тех же сервисов, разработчики вновь и вновь не нарочно создают «Просто Набор Веб Сервисов» (Just a Bunch of Web Services (JBOWS)) или «Просто Набор REST Сервисов» (Just a Bunch of REST Services (JBORS)).

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

                  Управление SOA, API, и приложением может стать мостом между этими концепциями и улучшить архитектурную согласованность всего решения.

                  Сервисы, API и архитектура


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