Pull to refresh
123
0
Волька @ibnteo

Веб-разработчик

Send message

Отправляем SMS из Erlang/Elixir. Короткая инструкция

Reading time6 min
Views5.5K


Photo by Science in HD


Если вам когда-либо приходилось решать задачу отправки SMS из кода вашего приложения, скорее всего, вы использовали готовое REST API поставщика дополнительных услуг. Но что происходит после того, как поставщик получит ваш запрос? Какие протоколы используются и какой путь проходит текст сообщения, прежде чем оказаться на экране мобильного терминала пользователя?


В этой статье вы найдёте:


  1. Немного теории и терминологии SMPP-протокола: SMSC, ESME, PDU, MO/MT SM.
  2. Краткий обзор существующих библиотек для работы с SMPP в Erlang/Elixir.
  3. Пример реализации асинхронного клиента при помощи библиотеки SMPPEX. Возможно, он будет полезен тем, кто ещё не использовал Elixir-библиотеки в Erlang-проектах.
  4. Информацию по обработке deliver_sm, MO SM.

Чего тут точно нет, так это информации по отправке коротких сообщений через SIGTRAN.

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

Использование rebar3 для управления проектами на Erlang

Reading time6 min
Views11K


Rebar3 — это инструмент для языка программирования Erlang, который позволяет легко и удобно управлять проектами, написанными на Erlang (иногда и на Elixir).


Люди уже давно знакомые с Erlang знают старый rebar и, возможно даже, до сих пор его используют. Многим (особенно тем, кто пришел из других языков с гораздо более развитой экосистемой) rebar не нравится и время от времени его там и тут называют "позорной подделкой", которую можно было бы заменить скриптом на Perl. К счастью много работать с rebar мне не приходилось (в отличие от автора выше приведенных слов), но с базовыми вещами rebar справлялся довольно-таки неплохо. Но "неплохо" — это не "хорошо". Несогласных с таким положением дел (с "неплохо") оказалось немало и потому решили они дать арматуре вторую жизнь в виде проекта rebar3, который нынче активно развивается. Над проектом среди прочих работает небезызваестный сир Фред Хеберт, который подарил миру книгу "Изучай Erlang во имя добра!".

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

База данных KDB+: от финансов до «Формулы 1»

Reading time12 min
Views9.4K
KDB+, продукт компании KX — это широко известная в узких кругах, исключительно быстрая, колоночная база данных, предназначенная для хранения временных рядов и аналитических вычислений на их основе. Изначально она пользовалась (и пользуется) большой популярностью в индустрии финансов — ее используют все топ-10 инвестиционных банков и многие известные хедж-фонды, биржи и другие организации. В последнее время в KX решили расширить клиентскую базу и теперь предлагают решения и в других областях, где имеется большое количество данных, упорядоченных по времени или иным образом — телеком, биоинформатика, производство и т.д. В том числе они стали партнером команды Aston Martin Red Bull Racing в «Формуле 1», где помогают собирать и обрабатывать данные с датчиков болидов и анализировать тесты в аэродинамической трубе. В этой статье я хочу рассказать, какие особенности KDB+ делают ее сверхпроизводительной, почему компании готовы тратить на нее большие деньги, наконец, почему это на самом деле не база данных.
 

 
Читать дальше →
Total votes 13: ↑11 and ↓2+9
Comments14

Бесплатные векторные карты на своём хостинге

Level of difficultyMedium
Reading time6 min
Views13K

Векторные карты Protomaps на базе OSM

Каждый веб-разработчик знает о OpenStreetMap (OSM), свободной альтернативе Google Maps. Несмотря на всеобщую известность OSM, у некоторых всё-таки возникают вопросы: как сделать веб-карту с открытыми данными OSM, как самостоятельно публиковать карты?

На эту тему есть популярные руководства, в том числе по работе с базами PostGIS и запуску тайлсерверов для реализации бесшовных карт OSM. Но есть принципиально иной подход — векторные карты Protomaps, которые обеспечивают более высокое разрешение, настройку внешнего вида и наложение произвольных меток. Они изначально предполагают максимальную простоту в создании своих карт. А главное, что разместить тайлы можно на своём хостинге или в облаке.
Читать дальше →
Total votes 89: ↑86 and ↓3+83
Comments12

Polars: библиотека для работы с данными, написанная на RUST

Reading time6 min
Views16K

Настоящий хреновый программист всегда находится на гребне волны новых технологий. Зачем ему это? Чтобы при случае можно было повыделоваться багажом своих знаний, и заработать немного очков уважения в окружении своих менее осведомлённых коллег. Stay toxic, brothers. Я с вами.

Когда-то давно мне нужно было обработать чуть больше тысячи жирнейших excel-таблиц и сделать это нужно было быстро. Буквально за час я вкатился в Python и Pandas, а за второй час выполнил все необходимые манипуляции. Так я и познакомился с этими двумя. С тех самых пор приходилось выполнять самые разные задачи по анализу данных и всё бы ничего, но хотелось бы, чтобы Pandas работал побыстрее. Оказывается хотелось не одному мне, а целой команде разработчиков, на Rust.

