Pull to refresh
41
0
Роман @Dreddik

Разработчик всяких программ

Send message

Защита от гнева богов. Устройства защиты от импульсных перенапряжений

Reading time 17 min
Views 49K
Продолжаем тему электроликбеза про устройства защиты, и этот пост — знакомство с устройствами защиты от импульсных перенапряжений (УЗИП). Это устройства для вашего электрощита, призванные бороться с кратковременными всплесками напряжения, например из-за грозы. Текст рассчитан для нетехнарей, так что добро пожаловать) Видеоверсия в конце.


Познакомиться с УЗИП
Total votes 87: ↑84 and ↓3 +81
Comments 64

Овладение Coordinator Layout

Reading time 7 min
Views 207K
На презентации Google I/O 15, компания Google представила новую версию библиотеки поддержки которая реализует несколько компонентов, сильно связанных со спецификациями Material Design, среди этих компонентов вы можете найти новые типы ViewGroup такие как AppbarLayout, CollapsingToolbarLayout и CoordinatorLayout.

При правильном комбинировании и настройке данные Viewgroup могут быть очень мощным инструментом, по этому я решил написать статью с некоторыми настройками и советами.
Читать дальше →
Total votes 14: ↑14 and ↓0 +14
Comments 0

Архитектурные паттерны в iOS

Reading time 14 min
Views 198K

Введение в MVP, MVC, MVVM и VIPER. Что между ними общего и в чем разница.



Делаете все по MVC, а получается некрасиво? Сомневаетесь, переходить ли на MVVM? Слышали о VIPER, но не уверены, стоит ли оно того?

В этой статье я кратко рассмотрю некоторые популярные архитектурные паттерны в среде iOS и сравню их в теории и на практике. Больше информации вы найдете при переходе по ссылкам, указанным в тексте.
Читать дальше →
Total votes 28: ↑28 and ↓0 +28
Comments 18

Налоговый суслик. Особенности упрощенной системы налогообложения при работе по договорам с Apple, Google и другими

Reading time 46 min
Views 53K
В данной статье я постараюсь провести краткий юридический ликбез для разработчиков по некоторым положениям Гражданского кодекса, имеющим значение в контексте деятельности индивидуальных предпринимателей и организаций, применяющих упрощенную систему налогообложения, в работе по договорам с Apple, Google и другими компаниями, а также обратить внимание на некоторые не всегда очевидные налоговые нюансы, которые, как показал личный опыт изучения данной темы, довольно часто ускользают от внимания разработчиков или вызывают множество вопрос и споров.

Прочтите внимательно эту статью, если вы применяете упрощенную систему налогообложения с объектом налогообложения «доход» по ставке 6 процентов и продаете игры или приложения в Google Play, Apple App Store, а также прочий цифровой контент — например, 3D-модели — в Steam, Unity Asset Store или на других площадках, в условиях договоров с которыми фигурируют комиссии, агентские вознаграждения и прочие формы разделения выручки между сторонами.

Из материала вы узнаете:

  • Почему разработчику желательно обладать хотя бы базовой юридической грамотностью
  • Чем с точки зрения Гражданского кодекса являются игры и приложения и какие права на них есть у разработчиков помимо авторского права
  • Что такое агентский договор и почему все это важно при работе по договору с Apple или Google
  • Кто такой налоговый суслик и почему он может превратиться в пушного зверя
  • Какой «подвох» существует для применяющих «упрощенку» в части определения налоговой базы
  • Почему налог на добавленную стоимость (НДС) продолжает преследовать нас, даже когда мы не являемся его плательщиками
  • Как, с точки зрения Федеральной налоговой службы, облагаются НДС внутриигровые покупки (InApp Purchases)
Покажите мне суслика!
Total votes 40: ↑36 and ↓4 +32
Comments 84

Пишем для Apple Watch что-нибудь сложнее Hello, world

