• Пора обновить ваш монитор

    • Translation

    Иллюстрация: Юлия Прокопова

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

    Поэтому я оптимизирую настройки, чтобы показывать действительно, действительно хорошие буквы. Для этого необходим хороший монитор. Не просто нужен, а ОБЯЗАТЕЛЕН. А под «хорошим» я имею в виду настолько хороший, насколько это возможно. Это мои мысли, основанные на моём собственном опыте того, какие мониторы лучше подходят для программирования.
    Читать дальше →
  • Как живется в США «неайтишникам». Другая сторона

      image

      На Хабре есть не только айтишники. Тут и электрики, и схемотехники, и химики, и маркетологи и кого только нет. И возможность переезда в другую страну в качестве специалиста широкого профиля интересна и им тоже. В довесок к истории Дудя и аналогичным статьям я хочу рассказать свою историю про переезд в США, на противоположный от Калифорнии берег с противоположной от IT профессии. Про жизнь, траты, поиск и смены работы и перспективы. Мне 36, я по образованию биотехнолог, семья — два человека, английский язык — так себе. Живу в Северной Каролине почти два года.

      Поскольку написанного вышло много, вот короткая версия. При переезде практически гарантировано снижение социального статуса. Прожить можно на $1500. Средняя зарплата «неайтишника» $30к-50к в год. Средняя стоимость дома $200к. Получить медицинскую страховку бесплатно можно. Много плюшек от государства. Поиск нормальной работы очень нетривиален. Язык сам не учится, но есть бесплатные курсы. Жить комфортно. Наше образование никому не нужно. Очень многие мечтают о карьере в IT.

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



        Можно ли объединить несколько интернет-каналов в один? Вокруг этой темы куча заблуждений и мифов, даже сетевые инженеры с опытом часто не знают о том, что это возможно. В большинстве случаев, объединением каналов ошибочно называют балансировку на уровне NAT или failover. Но настоящее суммирование позволяет пустить одно единственное TCP-подключение одновременно по всем интернет-каналам, например видеотрансляцию так, чтобы при обрыве любого из интернет-каналов вещание не прерывалось.

        Существуют дорогие коммерческие решения для видеотрансляций, но такие устройства стоят много килобаксов. В статье описывается настройка бесплатного, открытого пакета OpenMPTCPRouter, разбираются популярные мифы о суммировании каналов.
        Читать дальше →
      • Видео с первого Badoo PHP Meetup 7.04.2018



          Привет, Хабр!

          7 апреля мы впервые собрали PHP-сообщество в офисе Badoo. Спасибо всем, кто пришел пообщаться, и тем, кто был с нами онлайн!

          Похоже, пэхэпэшники изголодались по митапам. Встреча получилась ну очень душевной — разговоры за жизнь и PHP из afterpaty переместились в afterchat, который до сих пор активен (несмотря ни на что).

          Но вернемся к нашим докладам. Под катом — записи выступлений, слайды, комментарии гостей и фотоотчет.
          Читать дальше →
          • +48
          • 9.1k
          • 3
        • Что читают инженеры GridGain. Книги для тех, кто интересуется In-Memory Computing

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


            Мы даже составили небольшой список книг, которые нам очень нравятся. Ну и еще это подсказка для собеседований по нашим свеженьким вакансиям, конечно. Не в смысле запомнить пару названий, а в смысле прочитать, разумеется.
            Читать дальше →
            • +25
            • 10.6k
            • 8
          • Как проследить за своим здоровьем? Полезные mHealth-приложения на смартфон

              Когда речь заходит о здоровье, наши люди делятся на два типа:

              1. «Открытый перелом? Не вопрос! Обмотаю подорожником – и само срастётся».
              2. «На безымянном пальце появилась родинка – у меня рак IV стадии!».

              На деле заботиться о своём самочувствии действительно важно. Бить панику от простого чиха не обязательно, но и откладывать до момента, когда не ты идёшь к врачу, а врач забирает тебя на «скорой», тоже не стоит.

              Тем временем благодаря телемедицине и mHealth-технологиям следить за здоровьем стало гораздо проще. Данный список смартфон-приложений – прямое доказательство.

              Важно! Приложения носят вспомогательный характер, не являются заменой реальной врачебной консультации или поводом для самолечения!
              Читать дальше →
              • +13
              • 10.5k
              • 5
            • Взламываем собеседования: по алгоритмам, по архитектуре, поведенческие и прочее

              • Translation
              image

              Я только что закончил семь собеседований в компаниях Кремниевой долины. В конечном итоге я принял предложение разработки программного обеспечения в Facebook.

              Вот как я готовился к этим собеседованию и чему я научился на этом пути.

              Мой многолетний путь в Кремниевую долину


              Когда я изучал компьютерные науки в своем университете в Австралии, я всегда представлял свое будущее в качестве инженера-программиста в Кремниевой долине.

              Мне понравилась идея быть в центре всех инноваций в технической индустрии, а также ее промахов. Эта цель мотивировала меня. Это помогло мне сосредоточиться.

              Я оставил свое место в качестве ведущего инженера iOS в чудесной компании в Мельбурне и я вернулся обратно в мой родной город Перт, чтобы учиться. Тут я буду готовиться к переговорному процессу которое ждет меня в Кремниевой долине. Я знал, что это будет невероятно сложно и тяжело.

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

              Ради этой статьи я не буду вступать в эту дискуссию. Вместо этого я рассмотрю различные типы методов интервью с точки зрения кандидата. Я также сосредоточу внимание на том, что я узнал из этого процесса.
              Читать дальше →
            • Разделка бегемота. Еще раз о проектировании и рефакторинге от Сэнди Метц

              • Translation
              Привет, Хабр!

              У нас заканчивается уже порядком букинистическая книга "Ruby. Объектно-ориентированное проектирование" Сэнди Метц, которую мы надеемся обновить в будущем году. Тем временем мы убедились, что читателей госпожи Метц немало интересуют ее взгляды на ООП, а не только на ООП в Ruby, поэтому предлагаем перевод ее сентябрьской статьи с большим количеством картинок и немалым количеством интересных выводов на заявленную тему. Приятного чтения!
              Читать дальше →
              • +11
              • 4.4k
              • 4
            • Во всём виноват PHP OPCache?

              • Translation


              Когда я начинал карьеру разработчика, то очень удивился, прочитав фразу, которую приписывают Филу Карлтону (Phil Karlton): «В информатике есть лишь две сложности: инвалидация кеша и присвоение имён». Я отнёсся к этому недоверчиво, поскольку не понял сути фразы. Но немного позже я начал понимать.


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

              Читать дальше →
            • Code review по-человечески (часть 1)

              • Translation
              • Tutorial
              В последнее время я читал статьи о лучших практиках code review и заметил, что эти статьи фокусируются на поиске багов, практически игнорируя другие компоненты ревью. Конструктивное и профессиональное обсуждение обнаруженных проблем? Неважно! Просто найди все баги, а дальше само сложится.

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

              Моя революционная книга обучит вас проверенным техникам по выявлению максимального количества недостатков в своём партнёре. Книга не затрагивает следующие области:

              • Обсуждение проблем с сочувствием и пониманием.
              • Помощь партнёру в устранении недостатков.

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

              Как вам нравится такая книжка? Предполагаю, что она вам не очень по душе.
              Читать дальше →
            • Самое сложное в программировании это…



                Мне очень понравилась ветка обсуждений на Quora.com: What is the hardest part about learning to program? Все 87 ответов я так и не прочитал, но понравившиеся, выделил в отдельную статью из 10 пунктов. Это вольный пересказ мнений многих разных людей. Если читателям будет интересно, я продолжу.

                1. Разница между высокими стандартами и своими низкими умениями


                В статье «Никто не говорит об этом новичкам» рассказывается об общей проблеме людей, занятых творческим или интеллектуальным трудом. Программирование — сложный предмет, и обычно за него берутся способные, амбициозные и склонные к перфекционизму люди. На начальном этапе у них не будет хорошо получаться. Привыкшие к высокой планке, они будут расстраиваться. Внутренний голос будет постоянно нашептывать: “У тебя никогда и не получится, лучше оставь это дело”. В такие моменты думайте о том, что ваша самокритичность — это признак вашей экстраординарности, и верьте, что преодолеете этот “неумелый период”.

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

                • Translation
                Много лет я и мои коллеги убеждали разработчиков, что чем быстрее сайт — тем лучше. Статья не о том. Я не собираюсь показывать вам статистику, насколько больше зарабатывают компании, которые оптимизируют сайт для производительности (а это так). Расслабьтесь, возьмите чашечку шоколада — мы вместе совершим путешествие во времени.

                Настоящее время и воспринимаемое время



                Читать дальше →
              • Литература на выходные: 15 материалов по структурированию кода для разработчиков

                  Одним из параметров оценки кода служит его чистота. Создатель языка моделирования UML Гради Буч (Grady Booch) писал:

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

                  Сегодня мы собрали для вас список книг и статей по этой теме, которые рекомендуют к прочтению резиденты Hacker News, Stack Exchange и других профильных платформ.

                  Читать дальше →
                • PHP жив. PHP 7 на практике

                  • Translation

                  Недавно PHP-проекты Avito перешли на версию PHP 7.1. По этому случаю мы решили вспомнить, как происходил переход на PHP 7.0 у нас и наших коллег из OLX. Дела давно минувших дней, но остались красивые графики, которые хочется показать миру.


                  Первая часть рассказа основана на статье PHP’s not dead! PHP7 in practice, которую написал наш коллега из OLX Łukasz Szymański (Лукаш Шиманьски): переход OLX на PHP 7. Во второй части — опыт перехода Avito на PHP 7.0 и PHP 7.1: процесс, трудности, результаты с графиками.


                  Читать дальше →
                • Спорт, как хобби для здоровья, с точки зрения инженера

                  image
                  Картинка из гугла для привлечения внимания.

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

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

                  Для тех, кому лень читать: наш выбор — качалочка и плавание. Бег, игры и велик — по желанию.
                  Читать дальше →
                • Laracon 2017 — краткий обзор и куча полезных ссылок

                  • Translation

                  laracon-2017


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

                  Читать дальше →
                  • +14
                  • 9.1k
                  • 6
                • Laravel — экосистема, а не просто PHP-фреймворк



                  Данная статья предназначена для начинающих веб-разработчиков, а также тех, кто хочет понять, для чего стоит изучить PHP-фреймворк Laravel и какую экосистему он нам предлагает. Статья написана на момент актуальности Laravel версии 5.4, в августе 2017 выйдет релиз Laravel 5.5, который предоставляет ещё больше возможностей.

                  Содержание:

                  Читать дальше →
                • Как держать 20 тысяч VPN клиентов на серверах за $5

                    Месяц назад мы с друзьями сделали бесплатный сервис для обхода блокировок сайтов в Украине Zaborona.Help. За это время сервис стал довольно популярным, аудитория выросла до 20 000 пользователей. Число одновременных подключений в пиковые часы — ≈6 000 клиентов.

                    Главная особенность нашего сервиса в том, что через VPN маршрутизируется трафик только к заблокированным сетям, остальные сайты работают напрямую. Это не влияет на скорость интернета и не подменяет IP-адрес для остальных сайтов.

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

                    • Как выбрать подходящий хостинг. Отличительные черты плохого хостинга. История о том, как мы долго искали и нашли хостинг в России.
                    • Почему IPv6 — хорошо. Правильная настройка IPv6-адресов для VPN-клиентов.
                    • Изменение конфигурации OpenVPN на лету, без перезапуска сервера и отключения клиентов.
                    • Балансировка нагрузки между серверами и процессами OpenVPN
                    • Тонкая настройка Linux для большого числа подключений
                    • Особенности кривых операционных систем и роутеров пользователей

                    Наш опыт будет полезен для тех, кто собирается развернуть VPN для личных нужд, и тех, кто хочет создать сервис с большим числом клиентов.
                    Читать дальше →
                  • Полная автоматизация среды разработки с помощью docker-compose

                    • Translation

                    Согласно данным, которые представил на Dockercon 2016 CEO компании Docker Бен Го́луб (Ben Golub), количество работающих в контейнерах Docker приложений за последние два года выросло на 3100%. Docker обеспечивает функционирование 460 тысяч приложений по всему миру. Это невероятно!


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


                    Мы бы хотели поделиться своим опытом использования docker-compose в больших проектах. Применив этот инструмент для автоматизации задач, связанных с разработкой, тестированием и конфигурированием, мы за несколько простых шагов смогли сделать нашу команду более эффективной и сфокусироваться непосредственно на разработке продукта.

                    Читать дальше →
                  • Давайте разберём, почему покупатели задают «тупые» вопросы



                      — Добрый день! Почём мороженое?
                      — Вот же ценник!

                      В этой ситуации покупатель и продавец считают друг друга идиотами. Тем не менее, неправ продавец — его работа как раз в том, чтобы отвечать на любые вопросы и продавать. Иначе вместо него поставили бы автомат по выдаче товара. Покупатель может быть плохо видящим, может просто не заметить ценник, может запутаться, что и где — но чаще ему нужно просто перепроверить информацию. А ему в ответ, по факту, хамят. Результат — нет сделки.

                      Очень много явно странных вопросов имеют совсем не то значение, которое озвучивается. Это касается и продаж, и обычной жизни. Давайте разберём ещё пару примеров. Начнём с риторических вопросов в духе «А этот пазл точно собирается? Там все детали внутри?».
                      Читать дальше →