Pull to refresh
23
0
Aleks Lozovyuk @aleks_raiden

Криптовалюты, финансы, распределенные системы

Send message

Погружение в Move — язык программирования блокчейна Libra от Facebook

Reading time 10 min
Views 9.5K
Далее мы рассмотрим в деталях основные характеристики языка Move и в чем его ключевые различия с другим, уже популярным языком для смарт-контрактов — Solidity (на платформе Ethereum). Материал основан на изучении доступного он-лайн 26-страничного whitepaper-а.

Введение


Move — это исполняемый язык байт-кода, который используется для выполнения пользовательских транзакций и смарт-контрактов. Обратите внимание на два момента:

  1. В то время как Move является языком байт-кода, который может напрямую выполняться на виртуальной машине Move, Solidity (язык смарт-контрактов в Ethereum) — язык более высокого уровня, который сначала компилируется в байт-код перед выполнением в EVM (Ethereum Virtual Machine).
  2. Move можно использовать не только для реализации смарт-контрактов, но и для пользовательских транзакций (подробнее об этом будет дальше), в то время как Solidity — это язык только для смарт-контрактов.
Читать дальше →
Total votes 18: ↑17 and ↓1 +16
Comments 2

Первый взгляд на Facebook Libra

Reading time 15 min
Views 21K
Подробный обзор от Binance Research долгожданного вхождения Facebook в криптовалютную индустрию.

Перевод выполнен командой проекта INDEX Protocol. Сейчас в новостях очень много шумихи вокруг этого проекта, при этом очень мало реальных данных и хороших разборов. Команда Binance Research смогла подготовить очень качественный, на наш взгляд, материал, который мы перевели. В примечаниях мы отметим моменты, которые дополнились за время, после выхода отчета или же где у нас есть отдельное мнение. Если вам интересно, наш предыдущий перевод был посвящен архитектуре децентрализованных бирж. Перевод выполнен совместно с coolsiu

18 июня 2019 года компания Facebook опубликовала подробную информацию о Libraстабильной криптовалюте, работающей на собственном блокчейне и поддерживаемой корзиной финансовых активов.

В этом отчете мы рассмотрим детали этой новой, весьма ожидаемой криптовалюты, прежде чем углубляться в технические детали. Также мы обсудим, как это повлияет в разных перспективах на локальные и глобальные рынки.
Читать дальше →
Total votes 24: ↑18 and ↓6 +12
Comments 38

Единый API на РНР для всех облачных push-сервисов

Reading time 10 min
Views 9.1K
Приветствую всех читателей. Сейчас в веб-разработках столько трендов, что не уследишь. Но вопрос о реал-тайм взаимодействии с пользователями сайта стоит остро прочти для любого проекта. Простейший способ — поставить один из широко доступных открытых comet-серверов, например, Dklab_Realplexor, Socket.IO или Faye — что кому по душе или в зависимости от стека технологий. Правда это путь достаточно сложных проектов, где команда может себе позволить такое решение.

Для многих проектов попроще (хотя это всегда вопрос конкретики приложения) логично будет использовать сторонние решения. А проще — арендовать как услугу функционал comet-сервера. Сегодня недостатка в таких сервисах нет, так что нам есть что обозревать.

И так, сначала давайте кратко ознакомимся с существующими push-сервисами, которые позволят нам без создания и поддержки своей серверной инфраструктуры поддерживать реал-тайм общение между клиентами проекта.

Таких сервисов всего 6: Pusher, Pubnub, Partcl, BeaconPush, X-Stream.ly и ioBridge (с некоторыми особенностями). Под катом — кратки обзор всех сервисов, особенностей РНР-библиотек для них и описание библиотеки pushBridge.IO для унификации работы со всеми облачными пуш-сервисами.
Читать дальше →
Total votes 38: ↑33 and ↓5 +28
Comments 35

Горячая замена кода (code hot swapping) в РНР

Reading time 10 min
Views 3K
Погода за окном просто требует чего-то горяченького, поэтому воспользовавшись возможностью что-то по исследовать в свободное время, я решил подумать — а можно ли не останавливая скрипт, подменить функцию, которая выполняется? С таким требованием я встретился чуть ранее, при разработке нашего стартапа. У нас был один из внутренних серверов, который заведовал всеми действиями между пользователями в реальном времени. Это обычный РНР-демон-роутер, который обрабатывал запросы от клиентских запросов (внутри сервера), но была одна сложность — в случае, когда я что-либо изменял в коде сервера или обработчиков отдельных команд, демон приходилось перезагружать, что означало отключение текущих клиентов и потеря информации о состоянии сервера (этот вопрос решаемый, конечно). То же самое было в случае ошибки в коде — все подключенные пользователи сразу это чувствовали на себе (хорошо, что все они такие же разработчики, а не реальные клиенты). Можно ли этого избежать?

