Pull to refresh

Что делает Google на рынке финансовых технологий?

Reading time6 min
Views8.2K
imageПо мере того как финансовые технологии распространяются в новые индустрии, информационно-технологические компании начинают понимать, что им уже сейчас пора вступать в игру дабы полноценно воспользоваться плодами инноваций и сохранить конкурентоспособность. Что и говорить, технологические компании напрямую заинтересованы в финтех-разработках, позволяющих им значительно сократить затраты и оптимизировать операционную деятельность. И если вступление в игру традиционных игроков финансовой индустрии вполне ожидаемо, то большие технологические компании, напротив, не стремятся афишировать свои «интрижки» на финтех-рынке.

Мы уже знаем об одной темной лошадке на рынке — Microsoft — и широком спектре ее финтех-инициатив, а также о значительном продвижении компании в работе с blockchain. Но есть еще один хороший пример — Google, хоть он и не столь активен в blockchain сфере. Нам в Wirex, финтех стартапе, предоставляющем услуги платежей и денежных переводов без банковского посредничества, представленный в этой статье список проинвестированных Google компаний кажется очень интересным и достойным внимания. Так что добро пожаловать под кат. Пост подготовлен по материалам LTP, ознакомившись с ним вы увидите, что уже совсем скоро банки могут столкнуться с открытой и жесткой конкуренцией со стороны множества других игроков.
Читать дальше →
Total votes 9: ↑8 and ↓1+7
Comments6

Поиски фундаментальных данных для акций через API Financial Modeling Prep

Reading time127 min
Views9.7K
Недавно мне понадобилось обработать экономические показатели для нескольких тысяч американских акций.

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

В качестве поставщика данных использовался сервис FinancialModelingPrep, который в 2019 году был бесплатен, но в 2020 году уже нет.



В статье разбираюсь в нюансах формирования запросов к базе данных сервиса. А ещё исследую глубину доступных финансовых отчетов компаний за прошлые годы.
API Financial Modeling Prep
Total votes 4: ↑4 and ↓0+4
Comments6

В продуктах GeoVision больше полугода сохраняются критические уязвимости

Reading time6 min
Views1.6K
Привет, Хабр! Сегодня мы хотим поговорить об уязвимостях, которые встречаются в системах безопасности. Поводом для этого поста стали проблемы с ПО в продуктах GeoVision, которые позволяют получить полный контроль над устройствами… безопасности! В этом посте мы разбираем, какие продукты подвержены атакам, а также какие версии прошивок по-прежнему оставляют открытыми обнаруженные эксплойты. Если вы используете сканеры отпечатков пальцев или камеры видеонаблюдения этого производителя, либо просто интересуетесь, какие уязвимости GeoVision не может закрыть с августа 2019 года, просим под кат.

image
Читать дальше →
Total votes 14: ↑14 and ↓0+14
Comments2

Почему LLVM может вызвать никогда не вызываемую функцию?

Reading time14 min
Views18K
Что бы ни сказал тебе твой дракон, он солгал. Драконы лживы. Ты не знаешь, что ждет тебя на другой стороне.
Майкл Суэнвик. «Дочь железного дракона»

Не так давно на Хабре был опубликован пост под названием "Как может вызваться никогда не вызываемая функция?". Выводы из статьи простые: в случае undefined behaviour компилятор вправе предпринимать любые действия, даже если они будут совершенно неожиданными. Однако меня заинтересовал сам механизм этой оптимизации. Результатом своего небольшого исследования я хочу поделиться с уважаемым сообществом хабра.


Читать дальше →
Total votes 88: ↑86 and ↓2+84
Comments21

Язык программирования J. За что любить?

Reading time13 min
Views93K
image
J – самый ненормальный и самый эффективный язык из известных мне языков. Он позволяет быстро разрабатывать, а также вызывать ненормативную лексику у людей, незнакомых с ним и смотрящих на код.

J слишком необычный. И сложный для изучения. У людей, сталкивающихся с J не хватает мотивации, чтобы его изучить. Синтаксис непривычный.
В этом посте я хотел помочь вам заглянуть дальше, что будет, если вы его изучите и чем он интересен. По своему опыту знаю, что преимущества этого языка сразу не очевидны. В посте я не собираюсь останавливаться на разборе конструкций. Только в обзоре. Предлагаю просто окунуться в примеры, попробовать ощутить мощь языка. Узнать, чем прекрасен язык, без изучения. Писать статьи, обучающие программированию на нем – дело сложное и думаю, не нужное. Он не так прост, чтобы это сделать кратко, а с обучающими материалами на официальном сайте нет никаких проблем. Главное – желание. Им и займемся.
Читать дальше →
Total votes 98: ↑86 and ↓12+74
Comments130

