Search
Write a publication
Pull to refresh
9
0
Альберт @serber

.net developer

Send message

Как собрать WhatsApp за сутки. Часть 1

Reading time12 min
Views112K


Здравствуйте, дорогие читатели Хабрахабра!

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

  1. Создание проекта, простой UI, привязка к сервису мгновенных сообщений
  2. Делаем красивый UI, добавляем видео и аудио звонки, передачу фото и документов

К сожалению, пособие о том, как набрать 400 000 000 пользователей и продать сервис за 19 Инстаграмов, затерялось где-то на книжной полке. Постараюсь его найти, если кому интересно.

Заинтересовавшихся прошу под кат.
Читать дальше →

Хочешь быть iOS разработчиком? Будь им!

Reading time2 min
Views389K
На хабре в прошлом месяце была опубликована статья Конкурс ВК: Мессенджер для Android. Как это было!, в которой автор поделился своими мыслями о конкурсе и опубликовал список ресурсов и статей, которые помогли ему в создании приложения. Так как в последнее время я начал изучать разработку под iOS, то у меня скопилось некоторое количество ссылок, которые могут быть полезны для начинающих. Поэтому я последую его примеру и сделаю то же самое, только для своей платформы. Надеюсь, кому-нибудь они окажутся полезны и сэкономят немного времени.

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

Авторизация с помощью клиентских SSL сертификатов в IOS и Android

Reading time8 min
Views39K
Протокол безопасной передачи данных SSL (Secure Sockets Layer) помимо обеспечения безопасной передачи данных так же позволяет реализовать авторизацию клиентов при помощи клиентских SSL сертификатов. Данная статья является практическим руководством по реализации данного вида авторизации в мобильных приложениях на IOS и Android.

Процесс организации работы сервера обеспечивающего такой вид авторизации в статье не рассматривается, однако в конце приведены ссылки по данной тематике.

Процесс авторизации выглядит следующим образом. При переходе клиента в закрытую область сервер запрашивает у клиента сертификат, если проверка прошла успешно то клиент получает доступ к закрытому контенту в ином случае клиент может получить ошибку “No required SSL certificate was sent”.
Читать дальше →

ASP.NET MVC: Привязка данных модели, которые содержат изображения

Reading time5 min
Views9.2K
Привязка данных(binding) является достаточно удобным средством ASP.NET MVC. Удобно оно в первую очередь тем, что позволяет скрыть реализацию преобразования данных между данными из модели и данными HTTP запроса.
В своих проектах я часто сталкиваюсь с необходимостью сохранять различные данные типа blob и image. В этой статье я бы хотел показать, как можно легко организовать и использовать привязку данных из модели, которые содержат различные изображения. Для примера я взял учебный проект MVC Music Store и решил его подправить — добавить возможность изменять изображение обложки музыкального альбома. При написании данной статьи, я использовал версию APS.NET MVC 3 и Razor.
Читать дальше →

ASP.NET MVC. Урок 0. Вступление

Reading time2 min
Views784K
Я пишу сайты на asp.net mvc. В этих 16 главах я хочу рассказать, как я это делаю. Это некий учебник-справочник всех тех знаний, которые я накопил в течение трех лет.

Почему именно asp.net mvc

ASP.NET MVC я люблю потому что:
  • Это .net. Я знаю .net и С#.
  • Это компилируемый код.
  • Это не ASP.NET WebForms, я работаю с html-кодом.
  • Используется MVC-паттерн.
  • Visual Studio – самое популярное средство разработки, в котором есть IntelliSense.
  • Отличные инструменты отладки.


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

Создание Push Notification сервиса на основе WCF REST

Reading time5 min
Views13K
В качестве вступления

Модель push-нотификаций является распространённой моделью для обмена сообщениями. Она подразумевает не получение информации по запросу, а немедленную её передачу отправителю при появлении этой информации на сервере.

Стандартный подход с ипользованием wsDualHttpBinding

Возможность создания push-механизма предоставляет и WCF. Этот фреймворк позволяет создать push-сервис с использованием wsDualHttpBinding контракта. Такой контракт позволяет для каждого запроса определить метод обратного вызова, который будет вызван при наступлении какого-либо события.
Если применить этот механизм к системе обмена сообщениями, то получим следующий алгоритм:
Читать дальше →

Apple App Store. Получаем ERN

Reading time4 min
Views28K
Перед загрузкой приложения на ревью в Apple App Store нам задают неожиданный вопрос, а не использует ли наше приложение криптографию?

image

