Как стать автором
Обновить
4
0
Ihor Kostiuk @ki0

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

Отправить сообщение

Подключаем новый Xiaomi Gateway 3 к Home Assistant без паяльника и смс

Время на прочтение5 мин
Количество просмотров114K

Новый хаб от Xiaomi с поддержкой технологий Zigbee 3, Bluetooth Mesh, HomeKit и его подключение к достаточно популярной системе умного дома — Home Assistant, интересует?


Читать дальше →
Всего голосов 39: ↑39 и ↓0+39
Комментарии47

Генерация URL с параметрами на коленке и best practice

Время на прочтение3 мин
Количество просмотров5.3K

Как-то я увидел в проекте соседней команды код, который генерировал строку с URL-параметрами для последующей вставки в iframe src-атрибут.


Эта статья может показаться лишней, очевидной или слишком простой, но раз такое встречается в живой природе, об этом не стоит молчать, а наоборот, поделиться best-practices.


Итак, вот он, оригинальный код:


const createQueryString = (param1, param2, objectId, timestamp, name) => {
  const encodedTimestamp = encodeURIComponent(timestamp);
  const delimiter = '&';
  const queryString = `${param1}${delimiter}
        param2=${param2}${delimiter}
        objectId=${objectId}${delimiter}
        itemTimestamp=${encodedTimestamp}${delimiter}
        itemName=${name}`;
  return queryString.replace(/ /g, '%20');
};

Для справки, param1 и param2 в оригинальном коде имеют говорящие названия. А их значения могут быть любыми строками с множеством невалидных для URL символов

Читать дальше →
Всего голосов 12: ↑12 и ↓0+12
Комментарии3

В каких странах выгодно регистрировать IT-компании в 2019 году

Время на прочтение9 мин
Количество просмотров38K
IT-бизнес остаётся направлением с высокой маржинальностью, далёко опережая производство и некоторые другие виды услуг. Создав приложение, игру или сервис, можно работать не только на локальных, но и на международных рынках, предлагая услуги миллионам потенциальных клиентов.

image

Однако, когда речь заходит о ведении международного бизнеса, любой айтишник понимает: компания в России и СНГ проигрывает по многим параметрам своим иностранным коллегам. Даже крупные холдинги, которые работают в первую очередь на внутренний рынок, зачастую выносят часть мощностей за пределы страны.

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

Я составила список стран, где в 2019 году интересно и выгодно регистрировать компании для ведения IT-бизнеса. Единственная оговорка – не проговаривались особенности регистрации Fintech-стартапов, которым нужно получать лицензию на выпуск электронных денег или на ведение банковской деятельности.

Что нужно учитывать при выборе страны для регистрации IT-компании?


Выбирая страну для регистрации компании, работающей на международном рынке, нужно учитывать несколько факторов.

Читать дальше →
Всего голосов 32: ↑22 и ↓10+12
Комментарии44

Почему, зачем и когда нужно использовать ValueTask

Время на прочтение14 мин
Количество просмотров65K

Этот перевод появился благодаря хорошему комментарию 0x1000000.

image


В .NET Framework 4 появилось пространство System.Threading.Tasks, а с ним и класс Task. Этот тип и порождённый от него Task<TResult> долго дожидались, пока их признают стандартами в .NET в роли ключевых аспектов модели асинхронного программирования, которая была представлена в C# 5 с его операторами async/await. В этой статье я расскажу о новых типах ValueTask/ValueTask<TResult>, разработанных для улучшения производительности асинхронных методов в случаях, когда издержки на выделение памяти нужно принимать во внимание.

Читать дальше →
Всего голосов 23: ↑21 и ↓2+19
Комментарии2

Асинхронное программирование – производительность async: понять расходы на async и await

Время на прочтение21 мин
Количество просмотров31K

Это статья достаточно древняя, но не потерявшая актуальности. Когда разговор заходит об async/await, как правило, появляется ссылка на неё. Перевода на русский найти не смог, решил помочь кто не fluent.




