Pull to refresh
10
Karma
0
Rating
Екатерина Батеева @Neifmetus

iOS разработчик

  • Followers 5
  • Following
  • Posts
  • Comments

Snort или Suricata. Часть 2: установка и первичная настройка Suricata

RUVDS.com corporate blogInformation SecuritySystem administration
Если верить статистике, объем сетевого трафика увеличивается примерно на 50% каждый год. Это приводит к росту нагрузки на оборудование и, в частности, повышает требования к производительности IDS/IPS. Можно покупать дорогостоящее специализированное железо, но есть вариант подешевле — внедрение одной из систем с открытым исходным кодом. Многие начинающие администраторы считают, будто установить и сконфигурировать бесплатную IPS довольно сложно. В случае с Suricata это не совсем верно — поставить и ее и начать отражать типовые атаки с набором бесплатных правил можно за несколько минут.

Читать дальше →
Total votes 26: ↑26 and ↓0+26
Views12K
Comments 1

15 лучших и крупнейших библиотек иконок

Edison corporate blog
Translation


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

Сразу уточняем: это не 15 самых лучших библиотек, а 15 из лучших. Разумеется, есть и другие, не менее замечательные, о которых я не упомянул или не знаю.
И, нет, это не рейтинг — список маркированный, а не нумерованный.
Читать дальше →
Total votes 26: ↑24 and ↓2+22
Views20K
Comments 12

Реализация промо-предложений в iOS. Как зарабатывать на подписках больше?

Apphud corporate blogDevelopment of mobile applicationsSwiftMobile applications monetizationMobile App Analytics
Tutorial


В iOS 12.2 Apple добавила новую классную фичу – промо-предложения. Теперь приложения с авто-возобновляемыми подписками могут предлагать нынешним или бывшим клиентам персональные скидки или дополнительный бесплатный период. Промо-предложения распространяются на платящих, плативших, находящихся в триале и отменивших триал пользователей. В отличие от вводного предложения, промо-предложение можно купить сколько угодно раз по усмотрению разработчика. Но реализация требует наличия сервера для генерации цифровой подписи.

Читать дальше →
Total votes 12: ↑11 and ↓1+10
Views4K
Comments 0

Увеличиваем прибыль от iOS приложения втрое. Никакого продвижения, только техника…

ProgrammingDevelopment for iOS
Sandbox
Привет, Хабрахабр!

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



Кому интересно, добро пожаловать под кат.
Читать дальше →
Total votes 161: ↑142 and ↓19+123
Views74K
Comments 102

Allure Server meetup: видеозаписи докладов

Wrike corporate blogIT systems testingProgrammingWeb services testingDevelopment Management


В конце марта в питерском офисе Wrike прошел Allure server meetup. В несколько часов удалось поместить концентрированную информацию по новому инструменту Allure server, по современным практикам работы с тестовой документацией и автотестами и по интересному опыту взаимодействия тестирования компании Wrike и нового вендора на рынке TMS систем.

Для тех, кто не смог прийти, мы публикуем видеозаписи докладов.
Смотреть
Total votes 18: ↑18 and ↓0+18
Views5.7K
Comments 7

UI-тесты в iOS проекте. Есть ли профит и для чего их вообще внедряют

Конференции Олега Бунина (Онтико) corporate blogDevelopment for iOSInterfacesMobile applications testing
Людей, которые не просто хотя бы раз писали UI-тесты, а делали бы это в коммерческих проектах, довольно мало, потому что эту часть разработки очень сложно продать заказчику и аргументировать менеджеру, зачем они нужны и почему занимают столько времени. Новосибирская компания Improve Digital решилась на этот шаг по ряду причин, в частности из-за того, что разрабатываемый проект долгосрочный и с большим потенциалом дальнейшего развития.

Далее расшифровка выступления Михаила Домрачева на AppsConf 2017, в ходе которого он рассказал, как на практике внедрить UI-тесты в iOS проектах, и поделился мыслями, когда это действительно необходимо, а когда — излишне.

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