Конечно можно, например, отказавшись от скриптов-демонов, как мы и сделали. Однако это проблему не сняло, просто переместило ее в другую плоскость. Ведь остались другие сервисы-демоны, которые также должны работать непрерывно, хоть их значимость меньше, однако перезагружать каждый раз не очень то хочется. Поэтому решил я поискать возможность на лету подключать новый код и сразу его исполнять. Минимальным кодом будет функция, но вполне возможно подключать и методы классов.
Читать дальше →
Total votes 38: ↑27 and ↓11 +16
Comments 59

Получение RSS/Atom фидов с любой страницы

Reading time 16 min
Views 11K
С Новым Годом! Пока на улице праздник, я занимался одной из интересных проблем (или задач, как кому) своего проекта. Дано — система, схожая с Google Readers, которая принимает от пользователя некоторый адрес и должна обеспечить просмотр (а позже, и подписку) доступных там RSS-фидов. Задача осложняется тем, что от пользователя нельзя требовать ввода именно полного адреса ленты, да и даже просто адреса сайта или произвольной страницы — он может быть введен в совершенно разных вариантах, полностью или частично и т.п. Самих лент на странице также может быть более одно, часто нескольких форматов сразу (а то и не быть вовсе). Поэтому нам надо выбрать из всех доступных лент последние сообщения и отобразить пользователю, чтобы именно он выбрал в конечном итоге одну ленту, которая его интересует. Открою секрет — да, это только начало и в последующих статьях мы вместе постоим несколько уменьшенную версию системы агрегации и чтениях новостей. Но сегодня попробуем решить первую задачу, без которой наша «читалка» просто не сможет работать, какие бы дальше технологии не применялись.

Основой будет мой любимый инструмент — Zend Framework (используем последнюю, trunk версию). Если вы знакомы с его возможностями, что сходу предложите компонент Zend_Feed, который имеет встроенные возможности по извлечению из страницы лент. Однако не спешите, на практике задача не так и проста. Поэтому будем решать ее постепенно.
Читать дальше →
Total votes 14: ↑9 and ↓5 +4
Comments 2

SignalsyMQ — простая и быстрая очередь сообщений на PHP+Redis (и немножко Zend Framework)

Reading time 10 min
Views 8.1K

Приветствую читателей. Сейчас я веду разработку собственного фреймворка, основанного, в противовес главенствующей сейчас модели MVC, на базе сигнальной архитектуры (signal/slot). Пока он проходит боевую обкатку в нашем стартапе, и за это время я понял, что просто библиотеки мало — реальные задачи и виденье будущего показывает, что необходим разный функционал, но объединенный одной темой — обработка и доставка информации множеству клиентов в реальном времени (да, в чем-то схоже с Comet-ом, он там тоже есть). Поэтому решено было попробовать реализовать основной компонент — очередь сообщений, которая бы стала основной для следующих проектов, быстрой, гибкой и масштабируемой.

Что получилось? Альфа-версия SignalsyMQ — очередь сообщений на базе PHP/Redis/Zend Framework.
Читать дальше →
Total votes 30: ↑24 and ↓6 +18
Comments 51

Работаем с Google Protocol Buffer в РНР

Reading time 9 min
Views 13K
pb4php_logoВ проекте, который я сейчас разрабатываю, возникла необходимость смены протокола, который используется для обмена данными между частями приложения. Сейчас, на уровне внутренних сервисов, обмен происходит через передачу сериализированных массивов РНР поверх TCP сокетов. Так как по обе стороны находятся приложения на РНР, проблем не возникает, формат пакета данных также стандартный, поэтому особых сложностей нет. Разве что часто меня не удовлетворяет скорость обработки, а также то, что мы сильно завязаны на язык и платформу. Если придется стыковать с другой системой или же переписать что-либо, будут сложности — ведь сериализированный формат поймет лишь родной язык, а писать парсер мне не очень хочется. Первоначальный выбор был более чем оправданным — скорость разработки и отладки были приоритетными, сейчас есть немного времени и желания посмотреть на архитектуру с высока и другим взглядом.

