Pull to refresh
3
0

User

Send message

Продолжаем ковырять Тинькофф API. Рассчитываем эффективность инвестиций

Reading time12 min
Views22K

Продолжение публикации: "Что недоговаривают Тинькофф Инвестиции. Вытаскиваем все данные по портфелю через API в большую таблицу Excel".

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

Пост длинный, но много картинок
Total votes 24: ↑24 and ↓0+24
Comments33

Сам себе Гутенберг. Делаем параллельные книги

Reading time12 min
Views23K

Lingtrain parallel books


Upd. 04.12.2021 — Наш телеграм канал


Если вам нравится изучать языки (или вы их преподаете), то вы наверняка сталкивались с таким способом освоения языка как параллельное чтение. Он помогает погрузиться в контекст, увеличивает лексикон и позволяет получить удовольствие от обучения. Читать тексты в оригинале параллельно с русскоязычными, на мой взгляд, стоит, когда уже освоены азы грамматики и фонетики, так что учебники и преподавателей никто не отменял. Но когда дело все же доходит до чтения, то хочется подобрать что-то по своему вкусу, либо что-то уже знакомое или любимое, а это часто невозможно, потому что такого варианта параллельной книги никто не выпускал. А если вы учите не английский язык, а условный японский или венгерский, то трудно найти вообще хоть какой-то интересный материал с параллельным переводом.


Сегодня мы сделаем решительный шаг в сторону исправления этой ситуации.


Из чего делаем


На входе у нас будут два текстовых файла с оригинальным текстом и его переводом. Для примера возьмем книгу "Убить пересмешника" Харпер Ли на русском и английском языках.


Начало документов выглядит так (отрывки приведены в таком виде, в котором они были найдены в сети):

Выровнять пересмешника
Total votes 106: ↑106 and ↓0+106
Comments67

Лингвистическая фантастика. Книги, в которых язык больше, чем просто средство для общения

Reading time5 min
Views24K

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

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

Читать далее
Total votes 24: ↑22 and ↓2+30
Comments23

Как мы верифицированный полетный контроллер для квадрокоптера написали. На Ada

Reading time10 min
Views21K

Однажды на новогодних каникулах, лениво листая интернет, бракоделы в нашем* R&D офисе заметили видео с испытаний прототипа роботакси. Комментатор отзывался восторженным тоном – революция, как-никак. Но тренированное ухо расслышало в шуме с испытательной площадки еще кое-что. Контроллер скорости (штука для управления тягой винтов) сыграл мелодию при старте, как это любят делать пилоты дронов, которые часто используют полётный контроллер Betaflight. Неужели там бета-флайт? Ну, или какая-то из ее немногих разновидностей.

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

После просмотра исходного кода Betaflight на гитхабе стало еще страшнее, и чем дальше, тем хуже. Это – управляющая программа для тяжелого устройства с острыми винтами, которое летает высоко, быстро. Становится страшно: игрушки это одно, но я бы не хотел летать, на таком такси. Но ведь можно иначе? Можно, решили мы! И решили это доказать. На Avito был куплен акробатический FPV-“квадрик” на базе STM32F405, для отладки – Discovery-платы для этого же контроллера, а дальше все как в тумане..

Читать далее
Total votes 70: ↑68 and ↓2+88
Comments58

Xiaomi Gateway MIEU01 как универсальный контроллер умного дома

Reading time8 min
Views49K

Home Assistant - прекрасное программное решение для умного дома. У неё современный интерфейс, множество плагинов и дополнений почти на все случаи жизни. В интернете можно найти множество компонентов для самых экзотических устройств. Но чтобы начать им пользоваться, надо как следует позаботиться об аппаратной платформе. Нужно либо купить одноплатный компьютер наподобие Raspberry PI, или же использовать десктопный компьютер, который должен работать в режиме 24/7.

Но что если я скажу, что даже простой ZigBee шлюз от Xiaomi с евро-вилкой, который вставляется в розетку, может работать как хост система для Home Assistant? Он может показывать значение датчиков в веб интерфейсе, управлять светом и розетками, контролировать ZigBee сеть, проговаривать текст голосом через встроенный динамик, делать полноценную автоматизацию и всё это на скромном устройстве, которое нужно лишь воткнуть в розетку.

Читать далее
Total votes 31: ↑31 and ↓0+31
Comments47

Схема моего умного дома на основе ESP8266, часть 1

Reading time4 min
Views50K

Захотелось мне сделать свой дом умным. И чтобы это было дешевым, простым и надежным. Как оказалось это сделать было возможно. Но... готовых умных домов я не смог найти. Те что имелись на рынке либо дорогие, либо нефункциональные, либо невнятные и т.д. и т.п. Вспомнил я про Arduino. И оказалось на нем можно это сделать (точнее не на нем, а на очень похожем на него контроллере ESP8266). Правда это уже будет целым хобби. Просто взять купить и поставить не получится. Нужно искать, собирать, паять, соединять и конечно же программировать. Ок, поехали!

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

