Pull to refresh
13
0
Send message

Как мы раскрыли внутреннюю архитектуру Flutter и затащили его на собственную платформу

Reading time13 min
Views6.6K
Если вы разрабатываете мобильные приложения, то почти наверняка сталкивались с Flutter — мегапопулярным открытым фреймворком от Google. Наша команда Mobile SDK and Applications Development, конечно, тоже захотела использовать Flutter при создании приложений для KasperskyOS — собственной микроядерной операционной системы «Лаборатории Касперского» — но был нюанс…



Особенности архитектуры KasperskyOS задают условия, при которых мы не можем пойти проторенными дорожками и свободно интегрировать фреймворк на своей платформе. Подсмотреть решения где-то вовне мы не можем тоже — таких кейсов в индустрии просто не было. А сам Google практически не раскрывает внутреннюю архитектуру Flutter. Так что интеграцию требовалось выстраивать с нуля.

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

Если вы тоже разрабатываете приложения, где требуется разбираться во внутренней архитектуре Flutter, статья точно будет вам полезна — ныряйте под кат!
Читать дальше →

[Пятничное] Теория Жоп

Reading time5 min
Views235K

Эту полу-шуточную теорию о проектном управлении я излагал коллегам по ИТ цеху лет 15 назад, и тогда же неоднократно слышал советы загрузить этот текст на Хабр, но руки не дошли. На днях, разгребая старые файлы наткнулся на свои записи и решил все таки поделиться ими с Вами. Частое употребление ключевого слова к сожалению, неизбежно и не отделимо для целостности этого текста, прошу принимать или нет 'as is'. Итак...

Каждая карьера развивается от Жопы к Жопе, и никак иначе. Хочешь повышения - ищи Жопу и принимай, как говорят в Америке, "challenge". Если Вам предлагают возглавить новый проект, либо занять какую то должность, да что угодно - знайте, там Вас ждет Жопа. Иначе не предложили бы, а сами бы справились. Равно как и если Вы ожидаете избавиться от надоевшей Вам сейчас деятельности, надеясь вырваться из "этого ада" и заняться "чем то новеньким" - будьте готовы встретиться с Большой Жопой.

Читать далее

Система увлажнения воздуха для дома или квартиры

Reading time5 min
Views41K

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

Читать далее

Светодиодные лампы Gauss 2017-2018 года

Reading time4 min
Views31K
Светодиодные лампы российского бренда Gauss появились на рынке одними из первых. Многие считают лампы этого бренда одними из лучших и действительно по ним мало нареканий.

К сожалению, Gauss, выпуская качественные лампы, всегда приводил на упаковке завышенные характеристики и указывал нереальные значения индекса цветопередачи (CRI, Ra).

Сегодня я проанализирую результаты моего тестирования двадцати четырёх ламп Gauss, выпущенных в 2017 и 2018 году.


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

Школьный класс и маленький этюд социнжиниринга

Reading time5 min
Views51K


В каждом классе есть 3-4 ребёнка, которые орут и ломают весь сюжет, когда остальные пытаются что-то целенаправленно делать. Точнее, как — они просто гиперактивные, и их темп событий не даёт покоя остальным. Они не злонамеренные, а просто хотят причинить добро и радость в особо крупных размерах.

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

И вот, значит, он приходит на игротеку, а там не 3-4 гиперактивных ребёнка, а сразу примерно от четверти до трети класса. И игротека превращается в ад.

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

IP DoorBell – интерактивный дверной звонок

Reading time2 min
Views8K
Сегодня бюджетное видеонаблюдение заведет нас в модную область IoT/M2M. Я расскажу вам о своем опыте эксплуатации нового продукта. По сути, это IP видеокамера или даже видео-няня, совмещенная с дверным звонком и онлайн сервисом. При нажатии на кнопку звонка сигнал поступает на мобильный клиент вашего телефона. Одновременно, делается снимок пришедшего и отправляется вам на почту. Вы можете видеть, слышать и разговаривать со своими гостями. Можете установить электро-замок и открывать его удалено. Запись разговора ведется автоматически на ваш телефон и на карточку памяти в камере. За денежку можно арендовать параллельное удаленное хранение событий.


* Все картинки кликабельны.
Читать дальше →

Светильник для мебели, кухни или ванной

Reading time2 min
Views21K
В проекте Lamptest.ru я протестировал уже больше двух тысяч светодиодных ламп, но светодиодное освещение это не только лампы-ретрофиты под стандартные цоколи. Сейчас в продаже есть огромное количество различных светодиодных светильников и во многих случаях их применение предпочтительней, чем использование светильников с обычными патронами.

Для подсветки столешницы на кухне, зеркала в ванной, внутренней подсветки мебели удобней использовать линейные светильники, занимающие очень мало места. Компания Uniel предложила мне протестировать светильник ULO-BL60-9W-NW-K IP54 WHITE, который стоит всего 398 рублей.

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

Тестирование LED-панелей 60x60

