Pull to refresh
0
0

User

Send message

UrbanAirship — push без создания сервера

Reading time3 min
Views7.6K


Компания UrbanAirship помогает разработчикам с 2009 г. Их платформа позволяет реализовать отправку push-уведомлений на большинстве мобильных платформ: iOS, Android, BlackBerry, Windows, PhoneGap. Сегодня мы поговорим об основных тонкостях использования UrbanAirship и возможностях библиотеки для платформы iOS.
Читать дальше →

Чистилка. Боремся с нечистым на руку софтом

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



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

Специальная сим-карта плюс интернет-телефония или «сип с ногами» для всех

Reading time4 min
Views31K
Еще тогда, когда трава была зеленее, Солнце ярче, а сервисы интернет-телефонии для недорогих звонков по всему миру популярнее, в начале 2010 года, был выпущен в свет проект интернет-телефонии для физических лиц A-FON.RU

Всю свою достаточно долгую и насыщенную жизнь наш а-фон старательно конкурировал с другими аналогичными сервисами, честно приводил «клиентов-физиков» со 100 рублями в месяц, которые иногда превращались в «клиентов-юриков» с 10 тысячами рублей в месяц. И, вроде бы, жить ему и дальше и продолжать нести миру милое, доброе, вечное — дешевые звонки через интернет для всех, но время неумолимо движется вперед и по состоянию «на сейчас» команда проекта стала четко улавливать первые признаки того, что модель «установил софтфон-настроил-позвонил за 2 рубля в Пекин» медленно, но верно входит в рецессию. Социальные сети и мессенджеры тихо и незаметно делают свое черное дело, клиент становится капризным и избалованным, клиенту подавай новые бесплатные сервисы и фичи, чтобы этот самый клиент продолжал использовать твой сервис, а не вайберы-фейсбуки-вконтакты. Что же, у нас есть что предложить — наши замечательные переработанные FMC сим-карты

image

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

Чистим интернет от назойливой рекламы (AD Blocker для MikroTik)

Reading time6 min
Views148K


Данная статья является логическим завершением небольшой дискуссии с тов. vvzvlad, которая развернулась под топиком "Чистим домашний интернет от очень назойливой рекламы (Ad's blocker для OpenWRT)", где автор с помощью wget, sed и cron на OpenWRT успешно сливает файлы рекламных хостов, парсит и подсовывает dns-серверу dnsmasq.

Переадресовывая клиента при запросе «рекламного» домена, например, на loopback (127.0.0.1 — 127.255.255.255), вместо котента рекламы клиент получит благодатное «ничего» (разумеется, при условии, что у нас не работает локальный веб-сервер который слушает локалхост). Механизм фильтрации довольно старый и не лишен недостатков. Например, нельзя указать маски хостов (*.ad-domain.tld) или «вырезать» рекламу, баннеры которой хостятся на запрашиваемых ресурсах. Но зато не привязан к какому-то либо протоколу и довольно прост в эксплуатации. Более того, если его использовать, например, на домашнем или офисном маршрутизаторе, который используется в качестве DNS сервера, реклама успешно порежется на всех гаджетах, где IP нашей железки прописан первым в качестве DNS сервера.

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

Детектируем, разбираем, изучаем, паяем и глушим полицейские радары и лидары

Reading time17 min
Views199K
Давным давно, в 1902 году, сидят в кустах трое полицейских (с интервалами в 1 милю), у каждого секундомер и телефон. Проносится мимо первого автомобиль, он тут же засекает время и звонит второму, второй делает математические вычисления и звонит третьему, а тот уже останавливает машину. (пруф)


«Антирадар» в разборе. (Радар-детектор — пассивный приемник сигналов полицейских радаров, предупреждающий водителя о необходимости соблюдать установленный скоростной режим.)

