Search
Write a publication
Pull to refresh
6
0
Rashad Khalafov @viperrsh

Head of DevDep

Send message

JSON в Swift 2.0 без анестезии

Reading time5 min
Views9.8K
Работа с JSON — слишком привычное и ежедневное занятие, чтобы уделять ей много внимания. Тем не менее, реализация некоторых вещей в Swift выглядит слишком сложной и вызывает зубовную боль каждый раз, когда ее видишь.

Недавно, читая пост про SwiftyVK, нашел там ссылку на статью про OptJSON, позволяющую сильно упростить работу с JSON в Swift. И хотя подход, описанный в статье, действительно интересен, меня не покидало ощущение, что это все-равно слишком сложно.

Я попробовал еще немного упростить библиотеку OptJSON, и вот что получилось:

let obj = json?["workplan"]?["presets"]?[1]?["id"] as? Int
Продолжение под катом

Дюк, вынеси мусор! — 1. Введение

Reading time13 min
Views239K


Наверняка вы уже читали не один обзор механизмов сборки мусора в Java и настройка таких опций, как Xmx и Xms, превратилась для вас в обычную рутину. Но действительно ли вы в деталях понимаете, что происходит под капотом вашей виртуальной машины в тот момент, когда приходит время избавиться от ненужных объектов в памяти и ваш идеально оптимизированный метод начинает выполняться в несколько раз дольше положенного? И знаете ли вы, какие возможности предоставляют вам последние версии Java для оптимизации ответственной работы по сборке мусора, зачастую сильно влияющей на производительность вашего приложения?

Попробуем в нескольких статьях пройти путь от описания базовых идей, лежащих в основе всех сборщиков мусора, до разбора алгоритмов работы и возможностей тонкой настройки различных сборщиков Java HotSpot VM (вы ведь знаете, что таких сборщиков четыре?). И самое главное, рассмотрим, каким образом эти знания можно использовать на практике.
Узнать

Stringer — новый подход к защите Java приложений

Reading time3 min
Views23K
Обычно, для защиты Java-программ используются обфускаторы. Обфускаторы позволяют переименовать классы, методы, переменные, изменить поток управления (control flow) байт-кода. Эти функции умеют делать все обфускаторы включая бесплатные и платные.

Целью обфускации байт-кода является построение такого набора команд JVM из которого декомпилятор не мог бы построить корректный исходный код на языке Java.

Противостояние обфускаторов и декомпиляторов продолжается постоянно.

Например в рамках исследовательского проекта Soot одновременно разрабатываются обфускатор JBCO и декомпилятор DAVA, разработчики которых соревнуются друг с другом.
Читать дальше →

История света и тени в одной маленькой, но гордой игре

Reading time7 min
Views35K
Если коротко, то суть статьи можно можно проиллюстрировать так:



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

Простой пример использования библиотеки Volley

Reading time4 min
Views55K
Я уверен вы, еще не слышали слово «Volley», это библиотека, представленная на Google I/O 2013 Ficus Kirkpatrick.

Для чего библиотека Volley?


Volley это библиотека, которая делает сетевые приложения для Android проще и, самое главное, быстрее.

Она управляет обработкой и кэшированием сетевых запросов, и это экономит драгоценное время разработчиков от написания одного и того же кода сетевого запроса/считывания из кэша снова и снова. И еще одно преимущество, меньше кода, меньше количество ошибок :)

Обычно мы пишем один и тот же код сетевого запроса в AsyncTask, логику обработки ответа от Web API и отображения его в View. Мы должны заботиться об отображении ProgressBar/ProgressDialog внутри OnsourceExecute() и OnPostExecute(). Я знаю, что это не трудная задача, но все же рутинная. Иногда бывает скучно, даже когда определен базовый класс для управления ProgressBar/ProgressDialog и многими другими вещами. Так что теперь можно сказать, Volley может быть мощной альтернативой AsyncTask.
Читать дальше →

36 млн запросов в час, 10000+ постоянно работающих клиентов, на одном сервере, nginx+mysql