Читать далее
Total votes 28: ↑6 and ↓22-15
Comments113

Юноше, обдумывающему электронику. Ключи к материалу для самостоятельного изучения

Reading time6 min
Views20K
Перевод учебника «Искусство схемотехники» пополнился Частью 3, в которой разбираются полевые транзисторы. Книга приобрела целостный, хотя всё ещё не окончательный, вид. На данный момент отсутствуют три части — 11 («Программируемая логика»), 14 («Компьютеры, контроллеры и шины данных»), 15 («Микроконтроллеры») — и таблицы. Таблицы отложены до завершения перевода (там почти одни цифры, с которыми можно ознакомиться и в оригинале), а остающиеся темы при всём уважении к авторам лучше изучать по другим источникам. В анонсе перевода среди жалоб на несовершенство мира была высказана мысль о необходимости грамотного руководства освоением нового материала. Здесь предлагается метод изучения, рационализирующий данный процесс и некоторые соображения о повышении КПД знаний, относящиеся к системе Цеттелкастен.
Читать дальше →
Total votes 25: ↑23 and ↓2+27
Comments18

Бег на тихоокеанском острове российской зимой

Reading time16 min
Views10K

Этот текст должен был бы появиться год назад, когда случился первый карантин. Но в марте 2020 всем казалось, что COVID-19 продлится максимум до середины лета; и глубоко погружаться в "indoor training" нет смысла. Пару-тройку месяцев перетерпеть, и хватит. Сейчас, может быть, наоборот, уже поздно — но лучше поздно, чем никогда!

Текст не претендует на какое-то откровение. Только среди моих приятелей первый Zwift-велосипедист появился четыре года назад, а первый Zwift-бегун — в апреле 2020. То есть с новаторством я точно опоздал.

Здесь, на Хабре, упоминание Zwift я нашёл в четырёх материалах. Более того — один посвящен DIY-гаджету под него. Но удивительным образом нет рассказа о том, что вообще такое Zwift, в чём его прелесть, и кому он может быть полезен. Ровно таким рассказом является этот текст. Честно признаюсь, он получился довольно длинным (и это я его еще урезал в полтора раза!)

Читать далее
Total votes 17: ↑15 and ↓2+21
Comments70

Умный дом с нуля своими руками или путешествие длиною в год

Reading time8 min
Views207K

Данную статью пишу для думающих, стоит оно того или нет и начинающих построение своего умного дома, надеюсь она поможет сделать вам свой выбор. Для тех кто думает я не программист у меня ничего не получится, я тоже, хотя имею техническое (теплоэнергетик) образование, но никогда не работал в IT, не знаю не одного языка программирования. Дорогу осилит идущий. Начнем с рассуждений что такое умный дом, поверьте на слово он не решит все ваших бытовых и семейных проблем, но точно сделает жизнь немного комфортней. Что такое умный дом в моем представлении год назад: 1. Красивый планшет со схемой дома весящий на стане в прихожей с которого можно управлять всем в доме; 2. Управление всем чем можно голосом. Откровение через год планшет не нужен, так как бегать со второго этажа на первый что бы по управлять неудобно. Что бы хорошо работало голосовое управление, требуется установка умной колонки в каждую комнату, когда их две это одно. А когда значительно больше вопрос. Сейчас для меня умный дом это то, что работает само без моего участия, и не требует управления. Все о чем пойдет речь далее сделано мною лично, может можно сделать по другому, может проще и лучше. Но таков путь.

Читать далее
Total votes 35: ↑28 and ↓7+29
Comments154

Гайд по тестированию локализации и интернационализации, а также большой и полезный checklist

Reading time23 min
Views52K

Привет, хабровчане. Сегодня я хочу осветить и обсудить тему локализации (L10N) и интернационализации (I18N). В интернете и, в том числе и на Хабре уже есть полезные и интересные статьи, но часто они дают более-менее общую информацию о подходах, без углубленной информации о том, что и как можно проверить. Я бы хотел с вами поделиться своим опытом, просуммировать кое что из статей, которые вы можете найти в интернете, а также постараюсь описать большой checklist с самыми распространёнными кейсами как для локализации, так и для интернационализации. В чеклистах я буду стараться упоминать только те проверки, которые вы можете сделать сами, без (глубоких) знаний языка новой для вас локали.


image

Читать дальше →
Total votes 5: ↑5 and ↓0+5
Comments6

Простейший измеритель CO2 за 2000 рублей и полчаса

