Как стать автором
Обновить
8
0
Иван Старков @icelaba

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

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

Создание Worker-а с другого домена

Время на прочтение2 мин
Количество просмотров4.6K
Worker'ы — внятная реализация многопоточности в JavaScript. На момент сейчас они имеют достаточное количество ограничений. Для ознакомления с ними (как worker'ами, так и ограничениями) можно прочитать эту статью от хабраюзера Antelle. Там же есть и ссылки на первоисточники информации для интересующихся.


Сегодня же мне довелось столкнуться другой задачей. А именно: с проблемой создания worker'а из js-файла с другого домена, что на данный момент запрещено его спецификацией.
Читать дальше →

DOM-а хватит на всех, или как помирить ReactJS с тем фактом, что сторонние библиотеки меняют его DOM

Время на прочтение3 мин
Количество просмотров20K
Современные JavaScript фреймворки, и ReactJS не исключение, обычно требуют эксклюзивного доступа к DOM и им очень не нравится, когда кто-то без их ведома этот DOM меняет. Проблема в том, что существует огромное количество сторонних библиотек (например, плагины jQuery), которым необходимо в их подконтрольном поддереве что-нибудь да вропнуть, анвропнуть, перенести в другое место и т.д. Обычно в таких случаях мы видим в консольке нечто подобное:

image

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

Pipe matching в ЯП Clojure (метапрограммирование в Lisp для начинающих)

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


Введение


Несколько дней назад я открыл для себя замечательный ЯП Clojure — один из современных диалектов Lisp, особенностью которого является хорошая реализация средств многопоточности, компиляция в байткод jvm, соответственно возможность использования java — библиотек, jit-компиляция и т.д. Про Clojure можно почитать например тут. Но в этой статье речь пойдёт о метапрограммировании. Lisp устроен таким образом, что данные и код в нём — одно и то же. Объявления функций, макросов, вызовы функций, развёртывание макросов — в Lisp это всё просто списки, возможно вложенные друг в друга.

(defn square [foo] (* foo foo))
(defmacro show-it [foo] `(println ~foo))


Такое единство кода и данных предоставляет мощные возможности для метапрограммирования — код который пишет код, который пишет код, который пишет код и т.д. — это самое обычное дело для программирования на Lisp. В compile-time нам полностью доступен весь функционал языка, мы можем вызывать функции, развёртывать макросы, возможно рекурсивно. Например, если мы определим вот такой макрос:
Читать дальше →

Pirate Bay начал продвигать новый бесплатный VPN

Время на прочтение2 мин
Количество просмотров138K
Последние несколько дней на главной странице «Пиратской бухты» вместо их собственного лого висит промо нового бесплатного VPN — FrootVPN. На странице проекта написано, что сервис базируется в Швеции и находится под защитой шведских законов, предоставляет свои услуги бесплатно, используя несколько 10-гигабитных каналов и не ведёт никаких логов.


Что мы знаем о тех, кто разместил эту ссылку, кроме удивительной толерантности к jpg-артефактам на логотипах?
Читать дальше →

Ускоряем понимание коммерческого или технического текста: как перестать бояться писать просто

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


Читать молча мы научились относительно недавно. Раньше не было иного логичного способа читать, кроме как строго вслух. Фактический процесс чтения напоминает слушание двух голосов: один проговаривает слова текста, второй переводит их для нас на понятный нам язык.

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

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

Поэтому сейчас я расскажу базовые вещи, которые можно делать прямо здесь и сейчас у вас на сайтах.
Читать дальше →

Docker: запуск графических приложений в контейнерах

Время на прочтение15 мин
Количество просмотров88K
Строго говоря, Docker не был создан для подобного рода вещей, а именно запуска графических приложений. Однако, время от времени в темах про Docker звучат вопросы о том, нельзя ли запустить GUI-приложение в контейнере. Причины могут быть разные, но чаще всего, это желание сменить излишне громоздкую виртуальную машину на что-то полегче, не потеряв в удобстве и сохранив при этом достаточный уровень изоляции.

Это небольшой обзор способов запуска графических приложений в контейнерах Docker.
ну-ка, что там

Поисковые технологии в Airbnb

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


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

Пост подготовлен по материалам выступления Максима Чаркова:


Поиск — это сила паросочетаний. Говоря по существу, здесь мы и пытаемся стыковать запросы наших пользователей с тем, что доступно на рынке.

Сперва хотелось бы сказать пару слов о себе и своих коллегах. Я работаю в поисковой команде. Начал работать в компании я два года назад. До этого был сотрудником Google, где я провел несколько лет, занимаясь всем подряд, от функций поиска до веб-браузеров. Конечно, все то, что я собираюсь представить здесь, не было бы возможным без людей из нашей команды. Search Airbnb — постоянно действующая команда. Наши инженеры работают над проблемами поиска и потока бронирования, включая инфраструктуру, пользовательский интерфейс и т.д. Сфера нашей деятельности также включает в себя разработку оборудования, дизайн, пользовательские исследования, обработку и анализ данных.

Сперва хочу представить проблему поиска на Airbnb и как мы помогаем нашим гостям найти наилучшие позиции. Затем я расскажу о проблеме конверсии бронирования. Вы увидите, что на Airbnb не всегда достаточно позиций, удовлетворяющих всем запросам пользователей. А это представляет собой интересную задачу. Также я скажу пару слов об оценке модификаций. Работая над новыми поисковыми продуктам, очень важно учредить оценочные инструменты и факторы, которые бы давали уверенность в том, что каждое сделанное изменение будет иметь положительные эффект для пользователя.
Читать дальше →

Монтаж накруткой. Самодельная макетная плата

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

В прошлой статье мы рассмотрели технологию монтажа накруткой. Но практика — критерий истины. К тому же DIHALT задал конкретный вопрос о том, как же быть с деталями? Ясно, что детали ставятся на плату с одной стороны, а все соединения происходят с другой стороны (вроде бы логично, но как?). Для монтажа накруткой есть готовые платы, но они очень дорогие.

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

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

Информация

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