Тема автоматизированных систем для торговли на бирже довольно популярна в рунете в последние несколько лет. Однако начинающим инвесторам создать своего торгового робота может быть нелегко. Сегодня мы расскажем о том, как это можно сделать без лишних затрат. Читать полностью »
Рубрика «Программирование» - 204
Как написать торгового робота: инструменты для начинающих
2019-10-05 в 13:11, admin, рубрики: биржа, Блог компании ITI Capital, Программирование, разработка, торговые роботы, финансы, финансы в ITГрокаем DLR
2019-10-04 в 15:30, admin, рубрики: .net, .net core, C#, DLR, dynamic programming, IPC, visual basic, ПрограммированиеПредисловие переводчика
Это скорее вольный пересказ, а не перевод. Я включил в эту статью только те части оригинала, которые имеют непосредственное отношение к внутренним механизмам работы DLR или объясняют важные идеи. Примечания будут заключены в квадратные скобки
Многие .NET разработчики слышали про Dynamic Language Runtime (DLR), но почти ничего о нем не знают. Разработчики, пишущие на языках типа C# или Visual Basic, избегают языков с динамической типизацией из-за боязни исторически связанных с ними проблем с масштабируемостью. Также их беспокоит тот факт, что языки типа Python или Ruby не выполняют проверку типов во время компиляции, что может привести к сложным для поиска и исправления ошибкам в рантайме. Это обоснованные опасения, которые могут объяснить, почему DLR не пользуется популярностью среди основной массы .NET разработчиков даже спустя два года после официального релиза [статья довольно старая, но с тех пор ничего не изменилось]. В конце концов, любой .NET Runtime, содержащий в себе слова Dynamic и Language в своем названии, должен предназначаться строго для поддержки таких языков, как Python, правильно?
Притормозите. В то время как DLR действительно была задумана для поддержки «Iron» реализации Python и Ruby в .NET Framework, её архитектура предоставляет гораздо более глубокие абстракции.
Неизменяемых коллекций в Java не будет – ни сейчас, ни когда-либо
2019-10-04 в 12:43, admin, рубрики: guava, java, Блог компании Издательский дом «Питер», наследование, ооп, Программирование, Профессиональная литература, структуры данных, чистый кодВсем привет!
Сегодня вашему вниманию предлагается перевод вдумчиво написанной статьи об одной из базовых проблем Java — изменяемости, и о том, как она сказывается на устройстве структур данных и на работе с ними. Материал взят из блога Николая Парлога (Nicolai Parlog), чей блестящий литературный стиль мы очень постарались сохранить в переводе. Самого Николая замечательно характеризует отрывок из блога компании JUG.ru на Хабре; позволим себе привести здесь этот отрывок целиком:
Николай Парлог — такой масс-медиа чувак, который делает обзоры на фичи Java. Но он при этом не из Oracle, поэтому обзоры получаются удивительно откровенными и понятными. Иногда после них кого-то увольняют, но редко. Николай будет рассказывать про будущее Java, что будет в новой версии. У него хорошо получается рассказывать про тренды и вообще про большой мир. Он очень начитанный и эрудированный товарищ. Даже простые доклады приятно слушать, всё время узнаёшь что-то новое. При этом Николай знает за пределами того, что рассказывает. То есть можно приходить на любой доклад и просто наслаждаться, даже если это вообще не ваша тема. Он преподаёт. Написал «The Java Module System» для издательства Manning, ведёт блоги о разработке ПО на codefx.org, давно участвует в нескольких опенсорсных проектах. Прямо на конференции его можно нанять, он фрилансер. Правда, очень дорогой фрилансер. Вот доклад.
Читаем и голосуем. Кому пост особенно понравится — рекомендуем также посмотреть комментарии читателей к оригиналу поста.
Инициализация в современном C++
2019-10-04 в 10:20, admin, рубрики: c++, C++ Russia, c++ russia 2019, c++ russia 2019 piter, Программирование
Общеизвестно, что семантика инициализации — одна из наиболее сложных частей C++. Существует множество видов инициализации, описываемых разным синтаксисом, и все они взаимодействуют сложным и вызывающим вопросы способом. C++11 принес концепцию «универсальной инициализации». К сожалению, она привнесла еще более сложные правила, и в свою очередь, их перекрыли в C++14, C++17 и снова поменяют в C++20.
Под катом — видео и перевод доклада Тимура Домлера (Timur Doumler) с конференции C++ Russia. Тимур вначале подводит исторические итоги эволюции инициализации в С++, дает системный обзор текущего варианта правила инициализации, типичных проблем и сюрпризов, объясняет, как использовать все эти правила эффективно, и, наконец, рассказывает о свежих предложениях в стандарт, которые могут сделать семантику инициализации C++20 немного более удобной. Далее повествование — от его лица.
Regular Avalonia
2019-10-04 в 9:53, admin, рубрики: .net, avalonia, avaloniaui, C#, Программирование, Разработка под Linux, разработка под windowsSometimes we don’t understand how the regular expression that we have composed works and want to check. There are many applications like regex101.com or vs code. I wanted to add one more to this list.
In this article we will see how you can wrap Regex in cross-platform graphics and create a simple application for testing regular expressions.
Только не говорите, что вы таким не были или мой взгляд на обучение
2019-10-04 в 8:25, admin, рубрики: php, обучение, Программирование, Учебный процесс в ITВсем привет. Я хотел бы рассказать свое мнение по поводу современного обучения программированию. В статье речь пойдет про PHP, немного про фреймворки и немного про велосипеды. Но я думаю, что к любому языку программирования это применимо. Начнем.
Помните свой первый код на PHP?
Нет, не этот:
<?
echo "Hello world"; // и в браузере у нас скачивается index.php :)
?>
А вот этот:
<?
include "db.php";
if ($_GET['id'] > 0){
mysql_query("SELECT * FROM `posts` WHERE id = {$_GET['id']}");
}else{
mysql_query("SELECT * FROM `posts` ORDER BY `id` DESC");
}
?>
Преподавателям на заметку: PVS-Studio для знакомства студентов с инструментами анализа кода
2019-10-04 в 7:12, admin, рубрики: C, c++, codereview, csharp, devops, education, java, programming, pvs-studio, SAST, static code analysis, static code analyzer, tool, Блог компании PVS-Studio, информационные технологии, обучение, обучение программированию, Программирование, Си, Совершенный код, статический анализ кода, статический анализатор кода, Учебный процесс в ITПо общению в поддержке и некоторым другим косвенным признакам мы заметили, что среди наших бесплатных пользователей стало много студентов. Причина: анализатор PVS-Studio начал использоваться некоторыми преподавателями в рамках дисциплин, связанных с разработкой программного обеспечения. Нам это очень приятно, и мы решили написать эту небольшую заметку, чтобы привлечь внимание и других преподавателей. Мы рады, что студенты знакомятся с методологией статического анализа кода в целом и инструментом PVS-Studio в частности. Наша команда постарается внести вклад в развитие этой тенденции.
Читать полностью »
For professors’ note: use PVS-Studio to get students familiar with code analysis tools
2019-10-04 в 6:59, admin, рубрики: C, c++, codereview, csharp, devops, education, java, programming, pvs-studio, SAST, static code analysis, static code analyzer, tool, Блог компании PVS-Studio, Программирование, Совершенный код, Учебный процесс в ITOur support chats and some other indirect signs showed that there are many students among our free users. Here's the reason: PVS-Studio is now more often used by professors in courses related to software development. We are very pleased with this, and we decided to write this small article to fall under notice of other teachers. We are pleased that students become acquainted with the methodology of static code analysis in general and the PVS-Studio tool in particular. Our team will try to contribute to this trend.
Читать полностью »
Структуры данных для программистов игр: bulk data
2019-10-04 в 4:23, admin, рубрики: bulk data, C, c++, виртуальная память, Клиентская оптимизация, массивы, массивы структур, Программирование, разработка игр, структуры данных, структуры массивов, указателиЛюбому программисту будет полезно понимание различных структур данных и способов анализа их производительности. Но на практике мне ни разу не пригождались АВЛ-деревья, красно-чёрные деревья, префиксные деревья, списки с пропусками, и т.д. Некоторые структуры данных я использую только для одного конкретного алгоритма и ни для чего больше (например, кучи для реализации очереди с приоритетом в алгоритме поиска пути A*).
В повседневной работе я обычно обхожусь на удивление малым количеством структур данных. Чаще всего мне пригождаются:
- Общие массивы данных (Bulk data) — способ эффективного хранения большого количества объектов.
- Слабые ссылки (Weak reference) (или дескрипторы (handle)) — способ обращения к объектам в bulk data без сбоев программы в случае, если объект удалён.
- Индексы — способ быстрого доступа к отдельным подмножествам в bulk data.
- Массивы массивов — способ хранения объектов bulk data с динамическими размерами.
Я посвящу несколько статей тому, как я обычно реализую все эти структуры. Давайте начнём с простейшей и самой полезной — bulk data.Читать полностью »
Бредогенератор: создаем тексты на любом языке с помощью нейронной сети
2019-10-03 в 21:35, admin, рубрики: keras, python, машинное обучение, Научно-популярное, нейросети, ненормальное программирование, обработка текста, ПрограммированиеПривет.
Эта статья будет в немного «пятничном» формате, сегодня мы займемся NLP. Не тем NLP, про который продают книжки в подземных переходах, а тем, который Natural Language Processing — обработка естественных языков. В качестве примера такой обработки будет использоваться генерация текста с помощью нейронной сети. Создавать тексты мы сможем на любом языке, от русского или английского, до С++. Результаты получаются весьма интересными, по картинке уже наверно можно догадаться.
Для тех, кому интересно что получается, результаты и исходники под катом.
Читать полностью »