MVP и Dagger 2 – скелет Android-приложения – часть 1

Автор: admin от 27-12-2018, 22:15, посмотрело: 40

Данная статья нацелена на новичков в Android-разработке и призвана помочь в создании минимально необходимой структуры приложения.



Так получилось, что я относительно недавно начал программировать под Android – после месяца без проекта в компании, где я работаю, меня определили в команду мобильной разработки в уругвайском офисе Tata Consultancy Services. При беседе с тимлидом команды мне был озвучен стек, с которым мне предстояло сначала ознакомиться, а затем и овладеть. В числе прочего был фреймворк Dagger 2 для DI и MVP в качестве архитектурного паттерна. И Kotlin. Но о нем в другой раз :)



Таким образом, я приступил к изучению сначала основы Android SDK, а затем и всего сопутствующего стека. С самим SDK проблем не возникло – исчерпывающей информации по нему в сети более чем достаточно, начиная с официальной документации и заканчивая туториалами (особенно с этим помог проект startandroid), но с Dagger 2 и MVP применительно к Android-разработке возникли некоторые затруднения ввиду довольно куцей документации первого и, на тот момент, недостаточного понимания второго. Дело в том, что до мобильной разработки я делал микросервисы на Java с использованием Spring Boot/MVC и уже имел достаточное представление и о том, что такое Dependency Injection, и о том, что такое MVC. При том, даже само название “Spring MVC” предполагает, что этот паттерн заложен в архитектуру проекта и его использование очевидно. От Dagger 2 я ожидал как такой же как в Spring “магии” и настолько же проработанной документации и туториалов. И обломался :P

Категория: Game Development, Android

 

Как я нашёл баг в GNU Tar

Автор: admin от 27-12-2018, 21:50, посмотрело: 34

Автор статьи — Крис Зибенманн, системный администратор Unix в университете Торонто



Время от времени в моей работе происходит нечто странное, что заставляет задуматься, даже если сразу непонятно, какие следуют выводы. Недавно я упомянул, что мы нашли ошибку в GNU Tar, и история о том, как это произошло, — один из таких случаев.



Для бэкапа файл-серверов мы используем Amanda и GNU Tar. В течение долгого времени у нас периодически возникала довольно редкая проблема, когда tar сходил с ума при резервном копировании файловой системы с каталогом /var/mail, производя огромное количество выходных данных. Обычно этот процесс уходил в бесконечность и приходилось убивать дамп; в других случаях он всё-таки завершался, выдав терабайт(ы) данных, которые вроде бы отлично сжимались. Когда мне в очередной раз попался такой гигантский файл tar, я подверг его проверке — и выяснил, что он частично состоит из нулевых байтов, которые очень не нравятся команде тестирования tar -t, после чего всё возвращается в норму.



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

Категория: Системное администрирование, Ubuntu

 

Автоматизация качества данных корпоративного хранилища

Автор: admin от 27-12-2018, 17:45, посмотрело: 46

В «Ростелекоме», как и в любой крупной компании, имеется корпоративное хранилище данных (ЦХД). Наше ЦХД постоянно разрастается и расширяется, мы строим на нем полезные витрины, отчеты и кубы данных. В какой-то момент мы столкнулись с тем, что некачественные данные мешают нам при построении витрин, получаемые агрегаты не сходятся с агрегатами систем источников и вызывают непонимание бизнеса. Например, данные с Null значениями в внешних ключах (foreign key) не соединяются с данными других таблиц.



Автоматизация качества данных корпоративного хранилища


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

Категория: Google

 

Как Google пытался покорить Китай — и проиграл

Автор: admin от 27-12-2018, 17:45, посмотрело: 60

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



Как Google пытался покорить Китай — и проигралПервый набег Google на китайские рынки стал недолгим экспериментом. Поисковую систему Google China запустили в 2006 году, а спустя четыре года её внезапно закрыли для материкового Китая после крупного взлома и споров по цензуре поисковой выдачи. Но в августе 2018 года сайт журналистских расследований The Intercept сообщил, что компания тайно работает над прототипом новой подцензурной поисковой системы для Китая под названием Project Dragonfly.



На фоне протеста правозащитников и некоторых сотрудников Google вице-президент США Майк Пенс призвал компанию прекратить работу над Dragonfly. Он заявил, что система «усилит цензуру Коммунистической партии и поставит под угрозу конфиденциальность пользователей». В середине декабря издание The Intercept сообщило, что Google приостановила разработку Dragonfly после претензий собственного отдела конфиденциальности, который узнал о проекте из СМИ.



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

Категория: Google

 

Анимация подчёркивания ссылок на чистом CSS

Автор: admin от 27-12-2018, 17:45, посмотрело: 38

Одно из преимуществ создания моего личного сайта с нуля вместо использования готовой темы заключается в том, что я начинаю с настроек браузера по умолчанию и постепенно добавляю собственные расцветки. Я стараюсь удержать сайт от раздувания, но и персонализация — важное дело. Нужно найти некий компромисс между спартанскими страницами Hacker News и Craigslist с одной стороны и перегруженностью старого MySpace с другой.



