Как стать автором
Обновить
13
0
mihailt @mihailt

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

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

RxSwift шпаргалка по операторам (+ PDF)

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


Заинтересовавшись темой функционального программирования я встал на распутье, — какой фреймворк выбрать для ознакомления. ReactiveCocoa — ветеран в iOS кругах, по нему вдоволь информации. Но он вырос с Objective-C, и хотя это не является проблемой, но все же в данный момент я в основном пишу именно на Swift, — хотелось бы взять решение изначально спроектированное с учетом всех плюшек языка. RxSwift же порт Reactive Extensions, имеющего долгую историю, но сам порт свежий и написанный именно под Swift. На нем я и решил остановиться.
Но специфика документации по RxSwift в том, что описание всех команд ведет на reactivex.io, а там в основном дается общая информация, руки у разработчиков не дошли еще сделать документацию именно для RxSwift, что не всегда удобно. Некоторые команды имеют тонкости в реализации, есть те, о которых в общей документации нет ничего кроме упоминания.
Прочитав все главы вики с RxSwift гитхаба, я сразу решил поразбираться с официальными примерами, тут то и стало ясно, что с RX такое не пройдет, нужно хорошо понимать основы, иначе будешь как мартышка с копипастом гранатой. Я начал разбирать самые сложные для понимания команды, потом те, что вроде понятны, но задав себе вопросы по ним я понял, что лишь догадываюсь на то как верно ответить, но не уверен.
В общем ничтоже сумняшеся я решил проработать все операторы RxSwift. Лучший способ что то понять в программировании — запустить код и посмотреть как он отработает. Затем учитывая специфику реактивного программирования — очень полезны схемы, ну и краткое описание на русском. Закончив сегодня работу, я подумал, что грех не поделиться результатами с тем, кто лишь присматривается к теме реактивного программирования.
Много картинок и текста под катом, очень много!
Читать дальше →
Всего голосов 18: ↑18 и ↓0+18
Комментарии21

Делаем очередную .io-игру

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


Так называемые .io-игры — это браузерные massively multiplayer action-игры, в которых множество людей борются с излишками свободного времени. Massively multiplayer — это значит, что игра представляет собой многопользовательскую массовку из большого количества (сотен+) игроков, играющих в общей локации. Существует мнение, что все началось с игры Agar.io (клетки в чашке Петри). Другими успешными примерами можно назвать Slither.io (змейки) и Diep.io (танчики). Если верить статистике, то каждый день в эти игры играют миллионы игроков. Сегодня существуют десятки различных .io-игр, большинство из которых можно найти, загуглив по запросу «io games list».


Я расскажу о том, как мы делали нашу .io-игру Oceanar.io — игру про рыбок и прочих морских жителей, постараюсь при этом сосредоточиться на вопросах общего технического устройства всей системы, и дам несколько скромных советов.


Читать дальше →
Всего голосов 35: ↑30 и ↓5+25
Комментарии46

Casual-заготовки под Swift

Время на прочтение6 мин
Количество просмотров12K
image

Привет, братья во swift-e. Пришлось и мне освоить сей птичий язык, и нет лучшего способа для обучения, чем сделать программный продукт, работающий на потрепанном iPhone. Меня давно кусала изнутри сложная математическая головоломка, а тут раз! И вдруг свифт. Представленный код местами выглядит смешно, но понятно. Сам алгоритм игры я обсуждать не буду, он слишком сложен для местных модераторов, не умеющих в уме разделить 111 на 3. А вот примеры полезных функций для разработчиков casual game — пожалуйста, обсудим.
Читать дальше →
Всего голосов 27: ↑19 и ↓8+11
Комментарии14

Полное практическое руководство по Docker: с нуля до кластера на AWS

Время на прочтение39 мин
Количество просмотров1.6M



Содержание



Вопросы и ответы


Что такое Докер?


Определение Докера в Википедии звучит так:


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



Ого! Как много информации.

Читать дальше →
Всего голосов 125: ↑124 и ↓1+123
Комментарии44

Разработка для коптеров

