Как стать автором
Обновить

Все потоки

Сначала показывать
Порог рейтинга
Уровень сложности

Как я свой мессенджер писал

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

Интернет сейчас переживает не лучшие времена: блокировки (facebook.com, twitter.com) и сбои в работе сайтов (vk.com, google.com), накручивание донатов (Telegram), поэтому я задался вопросом о создании мессенджера без всех этих проблем. Да это много кто-пытался делать (не только я), но без особого успеха. Но я преследую прежде всего другую цель в попытках писать велосипеды: узнать точно (не считая схем) как работает та или иная программа. Сначала я писал свою программу на Python, используя самописанный эхо-сервер. Даже тестировал её со своим другом. Но у программы был серьёзный баг - при выходе пользователя сервер и клиент крашился, наверное из-за того что я не реализовал закрытие сокета и удаления пользователя из списка. Я хотел исправить этот баг (кто знает в чём ошибка тому кидаю свой код), но со временем код испортился из-за того что я преждевременно хотел добавить новые фичи: параллельный веб-сервер например. Поэтому я решил полностью переписать свой мессенджер сделав его лучше. Для этого я выбрал протокол UDP, С# и технологию P2P вместо федерации серверов.

Читать далее
Всего голосов 14: ↑7 и ↓7 0
Комментарии 23

Новости

Postgresso #11 (60)

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

Лицензии и апокалипсис

10-го августа сего года компания HashiCorp позволила себе нехороший - с точки зрения многих участников движения open source - поступок. Она поменяла лицензию своего любимого многими Terraform (инфраструктура как код - Infrastructure-as-Code, IaC) с MPL 2.0 (Mozilla Public License) на BSL 1.1 (Business Source License). BSL относят к категории source-available software - более широкой, чем free software (свободное - подмножество SAS), а бизнес-модель HashiCorp относят к freemium (=free+premium), то есть вроде и бесплатно, но за что-то лучше заплатить. Как бы и ничего такого уж страшного, но через 5 дней на сайте SecurityLab.ru, который поддерживает Positive Technologies, появилась статья с пугающим названием:

Конец открытому ПО? HashiCorp переводит Terraform и Vagrant под закрытую лицензию

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

Как работают TON-20 и BRC-20 и почему они создают такие проблемы для блокчейнов

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

На прошлой неделе в TON произошел инцидент - огромная нагрузка на один из адресов создала очередь транзакций, сам блокчейн нагрузку выдержал - сработала система шардирования, но тем не менее из-за очереди, а также как следствие нагрузки на индексаторы, блокчейн был парализован пару дней пока “расходилась” очередь.

Подобную нагрузку вызвал новый тип токенов TON-20, аналог BRC-20 из сети Биткойн. В доках TON-20 почти нет информации, кроме того, что формат сообщений копирует BRC-20. Если посмотреть в эксплорер блокчейна, то знакомый с смарт-контрактами человек, будет удивлен - куча обычных транзакций с json внутри сообщений.

Но раз это некий взаимозаменяемый токен, значит должна быть какая-то возможность получить баланс и проверить передачу токенов и прочее?

На эти вопросы я постараюсь ответить в  этой статье. Мы разберем как работают “токены” BRC20 и почему они приводят к проблемам для блокчейнов и инфраструктурных проектов блокчейн сетей.

Место в транзакции

BRC-20 концепция взаимозаменяемого токена в сети биткойн. Концепция появилась после успеха Bitcoin Oridinals - протокола позволяющего создавать NFT в сети Биткойн. Возможным это стало благодаря:

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

Сколько строк на C нужно, чтобы выполнить a + b в Python?

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

В своей предыдущей статье я исследовал структуру PyObject и её роль в качестве заголовка для всех объектов среды исполнения CPython. Эта структура играет важнейшую роль в обеспечении наследования и полиморфизма в системе объектов CPython. Но это лишь вершина айсберга.

В этой статье мы опустимся на один уровень ниже и посмотрим, что же происходит внутри среды исполнения Python для выполнения простого действия a + b. Иными словами, мы узнаем о подробностях реализации типов, операторов и динамической диспетчеризации в CPython.

Стоит заметить, что хотя мы будем изучать реализацию динамической диспетчеризации для конкретного оператора, те же принципы применимы ко всем операторам, поддерживаемым CPython. То есть, по сути, обладая этими знаниями, вы сами можете реализовать собственный оператор или собственный новый тип.

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

Google Gemini: на что способна эта нейросеть и какие у неё недостатки (спойлер — их много)

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

Корпорация Google совсем недавно представила мультимодальную модель ИИ, которую называет конкурентом GPT-4 от OpenAI. Она умеет обрабатывать текстовую, аудиоинформацию, изображения и видео. На первый взгляд, проект действительно мощный, но, как оказалось, у него немало и недостатков. Подробности — под катом.