Асинхронное программирование долгое время было царством самых опытных разработчиков с тягой к мазохизму – тех, кто имел достаточно свободного времени, склонность и психические способности размышлять об обратных вызовах (callback) из обратных вызовов в нелинейном потоке выполнения. С появлением Microsoft .NET Framework 4.5, C# и Visual Basic принесли асинхронность всем нам, так что простые смертные теперь могут писать асинхронные методы почти так же легко, как синхронные. Обратные вызовы больше не нужны. Больше не нужна явная передача (marshaling) кода из одного контекста синхронизации в другой. Больше не нужно беспокоиться как двигаются результаты выполнения или исключения. Нет необходимости в трюках, которые искажают средства языков программирования для удобства разработки асинхронного кода. Короче говоря, больше нет мороки и головной боли.

Читать дальше →
Всего голосов 24: ↑24 и ↓0+24
Комментарии5

Облачные сервисы для игры на слабых ПК, актуальные в 2019 году

Время на прочтение8 мин
Количество просмотров272K


Объем рынка игр оценивается в $140 млрд. С каждым годом рынок расширяется, свою нишу находят новые компании, развиваются и старые игроки. Один из наиболее активно развивающихся трендов гейминга — облачные игры, когда для запуска новинки не нужны ни мощный ПК, ни консоль последнего поколения.

По данным аналитического агентства IHS Markit, в прошлом году игровые сервисы, предлагающие игры «в облаке» заработали $387 млн. К 2023 году аналитики предсказывают рост до $2,5 млрд. С каждым годом количество компаний, которые занимаются развитием облачного гейминга, растет. Сейчас на рынке наиболее известны 5-6 игроков, к которым совсем недавно примкнула корпорация Google. Что они предлагают?
Всего голосов 14: ↑14 и ↓0+14
Комментарии14

Как можно долго и с интересом разглядывать потолок на стене

Время на прочтение12 мин
Количество просмотров35K

КДПВО почти личном опыте выбора и настройки проектора в условиях однушки на отшибе и ограниченности бюджета или что делать, если на $18м^2$ захотелось экран 3+ метра.


Осторожно, трафик.

Ознакомиться с подробностями
Всего голосов 36: ↑36 и ↓0+36
Комментарии171

Comodo отзывает сертификаты без причины

Время на прочтение6 мин
Количество просмотров32K
Могли ли вы представить себе, что крупная компания будет заниматься обманом своих клиентов, особенно если эта компания позиционирует себя гарантом безопасности? Вот и я не мог до недавнего времени. Эта статья — предостережение, чтобы вы сначала десять раз подумали, перед тем как покупать сертификат для подписи кода у Comodo.
Читать дальше →
Всего голосов 68: ↑66 и ↓2+64
Комментарии192

Выбор телевизора себе, любимому, с позиции науки, а не рекламы

Время на прочтение4 мин
Количество просмотров121K

Всем привет.

На написание этой небольшой статьи меня натолкнул спор касательно выбора телевизора.

Сейчас в этой области — равно как в «мегапикселях для камер» — царит маркетинговая вакханалия в погоне за разрешениями: HD Ready давно сменились на Full HD, а уже становятся всё более популярными 4К и даже 8К.

Давайте разберёмся — а что нам реально-то нужно?
Читать дальше →
Всего голосов 142: ↑124 и ↓18+106
Комментарии346

Chrome тестирует Picture-in-Picture API для всплывающих видео вне браузера

Время на прочтение2 мин
Количество просмотров9.8K

Производители браузеров работают над W3C API, которое утвердит Picture-in-Picture (PiP) режим и позволит сайтам показывать всплывающие видео вне окна браузера.

В прошлом, PiP поддерживался только внутри канваса как всплывающее окно, которое появляется только в активной вкладке, пока пользователь скроллит страницу вверх-вниз.

Некоторые платформы добавили поддержку PiP-режима, но это были API, заточенные под OS, то есть работающие с любыми видеоприложениями, но не только с браузерами.
Читать дальше →
Всего голосов 25: ↑24 и ↓1+23
Комментарии27

Взлом визуальной системы: 11 оптических иллюзий в графическом дизайне

Время на прочтение7 мин
Количество просмотров68K
Глубока ли кроличья нора?

image

Сколько минут вам потребуется, чтобы понять в чем фишка?

