• Инкубатор Bios InСube от компании Bios Urn позволит вырастить дерево из праха усопших родственников и близких

      Светлая память и горстка пепла в урне под камином – все что остается от любимых людей после смерти. Альтернативный способ проявить уважение к усопшим и увековечить их память предложила компания из Барселоны Bios Urn. «Когда кто-то умирает, он умирает физически, но близкие помнят о нем», — рассуждает соучредитель компании Роджер Молине. «… Почему не попытаться возродить жизнь из пепла, подарить близким новую жизнь, воплощенную в живом деревце, которое станет украшением дома или сада?» В марте-апреле текущего года компания завершила марафон на Kickstarter, где свои сбережения проекту доверили 356 бекеров. Компания собрала $73 000, превысив намеченную цель в $60 000 на $13 000. Подробнее о проекте, столь неожиданном даже для этой краудфандинговой площадки, мы расскажем в нашей сегодняшней публикации.

      image
      Подробнее
    • Делаем кольцо из обычной монеты



        Хотите сделать девушке подарок, но не хватает денег? Ничего страшного, ведь можно изготовить очень красивое украшение из обычной монеты, используя самые простые инструменты, которые есть дома у каждого — дрель и столовую ложку. Правда, процесс длительный, желательно выбирать монету из сплава помягче.
        Читать дальше →
      • Dagger 2. Лечим зависимости по методике Google


          Автор: Константин Марс
          Senior Developer @ DataArt,
          Co-Organizer @ GDG Dnipro


          Dependency Injection



          Что, зачем и когда это нужно


          Сегодня мы поговорим об инструменте, который помогает улучшить качество разработки для Android. Решить эту задачу можно с помощью Dependency Injection (DI). Обычно этот термин ассоциируется с инъекциями, шприцами и немножко с «зависимостями». На самом деле, Dependency Injection — паттерн проектирования, обеспечивающий реализацию принципа инверсии зависимостей и реализующий правила создания объектов и независимость реализаций.
          Итак, у нас есть класс, у класса есть конструктор, и есть несколько членов класса. Когда вы создаете сущность этого класса, вам необходимо обеспечить класс инстансами тех самых типов, которые объявлены для его членов класса. В данном случае, это имя машины и тип двигателя Engine. Вы будете использовать ссылки на объекты, соответственно, ссылки внутри вашего класса не будут пустовать.
          Таким образом, вы реализуете ОOП и можете создавать объекты.
          Читать дальше →
        • Построение хексапода для тех кто не хочет мастерить, а хочет программировать

          image

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

          Краткое предисловие:

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

          Другой неприятной стороной было то что в качестве мозгов в основном использовались — если не ардуино, то STM32. Мне же хотелось занимтаься программированием. Научить робота бегать за мячиком, обходить препятсвия, передвигаться по открытомй пространству. То есть то, для чего надо больше чем ардуина. Упирались все желания в деньги, которых мало, и руки, которые кривые. Постараюсь поведать как оба этих препятствия я обошел.
          Читать дальше →
        • Расширяемый код Android-приложений с MVP

          • Translation
          От переводчика: — я давненько интересуюсь тем, как сделать код Android-приложений чище, и это, наверное, первая статья, после которой у меня не возникло мыслей: "Зачем вот это вот все?" и "Он вообще пробовал когда-то это использовать в жизни?" Поэтому решил перевести, может, еще кому-то будет полезно.

          Написать Hello World всегда легко. Код выглядит просто и прямолинейно, и кажется, что SDK очень адаптирована под ваши нужды. Но если у вас есть опыт написания более сложных Android-приложений, вы знаете, что с рабочим кодом все не так. Можно провести часы за попыткой понять, почему ваша корзина покупок не обновляется после изменения ориентации телефона, если недоступен WiFi. Вы предполагаете, что решением проблемы, возможно, будет добавить ещё один if в 457-строчном методе onCreate() вашей активити — где-то между тем кодом, который исправляет падение на самсунгах с Android 4.1 на борту, и тем, который показывает купон на 5$ в день рождения пользователя. Что ж, есть способ получше.

          Мы в Remind (прим. пер. — название компании, где работает автор) выкатываем новые функции каждые две недели, и для того чтобы поддерживать эту скорость и высокое качество продукта, нужен способ сохранять код простым, поддерживаемым, разделённым (прим. пер. — "decoupled", в смысле слабой связанности) и тестируемым. Использование архитектурного паттерна MVP позволяет нам делать это и сосредоточиваться на самой значимой части нашего кода — нашей бизнес-логике.
          Читать дальше →
          • +12
          • 47.3k
          • 9
        • Пишем MVP приложение на Kotlin под Android



            Разработка приложений на Kotlin под Android набирает популярность среди разработчиков, однако статей в русскоязычном сегменте Интернета довольно мало. Я решил немного подправить ситуацию, и написать туториал по разработке приложения на Kotlin. Мы напишем полноценное приложение с использованием всех трендовых библиотек (кроме RxJava) в мире Android-разработки. В конце у нас должно получиться расширяемое и легко тестируемое приложение (сами тесты мы писать не будем).
            Читать дальше →
          • Хабраиндекс для статей по программированию под Android

              С чего начать?


              Пишем своё первое приложение на Android
              Пишем первое приложение для Android
              Создаем файловый менеджер
              Основы программирования под Android на примере игры Судоку
              Создание приложения в стиле Android
              Спокойной ночи!

              Читать дальше →
            • Архитектура Android приложений

              • Translation

              Наше путешествие от стандартных Activity и AsyncTask'ов к современной MVP архитектуре с применением RxJava.



              Код проекта должен быть разделён на независимые модули, работающие друг с другом как хорошо смазанный механизм — фото Честера Альвареза.

              Экосистема средств разработки под Android развивается очень быстро. Каждую неделю кто-то создаёт новые инструменты, обновляет существующие библиотеки, пишет новые статьи, или выступает с докладами. Если вы уедете в отпуск на месяц, то к моменту вашего возвращения уже будет опубликована свежая версия Support Library и/или Google Play Services.

              Я занимаюсь разработкой Android-приложений в компании ribot в течение последних трёх лет, и всё это время и архитектура наших приложений, и используемые нами технологии, постоянно развивались и улучшались. Эта статья проведёт вас путём, пройденным нами, показав вынесенные нами уроки, совершенные нами ошибки, и рассуждения, которые привели ко всем этим архитектурным изменениям.
              Читать дальше →
            • Кому жить, а кому умереть: приоритеты процессов в Android

              • Translation
              Примечание переводчика: при переводе старался максимально пользоваться терминологией, которую предлагает сам Google в русскоязычной версии документации по Android, таким образом «service» стал «службой», «content provider» стал «поставщиком контента», и так далее. А вот «activity» стать «операцией» так и не смог — не пересилил я себя. Извините.

              Давайте признаем: мобильные устройства не обладают бесконечной памятью, бесконечным зарядом батареи, или чем-то ещё бесконечным. Для нас это означает следующее: мы должны рассматривать смерть процесса как натуральную часть жизненного цикла наших приложений. Важно убедиться, что освобождение памяти, связанное с уничтожением процесса, не приводит к негативным для нашего пользователя последствиям. Для выполнения этой задачи большая часть архитектуры процессов в Android была создана таким образом, чтобы обеспечить жёсткую иерархию, в соответствии с которой процессы живут и умирают.
              Читать дальше →
              • +16
              • 27.1k
              • 4
            • Moxy — реализация MVP под Android с щепоткой магии

                Что такое MVP


                MVP – это способ разделения ответственности в коде приложения. Model предоставляет данные для Presenter. View выполняет две функции: реагирует на команды от пользователя(или от элементов UI), передавая эти события в Presenter и изменяет gui по требованию Presenter. Presenter выступает как связующее звено между View и Model. Presenter получает события из View, обрабатывает их(используя или не используя Model), и командует View о том, как она должна себя изменить.

                У такого подхода к разделению ответственности есть ряд плюсов:
                1. Сильно упрощается написание тестов к коду
                2. Легко менять какую-то часть, не ломая при этом другую
                3. Код разбивается на мелкие кусочки, за счёт чего он становится более понятным и читабельным

                В то же время, конечно, есть и минусы:
                1. Кода становится больше
                2. К этому подходу нужно привыкать
                3. На данный момент не сильно распространённый(но известный) подход, поэтому приходится всем рассказывать о нём

                Читать дальше →
              • Gradle: 5 полезностей для разработчика

                • Tutorial
                Привет, Хабр! Настало время, когда можно сказать, что «new build system» Gradle является стандартом отрасли Android-разработки. Инструмент сделан настолько просто и удобно, что большинство разработчиков не испытает трудностей, даже не зная, как он устроен, и какие дополнительные возможности в нём есть — возникающие проблемы легко решаются с помощью 5 минут на StackOverflow, путем копирования «магического кода» в конфигурационные файлы. Возможно, в том числе из-за этого не все разработчики изучают Gradle детально и не знают о многих его полезных возможностях, которые существенно облегчают жизнь.


                Сегодня рассмотрим пять таких полезностей
              • Должность — тимлид

                  Тимлид (aka ведущий разработчик, team leader) — один из таких «специалистов», обязанности которого многие видят по-разному. Думаю, что складываются различные представления примерно так: поработал кто-то в команде под руководством тимлида, который хорошо справлялся с задачами проектирования системы, и считает теперь, что это именно то, что должен делать тимлид; в другой же команде тимлид плохо справлялся с планированием спринтов, а с другими обязанностями более или менее, и стали считать сотрудники, что планирование — не то, чем должен заниматься тимлид.

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

                  • Translation
                  Посетителям сайта stackoverflow.com был задан вопрос: «Какие программерские термины вы придумали, так чтобы они стали популярны в ваших кругах (то есть вы слышали, что кто-то их повторяет)?

                  Ниже — вольный перевод самых популярных ответов.

                  Читать дальше →
                • Рецепты под Android: Как вкусно приготовить LayoutManager

                  • Tutorial
                  Привет хабр!

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


                  Читать дальше →
                  • +33
                  • 39.4k
                  • 4
                • Книги и образовательные ресурсы по алгоритмической торговле



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

                    В нашем сегодняшнем материале — подборка книг, которые помогут лучше подготовиться к началу работы на фондовом рынке и написанию механических торговых систем. Для достижения наибольшей эффективности материала, мы приводим советы экспертов, которые занимаются алгоритмической торговлей на российском и зарубежных фондовых рынках.
                    Читать дальше →
                  • Изготовление матриц для литья силикона

                    На гиктаймс уже писали о литье пластмасс в силиконовые формы, но в этот раз мы будем лить силикон в пластмассу.

                    image

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

                      В предыдущих топиках мы уже рассмотрели общее устройство российского фондового рынка, поговорили о торговых терминалах, которые используют инвесторы, и коснулись темы создания роботов для автоматизированной торговли благодаря API брокерских систем. Однако, во времена, когда на бирже для многих трейдеров все решают доли секунды, работа по схеме «пользователь — брокерская система — ядро биржи» подойдет не всем. Именно поэтому появилась технология, позволяющая максимально оптимизировать эту цепочку – прямой доступ на биржу.

                      image
                      Читать дальше →
                      • +32
                      • 71.9k
                      • 8
                    • How-to: роботы и API брокерской торговой системы

                        image

                        В одном из прошлых топиков мы начали обсуждать общее устройство биржевого рынка России, а сегодня чуть подробнее взглянем на одно из его звеньев – брокерские системы. Брокерский бизнес технологичен по своей сути: клиенты выставляют заявки с использованием торговых терминалов, часто разработанных именно брокерами, а для обработки заявок и их отправки на биржу необходима автоматизированная система сбора заявок и выставления их на биржу. Такие системы, снабженные средствами авторизации и лимитирования, позволяющие смаршрутизировать заявку на рынок и дать клиенту информацию о ее статусе и о текущем состоянии его портфеля, обычно зовутся торговыми системами брокера.

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

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

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

                          Как вообще можно подписать на услугу без моего ведома?


                          У сотовых операторов есть «партнеры», оказывающие разного рода услуги (например, купить картинку-подарок в «Контакте»). Смысл подобных услуг заключается в следующем:
                          1. Вы вводите номер телефона.
                          2. Вам присылают код подтверждения.
                          3. Вы вводите этот код.
                          4. С этого моменты вы считаетесь официально подписанным на какую-то услугу (будь то одноразовую или нет).


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

                          Всё это делает возможным, например, следующую схему:
                          1. 1-го января в семь утра вводят ваш номер телефона.
                          2. Оператору присылают уведомление, что вы бессрочно подписались на такую-то услугу и подтвердили эту услугу.
                          3. С вашего счета начинают списывать 40 р. каждый день, пока не кончатся деньги или вы не заметите их утечку (если вы платите за телефон раз в месяц, то легко можете потерять тысячу рублей).

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