Pull to refresh
-18
0
Дмитрий С. @tree

User

Swift улучшаем performSegueWithIdentifier или удобный роутер со сторибордами

Reading time 3 min
Views 11K
Редкий разработчик под iOS или OS X не использовал сториборды и еще меньше программистов не передавали данные между экранами.
Все мы знаем метод performSegueWithIdentifier и трудности работы с ним.

Начав проект на Swift в один момент мне стало обидно: «Почему мы должны в строго-типизированном языке использовать обертку для передачи данных?»
Через пару минут сформировалось видение решения и в скором времени реализация.

Долго думал, стоит ли писать об этом, поскольку материал крайне небольшой, но эти 50 строк могут вам очень сильно помочь

menuController?.performSegueWithIdentifier(changeItemIdentifier, sender: nil) { segue in
    let controller = segue.destinationViewController as! ChangeMenuItemController
    controller.viewModel.sourceMenuItem = item
}


Таким образом, легко использовать сториборды и роутеры вместе. Устранить разрастание prepareForSegue и увеличить контекст чтения кода. В то же время это не вынуждает отказываться от prepareForSegue при удобных ситуациях.

Разберемся как это работает? Не претендую на уникальность, но мне кажется подход интересным.
Читать дальше →
Total votes 13: ↑11 and ↓2 +9
Comments 6

Создаем быстрый прототип мобильного приложения

Reading time 6 min
Views 217K
На хабре уже присутствует некоторое количество статей, посвященных процессу прототипирования в разработке программного обеспечения. Есть достаточно фундаментальные статьи с обзорами стандартов и расчетами, есть статьи про прототипирование устройств, есть цикл из двух статей про процесс выбора инструмента для прототипирования. К сожалению, процесс создания прототипов мобильных приложений освещен очень скудно – в виде единственной статьи в 2010 году, и пара слов в статье Разработка мобильных приложений: с чего начать.

Хотелось бы исправить эту ситуацию, и предложить вашему вниманию большой обзор доступных инструментов для прототипирования мобильных приложений.
Читать дальше →
Total votes 61: ↑59 and ↓2 +57
Comments 55

Как я делал веб-версию KeePass

Reading time 6 min
Views 80K
Как-то мне надо было добавить в админку просмотр списка паролей. База хранилась на сервере в формате KeePass (kdbx v2), сервер был на ноде — недолго думая, я взял первый попавшийся пакет и сделал. А потом понадобилось то же самое, но прямо у пользователя в браузере, без сервера. Ничего не нашлось. Первым желанием было форкнуть либу и заменить использование node api, но от первого просмотра кода желание пропало, решил сделать сам.



Под катом расскажу о проблемах, с которыми я столкнулся, и способах их решения
Читать дальше →
Total votes 134: ↑133 and ↓1 +132
Comments 162

Дайджест новостей для iOS-разработчиков

Reading time 2 min
Views 7.1K
Уильяму Генри Гейтсу III 60 лет. Да-да, так его зовут полностью. Хотите проникнуться духом того времени — прочтите «Сотворение Microsoft». Сердечно поздравляем и желаем долгих лет и новых рабочих свершений. Тем временем в App Store появляется категория Shopping. Разработчики получили соответствующее письмо.



Читать дальше
Total votes 19: ↑16 and ↓3 +13
Comments 0

Собеседование на должность Automation QA Engineer

Reading time 4 min
Views 199K
image

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

Входные данные:
Локейшн: Днепропетровск.
Позиция: Junior Automation QA Engineer.
Технологии: C#, Selenium, MSTest, TeamCity, Hibernate.


Так получилось, что пару месяцев назад я оказался на лавке запасных в одной большой компании. Клиент решил поделить нашу команду автотестеров на 2 (хорошо, что не на ноль) и так как у меня на этом проекте срок работы был невелик, то я попал в резерв. Внутренних проектов не ожидалось, а в резерве обычно сидеть скучно и невыгодно в денежном плане. Так я начал ходить на интервью.
Читать дальше →
Total votes 26: ↑23 and ↓3 +20
Comments 10

Что такое Selenium?

Reading time 4 min
Views 542K
Время от времени мне приходится распутывать терминологические хитросплетения, связанные с употреблением словосочетаний, в которых встречается слово Selenium – Selenium 2.0, Selenium IDE, Selenium RC, Selenium WebDriver, Selenium Server, Selenium Grid.

