Search
Write a publication
Pull to refresh
-1
0
Send message

Таймер с ручным запуском

Reading time9 min
Views11K
Привет, Хабр. Данная статья адресована к постигающим искусство Android-разработки, как и я.

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

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

Задача была решена следующим образом.
Читать дальше →

Паттерны React

Reading time10 min
Views137K
Привет Хабр! Предлагаю вашему вниманию свободный перевод статьи «React Patterns» Майкла Чана, с некоторыми моими примечаниями и дополнениями.

Прежде всего хотел бы поблагодарить автора оригинального текста. В переводе я использовал понятие «Простой компонент» как обозначение Stateless Component aka Dump Component aka Component vs Container
Конструктивная критика, а так же альтернативные паттерны и фичи React приветствуются в комментах.

Оглавление
  • Простые компоненты — Stateless function
  • JSX распределение атрибутов — JSX Spread Attributes
  • Деструктуризация аргументов — Destructuring Arguments
  • Условный рендеринг — Conditional Rendering
  • Типы потомков — Children Types
  • Массив как потомок — Array as children
  • Функция как потомок — Function as children
  • Функция в render — Render callback
  • Проход по потомкам — Children pass-through
  • Перенаправление компонента — Proxy component
  • Стилизация компонентов — Style component
  • Переключатель событий — Event switch
  • Компонент-макет — Layout component
  • Компонент-контейнер — Container component
  • Компоненты высшего порядка — Higher-order component

Поехали!
Читать дальше →

Панорамный обзор: Как оценить работу сотрудника

Reading time5 min
Views15K
Чаще всего, когда компании оценивают сотрудников, это подразумевает обратную связь только со стороны непосредственного руководителя. Это помогает понять, насколько качественно сотрудник работает, но такая оценка часто бывает пристрастной. Если же цель шире — помочь человеку лучше понять свои сильные и слабые стороны и определиться с направлением для своего дальнейшего развития, то здесь пригодится фидбэк со стороны всех, с кем сотрудник регулярно общается по работе.

Это стало поводом для поиска более разносторонних подходов, и в качестве одного из решений появился «метод 360 градусов». Он предполагает сбор обратной связи от всего окружения человека или рабочей группы. Метод был придуман 19 лет назад и представляет собой периодический сбор оценок от руководителей, подчиненных и коллег. Несколько лет назад мы начали использовать его в Wrike для обратной связи руководителям, тимлидам и менеджерам по продукту, чтобы определять направления для личного развития. Также метод 360 градусов помогает улучшить взаимодействие в командах, куда пришло много новых сотрудников, или там, где возможны потенциальные конфликты.


Читать дальше →

Не все языки программирования одинаково полезны

Reading time7 min
Views55K


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

По мнению «Википедии», язык программирования — формальная знаковая система, предназначенная для записи компьютерных программ. Язык программирования определяет набор лексических, синтаксических и семантических правил, определяющих внешний вид программы и действия, которые выполнит исполнитель под её управлением.

Какие-то знаковые системы проще для освоения, какие-то сложнее. Однако среди них есть и весьма причудливые. А есть настолько сложные, что осваивают их только самые хардкорные разработчики.
Читать дальше →

Как я писала геймдизайнерскую документацию на свою игру

Reading time5 min
Views23K
В 2015-2016 гг. я задалась задачкой разработать геймдизайнерскую документацию для своей игры, которую хотела бы когда-нибудь сделать. Под катом вы найдете краткое описание того, что мне удалось.



Читать дальше →

Аналитика для геймдизайнеров и продюсеров. Часть I

Reading time8 min
Views37K
Зачем нужна аналитика геймдизайнерам, продюсерам и другим сотрудникам, отвечающим за продуктовую составляющую, качество игры и её контент, за успешность на рынке и бизнес-показатели? В этой статье я расскажу, какие показатели статистики принято анализировать для того, чтобы предотвратить возможные проблемы и повысить выручку.


Читать дальше →

Как устроена MySQL-репликация

Reading time12 min
Views46K
Андрей Аксёнов

Как устроена MySQL-репликация


Андрей Аксенов (Sphinx), shodan


Мой доклад предназначен для тех людей, которые знают слово «репликация», даже знают, что в MySQL она есть, и, возможно, один раз ее настроили, 15 минут потратили и забыли. Больше про нее они не знают ничего.


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


Что такое репликация, в принципе? Это копирование изменений. У нас есть одна копия БД, мы хотим с какой-то целью еще одну копию.


Репликация бывает разных видов. Разные оси сравнения:


  • степень синхронизации изменений (sync, async, semisync);
  • количество серверов записи (M/S, M/M);
  • формат изменений (statement-based (SBR), row-based (RBR), mixed);
  • теоретически, модель передачи изменений (push, pull).

Читать дальше →

Плохой код убивает

