• С чего начать новичку в Go

    • Tutorial
    Если вы решили попробовать замечательный язык Go, но не знаете с чего начать, вам прямая дорога в этот пост, где я постарался перечислить все необходимые для новичков ресурсы.
    Читать дальше →
  • Работа с изображениями на Python

      Тема сегодняшнего разговора — чему же научился Python за все годы своего существования в работе с изображениями. И действительно, кроме старичков родом из 1990 года ImageMagick и GraphicsMagick, есть современные эффективные библиотеки. Например, Pillow и более производительная Pillow-SIMD. Их активный разработчик Александр Карпинский (homm) на MoscowPython сравнил разные библиотеки для работы с изображениями на Python, представил бенчмарки и рассказал о неочевидных особенностях, которых всегда хватает. В этой статье расшифровка доклада, который поможет вам выбрать библиотеку под свое приложение, и сделать так, чтобы она работало максимально эффективно.


      О спикере: Александр Карпинский работает в компании Uploadcare и занимается сервисом быстрой модификации изображений на лету. Участвует в разработке Pillow — популярной библиотеки для работы с изображениями на Python, развивает собственный форк этой библиотеки — Pillow-SIMD, который использует современные инструкции процессоров для наибольшей производительности.
      Читать дальше →
      • +49
      • 5,2k
      • 9
    • Пятница. Бредни программиста 2.0

        Привет, Хабр! В прошлую пятницу выложил свои бредовые мысли. Спасибо за карму, плюсы и главное за неравнодушные комментарии. Сегодня продолжение. Снова прошу не судить слишком строго. Ведь это всего лишь фантазии.

        image


        Ржавчина на мече


        Пятница после работы. Выхожу из офиса и думаю, как провести вечер. Никак не могу забыть про прошлый поход в ночной клуб. Было что-то странное в том, как Алла ушла. И еще. Когда мы с ней танцевали, наши тела как-то удачно подошли друг к другу. Очень часто приходится делать усилие и, преодолевая неловкость стараться не наступить партнерше на ноги. Здесь же руки сами легли туда куда нужно и тела соприкоснулись там где нужно. Надо попробовать ее найти.

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

        — Скидочная карта есть?
        Читать дальше →
      • Открытый вебинар «Как не нужно писать на Python»

          Всем привет! В рамках нашего курса «Разработчик Python» мы провели ещё один открытый урок на тему «Как не нужно писать на Python». Занятие вёл преподаватель и создатель курса Станислав Ступников, имеющий большой опыт промышленной и научной разработки. Рассматривались антипаттерны программирования, bad practice и прочее зло, о котором нужно знать и которого следует избегать в процессе написания кода.

          Подробности смотрите в видео и кратком изложении. Внимание: некоторые примеры кода не рекомендуется запускать на своём компьютере!

          Читать дальше →
        • Как украсть деньги с бесконтактной карты и Apple Pay

            Как украсть деньги с бесконтактной карты из кармана? Насколько безопасен PayPass и Apple Pay?

            В статье разбираются популярные мифы и сценарии мошенничества с бесконтактными системами оплаты на примере настоящего POS-терминала, карт PayPass/payWave и телефонов с функцией Google Pay/Apple Pay.

            Рассматриваемые темы:

            • Можно ли НА САМОМ ДЕЛЕ украсть деньги, прислонившись POS-терминалом к карману? — мы попытаемся полностью воспроизвести этот сценарий мошенничества от начала до конца, с использованием настоящего POS-терминала и платежных карт в реальных условиях.
            • В чем разница между физическими и виртуальными картами Apple Pay? — как происходит связывание физической карты и токена Apple Pay, и почему Apple Pay во много раз безопаснее обычной карты.
            • Используем аппаратный NFC-сниффер (ISO 14443A) — воспользуемся устройством HydraNFC для перехвата данных между POS-терминалом и картой. Рассмотрим, какие конфиденциальные данные можно извлечь из перехваченного трафика.
            • Разбираем протокол EMV — какими данными обменивается карта с POS-терминалом, используемый формат запросов, механизмы защиты от мошенничества и replay-атак.
            • Исследуем операции без карты (CNP, MO/TO) — в каких случаях на самом деле(!) можно украсть деньги с карты, имея только реквизиты, считанные бесконтактно, а в каких нельзя.

            Внимание!

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

            Материалы в статье представлены исключительно в ознакомительных целях. Все сцены демонстрации мошенничества инсценированы и выполнены с согласия участвующих в них лиц. Все списанные деньги с карт были возвращены их владельцам. Воровство денег с карт является уголовным преступлением и преследуется по закону.
            Читать дальше →
          • “Оказавшись перед Гвидо, что ты ему скажешь” или диалоги о Python с Бобуком

              В августе eyeofhell, voldar и их коллеги по сообществу MoscowPython начали записывать подкаст Python Junior. Это — расшифровка избранных моментов одного из выпусков.



              Валентин Домбровский: Ты ведешь Telegram-канал addmeto. Говоришь про всякое прекрасное будущее, технологии и так далее. Какую роль Python будет играть в этом всем, на твой взгляд?

              Григорий Бакунов aka bobuk: Очевидно, куда двигается все программирование. Мы чем дальше, тем ближе к Lego.

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

              И поэтому Python сейчас так и рванул.

              Аудио- и видеоверсия в конце
            • Дружим gRPC с долгоживущим проектом, PHP и фронтендом


                Пару лет назад мы достаточно спокойно работали нашей небольшой командой и делали хостинг. Вышло так, что каждый сервис в системе обладал собственным уникальным и неповторимым API. Но потом это стало проблемой и было решено все переделать.


                Мы расскажем о том, как объединить внешнее API с внутренним и что делать, если у вас много кода на PHP, но хочется воспользоваться преимуществами gRPC.

                Читать дальше →
                • +36
                • 7,7k
                • 7
              • Docker-образы с поддержкой ГОСТ-сертификатов в openssl, curl, php, nginx

                  В этой статье я расскажу о том, как я решал задачу об интеграции в тестовом режиме с сервисами, которые работают с использованием алгоритмов, определенных ГОСТ Р 34.10-2001 (устарел) и ГОСТ Р 34.10-2012. Приведу примеры некоторых проблем, с которыми столкнулся при решении задачи, дам ссылки на готовое решение и покажу несколько примеров их использования.

                  Читать дальше →
                • Деривативы на морковках

                    carrotДеривативы — это производные финансовые инструменты. Производные они потому, что основываются на каком-то ином активе. Сами по себе деривативы — пустышки, их стоимость определяется ценой базового актива — продукта, ценной бумаги, валюты, долгового обязательства — то есть того, от чего они производны.
                    Читать дальше →
                  • Почему они мне не перезвонили-2, или куда пропадают соискатели

                      Третьего дня ехал от точки А до точки Б, и разговорился с одной дамой.

                      Дама опытным взглядом определила во мне компьютерщика, и поделилась горем — нужен им программист. Я, разумеется, сразу сказал, что не программист, но поговорить могу, почему не поговорить в дороге?

                      Внезапно выяснилось, что дама — HR, а нужен ей не просто программист, и не программист вовсе, а разработчик одной желтой программы.

                      И вот она, во всех отношениях* опытная 26-летняя рукамиводитель, полгода не может решить эту печаль беду, после сотен интервью, и иногда даже парочки собеседований.

                      Я, конечно, сразу сказал, что так не бывает, что 1с-ников в природе в целом — как админов локалхоста на первом сайте по околополитике в рунете, и что-то тут не так.

                      Что было дальше — под катом.

                      *с ее слов.
                      image
                      Читать дальше →
                    • Что ж, этот день настал: быстрое совместное редактирование в редакторах ONLYOFFICE

                        Этот день всё-таки пришел. Мы выкатили обновленную версию редакторов документов ONLYOFFICE Document Editors 3.6 с быстрым совместным редактированием, как в Google Docs. Его давно просили, требовали, угрожали, но мы были неумолимы. До тех пор, пока не сдались под напором пользователей, желающих редактировать свои секретные материалы, в режиме реального времени наблюдая, что набирает соавтор.

                        Далее расскажем, почему мы так противились «быстрому» совместному редактированию, чем наш вариант отличается от похожего режима в других онлайн-редакторах и как мы собираемся решать вопрос undo/redo.


                        Читать дальше →
                      • Зачем изучать непопулярные языки. Пример сообщества F#



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

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

                          Я попытался узнать, в чем причина. И вообще — кто те люди, которые на нем пишут, и зачем они это делают, если язык не нужен бизнесу? Для этого я постучался поговорить в русскоязычное сообщество F# в «Телеграме». Здесь — наш круглый стол.
                          Читать дальше →
                        • Как уйти на пенсию до 40 лет с миллионом долларов на счету в банке

                          • Перевод

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




                          Карл Дженсен испытал то, что он называет «пробуждением», примерно в 2012-м году.

                          Он работал программистом в пригороде Денвера, писал код для медицинского оборудования. Работа была напряжённой: ему приходилось документировать каждый шаг для Управления по санитарному надзору за качеством пищевых продуктов и медикаментов США (FDA), а ошибка в коде могла навредить или даже убить пациента.

                          Дженсен зарабатывал порядка $110 000 в год, у него был определённый соцпакет, но, казалось, что всё это не окупает стресса. Он не мог расслабиться с семьёй после работы; бывало, что целые дни он проводил, обнимаясь с унитазом. Он похудел на 5 кг.

                          После одного особенно брутального рабочего дня, Дженсен погуглил вопрос «как мне рано уйти на пенсию?», и глаза его открылись. Он посовещался с женой и составил план: в следующие пять лет они экономили значительную часть доходов, серьёзно урезали расходы, пока не собрали порядка $1,2 млн.

                          Во вторник 10 марта 2017 года Дженсен позвонил своему боссу и предупредил об увольнении после 15 лет работы в компании. Однако он не увольнялся, а уходил на пенсию. Ему было 43.
                          Читать дальше →
                        • Эмиграция и всё о ней в телеграм-блогах

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

                            image
                            Карта каналов об эмиграции

                            На помощь приходит Telegram, где в последние годы появилось уникальное сообщество авторов жанра «я — эмигрант».

                            Каждый день очередной эмигрант решает вещать из своей страны и заводит канал в телеграме. Ребята (а 90% из них работают в IT или около IT индустрии) делятся полезными советами, общаются с читателями в чатах, пропагандируют свободу перемещения, рассказывают о плюсах и минусах эмигрантской жизни, честно и без прикрас выдают информацию, которую не найти в поисковиках.

                            Какие на самом деле жители выбранной ими страны? Как найти жилье? Как устроится на работу? В чем отличия менталитета? Или даже Как проходят свидания? Как строится личная жизнь в другой стране? Такого нет в Google! :)

                            Я собрал максимально большой список таких блогов, отсортировал по странам и делюсь с вами.
                            Читать далее
                          • Game over, пацаны

                              — Я те говорю, гама вообще реальная! – продолжал размахивать на ходу руками Петр. – Не заметишь, как просидишь всю ночь!

                              — Да что за игра такая, которая только в компьютерном клубе есть? – продолжал, в свою очередь, удивляться Стас. – На дворе 2018 год, откуда вообще компьютерный клуб взялся?

                              — Ну, уж точно не из тех, которые… — Павел туманно показал глазами куда-то в сторону. – Без игровых автоматов, короче. А игра действительно стоящая.

                              — Стоящая? – Петр округлил глаза. – Да это, блин, мега-игра! Я ничего подобного не видел еще! Тут тебе ни жанров, ни ограничений, понимаешь? Хочешь – картошку выращивай, хочешь – машины проектируй, хочешь – войну начинай, хочешь – на Марс лети! Да хоть бы и вообще ничего не делай, просто сиди на улице и смотри, что люди делают! Ты такого кайфа не видал еще!

                              — Ну прям заинтриговали. – улыбнулся Стас. – Далеко еще?

                              — Нет, сейчас, за углом вход. – ответил Петр.

                              — Э, пацаны, стоять!
                              Читать дальше →
                            • Моё разочарование в софте

                              • Перевод

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


                              Я занимаюсь программированием уже 15 лет. Но в последнее время при разработке не принято думать об эффективности, простоте и совершенстве: вплоть до того, что мне становится грустно за свою карьеру и за IT-отрасль в целом.

                              Для примера, современные автомобили работают, скажем, на 98% от того, что физически позволяет нынешняя конструкция двигателя. Современная архитектура использует точно рассчитанное количество материала, чтобы выполнять свою функцию и оставаться в безопасности в данных условиях. Все самолёты сошлись к оптимальному размеру/форме/нагрузке и в основном выглядят одинаково.

                              Только в программном обеспечении считается нормальным, если программа работает на уровне 1% или даже 0,01% от возможной производительности. Ни у кого вроде нет возражений.
                              Читать дальше →
                            • Docker. Начало



                                Примерно такие же эмоции я и мои коллеги испытывали, когда начинали работать с Docker. В подавляющем большинстве случаев это происходило от недостатка понимания основных механизмов, поэтому его поведение казалось нам непредсказуемым. Сейчас страсти поутихли и вспышки ненависти происходят все реже и все слабее. Более того, постепенно мы на практике оцениваем его достоинства и он начинает нам нравиться… Чтобы снизить степень первичного отторжения и добиться максимального эффекта от использования, нужно обязательно заглянуть на кухню Docker'a и хорошенько там осмотреться.
                                Читать дальше →
                              • Про износ SSD на реальных примерах


                                  Год назад мы добавили в наш агент сбор метрик из S.M.A.R.T. атрибутов дисков на серверах клиентов. В тот момент мы не стали добавлять их в интерфейс и показывать клиентам. Дело в том, что метрики мы снимаем не через через smartctl, а дергаем ioctl прямо из кода, чтобы этот функционал работал без установки smartmontools на серверы клиентов.
                                  Агент снимает не все доступные атрибуты, а только самые значимые на наш взгляд и наименее вендор-специфичные (иначе пришлось бы поддерживать базу дисков, аналогичную smartmontools).
                                  Сейчас наконец дошли руки до того, чтобы проверить, что мы там наснимали. А начать было решено с атрибута "media wearout indicator", который показывает в процентах оставшийся ресурс записи SSD. Под катом несколько историй в картинках о том, как расходуется этот ресурс в реальной жизни на серверах.

                                  Читать дальше →
                                • Как подготовиться к собеседованию в Google и не пройти его. Дважды



                                    Заголовок статьи звучит как epic fail, но на самом деле все не так однозначно. Да и в общем и целом эта история закончилась весьма позитивно, хоть и не в Google. Но это уже тема для другой статьи. В этой же статье я расскажу о трех вещах: каким образом проходил мой процесс подготовки, каким образом проходили интервью в Google и почему же на мой взгляд все не так однозначно, как может показаться.
                                    Кому интересно, прошу под кат.