Search
Write a publication
Pull to refresh
-23
0

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

Send message

Удаленное управление компьютером через браузер

Reading time1 min
Views59K
Около полугода назад задумал сделать программу для управления компьютером через браузер. Начал с простого односокетного HTTP сервера, который передавал картинки в браузер и получал координаты курсора для управления.

На определенной стадии понял что для этих целей хорошо подходит технология WebRTC. Такое решение есть у Chrome браузера, оно устанавливается через расширение. Но хотелось сделать маловесную программу, которая будет работать без установки.

Сначала попробовал использовать библиотеку которую предоставляет Google, но после компиляции она занимает 500MB. Пришлось реализовать весь WebRTC стек почти с нуля, удалось все уместить в exe файл размером 2.5MB. Друг помог с интерфейсом на JS, вот что в итоге получилось.
Читать дальше →

Сортировка фотографий по данным из EXIF + PHP

Reading time4 min
Views6.9K
Хочу поделиться своим опытом сортировки фотографий с помощью скрипта на PHP
Наступает тот момент, когда фотографий становится не много, а катастрофически много.
Читать дальше →

Повторное использование приватных Android библиотек с помощью Sonatype Nexus Repository OSS

Reading time8 min
Views5.8K
Думаю, что у многих возникала необходимость повторно использовать отдельные модули своего Android приложения в другом проекте. Для решения этой задачи есть простые пути, например, публично разместить Android библиотеку с помощью JitPack. Решение отличное, но если нужно разместить библиотеку приватно, то придется заплатить, а тариф чаще всего будет зависеть от количества размещаемых артефактов. Данное решение подойдет далеко не всем.

Ниже я предложу простой вариант решения данной проблемы с использованием Sonatype Nexus Repository OSS.


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

Видеорегистраторы: основные отличия современных устройств

Reading time9 min
Views14K
Многими людьми радар-детекторы и видеорегистраторы воспринимаются как братья-близнецы. Оба полезных автомобильных аксессуара сейчас в тренде, представлены на рынке в большом ассортименте. Правда, есть один принципиальный момент. Радар-детекторы многие обвиняют в том, что их использование поощряет нарушение Правил дорожного движения (ПДД). Отсюда и неоднозначное к ним отношение. Что касается видеорегистраторов, то вряд ли кто-то будет отрицать их полезность. И сегодня мы хотим рассказать, на какие характеристики видеорегистраторов стоит обращать внимание.

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

Крохотные образы Docker, которые верили в себя*

Reading time4 min
Views23K

[отсылка к американской детской сказке "Маленький паровозик, который верил в себя " ("The Little Engine That Could") — прим. пер.]*



Как автомагически создавать крохотные docker-образы для своих нужд


Необычная одержимость


Последние пару месяцев я был одержим навязчивой идеей: насколько можно уменьшить образ Docker, так чтобы при этом приложение работало?


Понимаю, идея странная.


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


Почему размер имеет значение


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

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

Краткое введение в Kustomize

Reading time5 min
Views37K
Прим. перев.: Статью написал Scott Lowe — инженер с большим стажем в ИТ, являющийся автором/соавтором семи печатных книг (преимущественно по VMware vSphere). Сейчас он работает в её дочерней организации VMware — Heptio (поглощена в 2016 году), специализируясь на облачных вычислениях и Kubernetes. Сам же текст служит ёмким и простым для понимания введением в управление конфигурациями для Kubernetes с помощью технологии Kustomize, недавно вошедшей в состав K8s.



Kustomize – это инструмент, позволяющий пользователям «настраивать простые и свободные от шаблонов файлы YAML под различные цели, оставляя оригинальный YAML нетронутым и пригодным для использования» (описание позаимствовано прямо из репозитория kustomize на GitHub). Kustomize можно запускать напрямую или, начиная с Kubernetes 1.14, использовать kubectl -k для доступа к его функциям (хотя по состоянию на Kubernetes 1.15 отдельный бинарник новее, чем возможности, встроенные в kubectl). (Прим. перев.: А с недавним релизом Kubernetes 1.16 kustomize поддерживается ещё и в утилите kubeadm.) В этой публикации я хочу познакомить читателей с основами kustomize.
Читать дальше →

Рассказ о решении проблемы с производительностью Moment.js