Путаница возникает во многом из-за того, что нигде нет чёткого описания всех этих терминов на одной страничке, и я постараюсь восполнить этот информационный пробел.
Читать дальше →
Total votes 42: ↑36 and ↓6 +30
Comments 31

Математическая задача о 100 коробках и спасении заключенных

Reading time 7 min
Views 143K
Предлагаю читателям «Хабрахабра» перевод публикации «100 Prisoners Escape Puzzle», которую я нашел на сайте компании DataGenetics. Все ошибки по данной статье присылайте, пожалуйста, в личные сообщения.

По условию задачи в тюрьме находится 100 заключенных, каждый из которых имеет личный номер от 1 до 100. Тюремщик решает дать заключенным шанс на освобождение и предлагает пройти придуманное им испытание. Если все заключенные справятся, то они свободны, если хотя бы один провалится — все умрут.


Читать дальше →
Total votes 106: ↑103 and ↓3 +100
Comments 55

Футуристическое мышление

Reading time 6 min
Views 58K
Все имена сохранены, все совпадения имеют под собой злой умысел.

Привет! Меня зовут Саня, и я вижу будущее. Вы только не подумайте: я не какой-нибудь там маг-экстрасенс пятой категории гильдии Ардуины второго пришествия. Я действительно вижу будущее, когда сосредоточусь. Я не знаю, кто посылает мне эти видения: бородатый дядька на небе, аццкий сцотона, или дух Ричарда Фейнмана просачивается сквозь швы пространства-времени и подсовывает мне в голову эти картинки. Я также не знаю, как вся эта бодяга согласуется с многомировой теорией, принципом неопределённости Гейзенберга и пророчеством Ванги.

Многие спросят: «Эй чувак! Если ты действительно видишь будущее, то какого чёрта ты тратишь время на пост в хабр вместо того, чтобы спасать мир?!» Проблема в том, что я не вижу глобальных событий. Я не могу предсказать эпидемию или войну; не могу знать о том, что Северная Корея запустит ядерную ракету; даже вымирание популяции бородатых хомячков в африканских саваннах я не могу предотвратить. Вот я и решил устроиться на работу, где мои скромные умения точно пригодятся.
Читать дальше →
Total votes 122: ↑110 and ↓12 +98
Comments 59

Пять ошибок анонимности, которые стоили главе Silk Road свободы

Reading time 4 min
Views 54K
Дело Росса Ульбрихта наглядно показывает, как пренебрежение несколькими банальными мерами защиты собственной анонимности может вылиться в огромный срок тюремного заключения. Владельца подпольной биржи по продаже наркотиков Silk Road признали виновным по всем пунктам. Похоже, за решёткой ему предстоит провести от 30 лет до всей оставшейся жизни. И этого можно было избежать.

Рыночная площадка, которую выстроил Ужасный Пират Робертс, была основана на неплохих технологиях обеспечения анонимности: сервера были надёжно спрятаны посредством луковой маршрутизации сети Tor, а транзакции оплаты между покупателями и продавцами проводились с помощью криптовалюты Bitcoin. Внешне отследить что-либо невозможно. Но Ульбрихт допустил несколько нелепых ошибок, которые вылились в огромный список цифровых доказательств на судебном процессе.

Всего было допущено пять основных ошибок. Глупость некоторых из них поражает, но их легко понять — скорее всего, излишняя самоуверенность накапливалась годами.

Bitcoin. Анонимность биткойнов часто сравнивают с анонимностью передачи наличных денег. Но это не совсем корректное сравнение: абсолютно все транзакции находятся в публичном доступе. Некоторые веб-сайты (к примеру, Blockchain.info) позволяют легко отслеживать транзакции на любом кошельке.
Читать дальше →
Total votes 83: ↑80 and ↓3 +77
Comments 70

STM32 и FreeRTOS. 1. Развлечение с потоками

Reading time 7 min
Views 149K
Данный цикл из 5 статей рассчитан на тех, кому стало мало возможностей привычных «тинек» и ардуинок, но все попытки перейти на более мощные контроллеры оканчивались неудачей или не приносили столько удовольствия, сколько могли бы. Все ниженаписанное проговаривалось мной много раз на «ликбезе» программистов нашей студии (которые часто сознавались, что переход с «тинек» на «стмки» открывает столько возможностей, что попадаешь в ступор, не зная за что хвататься), поэтому смею надеяться, что польза будет всем. При прочтении подразумевается, что читающий — человек любопытный и сам смог найти и поставить Keil, STM32Cube и понажимать кнопки «ОК». Для практики я использую оценочную плату STM32F3DISCOVERY, ибо она дешевая, на ней стоит мощный процессор и есть куча светодиодиков.