Reading time3 min
Views40K
Я протестировал огромное количество светодиодных ламп, но светодиодное освещение это не только лампы. Светодиодные светильники для потолков Armstrong (квадраты 60x60 сантиметров) сейчас используются повсеместно и они, точно так же, как светодиодные лампы, бывают хорошими и не очень, а реальные их параметры не всегда соответствуют тому, что указано на упаковке.

Я провёл испытания шести таких светильников пяти производителей.

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

Митап BugBusters: Все о Selenium, эффективных автоматизаторах и буднях нагрузочных тестировщиков

Reading time1 min
Views4.4K


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


Для всех, кто не смог присоединиться, предлагаю записи докладов.

Установка MS SQL ODBC Driver под Linux и сборка плагина для Qt 5.9

Reading time4 min
Views21K
image

Несколько дней назад встал вопрос о написании консольного приложения, которое будет работать в Linux CentOS 7 и взаимодействовать с MS SQL Server 2012. Мне очень нравится Qt и я решил, что воспользуюсь им для решения этой задачи. И если под Windows я достаточно быстро настроил необходимое окружение, то под Linux я столкнулся с проблемами, которые очень тяжело было решить с помощью гуглинга. Этому вопросу я посвятил полтора дня. Считаю полезным поделиться своим опытом, возможно кому-то это поможет сэкономить драгоценное время.
Читать дальше →

Современный CMake: 10 советов по улучшению скриптов сборки

Reading time8 min
Views84K

CMake — это система сборки для C/C++, которая с каждым годом становится всё популярнее. Он практически стал решением по умолчанию для новых проектов. Однако, множество примеров выполнения какой-либо задачи на CMake содержат архаичные, ненадёжные, раздутые действия. Мы выясним, как писать скрипты сборки на CMake лаконичнее.

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

Светодиодные лампы IKEA 2017 года

Reading time3 min
Views51K
В магазинах IKEA продаётся две серии светодиодных ламп. Лампы IKEA LEDARE уникальны очень высоким (более 90) индексом цветопередачи CRI (Ra), кроме того большинство из них поддерживают регулировку яркости (диммирование). Лампы IKEA RYET аналогичны по своим характеристикам хорошим светодиодным лампам других производителей.

Недавно в IKEA почти полностью сменился ассортимент светодиодных ламп. Большинство ламп остались такими же внешне и по характеристикам, но у них изменились артикулы. Появились и новые лампы.

Я протестировал все лампы IKEA 2017 года.

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

Вы — не Google

Reading time7 min
Views103K
Мы, программисты, иногда почему-то сходим с ума. Причём по каким-то совершенно нелепым причинам. Нам нравится думать о себе, как о супер-рациональных людях, но когда дело доходит до выбора ключевой технологии нового продукта, мы погружаемся в какое-то безумие. Вдруг оказывается, что кто-то слышал что-то об одной классной вещи, а его коллега читал комментарий о другой на Хабре, а третий человек видел пост в блоге о ещё чём-то похожем… и вот мы уже пребываем в полнейшем ступоре, беспомощно барахтаясь в попытках выбора между совершенно противоположными по своей сути системами, уже и забыв, что мы вообще пытаемся выбрать и почему.

Рациональные люди не принимают решения таким образом. Но именно так программисты часто решают использовать что-то вроде MapReduce.

Вот как комментировал этот выбор Joe Hellerstein своим студентам (на 54-той минуте):

Дело в том, что в мире сейчас есть где-то 5 компаний, обрабатывающие данные подобных объёмов. Все остальные гоняют все эти данные туда-сюда, добиваясь отказоустойчивости, которая им на самом деле не нужна. Люди страдают гигантоманией и гугломанией где-то с середины 2000-ых годов: «мы сделаем всё так, как делает Google, ведь мы же строим один из крупнейших (в будущем) сервисов по обработке данных в мире!»

image

Сколько этажей в вашем датацентре? Google сейчас строит четырёхэтажные, как вот этот в Оклахоме.
Читать дальше →

Принципы тестирования программного обеспечения. Личный перевод из книги «Искусство тестирования» Г. Майерса

Reading time6 min
Views35K
Продолжая отдавать должное вопросам психологии в процессе тестирования, мы можем определить набор витальных (читай, чертовски жизненных) принципов тестирования. Многие из них покажутся очевидными, что, однако, не мешает зачастую ими пренебрегать. Вот они, а дальше – подробное их рассмотрение:

1. Обязательная часть тестирования – определение ожидаемого результата;
2. Программистам следует избегать тестирования их собственных программ (и участков кода);
3. Организациям, создающие программы, следует избегать тестирования их собственных программ;
4. Процесс тестирования должен включать в себя тщательную проверку результатов каждого теста;
5. Тест-кейсы должны быть составлены как для корректных и ожидаемых входных условий, так и для некорректных и неожидаемых;
6. Исследование Системы на предмет того, что она не делает того, что должна, — лишь пол дела. Вторая часть – разобраться в том, чего недолжного она делает;
7. Избегайте одноразовых тест-кейсов, только если сама программа не является одноразовой. Одноразовые тест-кейсы для одноразовых программ. В остальных случаях следует избегать таковых;
8. Не занимайтесь процессом тестирования с предустановкой, что вы не найдете ошибок;
9. Вероятность наличия ошибок в определенной части Системы пропорционально количеству уже найденных здесь ошибок;
10. Тестирование – это вызов вашим творческим и интеллектуальным способностям. Тестирование – это невероятно творческое и интеллектуальное занятие.
Читать дальше →

