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

Журналист утверждает, что нашла ограбивших биржу The DAO на $11 млрд

Децентрализованные сети *Криптовалюты

В 2016 году неизвестные ограбили The DAO — первую автономную децентрализованную сеть на базе Ethereum. Хакер воспользовался уязвимостью в системе безопасности платформы, чтобы перевести 3,64 миллиона ETH — или 31% от общего объема активов DAO — на сторонний аккаунт. Сумма похищенного тогда составляла около $55 млн, а сегодня оценивается в более чем $11 млрд.

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

God object. Анализ сложных проектов

Ненормальное программирование *.NET *

Введение


Ни для кого не секрет, что такой архитектурный антипаттерн как God object препятствует эффективному поддерживанию кода проекта. Однако его все равно можно встретить в Legacy-системах корпоративного сектора. Со временем код становится настолько сложным, что изменить его функциональность, даже при наличии Unit-тестирования, становится большой проблемой. Такие системы никто не хочет поддерживать, все боятся что-либо улучшать, количество проблем в трекере держится постоянным числом, но может и расти. Как правило, у команды упавшее настроение, которое со временем становится чемоданным: все хотят свалить.
Иллюстрация проблемы
Читать дальше →
Всего голосов 35: ↑30 и ↓5 +25
Просмотры 6.6K
Комментарии 18

ActiveRecord vs DAO – Тест потребления памяти и скорости выполнения запросов

Блог компании Арнион Тестирование IT-систем *
Recovery mode
В процессе роста и развития проекта «АвтоОфис — Прием платежей и полная автоматизация продаж» мы столкнулись с тем, что при появлении клиентов имеющих у себя в базах более 100 000+ контактов, одна из основных функций, отвечающих за создания и отправку массовых email-рассылок по базе клиентов данных интернет-магазинов стала безбожно тормозить.

Покопавшись в коде, было выявлено, что при выборках данных, насчитывающих 100 000+ записей из таблиц MySQL с использованием класса ActiveRecord, сильно увеличивается потребление оперативной памяти и времени отработки скриптов. Доходило до того, что одна переменная, хранящая в себе результат выборки из 100 000 записей, потребляла 644 750 972 байт (614 Мб) оперативки, а время выполнения скрипта превышало 50 секунд.

Т.к. 100 000 записей, это мягко говоря, не предел мечтаний, и количество клиентов сервиса АвтоОфис уже давно исчисляется тысячами, мы не могли оставить данную проблему без внимания и не принять меры по её устранению. В итоге описанная выше функция была полностью переписана на выборки с использованием широко известного DAO, что существенно снизило расход ресурсов и увеличило скорость выполнения скрипта.

В процессе перехода наши программисты не поленились и сделали несколько тестов, наглядно показывающие сравнительные характеристики использования ActiveRecord и DAO при попытке выборки из БД MySQL 1, 5, 10, 50, 100, 500, 1 000, 5 000, 10 000, 50 000 и 100 000 записей. С результатами данных тестов и предлагаю Вам ознакомиться прямо сейчас.
Читать дальше →
Всего голосов 29: ↑9 и ↓20 -11
Просмотры 6.4K
Комментарии 21

Разработка веб-приложения

Разработка веб-сайтов *Java *Библиотека ExtJS/Sencha *
Туториал
Привет, Хабр!

При изучении технологий Ext JS и Java, написал web-приложение «Каталог автомобилей». Хочу поделиться с Вами этим опытом.

Вид и функциональность приложения


  • Добавление;
  • Удаление;
  • Редактирование;
  • Поиск;
  • Валидация данных;


Читать дальше →
Всего голосов 77: ↑34 и ↓43 -9
Просмотры 93K
Комментарии 19

StorIO — человеческий API для работы с SQLiteDatabase и ContentResolver

Разработка мобильных приложений *Разработка под Android *
Не секрет, что API SQLiteDatabase и ContentResolver — отстой, поэтому многие стараются от них абстрагироваться. Кто-то выбирает ORM, кто-то DAO, кто-то пишет своё.