Reading time 6 min
Views 12K
Уже прошло много времени, с моменты выпуска компании Apple ее нового продукта — часов Apple Watch. Уже скоро выйдет финальная версия операционной системы для них — Watch OS 2.0. А на Хабре до сих пор нет более-менее развернутой статьи о том, как написать что-нибудь сложнее “Hello, world!” для Apple Watch. И в этой статье мы постараемся это исправить и написать приложение из нескольких экранов со списком, загрузкой данных и взаимодействием с основным приложением.
Читать дальше →
Total votes 19: ↑17 and ↓2 +15
Comments 5

Ускоряем приложение Android с помощью Golang

Reading time 4 min
Views 45K
image

Разработка мобильных приложений — это всегда компромисс между тем, что хочется сделать и тем, что позволяет сделать платформа устройства. В этой статье рассказывается о том, как увеличить возможности приложения Android с помощью Golang.
Читать дальше →
Total votes 43: ↑39 and ↓4 +35
Comments 29

Тренды iOS–разработки 2014 года

Reading time 3 min
Views 27K

Подходит к концу 2014 год, и сейчас самое время подвести итоги и выделить ключевые тренды в iOS разработке.

Functional Reactive Programming


Благодаря фреймворку ReactiveCocoa, новая парадигма программирования все чаще используется среди iOS разработчиков.

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

Для себя я выделил следующие преимущества реактивного подхода:
  • loose coupling — потоки события позволяют уменьшить связанность между различными частями кода;
  • explicit state — состояние программы определяется набором событий, и поэтому им становится легко управлять.

В качестве альтернативы реактивному подходу рекомендую посмотреть на Futures. Есть как минимум два интересных фреймворка: PromiseKit и CollapsingFutures
Читать дальше →
Total votes 39: ↑34 and ↓5 +29
Comments 28

Многоликие функции Swift

Reading time 16 min
Views 43K
Русский перевод очень полезной статьи Natasha Murashev The Many Faces of Swift Functions.

Хотя у Objective-C синтаксис выглядит несколько странно, по сравнению с другими языками программирования, синтаксис метода — прост и понятен. Вот небольшой экскурс в прошлое:

+ (void)mySimpleMethod
{
    // метод "класса"
    // нет параметров
    // нет возвращаемых значений
}

- (NSString *)myMethodNameWithParameter1:(NSString *)param1 parameter2:(NSNumber *)param2
{
    // метод "экземпляра"
    // первый параметр - типа NSString указатель, 
    // второй параметр  - типа NSNumber указатель
    // должен вернуть значение типа NSString указатель
    return @"hello, world!";
}


В противоположность этому, синтаксис Swift выглядит в большинстве случаев также, как и в других языках программирования, но временами он может быть более сложным и запутанным, чем в Objective-C.

Прежде чем я продолжу, я хочу прояснить разницу между «методами» и «функциями» в Swift, так как я повсеместно буду использовать оба этих термина в этой статье. Вот определение «методов», данное в книге Apple «Swift Programming Language»:

Читать дальше →
Total votes 38: ↑31 and ↓7 +24
Comments 27

Доставка из США за 5-10 дней по цене USPS

Reading time 4 min
Views 161K
До наступления 2013 года оставалось 30 дней, когда я решил подарить жене ipad mini. Официальный store.apple.com не справлялся со спросом на mini, о чем красноречиво свидетельствовала надпись est shipping in 2 weeks.

Отказываться от mini в качестве подарка не было никакого желания, поэтому был штурмом взят ebay, цены на котором заметно подросли, и 16gb+cellurar модель ушла за $500.

До наступления 2013 года оставалось 15 дней, у меня был выигранный лот и туманная перспектива получить его в Спб до 31 числа…
И я ее получил, за 10 дней, тариф за отправку составил $48.5.
Читать дальше...
Total votes 150: ↑138 and ↓12 +126
Comments 160

Повышение производительности работы в Mac OS X, в том числе путем уменьшения использования мыши

Reading time 9 min
Views 83K
Мне кажется целесообразным поделиться личным опытом роста производительности работы в Mac OS Х (на примере 10.7), в частности, путем максимального отказа от использования мыши (через что придем и к многим другим способам).