Следует сказать, что данные передаются самые простые — строки (различной длины, на практике длинее килобайта или десятка почти нет, обычно это сотни байт), целые числа (в том числе и unix timestamp), некоторый набор констант, true/false флаги, только в одном случае передаются значения с плавающей точкой. В принципе, все сводится к трем типам данных — строка, целое число, число с плавающей точкой. Если хотеть, можно выделить еще поле кода команды, которое можно отнести к перечисляемому виду (количество команд ограничено и конечно, хоть и растет с ростом системы). В сериализированном виде такой пакет занимает достаточно много места, и хоть передаются данные по сокетах в пределах локальной машины, это все равно не выход — изначально система такая, что должна допускать динамическое расширение на несколько узлов кластера.

Узнать, что далее...
Total votes 33: ↑26 and ↓7 +19
Comments 83

Что же нового ожидает нас в AIR 2.0

Reading time 6 min
Views 846
imageAdobe MAX 2009 — самая большая конференция, где Adobe представила множество интересных проектов и заявила о выходе в следующем году линейки CS 5 своих продуктов (а там много интересного уже сейчас, например, Flash CS 5 обещают доступную бету уже к концу года). Но для веб-разработчиков наиболее ожидаемым является достаточно небольшой проект (по сравнению с другими) — Adobe AIR 2.0. Текущая версия 1.5.х обладает мощной поддержкой индустрии и разработчиков, в том числе и потому, что использует всем привычные технологии для разработки — JavaScript/HTML и Flash. Приложения для AIR выпускают многие компании, в том числе гиганты индустрии вроде eBay, NASDAQ, FedEx, медиагигант Fox и другие, сама Adobe создала несколько мультимедийных проектов для распространения своей платформы.

Но на горизонте уже есть новости о следующем поколении AIR, которое должно не просто еще больше укрепить позиции в сфере платформ для веб-приложений, но даже, без преувеличения, просто отстранить все остальные конкурирующие платформы. Что же нового ожидает нас в AIR 2.0?
Сейчас рассмотрим подробнее.
Total votes 59: ↑54 and ↓5 +49
Comments 22

EHcache RESTful сервер, РНР и просто эксперименты…

Reading time 13 min
Views 3.7K
logoСегодня мы продолжим исследования различных новых и не очень технологий, необычного их применения или просто оригинальных вещей. Возможно, вы вспомните, я когда-то писал о проекте распределённого кеша EHcache для платформы Java. Сегодня настало время продолжить эту тему, однако в другом ракурсе — в виде отдельного RESTful сервера.

читать дальше
Total votes 20: ↑19 and ↓1 +18
Comments 9

Делаем красивый список с GroupingStore/View и ExtJS

Reading time 11 min
Views 6K
Сегодня мы поговорим, как сделать на базе ExtJS красивый (и функциональный) список каких-либо данных, например, список пользователей или групп. Я применяю такой список в одном из текущих проектов (правда, там уже не настолько красивый и удобный) Такой виджет можно использовать при выводе любых данных, которые характеризуются не только тестовой строкой, но и расширенными данными, а также необходимо сопоставить какие-то действия каждому набору. Допускается динамическое обновление данных (через Store), а также сортировка и группирование — в общем, все возможности, предоставляемые компонентом Grid из ExtJS. Сразу скажу, что я буду использовать версию ExtJS 3.0, но и в предыдущем релизе, 2.3.х пример также должен быть работоспособным. Приведенный компонент является примером и никак не готовым для использование кодом, а лишь демонстрацией возможностей, вы в своих проектах можете как угодно менять и дорабатывать под свои возможности. По этой же причине к статье намеренно нет исходного кода.
читать дальше
Total votes 31: ↑28 and ↓3 +25
Comments 27

ExtJS 3.0 RC2 — а мы идем в сторону RESTful

Reading time 3 min
Views 1.2K
30bubbleЧто-то давненько мы не обсуждали наш любимый фреймворк ExtJS, и зря, так как за это время появилось несколько интереснейших новостей из мира этого инструмента. И о последней, видимо, самой интересной, мы сегодня и поговорим.

Итак, сегодня вышел следующий кандидат-релиз 3-й версии ExtJS, а также вторая бета-версия Ext Core, они обновляются синхронно, так как сам ExtJS теперь базируется на открытом ядре. Рассмотрим основные изменения, кроме заявленных улучшений в производительности и стабильности.
Читать дальше →
Total votes 32: ↑26 and ↓6 +20
Comments 26

Пуш ми, бум-бум, тач ми… Ajax Push Engine

Reading time 5 min
Views 6.9K
logoСегодня поговорим о Comet и о server push вообще.