Reading time10 min
Views75K
Плохой программист Джон сделал ошибку в коде, из-за которой каждый пользователь программы был вынужден потратить в среднем 15 минут времени на поиск обхода возникшей проблемы. Пользователей было 10 миллионов. Всего впустую потрачено 150 миллионов минут = 2.5 миллиона часов. Если человек спит 8 часов в сутки, то на сознательную деятельность у него остается 16 часов. То есть Джон уничтожил 156250 человеко-дней ≈ 427.8 человеко-лет. Средний мужчина живет 64 года, значит Джон убил примерно 6 целых 68 сотых человека.

Как тебе спится, Джон — серийный программист?

Пользователи — низ пищевой цепочки. Программисты также медленно убивают друг друга.

Правила хорошего кода


Простота-понятность-компактность, производительность, отсутствие дублирования.

Если вы пишете что-то сложнее «hello world”, оно будет размещаться не в одном, а в нескольких файлах. Как правило, файлов бывает больше десятка. Всем им даются непонятные короткие имена (программисты любят сокращения) Человек, который попытается разобраться в вашем коде, будет плеваться, шипеть и проклинать вас. Ваша карма будет испорчена и следующие несколько жизней вы будете собакой в Корее.
Читать дальше →

Компенсация лагов для оружия в MechWarrior Online

Reading time12 min
Views17K


Задержка в сети (лаг) — это реальность, которую нужно учитывать в многопользовательских играх. Сообщениям, передаваемым через Интернет, требуется время, чтобы достичь точки назначения. В зависимости от маршрута и его длины передача этих сообщений может занять довольно долгое время. Это может негативно влиять на процесс игры, особенно в динамичных клиент-серверных играх, таких как FPS. То, что кажется очень простой задачей (стреляй, пытаясь попасть в цель), внезапно становится очень сложным в создании плавного игрового процесса для всех игроков. Думаю, не нужно говорить, что создавать многопользовательские игры сложно, при этом возникает множество проблем, которые разработчики должны решить. В этой статье я расскажу, как система вооружения MechWarrior Online справляется с лагом.
Читать дальше →

Frontend: Разработка и поддержка (+голосование)

Reading time14 min
Views37K


Давайте представим, что вас перевели на новый проект. Или вы сменили работу и о проекте максимум только слышали. Вот вы садитесь за рабочее место, к вам приходит менеджер, жмёт руку и… прямо сходу открывает страницу проекта, тыкает пальцем в монитор и просит вставить «информер о предстоящем событии Х». На этом вы расстаётесь… Что делать? С чего начать? Как создать «информер»? Где найти нужный шаблон? И море других вопросов.

Под катом будет рассказ, как мы стараемся организовать эти процессы, какие инструменты создаём для препарирования SPA. Кроме этого, мы поговорим о технических подробностях реализации Live Coding / Hot Reload и чуток о VirtualDom и React с Angular.

Анатомия веб-сервиса

Reading time19 min
Views29K
Андрей Смирнов

Анатомия веб-сервиса


Андрей Смирнов


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


Какую часть я называю веб-сервисом, бэкендом, application-сервером? В классической архитектуре это то, что стоит за http rеverse proxy или load-балансировщиком, а с другой стороны у него находятся база данных, memcached и др. Вот только об этом бэкенде и будет идти речь.


Техника безопасности при работе с PostgreSQL

Reading time7 min
Views28K
Так получилось, что я начал работать с PostgreSQL три года назад и за это время умудрился методично собрать все возможные грабли, которые можно вообразить. И сказать по правде, если бы была возможность поделиться с собой трехлетней давности нынешним горьким опытом, моя жизнь была бы куда проще и нервные клетки целее. Именно поэтому я решил написать абсолютно субъективную статью со сводом правил, которых придерживаюсь при разработке на PostgreSQL. Возможно, кому-то эта статья поможет обойти собранные мной грабли (и наступить на другие, ха-ха!).


Читать дальше →

Синергетические организации. Часть 0

Reading time5 min
Views12K


Работа… Что для вас значит это слово? Мы тратим более 30% своей жизни на эту деятельность, и если вам уже за 30, то вы точно знакомы с прокрастинацией, монотонностью и безысходностью исполнения обязанностей согласно должностной инструкции. Мы отдаем этой деятельности лучшие годы своей жизни, порой жертвуя отношениями с близкими, здоровьем, а иногда и собственным талантом. Кто-то исполняет роль наемного сотрудника, другой выступает в роли босса, но много ли среди них счастливых людей? Счастливых именно на работе, а не дома, в отпуске или на том свете? Автор стоп! Какое счастье на работе?! Я сдаю в аренду свои руки, ноги, голову в обмен на деньги, или я беру в аренду всё это, чтобы заработать опять же деньги! Работа это контакт купли-продажи, где каждая сторона стремится заплатить минимальную цену. Да, это распространенная точка зрения на организацию коллективной деятельности, которую автор считает безнадежно устаревшей.
Почему?