Фрэнсис Бэкон в 1620 году разделил источники человеческих ошибок, стоящих на пути познания, на четыре группы, которые он назвал «призраками» или «идолами» (лат. idola).

  • «Призраки рода» проистекают из самой человеческой природы, они не зависят ни от культуры, ни от индивидуальности человека. «Ум человека уподобляется неровному зеркалу, которое, примешивая к природе вещей свою природу, отражает вещи в искривлённом и обезображенном виде».
  • «Призраки пещеры» — это индивидуальные ошибки восприятия, как врождённые, так и приобретённые. «Ведь у каждого, помимо ошибок, свойственных роду человеческому, есть своя особая пещера, которая ослабляет и искажает свет природы».
  • «Призраки площади (рынка)» — следствие общественной природы человека, — общения и использования в общении языка. «Люди объединяются речью. Слова же устанавливаются сообразно разумению толпы. Поэтому плохое и нелепое установление слов удивительным образом осаждает разум».
  • «Призраки театра» — это усваиваемые человеком от других людей ложные представления об устройстве действительности. «При этом мы разумеем здесь не только общие философские учения, но и многочисленные начала и аксиомы наук, которые получили силу вследствие предания, веры и беззаботности». [Wikipedia]

Под катом — наглядная демонстрация уязвимости нашего мозга к атакам через визуальный ввод. Представляю вам перевод статьи продуктового дизайнера и фронтэнд-разработчика Balraj Chana, про то как можно использовать/нейтрализовать эффект оптических иллюзий.
Читать дальше →
Всего голосов 86: ↑78 и ↓8+70
Комментарии28

Безопасность Wi-Fi под угрозой из-за множества обнаруженных в WPA2 уязвимостей

Время на прочтение2 мин
Количество просмотров32K

Интернет замер в ожидании релиза proof-of-concept эксплоита под названием KRACK (аббревиатура от Key Reinstallation Attacks). Дело в том, что в минувшие выходные стало известно, то сводная группа специалистов готовит скоординированное раскрытие информации о неких критических проблемах WPA2, которые позволяют обойти защиту и прослушивать Wi-Fi-трафик, передаваемый между точкой доступа и компьютером.


Формально исследователи расскажут о найденных ими уязвимостях лишь 1 ноября 2017 года, на конференции ACM CCS. На мероприятии будет представлен доклад, озаглавленный Key Reinstallation Attacks: Forcing Nonce Reuse in WPA2 («Атака на реинсталляцию ключей: принудительное повторное использование nonce в WPA2»).

Читать дальше →
Всего голосов 25: ↑20 и ↓5+15
Комментарии19

Сравнение кэшбэк-систем: экономика, геймификация и постмаркетинговые акции

Время на прочтение8 мин
Количество просмотров18K


История кэшбэка началась в 1891 году, когда в американской компании Green Shield придумали неожиданный рекламный трюк для привлечения новых клиентов. Механика акции была элементарна — Green Shield выпустили марки, которые клиенты компаний могли обменять на товары, наличные или скидки.

Магазин сам может назначать скидку на любой товар. И до Green Shield продавцы использовали различные акции, например, выпускали медные жетоны. Такой денежный суррогат можно было накапливать и обменивать на товары из специального каталога. Однако в определенный момент эта схема переставала привлекать новых клиентов.

Революция началась, когда в маркетинговую цепочку добавили партнеров — сейчас их называют кэшбэк-сервисами. Задача по привлечению клиентов перекладывается на партнера, лояльность клиента с каждой скидкой растет и все, на первый взгляд, в выгоде. Со временем количество подобных сервисов выросло неимоверно, что позволяло строить длинные цепочки передачи денег за товар. Давайте разберёмся, можно ли сегодня получать прибыль от многоуровневых кэшбэков, или же в выигрыше остается только «казино».
Читать дальше →
Всего голосов 11: ↑10 и ↓1+9
Комментарии15

[Перевод] Круглее круга: оптические эффекты при проектировании интерфейсов

Время на прочтение9 мин
Количество просмотров41K
Какой «круг»воспринимается как самый «круглый»?

image

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

Как создать визуально пропорциональные иконки, правильно расположить объекты разных форм и выполнить идеальное скругление углов. В посте представлено более 50 изображений.
Читать дальше →
Всего голосов 86: ↑85 и ↓1+84
Комментарии44

ИИ для покера: как научить алгоритмы блефовать

Время на прочтение16 мин
Количество просмотров39K
image

