• Смарт контракты Ethereum: что делать при ошибке в смартконтракте или техники миграции

      При написании смартконтрактов важно помнить, что после загрузки в блокчейн, они уже не могут быть изменены, а следовательно, не могут быть внесены какие-либо улучшения или исправлены какие-то найденные ошибки! Все мы знаем, что ошибки есть в любой программе, а вернувшись к написанному пару месяцев назад коду мы всегда найдем, что там можно улучшить. Как же быть? Единственно возможный вариант – это загрузить новый контракт с исправленным кодом. Но как же быть, если на базе имеющегося контракта уже выпущены токены? На помощь нам приходит миграция! За последний год я попробовал много разных техник ее реализации, проанализировал применяемые в других крупных блокчейн проектах и что-то поизобретал сам. Подробности под катом.

      Читать дальше →
    • Как умные контракты изменят нашу жизнь

        Что такое умные контракты, как они работают и почему будущее именно за ними.



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

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

          Добрый день! Ранее у нас в блоге были посты на блокчейн темы, в которых нередко возникали дискуссии о распределенных вычислениях в блокчейне. По мотивам этих дискуссий и возник этот пост.

          Итак давайте попробуем сегодня разобраться, что такое смарт-контракты (умные контракты). Сначала мы достаточно общо обсудим сам концепт, а потом немного копнем в реализацию смарт-контрактов на примере блокчейна Ethereum.
          Читать дальше →
        • Язык R в помощь хабра-статисту

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

          Цель: Собрать средствами языка R данные с любимого HabraHabr'а и провести, собственно то, для чего и был создан язык R, а именно: статистический анализ.

          Итак, прочтя этот топик вы узнаете:
          • Как можно использовать R для извлечения данных из Web ресурсов
          • Как преобразовывать данные для последующего анализа
          • Какие ресурсы крайне рекомендуются к прочтению всем желающим познакомиться с R поближе


          Ожидается, что читатель достаточно самостоятелен, чтобы самому ознакомиться с основными конструкциями языка. Для этого как никак лучше подойдут ссылки в конце статьи.

          Приступим!
        • Какие бывают типы OutOfMemoryError или из каких частей состоит память java процесса

            Если вы словили OutOfMemoryError, то это вовсе не значит, что ваше приложение создает много объектов, которые не могут почиститься сборщиком мусора и заполняют всю память, выделенную вами с помощью параметра -Xmx. Я, как минимум, могу придумать два других случая, когда вы можете увидеть эту ошибку. Дело в том, что память java процесса не ограничивается областью -Xmx, где ваше приложение программно создает объекты.

            image

            Читать дальше →
          • Petya.A, Petya.C, PetrWrap или PetyaCry? Новая вирусная угроза для компаний России и Украины

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

              27 июня 2017 г. зарегистрирована масштабная хакерская атака на серверы и рабочие станции сетей крупных российских, украинских компаний, организаций по всему миру, перечень которых пополняется непрерывно и в соцсетях появляется все больше подобных фотографий:



              Вирусом является модификация нашумевшего в 2016 году шифровальщика-вымогателя Petya.A/Petya.C. Распространяется новый вирус Petya.C несколькими способами:

              • путем эксплуатации уязвимости в SMB MS17-010 (аналогично майскому Wanna Cry);
              • путем направленной отправки вредоносного ПО по электронной почте
              • использующаяся уязвимость для исполнения вредоносного кода: CVE-2017-0199
              • использующаяся уязвимость для распространения и заражения: CVE-2017-0144, он же EternalBlue
              Читать дальше →
            • Украина подверглась самой крупной в истории кибератаке вирусом Petya

                image

                Сегодня утром ко мне обратились мои клиенты с паническим криком «Никита, у нас все зашифровано. Как это произошло?». Это была крупная компания 1000+ машин, с последними обновлениями лицензионного Windows, настроенным файрволом, порезанными правами для юзеров и антифишинг фильтрами для почтовиков.

                Спустя час позвонили представители другой крупной компании, у них тоже все зашифровано, под 2000 машин. Атака началась с крупных бизнес структур и уже час или два спустя я узнал, что «Ощадбанк», «УкрПочта», «ТАСКомерцбанк», «ОТР банк» под атакой (полный список в UPD5).

                Что случилось? И о развитии ситуации под катом.
                Читать дальше →
              • Павел Дуров представил издательский сервис Telegraph


                  Основатель социальной сети «Вконтакте» и мессенджера Telegram Павел Дуров вместе со своей командой представил новый издательский сервис Telegraph. Ресурс радикально отличается от прочих платформ своим минимализмом и анонимностью.

                  «Сегодня мы запускаем Телеграф — издательский инструмент, который позволяет создавать публикации, обзоры, вставлять фотографии и все виды embedded-кода. Также „телеграфные“ посты будут отлично смотреться в качестве Telegram-сообщений», — говорится в официальном блоге мессенджера.
                  Читать дальше →
                • Угроза ИИ – не Skynet, а исчезновение среднего класса

                  • Translation
                  image

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

                  Через 42 года ещё одна группа учёных собралась в Асиломаре, чтобы рассмотреть схожую проблему. Но на этот раз угроза была не биологической, а цифровой. В январе лучшие исследователи в области ИИ шли теми же дорогами, обсуждая быстро расширяющуюся область их интересов, и ту роль, которую оно сыграет в судьбе человечества. Конференция была частной – чудовищность темы этого заслуживает – но затем организаторы выпустили несколько видеороликов с докладами, а некоторые готовы были обсудить их личный опыт и пролить свет на то, как исследователи ИИ видят угрозу, исходящую от их собственного поля деятельности.
                  Читать дальше →
                • Юнит-тестирование для чайников

                  • Tutorial
                  Даже если вы никогда в жизни не думали, что занимаетесь тестированием, вы это делаете. Вы собираете свое приложение, нажимаете кнопку и проверяете, соответствует ли полученный результат вашим ожиданиям. Достаточно часто в приложении можно встретить формочки с кнопкой “Test it” или классы с названием TestController или MyServiceTestClient.



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

                  Оно выполняет свою задачу, но сложно для автоматизации. Как правило, тесты требуют, чтобы вся или почти вся система была развернута и сконфигурирована на машине, на которой они выполняются. Предположим, что вы разрабатываете web-приложение с UI и веб-сервисами. Минимальная комплектация, которая вам потребуется: браузер, веб-сервер, правильно настроенные веб-сервисы и база данных. На практике все еще сложнее. Разворачивать всё это на билд-сервере и всех машинах разработчиков?

                  We need to go deeper
                • Компьютерное зрение на Java для Android. Обзор библиотеки BoofCV

                    Наверное, каждый Android программист хотя бы раз задумывался о написание чего-нибудь полезного с использованием компьютерного зрения или дополненной реальности. А некоторые даже написали hello, word при помощи opencv, которую таки портировали и на Android. К сожалению, если мы захотим написать что-то серьезное, мы обнаружим, что набор библиотек с уже реализованными функциями Computer Vision не так велик, особенно это касается платформы Android. Чаще всего для этой цели используют opencv, написанную на C++ либо пишут свои велосипеды, что в общем тоже хорошо, но не так быстро, как хотелось бы в плане реализации. Однако, не все так плохо. Существует такой замечательный проект BoofCV, который представляет из себя библиотеку компьютерного зрения, написанную на чистом Java. Последние две буквы в названии библиотеки означают именно то, о чем вы подумали. А в последнем релизе появилась долгожданная поддержка Android. Ниже мы рассмотрим основные плюшки, предоставляемые библиотекой на конкретном примере.
                    Читать дальше →
                  • Синтаксический анализ текстов с помощью SyntaxNet

                      Для одной из задач мне понадобился синтаксический анализатор русскоязычных текстов. Что это такое. Например, у нас есть предложение «Мама мыла раму». Нам нужно получить связи слов в этом предложении в виде дерева:

                      image

                      Из этого дерева понятно, что связаны слова «мама» и «мыла», а также «мыла» и «раму», а слова «мама» и «раму» напрямую не связаны.

                      Статья будет полезна тем, кому понадобился синтаксический анализатор, но не понятно, с чего начать.

                      Я занимался этой темой несколько месяцев назад, и на тот момент нашел не много информации по поводу того, где бы взять готовый и желательно свободный анализатор.
                      Читать дальше →
                    • Как производят PLA для 3d-принтеров. Репортаж из цеха

                        Пистолетный выстрел послужил сигналом создать бизнес.

                        Дабы развеять мифы о том, что катушки с пластиком для 3d-принтеров растут на деревьях можно только покупать и перепродавать, а так же о том, что достаточно купить «все-в-одном» экструдер и начать свой бизнес, я отправился на разведку к московским производителям ABS и PLA (и HIPS). Действительно, я попал в профессиональный цех с промышленным оборудованием, с измерительными и управляющими приборами высокой точности, высокими стандартами к чистоте (ибо процесс производства очень ответственный) и общительными основателями (готовыми делиться знаниями с любознательной и думающей аудиторией), у которых куча технокреативных идей и планов по захвату мира рынка. (+5 к уровню национальной гордости)

                        Как рассказал мне со-основатель компании: «Сначала мы увидели распечатанный нож для фруктов, и очищенный им от кожуры апельсин, затем шоком было видео с пистолетом Коди Уилсона и понеслось...»
                        В то время когда я написал на Хабре первые 2 статьи про 3d-принтеры (весна 2013), эти ребята уже начали создавать бизнес по производству пластика. Интересно, что и мне и им пришла в голову аналогичная идея, как можно дополнить поговорку, мол, человек может бесконечно смотреть на огонь, воду, как работает другой человек и на то, как печатает 3d-принтер.




                        Полилакти́д (ПЛА, PLA) — биоразлагаемый, биосовместимый, термопластичный, алифатический полиэфир, мономером которого является молочная кислота. Сырьем для производства служат ежегодно возобновляемые ресурсы, такие как кукуруза и сахарный тростник. Используется для производства изделий с коротким сроком службы (пищевая упаковка, одноразовая посуда, пакеты, различная тара), а также в медицине, для производства хирургических нитей и штифтов.

                        image
                        Под катом — основные этапы превращения сырья в катушки с PLA для 3d-принтеров
                        Читать дальше →
                      • ASO оптимизация. Составление семантического ядра для магазинов приложений

                        • Tutorial
                        Всем привет! Меня зовут Владимир Баранов, я занимаюсь ASO и обладаю экспертизой в оптимизации приложений, начиная от малобюджетных читалок, заканчивая приложениями с многомиллионной аудиторией: дейтингами, играми и чатами.

                        Это будет первая статья цикла “Популяризация ASO”. В этом цикле я опишу все этапы оптимизации приложения, какими сервисами пользуюсь и на что нужно обращать внимание при проведении оптимизации.

                        Конкретно эта статья будет про составление семантическая ядра. И да, она будет полезна для владельцев приложений всех сторов и разработчиков, т.к. мы рассмотрим концепцию сбора семантического ядра, которую можно применять к любому магазину приложений. Также, будет рассмотрено несколько очень полезных инструментов, которыми я пользуюсь при его сборе.
                        Читать дальше →
                      • Oracle прекратила разработку Java EE?



                          Прошло два года с момента выпуска Java 8 и многие с нетерпением ожидают выхода Java 9, который отодвинули на март 2017 года.

                          Тем временем в лагере разработчиков Java накаляются страсти. Будущее серверной платформы Java Platform, Enterprise Edition (Java EE) выглядит крайне смутно. Месяц назад компания Oracle объявила о значительной задержке с выпуском Java EE 8, и это был первый звонок. Как сейчас стало известно изданию Ars Technica, компания Oracle вовсе прекратила финансирование и разработку Java EE. Издание пишет, что традиционная бизнес-модель Oracle сейчас напрямую угрожает самому существованию платформы Java.

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

                          Если что-то не приносит денег, то нет причин это разрабатывать, считает Oracle. Обычный бизнес, ничего личного. И ничего нового для всех, кто знает историю Oracle.
                          Читать дальше →
                        • Крутая идея онлайн-бизнеса. Как заработать на чужом имени, чужом сайте и даже не имея товара

                            Началась история с того, что один из моих сайтов стал скачивать подозрительный робот. Это был не Яндекс-бот и не Гугл-бот и вообще ни один из известных поисковиков. Подозрение подкреплялось тем, что Useragent был странный — curl/<ЧТО-ТО>, а Referer — d:/<ЧТО-ТО ЕЩЕ>. Единственной целью таких роботов является кража контента с атакуемого ресурса…

                            Около двух месяцев все не доходили руки поискать злобного парсера — понять, на каком другом домене выкладывается мой ценнейший контент (шутка). Я только иногда запрещал на уровне php-кода некоторые значения Useragent и Referer, но мой таинственный друг их подправлял и снова приходил на сайт с ненужной нагрузкой.

                            И вот, руки дошли!
                            Читать дальше →
                          • Сколько нужно нейронов, чтобы распознать сводку моста?

                              История началась, когда я переехал жить на остров Декабристов в Санкт-Петербурге. Ночью, когда мосты развели, этот остров вместе с Васильевским полностью изолирован от большой земли. Мосты при этом нередко сводят досрочно, иногда на час раньше опубликованного расписания, но оперативной информации об этом нигде нет.


                              После второго "опоздания" на мосты, я задумался об источниках информации о досрочной сводке мостов. Одним из пришедших в голову вариантов была информация с публичных веб-камер. Вооружившись этими данными и остаточными знаниями со специализации по ML от МФТИ и Яндекса, я решил попробовать решить задачу "в лоб".


                              0, Дворцовый
                              Картинки и кишочки под катом
                            • JavaFX WebView (HTML/JS) — используем web практики для разработки desktop приложений

                                image
                                Базовым UI фреймворком для нашего приложения был выбрана JavaFX. JavaFX прекрасно показала себя. В этой же статье мы хотели сконцентрироваться на одном компоненте JavaFX — WebView.

                                При разработке нашего приложения — интерфейса COLT — мы использовали набирающий популярность среди девелоперов подход, когда часть компонентов UI реализуется на JavaScript/HTML.
                                Читать дальше →
                              • Шпаргалка Java-программиста 5. Двести пятьдесят русскоязычных обучающих видео докладов и лекций о Java

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



                                  Поэтому я подготовил данный сборник видео докладов на русском языке с различных конференций (Joker, JPoint, JavaDays, JEEConf, конечно, с DEV labs, которые организовывает Luxoft), и, естественно, видео из канала Luxoft Training Center. Всё видео разделено на различные категории и при необходимости добавлено описание.

                                  Update: Внимание, актуальная версия со всеми ссылками на видео находиться теперь в моем github'e проекте useful-java-links, по этой ссылке.


                                  Читать дальше →
                                • Нечёткий поиск в тексте и словаре

                                    Введение


                                    Алгоритмы нечеткого поиска (также известного как поиск по сходству или fuzzy string search) являются основой систем проверки орфографии и полноценных поисковых систем вроде Google или Yandex. Например, такие алгоритмы используются для функций наподобие «Возможно вы имели в виду …» в тех же поисковых системах.

                                    В этой обзорной статье я рассмотрю следующие понятия, методы и алгоритмы:
                                    • Расстояние Левенштейна
                                    • Расстояние Дамерау-Левенштейна
                                    • Алгоритм Bitap с модификациями от Wu и Manber
                                    • Алгоритм расширения выборки
                                    • Метод N-грамм
                                    • Хеширование по сигнатуре
                                    • BK-деревья
                                    А также проведу сравнительное тестирование качества и производительности алгоритмов.
                                    Читать дальше →