• Назло Роскомнадзору: список зеркал для t.me без рекламы

      Одна из проблем, вызванных попытками Роскомнадзора заблокировать доступ к «Телеграму» на территории России стали перебои с работой внешних ссылок на каналы и профили вида t.me/habr_com. При попытке перейти по ссылке без включённого VPN или прокси появляется страница «Не удалось получить доступ к сайту». Впрочем, кому война, а кому мать родна — как это и бывает, попытки Росокомнадзора создать трудности для одних, открыли возможности для других. Справиться с проблемой поможет простая смена адреса, поэтому на свет появилось уже несколько сервисов, предоставляющих функционал t.me ему на замену. Некоторые из них увешаны баннерами или предложениями их купить, но для этого обзора я отобрал сервисы без рекламы.

      Читать дальше →
    • DataArt запустил игровую платформу самопроверки знаний для IT-специалистов



        Даниэль Лурье, главный редактор DataArt.

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

        Первая — оценка профессионального уровня коллег. За последние десять лет мы выросли с 400 человек до 2500, и люди продолжают к нам приходить, DataArt уже работает в 10 странах и 20 городах по всему миру. Как у любой организации, у нас, конечно, есть система оценки квалификации при приеме на работу. Сложнее оценить тех, кто работает с нами не первый год и все время развивается. Отчасти для этого технологические сообщества внутри DataArt устраивают «селф-чеки» — добровольные экзамены или олимпиады, на которых каждый может себя адекватно оценить и понять, что еще ему надо подтянуть, в какую сторону развиваться. Процесс этот довольно трудоемкий — на придумывание задач, организацию «селф-чека» и проверку результатов уходило немало времени и сил самых опытных коллег. Разработчики задались вопросом, как упростить жизнь себе и остальным.
        Читать дальше →
      • Развертывание кластера Postgres-xl для чайников

        Здравствуйте. Хочу поделиться с хабровчанами своим опытом развертывания кластера Postgres-xl в виде мини-инструкции для «чайников». Статей и мануалов на тему развертывания кластера postgres-xl не то чтобы много, но достаточно. И в них всех есть пару существенных недостатков на взгляд такого человека как я, который никогда прежде не занимался кластеризацией и тем более никогда прежде не работал в линукс-подобных осях. Все статьи подобного рода написаны для людей уже более-менее знакомых с линуксом и развертыванием postgresql/postgres-xl на таком окружении.

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

        Так как много статей «для опытных» уже написано, и на хабре тоже, я опущу описание самого Postgres-xl, его компонентов и их типов (ролей).
        Читать дальше →
      • Расследование одного взлома или как быстро и просто потратить миллиард

          UPDATE: Всем привет! Сегодня с удивлением узнал от коллег об этой записи. Выяснилось, что мой аккаунт взломали — представители Хабрахабра это подтвердили и восстановили мне доступ и сейчас разбираются, как так получилось. Но я оставляю эту запись как есть, для истории.
          В комментариях уже отметились представители Яндекса: говорят, что уязвимость закрыта, ведётся аудит безопасности софта.

          И, пользуясь случаем, хочу напомнить, что у нас в Badoo уже несколько лет идет программа "Проверь Badoo на прочность" и мы платим за найденные уязвимости.


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

          Описываемый далее случай интересен именно с точки зрения взлома бизнеса, хотя статья больше посвящена взлому в смысле IT.

          Начну с нетехнической части.
          Читать дальше →
        • Внезапный диван леопардовой расцветки

            Если вы интересуетесь искусственным интеллектом и прочим распознаванием, то наверняка уже видели эту картинку:


            А если не видели, то это результаты Хинтона и Крижевского по классификации ImageNet-2010 глубокой сверточной сетью

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

            Это вообще довольно любопытный результат, если задуматься. Потому что… скажем, вы знаете, как отличить одного большого пятнистого котика от другого большого пятнистого котика? Я, например, нет. Наверняка есть какие-то зоологические, достаточно тонкие различия, типа общей стройности/массивности и пропорций тела, но мы же все-таки говорим о компьютерном алгоритме, которые до сих пор допускают какие-то вот такие достаточно глупые с человеческой точки зрения ошибки. Как он это делает, черт возьми? Может, тут что-то связанное с контекстом и фоном (леопарда вероятнее обнаружить на дереве или в кустах, а гепарда в саванне)? В общем, когда я впервые задумался над конкретно этим результатом, мне показалось, что это очень круто и мощно, разумные машины где-то за углом и поджидают нас, да здравствует deep learning и все такое.

            Так вот, на самом деле все совершенно не так.
            под катом пятна
          • Как мы выиграли Thack 2015 Berlin

              image

              Привет, ГТ!

              Меня зовут Денис Цыплаков, я — Solution Architect в DataArt.
              В конце февраля этого года команда DataArt участвовала в travel-хакатоне THack 2015 Berlin и выиграла главный приз для больших команд. Проводил хакатон онлайн-журнал Tnooz.
              Ниже расскажу, как это было. И почему мы выиграли.

              Коротко о конкурсе.

              Tnooz — один из крупнейших информационных ресурсов, посвященных технологиям в сфере туризма.

              Он существует с 2009 года. Основная тематика издания — travel-технологии. Эксперты, пишущие для Tnooz о трендах и перспективах индустрии, живут по всему миру. Кевин Мэй, редактор и один из создателей ресурса, до этого около четырех лет был редактором в известном английском журнале Travolution.

              Кроме онлайн-новостей и аналитики, Tnooz ведет серию успешных проектов: хакатоны THack, презентации TLabs, серия встреч Appy Hour и различные вебинары.
              Читать дальше →
            • Что нам стоит Cache построить?


                Написано не мало хороших статей на тему «Что, как и где кешировать». Так почему же ещё раз мусолить эту тему? А потому что тема достаточно важная, а многие, пока не столкнуться с конкретными проблемами, не считают нужным с ней разбираться. Так что аудитория, на которую я рассчитываю, это те, кто к моменту выхода уже существующих статей были в них не заинтересованы, но сейчас интерес есть, и они не пройдут мимо.

                Я постараюсь кратко осветить основные моменты организации кеширования, после чего рассмотрю новшества .Net Framework 4.0, которые должны упростить жизнь разработчиков (речь пойдёт о In-memory кеше вне ASP.NET инфраструктуры).
                Читать дальше →
                • +11
                • 22,4k
                • 9
              • В поисках справедливости: Очевидные принципы мотивации профессионалов, которые не сразу пришли в голову



                  Привет, Мегамозг!

                  Сегодня мы хотели бы поделиться текстом Михаила Завилейского, генерального директора DataArt и автора другой замечательной статьи о менеджменте. Надеемся, вам понравится!

                  Disclaimer и благодарности

                  Хочется поделиться множеством мыслей, которые стали моими существенно позднее, чем мне хотелось бы и не пришли в мою голову «сами по себе». Просто довелось нечто услышать, увидеть, прочитать или получить совет, и в голове что-то «встало на место». Я бы хотел сказать спасибо всем поимённо, но не могу — помню только книжки Дэвида Майстера, пересказы семинаров Михаила Гринфельда и еще лица полудюжины умнейших людей, чьи имена я забыл… А скольких уже совсем не помню, но всё равно — всем спасибо! И вдруг еще кому-то пригодятся ваши идеи.
                  Читать дальше →
                  • +17
                  • 26,4k
                  • 4
                • Утверждён профстандарт менеджера ИТ-продуктов

                    Министр труда Российской Федерации утвердил профессиональный стандарт Менеджера продуктов в области информационных технологий, который в 2013-м году разработала рабочая группа по созданию профстандарта, сообщил Денис Бесков на сайте Школы управления продуктами.

                    Стандарт может стать основой для разработки:

                    • Должностных инструкций;
                    • Текстов вакансий;
                    • Корпоративных профилей компетенций;
                    • Планов профессионального развития;
                    • Сертификационных программ и тестов;
                    • Коммерческих учебных программ;
                    • Федеральных образовательных программ.


                    С текстом стандарта можно ознакомиться по ссылке (*.pdf).
                    Читать дальше →
                  • Меня беспокоит Agile, и я хочу об этом поговорить

                      image

                      Меня зовут Екатерина Шалапанова, в DataArt я работаю с 2008 года, занимаюсь в основном управлением проектами. Иногда, правда, совмещаю эту роль с ролью системного аналитика. В индустрии с 2000 года, начинала карьеру программистом и незаметно для себя переродилась в менеджера, которой интересно заниматься смежными областями. Сразу уточню, что мое мнение может не совпадать с позицией компании, которую я тут представляю.

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

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

                      Всем доброго дня!

                      После прочтения нескольких статей на хабре о пластиковых картах, POS терминалах и сопутствующих вещах, мне показалось, что эта тема довольно интересна сообществу. В данной небольшой публикации я хочу окончательно разобрать тему ввода PIN–кода на POS терминалах и ответить, наконец, в меру своих знаний, на вопрос: почему же в одних случаях требуется ввод PIN, а в других — нет?
                      Читать дальше →
                    • Поговорим за Hadoop

                      • Tutorial
                      image

                      Введение

                      Как человеку с не очень устойчивой психикой, мне достаточно одного взгляда на картинку, подобную этой, для начала панической атаки. Но я решил, что страдать буду только сам. Цель статьи — сделать так, чтобы Hadoop выглядел не таким страшным.

                      Что будет в этой статье:

                      • Разберем, из чего состоит фреймворк и зачем он нужен;
                      • разберем вопрос безболезненного развертывания кластера;
                      • посмотрим на конкретный пример;
                      • немного коснемся новых фич Hadoop 2 (Namenode Federation, Map/Reduce v2).


                      Чего не будет в этой статье:

                      • вообще статья обзорная, поэтому без сложностей;
                      • не будем лезть в тонкости экосистемы;
                      • не будем зарываться глубоко в дебри API;
                      • не будем рассматривать все околоdevops-задачи.

                      Читать дальше →
                      • +9
                      • 40,1k
                      • 5
                    • Хроники Боба

                      • Перевод

                      15-летию легендарного провала посвящается


                      Как максимально точно намекнуть, что программа поганая и толку от неё нет? Очень просто: сравните её с Microsoft Bob. Расскажите о печально известном приложении Windows 3.1, призванному помочь комьютерным новичкам, официальный релиз которого состоялся ровно пятнадцать лет назад 31 марта 1995 года, — и вам не надо будет что-то добавлять. Все от OS X до Twitter, и до Google Wave, и до (что неизбежно) Windows Vista усвоили этот урок.

                      Боб, ставший ругательством, надолго пережил, короткий период жизни Боба как продукта. Вряд ли подавляющее большинство людей, сейчас использующих его как синоним к «полный технический провал», хоть раз работали с этим продуктом. Так же мало, как количество реальных водителей Ford Edsel среди шутников о нём.

                      Но Боб стартовал не как продукт, над которым нужно смеяться. Сейчас кажется очевидным, откуда взялась у Боба такая репутация, но в 1995 даже ученые мужи, всегда имеющие сомнения, оценили идею как предвестника того, в какую сторону должны развиваться пользовательские интерфейсы. И даже при этом Боб скончался всего год спустя, Microsoft продолжала бобизровать многие приложения и в последствии – наиболее заметно в офисах с 97 по 2003, все версии которых содержали пресловутого «помощника Офис», больше известного как Скрепка.
                      Читать дальше →
                    • I/O Schedule 2014: плохой пример для обучения

                        Мы уже привыкли, что приложение для Google I/O дефакто стандарт архитектуры приложения, написания кода и дизайна.

                        Вот и в этот раз, я решил посмотреть, что же нового появилось в приложении. С дизайном все понятно, точнее понятно, что людям нужно снова учится делать его «правильно». Но меня больше интересовал код — что же нового там есть?

                        Но ничего нового я не увидел, но осознал, что приложение абсолютно не годится как наглядное пособие для обучения начинающих разработчиков.

                        После быстрого осмотра кода получился вот такой список замечаний.
                        Читать дальше →
                        • +11
                        • 8,9k
                        • 4
                      • Как подружился Ebean с Gradle и помирился с IntelliJ Idea

                        Наконец-то я созрел, чтобы начать свой веб-проект. Очередной todo-менеджер, который агрегирует задачи с нужных мне источников. Планировался как проект для души, такой чистый и правильный. Никаких компромиссов в архитектуре и технологиях. Только best-practices, только хардкор. И, конечно же, кнопать это все собрался в любимой Intellij IDEA.

                        После 7 лет Java, последних двух вперемешку с Scala, захотелось попробовать Groovy. Для сборки, конечно же Gradle — популярно и удобно. Рельсы показались слишком «заезженные», так что решил использовать Spring для веб, причем по современному, через Spring Boot. И все было просто замечательно, только с ORM не сложилось. На работе мы Hibernate выпилили, заказчик лично невзлюбил (не смейтесь и такое бывает — отдельная история) и заменили своим велосипедом. Негативный опыт и нежелание тянуть монстра ради пары сущностей сделали свое — хибернейту твердое нет! Захотелось попробовать что-то совсем другое. По воле случая наткнулся на Ebean, который и был выбран.

                        После окончательной подборки стека начала кипеть работа. Но вот незадача, воз с функционалом пока не сдвинулся с места. Под катом искреннее оправдание почему.
                        Читать дальше →
                        • +12
                        • 10,3k
                        • 7
                      • «Не навреди», или Как не стать корпорацией



                          Привет, хабровчане! Меня зовут Михаил Завилейский, я — генеральный директор замечательной компании DataArt. Мы занимаемся IT-аутсорсингом вот уже много лет, и все эти годы делаем все возможное, чтобы по духу оставаться все той же группкой профессионалов, собравшейся зарабатывать любимым делом, с которой все когда-то и начиналось. И пусть сейчас нас уже больше тысячи, мы отчаянно стараемся не превратиться в «корпорацию».

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

                          Откуда в компаниях берутся лишние рутины, бесполезные функции и менеджеры, бесцельные отчеты и ритуалы? В основном, это следствие трех причин:

                          1. Излишняя систематизация.
                          2. Инерция и шаблонность.
                          3. Управленческие ошибки.

                          Читать дальше →
                        • Создание Custom Scope в JEE и Spring

                          Scope определяет жизненный цикл объекта. Например, java-бин (далее просто бин) определённый в RequestScope создается при получении http запроса и освобождается при завершении данного запроса. В JEE и в Spring есть возможность создавать свой собственный scope. Т.е. мы можем создавать объекты со своим собственным жизненным циклом — они будут создаваться по какому либо нашему событию и также уничтожаться. В JEE за это отвечает спецификация CDI (Context and Dependency Injection) и на самом деле там уже есть один подобный встроенный scope. Это ConversationScope. У нас есть API и аннотации для начала и окончания conversation. Если мы их не используем, то по-умолчанию ConversationScope ведет себя как RequestScope. Для отслеживания conversation каждого отдельного клиента используется специальный conversationId, который обычно добавляется как параметр http запроса. Но такой подход не работает для веб-сервисов. А в Spring вообще нет ничего подобного. Но в моей практике заказчик попросил сделать веб-сервис, который бы использовал одно и то же физическое соединение к внешней системе для нескольких последовательных вызовов. Также надо было хранить некоторое количество дополнительных данных. Т.е. надо было сохранять некое состояние (объект с соединением и данными) на определённый промежуток времени, такой аналог conversation scope для веб-сервиса. Можно, конечно, сохранить этот объект в Мар, где ключом будет наш аналог conversationId, а Мар положить в ServleContext и доставать это всё из методов веб-сервиса. Но это неудобно. Гораздо удобнее, когда сам сервер будет инжектить нам наш объект по заданному conversationId. Поэтому, сделаем свой scope, который будет работать с SOAP веб-сервисом. Сам по себе веб-сервис не может принадлежать какому-либо scope, но наш бин, который мы будем инжектить в веб-сервис, будет принадлежать нашему scope.
                          Читать дальше →
                          • +12
                          • 10,1k
                          • 3
                        • Custom layout. Выплывающая панель + параллаксный скроллинг

                            Привет, коллеги.

                            Сегодня я хотел рассказать, как можно создать нестандартный менеджер разметки (layout manager) и вдохнуть в него жизнь при помощи анимаций.
                            Нам в DataArt часто требуется реализовывать нестандартные компоненты для приложений заказчика, поэтому у меня накопился определенный опыт в этом деле, которым решил поделиться.
                            В качестве примера решил реализовать аналог часто встречающейся в социальных сетях выплывающей снизу панели. Обычно этот прием используется при необходимости показать контент, например, фото, и добавить возможность комментировать на дополнительной панельке, которую пользователь может вытянуть снизу. При этом основной контент обычно тоже уплывает наверх, но немного медленнее, чем основная панель. Это называется «параллаксный скроллинг».
                            Специально для этой статьи я решил с нуля реализовать подобный компонент. Сразу хочу заметить, что это не полноценный, стабильный и готовый для продакшен код, а всего лишь демонстрация, написанная за пару часов, чтобы показать основные приемы.

                            Читать дальше →
                          • Организация архитектуры взаимодействия Activity и Service

                              Приветствую!

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

                              Поэтому я методом проб и ошибок пришел к архитектуре, лично для меня покрывающей все необходимые вопросы.

                              Об этом методе я буду рассказывать далее.
                              Читать дальше →
                            • Все врут или почему в MySQL лучше не использовать партиции

                                Начиная с версии 5.1 в MySQL появилась такая полезная фича как партиции. Конечно же большинство разработчиков БД сразу не побрезговали ей воспользоваться. Спустя пару лет работы я наконец пожал плоды всей ущербности реализации этой технологии специалистами MySQL AB …
                                но обо всем по порядку