Reading time5 min
Views10K
Moment.js — это одна из самых популярных JavaScript-библиотек для разбора и форматирования дат. В компании WhereTo используют Node.js, поэтому для них применение этой библиотеки было совершенно естественным ходом. Проблем с серверным использованием Moment.js не ожидалось. В конце концов, они с самого начала использовали эту библиотеку во фронтенде для вывода дат и были довольны её работой. Однако то, что библиотека хорошо показала себя на клиенте, ещё не означало, что и на сервере с ней проблем не будет.



Материал, перевод которого мы публикуем сегодня, посвящён рассказу решении проблемы с производительностью Moment.js.
Читать дальше →

9 лучших опенсорс находок за сентябрь 2019

Reading time2 min
Views53K

Доброго Хактоберфеста, дамы и господа. Подготовил для вас подборку самых интересных находок из опенсорса за сентябрь 2019.


За полным списком новых полезных инструментов, статей и докладов можно обратиться в мой телеграм канал @OpensourceFindings (по ссылке зеркало, если не открывается оригинал).


В сегодняшнем выпуске.
Технологии внутри: Python, C, Rust, Ruby, JavaScript, Go.
Тематика: веб разработка, администрирование, инструменты разработчика.


Прошлый выпуск.

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

Как организовать работу над библиотекой общих компонентов

Reading time9 min
Views16K
Если ваша компания делает несколько продуктов в едином стиле, однажды вам в голову придет идея сделать библиотеку с общим кодом. Например, с UI-компонентами, сервисом авторизации или для работы со сторонними API. Возможно, вы зададитесь вопросами: кто должен поддерживать этот код? Как доносить изменения до пользователей? В конце концов, как вообще заставить их пользоваться вашей библиотекой?

С 2015 года я работаю в Тинькофф в отделе сервисов для бизнеса. За это время наша команда выросла с 3 до 60+ разработчиков, а экосистема Тинькофф Бизнес — с 3 до 50 веб-приложений. На разных этапах нашего развития мы подходили к работе с общим кодом по-разному, об этом я и хочу рассказать в этой статье.

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

Оптимизация обработки событий в Angular

Reading time8 min
Views16K

Введение


Angular предоставляет удобный декларативный способ подписки на события в шаблоне, с помощью синтаксиса (eventName)="onEventName($event)". Вместе с политикой проверки изменений ChangeDetectionStrategy.OnPush подобный подход автоматически запускает цикл проверки изменений только по интересующему нас пользовательскому вводу. Иными словами, если мы слушаем (input) событие на <input> элементе, то проверка изменений не будет запускаться, если пользователь просто кликает по полю ввода. Это значительно улучшает
производительность, по сравнению с политикой по умолчанию (ChangeDetectionStrategy.Default). В директивах мы также можем подписаться на события на хост-элементе через декоратор @HostListener('eventName').


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

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

Запускаем systemd в контейнере

Reading time6 min
Views29K
Мы давно следим за темой использования systemd в контейнерах. Еще в 2014 году наш инженер по безопасности Дэниел Уолш (Daniel Walsh) написал статью Running systemd within a Docker Container, а еще через пару лет – другую, которая называлась Running systemd in a non-privileged container, в которой он констатировал, что ситуация не очень-то и улучшилась. В частности, он писал, что «к сожалению, и два года спустя, если погуглить «Docker system», то первым делом всплывает всё та же его старая статья. Значит, пора что-то менять». Кроме того, мы уже как-то рассказывали о конфликте между разработчиками Docker и systemd.



В этой статье мы покажем, что изменилось за прошедшее время и как нам может помочь в этом вопросе Podman.
Читать дальше: Запускаем systemd в контейнере

Моменты жизни Стивена Вольфрама — создателя Mathematica, Wolfram|Alpha, A New Kind Of Science и много чего ещё

Reading time10 min
Views8.7K

Оригинал поста в моём личном блоге

Мне посчастливилось лично познакомиться со Стивеном Вольфрамом на Первой Российской конференции «Wolfram технологии», которая проходила в 2013 г. в СПбГУ. После мы пересекались на телемосте Стивена в Digital October. Записи этих выступлений вы найдёте ниже (к сожалению, у видео с конференции нет перевода).

Стивен Вольфрам крайне интересный человек: он приковывает к себе не только потрясающим умом, всем историческим IT-бэкграудом (ведь он лично работал и знает практически всех, кого мы можем вспомнить — от Стива Джобса до своего наставника Ричарда Фейнмана), своей славой «сверхгика» (чего стоит только его непрерывный сбор и анализ всех данных о себе) и пр.

