Pull to refresh
1
0
Роман Сопов @sopov

Разработчик

Send message

Core Data + Swift для самых маленьких: необходимый минимум (часть 1)

Reading time12 min
Views93K
Про Core Data и Swift написано не так много, как хотелось бы, особенно это касается русскоязычного сегмента Интернета. При этом большинство статей и примеров используют довольно примитивные модели данных, чтобы показать только саму суть Core Data, не вдаваясь в подробности. Данной статьей я хотел бы восполнить этот пробел, показав немного больше о Core Data на практическом примере. Изначально, я планировал уместить весь материал в одну статью, но в процессе написания стало ясно, что для одной публикации объем явно великоват, а так как из песни слов не выкинешь, то я все-таки разобью данный материал на три части.

Вместо Введения


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

Три ошибки iOS-разработчика, которые могут дорого стоить

Reading time5 min
Views15K

 
Создание iOS-приложения – непростая задача. Разработчикам хочется как можно быстрее завершить этот процесс и наконец запуститься в AppStore. Но на этом все не заканчивается: впереди у создателей долгие годы исправления ошибок, улучшения функций и совместной работы с другими разработчиками. Мы бы хотели немного облегчить им жизнь и для этого решили разобрать три вещи, которые нужно избегать при iOS-разработке (спасибо Envato Tuts+ за информацию).
Читать дальше →

Защищаем мобильное приложение с помощью «КриптоПро»: пошаговая инструкция

Reading time12 min
Views17K
Статья описывает работу с одним из крупнейших российских поставщиков средств криптографической защиты информации и электронной цифровой подписи — компанией «КриптоПро», занимающей лидирующие позиции в России. Рассмотрено импортирование фреймворка для iOS и подводные камни при импортировании, его использование для создания и проверки электронных цифровых подписей, а также авторизации с использованием приватного ключа.

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

20 приёмов работы в командной строке Linux, которые сэкономят уйму времени

Reading time9 min
Views243K
Тема полезных приёмов работы в терминале Linux неисчерпаема. Казалось бы — всё устроено очень просто: приглашение оболочки, да введённые с клавиатуры команды. Однако, в этой простоте кроется бездна неочевидных, но полезных возможностей. Именно поэтому мы регулярно публикуем материалы, посвящённые особенностям работы в командной строке Linux. В частности, сегодня это будет перевод статьи, автор которой увлечён экономией времени через повышение продуктивности труда.



Если вас интересует работа в командной строке Linux — вот некоторые из наших материалов на эту тему:

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

Процесс релиза iOS-приложений в Badoo

Reading time10 min
Views19K


Всем привет! Меня зовут Михаил Булгаков, и я работаю в команде релиз-инженеров Badoo. В этом посте я расскажу о том, как происходят релизы iOS-приложений с момента «У меня есть готовый бинарь» до момента «После нас хоть потоп», и, конечно, как это делаем мы в Badoo (забегая вперёд: нам удалось сократить время, необходимое на запуск релиза, с нескольких часов до одной минуты и избавиться от ручной работы).

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

Межсерверное WebRTC

Reading time5 min
Views7.3K


WebRTC умеет работать Peer-to-Peer и Peer-to-Server, где в роли пира, как правило выступает браузер или мобильное приложение. В данной статье мы расскажем о работе WebRTC в режиме Server-to-Server, для чего это нужно и как это работает.
Читать дальше →

Внутренние механизмы V8 и быстрая работа со свойствами объектов

Reading time11 min
Views16K
Этот материал посвящён тому, как внутренние механизмы V8 работают со свойствами JavaScript-объектов. Если рассматривать свойства с точки зрения JavaScript, то разные их виды отличаются друг от друга не так уж и сильно. Скажем, JS-объекты обычно ведут себя как словари со строковыми ключами и произвольными объектами в качестве значений. Однако, если почитать спецификацию языка, можно выяснить, например, что свойства разных видов по-разному ведут себя при их переборе. В других случаях поведение свойств различных видов, в основном, выглядит одинаково.

Казалось бы, реализация механизма работы со свойствами, учитывая их схожесть, задача не такая уж и масштабная, однако, в недрах V8 используется несколько различных способов представления свойств. Сделано это, во-первых, для обеспечения высокой производительности, во-вторых — ради экономии памяти.

image

В этом материале мы хотим рассказать о том, как V8 добивается высокой производительности при обработке динамически добавляемых свойств объектов. Знание особенностей механизма работы со свойствами необходимо для понимания сущности способов оптимизации выполнения JavaScript в V8, таких, например, как встроенные кэши.
Читать дальше →

Подводные камни настройки Mikrotik SXT LTE