Как и полагается, всё что на Rust то Blazingly-Fast, и Polars не стала исключением. За счёт чего Polars быстрее Pandas? Что это за библиотека и стоит ли на неё переходить? Давайте попробуем разобраться в этой статье.

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

Отправка SMS с 3G/GSM модема

Reading time7 min
Views212K
Привет Хабр. В данной статье я бы хотел поделиться опытом работы с GSM модемом, а точнее опытом отправки SMS сообщений. Ниже будет описана реализация программы на Delphi для отправки SMS сообщений, а так же чтение и удаление входящих/исходящих сообщений с модема. В моём случае это был модем HUAWEI от MTS. Всех кого заинтересовал, прошу под кат.
Читать дальше →
Total votes 44: ↑40 and ↓4+36
Comments20

BASHUI

Level of difficultyMedium
Reading time8 min
Views21K

BASHUI - это BASH + UI, а не то что вы подумали.

Начиная работать над sshto я решил не переизобретать велосипед, вернее не переизобретать велосипед целиком а только некоторые его части и в качестве "рамы с педалями" использовал dialog. Это значительно ускорило разработку, но идея написать свой UI на баше с блекджеком и всем остальным ни на секунду не покидала мой воспалённый мозг. Звёзды сошлись, и я решил воплотить этот проект в жизнь(в bash). Втречайте BASHUI!

нажми на кнопку
Total votes 86: ↑85 and ↓1+84
Comments44

File management done wrong — Часть 2: Masterpiece of Shit

Reading time5 min
Views4.8K


Сегодня вам предстоит прочитать про про файловые операции и всё что с ними связано. В этой части я опишу самый дикий и опасный диалог всех времён, адскую штуку — диалог разрешения конфликта имён в Windows File Explorer. Это просто Masterpiece of Shit. Это моя любимая часть, и я думаю вы уже догадываетесь почему.

Читать дальше →
Total votes 35: ↑20 and ↓15+5
Comments31

Инкрементальные бэкапы postgresql с pgbackrest — курс молодого бойца от разработчика

Reading time7 min
Views30K
Дисклеймер

Я — разработчик. Я пишу код, с базой данных взаимодействую лишь как пользователь. Я ни в коем случае не претендую на должность системного администратора и, тем более, dba. Но…

Так вышло, что мне нужно было организовать резервное копирование postgresql базы данных. Никаких облаков — держи SSH и сделай, чтобы все работало и не просило денег. Что мы делаем в таких случаях? Правильно, пихаем pgdump в cron, каждый день бэкапим все в архив и если совсем разошлись — отправляем этот архив куда-нибудь подальше.

В этот раз сложность состояла в том, что по планам база должна была расти примерно на +- 100 МБ в день. Разумеется, уже через пару недель желание бэкапить все pgdump'ом отпадет. Тут на помощь приходят инкрементальные бэкапы.

Интересно? Добро пожаловать под кат.
Читать дальше →
Total votes 17: ↑17 and ↓0+17
Comments16

Солнечные часы

Level of difficultyEasy
Reading time5 min
Views13K

Старенький профессор астрономии поднимается на кафедру: "Я не буду читать вам лекцию. Я пришел попрощаться. В моей обсерватории сегодня остановились часы, который шли без малого триста лет. Я уверен: наступил конец света!" Студенты захихикали, заулюлюкали. Крики, вопли: "Купите себе "Роллекс"!", "Вызовите мастера!", "Вставь новую батарейку!" и т. п. Когда шум стих, профессор заговорил снова: "А теперь я скажу еще кое-что. Сегодня у меня в обсерватории остановились солнечные часы". (Анекдот)

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

Читать далее
Total votes 63: ↑62 and ↓1+61
Comments21

Эффективная работа с битами при помощи Go

Level of difficultyHard
Reading time12 min
Views11K

Это статья познакомит вас с использованием возможностей Go для выполнения манипуляций с битами. Здесь мы разберём установку, очистку, инвертирование, сдвиг битов, использование техники SWAR, эффективную обработку Юникода и прочие приёмы, позволяющие повысить продуктивность программирования.
Читать дальше →
Total votes 47: ↑43 and ↓4+39
Comments8

Как погубить децентрализованную сеть (на примере Федиверса)

Reading time8 min
Views23K

На дворе 2023 год. Весь Интернет — под контролем Империи GAFAM. Весь? Нет, несколько мелких анклавов пока не поддались их гнёту. А некоторые из этих непримкнувших стали объединять усилия, консолидируясь в «Федиверс».

В ходе дебатов на просторах Twitter и Reddit, Федиверс стал привлекать всё больше внимания и снискал славу. Люди стали всерьёз им пользоваться. Это не могло укрыться от внимания Империи.  

