Как стать автором
Обновить
120
0
Волька @ibnteo

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

Отправить сообщение

Насколько нам нужно визуальное программирование?

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров16K

Большинство сред визуального программирования не находят достойного применения. Как вы думаете, почему? Они нацелены на замену синтаксиса кода и бизнес-логики, но разработчики никогда эти аспекты не визуализируют. Напротив, они визуализируют переходы состояний, схемы распределения памяти или сетевые запросы.

На мой взгляд, те, кто работает с визуальным программированием, гораздо больше преуспеют, если начнут с аспектов программного обеспечения, которые разработчики уже визуализируют.
Читать дальше →
Всего голосов 34: ↑31 и ↓3+42
Комментарии91

Насколько быстр Javascript? Симулируем 20 миллионов частиц

Уровень сложностиПростой
Время на прочтение23 мин
Количество просмотров13K

Я бросил себе вызов: симулировать 1000000 (миллион) частиц на чистом Javascript на телефоне, используя только CPU и добившись 60 FPS.

Поехали.

Задача не особо сложна, если выполнять всю работу на GPU, но правило гласит, что нужно пользоваться только CPU, при этом работая на JS, так что никакого WASM.

Читать далее
Всего голосов 90: ↑89 и ↓1+111
Комментарии24

Управление сервером со смартфона

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров10K


Из любого SSH-клиента можно установить канал с сервером и управлять им стандартными командами в консоли. Есть такие клиенты и для смартфона. Многие знают и используют консоль Termux под Android, которая запускает с телефона стандартный OpenSSH.

Но есть варианты ещё удобнее, даже с графическим интерфейсом.
Читать дальше →
Всего голосов 21: ↑21 и ↓0+31
Комментарии6

Делаем кондиционер умным с помощью Elixir и Nerves

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров5.8K

С каждым днём всё ближе обжигающее японское лето, поэтому я всё больше думал о своей давней идее: дистанционном управлении кондиционером воздуха в моей спальне через Интернет. Простым нажатием кнопки за десять минут до отправления ко сну я мог бы включить кондиционер, который бы превращал спальню в прохладный комфортный оазис к тому моменту, как я почищу зубы и поднимусь на второй этаж. В прошлом году это так и осталось идеей; в этом году я довёл её до реализации.
Читать дальше →
Всего голосов 28: ↑28 и ↓0+41
Комментарии28

Elixir: Развёртывание приложений с помощью Edeliver

Время на прочтение4 мин
Количество просмотров5K

Мы уже обсуждали сборку и развёртывание приложений Elixir(перев: с помощью exrm): как осуществлять миграции поверх релиза или как работать с переменными среды. Пришло время открыть для себя ещё один инструмент, который поможет развёртывать Elixir приложения.


Практика развёртывания Elixir приложений и дальнейшее отслеживание их работы на нодах с помощью Exrm позволяет нам чувствовать себя гораздо увереннее в вопросах управления релизами в production. Однако возникает следующий вопрос: как управлять самим процессом развёртывания? Конечно, мы можем воспользоваться Capistrano, особенно если в мир Elixir мы пришли из Rails. Но посмотрим на цитату из Edeliver README:


edeliver основан на доставке и предоставляет bash-скрипт для сборки и развёртывания Elixir и Erlang приложений, а так же позволяет совершать "горячее" обновление кода.

Пытаться организовать весь процесс развёртывания вручную — это жёсткая головная боль с кучей повторяющегося кода. А вот использование Edeliver для развёртывания оказалось очень простым с первой же попытки! В конце концов, весь процесс развёртывания уместился в один меленький bash-скрипт:


#!/bin/bash -ex

BRANCH=${1:-master};

mix edeliver build release --branch=BRANCH --verbose
mix edeliver deploy release to production --verbose
mix edeliver start production --verbose
mix edeliver migrate production up --verbose

Скорее всего Вам придётся подкрутить этот скрипт под собственные нужды. Мы используем его только для развёртывания в production, но Вы так же можете использовать его и для staging развёртываний. Описание того, как всё это работает — под катом.

Читать дальше →
Всего голосов 20: ↑20 и ↓0+20
Комментарии26

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

Время на прочтение6 мин
Количество просмотров5.7K


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.

Читать дальше →
Всего голосов 11: ↑11 и ↓0+11
Комментарии3

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

Время на прочтение6 мин
Количество просмотров11K


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


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

Читать дальше →
Всего голосов 15: ↑15 и ↓0+15
Комментарии7

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

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

 
Читать дальше →
Всего голосов 13: ↑11 и ↓2+9
Комментарии14

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

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров16K

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

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

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

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

Время на прочтение6 мин
Количество просмотров18K

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

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

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

Читать далее
Всего голосов 21: ↑21 и ↓0+21
Комментарии11

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

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

BASHUI

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров22K

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

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

нажми на кнопку
Всего голосов 73: ↑72 и ↓1+84
Комментарии44

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

Время на прочтение5 мин
Количество просмотров4.8K


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

Читать дальше →
Всего голосов 35: ↑20 и ↓15+5
Комментарии31

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

Время на прочтение7 мин
Количество просмотров32K
Дисклеймер

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

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

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

Интересно? Добро пожаловать под кат.
Читать дальше →
Всего голосов 17: ↑17 и ↓0+17
Комментарии16

Настройка continuous бекапов PostgreSQL

Время на прочтение17 мин
Количество просмотров19K

В данном мануале описывается процесс настройки постоянного (continuous) бекапирования для баз данных PostgreSQL.

Читать дальше →
Всего голосов 7: ↑5 и ↓2+5
Комментарии4

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

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров14K

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

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

Читать далее
Всего голосов 45: ↑44 и ↓1+61
Комментарии21

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

Уровень сложностиСложный
Время на прочтение12 мин
Количество просмотров13K

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

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

Время на прочтение8 мин
Количество просмотров24K

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

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

Читать далее
Всего голосов 77: ↑74 и ↓3+92
Комментарии161

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

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров24K

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

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

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

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

Читать далее
Всего голосов 63: ↑56 и ↓7+64
Комментарии236

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

Уровень сложностиПростой
Время на прочтение28 мин
Количество просмотров49K

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

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

Читать далее
Всего голосов 57: ↑55 и ↓2+68
Комментарии121
1
23 ...

Информация

В рейтинге
Не участвует
Откуда
Москва и Московская обл., Россия
Зарегистрирован
Активность