Reading time5 min
Views116K
Сложилась ситуация, что участвую в проекте, который работает с достаточно большой нагрузкой. Как уже написал — 36 млн запросов в час. Я много чего прочитал и перепробовал за последний месяц, настраивая сервер; хотелось бы просто сжато и компактно выдать тезисно то, что работает хорошо в такой конфигурации.

Первое, что я заметил — множество советов как все настроить под большую нагрузку. Читайте их внимательно, обычно в тексте найдете, что речь про «высокую нагрузку» в 15-20 тысяч клиентов в сутки. У нас клиентов примерно миллион, активных, ежедневных.

У нас нет денег и мы все делаем за свой счет, поэтому экономим. Итог — весь миллион клиентов обслуживается на одном сервере, вот на таком — EX-60 на hetzner.
Читать дальше →

Адаптация приложения Feedly под Material Design

Reading time6 min
Views15K
Привет, Хабрахабр! Недавно мы анонсировали конкурс для разработчиков приложений, и в посте на Хабре давали ссылки на самые интересные материалы по Material Design’у. Часть из них имела пометку «RU — скоро», и сегодня мы рады представить вам первую адаптированную статью о том, как создатели приложения Feedly адаптировали его к новому визуальному языку Android-приложений.


An Exploration in Material Design by Arthur Bodolec с комментариями

Полный путеводитель по созданию лендингов, которые продают

Reading time16 min
Views79K


Мы продолжаем знакомить вас с лучшими статьями по веб-дизайну. Сегодня мы перевели свежую статью на Medium о создании эффективных посадочных страниц. Перевод выполнен «Я люблю ИП».

Лендинги — это посадочные страницы, которые созданы специально для достижения определённых целей конверсии. Иногда в качестве лендинга выступает главная страница (хотя многие считают, что она не может быть настоящим лендингом). Но чаще всего создаются специальные посадочные страницы для определённых маркетинговых кампаний.

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

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

Приложения в системе электронного документооборота. Часть 1: ключевые принципы, компоненты и возможности

Reading time8 min
Views9K
Этим постом я начну небольшой цикл статей, посвящённых различных аспектам разработки приложений в системе электронного документооборота. Сегодня все более или менее мощные и современные СЭД/ECM-платформы содержат набор компонентов и инструментов для их реализации, и именно приложения, создаваемые на базе платформы, позволяют автоматизировать все разнообразие рабочих процессов клиента. Я расскажу о модели приложения платформы Docsvision, о компонентах и средствах разработки (настройки) этих приложений, о том, какие проблемы возникали у нас при реализации инструментария для их разработки, и о том, чего ждём в дальнейшем. Это будет интересно не только тем, кто плотно работает с Docsvision, но и позволит почерпнуть опыт тем, кому предстоит внедрять или развивать свою корпоративную СЭД.
Читать дальше →

TeamLab: прогулка по каналам продвижения, или как мы создавали social buzzz

Reading time5 min
Views10K
Когда мы рассказывали о нашей системе переводов, нас попросили написать и о том, как идет продвижение TeamLab, в особенности, на зарубежные рынки. Сегодня попробуем. Были и взлеты и падения, шли очень часто методом проб и ошибок, но любой опыт бесценен, вот им и поделимся, может, кому пригодится. Не будем писать умных, и уже ставших банальными, советов про SEO, Adwords и прочее, постараемся быть по максимуму конкретными.



Итак, выжимка из основных методов привлечения новых пользователей и укрепления лояльности уже существующих, которые успешно срабатывают для нашего проекта и по сей день:
Читать дальше →

«Патчим» зеркало в автомобиле

Reading time5 min
Views67K
Коллега на работе купил себе новый автомобиль Chery Tiggo FL, куда китайцы напихали много различных функций за невысокую стоимость автомобиля. Одной из самых необычных штуковин в авто оказалось «волшебное» зеркало, которая наделено функциями барометра, альтиметра и компаса.

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



Итак, приступим к созданию «патча» на зеркало.
Читать дальше →

Лампа, показывающая прогноз погоды

