Как стать автором
Обновить
27
0
Iwan Potapow @ingumsky

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

Моя б̶е̶з̶умная колонка или бюджетный DIY голосового ассистента для умного дома

Уровень сложности Простой
Время на прочтение 7 мин
Количество просмотров 27K

В свете широкого внедрения систем домашней автоматизации возникает потребность в более естественном взаимодействии с «умным домом». Как средство натурального взаимодействия между человеком и машиной, голосовой интерфейс заслуженно занимает высокую популярность. В данной статье я поделюсь своим опытом создания бюджетного автономного голосового ассистента для систем умного дома.
Читать дальше →
Всего голосов 87: ↑87 и ↓0 +87
Комментарии 32

[Карьера в IT] Наконец-то оффер: разбираем на практике, как договориться на выгодные условия

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

В прошлых статьях нашей серии «Карьера в IT» мы обсуждали собеседования. И вот вы успешно их прошли, и наступил желаемый момент — оффер от работодателя. Но получение оффера — еще не конец пути. Это только начало переговоров, в результате которых вы можете выиграть гораздо больше. Разберем на практических примерах, откуда брать цифры для «торгов», как именно торговаться и что сделать, чтобы на старте получить самые выгодные условия.

Читать далее
Всего голосов 35: ↑30 и ↓5 +25
Комментарии 29

Fastify.js — не только самый быстрый веб-фреймворк для node.js

Время на прочтение 8 мин
Количество просмотров 33K
Последние 10 лет среди веб-фреймворков для node.js самой большой популярностью пользуется Express.js. Всем, кто с ним работал, известно, что сложные приложения на Express.js бывает сложно структурировать. Но, как говорится, привычка — вторая натура. От Express.js бывает сложно отказаться. Как, например, сложно бросить курить. Кажется, что нам непременно нужна эта бесконечная цепь middleware, и если у нас забрать возможность создавать их по любому поводу и без повода — проект остановится.

Отрадно, что сейчас, наконец, появился достойный претендент на место главного веб-фреймворка всех и вся — я имею в виду не Fastify.js, а, конечно же, Nest.js. Хотя по количественным показателям популярности, до Express.js ему очень и очень далеко.

Таблица. Показатели популярности пакетов по данным npmjs.org, github.com
Пакет Количество загрузок Количество «звезд»
1 connect 4 373 963 9 100
2 express 16 492 569 52 900
3 koa 844 877 31 100
4 nestjs 624 603 36 700
5 hapi 389 530 13 200
6 fastify 216 240 18 600
7 restify 93 665 10 100
8 polka 71 394 4 700
9 loopback 28 501 13 300
10 Adonis.js 3 825 10 100


Express.js по-прежнему работает в более чем в 2/3 веб-приложений для node.js. Более того, 2/3 наиболее популярных веб-фреймворков для node.js используют подходы Express.js. (Точнее было бы сказать, подходы библиотеки Connect.js, на которой до версии 4 базировался Express.js).

В предлагаемом сообщении обсуждаются особенности основных веб-фреймворков для node.js, и что делает Fastify.js фреймворком другого уровня, что позволяет выбрать его как фреймворк для разработки Вашего следующего проекта.
Читать дальше →
Всего голосов 21: ↑21 и ↓0 +21
Комментарии 32

Поиск родственников через тест ДНК. Часть 1 – Как ДНК может помочь узнать предков?

Время на прочтение 5 мин
Количество просмотров 56K
Я расскажу вам немного о пользе ДНК-тестирования при поиске родственников и своих корней, о стоимости данных тестов, как его заказать и отправить обратно, и о результатах, которые вы можете узнать. Постараюсь сделать это достаточно кратко и просто, настолько, насколько это нужно для понимания сути днк-тестирования при поиске своих родственников и информации о предках.

Зачем делать тест ДНК при генеалогических исследованиях


Что такое классические генеалогические исследования, основанные на документах (актовые записи ЗАГС, метрические книги, ревизские сказки, базы данных участников войн и т.д.) – это понятно. Это классика, это гарантированное подтверждение достоверности информации. Но бывают ситуации, когда документов просто нет (пожар, война на территории архива) или когда человек банально не знает своих настоящих фамилии и места рождения (усыновление, например). Можно, конечно, искать везде и сразу, но это очень затруднительно и по времени и финансово, особенно если человек или предки перемещались территориально.
Вот тогда есть ещё один способ найти информацию о своих родственниках – это анализ ДНК.

image

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