С чем связана актуальность проблемы?
1. Эргономически прицелиться и попасть мышью в мелкий объект всегда хуже для времени, мелкой моторики и зрения, чем использовать операции, не требующие идентификации мелких объектов и «прицеливания» в них. Для наиболее массового примера достаточно сравнить количество людей в Windows, которые переключают клавиатуры комбинацией клавиш или мышкой в соответствующем меню на рабочем столе (которое вроде тоже бы в пределах доступности).

2. Для мобильной работы большая разница – брать с собой мышь или нет. Если в Windows многим недостаточно внутренних тачпадов для полноценной работы, то при взгляде на макбук с подключенной мышью возникает когнитивный диссонанс – т.к. часть вещей, ради которых человек взял ее с собой в дорогу, объективно имеет более эффективное альтернативное решение, если избавится от определенной парадигмы сознания.

3. Меньшее использование мыши в OS X для переходящих с Windows позволяет предотвратить ряд неудобств и ошибок – в частности, «эффект красного крестика» и «синдром единственного рабочего стола», а также лучше понять отличия между окнами и процессами.

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

Итак.
Читать дальше →
Total votes 44: ↑34 and ↓10 +24
Comments 61

Создание иконок для приложений Mac OS X

Reading time 3 min
Views 17K

По роду деятельности я начинающий IOS кодер. Так случилось что недавно собрал совсем маленькую прогу под Mac и мне нужно было сделать иконку для своего же небольшого приложения. Узнав что установка иконки под эти две платформы сильно отличается решил опубликовать туториал для тех кому это может понадобиться.
Читать дальше →
Total votes 25: ↑15 and ↓10 +5
Comments 19

Кадры решают всё или о биче современных компаний

Reading time 18 min
Views 132K
image
Хотелось бы немного рассказать о тех ошибках, которые очень опасно совершать особенно сейчас, особенно в странах или городах золотого миллиарда. Думаю каждый работающий или сталкивающийся с деятельностью большой или не очень компании (или гос структуры) как и я удивляется на сколько же всё не эффективно и поражается как при таком раздолбайстве и пофигизме шестерёнок машина всё еще работает.
Читать дальше →
Total votes 139: ↑102 and ↓37 +65
Comments 67

Официальный Unlock от AT&T

Reading time 1 min
Views 51K
Недавно стало известно о решении AT&T самостоятельно делать unlock айфонов, купленных у нее. И сегодня это случилось… Казалось бы — «дело в шляпе», если бы не несколько «но».

image
Читать дальше →
Total votes 54: ↑45 and ↓9 +36
Comments 74

Как сохранить здоровье, работая за компьютером?

Reading time 8 min
Views 105K
Иллюстрация

Вы заботитесь о своем здоровье?


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

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

Читать дальше →
Total votes 272: ↑259 and ↓13 +246
Comments 139

Используем Google Voice Search в своем приложении .NET

Reading time 3 min
Views 130K


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

Так как исходный Chromium открыт, возникает закономерное желание подсмотреть, можно ли использовать технологию в своих корыстных целях наступления мира на земле.

Как это часто бывает, все уже сделано за нас в этой статье. Все оказывается очень просто, необходимо сделать POST запрос на адрес www.google.com/speech-api/v1/recognize со звуковыми данными в формате FLAC или Speex. Реализуем демонстрацию распознавания WAVE-файлов с помощью C#.

Читать далее
Total votes 80: ↑72 and ↓8 +64
Comments 25

Голосовой переводчик для Mac OS X

Reading time 7 min
Views 8.9K
В недалёком прошлом лишь в фантастических фильмах можно было видеть «чудо коробочки», в которые говоришь, а в результате слышишь перевод сказанного на другом языке. Но прогресс идёт…

Я очень давно ждал, когда Google откроет API своего сервиса распознавания речи (в своих продуктах компания его использует). Несколько месяцев назад я перевернул «этот ваш ёнтернет», но безрезультатно. И вот на днях я вижу топик на Хабре Используем Google Voice Search в своем приложении .NET! Я был неимоверно счастлив. Топик ссылается на оригинальную статью Accessing Google speech API / Chrome 11. Всё внимательно изучил и «расковырял» исходники Chrome.

