• Что делает Free API Московской биржи в Google Таблицах

      Количество частных инвесторов на Московской бирже удвоилось за последний год и составило 3,86 млн: за 2019 счета на Мосбирже открыли 1,9 млн человек. Санкт-Петербургская биржа, специализирующаяся на торгах акциями иностранных компаний, в прошлом году зафиксировала трехкратный прирост счетов – с 910 000 до 3,06 млн шт.



      Это означает, что на рынок пришло почти 2 млн новичков, которые никогда не занимались трейдингом и не использовали специализированный софт для торгов и учета позиций.

      Google Таблицы и ИСС Мосбиржи
    • Как собрать бинарный deb пакет: подробное HowTo

        Сегодня я расскажу на абстрактном примере как правильно создать *.deb пакет для Ubuntu/Debian. Пакет мы будем делать бинарный. Пакеты, компилирующие бинарники из исходников здесь не рассматриваются: осилив изложенные ниже знания, в дальнейшем по готовым примерам можно понять суть и действовать по аналогии :)

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

        В качестве бонуса в конце статьи будет пример быстрого создания собственного локального репозитория: установка пакетов из репозитория позволяет автоматически отслеживать зависимости, и конечно же! — устанавливать всё одной консольной командой на нескольких машинах :)

        Для тех, кто не хочет вдаваться в мощную систему установки софта в Linux, рекомендую посетить сайт проги CheckInstall: она автоматически создаёт deb-пакет из команды «make install» ;) А мы вместе с любопытными —
        поехали дальше!
      • Make C++ great again!.. in Tula

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

          Читать дальше →
        • Валютный рынок и финансовая инженерия в Средние века


            «Алчность». Миниатюра из манускрипта. Генуя, ок. 1330 г., Британская библиотека

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

            Нужно ли говорить, что средневековые банкиры проявляли недюжинную изворотливость, чтобы кредитовать клиентов в таком неблагоприятном инвестиционном климате? К XIV веку коллективная мысль придумала сразу несколько уловок, чтобы обойти религиозный запрет. 
            Читать дальше →
          • Обратные задачи аффинных преобразований или об одной красивой формуле

            В этой статье я расскажу об одной необычной формуле, которая позволяет взглянуть под новым углом на аффинные преобразования, а особенно на обратные задачи, которые возникают в связи с этими преобразованиями. Обратными я буду называть задачи, требующие вычисления обратной матрицы: нахождение преобразования по точкам, решение системы линейных уравнений, преобразование координат при смене базиса и т.д. Сразу оговорюсь, что в статье не будет ни фундаментальных открытий, ни уменьшения алгоритмической сложности — я просто покажу симметричную и легко запоминающуюся формулу, с помощью которой можно решить неожиданно много ходовых задач. Для любителей математической строгости есть более формализованное изложение здесь [1] (ориентированно на студентов) и небольшой задачник вот здесь [2].
            Поехали!
          • Примеры C++ кода до и после Ranges

            • Перевод
            Снова здравствуйте. Перевод следующего материала подготовлен специально для студентов курса «Разработчик C++», занятия по которому стартуют уже 27 июня.



            Библиотека Ranges была принята в C++20 на совещании стандартного комитета в Сан-Диего в ноябре прошлого года. Библиотека предоставляет компоненты для обработки диапазонов значений, направленных на упрощение нашего кода. К сожалению, библиотека Ranges не очень хорошо документирована, из-за этого ее труднее понять тем, кто хотел бы ее освоить. Этот пост предназначен для ознакомления с примерами кода, написанного с использованием Ranges и без нее.
            Читать дальше →
          • Умеренный Hardening для Firefox

            • Tutorial


            Современный веб состоит из множества разных технологий, которые предоставляют самые разные возможности… но ещё и создают немалое количество угроз. Современные браузеры давно стали самыми сложными приложениями на компе, обогнав по сложности даже ядро ОС (в Firefox в несколько раз больше строк кода, чем в ядре Linux или офисных пакетах). Мы проводим в браузере большую часть своего времени, так что не удивительно, что браузер находится под прицелом: его постоянно пытаются взломать, использовать в ботнете, пытаются украсть из него наши данные, прослушать его трафик, отслеживать посещаемые нами сайты и наши действия на этих сайтах.


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


            Тем не менее, для усиления защиты браузера можно много чего сделать.

            Читать дальше →
          • Топ 20 ошибок при работе с многопоточностью на С++ и способы избежать их

            Привет, Хабр! Предлагаю вашему вниманию перевод статьи «Top 20 C++ multithreading mistakes and how to avoid them» автора Deb Haldar.


            Сцена из фильма «Петля времени» (2012)

            Многопоточность— одна из наиболее сложных областей в программировании, особенно в C++. За годы разработки я совершил множество ошибок. К счастью, большинство из них были выявлены на код ревью и тестировании. Тем не менее, некоторые каким-то образом проскакивали на продуктив, и нам приходилось править эксплуатируемые системы, что всегда дорого.

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

            • Перевод
            В этом документе OpenSSL Management Committee излагает основные принципы стратегической архитектуры OpenSSL. Начиная с 3.0.0, потребуется несколько версий, чтобы перейти от текущей архитектуры (версия 1.1.1) к будущей.

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

            Текущую функциональность, предоставляемую интерфейсом движка, со временем заменит программный интерфейс. OpenSSL 3.0.0 сохранит поддержку движков. Будущая архитектура может быть полностью реализована не ранее OpenSSL 4.0.0.
            Читать дальше →
          • Полное практическое руководство по Docker: с нуля до кластера на AWS

            • Перевод



            Содержание



            Вопросы и ответы


            Что такое Докер?


            Определение Докера в Википедии звучит так:


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



            Ого! Как много информации.

            Читать дальше →
          • Объединяя C++ и Python. Тонкости Boost.Python. Часть первая

            • Tutorial
            Boost.Python во всех отношениях замечательная библиотека, выполняющая своё предназначение на 5+, хотите ли вы сделать модуль на С++ для Python либо хотите построить скриптовую обвязку на Python для нативного приложения написанного на С++.
            Самое сложное в Boost.Python — это обилие тонкостей, поскольку и C++ и Python — два языка изобилующие возможностями, и потому на стыке их приходится учитывать все нюансы: передать объект по ссылке или по значению, отдать в Python копию объекта или существующий класс, преобразовать во внутренний тип Python или в обёртку написанного на C++, как передать конструктор объекта, перегрузить операторы, навесить несуществующие в C++, но нужные в Python методы.
            Не обещаю, что в своих примерах опишу все тонкости взаимодействия этих фундаментальных языков, но постараюсь сразу охватить как можно больше частоиспользуемых примеров, чтобы вы не лазили за каждой мелочью в документацию, а увидели все необходимые основы здесь, или хотя бы получили о них базовое представление.
            Читать дальше →
            • +64
            • 99,5k
            • 8
          • Для новичков: 5 советов по GitHub

            • Перевод
            image Alyson La, Data science в GitHub: В октябре этого года я отпраздновала свой пятилетний юбилей работы в GitHub. 5 лет назад я была бухгалтером, который ничего не знал о программировании, не говоря уже об использовании Git и GitHub.

            Теперь я энтузиаст Data Scientist, который знает некоторые вещи о написании кода с помощью Git & GitHub. Частично благодаря изучению этих технологий я сделала этот карьерный переход.

            Но даже работая в GitHub, изучать Git и GitHub было сложно! Поэтому я хочу поделиться 5-ью советами по использованию GitHub с другими людьми, новичками программирования.

            Совет № 1: Измените редактор по умолчанию


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

            image

            Если вы когда-нибудь столкнетесь с конфликтами слияния (а вы их встретите, см. совет №4), вы попадете в VIM, чтобы исправить конфликт, и вам нужно будет знать конкретные команды VIM для редактирования документа иначе вам захочется плакать. Больше года у меня была заметка на мониторе для напоминания основных команд VIM, таких как i (для редактирования) и: wq (для сохранения и выхода). Чтобы избежать боли, вы можете просто выбрать другой текстовый редактор.
            Читать дальше →
          • Деловая переписка на английском языке: фразы и советы

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

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

              Задача становится сложнее, если вы общаетесь на неродном английском языке с представителями других культур. В статье я поделюсь, на что в этом случае обратить внимание, как избежать ошибок и достичь взаимопонимания с иностранными коллегами и партнерами.
              Читать дальше →
            • [CppCon 2017] Matt Godbolt: Что мой компилятор сделал для меня?

              • Tutorial

              Продолжение цикла обзорных статей с конференции CppCon 2017.



              На этот раз очень интересное выступление от автора Compiler Explorer (godbolt.org). Обязательно читать всем, кто для быстроты умножает на 2 с помощью сдвига (по крайней мере, на x86-64). Если вы знакомы с ассемблером x86-64, то можете перемотать до разделов с примерами ("Умножение", "Деление" и т.д). Далее слова автора. Мои комментарии в квадратных скобках курсивом.


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


              Читать дальше →
              • +31
              • 13,2k
              • 3
            • Тернистый путь Hello World

              Вдохновение на написание данной статьи было получено после прочтения похожей публикации для архитектуры x86 [1].


              Данный материал поможет тем, кто хочет понять, как устроены программы изнутри, что происходит до входа в main и для чего всё это делается. Также я покажу как можно использовать некоторые особенности библиотеки glibc. И в конце, как и в оригинальной статье [1] будет визуально представлен пройденный путь. В большинстве своём статья представляет собой разбор библиотеки glibc.


              Итак, начнём наш поход. Будем использовать Linux x86-64, а в качестве инструмента отладки — lldb. Также иногда будем дизассемблировать программу при помощи objdump.


              Исходным текстом будет обычный Hello, world (hello.cpp):


              #include <iostream>
              int main()
              {
                      std::cout << "Hello, world!" << std::endl;
              }
              Читать дальше →
              • +74
              • 25,8k
              • 4
            • Что нужно знать владельцам сайтов, чтобы не потерять свой бизнес?



                Деятельность бизнеса в интернете все более плотно регулируется со стороны государства. Например, с 1 июля 2017 года увеличились штрафы за незаконную обработку персональных данных на сайте и введен новый порядок применения ККТ.

                Мы составили чек-лист по каждому из «болезненных» вопросов бизнеса в интернете: что нужно помнить при регистрации хостинга, домена, покупке прав на сайт? Как соблюдать права интеллектуальной собственности в сети Интернет? Что делать, если с вашего сайта скопировали контент или дизайн? Как избежать штрафов до 300 000 рублей за нарушение ФЗ-152 и 54-ФЗ?
                Читать дальше →
              • Сортировка пузырьком в коде Qualcomm

                  Забавной находкой поделился сегодня пользователь fj333 с Reddit. Разбираясь в появившемся год назад проприетарном коде Qualcomm Technologies для Android, он обнаружил, что неизвестный программист решил в production-коде использовать сортировку пузырьком для того, чтобы найти… максимум в массиве.

                  Посмотреть исходный файл вы сможете по ссылке на Github или же под катом, а оценить его в работе может любой владелец устройства с Qualcomm Snapdragon 200 MSM8610 под управлением Android.

                  Как известно любому, кто знаком с алгоритмами сортировки, сортировка пузырьком — алгоритм учебный, и в промышленном коде обычно не применяющийся в силу своей неэффективности; дело в том, что в наихудшем и среднем случаях он имеет сложность О(n2), к тому же его емкостная сложность в данном случае — O(n). Кого это не убедило — использовать сортировку пузырьком не рекомендует даже Барак Обама.

                  И это всё не учитывая того, что для поиска максимума хватило бы и простого перебора.
                  Читать дальше →
                • Ежедневная работа с Git

                  • Tutorial
                  Я совсем не долго изучаю и использую git практически везде, где только можно. Однако, за это время я успел многому научиться и хочу поделиться своим опытом с сообществом.

                  Я постараюсь донести основные идеи, показать как эта VCS помогает разрабатывать проект. Надеюсь, что после прочтения вы сможете ответить на вопросы:
                  • можно ли git «подстроить» под тот процесс разработки, который мне нужен?
                  • будет ли менеджер и заказчик удовлетворён этим процессом?
                  • будет ли легко работать разработчикам?
                  • смогут ли новички быстро включиться в процесс?
                  • можно ли процесс относительно легко и быстро изменить?


                  Конечно, я попытаюсь рассказать обо всём по-порядку, начиная с основ. Поэтому, эта статья будет крайне полезна тем, кто только начинает или хочет разобраться с git. Более опытные читатели, возможно, найдут для себя что-то новое, укажут на ошибки или поделятся советом.

                  Далее очень много букв случайным образом превратились в пост.
                • Эффективное использование Github


                    Github — важная часть жизни современного разработчика: он стал стандартом для размещения opensource-проектов. В «2ГИС» мы используем гитхаб для разработки проектов web-отдела и хостинга проектов с открытым кодом.

                    Хотя большинство из нас пользуются сервисом практически каждый день, не все знают, что у него есть много фишек, помогающих облегчить работу или рутинные операции. Например, получение публичного ключа из URL; отслеживание того, с каких сайтов пользователи приходят в репозиторий; правильный шаринг ссылок на файлы, которые живут в репозиториях гитхаба; горячие клавиши и тому подобное. Цель этой статьи — рассказать о неочевидных вещах и вообще о том, что сделает вашу работу с гитхабом продуктивнее и веселее (я не буду рассматривать здесь работу с API гитхаба, так как эта тема заслуживает отдельной статьи).


                    Содержание



                    Читать дальше →
                  • Как не дать алгоритму продать банк

                      Привет, Хабр! Наша команда в Москве занимается разработкой внутренней алгоритмической торговой платформы. Сегодня нам бы хотелось рассказать о механизмах, которые мы добавляем в нашу архитектуру для защиты от возможных сбоев.
                      Читать дальше →