Pull to refresh
15
0

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

Send message

Этапы и принципы развития навыка говорения

Reading time8 min
Views28K

«Гло́кая ку́здра ште́ко будлану́ла бо́кра и курдя́чит бокрёнка». Эту фразу из несуществующих слов предложил в начале XX века академик Л.В. Щерба. Из неё ясно, что «будлану́ла» — действие, которое ку́здра (ж.р.) совершила в отношении бо́кра (м.р.); бокрёнок, скорее всего, детёныш бокра. Для русского это очевидно сразу. Иностранцу придётся сначала выучить русский. Фраза показывает, что язык — это НЕ СЛОВА. Слова легко переходят из одного языка в другой. Язык  это принципы, по которым слова связываются друг с другом.

В том, чтобы научиться говорить, ничего сложного нет — проблема это придуманная. А основная причина частых неудач — это то, что люди, как говорится, put the cart before the horse, ставят телегу впереди лошади. Пытаются говорить, не разобравшись, как связываются слова в языке. Это как пытаться бегать, не научившись ходить.

Не будем обсуждать уровень руссо туристо, когда говорят наполовину инфинитивами, наполовину знаками — это вообще не язык, строго говоря. Под умением «говорить» подразумеваются три уровня:

1-й уровень: можем по-простому, но грамматически правильно выразить мысли. Например, не зная выражения «прикрой форточку», говорим проще: «закрой окно, но не до конца».

2-й уровень: говорим на конкретные темы именно теми фразами, которые используют носители языка («прикрой форточку»).

Есть реальная история про русского математика, который читал лекцию на английском в Оксфорде. Упоминал степени, корни, дроби и прочие математические штуки, которые не каждый переводчик сумеет описать без подготовки. После лекции к нему подошла студентка и обратилась с простой разговорной фразой. Математик улыбнулся: «Sorry, I don’t speak English». То есть говорил-то он неплохо, но только на одну тему — описание математических формул и действий.

Читать далее
Total votes 35: ↑31 and ↓4+36
Comments76

Оптимизация времени запуска iOS-приложений

Reading time23 min
Views14K
«В картах у нас есть такой сценарий: на ходу достать телефон, запустить приложение, быстро определить, где я нахожусь, сориентироваться по компасу, куда мне идти, и убрать телефон.

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




В основу данного материала легло выступление Николая Лихогруда, руководителя разработки мобильных Яндекс.Карт для iOS, на конференции Mobius 2017.

likhogrud уже написал пост на эту тему в блоге Яндекса, но мы не могли не выпустить один из лучших докладов конференции. Здесь есть и видео, и текст под катом, и презентация смотрите, как вам удобнее.
Total votes 43: ↑42 and ↓1+41
Comments4

RxSwift: немного о share(), replay(), shareReplayLatestWhileConnected() и других классных операторах

Reading time3 min
Views14K
Я уже писал про Publish, Connect и RefCount в RxSwift. Для того, чтобы лучше раскрыть тему, представляю вашему вниманию перевод другой замечательной статьи, про различия между такими операторами, как share(), replay(), replayAll(), shareReplay(), publish() и shareReplayLatestWhileConnected().

Частая ошибка, которую совершают новички, взявшиеся за освоение Rx — это непонимание того, что цепочка операторов на Observable выполняется заново с каждым новым подписчиком:

let results = query.rx.text
    .flatMapLatest { query in
        networkRequestAPI(query)
    }
results.subscribe(...)   // один запрос в сеть
results.subscribe(...)   // другой запрос

Мы имеем несколько подписчиков на один-единственный Observable, но мы не хотим, чтобы его код исполнялся с каждым новым Subscriber'ом. Для этого в RxSwift имеется несколько операторов. Вот резюмирующая табличка, описывающая каждый из них:

image
1 — ретранслирует произведенных до подписки элементов не больше, чем bufferSize.
2 — ретранслирует 1 элемент, произведенный до подписки, до тех пор, пока существует хотя бы один подписчик.

Читать дальше →
Total votes 7: ↑6 and ↓1+5
Comments2

SimSim, откройся

Reading time5 min
Views6.2K
imageПривет!

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

Мы с коллегами какое-то время эксплуатировали вышеупомянутое творение, а потом утомились и перестали.
Читать дальше →
Total votes 13: ↑13 and ↓0+13
Comments5