Google Speech Recognition API пока неофициальный и стал доступен общественности благодаря браузеру Chrome.

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

Для демонстрации и создания «каркасного движка» (для своих дальнейших нужд) я сделал «Голосовой переводчик» для Mac OS X за пару дней. Это симбиоз технологий Google, Microsoft (произношение) и открытого проекта ffmpeg (конвертация во flac). Это именно голосовой переводчик — никакого набора текста. Просто произносите фразу и слушаете её перевод. Да, качество распознавания может быть не идеальным, но на коротких чётких фразах вполне приемлемо.

Вот видео работы программы:


Как обычно, этот топик я разделю на две части. Одна для обычных пользователей, кто захочет «побаловаться» этой программой. Другая для разработчиков (я предоставлю исходные коды базового проекта).
Читать дальше →
Total votes 54: ↑52 and ↓2 +50
Comments 27

Устранение проблем с автоматической синхронизацией времени в Android

Reading time 4 min
Views 204K
Прочитав статью «Переезд временной зоны MSD в MSK — новый Y2K локального масштаба» — вспомнил, что вместе с коллегой по работе уже давно решил эту проблему на Android (HTC Hero) и хотел написать в песочницу, но все откладывал на потом. А сегодня появилась очередная статья «Обновление временных зон на Android» практически похоронившая идею написания и, подтвердившая идею, что не надо откладывать важные вещи на потом. Но… немного повспоминав, я всё-таки решился, потому что в данных статьях рассматривалась проблемы связанные с переходом на зимнее/летнее время и совсем не затрагивался момент касающийся работы виджета часов с погодой и автоматического определения времени через оператора сотовой связи.

Читать дальше →
Total votes 31: ↑29 and ↓2 +27
Comments 22

Обновление временных зон на Android

Reading time 3 min
Views 48K
Прочитав статью «Переезд временной зоны MSD в MSK — новый Y2K локального масштаба» — был, мягко говоря, озадачен. Неужели никто до сих пор не сделал какого-либо патча для Android? Вдумчивое гугление привело к подтверждению информации: да, патчей нет. Обновлений тоже нет. Что хотите — то и делайте.
Ну вот, собственно — и начал делать…
Читать дальше →
Total votes 70: ↑68 and ↓2 +66
Comments 85

Создание игры на движке Sprite Kit (Часть 1)

Reading time 71 min
Views 157K
С появлением iOS 7 мир узрел новый игровой движок от Apple — SpriteKit. В свете того, что он появился совсем недавно об этом движке еще мало что написано, конечно в сети можно найти несколько tutorial -ов по нему но в основном все они на Английском языке. И по этому я задалась целью написать подробный Туториал об этом замечательном движке.

Итак, что же такое SpriteKit?


SpriteKit — это 2D движок, оптимизированный для создание игр для устройств от компании Apple. В его основе лежит популярный физический движок Box 2D. Поскольку разработчики создавали его заточенным специально для устройств Apple он существенно выигрывает в скорости у остальных движков.
В SpriteKit всю роль по оптимизации и рисованию графики берет на себя OpenGl, это все происходит на низком уровне и по этому вы можете сосредоточить свои усилия на решении проблем более высокого уровня и создание больших 2D игр. Для создание игр на SpriteKit используется язык Objective-c, но с выходом iOS 8 и нового языка Swift, игры также можно создавать и на нем.
От себя хотела бы добавить, что в некотором роде на Swift писать даже легче, так что если вы только начинаете и думаете какой язык выбрать то советую выбрать Swift.

Ниже, я предоставила видео с демонстрацией игрового процесса SpriteKit, если вам стало интересно то милости прошу.



Подробности
Total votes 39: ↑36 and ↓3 +33
Comments 15

Information

Rating
Does not participate
Location
California, США
Registered
Activity