Как стать автором
Поиск
Написать публикацию
Обновить
16
0
Антон @desecho

Пользователь

Отправить сообщение

EasyMapping, или Путешествие по JSON'у

Время на прочтение5 мин
Количество просмотров19K
Computer programs are the most complex things that humans make. It is also the nature of software to be extensively modified over its productive life. If we can read and understand it, then we can hope to modify and improve it.

Douglas Crockford, автор спецификации JSON


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

Есть много способов превращения JSON в Objective-C обьекты, однако многие из них имеют свои недостатки, которые мешают с ними работать. Есть известный и любимый многими RestKit, однако он, к сожалению, эффективно работает только при наличии идеального REST API. Шаг в сторону — и вы будете забивать гвозди микроскопом, не понимая, зачем нужно писать такие сложные конструкции для достаточно простых вещей. Есть решение от разработчиков GitHub — Mantle, однако с ним вы будете вынуждены наследоваться от базового класса Mantle и постоянно использовать NSValueTransformer — не самую популярную технологию в iOS/Mac OS разработке.

Я хочу рассказать о фреймворке, который недавно нашелся на просторах GitHub, и который позволяет достаточно просто и красиво преобразовывать JSON в Objective-C обьекты — EasyMapping.

Если заинтересовались, добро пожаловать под кат!
Читать дальше →

Берем под контроль криптографию в облачном хранилище MEGA

Время на прочтение19 мин
Количество просмотров49K
После запуска в какой-то мере скандального сервиса MEGA разговоры о его защищенности немного побурлили и затихли. На сегодняшний день сервис живет своей жизнью и его никто даже не поломал. Из всех разговоров почему-то был упущен термин «User Controlled Encryption» (UCE, или Контролируемая пользователем криптография), которой кичится MEGA. Под словом «упущен» я подразумеваю тот факт, что мы не рассмотрели все возможности, которые дает нам криптографический движок, выполняющийся в JavaScript на стороне клиента.

Конечно, сам сервис MEGA под этим подразумевает всего лишь то, что ключи шифрования не хранятся на сервере, а вся их криптография выполняется в контексте браузера. При этом после запуска сервиса было много разговоров о том, что в нем используются нестойкие криптографические алгоритмы и что вообще все плохо и мы все умрем, а наши файлы прочитает ФСБ. Это подтолкнуло меня на мысль расширить понятие «UCE» и действительно взять криптографию под свой контроль, а именно — заменить или дополнить некоторые механизмы обеспечения безопасности сервиса.

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

Как сделать самую лучшую посадочную страницу: чеклист из 50 пунктов

Время на прочтение5 мин
Количество просмотров98K
Мы в Alconost предоставляем услуги создания и ведения контекстной рекламы и, по долгу службы, иногда занимаемся разработкой посадочных страниц (landing pages). Мы были очень рады найти и перевести статью, в которой автор изложил все требования, которым такая страница должна соответствовать. Но есть в этой статье и большой минус. Пунктов аж 50, каждый можно отметить в чеклисте, но после доступен лишь результат в баллах, которым можно разве что похвастаться перед друзьями.

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

Те, кому в гуглотаблицу не хочется, просим под кат. Там перевод.



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

Свое облачное хранилище на основе ownCloud

Время на прочтение3 мин
Количество просмотров250K

ownCloud — система для организации хранения, синхронизации и обмена данными, размещенными на внешних серверах.
В отличии от Dropbox и ему подобных, ownCloud отличается предоставлением пользователю полного контроля над своими данными — информация размещается на подконтрольных пользователю системах. Доступ к данным в ownCloud может осуществляться при помощи web-интерфейса или протокола WebDAV.