Все для watchOS

Reading time4 min
Views6.7K


Мы обратили внимание на активную работу по приложениям для watchOS выпускника нашего Акселератора, решили не отставать и поспособствовать активному использованию новой платформы.

Ниже представлен список фреймворков, библиотек и примеров приложений для watchOS.
Читать дальше →
Total votes 14: ↑13 and ↓1+12
Comments1

Как улучшить свой стиль программирования?

Reading time6 min
Views139K

Исповедь 1


Я — разработчик. От своих работодателей я постоянно слышу, что работаю медленно и часто всё усложняю без веской причины. И что мне пора бы что-то с этим сделать. Во избежание.

Весь мой опыт программирования складывается из университетских работ и пары лет пребывания в различных компаниях. Критикующие меня люди неоднократно говорили мне, что в целом я разбираюсь в теме, так что я далеко не клинический случай, как можно было подумать. Однако, очевидно, я выработал совсем не те программистские привычки (как минимум, на взгляд работодателя) и мне нужно срочно изменить их. Везде, где бы я ни работал, мои решения, использующие иерархии мелких классов с делегированием поведения, признавались плохими. Говорят, будто так и надо писать, но это не так. Потому что всё это «как надо» может стоить мне работы.
Читать дальше →
Total votes 235: ↑202 and ↓33+169
Comments248

Seagate GoFlex Satellite: беспроводной винчестер для iPad и не только

Reading time7 min
Views12K
Минувшей весной Seagate анонсировала очень необычный внешний жесткий диск GoFlex Satellite. Казалось бы, придумать что-то новое в этом жанре практически невозможно, потому что все комбинации из кабеля, коробочки и винчестера уже перепробованы. Но Satellite радикально отличался от собратьев наличием собственного аккумулятора и WiFi-модуля, превращающих его в полезного спутника для планшетного компьютера или смартфона. Особенно если владелец таковых любит посмотреть в дороге кино. В Штатах и Европе Satellite появился в продаже еще летом, а официальные поставки в нашу страну начались буквально несколько дней назад. Экземпляр из первой партии попал ко мне в руки достаточно надолго, чтобы составить о нем впечатление.

Seagate GoFlex Satellite
Читать дальше →
Total votes 52: ↑46 and ↓6+40
Comments38

Будни интернет-магазина: почему товара нет в наличии?

Reading time5 min
Views18K
Наверняка, каждый кто делает покупки онлайн сталкивался с ситуацией когда товар есть на сайте, но по факту выясняется что его у интернет-магазина нету. Особенно обидно, когда на сайте интернет-магазина возле товара большими буквами написано Есть в наличии. И еще обиднее, когда менеджер магазина, получив заявку через корзину на товар, которого нет в наличии, даже не удосужился перезвонить.

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

В этой статье я опишу почему это не работает и как с этим бороться.
Читать дальше →
Total votes 51: ↑43 and ↓8+35
Comments84

Экспорт дней рождения из ВКонтакте (работа с OpenAPI)

Reading time2 min
Views30K
imageЛично я не любитель соцсетей, а в особенности — вконтакте, из-за которого у меня было немало времени, потраченного впустую. Собственно поэтому в свое время я решил из него удалиться. Но в определенный момент я понял, что контакт служил не только местом , где можно было с утра до ночи нажимать F5 на странице Новостей для общения, но также сервисом, благодаря которому я мог вовремя узнавать о днях рождения друзей и, таким образом, поддерживать с ними хорошие отношения.

Таким образом, была поставлена задача: экспорт календаря в внешний сервис (в моем случае — Google Calendar). Используется родной API, поэтому все работает быстро и без багов. Кому интересно — прошу под кат.
Читать дальше →
Total votes 81: ↑67 and ↓14+53
Comments69

Несколько нестандартных способов использования Dropbox

Reading time2 min
Views6.6K
Есть большое множество способов использования Dropbox. Dropbox изначально предназначался для бекапа и шаринга файлов, но в дальнейшем пользователи начали находить новые области применения данного сервиса. Вот некоторые из них, о которых вы, возможно, еще не знаете.

Dropbox
Читать дальше →
Total votes 148: ↑99 and ↓49+50
Comments110

Основы программирования под Android на примере игры Судоку