И хотя соблазн ответить «нет» и загрузить наконец-то очень велик, и кто-то тихо шепчет, что ты мог и забыть про https или вообще не знать, как он работает, но совесть советует разобраться и в этом.
У меня много сил ушло, чтобы получить ERN(Encryption Registration approval from BIS), и я решил написать инструкцию.
Получаем ERN

Критика книги Боба Мартина «Принципы, паттерны и методики гибкой разработки на языке C#»

Reading time15 min
Views51K
Если спросить у десяти разработчиков о лучшей (или достойной) книге о проектировании, то как минимум 6 из них назовет книгу Боба Мартина «Принципы, паттерны и методики гибкой разработки». Если же после этого показать им на некоторые интересные моменты писанины «дядюшки» Боба, то большая часть из них с недоумением почухает лоб и несколько изменит свое мнение.

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

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

Классификатор изображений

Reading time7 min
Views34K
Дана битовая матрица, содержащая закрашенное изображение круга, квадрата или треугольника.
Изображение может быть немного искажено и может содержать помехи.
Необходимо написать алгоритм для определения типа нарисованной фигуры по матрице.

Эта простая с первого взгляда задача встретилась мне на вступительном экзамене в DM Labs.
На первом занятии мы обсудили решение, а преподаватель (Александр Шлемов; он руководил и дальнейшей реализацией) показал, почему для решения лучше использовать машинное обучение.

В процессе дискуссии мы обнаружили, что наше решение производится в два этапа. Первый этап — фильтрация помех, второй этап — вычисление метрики, по которой будет проходить классификация. Здесь возникает проблема определения границ: необходимо знать, какие значения может принимать метрика для каждой фигуры. Можно проложить эти границы вручную “на глазок”, но лучше поручить это дело математически обоснованному алгоритму.
Эта учебная задачка стала для меня введением в Machine Learning, и я хотел бы поделиться с вами этим опытом.
Читать дальше →

«Выглядит похоже». Как работает перцептивный хэш

Reading time6 min
Views126K
За последние несколько месяцев несколько человек спросили меня, как работает TinEye и как в принципе работает поиск похожих картинок.

По правде говоря, я не знаю, как работает поисковик TinEye. Он не раскрывает деталей используемого алгоритма(-ов). Но глядя на поисковую выдачу, я могу сделать вывод о работе какой-то формы перцептивного хэш-алгоритма.
Читать дальше →

Поиск кропнутых дубликатов изображений с помощью перцептуальных хешей

Reading time6 min
Views72K
В этой статье пойдет речь о том, как решалась небольшая задачка поиска дубликатов по фрагменту или кропу картинки.



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

WCF RIA Services. Получение данных. Часть 2

Reading time7 min
Views13K
WCF RIA Services. Начало. Часть 1
WCF RIA Services. Получение данных. Часть 2
WCF RIA Services. Обновление данных. Часть 3
WCF RIA Services. Внедряем паттерн Model-View-ViewModel (MVVM). Часть 4

Общие сведения


В первой части мы ознакомились, что за зверь такой WCF RIA Services, и создали приложение, которое можно коротко назвать, как «Hello world». Все было очень просто, красиво, а так же «drag and drop». Однако для создания настоящих, больших и функциональных приложений нужно еще много чего выучить, например какие возможности доступны в клиентской части, и как их использовать. В этом уроке мы копнем немножко глубже в области получения данных на клиентской стороне. Так же Вы узнаете о конвенциях, которые используются для методов, получающих данные, определенные в серверной части, как их настраивать, используя атрибуты. Расскажу о некоторых программных реализациях, которые можно использовать для получения данных на стороне клиента и как использовать данные, которые используют отличные от Entity Framework источники.
Читать дальше →

Core Data для iOS. Глава №4. Теоретическая часть

Reading time19 min
Views33K
Хабралюди, добрый день!
Сегодня хочу начать написание ряда лекций с практическими заданиями по книге Михаеля Привата и Роберта Варнера «Pro Core Data for iOS», которую можете купить по этой ссылке. Каждая глава будет содержать теоретическую и практическую часть.



Содержание:

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

Советы начинающим iOS разработчикам

Reading time3 min
Views29K
Если не знаешь, надо не бояться, а узнавать.
Айн Рэнд “Атлант расправил плечи”



Добрый день, меня зовут Игорь Томич и я лектор курсов iOS-разработки и сооснователь онлайн курсов Master Up. Это мой первый пост в наш корпоративный блог, в котором я решил поделиться советами для начинающих iOS-разработчиков. Свое первое приложение для iOS я начал писать в начале 2009 года, а в мае 2012 году провел первый курс обучения по рарзработке под эту же платформу и к этому времени у меня скопилось достаточно “часто повторяемых ошибок” и путей их решения.
Читать дальше →