Особенности ownCloud


  • Open source;
  • Поддержка шифрования передачи данных;
  • Автоматическое резервное копирование;
  • Поддержка WebDAV позволяет организовать доступ к данным из любых операционных систем;
  • Поддержка синхронизации данных с другими web-приложениями, поддерживающими протокол remoteStorage;
  • Управление пользователями и группами;
  • В web-интерфейс встроены средства для работы с синхронизированной адресной книгой, календарем-планировщиком, коллекцией фотографий, архивом музыкальных произведений;
  • Для ownCloud подготовлен сервер Ampache, что позволяет организовать потоковое вещание музыки;

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

Обновление KB2670838 приводит к проблемам в Firefox

Время на прочтение1 мин
Количество просмотров56K


Пользователи Windows 7, недавно установившие новый Internet Explorer 10, могли обратить внимание на то, что текст в браузере Mozilla Firefox стал отрисовываться с артефактами. В ряде случаев также могли наблюдаться артефакты в изображениях и выпадающих меню.

Действительно, это вызвано обновлением KB2670838, которое является необходимым для Internet Explorer 10. Оно содержит в себе, помимо прочего, обновленную версию DirectWrite, компонента, ответственного за рендеринг текста, в том числе — с аппаратным ускорением.

Это обновление, как и обновление, содержащее IE10, пока что является опциональным, и оно не устанавливается на компьютеры автоматически.

Этому багу подвержены все достаточно новые Firefox. Баг проявляет себя в основном на старых настольных видеокартах AMD (HD Series до 4000 включительно), а также на некоторых интегрированных видеокартах Intel и AMD.

Проблема известна с ноября прошлого года, однако решения нет до сих пор. Microsoft подтвердили наличие бага, но ничего конкретного пока заявлено не было.

Далее способы временного решения

Пошаговая инструкция «Как сдавать экзамен Cisco?»

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

Что представляют собой центры тестирования Pearson VUE? Сколько длится и стоит сертификационный экзамен? Как правильно зарегистрироваться на экзамен, чтобы получить весомую скидку? Как он проходит? Это вопросы, которые есть у всех, кто еще только хочет получить сертификат Cisco.



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

High resolution patches — новая жизнь старых игр

Время на прочтение4 мин
Количество просмотров141K
Доброй пятницы, уважаемый хабр!

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

Часто бывает, что игра просто не хочет запускаться на современных ОС и железе, или же работает некорректно (слишком быстро, графические артефакты и т.д.) Это печальная ситуация, но сейчас не о ней. Во-первых, популярные игры, как правило, написаны пряморуко худо-бедно, но работают. А во-вторых, это тема для отдельной объемной статьи.

Предположим, что ваша любимая игра все же запустилась. Сначала радости нет предела. Но только до тех пор, пока вы не обнаружите, что максимальное доступное разрешение — 1024х768, а то и вовсе 800х600. На современном мониторе это означает огромные элементы GUI игры, смазанную картинку, а если монитор широкоформатный — еще и сильно искаженные, «пузатые» пропорции. Некоторых фанатов такие мелочи, конечно же, не смущают. Но зачем отказывать себе в максимальном удовольствии от игры, если решить проблему не так уж и сложно?

Под катом — способ запустить с современным разрешением некоторые популярные игры начала 2000х.

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

Восемь способов улучшить мозговой штурм

Время на прочтение4 мин
Количество просмотров31K
В Alconost я часто сталкиваюсь с необходимостью собирать команду и использовать мозговой штурм, например, при производстве видеороликов, чтобы найти достойную идею сценария или решить, как лучше проиллюстрировать на экране текст диктора. Я обратил внимание, что некоторые штурмы проходят очень результативно, а некоторые еще больше усложняют решение задачи. Мне стало интересно, как решают это проблему в мире, и вот я наткнулся на статью Ричарда Брэнсона, основателя Virgin, которая рассказывает о принципах успешного брэйнсторминга.

Полезные советы от британского миллиардера под катом.



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

Простой способ защиты от классического HTTP DDoS

Время на прочтение5 мин
Количество просмотров35K
Данное решение позволяет вычислять любых ботов, за исключением тех, которые полностью имитируют работу браузера.

