Search
Write a publication
Pull to refresh
0
@TTooLLsread⁠-⁠only

User

Send message

Прогнозирование финансовых временных рядов с MLP в Keras

Reading time10 min
Views81K

image
Всем привет! В этой статье я хочу рассказать про базовый пайплайн в прогнозировании временных рядов с помощью нейронных сетей, в данном случае, наверное, с самыми сложными временными рядами для анализа — финансовыми данными, которые имеют случайную природу, и, казалось бы, непредсказуемые. Или все-таки нет?

Читать дальше →

Как спастись от «зайцев». Инструкция по борьбе с ультрафиолетом

Reading time22 min
Views71K

Однажды в далекие школьные годы у меня появилась идея заняться авто-реставрацией, благо у отца был в наличии уже практически сгнивший (но с отличным мотором) АЗЛК Москвич-408. Первым делом конечно же было решено поменять пороги и укрепить раму металлическим швеллером. Самый быстрый способ — естественно сварка, благо у отца и самодельный аппарат на Ш-образных пластинах был. Электроды и я нашел и, в принципе, довольно сносно приварил куски металла. Довольный своей работой заснул, думая о том, что я буду приваривать с утра. А с утра проснулся и понял что "ослеп", а отец поздравил "с первым пойманным зайцем". Чтобы понять о чем разговор — проследуйте под cut.


Читать дальше →

Теория счастья. Случайности неслучайны?

Reading time20 min
Views52K
Продолжаю знакомить читателей Хабра с главами из своей книжки «Теория счастья» с подзаголовком «Математические основы законов подлости». Это ещё не изданная научно-популярная книжка, очень неформально рассказывающая о том, как математика позволяет с новой степенью осознанности взглянуть на мир и жизнь людей. Она для тех кому интересна наука и для тех, кому интересна жизнь. А поскольку жизнь наша сложна и, по большому счёту, непредсказуема, упор в книжке делается, в основном, на теорию вероятностей и математическую статистику. Здесь не доказываются теоремы и не даются основы науки, это ни в коем случае не учебник, а то, что называется recreational science. Но именно такой почти игровой подход позволяет развить интуицию, скрасить яркими примерами лекции для студентов и, наконец, объяснить нематематикам и нашим детям, что же такого интересного мы нашли в своей сухой науке.



В этой главе мы порассуждаем о предопределённости полёта монетки, о топографических картах, о математических катастрофах и о природе случайности. А по пути заглянем в такие разделы математики, как теория мер и теория динамического хаоса.
Читать дальше →

Вся правда об ОСРВ. Статья #24. Очереди: вспомогательные службы и структуры данных

Reading time12 min
Views1.5K


В этой статье мы продолжим рассматривать очереди.

Вспомогательные службы очередей


Nucleus RTOS имеет четыре вызова API, которые предоставляют вспомогательные функции связанные с очередями: сброс очереди, получение информации об очереди, получение количества очередей в приложении и получение указателей на все очереди в приложении. Первые три функции реализованы в Nucleus SE.
Читать дальше →

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

Reading time6 min
Views18K
Йода: Мастер Квай-Гон, есть что еще сказать тебе?
Квай-Гон Джин: С вашего позволения, магистр. Я обнаружил точку сосредоточия Великой Силы.
Йода: Сосредоточия, сказал ты?
Мэйс Винду: Внутри живого существа?
Квай-Гон Джин: В мальчике. Его клетки содержат высочайший уровень мидихлориан из всех, что я видел. Вероятно, он был зачат мидихлорианами.
Мэйс Винду: Ты намекаешь на пророчество об Избранном, который привнесет баланс в Силу. Ты веришь, что это тот мальчик?
Звёздные войны. Эпизод I. Скрытая угроза.

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

Темная сторона Силы скрывает все. Предвидеть невозможно наше будущее...


Защитил я свой красный диплом на тему беспилотной авиации и решил внедрить свой беспилотник, который я же сам и «надипломил». К тому времени я уже полтора года работал инженером-конструктором в отделе аэродинамики ОКБ (опытно-конструкторского бюро). Эх, знал бы я заранее, как быстро меня «приземлят» вместе со всеми моими амбициями и хотелками… В общем, осознал я суровую реальность и продолжил тихо работать в тряпочку.