Бюджетные RTX 4060 Ti и RX 7600 не получат расширения и будут оснащаться максимум 8 Gb VRAM

Reading time2 min
Views2.6K


По информации инсайдеров, грядущие бюджетные видеокарты производства NVIDIA RTX 4060 Ti и AMD RX 7600 получат максимум 8 Gb видеопамяти, сообщает профильный ресурс Videocardz.

Такой памятью будет оснащаться продукция Gigabyte, как в случае с NVIDIA, так и в случае карт от AMD.
Читать дальше →
Total votes 9: ↑9 and ↓0+9
Comments7

Углубляясь в Graphics2D

Reading time32 min
Views76K
Добрый день, Хабражители!

Сегодня я опять постараюсь привлечь Ваше внимание к некоторым сторонам и тонкостям работы с графикой в Java. Я уже кратко описал в предыдущей статье некоторые доступные средства и способы создания компонентов и UI, но это лишь вершина айсберга. Именно поэтому я хочу уделить отдельное внимание (и статью) именно работе с графикой. Естественно имеется в виду Graphics2D – Java 3D это большая отдельная тема (возможно о ней еще пойдет речь в дальнейшем, но не сегодня).

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

Начнем с того, что если рассматривать любой компонент с точки зрения MVC – он состоит из 3ех частей:
Model – модель, которая хранит в себе данные о состоянии компонента и на основе которой строится внешний вид
View – непосредственно визуальное отображения компонента
Controller – отвечает за управление компонентом (события от клавиатуры, мыши и прочих устройств ввода)

Фактически, все стандартные компоненты Swing построены по паттерну MVC. К примеру в JButton — ButtonModel отвечает за поведение и состояние кнопки (Controller и Model), а ButtonUI в свою очередь за внешнее её представление (View). В итоге на долю самого класс JButton практически ничего не остаётся. Речь пойдет по большей части о реализации внешнего представления компонентов (View), и если уточнять — о Graphics2D, на основе которого, фактически, рисуется весь интерфейс.

Не буду спорить, что на данную тему есть множество различного материала, но он настолько раздроблен и раскидан по просторам сети, что мне кажется не лишним собрать всё в одном месте и последовательно изложить.

Читать далее...
Total votes 82: ↑78 and ↓4+74
Comments71

Как создать простую Tower Defense игру на Unity3D, часть первая

Reading time16 min
Views126K
Здравствуйте! Давно уже хотел опубликовать эту статью, да не успевал выделить время. Заранее хотел бы предупредить, что статья рассчитана на не шибко знающего Unity3D пользователя, потому в тексте будет обилие пояснений.

Часть вторая

Всем заинтересовавшимся — добро пожаловать под кат!
Читать дальше →
Total votes 81: ↑73 and ↓8+65
Comments45

Параллелизм в алгоритмах — выявле́ние и рациональное его использование. Возможности компьютерного моделирования

Level of difficultyMedium
Reading time41 min
Views5.2K

С тех пор как мир возник во мгле

Нет ничего на свете более интересного лично для

Исследователя и одновременно полезного для

Человечества, чем позна́ние окружающего Мира.

Валерий Баканов. Крым, Щёлкино/Казантип, август 2022.

Данная публикация предназначена для Исследователей, которым не жаль с пользой употребить своё время для практического количественного углу́бленного  понимания свойств внутреннего (скрытого) параллелизма в алгоритмах и его, на́йденного параллелизма, рационального использования в вычислительных практиках. Рациональное использование имеющегося в алгоритмах параллелизма определяется набором приёмов, позволяющих получить наиболее приемлемый (по разумным параметрам) план (расписание) выполнения рассматриваемого алгоритма (программы) на заданном поле параллельных вычислителей. Т.к. конечная (реализуемая в процессе собственно вычислений) последовательность выполнения команд неминуемо я́вится всё же несколько иной относительно разработанного на данном этап ие плана вычислений, логично назвать результат данного анализа каркасом плана (расписания) параллельных вычислений.

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

Ряд лет интересом пользовалось изучение параметров вычислительной трудоёмкости (фактически зависимости числа вычислительных операций от размерности обрабатываемых данных) для различных алгоритмов. Параметры параллелизма в алгоритмах – очередная сторона многогранной  сущности “алгоритм”.  В современной ситуации отечественным разработчикам придётся самостоятельно исследовать и решать все связанные с автоматизированной обработкой данных вопросы – время “неограниченной халявы” (когда можно было десятилетиями бездумно копировать западные разработки в области архитектуры и готовых решений аппаратной и программной частей) закончилось.

Ещё никто на всей земле