Как-то мне попался сайт с причудливыми анимированными подчёркиваниями для ссылок, и я захотел реализовать эффект. Но мне важно использовать чистый CSS, потому что ради таких легкомысленных вещей негоже добавлять javascript, который может вызвать проблемы с производительностью или удобством интерфейса (см. угон полосы прокрутки).

Категория: Android

 

Практический пример создания собственного View-компонента

Автор: admin от 27-12-2018, 17:45, посмотрело: 52

Практический пример создания собственного View-компонента



Мне нравится Dribbble. Там есть много крутых и вдохновляющих дизайн-проектов. Но если вы разработчик, то часто чувство прекрасного быстро сменяется на отчаяние, когда вы начинаете думать о том, как реализовать этот крутой дизайн.



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

Категория: Программирование, Веб-разработка, Game Development, Android

 

Kubernetes Ingress глазами новичка

Автор: admin от 27-12-2018, 17:45, посмотрело: 322

Что такое ingress?



Ingress это базовый тип ресурса в кубертенесе. Если просто объявить объект типа Ingress в кубернетисе то ничего не произойдет.



Что бы этот ресурс начал работу в кластере кубернетиса должен быть установлен Ingress Controller, который настроит реверсивный прокси в соответствии с Ingress объектом.



Ingress Controller состоит из 2х компонентов — реверсивного прокси и контроллера который общается с API сервером кубернетеса. Реверсивный прокси слушает входящий трафик на портах которые указаны в настройках (обычно в настройках по умолчанию указан только порт 80). Контроллер может быть как отдельным демоном (как в nginx), так и встроенным в прокси (как в traefik).



Не все клауд провайдеры кубернетеса предустанавливают Ingress Controller по умолчанию.



Контроллеры могут запускаться либо как DaemonSet либо как Deployment. DaemonSet идеально использовать как единственный Ingress Controller, что бы реверсивное прокси слушало на всех IP адресах воркеров. Deployment отлично подходит если перед Ingress контроллером стоит балансировщик — от провайдера кубернетиса (GKE, AKS), MetalLB если онпремис или обычный haproxy/nginx установленный на сервере (требутеся ручная настройка). При этой установке возможно установить несколько Ingress Controller.

Категория: Программирование

 

GDG SPb. Что мы успели сделать за год

Автор: admin от 27-12-2018, 15:40, посмотрело: 46

GDG SPb. Что мы успели сделать за год



Сообщество «Google Developers Group» в Петербурге основано в 2006 году. Однако подвести итоги года мы решили впервые. GDG проводит IT конференции и митапы для разработчиков Android, Kotlin, Scala, Firebase, Dart и Assistant. В 2018 году мы провели 17 конференций и митапов. Под катом вы найдете не только итоги и отзывы о мероприятиях, а еще все материалы и записи классных докладов!

Категория: Google, Android

 

Forbes: Марк Цукерберг стал главным неудачником среди миллиардеров в 2018 году. Он потерял почти $19 млрд

Автор: admin от 27-12-2018, 13:50, посмотрело: 41

Forbes: Марк Цукерберг стал главным неудачником среди миллиардеров в 2018 году. Он потерял почти $19 млрд



Изображение: JD Lasica
, CC BY 2.0



Уходящий год оказался непростым для многих инвесторов и руководителей крупных компаний – стабильность рынков подрывали многочисленные события от Брекзита до торговой войны США и Китая. Неудивительно, что все это не лучшим образом сказалось на динамике состояния богатейших людей планеты.



Издание Forbes опубликовало списки самых удачливых и невезучих миллиардеров 2018 года. Главным неудачником был признан глава Facebook Марк Цукерберг. За последние месяцы соцсеть оказалась в эпицентре целого ряда скандалов. Все это негативно сказалось на капитализации Facebook и публичном образе компании. В результате ее основатель потерял за год $18,7 млрд.

Категория: Facebook

 

Патриот Зимбабве потратил $5000, чтобы оцифровать родную страну на Google Street View

Автор: admin от 27-12-2018, 13:15, посмотрело: 43

Патриот Зимбабве потратил $5000, чтобы оцифровать родную страну на Google Street View
Подготовка к работе панорамной камеры Insta360 Pro 2. Фото: Таванда Канхема



Зимбабве — крайне бедная африканская страна. Хотя до обретения независимости в 1980 году она считалась одной из самых экономических развитых на континенте, несмотря на добычу золота и алмазов, сейчас относится к числу беднейших государств на планете. Зимбабве — прототип сказочной и богатой Ваканды из комиксов Marvel, но это не слишком помогает экономике в реальном мире.



Понятно, что в такой бедной стране мало пользователей интернета, поэтому гигант Google не заинтересован в том, чтобы инвестировать деньги в оцифровку местности и публикацию качественных панорамных карт. Но виртуальные прогулки по Зимбабве всё-таки возможны, и за это нужно благодарить не Google, а одного-едиинственного партриота, 37-летнего американца Таванду Канхему (Tawanda Kanhema), который не забыл про свою малую родину.

Категория: Google

 
Назад Вперед