Reading time6 min
Views375K
В статье описаны основные трудности создания приложений под Android.
Рассматриваются базовые понятия программирования Android.
Для примера описано создание игры Sudoku из книги Hello, Android – Ed Burnette.
Осторожно много скриншотов.

Читать дальше →
Total votes 137: ↑131 and ↓6+125
Comments48

Не нужно бояться Core Data

Reading time11 min
Views34K
Давно подметил, что среди многих своих коллег по цеху присутствует некоторая подозрительность и даже в некотором роде неприязнь к Core Data, причем некоторые к фреймворку даже и не притрагивались. Чего уж там, и я в начале своего пути освоения новой платформы относился к нему предвзято, пойдя на поводу у подобных комментариев. Но не стоит поддаваться предрассудкам и мифам, не потрогав продукт самостоятельно. Тем из нас, кто пошел «против системы», но еще не постиг инструмент полностью, я и посвящаю эту статью. На основе небольшого примера, основанного на реальной задаче разработки мобильного клиента нашей социальной сети Мой Мир, я хочу рассказать о некоторых «подводных» камнях и заострить внимание начинающего разработчика на важных моментах оптимизации использования Core Data. Предполагается, что читающий уже имеет представление, для чего нужны основные элементы Core Data (NSManagedObjectContext, NSPersistentStoreCoordinator и т.д.) и хотя бы поверхностно ознакомлен с API.

Наш кейс: необходимо разработать приложение, позволяющее хранить и структурировать большой объем фотографий с различной метаинформацией о них. Для этого нам потребуется Core Data… и все.

Core Data rulezzz!
Читать дальше →
Total votes 55: ↑41 and ↓14+27
Comments27

Как обсуждать деньги на собеседовании, если вы кого-то нанимаете и немного про работу с людьми

Reading time8 min
Views85K
Друзья, спасибо за комментарии к статье “Как обсуждать деньги на собеседовании: стратегия переговоров для соискателя”. В перерыве между тренингами нам удалось поймать Дмитрия Коткина, руководителя наших переговорных программ, чтобы он осветил тему обсуждения денег на собеседовании со стороны нанимателя:



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

А под катом ответы на вопросы в статьях про обсуждение денег + небольшое размышление о том, почему возникает чувство несправедливости при пересмотрах зарплат.
Читать дальше →
Total votes 105: ↑96 and ↓9+87
Comments55

Игры для NES/Famicom/Денди глазами программиста

Reading time5 min
Views119K
Это пост про ограничения старых видеоигр. Сам я под NES никогда не программировал, но с архитектурой поверхностно познакомился. Теперь я не могу играть в игры для NES, не задумываясь, как же они устроены. Иногда это на столько вызывает восхищение, что невольно забываешь про саму игру. «Чему же там восхищаться?», — скажете вы. Да просто укладываться во все ограничения NES, но при этом делать игру красивой, — это действительно целое искусство.

Сейчас я постараюсь рассказать об этом вам, максимально всё упростив.
Читать дальше →
Total votes 236: ↑236 and ↓0+236
Comments81

Путь фрилансера. Часть 1. Советы новичкам

Level of difficultyEasy
Reading time11 min
Views244K


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

Заметив тенденцию на спрос постов по тематике фриланса подумал, что, пожалуй, пора и мне внести свою лепту по этой тематике. Много чего уже было сказано, но, на мой взгляд, не всегда конкретизировано в конкретные пункты.

Вкратце в двух словах о себе и прочем чтобы пост имел некоторую большую содержательность: на фрилансе 3 последних года с копейками. Работаю не один. Команда. Объединены интернетом и рамками СНГ. Большинство никогда не видел и даже с ними ни разу не созванивался. Офиса нет. С одним из таких граждан общаюсь и работаю уже лет 5-6. Как это ни странно барьером это не послужило. Знакомых, друзей, бывший сотоварищей по работе в команде нет и никогда не было, как и не было этой самой другой работы. Да, есть и такие странные люди на свете, кто никогда не работал в офисе и ничем иным не занят и это ни разу мне не помешало, а скорее наоборот.

Как я «докатился до такой жизни» и всю иную историю, предысторию и реалии опишу как-нибудь в другой раз, если сообщество посчитает это нужным (на этот случай предусмотрен опрос). А сейчас перейдём к тому, что и было запланировано.
Читать дальше →
Total votes 76: ↑63 and ↓13+50
Comments51