Читать дальше →
Total votes 35: ↑33 and ↓2+31
Views15K
Comments 3

«Фабричный метод» и «Абстрактная фабрика» во вселенной «Swift» и «iOS»

ProgrammingPerfect codeDevelopment for iOSООPSwift
Слово «фабрика» – безусловно одно из самых часто употребляемых программистами при обсуждении своих (или чужих) программ. Но смысл в него вкладываемый бывает очень разным: это может быть и класс, порождающий объекты (полиморфно или нет); и метод, создающий экземпляры какого-либо типа (статический или нет); бывает, и даже просто любой порождающий метод (включая, конструкторы).

Конечно, не все, что угодно, порождающее экземпляры чего-либо, может называться словом «фабрика». Более того, под этим словом могут скрываться два разных порождающих шаблона из арсенала «Банды четырех» – «фабричный метод» и «абстрактная фабрика», в подробности которых я и хотел бы немного углубиться, уделяя особое внимание классическим их пониманию и реализации.
Читать дальше →
Total votes 7: ↑7 and ↓0+7
Views8.6K
Comments 4

Тюнинг Swift компилятора. Часть 2

ProgrammingDevelopment for iOSDevelopment of mobile applicationsXcodeSwift

image


Продолжение исследования способов ускорить компиляцию Swift. Издевательство над семантическим анализатором и неожиданные настройки проекта.


Ссылка на первую часть для тех, кто пропустил.


Читать дальше →
Total votes 23: ↑20 and ↓3+17
Views11K
Comments 4

Собеседование: Swift. Вопросы и ответы

Development for iOSSwiftDevelopment for MacOS
Translation
Языку программирования Swift всего четыре года, но он уже становится основным языком разработки для iOS. Развиваясь до версии 5.0, Swift превратился в сложный и мощный язык, отвечающий как объектно-ориентированной, так и функциональной парадигме. И с каждым новым релизом в нем добавляется еще больше возможностей.

Но насколько хорошо вы на самом деле знаете Swift? В этой статье вы найдете примеры вопросов для собеседования по Swift.

Вы можете использовать эти вопросы для интервьюирования кандидатов, чтобы проверить их знания или вы можете проверить свои собственные. Если вы не знаете ответа, не переживайте: к каждому вопросу есть ответ.
Читать дальше →
Total votes 10: ↑10 and ↓0+10
Views42K
Comments 19

UICollectionView всему голова: Изменение представления на лету

Development for iOSXcodeSwift
Sandbox
Привет, Хабр! Представляю вашему вниманию перевод статьи "UICollectionView Tutorial: Changing presentation on the fly".

В данной статье мы рассмотрим использование различный способов отображение элементов, а также их переиспользование и динамическое изменение. Здесь мы не будем рассматривать основы работы с коллекциями и autolayout.

В результате мы получим такой пример:

Читать дальше →
Total votes 12: ↑11 and ↓1+10
Views20K
Comments 2

Разгоняем сборку Swift проекта в Xcode

ProgrammingDevelopment for iOSDevelopment of mobile applicationsXcodeSwift
Tutorial

image
Статья о том как починить инкрементальную компиляцию в Xcode для Swift проектов и ускорить build phases для Cocoapods и Carthage, ничего не поломав.


Небольшой спойлер: на трех разных проектах получилось сократить время инкрементальной сборки в 9 раз!


Туториал несет сугубо практический характер с минимумом воды. Обязательно к прочтению для действующих iOS разработчиков.


Читать дальше →
Total votes 18: ↑15 and ↓3+12
Views15K
Comments 21

Ускорение компиляции в Xcode на swift

Development for iOSXcodeSwift
Sandbox
С ростом проекта, скорость компиляции проекта замедляется. Особенно это заметно становится, когда тестируешь программу, делая параллельно небольшие изменения в программе.

Сначала давайте узнаем как долго компилируется проект до наших улучшений. ЧТобы это сделать надо в терминале ввести