Читать далее
Total votes 98: ↑95 and ↓3+92
Comments159

Общество полной справедливости и неравенства

Level of difficultyEasy
Reading time4 min
Views24K

Американские психологи однажды провели потрясающе простой эксперимент.

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

Затем эксперимент немного усложняется. Второй участник становится реальным и может заблокировать сделку, если посчитает, что его сильно обделили. В этом случае и первый участник ничего не получит. Тут отсечение идет примерно по 20 долларам – если предлагают меньше, то не доставайся же ты никому!

С этими цифрами удивительно перекликаются другие, из уже личного опыта. У меня есть давний приятель, который сразу после школы подался в таксисты и таксует уже лет 25. Он как-то заехал с проблемой со своим навигатором и рассказал между прочим, как устроена служба такси в наших широтах (дело было как раз перед уберизацией всей страны). Понятно, что никаких таксопарков давно не существует, а все фирмы, предоставляющие такие услуги, – обычные колл-центры, с которыми сотрудничают вольнонаемные водители на своих авто. По словам Андрея, фирмы, которые берут за диспетчерские услуги 25% от цены поездки, жадины и захребетники (там были немного другие слова, я адаптировал), а которые 20% – нормальные ребята и именно с такими он и сотрудничает.

Читать далее
Total votes 78: ↑71 and ↓7+64
Comments236

Механические клавиатуры 2023

Level of difficultyEasy
Reading time28 min
Views46K

Эта статья возникла как результат моих попыток разобраться в рынке механических клавиатур в 2023 году. На Хабре уже был неплохой материал по этой теме, опубликованный в 2012 году - https://habr.com/ru/post/140454/. Поэтому самые полезные блоки оттуда я честно скопипастил (благо лицензия статьи позволяет), но изменилось на самом деле гораздо больше, чем я ожидал. Для всех интересующихся, я также порекомендую https://wiki.geekboards.ru/, где вы можете найти еще больше технических деталей и несколько исторических экскурсов про устройство клавиатур.

Осторожно, дальше будет много букв и картинок (под спойлерами)

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

Дзен Nim

Reading time21 min
Views8.7K

1. Копирование плохого дизайна — плохой дизайн.

2. Если компилятор не может рассуждать о коде, то и программист не может.

3. Не стой на пути у программиста.

4. Перенеси работу на этап компиляции: программы запускаются гораздо чаще, чем компилируются.

5. Настраиваемое управление памятью.

6. Лаконичный код не мешает читабельности, он ей способствует.

7. (Задействовать метапрограммирование, чтобы оставить язык компактным).

8. Оптимизация это специализация: если вам нужно больше скорости, пишите кастомный код.

9. Должен быть только один язык программирования для всего. Этот язык — Nim.

Читать далее
Total votes 18: ↑15 and ↓3+12
Comments29

Orange Pi на автомойке ч.3

Reading time2 min
Views21K
Продолжение статей Arduino на автомойке и Arduino на автомойке ч.2.


Как понятно из заголовка перешли на использование Orange Pi One. Машинка гораздо поинтереснее Arduino. Выбран среди себе подобных в основном из-за цены. По сравнению в Arduino лучше решает следующие задачи:

— сеть (проблем пока нет)
— подключение монитора вместо табло
— возможность использования тач-панели
— возможность использования базы данных
— возможность установки на «себя» веб-сервера
Читать дальше →
Total votes 23: ↑19 and ↓4+15
Comments20

Arduino на автомойке ч.2

Reading time2 min
Views20K
Продолжаем рассмотрение применения Arduino для автомойки самообслуживания. Рассмотрим работу по сети и общение с купюроприёмником Cashcode. Начало см. тут.
Читать дальше →
Total votes 20: ↑17 and ↓3+14
Comments11

Долгоиграющие приложения на PHP

Level of difficultyMedium
Reading time15 min
Views19K

Мы часто сталкиваемся с задачами, которые требуют работы нашего кода дольше, чем длится простой HTTP-запрос. Это могут быть как выгрузки данных для интеграции с партнёрами, так и просто приложения, которые должны реагировать на события в системе в момент их появления. Конечно, можно использовать другие языки программирования, но это увеличит стек и усложнит систему.

Меня зовут Александр Пряхин, я TechUnit Lead в Авито. В IT работаю уже 14 лет. Из них 8 лет руковожу командами. Параллельно с этим преподаю и менторю. Сегодня разберём, как готовить демонов на PHP — от А до Я, и почему это актуально.

Читать далее
Total votes 62: ↑60 and ↓2+58
Comments17

SEO Выводы из утечки кода поисковика Яндекс

Reading time6 min
Views102K

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

Читать далее
Total votes 212: ↑197 and ↓15+182
Comments130
1
23 ...

Information

Rating
5,112-th
Location
Москва и Московская обл., Россия
Registered
Activity