Habr.com

Ленты новостей Хабр
URL-адрес: https://habr.com/ru/all//
Обновлено: 6 мин. 23 сек. назад

Сжимаем APK, стараясь сохранить его работоспособность

5 часов 2 мин. назад


/ PxHere / PD


Оптимизация веса APK — это нетривиальная, но очень актуальная во времена Instant App, задача. Включение proguard избавит вас от ненужного кода, если ваши зависимости можно определить на этапе компиляции, но в APK есть ещё несколько видов файлов, которые можно исключить из сборки.
Под катом о том, как сделать зависимости — определяемыми на этапе компиляции, какие файлы можно исключить из сборки и как это сделать, а так же, разберём, как исключить из сборки неиспользуемые компоненты, если у вас несколько приложений с общей кодовой базой.

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

Как запустить микро-платежи в своем приложении

8 часов 44 мин. назад
Прошлую неделю я провёл разрабатывая свою первую публичную программку — Telegram-бота который работает в качестве Bitcoin-кошелька и позволяет «бросать монетки» другим участникам групповых чатов а так же совершать внешние Bitcoin-платежи себе или другим т.н. “Lightning Apps”. Подразумеваю, что в целом читатель знаком c Bitcoin и Telegram, т.к. буду стараться писать кратко, не вникая в детали. Выборка ресурсов о Bitcoin доступна по этой ссылке, ну а Телеграм это средство мгновенного обмена сообщениями на мобильных устройства и пк, позволяющее на их платформе создавать свои небольшие приложения (чат-ботов).

Какие ключевые функции этого приложения?
  • Позволяет отблагодарить или поощрить собеседника действительно материальной ценностью, а не просто «виртуальным лайком», это выводит электронное общение на совершенно новый уровень
  • Реальный пример приложения, которое может финансово взаимодействовать с другими приложениями используя открытый платёжный протокол
  • Все компоненты приложения являются проектами с открытым исходным кодом и их возможно изменять и применять для своих задач. Приложение не использует закрытых и\или коммерческих решений, несмотря на то, что подходит под сферу электронной коммерции, которую на сегодняшний день назвать открытой довольно сложно.

И как это применить в деле?
как-то так…

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

Универсальный пул

9 часов 25 мин. назад
У нас есть ArrayPool для переиспользования массивов. Работает это так: взяли массив определенной длинны что то с ним поделали и положили обратно. Нужно это для больших объектов которые по логике программы долго не должны храниться. В предыдущей статье описана эта проблема.

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

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

[Из песочницы] Windows service. Поиск системных ошибок и отображение их в WinForm C#