Reading time13 min
Views59K
Многие из нас, прежде чем выйти из дома утром, проверяют прогноз погоды на предстоящий день. Я всегда использовал для этого свой смартфон и, однажды, задумался, а почему бы не сделать этот процесс более простым и удобным. Так, в голову пришла идея создания комнатной лампы, которая бы умела показывать прогноз погоды в моей местности, а так же предупреждать о возможных осадках и скорости ветра.



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

Товарные объявления Google: разбор полетов

Reading time3 min
Views9.7K
Хочу рассказать о прекрасном инструменте, который позволяет показывать ваш товар лицом именно в тот момент, когда пользователь, он же потенциальный покупатель, ищет его в Google. Примечательно, что пользователь увидит намного больше информации, нежели в традиционном текстовом рекламном блоке: стоимость товара, название вашего магазина, и самое главное – изображение.

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

Pi Bow — самый веселый корпус для Raspberry Pi

Reading time2 min
Views133K
Многие слышали про Rapberry Pi. Это мини-компьютер, в основном для образовательных целей. Архитектура полностью открыта, основана на ARM, работает на Линуксе, очень активная поддержка фанатов, разрабатывающих свои дистрибутивы Линукса и различные аппаратные расширения. Цена удовольствия — 35 британских фунтов или около 1800 рублей.

На Хабре было много постов про RPi, поэтому сейчас немного не об этом. Увы, плата RPi имеет одну конструктивную особенность — у нее нет дырок под винты, поэтому ее крепеж в какой-либо корпус становится небольшой проблемой (авторы обещали исправить это в следующей модели). Конечно, пытливые умы фанатов давно придумали способы крепежа, и сейчас речь как раз об одном из таких корпусов. Этот корпус весьма необычен в конструкции, и вы скоро увидите почему.

(Под катом мало текста, зато много картинок).
Читать дальше →

Tt eSPORTS Level 10 M — просто мышь?

Reading time6 min
Views93K
В жизни каждого человека есть вещи, которые он предпочитает использовать и отдавать им приоритет. Кому-то совершенно наплевать на мышь, но хочется эргономическую клавиатуру с мягким и бесшумным ходом клавиш. Кому-то подавай отличные колонки, а на остальное — наплевать. Ну а кому-то нужно всё и сразу. Я люблю качественную периферию, и точно могу сказать, что после хорошей мышки и клавиатуры сидеть за посредственными даже на таком же компьютере – «уже не торт», всё же, общаемся с железкой мы именно посредством устройств ввода-вывода, и основными устройствами ввода на ПК остаются клавиатура и мышь, а не голсовой ввод и тачскрин.

И в сфере мышечных дел уже давно есть лидеры: Razer, Cyborg, Roccat. Некоторым нравятся Logitech’и (MX Revolution – любимая мышь Бурума, например), неплохой «начальный уровень» показывают A4 Tech c линейкой х7. Но сегодня хочется рассказать о продукте, не то что бы совершенно другого уровня, нет, данная мышка – не питается от топливной ячейки и не парит над землёй в трёх сантиметрах, но о очень высококлассном девайсе, который ощутимо поднял планку моего «хочу» в плане качества работы. Леди и джентьмены, встречайте Thermaltake level 10 Mouse.


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

Украшательство Android-телефона: рецепты красивых рабочих столов

Reading time1 min
Views156K
Одним из плюсов телефонов на базе Android является возможность полной кастомизации интерфейса под себя. Благо всевозможных виджетов под систему существует огромное количество. Причем, их настолько много, что пользователи гуглофонов иногда напоминают скульпторов или художников – попробуй совмести все нужное так, чтобы получилось красиво, да еще и учти все нюансы настроек. Одним словом, настройка требует времени, вкуса и недюжинного воображения.

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



Под катом еще несколько примеров.
Читать дальше →

Голографическое изображение погибшего рэпера Тупака Шакура, «выступало» на фестивале Coachella-2012

Reading time1 min
Views27K
Если не знать что это голограмма можно подумать что Тупака действительно оживили. Обязательно досмотрите до конца оценив финальную вспышку и распыление главного героя в воздухе.



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

Information

Rating
Does not participate
Location
Баку, Азербайджан, Азербайджан
Registered
Activity