Ломаем iOS-приложение. Часть 1

Reading time13 min
Views73K
Вы хорошо поработали, и вот ваше приложение в App Store!

  • Храните учётные записи юзеров?
  • Используете встроенные покупки?
  • Не хотите показывать своё ноу-хау?

Повод задуматься о безопасности кода и данных! Мы будем искать уязвимости в тестовом приложении. В этой статье поговорим о безопасности данных, а в следующей — перейдём к коду.
Много текста и картинок
Total votes 63: ↑51 and ↓12+39
Comments22

Apple App Store. Получаем ERN

Reading time4 min
Views28K
Перед загрузкой приложения на ревью в Apple App Store нам задают неожиданный вопрос, а не использует ли наше приложение криптографию?

image

И хотя соблазн ответить «нет» и загрузить наконец-то очень велик, и кто-то тихо шепчет, что ты мог и забыть про https или вообще не знать, как он работает, но совесть советует разобраться и в этом.
У меня много сил ушло, чтобы получить ERN(Encryption Registration approval from BIS), и я решил написать инструкцию.
Получаем ERN
Total votes 64: ↑63 and ↓1+62
Comments26

Continuous Integration в XCode5

Reading time2 min
Views13K
В пятой версии XCode появился Continuous Integration. Он работает через XCode службу OS X Server ($20, AppStore).

XCode Service умеет все тоже что и любой Continuous Integration сервер, возможно чуть меньше. Огромный плюс — полная интеграция с XCode и свойственная Apple «работа из коробки». Я запустил авто-сборку проекта за полчаса, хотя раньше ни разу не настраивал CI сервер. И не нужно курить мануалы как правильно собирать приложение из командной строки, как включить эмулятор или запустить тесты на устройстве.

xcode continuos integration
подробнее о возможностях
Total votes 23: ↑19 and ↓4+15
Comments16

Локализация приложений для iPhone: как получить на 767% больше загрузок с помощью перевода ключевых слов

Reading time11 min
Views26K
Все разработчики для iOS мечтают попасть в Топ-10 App Store. Профессиональная локализация — путь к успеху. Проблемы, которые могут повстречаться на пути, самые разнообразные — забытая на старте проекта локализуемость, плохой переводчик, “кривое" тестирование локализации.

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

Переведено в Alconost.


Читать дальше →
Total votes 38: ↑35 and ↓3+32
Comments1

Преодолеваем скрытые опасности KVO в Objective C

Reading time21 min
Views26K
The major difference between a thing that might go wrong and a thing that cannot possibly go wrong is that when a thing that cannot possibly go wrong goes wrong it usually turns out to be impossible to get at or repair.
— Douglas Adams


Objective C существует уже с 1983 года и является ровесником C++. Однако, в отличие от последнего он начал приобретать популярность только в 2008 году, после выхода iOS 2.0 — новой версии операционной системы для революционного iPhone, включавшей приложение AppStore, позволяющее пользователям приобретать приложения, создаваемые сторонними разработчиками.
Дальнейший успех Objective C обеспечивался не только популярность устройств на базе iOS и относительной легкостью продаж через AppStore, но и значительными усилиями компании Apple по совершенствованию как стандартных библиотек, так и самого языка.
Согласно рейтингу TIOBE к началу 2013 года Objective C обогнал по популярности C++ и занял третье место, уступая только C и Java.

На сегодняшний день Objective C включает и такие относительно старые функции как KVC и KVO, существовавшие еще за 4 года до выхода первого iPhone, и такие новые возможности как блоки (blocks, появившиеся в Mac OS 10.6 и iOS 4) и автоматический подсчет ссылок (ARC, доступный в Mac OS 10.7 и iOS 5), которые позволяют с легкостью решать задачи, вызывавшие серьезные трудности ранее.

KVO — это технология, позволяющая незамедлительно реагировать в одном объекте (наблюдателе) на изменения состояния другого объекта (наблюдаемого), без внесения знаний о типе наблюдателя в реализации наблюдаемого объекта. В Objective C, наряду с KVO, существует несколько способов решения этой задачи:

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

Information

Rating
Does not participate
Location
Новосибирск, Новосибирская обл., Россия
Registered
Activity