Как это работает


Бот запрашивает страницу, например habrahabr.ru/search. Бот не умеет загружать вместе со страницей картинки, скрипты, css и пр. Значит в логе будет отображен запрос к /search/ и всё.
Если на habrahabr.ru/search заходит живой человек через браузер, то вместе с /search/ в лог попадет множество картинок, скриптов, css и пр.
Читать дальше →

Работа vs Фриланс vs Бизнес

Время на прочтение4 мин
Количество просмотров102K
Choices
На Хабре присутствует довольно много бизнесменов, еще больше фрилансеров и работающих по найму.

Большинство из нас (уж я-то точно!) попалось в ловушку жизненной колеи, утверждённой социумом, как стандарт: школа => институт => работа по найму. Кто-то сразу подался во фриланс или бизнес.

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

Приступим к сравнению по набору параметров, которые я считаю наиболее важными, все оценки субъективны — на основании собственного опыта работы по найму + бизнеса, а также опыта работы знакомых по фрилансу.
Читать дальше →

Кнопка Судного Дня или аппаратная горячая клавиша

Время на прочтение5 мин
Количество просмотров73K

Наверное, каждый из читателей сталкивался с тем, что ему не хватает горячих клавиш. Наиболее ходовые и простые комбинации оказываются занятыми, а оставшиеся требуют ловкости рук баяниста. Особенно это актуально для ноутбуков, где клавиш уменьшенное количество. В частности, для макбука, где ряд мультимедийных клавиш совмещен с функциональными.
Таким образом, для действия “Make Project”, мне захотелось иметь отдельную кнопку. Эта идея жила где-то в подсознании довольно долгое время, пока однажды мне на глаза не попалась пусковая кнопка станка на 660В 10А. Подробности, как удалось ее подключить к ноутбуку через блюутуз, читайте под катом.
Читать дальше →

Как мы делали кафе-клуб с полным расчётом на посетителей из сети

Время на прочтение11 мин
Количество просмотров129K
В топике – история оффлайного проекта, полностью ориентированного на посетителей из сети. Сам бизнес для Хабра не очень тематичен, но практически всё в его подготовке и развитии делалось с помощью сетевых механик и удалённо из другого города. Эта история будет интересна ещё и как пример того, как выполняется оценка проекта перед запуском и как делается выбор ниши.


У нас есть печеньки

Вводная


Думаю, много кто хочет открыть своё кафе. Я тоже когда-то хотел открыться в регионе, украсить стены 5-дюймовыми дискетами и вообще сделать такую айтишную романтику с чашкой чая. Но чтобы открыть кафе по самым минимальным прикидкам нужно иметь 2-3 миллиона рублей в зависимости от города.
Читать дальше →

Клиент для SOAP API Почты России на Python

Время на прочтение3 мин
Количество просмотров39K
В процессе работы над текущими проектами возникла ситуация когда «вдруг» перестал парситься сайт трекингов Почты России. В интернетах даже немного побурлили по поводу «ужасной» новой защиты и т.п. В тех же интернетах всплыла тогда информация, что у Почты России имеется-таки API. Не совсем человеческий (т.е. по протоколу SOAP) но какой-никакой существует и кто-то им даже, якобы, пользуется. Я сообщил шефу, шеф написал письмо на Почту России (электронное, на удивление) и оказалось — да. Всё это действительно есть и вроде бы даже работает. Видимо создали сервис ещё тогда.

Под катом будет линк на рабочий класс клиента (на python) к API Почты России и немного подробностей работы с ним.
Читать дальше →

PuperGrep — логи в браузере в реальном времени

Время на прочтение2 мин
Количество просмотров13K
Вы не любите смотреть логи в консоли или вам не позволяют их любить, а следить за ходом дел как-то нужно?

PuperGrep — просмотрщик логов в браузере, который работает как tail -F, grep и подсвечивает самое интересное в вашем браузере. Или даже на вашем android, iPhone или iPad.