За долгие годы Android разработки мы прошли через все эти этапы: ORM часто становится узким местом в критический для проекта момент, своё DAO требует тестирования и разработки, что отнимает много времени, которое можно было тратить на другие детали реализации приложения, готовые DAO в принципе решают вопрос, но различные библиотеки имеют свои плюсы и минусы (15стандартов.jpg), посмотрите, что предлагаем мы:

1. API для людей: удобные билдеры (помните 5-7 nullов в запросах?), читаемые и очевидные конструкции, Immutability и Thread-safety.
2. Упрощенный набор операций: вместо стандартного CRUD (Create-Read-Update-Delete или Insert-Select-Update-Delete) мы предлагаем три операции — Put, Get, Delete, при этом вы имеете полный контроль над их реализацией, можете, например, упороться и хранить один объект в нескольких таблицах и так далее.
3. Опциональный Type-Safe Object Mapping без Reflection, но если вы хотите работать с Cursor или ContentValues — пожалуйста.
4. Некая схожесть с Retrofit: вы можете выполнить любую операцию как блокирующий вызов либо как rx.Observable, мы можем добавить callback модель выполнения операций в будущем.
5. Reactive — Observable из Get операции будет получать уведомления об изменении таблиц в случае SQLite или Uri в случае ContentResolver, это позволяет полностью заменить лоадеры, API которых просто отвратителен.

Читать дальше →
Всего голосов 12: ↑12 и ↓0 +12
Просмотры 13K
Комментарии 9

Data Access Object (DAO). Уровень класса

Разработка веб-сайтов *Java *SQL *
Из песочницы
При проектировании информационной системы выявляются некоторые слои, которые отвечают за взаимодействие различных модулей системы. Соединение с базой данных является одной из важнейшей составляющей приложения. Всегда выделяется часть кода, модуль, отвечающающий за передачу запросов в БД и обработку полученных от неё ответов. В общем случае, определение Data Access Object описывает его как прослойку между БД и системой. DAO абстрагирует сущности системы и делает их отображение на БД, определяет общие методы использования соединения, его получение, закрытие и (или) возвращение в Connection Pool.
Читать дальше →
Всего голосов 14: ↑4 и ↓10 -6
Просмотры 136K
Комментарии 8

Забудьте о DAO, используйте Repository

Программирование *Java *Промышленное программирование *
Недавно задумался о том, чем отличаются паттерны, позволяющие абстрагироваться от работы с хранилищем данных. Много раз поверхностно читал описания и различные реализации DAO и Repository, даже применял их в своих проектах, видимо, до конца не понимая концептуальных отличий. Решил разобраться, закопался в Google и нашел статью, которая для меня разъяснила все. Подумал, что неплохо было бы перевести ее на русский. Оригинал для англочитающих здесь. Остальным интересующимся добро пожаловать под кат.
Читать дальше →
Всего голосов 28: ↑23 и ↓5 +18
Просмотры 161K
Комментарии 14

Децентрализованое управление на базе блокчейна

Управление разработкой *Управление проектами *Управление сообществом *Венчурные инвестиции Бизнес-модели *
Перевод
image

В мире криптовалют все говорят о «Гражданской войне», и не о той, что развязалась между Капитаном Америкой и Железным человеком. Они говорят о гражданской войне в проекте Bitcoin, которая длится уже год. Это ожесточенное сражение за контроль над масштабируемостью.

С одной стороны, есть разработчики Core, которые хотят сохранить ограничение размера блока в 1 Мбайт. Они рассчитывают, что подающая надежды сеть Lightning Network решит любые проблемы с перегрузками.

С другой стороны, есть сторонники из лагеря Bitcoin Classic, которые хотят увеличить ограничение размера блока как минимум до 2 Мбайт. Пока побеждают Core, так как большая часть майнеров Bitcoin придерживается их варианта реализации проекта.

Эти разногласия подняли некоторые фундаментальные вопросы о природе децентрализованного проекта вроде Bitcoin. Кто же в итоге задает направление развития децентрализованного проекта? Кто принимает окончательные решения по разработке? Другими словами, как следует управлять подобным проектом?
Читать дальше →
Всего голосов 14: ↑11 и ↓3 +8
Просмотры 9.1K
Комментарии 19

