• Оптический удлинитель HDMI. 300 метров

      Доброго времени суток, Хабр!



      Разработка волоконно-оптического удлинителя HDMI на 300 метров. Отказ от обратного канала (передача данных по одному волоконно-оптическому кабелю). Клонирование EDID с монитора.
      Читать дальше →
    • Пулы соединений к БД — зачем и почему

      Когда Ваш проект начинает пользуется популярностью и каждая миллисекунда обработки запроса от пользователя становится критической, приходится искать узкие места в системе. Часто больше всего времени занимает выполнение SQL запроса из приложения к базе данных. Попробуем разобраться, что можно оптимизировать в программе при работе с БД.
      Читать дальше →
    • Телефонные мошенники. Действие второе, в котором я срываюсь и бегу до ближайшего банкомата



        Итак, по реакции публики я увидел, что первое действие вполне «зашло», поэтому продолжу. Общий хронометраж моих разговоров составил (по «действиям»): 7:10, 18:23, 42:14, 3:51. Непродолжительность финального фрагмента связана с тем, что я понял, что с той стороны находятся исключительно непробиваемые личности. Я мог бы еще часами «ходить» по городу, но мои силы уже были на исходе. Поэтому я сознался в содеянном сам и попрощался.

        Положив трубку после разговора с «лже-Дмитрием» я ожидал продолжения банкета на следующий день. Но нет, господа были весьма нетерпеливы и перезвонили мне почти сразу же. Чуток поломав свою легенду.
        Читать дальше →
      • Переезд: подготовка, выбор, освоение территории

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

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



          Переезд в другой город, страну, континент или планету не так уж прост. Иной менталитет, культура, правила, законы, цены, медицина, а еще надо найти куда переезжать, оффер, жилье, сделать визу… тысячи нюансов. Как не получить нервный тик, а только максимальную выгоду и удовольствие от процесса, расскажет Денис Неклюдов (nekdenis).

          По каким причинам люди уезжают, что их ждет там и как выбирать, куда переехать? Как сориентироваться на рынке труда, найти работу, подготовиться к интервью и выбрать самый выгодный оффер. На примере переездов Дениса на Пхукет, в Сингапур, Сан-Франциско и опыта множества других экспатов подготовимся к новым приключениям. Рассказ Дениса — это дорожная карта или чек-лист, который будет полезен всем, кто задумывается о переезде.

          Дисклеймер. «Земля круглая» и вращается. Когда-нибудь мы вернемся туда, откуда начали. Переезд Дениса не провоцирует вас навсегда покинуть родину. Не воспринимайте тему переезда агрессивно, а лишь как способ расширить кругозор. Статья основана исключительно на опыте обычных разработчиков без налета роскошной жизни крипто-миллионеров и тяжелых судеб мигрантов без профессии.
          Читать дальше →
        • Как собеседовать работодателя?

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

          Надо ли писать код на доске? Надо ли жонглировать бинарными деревьями и знать наизусть все сложности алгоритмов, или просто разговаривать про жизнь и проекты?

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

          Читать дальше →
        • Как работает yield

          • Translation
          На StackOverflow часто задают вопросы, подробно освещённые в документации. Ценность их в том, что на некоторые из них кто-нибудь даёт ответ, обладающий гораздо большей степенью ясности и наглядности, чем может себе позволить документация. Этот — один из них.

          Вот исходный вопрос:
          Как используется ключевое слово yield в Python? Что оно делает?

          Например, я пытаюсь понять этот код (**):
          def _get_child_candidates(self, distance, min_dist, max_dist):
              if self._leftchild and distance - max_dist < self._median:
                  yield self._leftchild
              if self._rightchild and distance + max_dist >= self._median:
                  yield self._rightchild
          

          Вызывается он так:
          result, candidates = list(), [self]
          while candidates:
              node = candidates.pop()
              distance = node._get_dist(obj)
              if distance <= max_dist and distance >= min_dist:
                  result.extend(node._values)
                  candidates.extend(node._get_child_candidates(distance, min_dist, max_dist))
                  return result
          


          Что происходит при вызове метода _get_child_candidates? Возвращается список, какой-то элемент? Вызывается ли он снова? Когда последующие вызовы прекращаются?

          ** Код принадлежит Jochen Schulz (jrschulz), который написал отличную Python-библиотеку для метрических пространств. Вот ссылка на исходники: http://well-adjusted.de/~jrschulz/mspace/

          Подробный и обстоятельный ответ
        • Благодаря двухфакторной аутентификации я лишился всех вложенных денег и 3 лет работы

            Пост о том, как привязанный к аккаунту сервиса Яндекс.Почта телефон, помог угнать домен созданного мной сетевого издания "Банки Сегодня". Отмечу, что в это издание я вложил все свои накопленные деньги, душу и 3 года кропотливой работы.
            Читать дальше →
          • Насколько региональные зарплаты разработчиков отличаются от московских, если учесть стоимость жизни

              image

              По следам нашего общего обзора зарплат за первое полугодие 2019, продолжаем уточнять отдельные аспекты, либо не вошедшие в обзор, либо затронутые лишь поверхностно. Сегодня более подробно посмотрим на региональные особенности зарплат: 

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

              Данные по зарплатам мы берём из калькулятора зарплат «Моего круга», в котором пользователи указывают зарплаты, которые получают на руки после вычета всех налогов и могут также смотреть любые другие зарплаты в ИТ.
              Читать дальше →
            • Проблемы и нюансы при разработке под SmartTV с использованием React.js

              Хочу поделиться опытом разработки приложения с просмотром видео контента для SmartTV (Tizen и WebOS) и с какими проблемами мы столкнулись.

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

              Так как это браузер, то ничего нам не мешало использовать React.js для разработки, что повлияло на некоторые проблемы с производительностью.

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

              • Translation

              Поисковая выдача на ListenNotes.com

              Listen Notes — это поисковая система и база данных подкастов. Технология на самом деле очень скучная. Никакого ИИ, глубокого обучения или блокчейна. «Если вы должны объявлять о внедрении ИИ, то вы не используете Настоящий ИИ» :)

              После прочтения этой статьи вы сможете повторить мой проект или легко сделать нечто подобное. Не придётся нанимать много разработчиков. Помните, когда Instagram привлёк $57,5 млн и отошёл к Facebook за $1 млрд, у них было всего 13 сотрудников — и это не только разработчики. Покупка Instagram произошла в начале 2012-го. Сейчас 2019 год, и сегодня как никогда просто создать что-то значимое с крошечной инженерной командой — даже из одного человека.
              Читать дальше →
            • Сдвиг частот для SDR-радиоприемника — Ham it up v1.2 upconverter

                Некоторое время назад я писал об универсальных радио-приемниках за 20$ из TV-тюнеров на rtl2832. Самым большим их недостатком было то, что они не могут принимать ничего ниже 50Мгц (e4000 — не работает ниже 50Мгц, R820T — ниже 24Мгц), а в этом диапазоне — 3/4 всего интересного, что можно услышать в радиоэфире за счет того, что короткие волны отражаются от ионосферы — и дальность связи уже не ограничена прямой видимостью.

                Устранить этот недостаток можно добавив к нему конвертор частоты. Сделать качественный (со всеми фильтрами) конвертер своими руками — достаточно сложно и дорого, потому пришлось купить готовый: Ham-it-up v1.2 c кварцем на 125Мгц (42.95$, из США шло чуть дольше месяца). Краткие результаты тестирования и несколько хитростей для успешного приема на коротких волнах — под катом.
                Читать дальше →
              • DIY кислородно-ацетиленовая сварка

                  Путь к IT у всех бывает очень тернистый. Я например в детстве хотел быть сварщиком — это же так красиво, когда вокруг летят брызги расплавленного металла! Но как-то не сложилось: мне начали выписывать журнал «Юный техник», где на последней странице одного из номеров рассказывали про робота, управляемого компьютером БК-0010… Но пунктик-то остался…

                  Также кто-то наверняка помнит передачу «Очумелые ручки», где из пластиковых бутылок делали различные креативные (как бы сказали сейчас) вещи.

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

                  * В каждом доме BarsMonster.
                  Читать дальше →
                • Хроническая усталость, апатия, сезонная «депрессия» и многое другое: тривиальная причина

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

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

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

                    1) Летом все ок, а зимой — апатия, ничего не хочется делать. Это любят называть сезонной «депрессией».
                    2) Утром все ок, а к вечеру на работе — мозги «не варят», ничего не хочется делать — только хабр и reddit листать. Приходите домой — и с дичайшей усталостью падаете в кресло. Сил хватает только лазить в интернете до ночи. Этот пункт — касается и работодателей, есть шанс, что люди вечером перестают работать не из-за своей лени.
                    3) Даже если вы просыпаетесь без будильника — вы не высыпаетесь.
                    4) Кофе и прочие стимуляторы — не дают бодрости, лишь делают вас злее.
                    5) Даже если вы спите «сколько влезет» — сны короткие и не запоминающиеся, или их нет вообще.
                    6) Вы замечаете, что даже 1 вещь вам иногда трудно удержать в голове. Мы можете забыть что вы сейчас хотели сделать.
                    7) Вы просыпаетесь уже с дичайшей усталостью
                    8) Вам кажется, что в комнате темно и все несколько не резкое.
                    Читать дальше →
                  • Биография зарплаты в Германии 2019

                    • Translation
                    Привожу неполный перевод исследования «Развитие зарплаты в зависимости от возраста». Гамбург, август 2019

                    Кумулятивный доход специалистов в зависимости от их возраста в евро брутто

                    image
                    Читать дальше →
                  • Очень много YouTube-каналов для прокачки английского языка для программистов

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

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

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

                    Поучить английский


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

                    EngVid. Если бы можно было выбрать что-то одно для улучшения английского, то это оно. Разные преподы и тематики, постоянное обновление, бездонный ресурс. Ещё сайт одноимённый крутой, с удобной навигацией — можно найти очень узкую тему по интересам.
                    Читать дальше →
                  • Модификация стоковых прошивок для Android. Часть 5. Революция c Xposed Framework

                      В 2012 году пользователь с ником rovo89 на комьюнити XDA опубликовал исходные коды и готовый к использованию фреймворк, упрощающий кастомизацию прошивок, с подробной инструкцией и примерами, предложив альтернативу традицоинному, на тот момент, способу (деодексирование→ дизассемблирование → декомпиляция → рекомпиляция → тестирование → загрузка патчей в телефон): Часть 1, Часть 2, Часть 3, Часть 4

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

                      Rovo не забросил свое детище, а продолжил развитие. Когда в 2013-ом году вышла версия KitKat, все то же сообщество именитых девелоперов ответило: "Неа, это слишком опасно… хотя..."

                      Тем временем Google принял решение выпускать новую версию операционной системы ежегодно. Разумеется, стало накладно кастомизировать прошивки: не успеваешь сделать одну, как появляется новая версия ОС. Так в 2014-ом выходит версия Lollipop и разработчики наконец обращают внимание на фреймфорк с мыслями: "Может все же стоит посмотреть что это такое? Выглядит многообещающим".

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

                      Сейчас конец февраля 2017-го. Xposed под Nougat все еще не доступен, а толпы страждущих разработчиков и пользователей то и дело открывают темы под тип "Xposed не работает! Он мне нужен! Rovo, пожалуйста!"

                      Сегодня я расскажу об Xposed Framework.
                      Читать дальше →
                      • +14
                      • 16.3k
                      • 8
                    • Race condition в веб-приложениях

                      • Tutorial
                      TL;DR В статье описываются непопулярные трюки с race condition, которые обычно не используют в атаках такого типа. По итогу исследований мы сделали свой фреймворк для атак racepwn.

                      Вася хочет перевести 100 долларов, которые есть у него на счету, Пете. Он переходит на вкладку переводов, вбивает Петин ник и в поле с количеством средств, которые необходимо перевести — цифру 100. Далее, нажимает на кнопку перевода. Данные кому и сколько отправляются на веб-приложение. Что может происходить внутри? Что необходимо сделать программисту, чтобы все работало корректно?
                      Читать дальше →
                    • Шпаргалка для технического собеседования


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

                        Читать дальше →
                      • Разработка анимированных фавиконов

                        • Translation
                        Это — первое, что ищут взглядом, когда переключаются между вкладками браузера. Только что мы дали одно из возможных описаний того, что называется «фавиконом». Пространство на экране, которое занимает ярлык вкладки веб-страницы — это гораздо более ценный ресурс, чем многие думают. Если хорошо поработать с ярлыком, то он, помимо того, что будет продолжать играть роль идентификатора страницы, может стать чем-то вроде «доски объявлений», которая сообщает о том, что именно происходит на странице.


                        Фавикон
                        Читать дальше →