27 октября в Digital October состоится Russian FinTech Meetup #1

Reading time2 min
Views2.1K
imageУже в этот четверг, 27 октября в центре Москвы, в главном конференц-зале Digital October состоится митап, организованный сообществом Russian Fintech. Мероприятие открывает цикл ежемесячных встреч, посвященных самым актуальным трендам финансовых инноваций. Гостями мероприятия могут стать все желающие, будь то руководители или финтех-энтузиасты. Наша компания стала коммуникационным партнером и со-организатором митапа.

Сферу финансовых технологий характеризует быстрота происходящих в ней изменений. Только за последнюю неделю произошел ряд масштабных отраслевых событий. Alibaba заявил о своих планах по запуску в этом году платежей в виртуальной реальности, для осуществления которых достаточно VR-очков и специальной гарнитуры. Американский розничный гигант Walmart объявил о своем партнерстве с IBM с целью интеграции блокчейна в процесс продовольственных поставок. Состоялся запуск блокчейна социально-медийного проекта «Голос», участники которого могут получать криптовалютное вознаграждение за генерацию контента. Руководитель направления по работе с партнерами проекта «Голос» Марина Гурева выступит в качестве спикера Russian FinTech Meetup #1.
Читать дальше →

Login или Log in?

Reading time2 min
Views89K


‘Login’ или ‘log in’? Одно слово или два? Это достаточно распространенный вопрос среди тех, кто пишет на английском языке. Давайте разберемся, как же правильно.

Читать дальше →

Доморощенная нотация описания бизнес-процесса

Reading time1 min
Views3.6K
При разработке одного проекта, предполагающего в том числе и автоматизацию бизнес-процесса, мне захотелось максимально наглядно, компактно и понятно проиллюстрировать наши предложения Заказчику функционала. Возможно мной также двигало желание нарисовать в документе один главный рисунок, на котором разместить сразу все.

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


Читать дальше →

Патентные войны: место встречи — США

Reading time4 min
Views7.4K


Вот таким витиеватым заголовком хотелось бы обозначить данный пост. Он повествует о том, как мы в Parallels работаем с патентами. На самом деле у нас их очень много, и мы постоянно пополняем патентный портфель, и на то есть одна весомая причина. Из этой статьи вы узнаете зачем заниматься патентованием и где лучше всего защищать свои права.
Читать дальше →

Как работает Git

Reading time19 min
Views153K
В этом эссе описана схема работы Git. Предполагается, что вы знакомы с Git достаточно, чтобы использовать его для контроля версий своих проектов.

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

Текст разбит на серии команд, работающих с единым проектом. Иногда встречаются наблюдения по поводу структуры данных графа, лежащего в основе Git. Наблюдения иллюстрируют свойство графа и поведение, основанное на нём.

После прочтения для ещё более глубокого погружения можно обратиться к обильно комментируемому исходному коду моей реализации Git на JavaScript.
Читать дальше →

Битва титанов голосовой коммерции

Reading time10 min
Views3.3K
imageВ этой статье, переведенной командой процессинговой компании PayOnline, подробно описаны примеры интеграции инструментов голосового управления онлайн-покупками крупнейшими технологическими корпорациями США.

Google, Apple и Amazon сделали крупную ставку на голосовое управление как на движущую силу электронной коммерции будущего. Каждая из этих компаний уже выложила немало денег и приготовила крутые новые технологии для этого направления. Но эксперт Карен Уэбстер считает, что в назревающем коммерческом сражении победит не тот, кто больше всего раскошелится или предложит самые крутые девайсы. Победителем из этой схватки, вероятно, выйдет тот, кому удастся понять, как потребители на самом деле ищут нужные товары. По ее словам, все чаще это происходит не с помощью приложений из App Store или Google Play и даже не через строку поиска.

Читать дальше →

Голуби брутфорсят парадокс Монти Холла лучше людей

Reading time6 min
Views57K

Голуби дают людям фору в решении дилеммы Монти Холла, что могло бы позволить им успешно выступать на одноименном ток-шоу. Это закономерность может, в свою очередь, излить свет на то, почему людям так трудно она дается.



Чем примечательна эта дилемма? При кажущейся простоте, она запутывает логические цепочки наших умозаключений, заставляя людей (но не голубей), в буквальном смысле, блуждать в трех соснах, вернее — в дверях. Это свойственно представителям самых разных культурных традиций: американцы, китайцы, шведы и бразильцы совершают одинаково неверный выбор.


Когнитивный психолог Massimo Piattelli-Palmarini заметил по этому поводу: Ни одна статистическая задача даже рядом не стоит по способности дурачить всех людей и во все времена.


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

оставить или поменять

Information

Rating
Does not participate
Date of birth
Registered
Activity