Reading time5 min
Views125K
Доброго времени суток Хабр, попытаюсь рассказать о своём знакомстве с такой вещью, как Mikrotik SXT LTE, муках настройки и последующего доведения до ума.


Немного предыстории:

Своё знакомство с Mikrotik и RouterOS начал около двух лет назад, имеется сертификат MTCNA, планирую в ближайшее время получить MTCRE и MTCWE. За это время я не устаю восхищаться оборудованием Mikrotik за их функциональность. В основном работал с представителями линейки RouterBoard 7xx и 9xx, так как их возможностей и мощностей всегда хватало, до недавних пор.
Читать дальше →

Что за черт, Javascript

Reading time17 min
Views165K


Этот пост — список забавных и хитрых примеров на JavaScript. Это отличный язык. У него простой синтаксис, большая экосистема и, что гораздо важнее, огромное сообщество.


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

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

Покойся с миром, REST. Долгих лет жизни GraphQL

Reading time13 min
Views48K


Перевод. Автор оригинала Samer Buna. Оригинал статьи.

Когда я впервые узнал о GraphQL после долгого использования различных REST API, то не мог удержаться от твитов такого содержания:

Rest API превратился в REST-in-Peace API. Долгих лет жизни GraphQL


Примечание переводчика – Rest In Peace, RIP – распространенная эпитафия "Покойся с миром". Первое слово в ней пишется так же, как акроним REST.

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


Поймите правильно. Я не собираюсь обвинять GraphQL в убийстве REST или чём-то таком. REST не умрет никогда, также как XML будет жить вечно. Но кто в здравом уме станет использовать XML вместо JSON? На мой взгляд, GraphQL сделает для REST то же самое, что JSON сделал для XML.

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

Добротный риалтайм на React и Socket.io

Reading time7 min
Views48K
Сегодня поговорим о том, как наладить взаимодействие React-приложения с сервером, используя Socket.io, добившись при этом высокой скорости отклика приложения на события, которые генерирует сервер. Примеры кода рассчитаны на React или React Native. При этом концепции, изложенные здесь, универсальны, их можно применить и при разработке с использованием других фронтенд-фреймворков, таких, как Vue или Angular.

image

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

«В Тарантуле нет такой проблемы как сильная деградация со временем и под нагрузкой» – Василий Сошников

Reading time7 min
Views5.4K
Сегодня мы беседуем с Василием Сошниковым, архитектором и разработчиком отечественной open source СУБД Tarantool.

Благодаря своим возможностям обеспечивать высокую пропускную способность на OLTP-нагрузках, Тарантул пользуется необычайной популярностью и спросом среди высокотехнологичных компаний. Сегодня Тарантулом пользуются отечественные крупнейшие Web-сервисы, телекоммуникационные операторы и многие другие представители крупного бизнеса.

На PG Day'17 Russia, Василий проведет интенсивный практический курс по построению масштабируемой распределенной архитектуры для OLTP-задач, используя всего лишь два инструмента: Tarantool и nginx. Все участники курса прослушают краткий ликбез об архитектуре и внутреннем устройстве Тарантула, после чего погрузятся в 3-хчасовую практику, во время которой с нуля построят отказоустойчивый и масштабируемый сервис.

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




PG Day: Василий, расскажи вкратце про себя: кто ты, чем занимаешься, какие проблемы решаешь?

Василий: Я – старший разработчик / архитектор. В мои обязанности входит проектирование и разработка. Также я иногда пересекаюсь с бизнесовой, менеджерской и организационной составляющей. Трудно охарактеризовать мою работу одним словом. Сейчас я разрабатываю и продвигаю open source проект Tarantool. Также иногда помогаю другим сторонним проектам, к примеру Centrifugo (это message broker для веба).
Читать дальше →

Электро-Л вернулся

Reading time3 min
Views32K


Метеоспутник “Электро-Л№2” стал выкладывать снимки в полном разрешении. Ранее снимки нового спутника публиковались только в режиме просмотра, теперь же Землю можно изучать с детализацией 1 км на пиксель с обновлением в полчаса.

Я много рассказывал про работу спутника “Электро-Л”, построенному в НПО им. С.А. Лавочкина. С высоты 36 тыс км он снимал Землю каждые 30 минут, создавая великолепные крупноформатные снимки восточного полушария. Снимки находились в открытом доступе на сервере Научного центра оперативного мониторинга Земли (НЦОМЗ) и любой желающий мог их изучать.

Объектное Реактивное Программирование

Reading time16 min
Views22K

Объектное Реактивное Программирование


Дмитрий Карловский из SAPRUN представляет… ммм...


Это — текстовая версия одноимённого выступления на FrontendConf'17. Вы можете читать её как статью, либо открыть в интерфейсе проведения презентаций, либо посмотреть видео.