Время на прочтение9 мин
Количество просмотров25K
В последнее время коптеры из игрушек и летающих камер становятся Большим Бизнесом. Коптеры доставляют грузы, делают съемку местности, охраняют периметр, распыляют химикаты в полях и даже красят, в общем выполняют разного рода задания. Разумеется большинство действий делаются не вручную, с пульта, а выполняются программно.


Читать дальше →
Всего голосов 18: ↑18 и ↓0+18
Комментарии7

7 игр за 7 дней: rewarded video

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

Ты решил выпустить свою игру под iOS? Значит, читай дальше. Яхты, машины, виллы — все это будет твое. Главное — удачно жениться. А разработчикам игр остаются свобода и счастье творчества. Sic!

Да, закатай губу и помни, каждый день в яблочный магазин выкладывается более 1000 игр. Представь, что какой-то тип-игроман заходит в Appstore раз в неделю посмотреть свежие приложения. Его ждет 7*1000=7000 новых игр. И еще миллион старых, которых он не пробовал. Он пролистает 3 страницы с иконками и описаниями, увидит 3 десятка приложений, почитает отзывы и скачает себе пару бесплатных игрушек. Какова вероятность, что он увидит твое гениальное, неслыханное, эпохальное, умопомрачительное приложение? Невелика? Ах, ты с кафедры мат. статистики? Да ладно?! А не переживай. Удача и реклама спасут тебя. Выпусти 100 приложений, размести в них современную рекламу и 50 долларов в день тебе обеспечены до самой смерти.

Я расскажу, как осуществляется автором этот гениальный план, опубликую финансовые итоги 2015 года (тс-с-с), и проинформирую уважаемых читателей о рекламных сервисах, которые, по-моему мнению, самые модные и доходные в этом сезоне. Ссылок на приложения не даю, никого не трогаю, починяю примус.
Читать дальше →
Всего голосов 48: ↑44 и ↓4+40
Комментарии13

О гриппе А (H1N1) с точки зрения программирования

Время на прочтение6 мин
Количество просмотров17K
Учёные уже полностью дизассемблировали H1N1 и занесли его в вирусную базу NCBI Influenza Virus Resource. Там всё задокументировано в подробностях. Например, образец A/Italy/49/2009(H1N1) был обнаружен в носу 26-летней женщины, вернувшейся из Италии в США. Вот первые 120 бит его генетического кода.

atgaaggcaa tactagtagt tctgctatat acatttgcaa ccgcaaatgc agacacatta

Сколько бит убьёт человека?
По приблизительным подсчётам, общий размер исходников H1N1 составляет 26 022 бит, а если исключить служебные стоп-сигналы (указывают на окончание каждой белковой последовательности), то исполняемый код состоит примерно из 25 054 бит. Это число является приблизительным ещё и потому, что в вирусе присутствует механизм генерации избыточного мусора для маскировки от антивирусов.

Итак, получается около 25 килобит или 3,2 килобайта. Таков объём кода для программы, имеющей ненулевые шансы убить человека. H1N1 написан гораздо эффективнее, чем компьютерный вирус MyDoom размером около 22 КБ.

Очень унизительно, что меня могут убить всего 3,2 КБ генетических данных. Впрочем, в 850 МБ человеческого генома по любому должны быть дыры для парочки эксплойтов.
Читать дальше →
Всего голосов 323: ↑317 и ↓6+311
Комментарии177

Что такое качество в веб-дизайне: примеры и рекомендации. Часть 3

Время на прочтение6 мин
Количество просмотров12K
Не забудьте почитать:
Что такое качество в веб-дизайне: примеры и рекомендации. Часть 1. (или здесь)
Что такое качество в веб-дизайне: примеры и рекомендации. Часть 2. (или здесь)

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

05. Сдержанность и деликатность


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

Читать дальше →
Всего голосов 95: ↑88 и ↓7+81
Комментарии35

Что такое качество в веб-дизайне: примеры и рекомендации. Часть 2

Время на прочтение5 мин
Количество просмотров11K
Не забудьте почитать: Что такое качество в веб-дизайне: примеры и рекомендации. Часть 1. (или здесь).

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

03. Хорошо продуманная типографика