Поиск родственников через тест ДНК. Часть 2 — Какой тест ДНК купить и как?

Время на прочтение 5 мин
Количество просмотров 22K
Я уже рассказывал о пользе ДНК-тестирования при поиске родственников и составлении генеалогического древа, а теперь расскажу как выбрать и купить тест и как его отправить обратно. Уже потом будут получение результата и его анализ, но сначала надо купить сам тест и сдать биоматериал, а также отправить тест обратно.

Как наша ДНК сохраняет информацию о наших предках


Я уже рассказывал подробно в другой статье, но надо повториться.

Каждому ребёнку передаются хромосомы от родителей: Y-хромосома только от отца к сыну, а X-хромосома от матери к сыновьям и к дочерям, но сыновья X-хромосому дальше уже не передают, точнее сыновья передают своим дочерям X-хромосому своей матери (бабушки дочерей) но далее при передаче потомкам эта «отцовская» X-хромосома инактивируется. И каждая ДНК несёт в себе информацию о всех ваших предках независимо от пола, но с каждым новым поколением процентное содержание информации о более старых предках разбавляется информацией о новых, условно каждый раз делится на два. Отсюда следует возможность сделать тест и выявить совпадения частичек ДНК между разными людьми. Собственно, об этом и пойдёт речь ниже.

Какие тесты ДНК бывают?


Тесты ДНК можно разделить на 3 типа: тест мужской линии (Y-ДНК), тест женской линии (Mt-ДНК), аутосомный тест (AU-днк).

image
Читать дальше →
Всего голосов 10: ↑9 и ↓1 +8
Комментарии 15

Освободи свой Android

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


Некоторое время назад на Хабре вышла статья замечательной девушки fur_habr о проблемах безопасности, приватности и конфиденциальности мобильных коммуникаций и о путях решения этих проблем на платформе Android.

В момент выхода этой статьи я как-то не обратил на неё внимания — тема смартфонов и Андроида мне вообще не очень интересна. Потом, уже через несколько месяцев, я вновь случайно наткнулся на эту статью, вчитался, и проникся идеями, содержащимися в ней. Действительно, почему бы не стать хозяином своему собственному смартфону?

Вашему вниманию предлагается отчёт об эксперименте, проведённым мной по мотивам инструкций из вышеозначенной статьи и о том, что из всего этого может получиться.
Читать дальше →
Всего голосов 123: ↑115 и ↓8 +107
Комментарии 192

Блокировать трекеры рекламы на сетевом уровне сложно, но возможно

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


Когда вы выходите в интернет или используете приложение, множество компаний спокойно отслеживают каждое ваше действие. Некоторые, такие как Newrelic, достаточно невинны, они отслеживают ошибки пользователей и чтобы быстрее на них реагировать. Но другие, такие как Facebook Audience Network, собирают огромное количество данных как с ваших собственных устройств, так и с устройств в вашей сети.

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

Пытаясь защитить свою частную жизнь, я решил, что лучше всего использовать ядерный метод: блокировать рекламу и трекеры во всей моей домашней сети.
Читать дальше →
Всего голосов 24: ↑20 и ↓4 +16
Комментарии 27
Множество профессий сегодня не требует регулярного присутствия на территории работодателя — ни в его офисе, ни даже в стране. А значит, находясь в России, трудиться можно на компанию из США или Европы. Но получив преимущество в разнице курсов валют, можно проиграть гораздо больше — из-за разницы в законах и неправильного оформления документов. Попробуем разобраться со всеми ошибками валютного договора.
Подробности — под катом
Всего голосов 50: ↑47 и ↓3 +44
Комментарии 27

Полезные и не очень государственные услуги

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

Как похорошел интернет при… или какие полезные (и не очень) госуслуги можно получить онлайн.


Наркоман ли я? Бабушкин суд у подъезда думает, что да (на самом деле нет — я всегда с ними здоровался, а теперь и справка есть!). Был ли я зеком? Сведений не имеется, гласит другая справка. Проходил ли я диспансеризацию? Однозначно да, хотя я этого и не помню, но это не повод не заплатить 1400 рублей за такую «услугу» государству в адрес медучреждения. Какой размер моего ИПК? Государство говорит, что он у меня большой и с возрастом будет становиться только больше и лучше, но мы-то знаем (ц).



Американские хакеры решили повлиять на результаты выборов в России, но пока просто не могут зарегистрироваться на сайте Госуслуг.
(с) интернет

О статье