Надоело.. Чем поможет ОРП?
… писать много, а делать мало? Пиши мало, делай много!
… часами дебажить простую логику? Реактивные правила обеспечат консистентность!
… асинхронщина? Синхронный код тоже может быть неблокирующим!
… что всё по умолчанию тупит? ОРП оптимизирует потоки данных автоматом!
… функциональные головоломки? Объекты со свойствами — проще некуда!
… что приложение падает целиком? Позволь упасть его части — само поднимется!
… жонглировать индикаторами ожидания? Индикаторы ожидания пусть сами появляются, где надо!
… двустороннее связывание? Двустороннее связывание нужно правильно готовить!
… пилить переиспользуемые компоненты? Пусть компоненты будут переиспользуемыми по умолчанию!
… вечно догонять? Вырывайся вперёд и лидируй!
Читать дальше →

Node.js и cote: простая и удобная разработка микросервисов

Reading time17 min
Views33K
Многие считают, что микросервисы — это очень сложно. На самом же деле, при правильном подходе, это совсем не так.

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

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

Ещё одна система логирования, теперь на ElasticSearch, Logstash, Kibana и Prometheus

Reading time13 min
Views51K


Всем разработчикам известна ситуация, когда приложение заглючило и пользователь не может сделать то, что ему нужно. Причины разные: пользователь ввёл неправильные данные, у него медленный интернет и многое другое. Без системы логирования разобрать эти ошибки сложно, а порой невозможно. С другой стороны, система логирования — хороший индикатор проблемных мест в работе системы. Я расскажу, как построить систему логирования в своём проекте (да, ещё раз). В статье расскажу об Elasticsearch + Logstash + Kibana и Prometheus и как их заинтегрировать со своим приложением.

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

Маркетинговое исследование. Как проверить идею бизнеса за неделю, потратив копейки?

Reading time5 min
Views13K
Те, кто сталкивался с заказом анализа рынка и маркетинговых исследований у известных компаний, знают, что более-менее полезный отчет можно получить за 2-3 месяца работы со стоимостью от 100 000 рублей.

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

Можно, конечно, воспользоваться услугами агентств и бизнес-аналитиков попроще или самим составить анкету и выйти на улицу… Но как мы все знаем, everybody lies, и данные могут быть сильно искажены. То есть толку от такого исследования будет ноль.

Я предлагаю другой подход. Не важно, будет ли это интернет-магазин, бутик в торговом центре или новое производство – еще до запуска можно изучить спрос, объем аудитории и просчитать сроки окупаемости проекта. Согласитесь, неприятно потратить полгода на запуск и рекламу бизнеса полгода и несколько сотен тысяч рублей (а то и миллионов), чтобы понять, что он «не выстрелил».

Мой вариант – это «многоходовочка», но выполнение только первого этапа, о котором пойдет речь, уже хорошо отвечает на указанный выше вопрос.
Читать дальше →

Работа с потоком логов в реальном времени с помощью Heka. Опыт Яндекс.Денег

Reading time9 min
Views32K

image alt text


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


Система построена на базе стека EHK (Elasticsearch/Heka/Kibana), с прицелом на работу практически в реальном времени. Особый упор сделаю на тонкие места и нюансы обработки миллиардов строк текста в сутки.

Приступим к суровому hands-on

Как работают rooms в Socket.io

Reading time2 min
Views40K
В качестве предисловия

Захотел наш клиент сделать на проектe чат с блекджеком и куртизанками. NodeJs не мой профиль и опыта с ним у меня было не так много. (Поэтому статья адресована таким же новичкам в node и socket.io, как и я сам).

Тем не менее, один проект я делал и связан он был — да, да с socket.io. Вот и в этот раз я подумал, что он идеально подойдет. Более того, на сайте даже есть демо и пример чата. Но, как всегда в жизни, все оказывается сложнее, чем в примерах.

Чат из примера отсылал сообщения абсолютно всем. Было понятно что как-то надо добавить пользователей в комнату. И если мы взглянем в документацию socket.io rooms and namespaces — здесь описано как работать с комнатами, но непонятно как они работают. Вот с этимм я предлагаю разобраться.
Читать дальше →

Дизайн REST API для высокопроизводительных систем

Reading time17 min
Views40K


Александр Лебедев выражает всю нетривиальность дизайна REST API. Это — расшифровка доклада Highload++ 2016.

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

Пару слов о себе


Кто я такой? Чем занимаюсь?

Я фронтенд team lead компании «Новые Облачные Технологии». Последние 5 лет я писал веб фронтенд, который работает с REST API и который должен для пользователя работать быстро. Я хочу поделиться опытом о том, какие API должны быть, которые позволяют этого добиться.

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

Information

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