Романтика работы рядового инженера обычно заключается в расчетах, отчетах, перерасчетах, в вечном переделывании, вплоть до потери связи с реальностью. У нас даже у начальника была забавная печать «Все *ня. Переделать!» И все бы ничего, но меня стал дико угнетать тот факт, что вот ты колдуешь-колдуешь годами, а результата-то нема! Нет четкого группового мозгового взаимодействия — половина работы, которую мы делаем, оказывается ненужной. Отсюда и вечные переработки, и выходы в выходные. Ну и как-то нет той «советской», общей идеи и желания руководства обогнать «клятые штаты». А ведь главный мотиватор в опытном проектировании — общая идея.
Читать дальше →

Пишем торговых роботов с помощью графического фреймворка StockSharp. Часть 2

Reading time15 min
Views6.4K


Мы продолжаем говорить о создании торговых роботов с помощью платформы StockSharp. В первом материале речь шла о создании проекта и отрисовке основных элементов торговой системы. В заключительном материале цикла займемся непосредственной реализацией торговой стратегии.
Читать дальше →

Как мы две недели охотились на баг NFS в ядре Linux

Reading time11 min
Views17K

Подробное описание поисков бага из задачи GitLab, которые привели к патчу для ядра Linux


14 сентября служба поддержки GitLab сообщила о критической проблеме, которая возникла у одного из наших клиентов: сначала GitLab работает нормально, а потом у пользователей возникает ошибка. Они пытались клонировать некоторые репозитории через Git, и вдруг появлялось непонятное сообщение об устаревшем файле: Stale file error. Ошибка сохранялась надолго и не давала работать, пока системный администратор вручную не запускал ls в самом каталоге.


Пришлось изучать внутренние механизмы Git и сетевой файловой системы NFS. В итоге мы нашли баг в клиенте Linux v4.0 NFS, Тронд Мюклебуст (Trond Myklebust) написал патч для ядра, и с 26 октября этот патч входит в основное ядро Linux.


В этом посте я расскажу, как мы изучали проблему, в каком направлении думали и какие инструменты использовали, чтобы отследить баг. Мы вдохновлялись отличной детективной работой Олега Дашевского, описанной в посте «Как я две недели охотился за утечкой памяти в Ruby».


Читать дальше →

Загрузчик с шифрованием для STM32

Reading time8 min
Views34K
В данной статье хотел бы написать о своем опыте создания загрузчика для STM32 с шифрованием прошивки. Я являюсь индивидуальным разработчиком, поэтому нижеприведенный код может не соответствовать каким-либо корпоративным стандартам

В процессе работы ставились следующие задачи:

  • Обеспечить обновление прошивки пользователем устройства с SD-карты.
  • Обеспечить контроль целостности прошивки и исключить запись некорректной прошивки в память контроллера.
  • Обеспечить шифрование прошивки для исключения клонирования устройства.

Код писался в Keil uVision с использованием библиотек stdperiph, fatFS и tinyAES. Подопытным микроконтроллером был STM32F103VET6, но код может быть легко адаптирован под другой контроллер STM. Контроль целостности обеспечивается алгоритмом CRC32, контрольная сумма расположена в последних 4 байтах файла с прошивкой.

В статье не описано создание проекта, подключение библиотек, инициализация периферии и прочие тривиальные этапы.
Читать дальше →

RAM-машина

Reading time4 min
Views14K

Часть I
Часть II
Часть III
Часть IV


На данном ресурсе уже была опубликована статья, посвящённая RAM-машине
Wikipedia также содержит статью об этой вычислительной модели


RAM-машина, которая упоминается в книге "Построение и анализ вычислительных алгоритмов" (авторы: Ахо, Хопкрофт, Ульман) имеет ограниченный набор арифметических команд (сложение, вычитание, умножение, деление), команду безусловного перехода, две команды условных переходов. Здесь же из арифметических команд присутствуют только сложение и вычитание, команды ветвления (переходов) будут идентичными командам, приведённым в книге


LIttle Man Computer ссылка обладает схожим набором команд
Online симулятор LMC находится здесь