defaults write com.apple.dt.Xcode ShowBuildOperationDuration -bool YES

Для этого нужно зайти в раздел Product зажать alt и нажать Clean Build Folder, а потом собрать проект заново. Мой проект компилируется 81 секунду. Посмотрим какой результат будет после улучшения.



Нам, в первую очередь, стоит узнать какие места приводят к замедлению компиляции. По умолчанию Xcode не показывает предупреждения, где проблема, но мы можем это исправить.
Самые «тяжелые» места большие функции и проверка типов. Поэтому нам нужно вписать эти две строчки в раздел Build Settings -> Other Swift Flags -> Debug

-Xfrontend -warn-long-function-bodies=100
-Xfrontend -warn-long-expression-type-checking=100

(здесь у нас стоит 100мс время компиляции, мы можем поставить любое число)

Наглядный рисунок


Пример моего рабочего проекта



У меня есть участок который занимает 13778 ms, скорее всего у вас не будет такого, но из-за специфики проекта у меня такие участки есть. Так как там построено бинарное дерево для OCR.
Из-за глубокой вложенности друг в друга и определения типа только в самом начале, перед знаком равенства, компилятору требуется много времени понять какой перед ним тип. (Дерево занимает 30 строк, вот его часть)
Читать дальше →
Total votes 15: ↑15 and ↓0+15
Views5.8K
Comments 6

Статические Generic таблицы

Development for iOSSwift
image

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

О том, как я решаю данную проблему — под катом.
Читать дальше →
Total votes 11: ↑11 and ↓0+11
Views3.8K
Comments 10

Метод критической цепи

Project management

Метод критической цепи: эффективное управление проектами с использованием буферов времени и ресурсов


Работа стремится занять все время, отпущенное на нее.
Закон Паркинсона.
Если какая-нибудь неприятность может произойти, — она случается.
Закон Мерфи.

Немного статистики


Одной из причин выделения управления проектами в отдельную область знаний является неопределенность. То, как мы управляем неопределенностью в проекте (в том числе и рисками), напрямую влияет на длительность проекта, на его успех.
По данным многочисленных исследований Standish Group1 для традиционных методов управления проектами, только 44% проектов обычно завершаются вовремя. В среднем проекты занимают 222% процента от изначально запланированной длительности, 189% от начального бюджета. 70% проектов сокращают исходный объем работ проекта, 30% проектов закрываются досрочно.
И хотя в последнее время, с развитием инструментов и техник управления проектами, эти цифры стали уменьшаться, общая картина говорит о том, что мы как менеджеры проектов плохо делаем свою работу.
Данная статья рассматриваем использование относительно новый метод управления проектами, метод критических цепей (МКЦ), сравнивая его с традиционным подходом к управлению проектами.
Читать дальше →
Total votes 51: ↑46 and ↓5+41
Views31K
Comments 96

Два процента «кота» или кто сфотографировал Мастера Йоду?

Development for iOSSwift
Sandbox
В 2016 из-за давней мечты о видео-играх и «хайпа» вокруг AI я начал изучать Python.
Computer Science is Fun потому только неделю назад я обучил первую recognition модель, но без использования Python (в computer science много соблазнов). Как и предсказывал Андрей Себрант (Yandex), новая технологическая революция свершилась. Почему? Сделать приложение по распознаванию изображений проще, чем компьютерную игру. Хватит часа или двух.



Я пошел «сложным» путем – не выбирал из четырех уже обученных моделей, а натренировал свою. Библиотека Core ML от Apple позволяет сделать это 6 строчками кода или через графический интерфейс в playgrounds.

import CreateMLUI
let builder = MLImageClassifierBuilder()
builder.showInLiveView()

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

