В этом посте я хочу подробно рассказать о моём опыте переезда на работу PHP-разработчиком в Германию — от момента, когда есть просто желание переехать, но не знаешь что и как делать, до момента, когда уже переехал, вселился в квартиру и получил вид на жительство. Кроме того, в конце поста я приведу немного полезной информации и ссылок по переезду в некоторые другие страны.
Ещё с универа я понимал, что в Украине ловить нечего и надо валить. В течение нескольких лет я исследовал вопрос эмиграции: читал блоги, форумы, сообщества, общался с друзьями и знакомыми, которые могли мне рассказать что-то новое и, естественно, за это время, учитывая и сам переезд, у меня накопился определённый багаж информации, которым и хочется поделиться.
Итак, если вы имеете IT-шное образование и вам интересна идея сваливания из печальной пост-совковой реальности, прошу под кат.
Сегодня, я хочу рассказать о том как сделать свое хобби по разработке Android-приложений пусть небольшим, но официальным бизнесом. О том, как легально получать деньги, заработанные на Google Play, о «страшном» валютном контроле и «таинственном» паспорте сделки.
Многобукв?Что ж, почему бы вам не посмотреть пятисекундное видео с котенком, засунувшим голову в рулон туалетной бумаги, или не прочитать 140-символьное описание блюда, которым ваш друг набил себе рот. «Ням-ням». Этот пост не для вас.
В рабочем кабинете зазвонил телефон. Это был один из школьных секретарей. Он сообщил, что пришел посетитель, которому нужно подключиться к школьной WiFi сети. Взяв iPad, я рысью бросился вниз в приемную, где увидел молодую особу двадцати с лишним лет, сидящую в кресле с MacBook-ом на коленях.
Я улыбнулся и представился, присаживаясь рядом с ней. Она молча вручила мне MacBook, и выражение ее лица сказало всё: «Почини мой компьютер, гик, и побыстрее». Меня путали с техником достаточное количество раз для уверенного распознавания этой гримасы.
— Придется поторопиться. Через 5 минут у меня урок, — сказал я.
— Вы преподаете?
— Это моя работа, просто так получилось, что также приходится управлять командой специалистов по сетям.
Она изменила свое отношение ко мне. Вместо безликой, щелкающей по клавиатуре, социально неприспособленной, сексуально неопытной сетевой обезьяны, теперь она увидела во мне коллегу. Для людей вроде нее, техники являются необходимым неудобством. Она бы и рада игнорировать их, шутить о них за глаза или посмеиваться открыто, но знает, что когда не сможет отобразить ее PowerPoint на интерактивном экране — ей понадобится техник, так что прячется за фасадом вежливости и в то же время внутренне отвергает общение с ними, поскольку они слишком странные, чтобы иметь с ними дело.
Я посмотрел на MacBook. На тот момент у меня не было опыта с OS X. Но Джобс не был идиотом, и то, что отображалось в верхнем правом углу экрана, было общеизвестным символом WiFi. Чтобы подключить устройство к сети, мне понадобилось несколько секунд.
Вручил MacBook обратно, и женщина открыла Safari. «Интернет не работает», заявила она с презрением.
Я столько раз слышал эту фразу от учеников и персонала, что у меня уже заготовлена стандартная реакция. Обычно я достаю сотовый телефон, делаю вид, что набираю номер. И подняв трубку к уху, говорю: «Да, соедините меня с офисом Президента Соединенных Штатов… НЕТ, Я НЕ МОГУ ПОДОЖДАТЬ, это чрезвычайное происшествие… Алло, Мистер Президент, боюсь у меня плохие новости. Меня только что проинформировали, что Интернет не работает».
Но я решил, что молодая женщина, наверное, не оценит сарказм, и забрал MacBook обратно, чтобы добавить настройки прокси-сервера. Без каких-либо идей, как это сделать в OS X. Прокси у нас используется, чтобы убедиться, что персонал и ученики не могут получить из школьной сети доступ к порно. Также он фильтрует насилие, экстремизм, ругательства, социальные сети, алкоголь, курение, хакерство, игры и потоковое видео. Забавно, что когда вы ищете в Google «proxy settings OSX», результаты выдачи будут заблокированы, поскольку содержат слово «proxy», а оно фильтруется.
«Вы не знаете, где здесь настройки прокси?» — спросил я с надеждой.
Ответа я не получил. С тем же успехом можно было спросить у нее «Не подскажете, как мне ретикулировать сплайны с использованием гексагональной системы декодирования, чтобы я мог создать GUI на VisualBasic и отследить IP-адрес?»
Настройки прокси я нашел и заполнил за десять секунд. Вернул ей MacBook, и она, буквально, закрыла Safari и открыла его заново, вместо того, чтобы обновить страницу. «Пасиб…». Благодарность была ошеломляющей.
Я уже уходил, когда она меня остановила. «PowerPoint не работает».
Обычная скорость чтения на русском языке составляет 120—180 слов в минуту. С помощью долгих тренировок можно повысить её где-то до 600 слов в минуту. Совсем недавно небольшой стартап из Бостона представил новую технологию под названием Spritz.
Мне удалось без подготовки читать со скоростью 500 слов в минуту. Разработчики утверждают, что можно достигнуть 1000; без ущерба для смысла. Более того, утверждается, что использование Spritz также увеличивает скорость чтения обычных текстов.
Вероятно, теперь можно ожидать появления устройств с крошечными экранами, которые составят конкуренцию традиционным электронным книгам. Очень рекомендую ознакомиться с демкой на сайте.
Компьютерный покер является весьма нетривиальной задачей в первую очередь из-за громадного количества игровых состояний, которое настолько велико, что мечтать о непосредственном решении этой игры не приходится. Единственным способом хоть как-то научить машину играть в покер является переход к абстракции — уменьшенной копии покера, в которой близкие в стратегическом смысле ситуации исходной игры объединены воедино. Именно вопросам абстракций в покере и посвящена данная заметка.
В связи с известными событиями, а именно, началом работы ровера Curiosity на красной планете, вновь обострились конспирологическиенастроения в интернетах, равно как и среди обитателей хабра.
Где-то здесь же упоминалось о некой, согласно словам комментаторов, «желтоватой» статье, с объяснением, что небо на любой планете не может быть постоянно красноватым. Конкретно той статьи не видел, так что если она на хабре — то заранее пардон за потенциальную возможность дублирования.
Настороженно отношусь к непрофильным топикам, но решил написать этот по следующим причинам:
У жонглирования есть своя теория — стройная и математически привлекательная!
Мы живем не только работой. Жонглирование — отличное развлечение и разминка после долгого сидения за компом.
В пятницу приятно немного расслабиться и почитать не очень серьезные статьи. К тому же, будет чем заняться на выходные, особенно если у вас не было определенных планов.
Теория
Утверждать, что жонглирование — это последовательность бросков, все равно, что сказать, что музыка — это просто последовательность нот. Нельзя назвать это неправдой, но любой, хоть немного знакомый с музыкальной теорией, возмутится последним определением — столь поверхностным и недалеким.
Eric Ligman, Директор по партнерским программам компании Microsoft, опубликовал в блоге ссылки на большую бесплатную коллекцию книг Microsoft по самым разным направлениям: SharePoint, Visual Studio, Windows Phone, Windows 8, Office 365, Office 2010, SQL Server 2012, Azure, Cloud, Lync, Dynamics CRM и т.д.
Приложения дополненной реальности становятся все более популярными. Рано или поздно, но кто-нибудь в России обязательно выпустил бы SDK для создания таких приложений. И вот, это произошло — российская компания Sectar выпустила свой продукт Swarp SDK для создания таких приложений на платформе .NET. Далее я опишу Swarp и покажу, как быстро и просто создать свое AR-приложение.
Не знаю, все ли программисты всесторонне любознательные люди, но я всегда пытаюсь получить фундаментальные знания во всех областях, которые могут быть практически полезны. В то время, когда мне в голову пришла эта идея я изучал анатомию и физиологию по журналам «Тело человека. Снаружи и внутри», ну а по работе я занимался стерео-варио фотографиями (для тех кто не знает — были такие советские календарики с ребристой поверхностью, где картинка либо казалась объемной, либо менялась). Так вот, в один из вечеров мне пришла в голову замечательная идея, которую я на протяжении уже 4х лет использую для поддержания своего зрения. Обещаю, что эффект почувствуете сразу!
Из-за технических накладок я не смог показать некоторые из подготовленных материалов. В этой статье я постараюсь рассказать о подготовке к публикации и самом процессе публикации приложения.
На днях увидел этот пост со списком материалов по разработке под Windows Phone, и, к сожалению, не встретил там ни одной статьи по разработке приложений с использованием как Silverlight, так и XNA одновременно. Эта замечательная возможность для разработчиков появилась с приходом Mango.
Мне захотелось заполнить этот пробел и рассказать вам о следующем:
Использование Silverlight и XNA на одной странице
Простейшая обработка жестов в XNA
Основы работы с камерой в XNA
Пример из этой статьи может быть знаком посетителям первого потока вечерней школы Стаса Павлова.
Давайте сначала посмотрим, что нам даёт использование Silverlight и XNA в одном приложении.
Если вы матерый программист под платформу .NET и вам неинтересно понастальгировать о временах становления, а также узнать, как там, например, у Яндекса с культурой .NET-разработчиков, а также вы уже зарегистированы в маркетплейсе — эта статья не для вас. Если же вы все тот же матерый программер, но не зарегистированы в маркетплейсе и при этом считаете грабежом отдавать десять процентов прибыли «Софткею», вам будут интересны актуальные данные по регистрации в конце статьи в разделе «Регистрация». Всем остальным: приятного чтения.
В этой статье я подробно расскажу и покажу, как правильно и быстро прикрутить распознавание русской речи на движке Pocketsphinx (для iOS порт OpenEars) на реальном Hello World примере управления домашней техникой.
Почему именно домашней техникой? Да потому что благодаря такому примеру можно оценить ту скорость и точность, которой можно добиться при использовании полностью локального распознавания речи без серверов типа Google ASR или Яндекс SpeechKit. К статье я также прилагаю все исходники программы и саму сборку под Android.
Пусть мы хотим вычислить десятимиллионное число Фибоначчи программой на Python. Функция, использующая тривиальный алгоритм, на моём компьютере будет производить вычисления более 25 минут. Но если применить к функции специальный оптимизирующий декоратор, функция вычислит ответ всего за 18 секунд (в 85 раз быстрее):
Дело в том, что перед выполнением программы интерпретатор Python компилирует все её части в специальный байт-код. Используя метод, описанный хабрапользователем SkidanovAlex, данный декоратор анализирует получившийся байт-код функции и пытается оптимизировать применяющийся там алгоритм. Далее вы увидите, что эта оптимизация может ускорять программу не в определённое количество раз, а асимптотически. Так, чем больше будет количество итераций в цикле, тем в большее количество раз ускорится оптимизированная функция по сравнению с исходной.
Эта статья расскажет о том, в каких случаях и каким образом декоратору удаётся делать подобные оптимизации. Также вы сможете сами скачать и протестировать библиотеку cpmoptimize, содержащую данный декоратор.
Звук является колебаниями определённой частоты, которые распространяются в окружающем источник пространстве. Эти волны достигают находящиеся рядом объекты и заставляют их испытывать вибрации. Группа исследователей Массачусетского технологического института сумела на основании этих вибраций, видимых на видеозаписи, частично восстановить исходный звук с некоторыми искажениями.
В работе Эйб Дэвис, Майкл Рубинштейн, Нил Вадхва, Гаутам Майсор, Фредо Дуранд и Уильям Фриман использовали камеру, записывающую видео с частотой несколько тысяч кадров в секунду, и такие распространённые и подверженные вибрациям предметы, как фольга пакета чипсов, листья комнатного растения, грань коробки с салфетками или стакан с водой. Найти подобную видеокамеру в быту будет достаточно сложно, но их другая техника показала, что восстановление звука возможно и с помощью обычной записи частотой 60 кадров в секунду.
Качество восстановленного звука позволяет разделять отдельные слова и имеет относительно высокие показатели отношения сигнал-шум. Восстановленные аудиозаписи даже позволяют смутно различать речь человека или использовать сервисы распознавания музыки.
Процессинговая компания Stripe анонсировала новую валюту Stellar.
Валюта базируется на открытом коде от Ripple, поэтому унаследовала от последнего многие черты. Это децентрализованный протокол для выполнения финансовых операций, который можно использовать для отправки денег в любую точку мира, в любой паре валют. К примеру, протокол поддерживает отправку денег в долларах, а получение в евро. Исходный код всех компонентов открыт, использование абсолютно бесплатно. Stellar, как и Ripple, призван устранить разрыв между криптовалютами и фиатными деньгами, позволяя легко осуществлять переводы между ними. По сути, это распределённая глобальная валютная биржа.
Но самое интересное заключается в том, что создатели бесплатно раздают валюту всем желающим. Вы тоже можете получить свою часть.
Продолжаю вести серию отчетов по исследовательской работе, которую проводил на протяжении нескольких месяцев, обучаясь в университете и в первые месяцы после защиты диплома. За все время работы многие элементы системы, которую разрабатывал, прошли переоценку и вектор работы в целом серьезно изменился. Тем интереснее было взглянуть на свой предыдущий опыт и опубликовать нигде не изданные ранее материалы с новыми замечаниями В данном отчете публикую материалы, почти 2-х летней давности со свежими дополнениями, которые надеюсь еще не потеряли свою актуальность.
На основе накопленного опыта в предыдущих исследовательских работах, осуществить пробную интеграцию видео-расширения в систему аудио-распознавания речи, провести протоколы испытаний, сделать выводы.
Задачи:
Рассмотреть подробно как можно интегрировать видео-расширение с программы распознавания речи, исследовать сам принцип аудио-видео синхронизации, а также осуществить пробную интеграцию разрабатываемого видео расширения в систему аудио распознавания речи, оценить разрабатываемое решение.
Введение
В ходе проведения предыдущих исследовательских работ были сделаны выводы целесообразности использования аудио-систем распознавания речи на базе открытого и закрытого исходного кода под наши цели и задачи. Как было нами определено: реализация своей собственной системы распознавания речи является очень сложной, трудоемкой и ресурсозатратной задачей, которую сложно выполнить в рамках данной работы. Поэтому нами было решено интегрировать представленную технологию видео-идентификации в системы распознавания речи, которые имеют для этого специальные возможности. Так как системы распознавания речи с закрытым исходным кодом реализованы более качественно и точность распознавания речи в них выше за счет более емкого содержания словника, то поэтому интеграция нашей видео-разработки в их работу следует считать более перспективным направлением, по сравнению с аудио системами распознавания речи на базе открытого исходного кода. Однако же необходимо иметь в виду тот факт, что системы распознавания речи с закрытым исходным кодом часто имеют сложную документацию для возможности интеграции сторонних решений в их работу с серьезными ограничениями использования системы на основе лицензионного соглашения или же это направление является платным, то есть необходимо покупать специальную лицензию на использование речевых технологий, представленных лицензиантом.
Для начала в качестве эксперимента было принято решение попробовать улучшить качество распознавания речи системы распознавания речи Google Speech Recognition API за счет работы нашего разрабатываемого видео расширения. Замечу, что на время проведения испытаний у Google Speech API на базе браузера Chrome еще не было функции распознавания непрерывной речи Google, которая в то время уже встраивалась в технологию распознавания непрерывной речи Speech Input на базе ОС Android.
В качестве видео обработки за основу взято наше решение по анализу движения губ пользователя и алгоритмам фиксирования фазы движения точек в объекте интереса совместно с аудио обработкой. С тем, что в конечном итоге получилось можно ознакомиться ниже.