Скриншот PuperGrep

Возможности и демо

Оптимизация графики для Retina-экранов

Время на прочтение7 мин
Количество просмотров213K
После недавнего выпуска Retina MacBook Pro и The new IPad, экраны с увеличенной плотностью пикселей начали активно входить в нашу жизнь. Что это значит для веб-разработчиков?

Для начала разберемся в терминологии.

Физические пиксели


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

Google Analytics для сбора ошибок JavaScript

Время на прочтение2 мин
Количество просмотров19K
image
Не так давно на Хабре была статья про навороченный стартап, заточенный на сбор ошибок JavaScript. Далеко не всегда нужно столько возможностей, но оказалось, что многие просто не знают про старый бородатый способ с Google Analytics. Про него я и попытаюсь кратенько рассказать.
Читать дальше →

Из Facebook – в Livejournal, Twitter & Вконтакте, кросспостинг в исходных кодах и комментариях

Время на прочтение17 мин
Количество просмотров50K
В этой статье я расскажу о своем опыте разработки кросспостинга из моего Facebook в мой Livejournal (далее – ЖЖ), а также поделюсь исходными текстами, готовыми к старту на ваших аккаунтах.

Причиной написания скриптов было получение возможности поиска по своим записям – возможности, которую Facebook никак не может запустить как часть своего сервиса, а также «оживление» своего ЖЖ. Поскольку доступ к любым постам в Фейсбуке требует обязательной авторизации, поисковых роботов сервис, очевидно, не пускает. Конкретно в моем случае это неудобно: ссылки, видео и мысли, которые я публикую в соцсети, зачастую я публикую «на будущее» – и часто настает тот момент, когда эта информация становится необходимой, но ее уже практически не найти.

Также с использованием опубликованных здесь скриптов удалось перенести архив существующих записей Facebook: более 2000 архивных сообщений моего Facebook перешли в ЖЖ с соответствующими датами. То есть, если у вас еще не было ЖЖ, его можно сразу наполнить информацией за все время.

Также в статье выкладываю готовые скрипты на Perl, с использованием которых можно транслировать статусы Facebook в Livejournal, а оттуда, при наличии соответствующих настроек, в Вконтакте, Twitter и RSS, а с использованием дополнительных веб-сервисов – практически во все блог-движки.
Читать дальше →

Упрощаем себе жизнь с помощью Sublime Text 2

Время на прочтение7 мин
Количество просмотров52K
image
Недавно открыв для себя Sublime Text 2, я удивился тому, как можно было придумать настолько эффективный инструмент. Тот кто избалован всяческими IDE, обычно не видит никаких достоинств, кроме красивой подсветки кода (хотя именно это меня изначально и привлекло).

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

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

Кто они, indie iOS разработчики?

Время на прочтение3 мин
Количество просмотров8.9K
Привет,

написать этот краткий очерк меня сподвигла статья Разработка под iOS как лотерея: 59% не отбивают затраты.

Основные выводы, которые я вынес из ее прочтения: «iOS-разработка — лотерея, прибыльность приложения практически не зависит от качества, раскрутка — обязательна для успеха».

Я могу согласиться только с последним тезисом о раскрутке. Статистика по окупаемости, приведенная в статье, абсолютно бесполезна и демонстрирует собой классическую «среднюю температуру по больнице». И вот почему.

Те самые iOS разработчики, которыми оперирует в статистике компания App Promo — это совершенно разные люди. Дело в том, что бОльшая часть из них никогда и не рассматривала разработку под iOS как бизнес или просто никогда не подходила к этому серьезно.

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

Сквозная облачность

Время на прочтение4 мин
Количество просмотров25K
Схема совместного использования Google Drive, Dropbox и SkyDrive

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

Зачем и как?

Информация

В рейтинге
Не участвует
Откуда
Montreal, Quebec, Канада
Дата рождения
Зарегистрирован
Активность