Вы можете развить свой интеллект: 5 способов максимально улучшить свои когнитивные способности

Reading time17 min
Views516K
Не стоит преследовать цели, которые легко достичь. Стоит нацеливаться на то, что удается сделать с трудом, приложив немалые усилия — Альберт Эйнштейн

Несмотря на то, что Эйнштейн не был нейробиологом, он точно знал все, когда говорил о способности человека добиваться чего-либо. Он интуитивно догадывался о том, что лишь сегодня нам удалось подтвердить с помощью данных, а именно: что заставляет когнитивные способности работать на максимально высоком уровне. По существу: То, что тебя не убивает, делает тебя умнее.
Читать дальше →

Готовимся к пятнице: светящиеся напитки из бара TRON: Наследие

Reading time1 min
Views165K
Те, кто видел фильм «TRON: наследие» наверняка хорошо помнят сцену в баре с Daft Punk в роли диджеев и волшебным освещением, где даже напитки светятся.

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

Мало кто знает о специфическом свойстве витаминов группы «B» — способности светиться в ультрафиолетовых лучах. Именно его мы и будем использовать для создания светящихся напитков. Вещества, которые отвечают за свечение – это рибофлавин (B2) и хинин (содержится в тонике и многих других сильногазированных напитках).

Всего 4 ингредиента отделяют нас от готового напитка.
Читать дальше →

Первая программа для OS X своими руками — менеджер буфера обмена

Reading time6 min
Views27K
Больше года прошло с тех пор, как я увлекся программированием под платформу iOS. Наконец-то я нашел свободное время попробовать свои силы на платформе OS X. Если вы давно испытываете интерес к платформе OS X, но никак не соберетесь начать, эта статья для вас! Под катом подробное описание процесса создания приложения — менеджера буфера обмена. Все исходники можно найти на github.com/k06a/Clipshare


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

Полноценный .NET клиент для Sphinx

Reading time1 min
Views4.2K
Выложил как обещал .NET клиент для Sphinx. Текущая версия поддерживает только tcp/ip протокол (как самый полный из доступных).

Основные преимущества:


  • Полноценная реализация всех команд и типов атрибутов поддерживаемых сервером в 0.9.9-rc2
  • ADO.NET like API
  • Строго типизированный публичный интерфейс (т.е. никакой возни с конвертацией Unix timestamp в DateTime и т.д.)
  • Есть тестовый пример веб-интерфейса к Sphinx, с поддержкой пейджинга
  • Подпроект — GUI утилита для экспериментов над сервером и тюнинга настроек поиска


Проект находится в стадии release candidate. Самые востребованные фичи уже оттестированы и активно используются (напрямую связанные с поиском), но некоторые доп. классы еще не проверялись. Unit тесты тоже разработаны только для части классов. Функциональные тесты пока только в планах.

Планы на будущее:

  • Требуется переработка интерфейса тестовой утилиты, уж очень перегруженной она получилась. Возможно переход на MDI поможет его облегчить
  • Сделать документацию по интерфейсу, API довольно сильно отличается от «родных» клиентов
  • LINQ to Sphinx (очень дальние планы)


UPD: перенес в блог Sphinx (спасибо shodan за карму)

Progg it

Core Data для iOS. Глава №1. Практическая часть

Reading time12 min
Views26K
Хабралюди, добрый день!
Сегодня хочу начать написание ряда лекций с практическими заданиями по книги Михаеля Привата и Роберта Варнера «Pro Core Data for iOS», которую можете купить по этой ссылке. Каждая глава будет содержать теоретическую и практическую часть.



Содержание:
  • Глава №1. Приступаем (Практическая часть)
  • Глава №2. Усваиваем Core Data
  • Глава №3. Хранение данных: SQLite и другие варианты
  • Глава №4. Создание модели данных
  • Глава №5. Работаем с объектами данных
  • Глава №6. Обработка результатирующих множеств
  • Глава №7. Настройка производительности и используемой памяти
  • Глава №8. Управление версиями и миграции
  • Глава №9. Управление таблицами с использованием NSFetchedResultsController
  • Глава №10. Использование Core Data в продвинутых приложениях


Очень много больших картинок. Осторожно.

Information

Rating
Does not participate
Location
Казань, Татарстан, Россия
Registered
Activity

Specialization

Software Developer, Backend Developer
Lead
C#
ASP.Net
.NET
Git
Docker
RabbitMQ
MongoDB
Elasticsearch
Apache Kafka
REST