Под катом я расскажу с нотариально незаверенными скриншотами про полезные и не очень государственные услуги, полученные мной (либо не полученные вовсе). Опишу как они упрощают жизнь, либо наоборот её усложняют. Пост будет больше ироничным, т.к. большинство услуг всё же бесполезны, либо работают не так как надо, а те что работают — используются нечасто.
Читать дальше →
Всего голосов 68: ↑61 и ↓7 +54
Комментарии 175

Всё, что нужно знать об автоматических переносах в CSS

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


Недавно меня пригласили выступить с вечерней лекцией в Типографском обществе Австрии. Для меня стало большой честью последовать по стопам таких светил, как Мэтью Картер, Вим Краувел, Маргарет Калверт, Эрик Шпикерман и покойная Фреда Сэк.

Я рассказал о некоторых золотых правилах типографики в интернете, а потом во время секции QA меня спросили о текущей ситуации с автоматическими переносами в вебе. Это хороший вопрос, особенно с учётом того, что немецкий язык знаменит часто используемыми длинными существительными (например, Verbesserungsvorschlag означает «предложение для улучшения»), поэтому переносы широко используются в большинстве письменных носителей.
Читать дальше →
Всего голосов 31: ↑31 и ↓0 +31
Комментарии 11

Что не так с A/B тестированием

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


Мы подготовили для читателей Хабры перевод статьи Майкла Камински, бывшего директора по аналитике в Harry’s. Он рассуждает о том, что не так с A/B тестированием. Комментирует материал Глеб Сологуб, директор по аналитике Skyeng.


Понятие A/B-тестирования основано на в корне неверном предположении, что существует единственное решение, которое в среднем лучше для всех клиентов. Аналитикам стоит отказаться от предположения об однородности их аудитории и начать разрабатывать системы, которые позволяют использовать (и поощряют) результаты иных тестов, кроме бинарных.

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

Осваиваем async/await на реальном примере

Время на прочтение 9 мин
Количество просмотров 56K
Конструкция async/await представляет собой сравнительно новый подход к написанию асинхронного кода в JavaScript. Она основана на промисах и, в результате, не блокирует главный поток. Новшество этой конструкции заключается в том, что благодаря ей асинхронный код становится похожим на синхронный и ведёт себя подобным образом. Это открывает перед программистом замечательные возможности.

image

До появления async/await при разработке асинхронных механизмов программ использовались коллбэки и промисы. Автор материала, перевод которого мы публикуем сегодня, предлагает сначала вспомнить о том, как писать код по-старому, а потом, на реальном примере, изучить применение async/await.
Читать дальше →
Всего голосов 53: ↑45 и ↓8 +37
Комментарии 23

Fake Door как часть Customer Development

Время на прочтение 4 мин
Количество просмотров 8.6K
У меня есть нож, есть арбалет,
Они служат мне уже тысячу лет.

(с) КиШ


Предположим, вам надо проверить насколько новая фича будет востребована клиентами. Зачастую, это решается с помощью интервьюирования, опросов, и т.д. У этих замечательных подходов есть свои плюсы/минусы, поэтому рассмотрим альтернативный вариант и в каких случаях оправдано его применение.

image

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

Как «пробить» человека в Интернет: используем операторы Google и логику

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

В очередной статье нашего цикла публикаций, посвященного интернет-разведке, рассмотрим, как операторы продвинутого поиска Google (advanced search operators) позволяют быстро находить необходимую информацию о конкретном человеке.


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


Читать дальше →
Всего голосов 122: ↑105 и ↓17 +88
Комментарии 108

«CMS» на базе Google Spreadsheets для статических сайтов

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


Все чаще для рассказа о мероприятии/товаре/услуге компании создают сайты на базе каких либо конструкторов. Либо своими силами, либо привлекая дизайнеров и без участия программиста. Современные конструкторы позволяют собрать классный, яркий, эффектный сайт, но статичный. Любые изменения нужно вносить «ручками в редакторе» и перепубликовать страницу. Но что делать, если данные меняются очень часто или хочется добавить немного автоматизации — вот тут и могут помочь Гугл Таблицы и Charts Query Language (и знакомы программист).
Читать дальше →
Всего голосов 19: ↑18 и ↓1 +17
Комментарии 4

Эй, HR, где моя сувенирка?