Схема АЛУ представлена ниже.
Шина соединяет память данных с сумматором (обозначен плюсом), вычитателем (обозначен минусом) и мультиплексором MUX.
Переключение между сумматором и вычитателем производится мультиплексором.
Также в мультиплексор загружаются числовые данные из устройства ввода data_input (в физическом воплощении — это набор переключателей).


Флаги состояния Acc>=0 и Acc=0, а также устройство вывода подключены к выводу аккумулятора


image

Отличием LIttle Man Computer от RAM-машины является механизм, обеспечивающий косвенную адресацию (возможность работать с числом, хранящемся в памяти, как с адресом).


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


Читать дальше →

Спам звонки. Можно ли с ними бороться?

Reading time3 min
Views220K
Доброго времени суток, Хабр.


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

Еще список проектов, на чем потренироваться

Reading time3 min
Views27K
«Мастер совершает больше ошибок, чем новичок — попыток»

Прошлый список тренировочных проектов набрал 50к прочтений и 600 добавлений в избранное. Вот еще один список интересных проектов для практики, для тех кто хочет добавки.

1. Текстовый редактор


image

Цель текстового редактора — уменьшить усилия пользователей, пытающихся преобразовать их форматирование как валидную разметку HTML. Хороший текстовый редактор позволяет пользователям форматировать текст по-разному.

В какой-то момент каждый использовал текстовый редактор. Так почему бы не создать его самостоятельно?
Читать дальше →

8 учебных проектов

Reading time3 min
Views150K
«Мастер совершает больше ошибок, чем новичок — попыток»

Предлагаем 8 вариантов проектов, которые можно сделать «по фану», дабы получить реальный опыт разработки.

Проект 1. Клон Trello


image


Клон Trello от Indrek Lasn .

Что вы освоите:

  • Организация маршрутов обработки запросов (Routing).
  • Drag and drop.
  • Как создавать новые объекты (доски, списки, карточки).
  • Обработка и проверка входных данных.
  • Со стороны клиента: как использовать локальное хранилище, как сохранять данные в локальном хранилище, как читать данные из локального хранилища.
  • Со стороны сервера: как использовать базы данных, как сохранять данных в базе, как читать данные из базы.

Тут пример репозитория, сделанного на React+Redux.
Читать дальше →

Russian AI Cup 2018: CodeBall. Зрелищное 3D соревнование

Reading time5 min
Views24K


С 2012 года ежегодно проводится соревнование Russian AI Cup по написанию искусственного интеллекта и ботов, которые ожесточенно сражаются в виртуальном мире вместо своих владельцев. За все прошлые чемпионаты на платформе зарегистрировалось более 20 000 пользователей, которые прислали нам более 150 000 различных решений. Каждый новый чемпионат — это новая игровая задача со своими правилами, законами и механикой. Стараемся постоянно вносить новые идеи и фичи, чтобы игры из года в год становились еще более интересными и зрелищными, развивая наш мотор под капотом проекта и делая всё во славу нашего сообщества.

Этот год не стал исключением. Mail.Ru Group в сотрудничестве с Codeforces.com официально объявляют о датах чемпионата Russian AI Cup 2018 под названием CodeBall.

Итак, поехали!
Читать дальше →

Четыре ступени развития инженера

Reading time3 min
Views15K
Боюсь использовать слишком сильное обобщение, но в любом случае это относится и к некоторым другим областям знания. Хороший пример — вождение автомобиля. Если вы сопоставите описанные этапы с развитием навыков вождения, то увидите хорошую корреляцию.

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

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

1. Первая ступень. Начальный этап


Это самое начало. Мало знает, мало умеет. Все дается с трудом.
Нет уверенности, нет понимания.

Все начинают с этого, и это самая понятная ступень.

Для преодоления этого этапа требуется настойчивость, систематическое изучение технической документации, много практики…
Читать дальше →

Google держит вас в персональном «поисковом пузыре» даже если выйти из аккаунта

Reading time3 min
Views64K


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