Читать далее
Всего голосов 7: ↑6 и ↓1 +5
Комментарии 0

От конструктора до облака: какие есть способы разработки мобильных приложений

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

Привет! На связи Вася Крючков, уже больше 7 лет я занимаюсь разработкой мобильных приложений и сейчас работаю в компании IMSHOP.IO, где за 5 лет разработали больше 150 приложений для ритейла. За эти годы часто встречал случаи, когда е-com менеджеры и технические директора сливали бюджеты на разработку мобильного приложения in-house, поскольку думали, что это наилучший вариант, но так и не запускали его. В этой статье я расскажу о том, какие способы разработки мобильного приложения существуют и какие есть плюсы и минусы у каждого из них с точки зрения бизнеса. Думаю, это статья будет полезна не только CTO и IT-директорам, но и e-com менеджерам и собственникам, которые хотят разобраться в вопросе. Конечно, мнений может быть много, но я построил статью, основываясь на своем опыте. 

Читать далее
Всего голосов 8: ↑6 и ↓2 +4
Комментарии 0

Что нового в Apache Spark 3.4.0 — Spark Connect — Доработки для Shuffle

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

Spark Connect — это, пожалуй, самая ожидаемая фича Apache Spark 3.4.0. Она была анонсирована на конференции Data+AI Summit 2022 и сейчас широко освещается в социальных сетях. Вот и я решил приобщиться и внести свой небольшой вклад в это дело, продемонстрировав вам несколько интересных деталей реализации.

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

RFM-сегментация в оптимизации CRM-стратегий

Время на прочтение 12 мин
Количество просмотров 198

Сегодня мы продолжим погружение в тему оптимизации CRM маркетинга при рассылке промо-предложений и рассмотрим опыт применения RFM-сегментации для решения этой задачи в рамках сервиса доставки еды и продуктов питания Delivery Club, ныне присоединившегося к группе компаний крупного e-com сервиса.

Читать далее
Рейтинг 0
Комментарии 0

Язык Crystal и математика

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

Если вам вдруг захотелось посчитать собственные значения матрицы, решить задачу линейного программирования или оптимизировать нелинейную функцию, то вы может взять питон со SciPy, можете взять R или Matlab\Octave, для любителей экзотики есть Julia, а те кому важен каждый тик скорее возьмут C++ или Rust.

Но если вдруг вы хотите взять Crystal (оставим за кадром причины этого решения), то я постараюсь описать что он может предложить для решения математических задач.

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

А/Б тестирование с CUPED: детальный разбор

Время на прочтение 14 мин
Количество просмотров 325

Хабр, привет! Сегодня обсудим, как применять CUPED для повышения чувствительности А/Б тестов. Рассмотрим на простом примере принцип работы CUPED, покажем теоретически за счёт чего снижается дисперсия и приведём пример оценки эксперимента. Обсудим, как выбирать ковариату, как работать с бинарными метриками и что делать при противоречивых результатах.

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

Вычисление значений при угловом обходе квадратной матрицы

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

Размышления о способах непрерывного обхода двухмерных массивов, в которых траектория не пересекает саму себя, привели к выводу что их и не так-то много. На самом деле базовые алгоритмы можно, как говорится, пересчитать по пальцам одной руки. Наиболее известные из них: обход по спирали и обход «змейкой». В сети можно найти предостаточное количество решений, основная часть которых опирается на фундаментальные элементы программирования: условные переходы и циклы.

Однако, некоторое время назад меня посетила шальная мысль: а нельзя ли придумать математическую формулу, которая могла бы вычислить значение любого элемента подобных матриц на основании лишь его координат? Такая формула, конечно, не ускорила бы процесс полного обхода матрицы и соответственно установления каких-либо значений по пути следования (обычно по возрастающей)...

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

К вопросу о RS485

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

Недавно, при отладке одного устройства, внезапно выяснилось, что RS485 не хочет работать (вернее, работает через раз), если два устройства не связаны землей, от слова совсем. Вообще то данный факт не является откровением и я в своих кабелях земли протаскиваю, но в данном конкретном случае имел место обрыв провода. Но после того, как дефект был обнаружен и устранен, внезапно возник вопрос — а как вообще устроен приемник сигналов, если в соответствии со стандартом он должен правильно обрабатывать сигналы, имеющие общее напряжение (Vcm) от -7В до 12В, питаясь при этом от 3.3В (ну или от 5В) относительно земли. Да, я знаю о существовании операционных усилителей (а компаратор — то же ОУ), способных обрабатывать сигналы «rail‑to‑rail» (импорто‑замещенное обозначение «от шины до шины» мне не нравится, можете пожаловаться кому следует), но в данном случае входные сигналы откровенно за шины (землю и питание) выходят.