Обычные веб-приложения, как и сайты, работают по традиционной модели запрос-ответ-запрос, при этом, в силу особенностей HTTP-протокола и некоторых серверных реализаций обработчиков, приложение не хранит информацию между запросами, так что каждый вызов является независимым, а идентификация или сессионность обеспечиваются более высокоуровневыми средствами (например, всем известная реализация сессий в PHP). Кроме этого, запрос на новую информацию посылает всегда клиент, который заинтересован в получении самой актуальной версии данных. В приложениях, которым критично обновление, это часто становиться узким местом. У нас в одном из предыдущих проектов, было сразу несколько периодических AJAX-запросов на обновление данных. Хотя для такого случая есть варианты и вызова нескольких обработчиков на стороне сервера одним запросом от клиента.
Читать дальше →
Total votes 51: ↑43 and ↓8 +35
Comments 34

Как это было или отчет о первой конференции ExtJS

Reading time 6 min
Views 1.4K
logo1Как вам наверное известно, недавно состоялась первая конференция, организованная компанией ExtJS LLC, посвященная как новым продуктам (ExtJS 3.0, Ext Core, ExtGWT), так и практическим аспектам работы с фреймворком, проектированием приложений и работу с новыми технологиями (вроде поддержки Adobe AIR). К сожалению, мне не удалось побывать на конференции, но там был один из читателей моего блога, Сергей Козлов, который любезно предложил свою помощь в организации этого небольшого обзора.

Официальное расписание конференции и основные доклады собраны в специальном разделе сайта (можно посмотреть здесь), организаторы обещают в скором времени выложить материалы выступлений.

Сама конференция происходила в довольно живописном месте во Орландо, Флорида (США). Не будем скрывать, что самым основным и ожидаемым на всей конференции было представление новой версии фреймворка ExtJS 3.0, и хотя мы уже кратко описывали нововведения, но сделаем это еще раз, по сути это вольная транскрипция основных моментов из ключевого доклада Аарона Конрана (Aaron Conran).
Читать дальше →
Total votes 39: ↑32 and ↓7 +25
Comments 20

DEMOfall09 — а стартапы то не перевелись!

Reading time 5 min
Views 504
demo_logoКак то в этой суете и проблемах забылось, что традиционная конференция стартапов DEMO, несмотря на кризис (и просто страхи, не столько кризиса, сколько муть в умах), прошла по расписанию в начале этого года, и, более того, нельзя сказать, что безуспешно. Конечно, проектов было немного меньше, но это вполне объясняется различными факторами. Но пусть меньше, да лучше — думаю, вы согласитесь. Далее я кратко расскажу, какие проекты были представлены и в чем их основная суть. Более детально вы сможете посмотреть на официальном сайте, благо все выступления доступны для просмотра онлайн. Кстати, жизнь то продолжается, и уже идет подготовка к весенней конференции, которая пройдет 21 — 23 сентября в Сан Диего (США), возможно, ваш стартап как раз заслуживает, чтобы туда поехать?

А теперь детальнее о проектах.
Читать дальше →
Total votes 9: ↑7 and ↓2 +5
Comments 5

Праздник, господа, праздник! ExtJS 3.0 RC1 доступен!

Reading time 2 min
Views 887
ext_bld_logo1Да, на конференции буквально 10 минут назад объявили о выходе следующей версии ExtJS 3.0, обозначив, таким образом, новую веху в истории AJAX-проектов. Кстати, что интересно, это было приурочено ровно к второй годовщине компании — 15 апреля 2007 года вышла версия 1.0, а теперь мы уже видим третью.

Очень кратко список нововведений.
Читать дальше →
Total votes 48: ↑41 and ↓7 +34
Comments 30

AppScale — а построй ка мне Google AppEngine сам? Будет сделано!

Reading time 6 min
Views 1.6K
logoCегодня одна из самых популярных и активных тем какая? Cloud Computing вообще, а один из лучших, оригинальных и ярких его представителей — Google App Engine в частности. Хорошая новость про добавление в платформу возможности работы приложения на Java — может и я попробую, хотя его, в какой то мере конкурент, Stax, о котором я, с прискорбием, никак не напишу, мне намного больше близок и нравиться. Но если вы все же остаетесь приверженцем Python и хотите нечто подобное, но полностью свое — для вас есть хорошая новость. Открытый проект AppScale позволяет развернуть собственную систему облачных вычислений предоставить возможность развертывать и запускать там приложения на Python-е, в принципе, без изменения кода, что для GoogleAppEngine, что написанные специально под систему.
Читать дальше →
Total votes 29: ↑28 and ↓1 +27
Comments 12

Начало нового времени или ExtJS 3.0. Первая бета Ext-Core