пн, 05/20/2019 - 23:38
В этой статье мы разберем как с нуля создать приложение, которое будет работать со службами windows и отображать системные ошибки в WinForm (C#).

План этой статьи:

  • Создание службы
  • Event Viewer
  • Код службы
  • Проверка работы службы(Запуск службы вручную)
  • Отображение WinForm

Создание службы
Открываем Visual Studio. Дальше File -> New -> Project -> (Windows Desktop) -> Windows Service (.Net Framework) -> Ok.

Дальше нужно создать установщик. В открывшемся окне щелкаем ПКМ и выбираем «Add Installer». У вас создастся «ProjectInstaller.cs[Design]» после чего нужно будет перейти к коду «F7» или ПКМ «View Code». Нужно найти строку «InitializeComponent();», поставить на нее курсор и нажать «F12», дальше нужно добавить следующие строки:

this.serviceProcessInstaller1.Account = System.ServiceProcess.ServiceAccount.LocalSystem; //Чтоб не запрашивало имя пользователя и пароль this.serviceInstaller1.Description = "Show me system error."; //Описание которое будет видно в списке служб this.serviceInstaller1.DisplayName = "GetSystemError"; //Название службы которое будет видно в списке служб
Но добавлять эти строки нужно только в следующей последовательности и месте. Иначе будет ошибка при установке сервиса.


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

Шпионаж, за который не банят (история из 80-х)

пн, 05/20/2019 - 23:37
Американские компании, например Google, пошли на поводу у правительства США и стали разрывать отношения с Huawei из-за подозрений в шпионаже.

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

Я задаюсь вопросом, деградирует ли хай-тек индустрия, если идет на поводу у политиков?


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

Прогноз и обсуждение: гибридные системы хранения данных уступят место all-flash

пн, 05/20/2019 - 23:01
По словам аналитиков из IHS Markit, гибридные системы хранения данных (СХД) на базе HDD и SSD в этом году начнут пользоваться меньшим спросом. Обсуждаем сложившуюся ситуацию.


Фото — Jyrki Huusko — CC BY

В 2018 году на долю флеш-массивов пришлось 29% рынка систем хранения. На гибридные решения — 38%. IHS Markit убеждены, что в этом году SSD-накопители выйдут в лидеры. По их оценкам, доход от продаж флеш-массивов вырастет до 33%, а от гибридных — снизится до 30%.

Низкий спрос на гибридные системы эксперты связывают с сокращением рынка HDD. В IDC ожидают, что к 2021 году число производимых HDD снизится до 284 млн устройств — это на 140 млн меньше, чем три года назад. Объём рынка за тот же период сократится на 750 млн долларов. Statista подтверждает этот тренд, по данным аналитического ресурса, с 2014 года объем производимых HDD сократился на 40 млн устройств. Читать дальше →

Еженедельный Хабр. Встречайте пилотный выпуск хабраподкаста

пн, 05/20/2019 - 21:44
Мы давно хотели попробовать сделать подкаст. В нашей копилке около 30 разных форматов подкастов, которые нам было бы интересно записать: мотивирующие и демотивирующие; интервью с хакерами; подкасты-триллеры о том, как винлокер заражает вашу сеть из 6000 компов c XP на борту; про эмиграцию в Россию и из нее. Идей много, и мы хотим понять, что из всего этого будет вам интересно.


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

Как проверить cookies на соответствие GDPR — поможет новый открытый инструмент

пн, 05/20/2019 - 20:37
Разработчики базы данных CovenantSQL представили опенсорсную утилиту Cookie Scanner, которая определяет, какие cookies устанавливают сайты и с какой целью.

Обсуждаем, зачем понадобился инструмент и как он работает.

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

[Перевод] Я выставил счёт $18 000 за статичную веб-страничку… и мне это сошло с рук

пн, 05/20/2019 - 20:24
Не так давно я работал контрактником, перескакивая с одного проекта на другой. С некоторыми краткосрочными проектами справлялся за неделю. Другие длились пару месяцев. Они приносили достаточно денег, чтобы взять отпуск. Но я предпочитал короткие, потому что там можно было установить бóльшую часовую ставку. Я не только сам себе хозяин, но и не приходилось слишком много работать, чтобы зарабатывать на жизнь. Даже мои самые высокие ставки были вполне разумными, и я всегда обеспечивал высокое качество обслуживания. Так было до тех пор, пока мне не предложили контракт в большой компании.

Эта компания связалась со мной в срочном порядке, и менеджер сказал, что им нужен человек прямо сейчас. Сотрудник, который обеспечит максимальную производительность после минимального тренинга. Хорошо это или плохо, но таков был мой девиз. Проект мне очень нравился. Он был маленьким, быстрым и хорошо оплачивался.
Читать дальше →

Bluetooth LE не так уж и страшен, или Как улучшить пользовательский опыт без особых усилий

пн, 05/20/2019 - 19:57
Недавно мы в команде придумали и реализовали функцию передачи денег по воздуху с помощью технологии Bluetooth LE. Я хочу рассказать вам, как мы это сделали и что Apple предоставляет нам из инструментов. Многие разработчики думают что Bluetooth — это сложно, ведь это достаточно низкоуровневый протокол, и по нему не так много специалистов. Но всё не так страшно, и на самом деле использовать эту функцию очень просто! А те функции, которые можно реализовать с помощью Bluetooth LE, безусловно, интересны и впоследствии позволят выделить ваше приложение среди конкурентов.


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

Security Week 21: дыра в Whatsapp, новая уязвимость в процессорах Intel, Zero-Day в Windows

пн, 05/20/2019 - 18:54
На прошлой неделе произошло сразу три интересных события в сфере информационной безопасности: была закрыта эксплуатируемая уязвимость в Whatsapp, для критической уязвимости в Windows выпустили патчи даже для неподдерживаемых версий ОС, а в процессорах Intel нашли еще одну Spectre-подобную проблему. Начнем с уязвимости в компоненте Remote Desktop Services (новость, пост в блоге Microsoft). Технические детали уязвимости не раскрываются, но известно, что баг позволяет получить контроль над системой по протоколу RDP без авторизации.


Уязвимости подвержены ОС Windows 7 и Windows 2008 Server, а также неподдерживаемые Windows XP и Windows 2003 Server. В статье Брайана Кребса указывается на сходство уязвимости с багом EternalBlue в протоколе SMB, который в 2017 году привел к широкомасштабной эпидемии трояна-шифровальщика WannaCry. В данном случае атакующий может получить доступ к любой непропатченной системе, доступной по протоколу RDP, и через нее распространить атаку на другие компьютеры в локальной сети. Несмотря на оперативность выпуска патча, скорее всего, про последствия эксплуатации этого бага мы еще услышим.
Читать дальше →

[Из песочницы] PHP: Как разобрать сложный XML-файл и не утонуть в собственном коде

пн, 05/20/2019 - 18:34
Доброе время суток!

Сфера применения XML-формата достаточно обширна. Наряду с CSV, JSON и другими, XML — один из самых распространенных способов представить данные для обмена между различными сервисами, программами и сайтами. В качестве примера можно привести формат CommerceML для обмена товарами и заказами между 1С «Управление торговлей» и интернет-магазином.

Поэтому практически всем, кто занимается созданием веб-сервисов, время от времени приходится сталкиваться с необходимостью разбора XML-документов. В своем посте я предлагаю один из методов, как это сделать по возможности наглядно и прозрачно, используя XMLReader.
Читать дальше →

О чём говорили на Google I/O 2019: Android 10, AR-приложения и многое другое

пн, 05/20/2019 - 18:01
В этой статье я расскажу о своих впечатлениях от конференции Google I/O 2019, на которой мы с коллегами побывали на днях (и даже “засветились” с нашим приложением в одной из презентаций). Она поможет вам проникнуться атмосферой и, возможно, побудит посмотреть несколько докладов, выложенных на  канале Google Developers.


Разработчики Badoo на Google I/O 2019

День 0. Предисловие
Чтобы попасть на конференцию, нужно выиграть в лотерее, которая стартует в феврале на сайте Google I/O (обычно об этом становится известно из новостей). Но победа не предусматривает получение билета, а лишь даёт возможность выкупить его за 1150 долларов. Есть и другие программы, которые позволяют получить билет с большой скидкой или бесплатно, например Code Jam. Студенты и работники вузов могут купить билет значительно дешевле — за 375 долларов.

Перед конференцией IT-компании устраивали вечеринки для участников. Я узнал о них из чата в Telegram, в котором собралось более 150 русскоговорящих пользователей. Обычно в подобные чаты можно попасть по приглашениям из профильных Android-сообществ в Telegram. Такие вечеринки — хорошая возможность познакомиться с другими участниками конференции в неформальной обстановке. Например, мы встретили там организатора Mobius и команду разработчиков, которые делают приложение для авиапутешественников App in the Air.

Конференция проходила под лозунгом «No parking». Google организовала бесплатные автобусы от и до самых популярных отелей в окрестностях, а также выделила промокоды на сервис такси Lyft (американский конкурент Uber).

Из Badoo нас было пять разработчиков. Поехали все, кто выиграл возможность купить билет. Доклады шли в шесть—десять потоков, и часто мы разделялись, чтобы охватить больше интересных тем.
Читать дальше →

Конференция веб-разработчиков DevConf X — 21 июня

пн, 05/20/2019 - 17:58
Юбилейный десятый DevConf пройдет в этом году 21 июня в X-perience Hall. Каждый год на DevConf веб-разработчики обмениваются опытом посредством докладов и, что не так заметно, но не менее важно, разговорами в кулуарах.

Еще есть время подать заявку на доклад.

Поданные заявки можно посмотреть здесь.

Василий Богонатов расскажет как Яндекс строил сервис распределённых очередей на своей новой newSQL базе данных Yandex Database.

Александр Макаров хочет обсудить пакетные метрики.

Порассуждают о вечном вопросе быстроты и качества со стороны back-end (Николай Притульский) и front-end (Дмитрий Лукиянчук) разработчиков.

До встречи на DevConf.

[Перевод] Сила толпы. Как в Чикаго разработали мусороедного робота – очистителя рек

пн, 05/20/2019 - 17:24


Если вы пройдетесь по берегу реки Чикаго этим летом, вы увидите что-то довольно необычное. Среди уток, лебедей, рыбок, редких бобров и выдр время от времени будет проплывать небольшой робот. Похожий на маленький плот, он будет лениво ходить вниз и вверх по реке, собирая всё, что окажется на её поверхности. Это Трэшбот – детище чикагского стартапа Urban Rivers, собравшего экологов, робототехников и других профессионалов с целью очистки городских рек от мусора и помощи их обитателям.


С виду Трэшбот может показаться «водной румбой», автономно (или случайно) выбирающей путь, пока впереди еще есть загрязнение. Он же двигается сам по себе, прям как румба! Но на самом деле всё наоборот. Робот не выбирает себе направление сам, в любой момент его может контролировать один из примерно 4 383 810 342 людей – глобальных интернет-пользователей.

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

Исчезающие фреймворки

пн, 05/20/2019 - 17:19
Почему мы используем фреймворки? Angular, React и Vue помогают нам строить сложные веб-приложения: структурировать код, управлять состоянием и разрабатывать сложные интерфейсы. За последнее десятилетие фреймворки стали стандартом. Дорогим стандартом. С тех пор как фреймворки вошли в обиход, JS сильно раздуло. Страниц весом несколько мегабайт становится больше, и существенная часть этого объема — фреймворк сам по себе. Кажется, это немного, но для пользователя критично — на телефоне или слабом интернете страница может даже не загрузиться. Это проблема.



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

[Перевод] Хакер, взломавший приложения для слежения за автомобилями по GPS, обнаружил, что может их удалённо останавливать

пн, 05/20/2019 - 17:00
«Я могу создать серьёзные проблемы с дорожным движением по всему миру», — сказал он.


Хакер взломал тысячи учётных записей, принадлежащих пользователям двух приложений для слежения по GPS, что дало ему возможность отслеживать местонахождение десятков тысяч машин и даже глушить моторы некоторых из них прямо на ходу.

Хакер по кличке L&M рассказал изданию Motherboard, что взломал более 7000 учётных записей iTrack и более 20 000 записей ProTrack – приложений, которые компании используют для отслеживания и управления парками автомобилей с помощью GPS. Хакер смог отслеживать автомобили в нескольких странах мира, включая Южную Африку, Марокко, Индию и Филиппины. У некоторых автомобилей ПО позволяет удалённо глушить моторы, при этом машина должна стоять или двигаться не быстрее 20 км/ч, в зависимости от производителя определённых GPS-устройств для отслеживания.
Читать дальше →

Об анонимности в account-based блокчейнах

пн, 05/20/2019 - 16:13
Мы уже давно интересуемся темой анонимности в криптовалютах и стараемся следить за развитием технологий в этой области. В своих статьях мы уже подробно разбирали принципы работы конфиденциальных транзакций в Monero, а также проводили сравнительный обзор технологий, существующих на этом поле. Однако же все анонимные криптовалюты на сегодняшний день построены на модели данных, предложенной Bitcoin — Unspent Transaction Output (далее UTXO). Для account-based блокчейнов как Ethereum существующие решения по реализации анонимности и конфиденциальности (например, Mobius или Aztec) пытались повторить модель UTXO в смарт-контрактах.

В феврале 2019 года группа исследователей из Стэнфордского университета и Visa Research Читать дальше →

[Перевод] Введение в геномику для программистов

пн, 05/20/2019 - 15:30
Об авторе. Энди Томасон — ведущий программист Genomics PLC. Он с 70-х годов занимается графическими системами, играми и компиляторами; специализация — производительность кода.

Гены: краткое введение
Геном человека состоит из двух копий примерно по 3 миллиарда пар оснований ДНК, для кодирования которых используются буквы A, C, G и T. Это около двух бит на каждую пару оснований:

3 000 000 000 × 2 × 2 / 8 = 1 500 000 000 или около 1,5 ГБ данных.

На самом деле эти копии очень похожи, и ДНК всех людей практически одинаков: от торговцев с Уолл-Стрит до австралийских аборигенов.

Существует ряд «референсных геномов», таких как файлы Ensembl Fasta. Эталонные геномы помогают построить карту с конкретными характеристикам, которые присутствуют в ДНК человека, но не уникальны для конкретных людей.
Читать дальше →

CRM ++

пн, 05/20/2019 - 15:02
Есть такое мнение, что всё многофункциональное — слабое. И правда, это утверждение выглядит логично: чем больше взаимосвязанных и взаимозависимых узлов, тем выше вероятность того, что с выходом из строя одного из них потеряет свои достоинства и всё устройство. Мы все неоднократно сталкивались с такими ситуациями в оргтехнике, автомобилях, гаджетах. Однако в случае с программным обеспечением ситуация обратная: чем больше задач покрывает корпоративный софт, тем быстрее и удобнее работа, привычнее интерфейс, проще бизнес-процессы. Унификация и сквозная автоматизация в компании решают проблему за проблемой. Но может ли таким «мультитулом» быть CRM-система, у которой давно сложился имидж программы для продаж и управления клиентской базой? Конечно, может. Более того, в идеальном мире — должна. Заглянем в анатомию софтверного организма?


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

Популярные материалы


Сейчас на сайте

Сейчас на сайте 0 пользователей и 0 гостей.