Если Вам тоже интересно, Вам сюда
Всего голосов 7: ↑7 и ↓0 +7
Комментарии 11

Необходимые свойства качественных рекомендаций в e-commerce

Время на прочтение 10 мин
Количество просмотров 211

Компания Retail Rocket более 10-ти лет занимается системами рекомендаций в сфере электронной коммерции. Всё это время мы сталкиваемся с неочевидными свойствами алгоритмов рекомендаций, без которых системы не будут решать свои задачи. Мы выделили и описали в статье такие свойства, как: эффективность, логичность, покрытие, специфичность, охват, актуальность и мультирегиональность. Если у вас есть система рекомендаций, и вы хотите оценить её качество, либоесли вы ищете критерии для выбора системы рекомендаций или планируете разработать свою, то эта статья будет вам полезна.

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

LLMClone: как клонировать себя в Telegram

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

У меня, как и у многих, довольно много чатов в телеграмме. Иногда просто нет времени (а иногда и не хочется) отвечать на некоторые сообщения. Именно так возникла идея создания виртуального клона. В статье рассматривается простая идея, состоящая в том, чтобы зафайнтюнить языковую модель на личных сообщениях, выгруженных из Telegram-чатов. Возможно, в дальнейшем такой клон сможет общаться за вас

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

Улучшаем взаимодействие пользователя с интерфейсами

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

Всем привет! Мы ИТ-компания BSL– технологический партнер в продуктовой разработке и интеграции. В данной статье наш Team Lead Frontend Developer – Андрей рассказал о типичных ошибках при разработке интерфейсов по уе отрисованным макетам, способах их решения и, в целом, о правильном подходе при проектировании. Как мы знаем, не всегда дизайн-макеты идеальны, где-то могли упустить состояния, где-то не описано поведение анимаций, где-то дизайнер не знает вашу ui-библиотеку и так далее. Обо всём этом ниже.

Читать далее
Всего голосов 4: ↑0 и ↓4 -4
Комментарии 2

Собираем объёмный дисплей на Raspberry Pi

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

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

После беседы я подумал, что если двигатель и батарея будут достаточно маленькими, то вращаться может устройство целиком. На следующий день я заказал несколько печатных плат, поэтому я добавил к заказам простую матрицу светодиодов. Маленькие платы из Китая, по сути, бесплатны, единственное, что важно — это скорость доставки.
Читать дальше →
Всего голосов 34: ↑34 и ↓0 +34
Комментарии 7

От ЖК-дисплеев до полупроводников: краткая история индия

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

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

Индий обнаружили немецкие химики Фердинанд Райх и Теодор Рихтер в 1863 году при спектроскопическом исследовании цинковой обманки. Они искали таллий, однако вместо зеленой линии этого элемента нашли в спектрах яркую неизвестную линию голубого цвета (профессор Райх страдал дальтонизмом и не мог различать цвета спектральных линий, поэтому все наблюдения регистрировал его ассистент Рихтер). Впоследствии металл был выделен Рихтером в незначительном количестве, но на Всемирной выставке 1867 года уже был представлен полукилограммовый слиток индия.

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

Почему в США до сих пор нет скоростных поездов

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

Самый быстрый поезд Северной Америки в настоящее время стоит на складе в Филадельфии. Поезд нового поколения Acela Express, который должен был поступить в эксплуатацию в 2021 году, не будет перевозить пассажиров ещё как минимум год. Это следует из октябрьского отчёта Управления генерального инспектора Amtrak (OIG), в котором говорится, что гидравлические системы поезда протекают, сцепные устройства могут ржаветь от стекающей воды, а окна иногда разбиваются.

OIG обвиняет в этих проблемах французского производителя Alstom, а сама компания, чьи акции упали почти на 50% после публикации отчёта и на фоне проблем с денежными потоками, ссылается на плохое состояние путей на северо-восточном коридоре между Бостоном и Вашингтоном, округ Колумбия.

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

Formify: от идеи до публичной беты, как я создал бесплатный конструктор форм в виде текстового документа (2024)

Время на прочтение 3 мин
Количество просмотров 463

👋 Всем привет! Сегодня я расскажу о Formify - конструктора форм, который уже сейчас переписывает правила игры в создании опросов и форм. О том как придумал идею, о процессе реализации и почему конструктор форм в виде текстового документа - это очень маленькая, но революция в мире форм и опросов. Погнали!

Читать далее
Всего голосов 2: ↑0 и ↓2 -2
Комментарии 1

Общество защиты бумеров

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

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

Читать далее
Всего голосов 20: ↑18 и ↓2 +16
Комментарии 18