Сегодня речь пойдет о приборах для радиоэлектронной борьбы на наших дорогах.
Пока антирадары и радар-детекторы у нас не запрещены, то РЭБ у нас не ведется, но в некоторых странах война идет по полной. Мы же можем только подготовиться.
Радиоэлектронная борьба (РЭБ) — разновидность вооружённой борьбы, в ходе которой осуществляется воздействие радиоизлучениями (радиопомехами) на радиоэлектронные средства систем управления, связи и разведки противника в целях изменения качества циркулирующей в них военной информации, защита своих систем от аналогичных воздействий, а также изменение условий (свойств среды) распространения радиоволн. Wikipedia
Как противостоять тому, кто пытается снять о вас информацию без вашего ведома и как защитить свои «персональные данные» от несанкционированного съема.

Радары, детекторы радаров, детекторы детекторов радаров. О том, какие бывают, как сделать/распилить самому и то и другое.
(Спасибо интернет-магазину fonarimarket.ru за предоставленное оборудование)
Читать дальше →

Как я рисовал дизайн приложения для конкурса Mail.Ru Group

Reading time7 min
Views28K


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

Вместо вступления


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

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

С этими мыслями я приступил к работе.
Читать дальше →

Датчики и микроконтроллеры. Часть 3. Измеряем ток и напряжение

Reading time12 min
Views338K

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

Содержание


Часть 1. Мат. часть. В ней рассматривается датчик, не привязанный к какому-то конкретному измеряемому параметру. Рассматриваются статические и динамические характеристики датчика.
Часть 2. Датчики климат-контроля. В ней рассматриваются особенности работы с датчиками температуры, влажности, давления и газового состава
Часть 3. Датчики электрических величин. В этой части я рассмотрю датчики тока и напряжения
Читать дальше →

Ностальгия по КУВТ: ретроспектива средств разработки для 8-битных компьютеров MSX. Часть 1 — языки, редакторы, трансляторы

Reading time12 min
Views14K

Введение



Давным давно, в далекой Галактике, когда жесткие диски были не более 100 Мб (а кое где их и не было вовсе), шина адреса всего 16 бит, о графических 3D-ускорителях никто, или почти никто даже не помышлял, а Интернет приходил в редкие дома, по мокрым бельевым веревкам через пищащие коробки…

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

Теплый и, в каком-то смысле, ламповый монитор прошлого...


Осторожно! Много скриншотов

Ностальгия по КУВТ: запускаем эмулятор MSX под Linux

Reading time7 min
Views20K

Предисловие


Знакомство с компьютером каждый из нас начинал по своему и в разное время. Кто-то помнит ДВК, «Искры» и «Агаты», а кто-то сразу сел за IBM PC под Win 9x. Довольно часто попадаются ностальгические статьи, читать которые всегда интересно, ибо написанное сравниваешь с личным опытом и вспоминаешь, как было у тебя.

А вот у меня было так:

Yamaha КУВТ2 — ученическое место


Такие «рабочие станции» — Yamaha YIS503III, в середине-конце 90х были в нашем школьном компьютерном классе. Их было 9 штук + учительский компьютер и матричный принтер. Всё это дело соединялось локальной сетью с топологией «шина» Монитор у ученических машин был в 256 оттенках зеленого

Монохромный ученический дисплей


Подробнее, для тех у кого тоже учащенно забилось сердце

Часы Pebble Time заговорили по-русски

Reading time2 min
Views22K


Появилась кастомная прошивка для Pebble Time с поддержкой кириллицы! С родной прошивкой часы показывают прямоугольники вместо русских букв, из-за чего невозможно читать нотификации на русском языке. Интересно что автор прошивки Семен Марьясин разобрался с новым форматом ресурсов, пользуясь лишь опытом написания патчей для предыдущего поколения часов. Своих Реbble Time для тестов у него пока нет.
Читать дальше →

Незаменимые ресурсы для изучения иностранных языков

Reading time3 min
Views29K
Существует множество ресурсов, с помощью которых вы можете начать изучать язык или продолжить улучшать его. Но мы хотели бы рассказать вам о некоторых очень полезных и, возможно, не слишком известных сервисах для совершенствования ваших знаний.



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

Умные часы Pebble Time: анбоксинг и первые впечатления

Reading time4 min
Views21K


