• Тестовый клиент TON (Telegram Open Network) и новый язык Fift для смарт-контрактов

      Больше года назад стало известно о планах мессенджера Telegram выпустить собственную децентрализованную сеть Telegram Open Network. Тогда стал доступен объемный технический документ, который, предположительно, был написан Николаем Дуровым и описывал структуру будущей сети. Для тех, кто пропустил — рекомендую ознакомиться с моим пересказом этого документа (часть 1, часть 2; третья часть, увы, всё ещё пылится в черновиках).


      С тех пор никаких значимых новостей о статусе разработки TON не было, пока пару дней назад (в одном из неофициальных каналов) не появилась ссылка на страницу https://test.ton.org/download.html, где размещены:


      ton-test-liteclient-full.tar.xz — исходники лёгкого клиента для тестовой сети TON;
      ton-lite-client-test1.config.json — конфигурационный файл для подключения к тестовой сети;
      README — информация о сборке и запуске клиента;
      HOWTO — пошаговая инструкция о создании смарт-контракта с помощью клиента;
      ton.pdf — обновлённый документ (от 2 марта 2019 г.) с техническим обзором сети TON;
      tvm.pdf — техническое описание TVM (TON Virtual Machine, виртуальной машины TON);
      tblkch.pdf — техническое описание блокчейна TON;
      fiftbase.pdf — описание нового языка Fift, предназначенного для создания смарт-контрактов в TON.


      Повторюсь, официальных подтверждений страницы и всех этих документов со стороны Телеграма не было, но объем этих материалов делает их достаточно правдоподобными. Запуск опубликованного клиента совершайте на свой страх и риск.

      Разберёмся, как это сделать
    • TON: Telegram Open Network. Часть 2: Блокчейны, шардирование

        TON


        Данный текст — продолжение серии статей, в которых я рассматриваю структуру (предположительно) готовящейся к выходу в этом году распределенной сети Telegram Open Network (TON). В предыдущей части я описал её самый базовый уровень — способ взаимодействия узлов между собой.


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


        Сегодня посмотрим на основной компонент TON — блокчейн.

        Читать дальше →
      • TON: Telegram Open Network. Часть 1: Вступление, сетевой уровень, ADNL, DHT, оверлейные сети

          TON: Telegram Open Network


          Уже две недели Рунет шумит про Telegram и ситуацию с его бессмысленной и беспощадной блокировкой Роскомнадзором. Рикошетом задело многих, но всё это — темы для постов на Geektimes. Меня же удивило другое — я до сих пор не видел на Хабре ни одного разбора запланированной к выходу на базе Telegram сети TON — Telegram Open Network. Мне захотелось восполнить этот недостаток, ибо поизучать там есть что — даже несмотря на отсутствие официальных заявлений о нём.


          Напомню — ходят слухи о том, что Telegram запустил очень масштабное закрытое ICO, уже собрав в нём невероятные суммы. Предполагается, что уже в этом году будет запущена собственная криптовалюта Gram — и у каждого пользователя Телеграма автоматически появится кошелёк, что само по себе создает немалое преимущество перед остальными криптовалютами.


          К сожалению, так как официальных заявлений нет, дальше я могу отталкиваться только от документа неизвестного происхождения, о чём я сразу вас предупреждаю. Конечно, он может оказаться очень искусной подделкой, но не исключено и то, что это — реальный whitepaper будущей системы, написанный Николаем Дуровым (и слитый, вероятно, кем-то из инвесторов). Но даже если это фейк, никто нам не запретит его поизучать и обсудить, верно?


          Что же говорится в этом документе? Я попробую пересказать его своими словами, близко к тексту, но по-русски и чуть более человечно (да простит меня Николай со своей склонностью уходить в формальную математику). Имейте в виду, что даже в случае его подлинности, это черновое описание системы и оно, весьма вероятно, изменится к моменту публичного запуска.

          Итак, приступим
        • Az.js: JavaScript-библиотека для обработки текстов на русском языке

            Как чуден и глубок русский курлык
            Генератор постов

            Обработка естественного языка (natural language processing, NLP) — тема, на мой взгляд, очень интересная. Во-первых, задачи тут чисто алгоритмические: на вход принимаем совершенно примитивный объект, строчку, а извлечь пытаемся вложенный в него смысл (ну или хотя бы частичку смысла). Во-вторых, необязательно быть профессиональным лингвистом, чтобы решать эти задачи: достаточно знать родной язык на более-менее приличном уровне и любить его.

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

            Бессвязность текстов в нынешней версии «Генератора» вызвана тем, что на самом деле никакого анализа он производить не умеет. Просто в одних случаях «предсказывает» продолжение предложения по собранным биграммам, а в других — заменяет в готовом предложении некоторые слова на другие, которые заканчиваются похоже. Вот и вся начинка.

            Конечно, хочется сделать что-нибудь поинтереснее. Беда в том, что модные сейчас нейросети не очень-то применимы здесь: им нужно много ресурсов, большую обучающую выборку, а в браузере у пользователя соцсети всего этого нет. Поэтому я решил изучить вопрос работы с текстами с помощью алгоритмов. К сожалению, готовых инструментов для работы с русским языком на JavaScript найти не удалось, и я решил сделать свой маленький велосипед.
            Читать дальше →
          • Создание канала с автопостингом в Телеграме без единой строчки кода

            • Tutorial

            Вступление


            Предупреждаю сразу: технического в статье очень мало. Это практически пошаговая инструкция для не очень сведующих в техническом плане пользователей. Для людей сведущих (и тех, кому лень читать много текста), приведу две ссылки: Telegram Bots API + IFTTT Maker Channel.

            Теперь подробнее. Думаю, все слышали про мессенджер Telegram. Вероятно, многие даже знают про нехитрый API для создания ботов в этом мессенджере. Кроме того, не так давно в T появилась возможность создавать так называемые «каналы» (channels), упрощающие мгновенную рассылку сообщений практически любому количеству подписавшихся на канал лиц. Наконец, самая свежая новость: ботов стало можно добавлять в качестве администраторов в каналы, то есть такие рассылки стало можно делать автоматизированно.

            Думаю, не надо объяснять, что это открывает довольно широкие возможности для различных сервисов. Например, у меня довольно быстро получилось сделать следующее:
            • три канала (@RedditTop, @r_pics, @gone_wild — осторожно, последний с «взрослым» контентом), которые ежечасно импортируют топовые посты с Реддита (и двух его сабреддитов);
            • ещё канал, делающий то же с постами с 9GAG;
            • и, наконец, завел хитрого бота @JamesBot, который анонимно пересылает все сообщения, написанные ему, в общий канал (@secret_ru, @secret_en, @secret_es, @secret_ar или @secret_fa — в зависимости от языка). Получился анонимный чат средней степени трэшовости.

            Уже после создания всех этих ботов и каналов мне пришло в голову, что простейший автоимпорт постов откуда-то «снаружи» можно наладить вообще без всякого кода и хостинга — буквально минут за 5. На помощь нам придет прекрасный сервис IFTTT — If This Then That, имеющий множество интеграций с социальными сетями и прочими сервисами. Правда, к сожалению, прямой интеграции с Телеграмом у него (пока?) нет — зато есть т.н. IFTTT Maker Channel, позволяющий делать простые HTTP(S)-запросы при срабатывании триггера. К сожалению, мы не сможем принимать сообщения, отправленные боту (входящие запросы IFTTT Maker принимать может, но, увы, только в строго определенном формате) — интерактива не выйдет. Зато сможем по срабатывании любого события (например, новый твит или пост в FB):
            • публиковать сообщение в канале,
            • отправлять сообщение в заранее выбранный чат (куда добавлен наш бот),
            • отправлять сообщение заранее указанному пользователю (который добавил себе бота).
            Читать дальше →
          • О тонкостях приватности в Telegram Bots API: «это не баг, это фича»

              imageНеделю назад в мессенджере Telegram был запущен Bots API — платформа для создания ботов. Платформа пусть немного сыроватая, слегка костыльная, но тем не менее интересная — как для пользователей, так и для разработчиков, которые тут же ринулись писать (и портировать) разнообразных ботов. Но, как оказалось, в API есть как минимум одна особенность, которая может показаться довольно неожиданной (и даже неприятной) для конечных пользователей.

              Сразу оговорюсь: данная заметка не является очередным нападком на защищенность Телеграма. Более того, учитывая дружеские отношения с некоторыми из разработчиков мессенджера, писать статью не особенно хотелось. Но предостеречь тех, кто планирует создавать и, главное, пользоваться ботами в Telegram, мне показалось важным. «Платон мне друг, но истина дороже».

              Сначала вкратце для рядовых пользователей. Если вы отправляете какому-то боту в Телеграме фотографию (рассчитывая, что бот потом эту фотографию отправит другому человеку), — помните, что конечный получатель фото (при желании) легко сможет узнать ваше имя/фото/юзернейм (и сможет связаться с вами напрямую). Даже если бот предполагает приватность и анонимность. Этот интересный аспект крайне неочевиден даже для самих создателей ботов. И они (пока что!) ничего не могут с этим сделать. Строго говоря, это касается не только фотографий (а почти всех видов прикреплений), но увидеть ваш профиль в других случаях несколько сложнее.

              В том числе этому подвержен приведенный в качестве примера в описании новой платформы @HotOrBot. В этом «аналоге Тиндера» можно легко подсматривать аккаунты тех, чьи фото вам предлагают оценить (и, собственно, писать им — даже если они ещё не ответили вам взаимностью).
              Читать дальше →
              • +17
              • 43.3k
              • 4
            • Язык Вольфрам и пакет Mathematica доступны бесплатно для Raspberry Pi

              • Translation
              Прошло всего три дня с анонса масштабного проекта от Стивена Вольфрама, о котором уже писали на хабре, как стало известно о том, что новый язык Wolfram (Wolfram Language) можно опробовать на практике: он доступен для платформы Raspberry Pi вместе с математическим пакетом Mathematica уже сегодня — причем совершенно бесплатно. Подписавшиеся на получение новостей о языке Wolfram получили рассылку с новостью об этом. Ниже приведен её перевод (статья написана от имени разработчиков Raspberry Pi).


              Рисование трехмерных графиков в пакете Mathematica на Raspberry Pi

              Читать дальше →
            • Тетрис для DCPU-16

                Как уже писали на Хабре, разработчик широко известного в узких кругах MinecraftМаркус «Notch» Перссон в данный момент занят разработкой новой игры, действие которой будет происходить в космосе в 281 474 976 712 644 году.

                Как и Майнкрафт, игра будет нестандартной: главная «фишка» — полностью эмулируемый процессор, под управлением которого космические корабли и будут бороздить просторы Большого… э, Вселенной. Поскольку персонажи игры в год 0x10C (игра, собственно, так и называется) попали прямиком из 1980 года, то и процессор DCPU-16 по своим характеристикам примерно соответствует той эпохе: 128 килобайт оперативной памяти, 100 килогерц, нехитрый набор команд.

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

                (и сразу дисклеймер: музыка в ролике наложена отдельно для художественной, так сказать, выразительности; DCPU пока выводить звук, увы, не позволяет)

                Читать дальше →
              • И снова Diamond Dash

                  16 миллионовКак только я прочитал в недавней статье о написании бота для игры Diamond Dash в Google+, чуть-чуть не дотянувшего до 2 миллионов очков, у меня сразу зачесались руки написать аналогичного бота, который достиг бы этой цели — и, после нескольких дней экспериментов, этот результат действительно был достигнут.

                  Впрочем, теперь этого было уже мало — с применением другого подхода, на тот момент мой подвиг уже был опережен и даже переплюнут (финальный результат, судя по статье, приближается к 4 миллионам очков). Поэтому я решил сделать ещё один очевидный шаг — попробовать просто подменить запрос к серверу с результатом игры. Как можно видеть по скриншоту, попытка завершилась более чем удачно.
                  Читать дальше →
                • Алгоритм «diamond-square» для построения фрактальных ландшафтов

                    Карта игры Minecraft, созданная с помощью приложения CartographДумаю, многие знакомы с весьма необычной игрой Minecraft (справа — пример сгенерированной в ней карты), в которой игрок находится на (практически) бесконечной поверхности Земли и может исследовать окружающий мир с минимальными ограничениями.

                    Как же автору игры, Notch'у, удалось добиться подобного сходства его случайных «миров» с земными просторами? В этом топике я как раз и рассмотрю один из способов построить искусственный ландшафт такого рода (и вскользь упомяну пару других способов), а также расскажу о моем небольшом усовершенствовании этого алгоритма, позволяющем значительно увеличивать размеры ландшафта без заметных потерь в производительности.

                    Внутри вас ждет несколько схем и красивых картинок, довольно много букв и ссылка на пример реализации алгоритма.

                    Читать дальше →