Я думаю, что многим, связанным (или интересующимся) IT-индустрией будет интересно (даже полезно) посмотреть на моменты его жизни от детства до создания одной из первых систем компьютерной алгебры (SMP — которая потом легла в основу Mathematica), участия в создании языка пришельцев из фильма «Прибытие», слушаниях конгресса США по искусственному интеллекту и многом другом.

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

В основу этого поста легла страница Стивена о себе.

Работа с cron под Android и добавление shell-скрипта в автозапуск при загрузке устройства

Reading time13 min
Views19K


В связи с тем, что мобильные устройства уже давно имеют обширный функционал, то задачи автоматизации можно смело переносить и на них. И, как нельзя лучше, здесь так же хорошо подходит cron для их выполнения. Но если в «обычных» Linux системах настройка cron занимает мало времени, то Android устройство требует более сложной работы по его настройке.

Если тебе интересна тема автоматизации и ты хочешь, чтобы твои shell-скрипты запускались сразу же после загрузки устройства, да еще и могли бы запускаться по таймеру — добро пожаловать под кат!
Читать дальше →

Курс по C++ в CS центре, первая часть

Reading time3 min
Views26K
Computer Science Center — это совместная инициатива Computer Science клуба при ПОМИ РАН, компании JetBrains и Школы анализа данных Яндекса.

Центр существует, чтобы дать возможность талантливым студентам и выпускникам развиваться в интересных им направлениях: Computer Science, Data Science или Software Engineering.

Курс по C ++ в двух частях в центре читает Валерий Михайлович Лесин, valery-l, преподаватель CS центра и совместной магистратуры ИТМО и JetBrains «Разработка программного обеспечения / Software Engineering», технический директор Simlabs.

Первая часть курса нужна, чтобы нарастить базу по С++: к концу семестра студенты с большой вероятностью получат достаточно навыков программирования на этом языке для решения своих задач. Пока без move semantics, sfinae, но для начала этого, скорее всего, будет достаточно.

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

Приятного просмотра!
Смотреть видео

Один из методов получения истории блокировок в PostgreSQL

Reading time7 min
Views3.1K
Продолжение статьи "Попытка создать аналог ASH для PostgreSQL ".

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

Один из методов получения профиля рабочей нагрузки и истории ожиданий в PostgreSQL

Reading time13 min
Views5.4K
Продолжение статьи "Попытка создать аналог ASH для PostgreSQL ".

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

Перекрестная репликация между PostgreSQL и MySQL

Reading time15 min
Views13K


Я в общих чертах расскажу о перекрестной репликации между PostgreSQL и MySQL, а еще о методах настройки перекрестной репликации между этими двумя серверами базы данных. Обычно базы данных в перекрестной репликации называются однородными, и это удобный метод перехода с одного сервера реляционной СУБД на другой.


Базы данных PostgreSQL и MySQL принято считать реляционными, но с дополнительными расширениями они предлагают возможности NoSQL. Здесь мы обсудим репликацию между PostgreSQL и MySQL, с точки зрения реляционных СУБД.


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

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

USB-педаль для переключения между компьютерами

Reading time5 min
Views30K
Статья из блога самоделкина с ником РедькаМышь

Вот она, во всей своей красе:



Файлы STL:


Зачем я её сделал


Я одновременно использую несколько ноутбуков. На них запущены Linux, OpenBSD, macOS и ChromeOS. Я предпочитаю работать на клавиатуре вслепую и использую навигацию при помощи клавиш. Мне нужно было переключаться между ноутбуками.
Читать дальше →

Мы создали плагин в Grafana для мониторинга k8s: уже в официальном Grafana-store

Reading time2 min
Views17K


Сегодня свершился релиз нового и очень полезного опенсорсного проекта, созданного дирекцией разработки ITSumma — плагина в Grafana для мониторинга Kubernetes. Он включён в официальный графана-стор — grafana.com/grafana/plugins/devopsprodigy-kubegraf-app
Читать дальше →

Нетипичный «ls» или как развлекаются линуксоиды

Reading time2 min
Views34K
Однажды в телеграм чат питерского сообщества линуксоидов SPbLUG я кинул забавную задачку:
Выведите список файлов в домашней директории максимально возможным количеством способов, без использования ls или его алиасов(1 способ — 1 балл)

Такое же задание чуть позже прилетело в ещё один чат, и вот что из этого получилось:
Читать дальше →

Information

Rating
Does not participate
Registered
Activity