Reading time2 min
Views53K
Измеритель уровня углекислого газа (CO2) наверное самый недооценённый прибор, который на мой взгляд должен быть в каждой квартире, ведь он показывает, насколько воздух пригоден для дыхания и с помощью него всегда видно, когда пора проветривать.

Такой измеритель в квартирах большая редкость прежде всего из-за высокой цены. Свой первый измеритель AZ Instruments 7798 CO2 datalogger я покупал за $139 и это была самая дешёвая модель на рынке.

Сейчас готовый измеритель CO2 стоит около 4000 рублей, а самодельный обойдётся вдвое дешевле.

Читать дальше →
Total votes 73: ↑71 and ↓2+96
Comments253

Как ультрафиолет запускает фотолиз прямо в вашей коже

Reading time7 min
Views50K
image

На картинке — водитель-дальнобойщик, который 28 лет водил фуры по просторам США. Стекло было закрыто, кондиционер работал. Вот только ультрафиолет UVA-спектра прекрасно проникает сквозь него и вызывает повреждения кожи и фотостарение. Научную публикацию по его случаю можно посмотреть тут. Ультрафиолет запускает кучу неприятных реакций в организме и рвёт на куски ДНК. Это явление называется фотолизом.

Загар — штука симпатичная, но он всегда патология и способ защититься от повреждения. Вот раньше была отличная, на мой взгляд, мода на бледность и зонтики от солнца. Сейчас же все старательно загорают на пляже и в солярии. Поэтому, если вы не хотите выглядеть в 30 лет как пожилой крестьянин с рисовых полей, — надо обязательно защищать кожу специальными SPF-составами. Sun Protection Factor на этикетке показывает, насколько долго вы можете пробыть на солнце с этим средством. Например, если SPF 50+, а вы выгораете до состояния томата через десять минут, то с ним вы сможете продержаться 10 * 50 минут, то есть почти восемь часов.

Несмотря на то, что наша лаборатория давно занимается разработками средств по уходу за кожей, нам было интересно поработать с отражающими наночастицами при создании SPF-средства. Сейчас расскажу про них подробнее. А ещё про лысых мышей, на которых всё это испытывают.
Total votes 58: ↑50 and ↓8+66
Comments129

Инженерный подход к разработке ПО. От теории к практике

Reading time24 min
Views17K

Как проверить идеи, архитектуру и алгоритмы без написания кода? Как сформулировать и проверить их свойства? Что такое model-checkers и model-finders? Что делать, когда возможностей тестов недостаточно?


Привет. Меня зовут Васил Дядов, сейчас я работаю программистом в Яндекс.Почте, до этого работал в Intel, ещё раньше разрабатывал RTL-код (register transfer level) на Verilog/VHDL для ASIC/FPGA. Давно увлекаюсь темой надёжности софта и аппаратуры, математикой, инструментами и методами, применяемыми для разработки ПО и логики с гарантированными, заранее определёнными свойствами.


Это вторая статья из цикла (первая статья тут), призванного привлечь внимание разработчиков и менеджеров к инженерному подходу к разработке ПО. В последнее время он незаслуженно обойдён вниманием, несмотря на революционные изменения в подходе и инструментах поддержки.

Читать дальше →
Total votes 22: ↑20 and ↓2+18
Comments29

C++ велосипедостроение для профессионалов

Reading time36 min
Views49K
Классы, которые люди самостоятельно пишут, а потом копируют из одного проекта в другой, хотя они уже есть в стандартных библиотеках, в простонародье называются велосипедами. Первый вопрос, который возникает при встрече с таким «велосипедом» — зачем люди переписывают что-то заново? Вариантов может быть несколько.

  • Некоторые делают это для самообучения: берут класс стандартной библиотеки, пишут его сами с нуля, сравнивают то, что получилось, с тем, что есть в стандартной библиотеке — в процессе узнают для себя что-то новое.
  • Некоторые проекты имеют особое требования к коду. В embedded-разработке принято работать без RTTI и без exception, поэтому части стандартной библиотеки, которые используют RTTI и exception, необходимо переписать без них.
  • Редко, но бывает, когда велосипед пишут, потому что могут написать лучше, чем в стандартной библиотеке. Как правило, такие нововведения рано или поздно попадают в стандартную библиотеку.
  • Другим только кажется, что они могут написать лучше, и таких людей больше. Но в процессе они обучаются, выясняют для себя что-то новое и что-то интересное открывают.
  • Могут быть другие причины.

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

  • бездумно переносить устаревшие технологии 20-30-летней давности в современные проекты;
  • пользоваться «вредными» бенчмарками и оптимизациями.

А также затронем «вредные» советы, обсудим новейшие практики программирования (C++ 11 и позднее), подумаем, что делать с «идеальным» велосипедом.