Не предава́лся сожаленью

О том, что о́тдал жизнь ученью.

Абу Абдалла́х Рудаки́, Бухара, около 860÷941.

 

Читать далее...
Total votes 3: ↑3 and ↓0+3
Comments11

Теория игр: принятие решений с примерами на Kotlin

Reading time18 min
Views35K
Теория игр — математическая дисциплина, рассматривающая моделирование действий игроков, которые имеют цель, заключающуюся в выбор оптимальных стратегий поведения в условиях конфликта. На Хабре эта тема уже освещалась, но сегодня мы поговорим о некоторых ее аспектах подробнее и рассмотрим примеры на Kotlin.
Читать дальше →
Total votes 22: ↑21 and ↓1+20
Comments4

Процедурная генерация планов помещений

Reading time7 min
Views72K

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

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

В этой статье я расскажу о том, как я реализовал на Unity3d один простой метод генерации, который приводит к хорошим результатам и легко модифицируется. С картинками и исходниками.
Читать дальше →
Total votes 99: ↑97 and ↓2+95
Comments29

Why LLVM may call a never called function?

Reading time11 min
Views6.7K
I don’t care what your dragon’s said, it’s a lie. Dragons lie. You don’t know what’s waiting for you on the other side.

Michael Swanwick, The Iron Dragon’s Daughter
This article is based on the post in the Krister Walfridsson’s blog, “Why undefined behavior may call a never called function?”.

The article draws a simple conclusion: undefined behavior in a compiler can do anything, even something absolutely unexpected. In this article, I examine the internal mechanism of this optimization works.
Read more →
Total votes 8: ↑7 and ↓1+6
Comments0

Автоматизируем покупку Ж/Д билетов Укрзалізниці

Reading time9 min
Views50K

Привет! Наверное, каждый из нас когда-то сталкивался с ситуацией, когда нужно срочно куда-то уехать, но все Ж/Д билеты уже раскуплены. В этой статье я расскажу о том, как я писал Telegram бота для отслеживания и покупки освободившихся билетов Укрзалізниці.


Как это работает


Для покупки железнодорожных билетов в Украине компания Укрзалізниця запустила ресурс http://booking.uz.gov.ua/. Ресурс удобен тем, что не нужно посещать кассы, чтобы забрать сам билет. Достаточно показать проводнику QR код с посадочного талона на экране смартфона либо распечатав на принтере.


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


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


В качестве интерфейса был выбран Telegram так как это новая платформа для меня и я хотел с ней немного разобраться. В качестве бонуса сразу получаем уведомления на мобильный, не задумываясь о push нотификациях или email'ах.
В качестве языка программирования был выбран Python.

Читать дальше →
Total votes 43: ↑34 and ↓9+25
Comments50

Генерирование паролей к играм Road Rash 1 и 2

Reading time7 min
Views13K
Недавно я увидел на Хабрахабре пост про Road Rash и мне стало интересно: «А как устроена система паролей в двух других частях?». Своими наблюдениями и результатом я хотел бы поделиться с вами в этой статье.

image

Первый Road Rash


Теория

Пароль состоит из 20 позиций, каждая позиция состоит из 5 битов, итого 20*5= 100 битов. Эти биты сохраняют данные игровые параметры:
  • номер занятого места (0-15) на пяти разных трассах (0 означает, что на этой трассе ты ещё не ездил).
  • количество очков (0-10485750)
  • количество денег ((-83886070)-83886070)
  • текущий уровень (1-5)
  • мотоцикл (1-8)

Теперь посмотрим из чего состоит сырой пароль:
Читать дальше →
Total votes 28: ↑27 and ↓1+26
Comments14

Про Vim " Миграция на Neovim (Lua)

Level of difficultyEasy
Reading time9 min
Views10K

Теоретически если вы решили пересесть с классического Vim на более современный его клон - Neovim - вам делать ничего особенного не надо. В файле ~/.config/nvim/init.vim прописать source ~/.vimrc ну и скачать или скопировать словари. Идея в том, что Neovim должен поддерживать все конфигурации Vim по умолчанию. Однако, если у вас установлено множество плагинов и разных к ним расширений, то с высокой вероятностью конфигурация загрузится с ошибками, предупреждениями и другими, не очень желательными нюансами. Да и вообще вся фишка, вся разница Neovim заключается в том, что он поддерживает настройки и плагины написанные на Lua вместо vimscript.

Lua - более современный интерпретируемый язык, на нем удобнее писать, его проще читать. А еще, считается, что работает интерпретатор на порядок быстрее родного языка. На счет порядка я бы засомневался, но действительно тяжелые плагины работают вроде как расторопнее и глаже. Впрочем и классический Vim известен не тем, что он медленный или глючный, так что тут спор скорее софистический. А вот с первыми тремя утверждениями я абсолютно согласен.