Как создать современную CI/CD-цепочку с помощью бесплатных облачных сервисов

Reading time10 min
Views68K



Решение поставленной перед разработчиком задачи бывает найти нелегко. Но как только оно получено, автору сразу хочется поделиться им со всем миром, ведь это так здорово — «отгружать» код. Неиспользуемая программа — это не что иное, как цифровой мусор. Чтобы не тратить время на никому не нужный софт, современные разработчики поставляют функциональность небольшими порциями, разбивая процесс на короткие итерации.


Такой способ создания программного обеспечения используется в процессах Непрерывной интеграции (Continuous Integration) и Непрерывного развертывания (Continuous Deployment), или CI/CD-цепочке. В этой статье мы пройдем по всем шагам настройки такой цепочки, используя для ее построения бесплатные облачные сервисы.

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

Как настроить простую систему автотестов без Java и Selenium

Reading time4 min
Views32K
Представьте: вы работник стартапа, сварганили по-быстрому прототип и постепенно начинаете его развивать. И вот вам уже хочется, чтобы во время очередного спешного релиза не приходилось перепроверять все разделы сайта вручную (руками директора по продукту). Конечно, можно нанять отдельного тестировщика, но на это в вашем LEAN-стартапе бюджета не дают — «лучше давайте купим наконец-то кофе-машину». Знакомо?

И тут кто-то произносит слово «автотесты».

И сразу начинается: это целая история, это очень сложно, это очень дорого, от этого будет больше вреда, чем пользы и вообще это кровавый Enterprise и СЕЛЕНИУМ.

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

Блеск и нищета автоматизации тестирования

Reading time6 min
Views31K
image

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

Не стоит списывать такое положение дел на некомпетентность, глупость или банальную лень разработчиков. По сравнению с ручным тестированием, автоматизированное имеет как достоинства так и явные недостатки. Если бы были одни только плюсы, и говорить было бы не о чем.
Читать дальше →

Умный дом: на страже покоя и безопасности

Reading time4 min
Views22K

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

А в этом материале я расскажу о том, как умный дом стал следить за безопасностью периметра.
Читать дальше →

Как мы уже 4 года выживаем в условиях двух релизов в день

Reading time13 min
Views41K


Здравствуй, Хабр! Сегодня я хочу завершить цикл статей об организации тестирования (начавшийся с изучения ошибок и опыта), рассказав о том, как же все-таки Badoo выпускает два качественных серверных релиза каждый день. Кроме пятницы, когда мы релизимся только утром. Не надо релизиться в пятницу вечером.

Я пришел в Badoo чуть более четырех лет назад. Все это время наши процессы и инструменты для тестирования непрестанно развивались и совершенствовались. Для чего? Число разработчиков и тестировщиков увеличилось примерно в два раза — значит, для каждого релиза готовится больше задач. Количество активных и зарегистрированных пользователей тоже удвоилось — а значит, и цена любой нашей ошибки стала выше. Для того чтобы доставлять пользователям максимально качественный продукт, нам нужны всё более и более мощные средства контроля качества, и эта гонка не заканчивается никогда. Цель этой статьи не только продемонстрировать работающий пример, но и показать, что какими бы крутыми ни были ваши процессы контроля качества, наверняка можно сделать их еще лучше. Технические реализации некоторых инструментов вы сможете найти по ссылкам на другие статьи, о некоторых из них нам еще предстоит написать.

В Badoo существует несколько разных QA-флоу, отличие которых обосновано разными средствами разработки и целевыми платформами (но мы используем для них общие системы: JIRA, TeamCity, Git и т.д.), и я вам расскажу о процессе тестирования и деплоя наших серверных задач (а заодно и веб-сайта). Его можно условно разделить на 5 больших этапов (хотя тут, конечно, многие мои коллеги считают по-разному), каждый из которых включает в себя и ручную, и автоматизированную составляющую. Постараюсь рассказать вам по очереди о каждом из них, отдельно выделяя то, что изменялось и развивалось в последние годы.
Читать дальше →

NooLite + Raspberry Pi + Telegram = умный дом

Reading time14 min
Views48K

2 года назад передо мной встала задача реализовать удаленное управление обогревательными приборами в своем загородном доме. В данной статье я хочу поделиться моим вариантом автоматизации и удаленного управления, к которому я в итоге пришел. Постараюсь охватить весь процесс и подробности создания этого хобби-проекта и поделиться всеми сложностями, с которыми пришлось столкнуться. В процессе реализации, как видно из названия статьи, я использовал Noolite (о нем расскажу в статье), Telegram и совсем немного Python.


image
Читать дальше →
1
23 ...

Information

Rating
Does not participate
Works in
Registered
Activity