• Docker: вредные советы


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


      Читаешь детям «Вредные советы» Григория Остера, и видишь, как легко и непринужденно до них доходит, что так делать нельзя.


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

      Читать дальше →
    • Inception bar: новый метод фишинга

      • Translation
      Доброго времени суток, Хабр! На просторах Интернета мне попалась статья на английском «The inception bar: a new phishing method» автора Jim Fisher. В ней описывается занимательный способ фишинга, механизм которого заключён в использовании экранного пространства строки отображения URL-адреса мобильной версии Google Chrome. Оригинал статьи расположен на экспериментальной фишинговой странице: Вы можете самостоятельно зайти на неё и сделать свой вывод относительно опасности описанного метода. Всем, кто заинтересовался, welcome под cut!
      Читать дальше →
    • Bitcoin in a nutshell — Cryptography

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

        Ниже я постараюсь объяснить вам самые базовые вещи — эллиптические кривые, ECC, приватные / публичные ключи и так далее. По возможности я буду иллюстрировать свои слова примерами кода, преимущественно на Python 2.7, если что-то непонятно — спрашивайте в комментариях.

        intro
        Читать дальше →
      • О простых вещах-сложно. «Cпящая сталь». Чем смазать заржавевшие болты или Не WD-40 единым…

        • Tutorial
        Посвящается всем отчаявшимся и потерявшим надежду… открутить заржавевшую гайку!

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

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

        Ну и, традиционно — не забудь закинуть в закладки, %USERNAME%, пригодится! :)


        Читать дальше →
      • Разгон подсветки монитора

        • Tutorial
        Оверклокинг процессора или памяти — это понятно, но зачем разгонять подсветку монитора?



        Речь пойдёт о стареньком 23-дюймовом Samsung SyncMaster BX2340 (выпущен в январе 2011) со светодиодной подсветкой. Со временем стал замечать, что работать за ним утомительно, а сосредоточиться всё сложнее. И даже не только работать, просто читать, например. Сам монитор остался тот же, но мне стало труднее. А за другими экранами работалось вполне нормально.
        Может выкинуть его, и купить новый?
      • Межпозвоночная грыжа? Работай над ней


          Внимание! Данная статья не призывает к самолечению! Не является рекламной. Люди уникальны, единой схемы для всех нет.

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

          Предыстория


          В свои 22 года я стал счастливым обладателем 4 грыж поясничного отдела позвоночника. Для меня это было шоком, ведь я люблю активный образ жизни и спорт в целом. Как они появились сказать сложно. Просто, в какой-то момент начала болеть спина по нарастающей. Полагаясь на русский авось, я продолжал играть в свой любимый футбол и доигрался.
          Читать дальше →
        • Разработка web API

          • Translation

          Интро


          Это краткий перевод основных тезисов из брошюры «Web API Design. Crafting Interfaces that Developers Love» Брайана Маллоя из компании Apigee Labs. Apigee занимается разработкой различных API-сервисов и консталтингом. Кстати, среди клиентов этой компании засветились такие гиганты, как Best Buy, Cisco, Dell и Ebay.

          В тексте попадаются комментарии переводчика, они выделены курсивом.

          Собираем API-интерфейсы, которые понравятся другим разработчикам


          Понятные URL для вызовов API

          Первый принцип хорошего REST-дизайна — делать вещи понятно и просто. Начинать стоит с основных URL адресов для ваших вызовов API.

          Ваши адреса вызовов должны быть понятными даже без документации. Для этого возьмите себе за правило описывать любую сущность с помощью коротких и ясных базовых URL адресов, содержащих максимум 2 параметра. Вот отличный пример:
          /dogs для работы со списком собак
          /dogs/12345 для работы с отдельной собакой
          Дальше
        • Dream team из ничего: найм специалистов в IT

            Всем привет!

            Как и обещал, продолжаю публикации о менеджменте в IT. В предыдущей статье я рассказал, что значит быть Team Leader. Но какой же тим лид без команды? Сегодня же о том, как можно набирать классных людей, не имея больших ресурсов, и когда о вас никто не знает.

            image
            Читать дальше →
          • [Перед понедельником] Синдром сухого глаза

            В 1933 году шведский офтальмолог H. Sjogren впервые описал синдром «сухого глаза» при одноименном синдроме Шегрена (аутоиммунное заболевание, при которой снижается секреция слюнных, слезных и др. желез). Это так называемый первичный синдром «сухого глаза», который наблюдается у 1% населения. Развитие современных технологий позволило в 1995 году выделить вторичный синдром «сухого глаза» которым, по разным данным, страдает до 20% населения, и до 48% офисных работников.

            Что же это за болезнь?


            Когда мы моргаем, мы не только смачиваем роговицу глаза слезой, но и оставляем на ней «слезную пленку». В норме она сохраняется на глазу от 10 до 45 секунд, потом лопается. Мы моргаем снова и процесс повторяется.



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



              — На какой диапазон эта антенна?
              — Не знаю, проверь.
              — КАААК?!?!

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

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

              TL;DR Мы будем измерять КСВ антенн на различных частотах с помощью прибора OSA 103 Mini и направленного ответвителя, строить график зависимости КСВ от частоты.
              Читать дальше →
            • Разбираемся, как 5G будет работать в миллиметровом диапазоне на улице и в помещениях



                На MWC2019 Qualcomm показала видео с интересными сценариями пользования наружной сетью 5G миллиметрового диапазона, как вне помещений офиса, так и, в отдельных случаях, в помещениях. Рассмотрим их подробнее.

                На фото выше представлен кампус Qualcomm в Сан-Диего, Калифорния — видны три здания и базовые станции сетей 5G и LTE. Покрытие 5G в диапазоне 28 ГГц (диапазон миллиметровых волн) обеспечивают три малых соты 5G NR — одна установлена на крыше здания, другая на стене здания, третья — во дворе на трубостойке. Также здесь есть макросота LTE, обеспечивающая покрытие кампуса.
                Читать дальше →
              • Максимальный постоянный ток через полевой транзистор

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

                В статье будет рассмотрен пример расчёта максимального тока через MOSFET SQM50P03-07 (взял первый попавшийся из своей схемы), работающий в ключевом режиме, или на участке насыщения.
                Читать дальше →
              • Районы… Кварталы…

                  Совсем недавно на хабре была статья от AirBnb — «Создавая карту мира». Хорошая и красивая статья про административное деление мира. Один минус — у статьи один комментарий, и то мой.
                  Пользуясь случаем проведу опрос — хотели ли бы вы такую карту административных делений?
                  А то она у меня есть:



                  Вы наверное замечали, что Google.Карты умеют подсвечивать контура городов. С недавнего времени такое есть и на Яндекс.Картах. Мало кто знает, что геометрия есть и на eSosedi.

                  А вот когда такая возможность появится на вашем сайте — теперь зависит только от тебя %username%.

                  Для достижения эффекта достаточно зайти на data.esosedi.org или GitHub, ознакомиться с документацией библиотеки osmeRegions и начать использовать.

                  P.S.: 3 признака того, что год минувший все сделал красиво: 1. Районы 2. Кварталы. 3. Детализация до «Жилые массивы» доступна для некоторых городов.
                  Читать дальше →
                • Лицензия для вашего open-source проекта

                    В этой статье я хочу немного поговорить об авторском праве и свободных лицензиях на ПО. Текст является результатом самостоятельного выбора лицензий и их применения к своим проектам.

                    Статья будет полезна тем, кто хочет:

                    — в общих чертах понять, что такое авторское право (но лучше обратиться к юристу);
                    — подобрать свободную лицензию для своего проекта;
                    — разобраться, что нужно писать в шапке файла исходного кода.
                    Читать дальше →
                  • Не бойтесь пробовать, или Как я стала программистом в возрасте далеко за 18

                      Когда вы слышите словосочетание «младший разработчик», то наверняка представляете молодого парня на последних курсах вуза или недавнего выпускника — но уж никак не 30-летнюю женщину с маленьким ребёнком, которая до этого несколько лет преподавала в вузе и от разработки была так же далека, как Майя Плисецкая от тяжёлой атлетики. Только ленивый не задавал мне вопросы: «Почему ушла с позиции доцента на младшего разработчика?», «А как ты училась программировать?», «Как искала работу?», «С чего вдруг ты вообще решила стать программистом?» и т.д. и т.п.

                      Вот на них я и попытаюсь ответить в этом посте.


                      Читать дальше →
                    • IT-эмиграция с семьей. И особенности поиска работы в маленьком городе Германии, когда ты уже там

                      Поехать работать в Австралию или Таиланд, когда тебе 25 и нет семьи, не так и сложно. И таких историй большое количество. А вот переехать, когда тебе под 40, жена и трое детей (8 лет, 5 лет и 2 года) — задача другого уровня сложности. Поэтому хочу поделиться своим опытом переезда в Германию.



                      Про то, как искать работу за границей, оформлять документы и переезжать – было много сказано, повторяться не буду.


                      Итак, 2015 год, мы с семьей живем в Санкт-Петербурге на съемной квартире. Долго думали, как нам переезжать, что делать со школой, местами в садике и съемной квартирой. Нами было принято несколько важных решений:

                      Читать дальше →
                    • Изучаем Go: подборка видеозаписей докладов



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

                        Список видеозаписей:

                        1. Go в production.
                        2. Профилирование Go-приложений.
                        3. Медиасервер трансляций на Go.
                        4. Pipeline поиска по Почте на Go.
                        5. Синхронизация данных в Go с помощью mysql binlog.
                        6. Как мы начали использовать Go в Ответах Mail.ru.
                        7. Pub/Sub и 1 миллион WebSocket’ов.
                        8. Программирование на Go (курс).
                        9. Кому нужен язык Go и микросервисы.
                        Читать дальше →
                        • +31
                        • 9.8k
                        • 3
                      • Делаем современное веб-приложение с нуля

                        • Tutorial
                        Итак, вы решили сделать новый проект. И проект этот — веб-приложение. Сколько времени уйдёт на создание базового прототипа? Насколько это сложно? Что должен уже со старта уметь современный веб-сайт?

                        В этой статье мы попробуем набросать boilerplate простейшего веб-приложения со следующей архитектурой:


                        Что мы покроем:

                        • настройка dev-окружения в docker-compose.
                        • создание бэкенда на Flask.
                        • создание фронтенда на Express.
                        • сборка JS с помощью Webpack.
                        • React, Redux и server side rendering.
                        • очереди задач с RQ.
                        Читать дальше →
                      • 6 полезных ресурсов и сервисов для потенциальных эмигрантов в США, Германию и Канаду



                          С недавних пор я активно заинтересовался темой переезда за границу, и в связи с этим изучил существующие сейчас сервисы, которые оказывают помощь в переезде ИТ-специалистам. К моему удивлению, далеко не так много проектов помогают потенциальным иммигрантам. Пока что я отобрал шесть сайтов, которые показались мне интересными.
                          Читать дальше →
                        • Serial, UART и Android, как связь с микроконтроллерами

                          image

                          Наши испытуемые:


                          Планшет на Android 4.1.1 “DNS AirTab M101w” и следующие устройства:
                          1. Плата Tiva C Series TM4C123G LaunchPad
                          2. Плата Stellaris LaunchPad EK-LM4F120XL
                          3. Плата Arduino MEGA 2560
                          4. Плата MSP430 LaunchPad, M430G2553

                          И сейчас мы будем по очерёдности подключать все эти платы через USB OTG к планшету и пытаться установить с ними связь не прибегая к root доступу.
                          Читать дальше →