Парни из DuckDuckGo в своем исследовании утверждают, что даже при выходе из аккаунта и переходе в анонимный режим, Google продолжает подстраивать поисковую выдачу согласно ранее собранной о пользователе информации. То есть компания не оставляет человеку выбора и все равно манипулирует поиском, даже если действия пользователя явно говорят о том, что он хочет получить «нейтральный» результат.
Читать дальше →

Как прокачать свою карьеру через GitHub

Reading time4 min
Views12K
GitHub – крупнейшая библиотека, созданная разработчиками для разработчиков. Главная прелесть хостинга в его идеологии: отдавать также легко, как и получать. Здесь можно найти самые разные IT-проекты как легальные, так и не совсем. Пользуясь открытостью, кто-то роется в исходниках в корыстных целях – чтобы потом использовать их уязвимости для банального шантажа, а кто-то с помощью репозиториев прокачивает свои профессиональные скилы. Давайте разберемся, как не закопаться в миллионах источников и какие перки можно заполучить.

То, что знания не принадлежат лишь узкому кругу избранных, уже признают и транснациональные корпорации. На основе одного исходного кода вырастает несколько новых – так и развиваются технологии, которыми в итоге начинает пользоваться весь мир. Такие гиганты, как Apple, Google, Facebook, Microsoft – разместили и продолжают постоянно обновлять свои репозитории на GitHub. Да что уж, если даже Министерство обороны США заводит хранилище на хостинге https://github.com/Code-dot-mil/code.mil с лозунгом «Помогите нам стать лучше». И каждое новое предложенное полезное решение – это очередной выученный урок в карьере разработчика.

Формат open-source проектов хорош тем, что позволяет участникам общаться также, как мы делаем это в социальных сетях. Помните про принцип соревновательности! К примеру, некто постит вариант реализации идеи. Другие участники, на интересе, либо желая покуражиться предлагают хаки. В итоге – сообщество плюсует авторам лучших решений.

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

Читать дальше →

Как облегчить изучение английского: 5 полезных сервисов

Reading time2 min
Views22K


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

Три вида утечек памяти

Reading time7 min
Views13K
Здравствуйте, коллеги.

Наши долгие поиски неустаревающих бестселлеров по оптимизации кода пока дают лишь первые результаты, но мы готовы вас порадовать, что буквально только что закончен перевод легендарной книги Бена Уотсона "Writing High Performance .NET Code". В магазинах — ориентировочно в апреле, следите за рекламой.

А сегодня предлагаем вам почитать сугубо практическую статью о наиболее насущных видах утечек оперативной памяти, которую написал Нельсон Ильхейдж (Nelson Elhage) из компании Stripe.
Читать дальше →

Невызванная функция замедляет программу в 5 раз

Reading time5 min
Views42K
Замедляем Windows, часть 3: завершение процессов



Автор занимается оптимизацией производительности Chrome в компании Google — прим. пер.

Летом 2017 года я боролся с проблемой производительности Windows. Завершение процессов происходило медленно, сериализованно и блокировало системную очередь ввода, что приводило к многократным подвисаниям курсора мыши при сборке Chrome. Основная причина заключалась в том, что при завершении процессов Windows тратила много времени на поиск объектов GDI, удерживая при этом критическую секцию system-global user32. Я рассказывал об этом в статье «24-ядерный процессор, а я не могу сдвинуть курсор».

Microsoft исправила баг, и я вернулся к своим делам, но потом оказалось, что баг вернулся. Появились жалобы на медленную работу тестов LLVM, с частыми подвисаниями ввода.

Но на самом деле баг не вернулся. Причина оказалась в изменении нашего кода.
Читать дальше →

Путь к бесконтактному детектору лжи, или Как устроить себе хакатон на максималках

Reading time4 min
Views6.3K

image


Когда-то Стив Джобс и Стив Возняк закрылись в гараже и выкатили первый Mac. Было бы классно, если всегда можно было закрыть программистов в гараже и получить MVP с большим потенциалом. Однако, если добавить к программистам пару людей, готовых оценивать пользовательский опыт и искать что-то инновационное, то шансы на успех растут.


У нашей команды из 5 человек появилась определённая идея, ради которой мы решили слегка захватить мир похакатонить.

Читать дальше →

Information

Rating
Does not participate
Registered
Activity