Криптовалюта Dash: полноценное DAO

Управление разработкой *Управление проектами *Управление сообществом *Венчурные инвестиции Бизнес-модели *
Перевод
image

Недавний стремительный взлёт основанного на децентрализованной платформе «Эфириум» проекта «The DAO (ДАО)» (в ходе запуска которого было собрано порядка 150 млн USD инвестиций), вызвал всеобщее воодушевление относительно концепции Децентрализованных Автономных Организаций. При этом для криптовалюты Dash существование в режиме ДАО — это уже “прошлогодний снег”. В этой переводной статье будут рассказаны подробности об этом.
Читать дальше →
Всего голосов 8: ↑3 и ↓5 -2
Просмотры 4.1K
Комментарии 0

Криптовалюта Dash: Симбиоз человека и кода

Управление разработкой *Управление проектами *Венчурные инвестиции Развитие стартапа Бизнес-модели *
Перевод
image

Даже по меркам мира криптовалют проект “The DAO” недавно получил беспрецедентную огласку после релиза. Её рекламировали как истинно децентрализованную автономную организацию, The DAO обещала стать будущим смарт-контрактов. Тем не менее, несколько недель назад кто-то воспользовался уязвимостью в коде The DAO и переписал на себя свыше 3,6 миллионов токенов Эфира (т.е. на сумму более 60.000.000 USD по курсу на момент инцидента).

Многие средства массовой информации называли это «атакой», хотя с этим можно и не согласиться, если учесть, что программный код в “The DAO” является законом, а значит тот, кто пользуется уязвимостями кода, не сделал ничего незаконного и даже неэтичного.
Читать дальше →
Всего голосов 6: ↑3 и ↓3 0
Просмотры 4.5K
Комментарии 34

Реформа SQL-ориентированного подхода в DAO

Программирование *Java *

Вводная


Мне часто в проектах приходится сталкиваться с фреймворками по работе с БД. Концептуально, эти фреймворки можно разбить на 2 больших класса:

  • ORM-ориентированные
  • SQL-ориентированные

Некоторые из них хороши, какие-то не очень. Но субъективно могу сказать: SQL-ориентированные уступают в развитии ORM-ориентированным. Подчеркну, в развитии, а не в возможностях. Хоть изменить эту чашу весов и не получится, но предложить необычный взгляд на мир SQL-ориентированного подхода — вполне. Кому интересно, добро пожаловать под кат
Читать дальше →
Всего голосов 11: ↑11 и ↓0 +11
Просмотры 12K
Комментарии 37

Путь Ethereum на передовую мира блокчейн

Блог компании Wirex Краудсорсинг Финансы в IT Криптовалюты
imageЗа последние 3 года развития Биткойна мы увидели появление многих инфраструктурных приложений, большую часть из которых составляли биржи и кошельки. Но на этом список практически значимых и по-настоящему новых разработок на базе Биткойн заканчивается. Чем же можно объяснить такую ситуацию?

Существует теория, которая заключается в том, что скриптовый язык Биткойн — та сама часть каждой биткойн-операции, которая позволяет вам запускать небольшую программу в ходе этой операции — слишком ограничена в возможностях. В этом контексте соучредитель Coinbase Фред Эсем (Fred Ehrsam) предлагает обратить внимание на Ethereum, появление которого, по его мнению, можно сравнить с изобретением полноценного компьютера, пришедшего на смену рассчитанному на 4 действия калькулятору по имени Биткойн. На первый взгляд нам в Wirex, финтех стартапе, предоставляющем услуги платежей и денежных переводов без банковского посредничества и с использованием blockchain, сравнение Эсема показалось немного грубоватым, но вынуждены согласиться, что такая точка зрения имеет право на жизнь. Кому нужны аргументы, приглашаем под кат.
Читать дальше →
Всего голосов 17: ↑12 и ↓5 +7
Просмотры 18K
Комментарии 19