Время на прочтение 10 мин
Количество просмотров 18K
Декабрь — время раздачи слонов, премий, ручек, календарей и открыток во всех бизнес-сегментах мира. Большинство компаний в IT-сфере к этому процессу относятся довольно халатно и не задумываются о том, что вся вот эта мелочёвка (и не мелочёвка тоже) — обоюдоострый опасный инструмент, который может стать как большим успехом, так и полным провалом. Это способ дополнительного взаимодействия с сотрудниками и клиентами, диалог вне пределов диалога, важный символ, который должен быть прежде всего осмысленным, а не брютом с рафаэлками. В общем, это настолько важная тема, что мы решились немного отвлечься от JS и посвятить ей свой пятничный пост на Хабре.


Кадр из к/ф «Кадры» (The Internship)
Читать дальше →
Всего голосов 59: ↑46 и ↓13 +33
Комментарии 39

Самые популярные Node.js-фреймворки 2018 года

Время на прочтение 7 мин
Количество просмотров 26K
Сегодня мы публикуем перевод материала, автор которого хочет рассказать о самых популярных в наши дни фреймворках для Node.js. В этот список входят Sails.js, Hapi.js, NestJS, LoopBack, Derby.js, Mean.io и Total.js.


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

Пример расчета для электрощитка

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

Домашняя электросеть Part Deux


В этой статье я хочу привести пример выбора оборудования для щитка в квартире, условное продолжение предыдущей статьи (некоторые теоретические моменты были там рассказаны более полно). Потому такой подзаголовок.
Читать дальше →
Всего голосов 24: ↑22 и ↓2 +20
Комментарии 61

Генерируем красивые SVG-плейсхолдеры на Node.js

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


Использование SVG-картинок в качестве плейсхолдеров — это очень неплохая идея, особенно в нашем мире, когда чуть ли не все сайты состоят из кучи картинок, которые мы пытаемся асинхронно подгружать. Чем больше картинок и чем более объемные они, тем выше вероятность получения различных проблем, начиная от того, что пользователь не совсем понимает, а что же там собственно грузится, и заканчивая известным скачком всего интерфейса после прогрузки картинок. Особенно на плохом интернете с телефона — там может и на несколько экранов все улететь. Именно в такие моменты заглушки приходят на помощь. Еще один вариант их использования – это цензура. Бывают такие моменты, когда нужно скрыть от пользователя какую-то картинку, но хотелось бы сохранить общий стиль страницы, цвета и место, которое картинка занимает.


Но в большинстве статей все рассуждают о теории, о том, что было бы неплохо инлайново вставлять все эти картинки-заглушки в страницы, а мы сегодня посмотрим на практике, как можно генерировать их на свой вкус и цвет с помощью Node.js. Мы создадим handlebars-шаблоны из SVG-картинок и будем из заполнять разными способами, начиная от простой заливки цветом или градиентом и заканчивая триангуляцией, мозаикой Вороного и использованием фильтров. Все действия будут разбираться по шагам. Полагаю эта статья будет интересна начинающим, которым интересно, как это делается, и нужен подробный разбор действий, но и опытным разработчикам возможно приглянутся некоторые идеи.

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

Реализация системы GTD на основе новых возможностей Google Keep и Calendar

Время на прочтение 19 мин
Количество просмотров 34K
This article in English: GTD Implementation via New Google Keep and Calendar Features

За последние годы Google Keep и Calendar значительно расширили свою функциональность, что дает возможность построить более удобную реализацию методологии GTD (Getting Things Done) на их основе. Ранее я уже публиковал материал с реализацией GTD на основе Google Calendar. Представленный теперь материал можно рассматривать как обновленную реализацию GTD на тех же принципах, но с использованием более современных средств.

В моем материале 2015 года в качестве базового элемента для всех пяти фаз управления рабочим процессом (Control) в системе GTD был выбран один и тот же сервис — Google Calendar. Теперь на различных фазах в качестве базовых элементов будут использоваться два разных сервиса — Calendar и Keep — в соответствии с приспособленностью их функционала для отдельных фаз.

  • Calendar теперь будет использоваться в качестве базы для фазы обзора (Review-Reflect), а также для фазы выполнения (Do-Engage).
  • Keep будет использоваться в качестве базы для фазы сбора (Collect-Capture), фазы обработки (Process-Clarify) и фазы организации (Organize).

Реализация GTD в Google Calendar (развернут список ближайших действий на неделю):


Pеализация GTD в Google Keep (категория ближайших действий):
Читать дальше →
Всего голосов 16: ↑16 и ↓0 +16
Комментарии 18

Информация

В рейтинге
Не участвует
Откуда
Грузия
Зарегистрирован
Активность

Специализация

Content Writer, Localisation Lead
Lead
От 8 500 €
Project management
Building a team
Promotion of projects