Раньше я только читал про machine learning. Когда сам попробовал – столкнулся с тремя ожидаемыми проблемами/выводами:

  1. Данные – самая важная часть.
  2. Удобный интерфейс(CoreML). Все просто работает и не очень хочется лезть в исходный код, чтобы разобраться в деталях. Машинное обучение доступно любому пользователю, но сложные подробности инженеры Apple постарались спрятать.
  3. Модель это «черный ящик». Я не знаю правил по которым модель считает, что на фотографии два процента «кота».

Эксперимент с распознаванием «котов-людей» натолкнул на мысль, что алгоритм классификации справится со «стилем».
Читать дальше →
Total votes 16: ↑16 and ↓0+16
Views2.6K
Comments 2

Делаем UITableView. Для начинающих

Development for iOSObjective CXcodeSwift
Tutorial

Новогодние праздники прошли, а мое стремление писать полезные и не очень статьи — нет! Сегодня поговорим о UITableView, работе с UITableViewDataSource и переиспользовании ячеек. Затронем как установить рут контроллер без сториборда, ошибки при работе с таблицей, лейаут и большой заголовок для UINavigationBar.


Для тех, кому нравятся несмешные шутки, я записал ролик на YouTube. Ну а здесь всё будет серьезно. Давайте начнём.

Читать дальше →
Total votes 11: ↑10 and ↓1+9
Views38K
Comments 18

Написание Unit-тестов. Mocking объектов

Development for iOSSwiftMobile applications testing
Translation
Tutorial
Кому нужны модульные тесты? Не Вам — Ваш код идеален. Но все же, Вам просто нужно прочитать эту статью, которая должна больше рассказать о написании модульных тестов на Swift’е. Вдруг это Вам в дальнейшем пригодиться.

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

Модульное тестирование работает с изолированными “микрокомпонентами”. Зачастую Вам нужно «мокировать» классы – то есть обеспечить фейк функциональной реализацией, чтобы изолировать специфический микрокомпонент, таким образом, он сможет быть протестирован. В Objective-C существует несколько сторонних фреймворков, которые помогают это реализовать. Но они еще не доступны в Swift’е.

В этом руководстве Вы научитесь, писать свои собственные mock-обьекты, fakes и stub'ы, чтобы покрыть тестами давольно простое приложение, которое поможет вам запомнить дни рождения ваших друзей.
Читать дальше →
Total votes 9: ↑8 and ↓1+7
Views36K
Comments 3

Быстрые команды Siri

TINKOFF corporate blogDevelopment for iOSDevelopment of mobile applications
Tutorial


Одна из полезных (по моему мнению) фич iOS 12, представленных на WWDC 2018Siri Shortcuts.


Шорткат (англ. shortcut) — быстрая команда, короткий способ совершить какое-либо действие в обход стандартному сценарию.


В своих приложениях вы можете привязывать шорткаты для некоторых действий. Обучаясь на том, как и когда пользователь их выполняет, Siri начинает по-умному, в нужное время и место, предлагать ему эти шорткаты и, что самое крутое, пользователь сможет их вызывать фразами, которые сам к ним привяжет! Под катом подробнее.

Читать дальше →
Total votes 41: ↑40 and ↓1+39
Views16K
Comments 5

Знай сложности алгоритмов

Algorithms
Translation
Эта статья рассказывает о времени выполнения и о расходе памяти большинства алгоритмов используемых в информатике. В прошлом, когда я готовился к прохождению собеседования я потратил много времени исследуя интернет для поиска информации о лучшем, среднем и худшем случае работы алгоритмов поиска и сортировки, чтобы заданный вопрос на собеседовании не поставил меня в тупик. За последние несколько лет я проходил интервью в нескольких стартапах из Силиконовой долины, а также в некоторых крупных компаниях таких как Yahoo, eBay, LinkedIn и Google и каждый раз, когда я готовился к интервью, я подумал: «Почему никто не создал хорошую шпаргалку по асимптотической сложности алгоритмов? ». Чтобы сохранить ваше время я создал такую шпаргалку. Наслаждайтесь!
Читать дальше →
Total votes 312: ↑296 and ↓16+280
Views725K
Comments 99
1

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Works in
Registered
Activity