Total votes 76: ↑76 and ↓0+76
Comments102

Упрощение кода с помощью if constexpr в C++17

Reading time7 min
Views52K

Несколько новых возможностей C++17 позволяют написать более компактный и ясный код. Это особенно важно при шаблонном мета-программировании, результат которого часто выглядит жутко…


Например если вы хотите выразить if, который вычисляется во время компиляции, вы будете вынуждены написать код используя приём SFINAE (например enable_if) или статическую диспетчеризацию (tag dispatching). Такие выражения тяжело понять, и они выглядят как магия для разработчиков, незнакомых с продвинутыми шаблонами мета-программирования.


К счастью, с появлением C++17 мы получаем if constexpr. Теперь большинство приёмов SFINAE и статической диспетчеризации отпадает, и код уменьшается, становится похожим на "обычный" if.


Эта статься демонстрирует несколько приёмов использования if constexpr.

Читать дальше →
Total votes 28: ↑26 and ↓2+24
Comments53

Абсурдно быстрое кодирование и декодирование base64

Reading time3 min
Views15K
Об авторе: Дэниель Лемир — профессор компьютерных наук в Университете Квебека (Канада). Его исследования затрагивают производительность программного обеспечения и инженерию данных

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

Однако мы часто используем текстовые форматы; например, веб-страницы и электронные письма должны быть в текстовом формате. Как же мы отправляем изображения по электронной почте? Как внедряем картинки на веб-страницы? Один из вариантов — поставить ссылку на реальный бинарный файл. Другой типичный подход — встроить бинарный файл непосредственно в тело письма или веб-страницы с помощью base64. Base64 — это просто стандартный текстовый формат, который можно использовать для кодирования любых бинарных данных. Если быть точным, то код base64 — всегда валидный текст ASCII (и поэтому также валидный UTF-8). Каждый байт кода base64 содержит 6 бит данных. То есть мы «теряем» примерно 2 бита на байт. Поэтому эквивалент base64 бинарного файла будет примерно на 33% больше. На практике такое увеличение размера редко становится проблемой. Насколько я знаю, приложения к электронным письмам почти всегда кодируются в base64.

При написании HTML я нашёл удобным внедрять изображения напрямую в HTML-код с помощью схемы data URI. Например, в недавней статье я таким образом закодировал файл PNG. Крупнейшие веб-сайты вроде Google постоянно используют эту схему. Небольшим недостатком становится то, что веб-страницы чуть увеличиваются в размере (что очевидно) и нельзя воспользоваться преимуществами кэширования изображений. Но зато браузер экономит один сетевой запрос.
Читать дальше →
Total votes 22: ↑20 and ↓2+18
Comments8

Светодиодный фотоосветитель Yongnuo YN300 с высоким CRI

Reading time2 min
Views11K
Недавно ко мне в гости заезжал видеограф Андрей Тараканов и у него с собой был китайский осветитель, очень популярный у тех, кто снимает фото и видео. Мы измерили его параметры и выяснили, действительно ли у него столь высокий индекс цветопередачи, как обещают.

Читать дальше →
Total votes 34: ↑34 and ↓0+34
Comments16

Анонс ElixirLangMoscow Meetup #7

Reading time1 min
Views1.8K

Клуб ElixirLangMoscow при поддержке Rambler&Co приглашает разработчиков, тимлидов и всех, кто так или иначе связан с разработкой на Elixir, принять участие в ElixirLangMoscow Meetup, который состоится 15 февраля в 19:00, в четверг, в баре «Дорогая, я перезвоню».
Читать дальше →
Total votes 11: ↑11 and ↓0+11
Comments1

Lua. Краткое введение в метатаблицы для чайников

Reading time14 min
Views67K

На написание данной статьи меня сподвигло большое количество вопросов по метатаблицам и ООП в Lua, благо это самый сложный и проблематичный раздел у изучающих данный язык, но, так как Lua проектировалась как язык для начинающих и не-программистов и, в целом, имеет небольшой объём материала для освоения, негоже оставлять её «на потом», учитывая что с помощью метатаблиц можно творить чудеса и крайне элегантные решения заковыристых задач.
Читать дальше →
Total votes 27: ↑27 and ↓0+27
Comments7

Как проследить за своим здоровьем? Полезные mHealth-приложения на смартфон

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

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

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

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

Важно! Приложения носят вспомогательный характер, не являются заменой реальной врачебной консультации или поводом для самолечения!
Читать дальше →
Total votes 13: ↑13 and ↓0+13
Comments5

Information

Rating
4,483-rd
Location
Сербия
Date of birth
Registered
Activity

Specialization

Backend Developer, System Software Engineer
Git
C++
C
Python
Linux
PostgreSQL
MySQL
MariaDB
High-loaded systems