Учимся писать Waves смарт-контракты на RIDE и RIDE4DAPPS. Часть 1 (Многопользовательский кошелек)

Scala *Хакатоны
Туториал


Всем привет!


Совсем недавно Waves Labs анонсировал конкурс для разработчиков приуроченный к релизу в тестовую сеть расширения языка смарт-контрактов RIDE для децентрализованных приложений Ride4Dapps!


Мы выбрали кейс DAO, так как Ventuary планирует заниматься разработкой dApp с социальными функциями: голосованием, фандрейзингом, доверительным управлением и пр.


Мы начали работу с простого примера в Q&A-сессии и в RIDE IDE — примере с общим кошельком.

Читать дальше →
Всего голосов 12: ↑9 и ↓3 +6
Просмотры 2.6K
Комментарии 3

Учимся писать Waves смарт-контракты на RIDE и RIDE4DAPPS. Часть 2 (DAO — Decentralized Autonomous Organization)

Scala *Хакатоны


Всем привет!


В первой части мы подробно рассмотрели как создавать и работать с dApp (децентрализованным приложением) в Waves RIDE IDE.


Давайте сейчас немного потестируем разобраный пример.


Этап 3. Тестирование dApp аккаунта

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

Помощник по работе с базами данных GreenPig

PHP *MySQL *Oracle *
Из песочницы
  1. Вступление
  2. Подключение библиотеки
  3. Класс Where
  4. Класс Join
  5. Класс Query

      ╔═══╗╔═══╗╔═══╗╔═══╗╔╗─╔╗────╔═══╗╔══╗╔═══╗
      ║╔══╝║╔═╗║║╔══╝║╔══╝║╚═╝║────║╔═╗║╚╗╔╝║╔══╝
      ║║╔═╗║╚═╝║║╚══╗║╚══╗║╔╗─║────║╚═╝║─║║─║║╔═╗
      ║║╚╗║║╔╗╔╝║╔══╝║╔══╝║║╚╗║────║╔══╝─║║─║║╚╗║
      ║╚═╝║║║║║─║╚══╗║╚══╗║║─║║────║║───╔╝╚╗║╚═╝║
      ╚═══╝╚╝╚╝─╚═══╝╚═══╝╚╝─╚╝────╚╝───╚══╝╚═══╝

                            5HHHG
                 HH       HHHHHHH
               9HHHA    HHHHHHHH5
              HHHHHHHHHHHHHHHHHH  9HHHHH5
            5HHHHHHHHHHHHHHHHHHHHHHHHHHH
           HHHHHHHHHHHHHHHHHHHHHHHHHHHH
         ;HHHHHHHHHHHHHHHHHHHHHHHHHHA
          H2   HHHHHHHHHHHHHHHHHHHHHH
               HHHHHHHHHHHHHHHHHHHHHHH9
                HHHHHHHHHHHHHHHHHHHHHHH
                AHHHHHHHHHHHHHHHHHHHHHH
                 HHHHHHHHHHHHHHHHHHHHH9  iHS
                  HHHHHHHHHHHHHHHHHHHHHHhh
                   HHHHHHHHHHHHHHHHHH
                  AA HHHHHHHHHHHHHH3
                 &H  Hi         HS Hr
                 &  H&          H&  Hi
Читать дальше →
Всего голосов 10: ↑9 и ↓1 +8
Просмотры 2.2K
Комментарии 13

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

Блог компании QIWI PostgreSQL *Kotlin *Микросервисы *Kubernetes *
На дворе 2020 год и фоновым шумом вы уже привыкли слышать: «Кубернетес — это ответ!», «Микросервисы!», «Сервис меш!», «Сесурити полиси!». Все вокруг бегут в светлое будущее.