Хотя реальные тексты для сайта будет писать не дизайнер, они играют такую же важную роль, как и общее качество контента. Дизайнер должен потрудиться, чтобы тексты легко читались и удерживали внимание. Существует множество способов сделать текст легко читаемым и приятным глазу. По мере перечисления правил и норм того, что следует и чего не следует делать, я приведу несколько примеров сайтов, где рациональная типографика действительно работает.
Читать дальше →
Всего голосов 82: ↑74 и ↓8+66
Комментарии24

Создание системы авторизации в высоконагруженном проекте с использованием MemcacheDB

Время на прочтение4 мин
Количество просмотров1.8K
Здравствуйте!

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

Где хранить аутентификационную базу пользователей?
Как быстро авторизовать пользователя по его строковому логину?
Как собирать распределенные по нескольким шард-таблицам и нескольким базам данных пользовательские данные?
Как заставить все это работать и как в этом нам может помочь MemcacheDB?

Читать подробности
Всего голосов 17: ↑17 и ↓0+17
Комментарии31

IT блоггеры Рунета, где вы?

Время на прочтение2 мин
Количество просмотров13K
Буквально вчера я понял, что кроме Хабра в моем RSS ридере нет ни одного русскоязычного источника IT информации. Несправедливость какая-то, подумал я и принялся составлять список блоггеров, которых было бы интересно почитать и за которыми хотелось бы активно следить. Задача эта, как ни странно, оказалась не из самых простых. Поэтому и обращаюсь за помощью к Хабрачеловекам.

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

Сразу скажу, что лично меня не интересует: блоги с превалирующей информацией на личные темы; переводчики-кросспостеры информации с западных мейнстримовых блогов (TC, Mashable, Technorati и т.п.), ну и наверное всё.

UPD: Огромное спасибо всем, кто прислал линки! Под катом находится лишь малая доля ссылок, присланных хабрапользователями, основные сливки в комментариях
Читать дальше →
Всего голосов 119: ↑111 и ↓8+103
Комментарии160

SVN на Маке

Время на прочтение4 мин
Количество просмотров6.7K
image
Купив Мак, я озадачился установкой на него софта, который стоял до этого у меня на PC. Перенести удалось почти всё. Для чего-то нашлись маковские версии, для чего-то удалось подобрать замену. Проблемы возникли с Subversion (SVN). На PC я пользовался Visual SVN Server, который не требует практически никакой настройки и работает сразу после установки. На Маке такого удовольствия не оказалось, так что пришлось немного повозиться.
Читать дальше →
Всего голосов 53: ↑45 и ↓8+37
Комментарии67

Пример использования Mate Flex Framework

Время на прочтение6 мин
Количество просмотров3.4K
Mate Flex Framework Сразу же после появления на свет вышеуказанного фреймворка я понял — это именно то, чего так долго не хватало. Влезать в кабалу создания огромного количества классов используя фреймворки Cairngorm или PureMVC очень не хотелось, а с приходом Mate, появилась возможность уменьшить общую связанность компонентов приложения и использовать безболезненный обмен сообщениями(событиями) декларируя их в «родном» mxml.

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

Читать дальше →
Всего голосов 25: ↑25 и ↓0+25
Комментарии14

Кладезь электронных книг и журналов на английском языке — Netbks

Время на прочтение1 мин
Количество просмотров1.8K
Здравствуйте!

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

Читать дальше →
Всего голосов 59: ↑56 и ↓3+53
Комментарии46

Какая боль! Толпы против Веб — 2:0. Эпизод два — клоны заходят в полдень

Время на прочтение5 мин
Количество просмотров554
Продолжаем warstory оптимизации PHP+mySQL сайта редчайших слов. Одним майским днем, копаясь в словах, мне пришла в голову мысль — расставить под этими словами textbox'ы — использовать [модный для Web 2.0] crowdsourcing. Заполняй чем хочешь, только про это конкретное слово. Но, должно было работать collaborative — как Google Docs — если ты и еще кто-то редактируют слова на одной и той же странице — изменения будут отображаться одновременно. Или, например, кто-то редактирует слово «google» на странице Гугла, а на странице TechMeme, к примеру, есть тоже слово «google» — и им в real-time покажутся эти изменения со страницы Гугла [это необязательно понимать]. Знал бы я какие последствия эта веселая задумка на mySQL окажет позже…