Каждая статья рассчитана на «повторение» и «осмысление» где-то на один околовечерний час, ибо дом, семья или отдых…



Читать дальше →
Total votes 41: ↑40 and ↓1 +39
Comments 35

Самые популярные торрент-сайты: рейтинг на начало 2015 года

Reading time 2 min
Views 52K
В начале 2015 года KickassTorrents вырвался на первое место по трафику, а следом за ним идёт Torrentz. «Икона» файл-шаринга The Pirate Bay пока ещё не работает, но его суммарные клоны, копии и последователи участвуют в рейтинге совместно.

Остальные пункты списка заняты уже известными сайтами. С прошлого года произошла лишь одна замена – место выбывшего Bitsnoop.com занял Limetorrents.cc. Один из старейших сайтов, Demonoid, вернувшийся в онлайн после долгого отсутствия, хоть и не попал в рейтинг, но неуклонно карабкается вверх. Мы ещё можем увидеть его в чарте.

Итак, сам чарт (основан на данных от Alexa и U.S. Compete, и некоторых других показателях):
Смотреть чарт
Total votes 24: ↑21 and ↓3 +18
Comments 6

02 Ссылки для UX-специалистов

Reading time 3 min
Views 33K
В этой подборке продолжаю делиться информационными ресурсами, где можно почерпать новые знания, отследить новые методы, техники и аналитку, а также улучшить свои навыки в области UX. В отдельном абзаце собрал некоторые материалы по UX в области носимых устройств.


Читать дальше →
Total votes 27: ↑25 and ↓2 +23
Comments 0

Docker: интересные особенности базовых образов

Reading time 2 min
Views 25K
Когда вы указываете в Dockerfile:
FROM ubuntu
то к вам на машину стягивается официально-поддерживаемый базовый образ Ubuntu (на сегодняшний день это 14.04 LTS). Мне стало интересно, чем образ этот отличается от «настоящей» чистой системы.

В процессе pull можно заметить, что он состоит из 5 слоёв:
docker pull ubuntu

ubuntu:latest: The image you are pulling has been verified
511136ea3c5a: Pull complete
3b363fd9d7da: Downloading 8.641 MB/197.2 MB 3m18s
607c5d1cca71: Download complete
f62feddc05dc: Download complete
8eaa4ff06b53: Download complete
Чтобы понять содержание каждого слоя, можно выполнить команду:

docker history --no-trunc ubuntu > history.txt

либо посмотреть исходный Dockerfile на GitHub. Каждый слой соответствует отдельной строке в Dockerfile:

511136ea3c5a — это отправная точка, пустой образ под названием scratch (строка FROM scratch).

3b363fd9d7da«вливание» официального образа Ubuntu из файла ubuntu-trusty-core-cloudimg-amd64-root.tar.gz
Далее начинается интересное
Total votes 60: ↑57 and ↓3 +54
Comments 3

Реализация словаря в Python 2.7

Reading time 15 min
Views 114K
В этой статье пойдёт речь о том, как реализован словарь в Python. Я постараюсь ответить на вопрос, почему элементы словаря не упорядочены, описать, каким образом словари хранят, добавляют и удаляют свои элементы. Надеюсь, что статья будет полезна не только людям, изучающим Python, но и всем, кто интересуется внутренним устройством и организацией структур данных.
Читать дальше →
Total votes 65: ↑64 and ↓1 +63
Comments 37

Первый опыт разработки iOS-приложения и размышления о маркетинге и рекламе

Reading time 6 min
Views 52K
… в общем создал я игру. А дело было так.

Несколько месяцев назад подошёл мой начальник и обрадовал, что с сегодняшнего дня, в дополнение к своим основным обязанностям, я должен буду делать iOS-приложения (не сильно сложные, но по работе необходимые), что Mac mini мне купили и что я самый опытный из всех по части продукции Apple (это правда, т.к. ваш скромный слуга уже четвёртый год ходит с 1-м iPad). Ну ладно.
Что было дальше?
Total votes 42: ↑27 and ↓15 +12
Comments 44

