Привет! В одной из прошлых своих статей я уже писал про API для работы с SMS-сообщениями от компании МТТ (входит в экосистему МТС). На этом можно было бы и остановиться, если бы не одно «но». Не так давно вышла в свет платформа МТС Exolve за авторством всё той же компании МТТ. Методы для работы с SMS у MTT Telecom API и MTC Exolve очень похожи, за исключением одного: чтобы «покрутить в руках» MTC Exolve, не нужно заключать договор.
Рубрика «Программирование» - 60
«Наташ, вставай!» или как научить GitHub присылать вам SMS
2023-06-01 в 9:00, admin, рубрики: api, exolve, github, sms, Блог компании МТС, МТС, Программирование, сотовая связьКуда подевались все хакеры? Как правильно обсуждать языки программирования
2023-05-31 в 13:00, admin, рубрики: ruvds_перевод, Блог компании RUVDS.com, Программирование, стартапы, технологический стек, управление проектами, управление проектами и командой, управление разработкой, языки программирования
Обсуждая с друзьями и коллегами языки программирования, я осознал, как приблизительно должны выглядеть такие разговоры. В этой статье я расскажу об этом, надеюсь, это окажется для вас полезным.
▍ Что мы на самом деле сравниваем, сравнивая языки программирования?
Придя в гости к другу, я увидел, что на нём надета футболка Golang. Он сказал, что любит Golang, я ответил, что мне нравится футболка, а сам язык чуть меньше. Ему понравилась мысль «обсудить это позже», и после ужина мы уселись на диванах и приступили к разговору. Я хотел поговорить о сборщике мусора (1, 2), о том, что горутины/каналы — это удобная абстракция, но я предпочитаю абстракции BEAM, потому что они позволяют использовать супервайзоры, обсудить очень свободное отношение Golang к корректности, но… он не горел желанием говорить обо всём этом. Мой друг с восторгом рассказывал о том, что ему нравится, что «разработчики на Go знают, что достаточно одного цикла for. Кто-то притащил в мою компанию Scala, и мне очень не нравится смена образа мышления».
Разговор был бесплодным, и мы оба ощущали, что собеседник не ценит то, что было важно другому. Когда люди говорят о языках, которые им нравятся или не нравятся, я группирую аспекты обсуждения на три большие категории, которые назову почва, поверхность и атмосфера:
Читать полностью »
Reciprocal throughput
2023-05-30 в 6:11, admin, рубрики: .net, C#, c#.net, optimization, performance, performance optimization, Блог компании Контур, высокая производительность, ПрограммированиеВ предыдущих сериях
ThreadPool. async/await #dotnet #threadpool #il_code
yield return #dotnet #il-code
Пародия на замыкания #dotnet #methods #gc
ThreadPool.Intro #dotnet #threadpool
Инструменты анализа эффективности работы приложения. PerfView #performance_analysis #trace #perfview
Сказка про Method as Parameter #dotnet #methods #gc
Lua: маленький язык, который смог
2023-05-29 в 19:27, admin, рубрики: Lua, redis, для души, для начинающих, изучение языков, Программирование, разработка, Софт, языки программированияLua — это, пожалуй, мой любимый "маленький язык", с низкой когнитивной нагрузкой и простотой в изучении и использовании. Он встроен во многое ПО, такое как Redis, NGINX через OpenResty и Wireshark (прим. перевод.: и многие другие). Он также используется в качестве скриптового языка в таких играх, как World of Warcraft и Roblox через Luau (прим. перевод.: Читать полностью »
Итоги двадцати лет работы — технический долг и неподдерживаемый код
2023-05-29 в 13:00, admin, рубрики: ruvds_перевод, Блог компании RUVDS.com, Карьера в IT-индустрии, Программирование, технический долг, технологический стек, управление разработкой, устаревание, устаревшие технологии
Технический долг — один из самых популярных сегодня терминов. Люди говорят: «Мы быстро развиваем свой MVP, минимизируя технический долг!» Они говорят о техническом долге, чтобы звучать круто или выделиться.
А я просто смеюсь, ведь всё рано или поздно превращается в технический долг.
Вся моя карьера теперь стала техническим долгом или кодом, который перестали поддерживать.
И если вы не верите, что вся ваша карьера — это технический долг, то, возможно, поймёте это после прочтения статьи. Я расскажу о том, что изменилось за мою двадцатилетнюю карьеру.
Читать полностью »
Я написал одну из самых быстрых библиотек датафреймов
2023-05-26 в 14:01, admin, рубрики: CockroachDB, Decode, DuckDB, execute, fetch, Groupby, mysql, postgresql, python, Rust, simd, timeweb_статьи_перевод, Блог компании Timeweb Cloud, Программирование, СУБД
❯ 1. Вступление
У меня в портфолио есть несколько готовых пет-проектов на Rust, и я заметил, что позиция «а у нас уже получилась DataFrame?» нисколько меня не устраивает. Поэтому я подумал, не сделать ли мне элементарный контейнер, который решал бы мою конкретную задачу. Но этот проект вышел из-под контроля.
Год спустя, написав немало кода, я создал одну из самых быстрых библиотек датафреймов, применимую в Rust и Python. Вот мой первый официальный «Hello World» на polars, размещённый у меня в блоге. Надеюсь, что с помощью этого поста я смогу пояснить читателю некоторые решения, которые мне довелось принять при проектировании, и вам станет понятнее, как Polars работает под капотом.
Читать полностью »
Архитектура и реактивное программирование
2023-05-24 в 9:00, admin, рубрики: javascript, mobx, React, react.js, reactive programming, reactivity, ReactJS, Reatom, ruvds_статьи, rx, rxjs, state, state management, state manager, Блог компании RUVDS.com, Программирование, реакт, реактивное программирование, реактивность, состояниеЧто такое реактивное программирование? Не Rx. И даже не Excel. Это архитектурный паттерн, позволяющий абсолютно иначе писать код. В статье мы устаканим фундаментальные знания, утвердимся в том, что React.js всё же является реактивным, и подумаем о том, как и когда нужно, а когда не нужно применять паттерны реактивного программирования.Читать полностью »
Пишем на Python как на Rust
2023-05-22 в 19:54, admin, рубрики: python, Rust, Программирование, Проектирование и рефакторинг, Совершенный кодЯ начал программировать на Rust несколько лет назад, и это постепенно изменило мой подход к разработке программ на других языках программирования, особенно на Python. До того, как я начал использовать Rust, я обычно писал код на Python очень динамично, без подсказок типов, повсюду передавая и возвращая словари и время от времени возвращаясь к интерфейсам со «строковой типизацией». Однако, испытав на себе строгость системы типов Rust и заметив все проблемы, которые она предотвращает, я внезапно стал сильно беспокоиться всякий раз, когда возвращался к Python и не получал тех же гарантий.
5 антипаттернов при написании кода на функциональном ЯП
2023-05-21 в 10:00, admin, рубрики: ruvds_перевод, scala, антипаттерны, Блог компании RUVDS.com, Программирование, программирование для начинающих, функции, функциональное программирование
Антипаттерны в функциональных языках программирования могут показаться непривычными в силу отличия этих языков от других их видов, в связи с чем разработчики нередко пишут не самые удачные реализации, склонные к ошибкам и трудные в обслуживании. В статье мы разберём пять наиболее типичных антипаттернов, избегая которые вы сможете создавать более удобный в работе код при меньшем количестве ошибок.Читать полностью »
Бенчмаркая строки и циклы: Replace, Split и Substring
2023-05-20 в 8:53, admin, рубрики: .net, C#, бенчмаркинг, оптимизация, ПрограммированиеУважаемые читатели, в этой статье я хочу рассказать о небольших тестах со строками и представить свои выводы. Тесты сделаны на .net 7.
Все коды представлены для повторения но отмечу, что больше всего удивили циклы.
Про строки написано немало, поэтому слишком углубляться в их особенности не буду, лишь напомню, что строки в реальности могут быть изменяемыми с использованием различных ухищрений.
Все тесты сделаны с использованием BenchmarkDotNet, так что каждый может проверить результаты и сделать свои выводы.
Хочется начать с string.Replace, который проверяется разными вариантами, начиная с базового:
Читать полностью » 