Reading time 5 min
Views 3.2K
ext_bld_logo1Так как фреймворк ExtJS уже давно стал нашим основным и любимым инструментом, то мы очень ожидаем предстоящих анонсов на первой конференции для разработчиков и пользователей ExtJS. Пока же «екстовцы» порадовали нас, выпустив уже давно обещанный продукт, да еще и под отличной лицензией (для тех, кому это действительно было важно). И так, мы дождались Ext Core 3.0, видимо, первой ласточки из серии релизов третьей линейки, которую очень ожидаем (в первую очередь, это, конечно, релиз новой версии полного фреймворка, в частности, новые визуальные компоненты). Давайте поближе посмотрим на Ext Core 3.0.
Читать дальше →
Total votes 34: ↑28 and ↓6 +22
Comments 53

RightSignature или правильные подписи документов он-лайн

Reading time 4 min
Views 1.5K
logo1Об электронном документообороте и прочих радостях электронной жизни речь идет уже не первое десятилетие, начиная с изобретения компьютера вообще. Но «воз и ныне там», так как несмотря на легкость и доступность пересылки документов по почте, редактирование и просмотр онлайн в браузере, финальный акт жизни многих документов заключается в банальной распечатке и потом хождению по отделах за подписями и печатями. Но постойте, есть же электронно-цифровые подписи, даже законодательные документы, регламентирующие их оборот. Есть то есть, но сравните — документ с размашистой подписью Самого и обычный набор цифр и букв… как то не то, верно?

Решений для документооборота, включая системы, интегрированные с цифровыми подписями, есть на рынке также достаточно много, как самостоятельных, так и компонентов других систем, CRM, бухгалтерских и т.п. Но онлайн этот бум как то оминул, хотя все больше и больше компаний используют виртуальные офисы или даже вообще полностью онлайновое общение всех сотрудников. Так что спрос на онлайновые системы работы с документами должен быть. И должен быть удовлетворен. Этим и занялся стартап RightSignature.
Читать дальше →
Total votes 21: ↑19 and ↓2 +17
Comments 28

Марш против RDBMS или проекты распределенных хранилищ (key-value stores)

Reading time 5 min
Views 15K
candybar2Вот вы часто создаете проекты? И, наверное, везде применяете базу данных, в частности, MySQL (а кто-то и PostgreSQL). Но вот что интересно, по опыту да и просто после чтения описания различных архитектур видно, что далеко не везде в проекте нужны ключевые особенности баз данных, во многих случаях базу используют просто как некоторое хранилище обычных данных. Например, в системах кеширования базы обычно не применяются, более того, кеширование как раз используют для того, чтобы избежать лишних запросов. А что используют для кеширования наиболее часто? Memcached. А что это такое? Это распределенная система хранения данных на основе хеш-таблицы. В общих чертах, это просто хранилище пар ключ-значение, над которыми можно производить только основные операции — запись, чтение, удаление и проверку на присутствие. Да-да, нет никаких фильтров, выборок, сортировки, самый максимум — система тегов для выборки одним запросом всех связанных записей. И во многих случаях такого функционала вполне достаточно.
Читать дальше →
Total votes 50: ↑48 and ↓2 +46
Comments 31

Автоматическая загрузка библиотеки ExtJS по требованию.

Reading time 5 min
Views 2.2K
Сегодня мы поговорим о возможности динамической предзагрузки библиотеки по требованию. Изначально, для использования фреймворка, Вам надо на странице подключать сначала стилевой файл, потом адаптер, которые реализует основной функционал, а в случае использования другой AJAX-библиотеки в качестве основы, сначала и ее дистрибутив. И только потом уже основной файл ExtJS, либо его debug-версию на этапе разработки. Конечно, сократить время загрузки поможет объединение всех файлов в один, сжатие gzip и другие методики. Но…

Но что, если задача достаточно узкая, например, я столкнулся с ней, когда некоторый веб-сайт использует ExtJS для предоставления формы добавления и редактирования материалов. При этом процесс редактирования он достаточно редкий, в смысле что не каждый пользователь постоянно будет им пользоваться, кроме этого, работа с сайтом в режиме без регистрации отличается только отсутствием возможности редактирования. Загружать же сразу все файлы, а это почти 600 Кб, пусть даже тщательно собранной версии специально под проект, с учетом его потребностей, это достаточно накладно, и не хотелось бы грузить их всем пользователям.
Читать дальше →
Total votes 22: ↑21 and ↓1 +20
Comments 10

Information

Rating
3,877-th
Location
Киев, Киевская обл., Украина
Date of birth
Registered
Activity