01 Ссылки для UX-специалистов

Reading time 3 min
Views 93K
В этой подборке я хочу поделиться информационными ресурсами, где можно почерпать новые знания, отследить новые методы, техники и аналитку, а также улучшить свои навыки в области UX. Полезно будет не только специалистам из области юзабилити, а также всем кто имеет отношение к разработке веб-продуктов.


Читать дальше →
Total votes 60: ↑57 and ↓3 +54
Comments 13

Интерактивные карты кибератак в реальном времени

Level of difficulty Easy
Reading time 4 min
Views 79K
«Кибервойны — это уже реальность и нам, простым смертным, остается только наблюдать за ними...»

Да, начало, пожалуй, вышло пафосным и больше подходит для заголовка какой-нибудь газетной статьи или как раз для ресурса, который в визуальной форме показывает нам происходящие в мире кибератаки.
В этой статье будут описаны известные и, возможно, малоизвестные ресурсы, демонстрирующие происходящие в мире кибератаки в режиме реального времени.
Читать дальше →
Total votes 30: ↑27 and ↓3 +24
Comments 16

Marxico — markdown редактор для Evernote

Reading time 4 min
Views 35K
Evernote представляет собой довольно хороший и удобный сервис для ведения различных заметок. При его использовании заметки не разбросаны по листочкам и файликам на компьютере, а собраны в одном месте; также появляется возможность быстро фиксировать свои мысли и идеи.

Однако, когда нужно записать формулу, черкануть пару строк кода или сделать набросок технической статьи, то тут Evernote уже не так удобен. Здесь на помощь приходит Marxico — markdown редактор для Evernote.



Узнать больше
Total votes 15: ↑13 and ↓2 +11
Comments 21

Portaller — теперь с поддержкой Pandora, Spotify, Rdio, Netflix и Amazon Video на всех устройствах

Reading time 2 min
Views 6K
Привет.
Хочу рассказать вам несколько интересных новостей о том, что происходит с Portaller — небольшим сервисом для использования Pandora, Spotify, Netflix и еще нескольких сервисов за пределами США.

Одной строкой, если у вас нет времени идти под кат — кроме Pandora и Spotify теперь поддерживается Netflix и Amazon Video, сервис работает на всех устройствах, включая клиентов на Android (почему на нем такой акцент — читайте ниже) и к нему можно присоединиться на GitHub.

Читать дальше →
Total votes 13: ↑11 and ↓2 +9
Comments 15

Почему OpenVPN тормозит?

Reading time 3 min
Views 180K
Описанная проблема присуща только ветке OpenVPN 2.3, в 2.4 размеры буферов не меняются без требования пользователя.

Время от времени, мне встречаются темы на форумах, в которых люди соединяют несколько офисов с использованием OpenVPN и получают низкую скорость, сильно ниже скорости канала. У кого-то это может быть 20 Мбит/с при канале в 100 Мбит/с с обеих сторон, а кто-то еле получает и 400 Кбит/с на 2 Мбит/с ADSL/3G и высоким пингом. Зачастую, таким людям советуют увеличить MTU на VPN-интерфейсе до чрезвычайно больших значений, вроде 48000, или же поиграться с параметром mssfix. Частично это помогает, но скорость внутри VPN все еще очень далека от канальной. Иногда все сваливают на то, что OpenVPN — userspace-решение, и это его нормальная скорость, учитывая всякие шифрования и HMAC'и. Абсурд!

Немного истории

На дворе июль 2004 года. Типичная скорость домашнего интернета в развитых странах составляет 256 Кбит/с-1 Мбит/с, в менее развитых — 56 Кбит/с. Ядро Linux 2.6.7 вышло не так давно, а 2.6.8, в котором TCP Window Scale включен по умолчанию, выйдет только через месяц. Проект OpenVPN развивается уже 3 года как, к релизу готовится версия 2.0.
Один из разработчиков добавляет код, который устанавливает буфер приема и отправки сокета по умолчанию в 64 КБ, вероятно, чтобы хоть как-то унифицировать размер буфера между платформами и не зависеть от системных настроек.
Читать дальше →
Total votes 90: ↑89 and ↓1 +88
Comments 61

Information

Rating
Does not participate
Location
Киевская обл., Украина
Date of birth
Registered
Activity