Так вышло, что я одним из первых в России держу в руках умные часы Pebble Time Development Preview. До старта официальных продаж еще далеко, и даже часы для участников Kickstarter-кампании не начали рассылать. Тем не менее, я уже заполучил эти часы, так как компания Pebble решила заранее разослать некоторое количество тестовых бесплатных часов для разработчиков популярных сторонних приложений.
Читать дальше →

Pebble Time — первые впечатления

Reading time3 min
Views20K
Pebble Time - первые впечатления

Я достаточно быстро стал поклонником продукции Pebble. Как купил первые их часы — так сразу и стал, так как ну очень уж с ними удобно. В итоге, я полгода пользовался пластиковым «пебблом», потом год — Pebble Steel, а последние две недели носил Pebble Time, которые бесплатно получил от разработчиков. Под катом небольшой обзор последних.
Читать дальше →

Как из пустой пластиковой бутылки, картинки и шейдера сделать игру для iOS за выходные

Reading time7 min
Views31K
Как-то раз я спросил у своей жены:
— У нас же нет планов на выходные?
— Вроде нет, — ответила она.
— Тогда я еще разок поковыряю этот Swift.
— Поковыряй.

И вот я поставил перед собой задачу, написать очень простую игрушку для iOS на Swift'е, не прибегая к какому-либо ^.*C.*$ (прошлый мой опыт ознакомления со Swift'ом закончился тем, что 80% проекта были написаны на Objective-C (который из-за моего С++'ного мышления, сократился до ближайшего известного мне (Objective-C)+2C-Objective = C)).


Задача


Дано: Одна картинка, какие-то соображения в голове.
Надо: Игра написанная до звонка будильника в понедельник.

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

Захват контекста замыканиями вместо делегирования в iOS 8 Swift

Reading time9 min
Views14K


При проектировании iOS приложений со многими MVC приходится решать вопросы передачи информации от одного MVC к другому как в прямом, так и в обратном направлении. Передача информации в прямом направлении при переходе от одного MVC к последующему осуществляется обычно установкой Mодели того MVC, куда мы переходим, а вот передача информации «назад» из текущего MVC в предшествующий осуществляется с помощью делегирования как в Objective-C, так и в Swift.

Кроме того, делегирование используется внутри одного MVC между View и Controller для их «слепого взаимодействия».

Дело в том, что Views — слишком обощенные (generic) стандартизованные строительные блоки, они не могут что-то знать ни о классе, ни о Controller, который их использует. Views не могут владеть своими собственными данными, данные принадлежат Controller. В действительности, данные могут находиться в Mодели, но Controller является ответственным за их предоставление. Тогда как же  View может общаться с Controller? С помощью делегирования.

Нужно выполнить 6 шагов, чтобы внедрить делегирование во взаимодействие View и Controller:

  1. Создаем протокол делегирования (определяем то, о чем View хочет, чтобы Controller позаботился)
  2. Создаем в View weak свойство delegate, типом которого будет протокол делегирования
  3. Используем в View свойство delegate, чтобы получать данные/ делать вещи, которыми View  не может владеть или управлять
  4. Controller объявляет, что он реализует протокол
  5. Controller устанавливает self (самого себя) как делегата View путем установки свойства в пункте #2, приведенном выше
  6. Реализуем протокол в Controller

Мы видим, что делегирование — не простой процесс.
Как в Swift, так и в Objective-C, процесс делегирования можно заменить использованием замыканий (блоков), принимая во внимание их способность захватывать любые переменные из окружающего контекста для внутреннего использования. Однако в Swift реализация этой идеи существенно упрощается и выглядит более лаконичной, так как  функции (замыкания) в Swift являются «гражданами первого сорта», то есть могут объявляться переменными и передаваться как параметры функций. Простота и абсолютная ясность кода в Swift позволят более широко использовать замыкания (closures), захватывающие контекст, для взаимодействия двух MVC или взаимодействия Controller и View без применения делегирования.

Я хочу показать использование захвата контекста замыканиями на двух примерах, взятых из стэнфордского курса 2015 «Developing iOS 8 Apps with Swift» (русский эквивалент находится на сайте «Разработка iOS+Swift+Objective-C приложений»).

Один пример будет касаться взаимодействия View  и Controller в пределах одного MVC, а другой — двух различных MVC. В обоих случаях  захват контекста замыканиями позволит нам заменить делегирование более простым и элегантным кодом, не требующим вспомогательных протоколов и делегатов.
Читать дальше →

Примеры тестовых заданий для iOS-разработчиков

Reading time3 min
Views46K
Я воспринимаю тестовые задания как хороший и адекватный метод отбора людей (для противников этого мнения есть голосовалка в конце поста), ведь работодатель может оценить конкретно то, что и будет делать сотрудник за своим рабочим местом. И поэтому зачастую с энтузиазмом принимаюсь за их выполнение, не смотря на то, что делать их приходится по ночам. К тому же, задания обычно небольшие и их можно расценивать как написание прототипов — а прототипы писать я тоже люблю. В общем опыт положительный, а положительный настрой — великое дело.



Здесь я хотел бы поделиться примерами тестовых заданий от разных работодателей: маленьких и больших, зарубежных и отечественных. Названия компаний приводиться не будут. Каждый пример задания будет сопровождаться ссылкой на репозиторий где лежит мой вариант решения. С кодом этим, можно делать все, что угодно: использовать в проектах, исправлять, посылать пул реквесты.
Читать дальше →

Cocoa Developers Club — клуб iOS и OS X разработчиков

Reading time1 min
Views5.4K
Все началось с того, что три месяца назад мы решили объединиться в сообщество русскоязычных iOS-разработчиков.

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

Для удовлетворения такого спроса мы решили использовать современный подход. В текущий момент для группового общения появились новые инструменты, такие как HipChat или Slack (подробнее про Slack здесь). Кроме того, что они используются в работе конкретной команды, их также можно использовать для объединения в сообщества по интересам. Мы выбрали Slack.
Читать дальше →

Pebble My Data. «Хочешь сделать хорошо — сделай это сам!»

Reading time4 min
Views6.5K
Одна из основных функций умных часов — отображение важной информации на экране, важной именно владельцу часов, а не разработчику приложения. Очень долго я искал приложение для часов Pebble, которому можно указать, какую именно информацию показывать на часах. Хотелось видеть на часах состояние моих серверов, данные с погодной станции, пробки в городе. После долгих поисков я осознал, то чего я ищу не существует и это придётся делать самому. Так появилось приложение для умных часов Pebble My Data, которое ходит по ссылке за JSON'ом и показывает данные на экране часов. Возможно, оно может пригодиться не только мне. О том, что такое часы Pebble можно узнать в этом обзоре или в этой статье.
Читать дальше →

Ну, Pebble, погоди

Reading time9 min
Views38K
image
У меня появились очередные умные часы. Pebble.
Поначалу я хотел их отдать коллегам-гаджетоманам, не распаковывая. Ведь мои руки еще помнят часы будущего от Google и Sony. Ничего, кроме сыпи и грусти они не вызывали, хотя дизайн Sony SmartWatch был чудесным.

Ладно, думаю, один вечер поношу Pebble на левой руке. Правая рука у нас для мышки. Часы не раздражали. Я не раздражался. Мало того, в часах открылась чудесная дверь, а за дверью — клад. Натуральное SDK без дураков. То есть человек управляет устройством, а не наоборот. Старомодный язык С и черно-белый экран — разве это не чудо!? Никаких ненавистных REST, паттернов, репозиториев и unit-test-ов. Помолодев на 30 лет, я сделал три приложения и написал маленький обзор рыжего устройства и процесса программирования для Pebble.

Под кнопкой 7 картинок, 7 кусков кода, 7 ссылок и 7 вредных советов.
Читать дальше →

Программируем под Pebble. Урок первый: Глупые часы

Reading time7 min
Views54K
Когда мне привезли часы Pebble, я думал это просто умные часы. Ну, там смс на экранчике показать, время в двух поясах, поставить вместо цифровых — хипстерские аналоговые. И так далее.



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

Information

Rating
Does not participate
Location
Ставропольский край, Россия
Date of birth
Registered
Activity