При работе с платформой Android я столкнулся со множеством проблем, потому что проектировал свои Модели неправильно. Мои приложения были недостаточно реактивными. Теперь используя RxJava и Model-View-Intent (MVI) я, наконец, добился нужного уровня реактивности. Об этом я пишу цикл статей. В первой части расскажу о модели и объясню, чем она важна.
SergeyVoyteshonok @SergeyVoyteshonok
Пользователь
Еще про внедрение таймзон в долгоживущий проект
5 min
9.1KНекоторое время назад начали адаптировать систему под требования нового рынка, где поддержка таймзон обязательна. Начальные изыскания описывал в предыдущей статье. Сейчас подход немного эволюционировал под влиянием реалий. Под катом описание проблем, с которыми пришлось столкнуться в ходе обсуждений, и окончательное решение, которое воплощается в жизнь.
+6
Обзор способов и протоколов аутентификации в веб-приложениях
18 min
640K![](https://habrastorage.org/files/682/c4b/c7b/682c4bc7b2d44e24a77ed3c9678b1946.png)
Я расскажу о применении различных способов аутентификации для веб-приложений, включая аутентификацию по паролю, по сертификатам, по одноразовым паролям, по ключам доступа и по токенам. Коснусь технологии единого входа (Single Sign-On), рассмотрю различные стандарты и протоколы аутентификации.
Перед тем, как перейти к техническим деталям, давайте немного освежим терминологию.
- Идентификация — это заявление о том, кем вы являетесь. В зависимости от ситуации, это может быть имя, адрес электронной почты, номер учетной записи, итд.
- Аутентификация — предоставление доказательств, что вы на самом деле есть тот, кем идентифицировались (от слова “authentic” — истинный, подлинный).
- Авторизация — проверка, что вам разрешен доступ к запрашиваемому ресурсу.
Например, при попытке попасть в закрытый клуб вас идентифицируют (спросят ваше имя и фамилию), аутентифицируют (попросят показать паспорт и сверят фотографию) и авторизуют (проверят, что фамилия находится в списке гостей), прежде чем пустят внутрь.
Аналогично эти термины применяются в компьютерных системах, где традиционно под идентификацией понимают получение вашей учетной записи (identity) по username или email; под аутентификацией — проверку, что вы знаете пароль от этой учетной записи, а под авторизацией — проверку вашей роли в системе и решение о предоставлении доступа к запрошенной странице или ресурсу.
Однако в современных системах существуют и более сложные схемы аутентификации и авторизации, о которых я расскажу далее. Но начнем с простого и понятного.
+48
Авторизация в ASP.NET Core MVC
14 min
88K![](https://habrastorage.org/files/eaa/02a/8b4/eaa02a8b4f014c1fa5d816b7c4251e54.png)
Logo designed by Pablo Iglesias.
В статье описаны паттерны и приемы авторизации в ASP.NET Core MVC. Подчеркну, что рассматривается только авторизация (проверка прав пользователя) а не аутентификация, поэтому в статье не будет использования ASP.NET Identity, протоколов аутентификации и т.п. Будет много примеров серверного кода, небольшой экскурс вглубь исходников Core MVC, и тестовый проект (ссылка в конце статьи). Приглашаю интересующихся под кат.
Содержание:
- Claims
- Подготовительные работы
- Атрибут Authorize и политики доступа
- Настройки политик доступа
- Resource-based авторизация
- Авторизация в Razor-разметке
- Permission-based авторизация. Свой фильтр авторизации
+28
Что разработчики Xamarin должны знать на начало 2017 года
8 min
34KTranslation
Представляем вам пятничную подборку полезных гайдов и шпаргалок от Джеймса Монтемагно для разработчиков разного уровня.
![](https://habrastorage.org/files/680/250/f6b/680250f6b51d4620bac48baf417abb82.jpg)
![](https://habrastorage.org/files/680/250/f6b/680250f6b51d4620bac48baf417abb82.jpg)
+32
А давайте я вам расскажу про градиенты!
8 min
40K![](https://habrastorage.org/storage2/56b/352/9a7/56b3529a77f2bb386c1a674289220d62.png)
скрин финального результата
В этой статье я рассказываю о том, как я изобрел свой личный велосипед, рисующий градиент практически как в фотошопе. Сразу предупреждаю, алгоритм ужасно медленный и неоптимизированный. Оптимизацией и рассмотрением какого-нибудь популярного алгоритма градиента я собираюсь заняться во второй части статьи
Зачем?
Как-то захотелось мне реализовать программную отрисовку градиентов, максимально похожих на фотошоповские. Никакой конкретной цели у меня не было, так, интересная задачка на вечер. В качестве языка была выбрана Java. Важной идеей было то, что я хотел написать этот алгоритм именно своими силами, не подглядывая в чужие алгоритмы.
+49
Как управлять гигантами Vol.2: инструментарий для планирования разработки интернет-проектов
9 min
16K![image](https://habrastorage.org/getpro/habr/post_images/1e1/d81/e8b/1e1d81e8b696cc04ea5ee36660a49264.png)
В предыдущей статье мы внимательно рассмотрели детали организации процессов и построения команды для реализации сложных веб-проектов. Но как контролировать соблюдение процессов и планировать время специалистов? Теоретически можно обойтись блокнотом и ручкой, но это усиливает влияние человеческого фактора, а, значит, появляются дополнительные риски. Для минимизации этих рисков, повышения эффективности и удобства планирования существует множество инструментов. За 10 лет работы AGIMA мы перепробовали великое множество софта для проектного управления, и в этой статье я расскажу об инструментах, которые прошли наш самый суровый отбор и которые наши менеджеры используют ежедневно.
+6
Yandex Translate для Visual Studio Code
4 min
16KНачну с того, что использую vim в качестве редактора файлов. Все удобно и быстро, но есть некоторые проблемы которые выделил при длительном пользовании:
Пользуюсь так же по основному своему хобби — Android Studio. Очень прожорлив этот IDE к ресурсам системы, процессор иногда сходит с ума обрабатывая очередной цикл gradle assembleDebug.
Visual Studio Code испытывал скептически. Первое что удивило скорость запуска вместе с большой структурой проекта. Моментальный поиск по файлам и множество плагинов, отличный менеджер плагинов похожий на Sublime. Минимальная загрузка процессора.
Давно в Android Studio не хватало одной полезной штуки — перевод ресурсов strings.xml под другие языки. Делать раньше это было весьма неудобно:
Чего хотелось — одной комбинацией клавиш получить моментальный результат.
- Нет асинхронности. Знаю что есть nvim — но он работает не так быстро и не так гладко
- Сложность написания плагинов. Спорный конечно вопрос для разных гуру — но честно говоря так много «каши», не хватает модульности и какой то структурности из уже реализованных «велосипедов»
- Когда слишком много плагинов vim стартует — нужно быть честным, довольно долго и это напрягает
Пользуюсь так же по основному своему хобби — Android Studio. Очень прожорлив этот IDE к ресурсам системы, процессор иногда сходит с ума обрабатывая очередной цикл gradle assembleDebug.
Visual Studio Code испытывал скептически. Первое что удивило скорость запуска вместе с большой структурой проекта. Моментальный поиск по файлам и множество плагинов, отличный менеджер плагинов похожий на Sublime. Минимальная загрузка процессора.
Давно в Android Studio не хватало одной полезной штуки — перевод ресурсов strings.xml под другие языки. Делать раньше это было весьма неудобно:
- Выделить текст
- Скопировать
- Перейти в любой онлайн переводчик
- Вставить текст
- Выбрать текущий язык перевода
- Выбрать в какой язык перевести
- Скопировать перевод
- Открыть результирующий strings.xml
- Вставить перевод
Чего хотелось — одной комбинацией клавиш получить моментальный результат.
+6
Доступны Стэнфордские курсы CS193P Весна 2016: Разработка iOS 9 приложений с помощью Swift
5 min
22K![](https://habrastorage.org/files/5da/958/abe/5da958abec0140b49f5cc48a19424f04.png)
Стэнфордский курс «Developing iOS 9 Apps with Swift» теперь доступен на iTunes. Это долгожданное обновление предыдущего курса по iOS 8 и Swift.
Для того, чтобы воспользоваться этим контентом, вам нужно иметь только Mac — Macbook Pro, MacBook Air, iMac. Все программное обеспечение — бесплатное.
Этот курс в течение 10 недель читает профессор Пол Хегэрти. Он не только высвечивает множество нюансов операционной системы iOS и языка программирования Swift, которые не так-то легко найти в документации, но и снабжает вас приемами программирования на iOS, которые вы не найдете ни в одной книге (может быть, на WWDC 2011, 2012, 2013, 2014, 2015). Он многократно сократит ваш путь изучения. Реально, он — гений в преподавании программирования на iOS.
+10
WebGL для всех
11 min
53KTutorial
![](https://habrastorage.org/files/91a/bd0/f4b/91abd0f4b8d047709c2b1259f1c02d63.png)
Идея данной статьи родилась после нескольких мучительных недель изучения WebGL. На личном примере выяснилось, что люди, не сталкивающиеся до этого с 3D-графикой, имеют в основном ошибочные представления о работе данной технологии. К тому же была проблема с поиском информации в интернете.
WebGL, в отличие от Javascript, имеет высокий порог вхождения, его до сих пор мало кто использует, а ещё меньше тех, кто об этом пишет. Большинство руководств или статей перепрыгивают сразу на использование какой-нибудь библиотеки. Но мы-то с вами знаем, что большие универсальные инструменты не всегда пригодны для наших задач или, возможно, делают это на неприемлемом уровне: проигрывают в скорости, поставляются с ненужным багажом и т.д.
Этой статьёй хочется облегчить порог вхождения в чистый WebGL, дать начальное представление и подсказать, куда двигаться дальше.
+62
[Перевод] Введение в Gulp, Grunt, Bower, и поддержка npm в Visual Studio
3 min
38KВступление
Веб разработка, а именно фронт-энд разработка становится, как и традиционная бэк-энд разработка, все комплекснее и мудренее. Множество проектов нуждаются в большем, нежели банальная закачка пары JS и CSS файлов по FTP. Сейчас мы можем наблюдать так называемый процесс сборки фронт-энда, который может включать компиляцию SASS и LESS, сжатие CSS/JS, запуск JSHint или JSLint и многое другое. Эти сборочные задачи и процессы координируются такими инструментами как Gulp или Grunt. Так же клиентскими библиотеками можно управлять используя различные системы управления пакетами как npm или bower.
+17
Обучающее видео и новые подкасты на TechDays.ru
1 min
1.6K11 февраля на сайте TechDays.ru стартовала вторая волна онлайн-семинаров. Кроме того, на этом российском форпосте Microsoft выложено более 60 новых онлайн-докладов по разработке приложений и управлению инфраструктурой. Ниже приводим прямые ссылки на некоторые из них.
Если у вас нет широкополосного доступа, то вместо видеороликов можно скачать подкасты, или отдельно файлы презентаций и примеры кода.
В разделе «Разработка приложений»:
* Обзор возможностей Windows 7 для разработки приложений
* Построение произвольного отчета для руководства из любой базы данных за 15 минут
* Введение в Azure Services Platform
* IEAK — создай свой IE8
* Безопасность в ASP.NET
* Управление IIS с помощью PowerShell
В разделе «Управление инфраструктурой»:
* XP, Vista, Win7 — вчера, сегодня, завтра. Сетевые возможности
* XP, Vista, Win7 — вчера, сегодня, завтра. Технологии безопасности
* Exchange Server — Восстановление после аварии
* Пишем первый сценарий и знакомимся с Windows PowerShell
* Теория и практика борьбы со спамом и вирусами с помощью технологий Микрософт
* Причины несовместимости приложений с Windows Vista и их устранение
Если у вас нет широкополосного доступа, то вместо видеороликов можно скачать подкасты, или отдельно файлы презентаций и примеры кода.
В разделе «Разработка приложений»:
* Обзор возможностей Windows 7 для разработки приложений
* Построение произвольного отчета для руководства из любой базы данных за 15 минут
* Введение в Azure Services Platform
* IEAK — создай свой IE8
* Безопасность в ASP.NET
* Управление IIS с помощью PowerShell
В разделе «Управление инфраструктурой»:
* XP, Vista, Win7 — вчера, сегодня, завтра. Сетевые возможности
* XP, Vista, Win7 — вчера, сегодня, завтра. Технологии безопасности
* Exchange Server — Восстановление после аварии
* Пишем первый сценарий и знакомимся с Windows PowerShell
* Теория и практика борьбы со спамом и вирусами с помощью технологий Микрософт
* Причины несовместимости приложений с Windows Vista и их устранение
+11
VoytPaint — еще одна рисовалка для Android
1 min
14KВ один прекрасный день мне понадобилось приложение на Андроид, в котором можно что-нибудь нарисовать, после долгих поисков на маркете нашел ScetchBook, и все… все остальное, что выходило в поисковой выдаче было ужасно: страшный интерфейс, тормоза (кстати к скетчбуку это тоже относится), глюки, рисование только кистью и тд. Так как уже тогда изучал программирование под Андроид решил продумать все что мне нужно и оформить это в виде приложения.
И вот что получилось:
![](https://habrastorage.org/storage1/323ac8e0/5b772eea/bb27bd1c/09b2d914.png)
Voytpaint — приложение в котором можно рисовать!!!
(все остальные названия со словом paint и draw уже заняты, поэтому пришлось приделать к нему еще и часть фамилии)
И вот что получилось:
![](https://habrastorage.org/storage1/323ac8e0/5b772eea/bb27bd1c/09b2d914.png)
Voytpaint — приложение в котором можно рисовать!!!
(все остальные названия со словом paint и draw уже заняты, поэтому пришлось приделать к нему еще и часть фамилии)
+6
3-ндфл для источников доходов из-за пределов РФ
2 min
9KПривет всем.
Сия блогозапись пригодится тем, кто получает доходы не только на основной работе, но и получает деньги из-за рубежа банковскими переводами, а значит, должен с этих доходов заплатить налоги. Рассмотрим здесь случай уплаты налогов физическим лицом по ставке 13%. Вопрос обязательности уплаты налогов не рассматривается, смотрите УК РФ.
Сия блогозапись пригодится тем, кто получает доходы не только на основной работе, но и получает деньги из-за рубежа банковскими переводами, а значит, должен с этих доходов заплатить налоги. Рассмотрим здесь случай уплаты налогов физическим лицом по ставке 13%. Вопрос обязательности уплаты налогов не рассматривается, смотрите УК РФ.
+6
С чего начинается дружба с Active Directory
4 min
59KМне часто приходится сталкиваться с обработкой информации из Active Directory. Так как данная система много где распространена, я решил поделиться своим опытом работы с ней.
Началось всё с того, что я раздавал доступ в MS Sharepoint. В заявках от сотрудников, в лучшем случае, приходили учетные записи, в худшем могли написать что-то типа “Мне и моему начальнику”.
Началось всё с того, что я раздавал доступ в MS Sharepoint. В заявках от сотрудников, в лучшем случае, приходили учетные записи, в худшем могли написать что-то типа “Мне и моему начальнику”.
+6
Windows Identity Foundation — для ASP.NET MVC проектов
11 min
24K![](https://habrastorage.org/files/139/293/bb8/139293bb8ae64330bc46950a52c022f6.png)
В этой статье, хотелось бы рассказать о том, как можно использовать Windows Identity Foundation в своих ASP.NET MVC проектах, и написать свой Identity Server, на WIF платформе. Во первых, потому что, общей информации, в интернете, достаточно, а вот когда дело касается конкретики, тут возникают проблемы. Так как идеологию и частные случаи можно ещё найти, а вот когда дело касается конкретики, приходится собирать по крупицам. И во вторых, то что сейчас предлагает Microsoft, используя надстройки над Visual Studio, не совсем годится, я бы даже сказал, совсем не годится при разработке решений, сложнее домашней странички или сайта — визитки. Кроме всего прочего, я не очень люблю, когда мифический мастер настройки что сделал с солюшеном, и сказал что «вроде должно работать».
+17
Откуда «мыло» в WPF и как с ним бороться
21 min
82KTutorial
![](https://habrastorage.org/getpro/habr/post_images/d6a/ef1/44d/d6aef144d1735196321321daa459bd8c.png)
Это руководство для WPF-разработчиков, стремящихся добиться максимально чёткой картинки в своих приложениях. Графическая система WPF до мозга костей векторная, но конечным результатом её работы по-прежнему является растр. Если не уделить этому факту должного внимания, можно столкнуться с различными сортами «мыла» — паразитными артефактами растеризации. В такой ситуации важно не терять присутствия духа, причины их возникновения вполне рациональны, а методы борьбы достаточно просты и эффективны.
+166
Из разработчика в дизайнеры: опыт и советы
7 min
33KTranslation
![](https://habrastorage.org/getpro/habr/post_images/a80/eba/dae/a80ebadaed09dea70a64f7bc9d1a4f57.png)
Как человеку с опытом разработчика стать дизайнером? Советы от человека, который сделал это.
+18
Основы архитектуры IIS, или запросопровод для ASP.NET
20 min
207KTutorial
![](https://habrastorage.org/storage2/6e0/353/0c3/6e03530c3d91390d7bbc6e3f011a9d79.jpg)
В прошлом году мне пришлось отсобеседовать около 10-15 кандидатов на должность веб-программиста на ASP.NET средней квалификации. В качестве вопросов «на засыпку», или «со звёздочкой», я просил рассказать, что происходит с HTTP-запросом от момента его поступления на 80-й порт сервера до передачи управления коду aspx-страницы. Статистика была удручающей: ни один из кандидатов не смог выдать хоть что-нибудь внятное. И этому есть своё объяснение: ни в MSDN с technet, ни на специализированном ресурсе iis.net, ни в книгах a-la «ASP.NET для профессионалов», ни в блогах данной теме не уделяется должного внимания – информацию приходится собирать чуть ли не по крупицам. Я даже знаю людей, которые решили написать свой собственный веб-сервер (Игорь, Георгий, привет!), чтобы не разбираться в работе IIS. Единственная толковая статья – «Introduction to IIS Architectures» Риган Темплин (Reagan Templin). Но и она остаётся на периферии интересов аспнетчиков.
Хотя мне лично уже не так интересны чисто технические вопросы, я решил собрать в кучу свой накопленный опыт, раскопать на просторах Сети любопытные детали и передать сие сакральное знание массам, пока оно ещё не устарело. Сразу оговорюсь, что статья ориентирована в большей степени на IIS 7.x, иногда будут ответвления про 6-ку. С 8-й версией в работе не сталкивался, поэтому решил обойти её в этой статье стороной. Но, уверен, читатель без труда разберётся с восьмёркой, освоив изложенный ниже материал.
+47
Ускоряем проверку ваших iOS/Mac приложений в iTunesConnect с недели до одного дня
3 min
42K![](https://habrastorage.org/storage2/974/ef3/6df/974ef36df5e2f10ceb6533051d246a77.png)
Проверка приложения, отправленного разработчиком на рассмотрение Apple Review Team в iTunesConnect в среднем занимает около недели, а если вам «повезло» и вы отправили ваше приложение около выходных или праздников, то процесс проверки и появление заветного «In Review» может затянуться на гораздо больший срок.
В данный статье я хочу описать два способа ускорения проверки iOS и Mac приложений в AppStore, работающих на сегодняшний день. Оба способа являются бесплатными.
+56
Information
- Rating
- Does not participate
- Location
- Москва, Москва и Московская обл., Россия
- Date of birth
- Registered
- Activity