Сделать это оказалось несложно: prototype.js — в руки, ajax — каждые 10 секунд, смотрим в базе что менялось за последние 10 секунд, делаем пересечение со словами на текущей странице, отправляем js highlight effect и новый текст — вуаля. Людей было, но мало кто что-то вводил, тогда я придумал повесить в уголок страницы блок «только что было сказано». Например: «На странице 'fibonacci.com' только что было сказано, что 'fibonacci' → 'crazy math scientist'». Это уже значительно заинтересовало людей и заполняемость выросла в разы. Все видели движения на сайте и сами вовлекались.

Собственно, я сделал достаточно функционала для довольно забавной игрушки — «войны сайтов редкими словами», авто-категоризатор, синонимизатор и т.п. Я сидел мирно редактировал «живой» сайт, загружал новый файл, если видел ошибку — исправлял, не переживая, что это кто-то может видеть. Не подозревал я, что уже тысячи людей видят это. После очередной ошибки в названии функци что-то произошло… я не смог загрузить на FTP index.php… это был TechCrunch....
Читать дальше →
Всего голосов 98: ↑84 и ↓14+70
Комментарии43

SQA в PHP

Время на прочтение1 мин
Количество просмотров512
Приветсвую всех.
Случилось так, что на работе нужно более глубоко использовать SQA (software quality assurance). Погуглив, сделал пока выводы, что можно использовать

1. phpunit как средство тестирования кода (simpleTest как альтернатива, и другие фрейворки для тестирования кода)
2. Selenium как средство тестирование веб интерфейса
3. code review для повышения качества кода. (он же рефакторинг)
upd:
4. code coverage by phpunit+xdebug для установления какой код не используется
5. багтрекер на основе trac

а что можно еще использовать чтобы повысить качество кода? какие методики?

спасибо за внимание
Всего голосов 25: ↑20.5 и ↓4.5+16
Комментарии43

Пишем расширения для PHP на C (Си)

Время на прочтение7 мин
Количество просмотров3.5K
Современному PHP разработчику это знание может понадобиться скорее для расширения сознания, чем непосредственное руководство к действию, но несмотря на то, что в PHP уже встроено практически все необходимое, а в разнообразных PEAR и PECL репозитариях можно найти пакет дополнений на любой вкус, многим думаю будет интересно, а некоторым и полезно узнать как и что работает внутри PHP.

И раз уж Zend предоставил нам такие удобные инструменты, почему бы ими не воспользоваться? Например для оптимизации каких-то процессов, сокрытия своего когда в коммерческих приложениях и встраивания механизма лицензий, реализации многопоточности или для чего-то еще…

Читать дальше →
Всего голосов 32: ↑29.5 и ↓2.5+27
Комментарии12

Коллекции иконок? Легко! Тысячи иконок в сетах.

Время на прочтение2 мин
Количество просмотров39K
В продолжении поста "Ресурсы по поиску качественных иконок" представляю свою коллекцию сайтов, на которых вы найдёте очень(!) много качественных наборов иконок. Все сайты проверены руками, следовательно открываются и скачиваются легко.
Читать дальше →
Всего голосов 159: ↑135.5 и ↓23.5+112
Комментарии36

О некоторых современных технологиях разработки веб-интерфейсов

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

Наступление


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

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

Читать дальше →
Всего голосов 20: ↑17 и ↓3+14
Комментарии21

Как «pecl» зол порой бывает

Время на прочтение2 мин
Количество просмотров501
Сегодня столкнулся с проблемой прикрутки memcache к PHP собранному из сырцов. А именно при попытке выполнить:
[root@idev bin]# ./pecl install memcache

Я получал следующий результат:
downloading memcache-2.2.3.tgz…
Starting to download memcache-2.2.3.tgz (27,304 bytes)
.........done: 27,304 bytes
11 source files, building
running: phpize
Configuring for:
PHP Api Version: 20041225
Zend Module Api No: 20060613
Zend Extension Api No: 220060519
ERROR: `phpize' failed

Читать дальше →
Всего голосов 9: ↑7 и ↓2+5
Комментарии17
1
23 ...

Информация

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