О том как совершенствуется искусственный интеллект, можно судить по обычным играм. За последние два десятилетия алгоритмы превзошли лучших мировых игроков: сначала пали нарды и шашки, затем шахматы, «Своя Игра» (Jeopardy!), в 2015 году — видеоигры Atari и в прошлом году — Го.


Все эти успехи — про игры с информационной симметрией, где игроки имеют идентичную информацию о текущем состоянии игры. Это свойство полноты информации лежит в основе алгоритмов, обеспечивающих эти успехи, например, локальном поиске во время игры.


Но как обстоит дело с играми с неполной информацией?


Самым наглядный пример такой игры — покер. Чтобы на деле разобраться с этой игрой и алгоритмами решения этой задачи, мы организуем хакатон по написанию игровых ботов на основе машинного обучения. О том как научить алгоритмы блефовать и попробовать свои силы в покер, не трогая карты, под катом.

Читать дальше →
Всего голосов 29: ↑27 и ↓2+25
Комментарии17

Как я использую git

Время на прочтение6 мин
Количество просмотров91K

Intro


Основам git мне пришлось научиться на своем первом месте работы (около трех лет назад).
С тех пор я считал, что для полноценной работы нужно запомнить всего-лишь несколько команд:


  • git add <path>
  • git commit
  • git checkout <path/branch>
  • git checkout -b <new branch>

И дополнительно:


  • git push/pull
  • git merge <branch>
  • git rebase master (а что, можно еще и на другие ветки ребейзить? О_о)

В принципе, я и сейчас во многом так считаю, но со временем волей-неволей начинаешь узнавать интересные трюки.

Читать дальше →
Всего голосов 117: ↑106 и ↓11+95
Комментарии195

Перехватываем запуск любого приложения в Windows и пытаемся ничего не сломать

Время на прочтение14 мин
Количество просмотров52K

Если вы много занимаетесь отладкой приложений под Windows — вы, возможно, слышали о таком замечательном механизме, как Image File Execution Options (IFEO). Одна из предоставляемых им возможностей позволяет отлаживать приложение в условиях, более приближенных к боевым. Записав в нужное место в реестре специальный ключик, мы можем вместо программы автоматически запускать её отладчик, позволяя ему делать свои отладочные дела. Однако кто сказал, что этот механизм (фактически — перехвата запуска чего угодно) можно использовать только в подобных целях? Эта статья вовсе не об использовании вещей по назначению.


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

Читать дальше →
Всего голосов 49: ↑48 и ↓1+47
Комментарии21

Win32/Industroyer: новая угроза для промышленных систем управления

Время на прочтение16 мин
Количество просмотров12K
Win32/Industroyer – сложная вредоносная программа, предназначенная для нарушения рабочих процессов в промышленных системах управления (ICS), в частности, на электрических подстанциях.

Создателей Win32/Industroyer отличает высокая квалификация и глубокое понимание промышленных систем управления и протоколов связи в электроэнергетике. Маловероятно, чтобы кто-либо мог написать и протестировать подобное ПО без доступа к специализированному оборудованию, которое используется в целевой среде.



Читать дальше →
Всего голосов 22: ↑21 и ↓1+20
Комментарии7

«Умный дом» на практике: сравнение двух контроллеров Z-Wave

Время на прочтение9 мин
Количество просмотров31K

 
Мы решили сравнить два контроллера Z-Wave разных ценовых диапазонов и реализовать на них несколько тестовых сценариев умного дома с использованием набора самых ходовых датчиков и устройств.
Читать дальше →
Всего голосов 14: ↑11 и ↓3+8
Комментарии23

Эволюция на React+Redux

Время на прочтение13 мин
Количество просмотров21K
КДПВ

Привет, Хабр, я тут написал онлайн версию замечательной настольной игры "Эволюция: Происхождение видов" и хотел бы поделиться своими заметками насчет архитектуры и технических моментов. Сразу уточню — я не пиарюсь, скорее, мне интересно рассказать про ошибки и фичи, а взамен услышать много нового и хорошего о своих решениях и коде.

Читать дальше →
Всего голосов 28: ↑27 и ↓1+26
Комментарии30
1

Информация

В рейтинге
Не участвует
Откуда
Киев, Киевская обл., Украина
Дата рождения
Зарегистрирован
Активность