Подходы в том, что касается баз данных, в нашей компании более консервативны, чем в прикладных приложениях. Крутится база данных у нас не в кубернетесе, а на железе или в виртуалке. Для изменений базы данных процессинга платежных сервисов у нас есть устоявшийся процесс, который включает в себя множество автоматических проверок, большое ревью и релиз с участием DBA. Количество проверок и привлекаемых людей в этом случае негативно влияет на time-to-market. С другой стороны, он отлажен и позволяет надежно вносить изменения в продакшен, минимизируя вероятность что-то сломать. А если что-то сломалось, то нужные люди уже включены в процесс починки. Этот подход делает работу основного сервиса компании стабильнее.

Большинство новых реляционных баз данных для микросервисов мы заводим на PostgreSQL. Отлаженный процесс для Oracle хоть и надёжный, но несет с собой избыточную сложность для маленьких БД. Тащить тяжёлые процессы из прошлого в светлое будущее никто не хочет. Проработкой процесса для светлого будущего заранее никто не занялся. В итоге получили отсутствие стандарта и разножопицу.



Если хотите узнать, к каким проблемам это привело и как мы их порешали, — добро пожаловать под кат.
Читать дальше →
Всего голосов 36: ↑36 и ↓0 +36
Просмотры 14K
Комментарии 34

Sushi Drama: как конфликт в команде SushiSwap чуть не убил перспективный проект

Управление проектами *Управление персоналом *Карьера в IT-индустрии Криптовалюты

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

И похоже, что сейчас я как раз наблюдаю именно такой тренд: это массовое появление и развитие децентрализованных организаций блокчейн и криптостартапах с интересными механизмами (само)управления. Речь о DAO и близких к ним явлениях. Сейчас об этом начинают говорить все больше, но есть стойкое ощущение, что настоящее цунами придет именно в 2022-2023 годах.

Читать далее
Всего голосов 25: ↑16 и ↓9 +7
Просмотры 2K
Комментарии 19

Сила @RawQuery. Сокращаем код DAO на 90%

Разработка под Android *SQLite *Kotlin *
Из песочницы

Вы когда-нибудь задумывались над тем что ваши Dao это сплошной повторяющийся код и выглядит это все как ночной кошмар? Тогда я знаю решение вашей проблемы.

Читать далее
Всего голосов 10: ↑8 и ↓2 +6
Просмотры 4.5K
Комментарии 6

Поиск своего племени, начало

Я пиарюсь

Долгой жизни и процветания коллеги!

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

Так уж вышло, что сколько себя помню, всегда был сам по себе, себе на уме, немного не от мира сего и прочие определения гика-нелюдимого. И конечно, не планировал становится предпринимателем, управлять и организовывать, мне просто нравилось придумывать и создавать что-то, пусть в виртуальном, но все же мире, в котором есть свобода и творчество. Но сегодня за плечами уже 20 лет IT предпринимательства, поиска и формирования себя и своего окружения. О чем писал в прошлых заметках.

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

Читать далее
Всего голосов 40: ↑12 и ↓28 -16
Просмотры 5K
Комментарии 37

Почему все говорят про ДАО. В чем суть, и как они делаются

Блог компании Compot 2022 Децентрализованные сети *Управление сообществом *Социальные сети и сообщества

Будем откровенны – про ДАО говорят далеко не все. К относительно широкой аудитории это слово только начало прокладывать путь. Американский Forbes выпустил колонку на тему «Что такое ДАО» в прошлом году, NY Times и The Economist написали свои объяснения уже в 2022-м. Издания подчеркивают, что ДАО – явление зарождающееся, и говорить о том, насколько оно успешно, рано. Однако осторожно называют его «захватывающим экспериментом, набирающим обороты» и «одним из наиболее быстрорастущих сегментов крипто экосистемы».

Энтузиасты, тем временем, прогнозируют, что уже через год-два будут ежедневно появляться тысячи новых ДАО. Люди будут использовать их не только для бизнеса, но и для решения благотворительных, социальных, коммуникационных задач.

В этой статье мы пытаемся ответить на самые распространенные вопросы, возникающие у людей, которые впервые слышат про ДАО. В дальнейших статьях мы будем углубляться в эту тему и рассматривать ее с разных сторон.

Авторы: Катерина Никитина, Дмитрий Илюшин, Артем Жиганов

Иллюстратор: Serafima Goldenberg

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