Более того для Neovim именно на Lua в последнее время выбор современных плагинов и расширений, что уж тут говорить, куда богаче. Вопрос даже не в том лучше ли эти аналоги, а в скорее в свежести, динамике развития и в целом в оптимизме сообщества. Очень похоже на то, что не сегодня так завтра Neovim повторит судьбу предшественника и займет свое место в распространенных дистрибутивах Linux в качестве стандартной замены устаревшему Vim. Заменит полностью? Ну, я бы не был так категоричен в этом вопросе, но вероятность такая существует.

Читать далее
Total votes 18: ↑17 and ↓1+16
Comments7

Как создать простую Tower Defense игру на Unity3D, часть вторая

Reading time9 min
Views70K
Здравствуйте! Весьма надолго у меня растянулась подготовка материала (жизнь давала изрядных пинков под зад), но вот я справился и готов поделиться продолжением первой статьи с вами.

Часть первая


Неудачный тест физики

В этой части мы:
— оптимизируем код из предыдущей статьи;
— создадим объект «база» и научим её чиниться время от времени;
— добавим пушкам патроны и перезарядку;
— избавимся от «неудобной» переменной gv;

А в конце статьи вас ожидает маленький бонус :)

Всем заинтересовавшимся — добро пожаловать под долгожданный кат!
Читать дальше →
Total votes 59: ↑49 and ↓10+39
Comments41

Стажировка в JetBrains и как мне почти удалось попасть на неё

Reading time11 min
Views43K
image

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

Недавно я попробовал попасть в ряды JetBrains и под катом готов поделиться полученным опытом.
Читать дальше →
Total votes 51: ↑34 and ↓17+17
Comments78

Есть ли параллелизм в произвольном алгоритме и как его использовать лучшим образом

Reading time15 min
Views6.6K

Параллелизации обработки данных в настоящее время применяется в основном для сокращения времени вычислений путем одновременной  обработки данных по частям на множестве различных вычислительных устройств с последующим объединением полученных результатов. Параллельное выполнение позволяет “обойти” сформулированный лордом Рэлеем в 1871 г. фундаментальный закон, согласно которому (в применимости к тепловыделению процессоров) мощность их тепловыделения пропорциональна четвертой степени тактовой частоты процессора (увеличение частоты вдвое повышает тепловыделение в 16 раз) и фактически заменить его линейным от числа параллельных вычислителей – при сохранении тактовой  частоты). Ничто не дается даром – задача выявления (обычно скрытого для непосвящённого наблюдателя, [1]) потенциала параллелизма в алгоритмах не является "лежащей на поверхности", а уж эффективность его (параллелизма) использования – тем более.

Далее читать
Total votes 14: ↑13 and ↓1+12
Comments38

WIKIзуализируй то, WIKIзуализируй это!

Reading time4 min
Views1.6K
Добрый вечер Дорогие друзья!

Недавно, прогуливаясь по просторам бескрайнего интернета, я наткнулся на изумительные работы Криса Харрисона, посидев немного в шоке, я подумал «А сложно ли визуализировать википедию или нет?» и решил попробовать!

image

Итак, приступим!
Читать дальше →
Total votes 54: ↑49 and ↓5+44
Comments36

Устройство GV2-B и возможности его применения

Reading time4 min
Views10K
Заказал недавно на одном из китайских ресурсов вот такое устройство, с непретенциозным названием GV-2B.

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

Я колебался с выбором между GV-3 на Cortex A9 с Mali400MP (на Amlogic 8726-M) аналогичного GV-2B форм-фактора, и стиком (размером не многим более USB флешки) тоже на Cortex A9, целиком построенный на reference board от Renesas. Недостатком последнего является уменьшенное количество разьёмов подключения (есть HDMI, 1xUSB и 1xmicroSD). Изначально я планировал взять Raspberry Pi, уже был заказан корпус, USB хаб, WiFi и Bluetooth затычки, блок питания, но выяснилось, что в Россию Raspberry эксклюзивно не поставляется. Добрые ребята из ModMyPi, продающие корпуса к нему пообещали заказать несколько штук и отправлять в РФ вместе с заказом корпусов, но пока тишина.
Наверное, стоило взять GV-3, но, судя по обзорам, Rockchip 2918 не сильно отстаёт, а местами и быстрее Amlogic 8726-M при прочих равных.

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

Расскажу немного и о самом устройстве, и о том, на чём оно сделано, и как я планирую его использовать.
Читать дальше →
Total votes 34: ↑31 and ↓3+28
Comments54