Пользователи создают учетные записи, активируют их, а затем сохраняются, когда многократно запускают приложение. Обычно пользователю не нужно повторно вводить пароль для Android-приложения в течение многих лет, то есть до тех пор, пока он не купит новый телефон.
Покупка нового телефона — это редкое событие для многих людей, может пройти несколько лет между обновлением устройств. Существует несколько инструментов, которые помогут пользователям войти в систему, когда они будут использовать приложение на новом телефоне. Читать дальше →
В этой статье описан алгоритм консенсуса BCA (Byzantine Consensus Algorithm), используемый в Tendermint. Разработанный на основе протокола DLS, он не требует никакого "активного" майнинга, как в Proof-of-Work, и может обеспечить безопасную работу сети при наличии как минимум 2/3+ (строго больше чем две трети) "честных" участников сети. Ниже рассказно о том, как этот алгоритм реализован в Tendermint, приведена статистика его работы и смоделировано поведение алгоритма на небольшой сети из пяти участников.
В предыдущем материале мы заглянули в прошлое, вспомнили, с чего начиналась эра SSD и как твердотельные накопители менялись со временем, превратившись из громоздких и зачастую нерентабельных устройств в must-have для любого профессионала и энтузиаста. Настала пора устремить взор в будущее: сегодня мы поговорим о 3D XPoint — энергонезависимой памяти, разработанной Intel и Micron. Каковы возможности чипов и действительно ли новая технология способна перевернуть индустрию с ног на голову? Попробуем разобраться вместе. Читать дальше ->
Современная мобильная аудитория с каждым годом предъявляет всё более высокие требования к качеству приложений и сервисов. И в первую очередь это касается проектирования взаимодействий и мобильных анимаций.
Каждый день мы обмениваемся сообщениями, используем социальные сети, мессенджеры, и многие из этих сервисов содержат десятки нестандартных продуманных анимаций.
Кастомные (нестандартные) анимации — это большое поле для экспериментов и развития приложения. Какие знания понадобятся дизайнеру и какие проблемы могут поджидать в процессе разработки? Давайте рассмотрим эти вопросы на примере приложения iFunny. Читать дальше ->
Мне хотелось поделиться собственными размышлениями и способом построения структуры приложения с использованием react-redux. Так как я относительно недавно стал писать код на JS и поэтому не претендую на истину и на действительно верный способ разработки. Надеюсь эта статья поможет начинающим разработчикам писать меньше костылей которые я усердно плодил в своем проекте. Продвинутым гуру в JS я думаю не скажу ничего нового, но пишите в комментариях все что думаете по этому поводу.
Основные принципы и советы по JS
Не считаю что чем больше кода, тем лучше. Более короткий код, на мой взгляд, легче читается и выглядит более изящным. Если что то можно написать короче, при условии что оно работает таким же образом, то я делаю это.
Ничего плохого в том чтобы писать кучу условий на проверку тех или параметров, но если условия никогда не будут работать это плохо и это лишний код, который загрязняет проект.
Пример:
checkImg(user) {
if (!user) return;
...
var src = user && user.profileImageURL;
...
return(
...)
}
Необходимость патентования изобретений для бизнеса освещена чуть ли не в каждой второй статье об интеллектуальной собственности. Но что же делать, когда необходимо защитить продукт компании, а при разговоре с разработчиками ответы один содержательнее другого: «я просто улучшил код», «ничего нового тут нет», «я просто фиксил баги», «мне это не интересно» и «отстань от нас, мы уже все предложили» т.д.? Рецепты под катом. Читать дальше ->
Песни нынче поют всякие. Простые и сложные, веселые и грустные, но без штатного переводчика нам не успеть перевести все горячие новинки для раздела «Песни» на нашем сайте. Искать мы его решили на “хэ хэ ру” (именно так они называют себя в своей рекламе). В качестве тестового задания взяли композицию Written in the Sand от Old Dominion. 361 соискатель охотно переводили данные им три первых куплета. Тысячи просмотров вакансии определяли живой интерес к ней.
В параллельном программировании в Swift: Основы Я представил множество низкоуровневых способов для управления параллелизмом в Swift. Первоначальная идея состояла в том, чтобы собрать все различные подходы, которые мы можем использовать в iOS в одном месте. Но при написании этой статьи я осознал, что их слишком много, чтобы перечислить в одной статье. Поэтому я решил сократить методы более высокого уровня.
Я упомянул Operations в одной из моих статей, но давайте рассмотрим их более внимательно. Читать дальше ->
Вместе с увеличением числа подключаемых к сетям устройств и объемам генерируемых ими данных растут и требования к пропускной способности сетевых инфраструктур. Основную нагрузку по передаче трафика практически во всех сетях сегодня несут волоконно-оптические системы. Причем наиболее экономически привлекательными, особенно для связи на небольшие расстояния, остаются решения на основе многоводового волокна (ММВ). Недавно, вместе с разработкой широкополосного ММВ и технологии SWDM, появились принципиально новые возможности по повышению пропускной способности систем на базе ММВ.
Напомним, что светонесущий сердечник в многомодовом волокне имеет диаметр примерно в шесть раз больше, чем в одномодовом (ОМВ). Это облегчает выравнивание и центровку волокон – важная задача, возникающая перед разработчиками соединителей, а также источников и приемников световых сигналов. Во многом именно поэтому ММВ стало первым типом волокна, которое начало использоваться в сетях связи – еще в начале 80-х годов прошлого века. И только в конце 80-х, когда стало возможным обеспечить центровку с точностью порядка микрона и появились лазерные диоды, в сетях связи стало широко применяться одномодовое волокно.
В этом блоге мы в основном говорим о стартап-программах, разработках, перспективах и вообще о том, что ждет нас впереди. А как насчет «акселератора в прошлое»? Полтора года назад в шведском городе Эльмхульте, где начиналась история IKEA, вместо выставки IKEA Through the Ages открылся новый большой музей компании. Приглашаем на экскурсию под кат.
Очень многое из того, чем приходится заниматься IT-службам, связано с тем, что бизнес хочет уйти от привязки к традиционным схемам организации рабочих мест. Только кто-то хочет и делает, а кто-то — застревает в прошлом.
Это вторая из серии статей об инструментах и методах фоновой работы в Android. Ранее уже были рассмотрены AsyncTask, в следующих выпусках — ThreadPools с EventBus, RxJava 2 и корутины в Kotlin.
Мы продолжаем рассказывать про миграцию мобильного сервиса в ASP.NET Core и Docker. В этой статье будет идти речь про модуль WCF-клиента, упомянутый в предыдущей статье, NTLM-авторизацию и другие проблемы при его миграции. Сейчас расскажем, почему нам пришлось немного изучить анатомию и пощупать .NET Core изнутри.
Потихоньку мастер-классы становятся традицией C++ Russia
Впервые мы провели их на прошлой C++ Russia в Москве, потом обкатали на C++ Siberia. В этом году будет четыре мастер-класса. Под катом чуть более подробно о каждом из них. Читать дальше ->
Около года назад я заприметил интереснейшую и увлекательную серию лекций Эдди Мартина, который потрясающе доходчиво, благодаря своей истории и примерам из реальной жизни, а также колоссальному опыту в обучении, позволяет приобрести понимание довольно сложных технологий.
Мы продолжаем цикл из 18 статей на основе его лекций:
Понедельник, 26 Февраля 2018 г. 23:53
+ в цитатник
На собеседованиях очень часто спрашивают о шаблонах проектирования. Даже если вы использовали их каждый день, сложно быстро вспомнить и рассказать своими словами, чем они друг от друга отличаются. Воспользуемся таким приемом мнемотехники, как смешные и нелепые картинки и ассоциации с всем явлениями из реальной жизни, чтобы понимать суть шаблона проектирования.
На самом деле, большинство программистов и так, конечно, знает основные шаблоны проектирования, поэтому это скорее просто, чтобы быстро вспомнить на собеседовании.
Осторожно: пятничный пост (да — в понедельник, но вот такая вот у меня пятницо :) ), под катом смешные и нелепые картинки.
Понедельник, 26 Февраля 2018 г. 22:44
+ в цитатник
Dig Dog — это забавная маленькая видеоигра. Можно назвать её "Spelunky для детей", и не стоит считать это сомнительным комплиментом. Dig Dog, недавно выпущенная для iOS, Xbox, Windows и Mac, отказалась от некоторых сложных элементов жанра, имеет плавное управление и обладает глубиной. Она похожа на одну из игр современной волны со случайно создаваемыми уровнями, которая как будто пришла с аркадных автоматов начала 80-х.
Мне понравилась Dig Dog, когда я нашёл её на прошлогоднем мероприятии Fantastic Arcade в Остине, штат Техас. Но ещё интереснее мне стала эта игра, когда её автор связался со мной перед её выпуском и рассказал, что ему удалось то, чего не делал ни один разработчик игр до него: он написал всю игру сам… без рук.
Уже, ставший традиционным местом встречи, аналитиков Москвы, ""Клуб Анонимных Аналитиков"" в этот раз, рассмотрит кейсы: Визуализации отчетов, Machine Learning для суровых уральских металлургов, Решение кейса ""Презентация новой системы мотивации"".
27 февраля приглашаем практикующих специалистов по Data Science на митап, посвящённый персонализации пользователей. Вы услышите доклады от представителей Сингапурского Университета Менеджмента, а также Avito.
Понедельник, 26 Февраля 2018 г. 20:28
+ в цитатник
Когда-то мы уже рассказывали о том, как появился и развивался машинный перевод. С тех пор произошло ещё одно историческое событие – его наконец-то покорили нейронные сети и глубокое обучение. Среди задач обработки естественного языка (Natural Language Processing, NLP) машинный перевод одним из первых получил строгое статистическое основание — еще в начале 1990-х. Но в сфере глубокого обучения он оказался относительно запоздавшим участником. В этом посте мы — команда Яндекса по машинному переводу — обсуждаем, почему это заняло так много времени и какие новые возможности открыл машинный перевод на основе нейросетей.
Мы также будем рады ответить на вопросы на встрече «Яндекс изнутри: от алгоритмов до измерений — в Переводчике, Алисе и Поиске» 1 марта (можно зарегистрироваться или задать вопрос в чате трансляции).
Фразовый машинный перевод
Всего три года назад почти все серьезные промышленные и исследовательские системы машинного перевода были построены с использованием конвейера статистических моделей («фразовый машинный перевод», ФМП), в котором нейронные сети не участвовали. Фразовый машинный перевод впервые сделал машинный перевод доступным для массового пользователя в начале 2000-х годов. При наличии достаточного количества данных и достаточных вычислительных ресурсов ФМП позволял разработчикам создавать системы перевода, которые в основном давали представление о смысле текста, но изобиловали грамматическими, а иногда и семантическими ошибками. Читать дальше ->
Понедельник, 26 Февраля 2018 г. 19:07
+ в цитатник
Привет, Хабр.
В этой статье я решил оставить решение проблемы непонятного поведения QTreeWidget – GUI компонента кроссплатформенного фреймворка Qt. Проблема, мне кажется, актуальная, потому что вопрос задаётся на многих форумах, но верного решения не приводится. Впрочем, если я ошибаюсь, НЛО мне об этом сообщит.
Проблема
В Qt есть компонент QTreeWidget, предназначенный для древовидного отображения информации. Элементом или узлом дерева может быть текст с картинкой, или же другой виджет.
В ходе эксплуатации этого компонента у некоторых пользователей возникает проблема, когда текст элемента или узла не помещается в ширину виджета, и компонент при этом не позволяет пользователю скролить содержимое влево/вправо чтобы тот мог прочитать текст целиком. Вместо этого появляется троеточие в конце текста. Проблема встречается в случаях использования виджета с одной колонкой, или с несколькими (тогда проблема возникает в последней колонке).
Никакое свойство класса QTreeWidget или его предков не даёт возможности активировать автоматическое изменение размера области просмотра колонки. Так что, если вы тоже столкнулись с этим недоразумением, прошу под кат.