Как стать автором
Обновить

Разработка

Сначала показывать
Порог рейтинга

❓100 Вопросов по Машинному обучению (Machine Learning) - Вопрос_13

🔠Вопрос_13: Какие есть альтернативы Expectation-Maximization (EM) ?

  1. Markov Chain Monte Carlo (MCMC): MCMC - это класс методов, которые позволяют проводить сэмплирование из сложных распределений, таких как постериорные распределения параметров моделей. MCMC методы генерируют последовательность сэмплов, которая соответствует искомому распределению. MCMC алгоритмы, такие как Metropolis-Hastings и Gibbs sampling, являются альтернативой EM и позволяют оценивать параметры модели, учитывая скрытые переменные.

  2. Stochastic Gradient Variational Bayes (SGVB): SGVB - это метод, который комбинирует идеи градиентного спуска и вариационного вывода для оценки параметров моделей. Он позволяет приближенно оптимизировать параметры модели, используя стохастические градиенты, что делает его масштабируемым для больших наборов данных. SGVB широко применяется в глубоком обучении и моделях с динамическими параметрами.

  3. Bayesian Optimization: Bayesian Optimization (байесовская оптимизация) - это метод, который позволяет находить оптимальные значения гиперпараметров модели. Вместо оценки параметров модели, как делает EM, байесовская оптимизация исследует пространство гиперпараметров с целью нахождения наилучших настроек модели с использованием итераций оптимизации и апостериорных распределений.

t.me/DenoiseLAB (Еесли вы хотите быть в курсе всех последних новостей и знаний в области анализа данных);

Теги:
Рейтинг 0
Комментарии 0

❓100 Вопросов по Машинному обучению (Machine Learning) - Вопрос_12

🔠Вопрос_12: Expectation-Maximization (EM) ?

Expectation-Maximization (EM) - это итерационный алгоритм, который используется для оценки параметров вероятностных моделей, когда некоторые данные являются наблюдаемыми, а другие данные являются скрытыми или неполными. EM-алгоритм часто применяется в статистике и машинном обучении для обучения моделей с неизвестными параметрами.

EM-алгоритм состоит из двух основных шагов: шага ожидания (Expectation) и шага максимизации (Maximization).

  1. Шаг ожидания (Expectation step, E-шаг): На этом шаге вычисляются ожидаемые значения скрытых переменных (или "ответственностей") в соответствии с текущими значениями параметров модели. Это делается путем вычисления условного математического ожидания скрытых переменных при условии наблюдаемых данных и текущих параметров модели.

  2. Шаг максимизации (Maximization step, M-шаг): На этом шаге обновляются параметры модели, чтобы максимизировать ожидаемое правдоподобие, полученное на E-шаге. Обновление параметров происходит путем решения оптимизационной задачи, которая может включать максимизацию правдоподобия или минимизацию ошибки между наблюдаемыми данными и ожидаемыми значениями.

    t.me/DenoiseLAB (Еесли вы хотите быть в курсе всех последних новостей и знаний в области анализа данных);

    https://boosty.to/denoise_lab (Если вы хотите поддержать проект, или получить более модные фишки по коду и продвижению подписывайтесь).

Теги:
Всего голосов 3: ↑3 и ↓0 +3
Комментарии 0

❓100 Вопросов по Машинному обучению (Machine Learning) - Вопрос_11

🔠Вопрос_11: Какие есть альтернативы Affinity Propagation ?

  1. Агломеративная кластеризация (Agglomerative Clustering): Это иерархический метод кластеризации, который начинает с каждой точки данных в отдельном кластере и последовательно объединяет ближайшие кластеры, пока не достигнет заданного числа кластеров или критерия объединения. Агломеративная кластеризация может работать как с евклидовыми расстояниями, так и с другими метриками.

  2. Gaussian Mixture Models (GMM): Это статистическая модель, которая представляет каждый кластер как смесь нормальных распределений. GMM моделирует данные с помощью вероятностей и может обнаруживать скрытые кластеры и моделировать данные с разной формой распределения.

  3. Spectral Clustering: Этот алгоритм использует спектральные методы для преобразования данных в новое пространство и выполнения кластеризации. Он основан на вычислении собственных векторов матрицы сходства данных и последующем применении методов кластеризации на полученных спектральных коэффициентах.

    t.me/DenoiseLAB (Еесли вы хотите быть в курсе всех последних новостей и знаний в области анализа данных);

    t.me/DenoseLABChat (Если вы хотите задать вопрос и получить на него ответ по анализу даных подключайтесь в наш чат);

    https://boosty.to/denoise_lab (Если вы хотите поддержать проект, или получить более модные фишки по коду и продвижению подписывайтесь).

Теги:
Рейтинг 0
Комментарии 0

Представлен релиз дистрибутива OpenMandriva Lx 5.0. Проект развивается силами сообщества после того, как компания Mandriva S.A. передала управление проектом в руки некоммерческой организации OpenMandriva Association.

Для загрузки предлагаются Live-сборки для архитектуры x86_64 с KDE (полная 3 ГБ, сокращённая 2,5 ГБ и оптимизированная для процессоров AMD Ryzen, ThreadRipper и EPYC), GNOME и LxQt. Отдельно в ближайшее время будут опубликованы серверная сборка и образы для плат на базе архитектуры ARM64 (Raspberry Pi 4).

Основные изменения в OpenMandriva Lx 5.0:

  • проведена реорганизация структуры файловой системы — все исполняемые файлы и библиотеки из корневых директорий перенесены в раздел /usr (каталоги /bin, /sbin и /lib* оформлены как символические ссылки на соответствующие каталоги внутри /usr);

  • компилятор Clang, используемый для сборки пакетов, обновлён до ветки LLVM 17. Для сборки всех компонентов дистрибутива можно обойтись только Clang, в том числе доступен вариант пакета с ядром Linux, собранный в Clang;

  • компоненты рабочего стола и графического стека и системные пакеты, в том числе ядро Linux 6.6.2, systemd 254.5, GCC 13.1, glibc 2.38, binutils 2.41, инсталлятор Calamares 3.2.62;

  • обновлены развиваемые для OpenMandriva приложения OM Welcome, OM Control
    Center, Repository Selector (repo‑picker), Update Configuration
    (om‑update‑config).

Источник: OpenNET.

Теги:
Всего голосов 3: ↑3 и ↓0 +3
Комментарии 0

Во время конференции AI Journey директор «ИИ Тинькофф» Виктор Тарнавский рассказал о разработке собственных больших языковых моделей. Компания планирует интегрировать их в свои продукты, рассказали Хабру в пресс-службе.

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

Кроме того, директор ИИ-подразделения компании отметил, что «Тинькофф» — одна из немногих компаний в РФ, способных разрабатывать большие языковые модели.

Теги:
Всего голосов 3: ↑3 и ↓0 +3
Комментарии 0

Представлен релиз библиотеки OpenSSL 3.2.0 с реализацией протоколов SSL/TLS и различных алгоритмов шифрования. Поддержка OpenSSL 3.2 будет осуществляться до 23 ноября 2025 года. Поддержка прошлых веток OpenSSL 3.1 и 3.0 LTS продлится до марта 2025 года и сентября 2026 года соответственно. Поддержка ветки 1.1.1 прекращена в сентябре этого года. Код проекта распространяется под лицензией Apache 2.0.

В OpenSSL 3.2.0:

  • добавлена клиентская поддержка протокола QUIC (RFC 9000), используемого в качестве транспорта в протоколе HTTP/3. Реализация включает среди прочего возможность передачи нескольких потоков через один канал связи. Компоненты для использования QUIC на серверах будут включены в выпуск OpenSSL 3.3, который планируют опубликовать не позднее 30 апреля 2024 года. QUIC представляет собой надстройку над протоколом UDP, поддерживающую мультиплексирование нескольких соединений и обеспечивающую методы шифрования, эквивалентные TLS/SSL.

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

  • в TLS реализована поддержка расширения для сжатия сертификатов на этапе согласования соединений (RFC 8879), позволяющего ускорить установку соединения так как на передачу данных сертификатов приходится львиная доля трафика на этапе согласования соединения. Поддерживается сжатие с использованием библиотек zlib, zstd и Brotli.

Источник: OpenNET.

Теги:
Рейтинг 0
Комментарии 0

Энтузиаст опубликовал репозиторий BlackFriday GPTs Prompts с коллекцией промптов для GPT и других больших языковых моделей. Все запросы распределены на категории:

  • Programming;

  • Marketing;

  • Academic;

  • Job Hunting;

  • Game;

  • Creative;

  • Prompt Engineering;

  • Business;

  • Productivity & life style;

  • Jailbreaks.

В каждой из категорий собраны промпты на английском языке с подробным описанием. В разделе Jailbreaks собраны способы обойти ограничения и цензуру языковых моделей.

Теги:
Рейтинг 0
Комментарии 0

❓100 Вопросов по Машинному обучению (Machine Learning) - Вопрос_10

🔠Вопрос_10: Что такок Tarantool и как он устроен ? (Часть_3)

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

  2. Разрешение конфликтов: Tarantool предоставляет механизм разрешения конфликтов при работе с репликацией и шардингом. Возможности разрешения конфликтов включают автоматическое разрешение конфликтов на основе временных меток и возможность управления конфликтами пользовательским кодом.

t.me/DenoiseLAB (Еесли вы хотите быть в курсе всех последних новостей и знаний в области анализа данных);

t.me/DenoseLABChat (Если вы хотите задать вопрос и получить на него ответ по анализу даных подключайтесь в наш чат);

https://boosty.to/denoise_lab (Если вы хотите поддержать проект, или получить более модные фишки по коду и продвижению подписывайтесь).

Теги:
Рейтинг 0
Комментарии 0

❓100 Вопросов по Машинному обучению (Machine Learning) - Вопрос_10

🔠Вопрос_10: Что такок Tarantool и как он устроен ? (Часть_2)

  1. Replication: Tarantool предлагает механизм репликации, который позволяет создавать реплики базы данных для обеспечения отказоустойчивости и масштабируемости. Репликация Tarantool основана на механизме репликации мастер-слейв (master-slave) и поддерживает асинхронное и синхронное реплицирование.

  2. Sharding: Tarantool поддерживает горизонтальное масштабирование с помощью шардинга данных. Шардинг позволяет распределить данные по нескольким узлам-серверам, что позволяет обрабатывать большие объемы данных и повышает производительность.

  3. Индексы: Tarantool предоставляет различные типы индексов для оптимизации запросов и обеспечения быстрого доступа к данным. Включая хеш-индексы, деревья и индексы, основанные на отсортированных списках.

    t.me/DenoiseLAB (Еесли вы хотите быть в курсе всех последних новостей и знаний в области анализа данных);

    t.me/DenoseLABChat (Если вы хотите задать вопрос и получить на него ответ по анализу даных подключайтесь в наш чат);

    https://boosty.to/denoise_lab (Если вы хотите поддержать проект, или получить более модные фишки по коду и продвижению подписывайтесь).

Теги:
Рейтинг 0
Комментарии 0

IS NOT NULL + OR

Иногда внутри SQL-запроса возникает необходимость проверить наличие/отсутствие NULL-значения в некотором наборе полей:

a IS NOT NULL OR b IS NOT NULL OR c IS NOT NULL

Но то же самое по смыслу условие можно записать гораздо короче с помощью функции coalesce:

coalesce(a, b, c) IS NOT NULL

Подробнее об особенностях работы со сложными выражениями можно прочитать в статье "PostgreSQL Antipatterns: вычисление условий в SQL".

IS NOT NULL + AND

Немного изменим условие - заменим OR на AND:

a IS NOT NULL AND b IS NOT NULL AND c IS NOT NULL

Тут нам поможет ROW-конструктор:

(a, b, c) IS NOT NULL

IS NULL + AND

Теперь заменим IS NOT NULL на IS NULL:

a IS NULL AND b IS NULL AND c IS NULL

Тут достаточно вспомнить из логики, что (A and B) эквивалентно not(not A or not B), а (A or B) - not(not A and not B), поэтому легко применяем not к варианту IS NOT NULL + OR:

coalesce(a, b, c) IS NULL

Или с помощью ROW-конструктора:

(a, b, c) IS NULL

Разница будет заключаться в том, что coalesce вычисляет выражения "лениво" (см. "«Ленивый сахар» PostgreSQL").

IS NULL + OR

Остался последний вариант:

a IS NULL OR b IS NULL OR c IS NULL

Тут мы можем "обратить" вариант IS NOT NULL + AND:

NOT (a, b, c) IS NOT NULL

Заметьте, что пара NOT тут "не сокращается", иначе получился бы предыдущий вариант.

Теги:
Всего голосов 8: ↑8 и ↓0 +8
Комментарии 0

❓100 Вопросов по Машинному обучению (Machine Learning) - Вопрос_10

🔠Вопрос_10: Что такок Tarantool и как он устроен ? (Часть_1)

✔️Ответ: Tarantool — это база данных с открытым исходным кодом и высокой производительностью, которая сочетает в себе функциональность базы данных и сервера приложений. Tarantool состоит из:

  1. In-Memory и Disk Storage: Tarantool предлагает возможность хранения данных как в оперативной памяти (In-Memory), так и на диске (Disk Storage). Это позволяет обеспечить высокую скорость доступа к данным и сохранить данные на долгосрочное хранение.

  2. Lua: Tarantool использует язык программирования Lua для создания хранимых процедур (stored procedures), триггеров и бизнес-логики. Lua обеспечивает гибкость и простоту внедрения пользовательского кода в базу данных.

  3. NoSQL и Lua Spaces: Tarantool поддерживает гибкую модель данных, известную как Lua Spaces. Lua Spaces предоставляет простой способ хранения и извлечения данных, а также мощные возможности индексирования и поиска.

     t.me/DenoiseLAB (Еесли вы хотите быть в курсе всех последних новостей и знаний в области анализа данных);

    t.me/DenoseLABChat (Если вы хотите задать вопрос и получить на него ответ по анализу даных подключайтесь в наш чат);

    https://boosty.to/denoise_lab (Если вы хотите поддержать проект, или получить более модные фишки по коду и продвижению подписывайтесь).

Теги:
Рейтинг 0
Комментарии 0

Проект openSUSE выбирает новый логотип. Разработчики дистрибутива openSUSE объявили о завершении стадии приёма заявок от дизайнеров на конкурс логотипов и перешли к голосованию, в котором может участвовать любой желающий.

Голосование по логотипам openSUSE продлится до 10 декабря включительно. В рамках этого мероприятия пользователям предлагается выбрать новые логотипы для всего проекта openSUSE и для развиваемых в его составе дистрибутивов Tumbleweed, Leap, Slowroll и Kalpa. Для участия в конкурсе заявлено 36 логотипов openSUSE, 18 логотипов для Kalpa, 24 логотипа для Slowroll, 21 логотип для Leap и 32 логотипа для Tumbleweed.

Источник: OpenNET.

Теги:
Рейтинг 0
Комментарии 0

Опубликован выпуск интегрированной среды разработки Qt Creator 12.0, предназначенной для создания кроссплатформенных приложений с использованием библиотеки Qt. Поддерживается как разработка классических программ на языке C++, так и использование языка QML, в котором для определения сценариев используется JavaScript, а структура и параметры элементов интерфейса задаются CSS-подобными блоками. Готовые сборки сформированы для Linux, Windows и maсOS.

В новой версии:

  • добавлен плагин Compiler Explorer, позволяющий в режиме реального времени по мере набора исходных текстов отслеживать генерируемый компилятором ассемблерный код и выявляемые компилятором ошибки;

  • добавлена возможность отладки и профилирования сборочных сценариев CMake при помощи протокола DAP (Debug Adapter Protocol), поддерживаемого начиная с выпуска CMake 3.27;

  • добавлен плагин ScreenRecorder (Help > About Plugins > ScreenRecorder) для записи на видео процесса работы в Qt Creator;

  • значительно сокращено время запуска на некоторых системах;

  • Clangd и Clang analyzer обновлены до выпуска LLVM 17.0.1;

  • улучшены средства для рефакторинга кода на языке C++;

  • в редактор текста в формате Markdown добавлены кнопки для выбора стилей текста;

  • добавлена возможность использования прокси для доступа к интеллектуальному помощнику GitHub Copilot, способному генерировать типовые конструкции при написании кода;

  • Добавлены связанные с проектами настройки наименования файлов с кодом на C++ и документирования через комментарии.

Источник: OpenNET.

Теги:
Всего голосов 4: ↑4 и ↓0 +4
Комментарии 0

Ближайшие события

Битва пет-проектов
Дата 25 сентября – 30 ноября
Место Онлайн
HighLoad++ 2023
Дата 27 – 28 ноября
Время 9:00 – 20:00
Место Москва Онлайн
Открытая трансляция Главного зала HighLoad++ 2023
Дата 27 – 28 ноября
Время 10:00 – 20:00
Место Онлайн
Business Code Conference
Дата 30 ноября
Время 17:30 – 00:00
Место Москва
Импульс Т1
Дата 1 декабря
Время 12:30
Место Москва Онлайн
YaTalks 2023 — главная конференция Яндекса для IT сообщества
Дата 5 – 6 декабря
Время 9:00 – 23:59
Место Москва Белград Онлайн

Как часто вы сталкивались с проблемой изменения данных, переданных в качестве параметра? Иллюстрация:

int getCountBagel(List<String> list) {
  list.retainWhere((e) => e == '🥯');
  return list.length;
}

main() {
  final basket = ['🍪', '🧇', '🥯', '🥯', '🥨'];
  final countBagel = getCountBagel(basket); // 2
  print(basket); // [🥯, 🥯]
}

Выполнив копирование getCountBagel([...basket]), вы обезопасите себя. Да, это ужасный способ посчитать количество элементов. Но представьте, что вы зависите от стороннего api, к которому у вас нет непосредственного доступа.

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

void increase(int i) => i++;

main() {
  int i = 0;
  increase(i);
  print(i); // 0
}

Если вы хотите передать что-то по ссылке, то заверните это в класс:

class Wrapper {
  Wrapper(this.i);
  int i;
}

void increase(Wrapper w) => w.i++;

main() {
  final w = Wrapper(0);
  increase(w);
  print(w.i); // 1
}

но такой способ ухудшит SRP (принцип единой ответственности) и усложнит тестирование функции increase... Ответ в комментарии 🎊

Теги:
Всего голосов 1: ↑1 и ↓0 +1
Комментарии 1

Ни для кого не секрет, что достучаться до живого человека техподдержки бывает весьма затруднительно. Нулевой линией выстраивают глупых и навязчивых роботов. Чтобы его преодолеть, кто-то начинает ругаться нецензурно (и нынешние боты картинно "обижаются"), кто-то делать что-то ещё более несуразное.

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

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

В качестве затравки предлагаю найденную и проверенную фразу для вызова человеков в чате поддержки теле2.

Итак:

  • tele2 - бот изыди

К слову о восстании роботов - яндексовый Шедеврум отказался генерировать картинку с таким промптом... Кто пробьёт эту защиту? ))
К слову о восстании роботов - яндексовый Шедеврум отказался генерировать картинку с таким промптом... Кто пробьёт эту защиту? ))

Теги:
Рейтинг 0
Комментарии 0

Периодически в коде запросов и "заточенных" под них индексов наблюдаю примерно подобные куски:

coalesce("Фамилия", '') || ' ' || coalesce("Имя", '') || ' ' || coalesce("Отчество", '')

Понятно, что тут хотели обезопасить себя от заполненности любого из полей NULL-значением, чтобы случайно вся строка не заNULL'илась.

Правда, тут возникают некоторые артефакты в виде "висящих пробелов" типа ' Иван Иванович' или 'Иванов Иван '.

Но ведь есть решение изящнее и проще - функция concat_ws:

concat_ws(' ', "Фамилия", "Имя", "Отчество")

RTFM!

Теги:
Всего голосов 7: ↑7 и ↓0 +7
Комментарии 7

Яри Комппа уже давно жалуется, что графические API усложнились и что молодому разработчику будет тяжело в них разобраться.

Впрочем, кому как не ему об этом задумываться? Яри вошёл в мир программирования без высшего образования. Первую работу после армии ему помогла найти победа в конкурсе Assembly1998. (В Технологический университет Эспоо-Вантаа Комппа поступил куда позднее, лишь в 2004 году.)

На протяжении своей карьеры Комппа занимался разработкой 3D-движков, портированием игр, просто программным и аппаратным обеспечением. Разработчик по сей день принимает участие в исследованиях и читает лекции.

В сентябре этого года Unity Technologies сменила тарифы, испытала волну негодования от разработчиков и была вынуждена пойти на попятную. Но многие задумались: а нужен ли вообще кем-то написанный движок? Почему бы не написать движок самостоятельно?

Комппа достал из загашников одну свою старую картинку. На ней представлен код Hello Triangle, демонстрационной программы для вывода на экран треугольника, для различных спецификаций программных интерфейсов. Яри сравнил шесть API графики: OpenGL 1.x, OpenGL 3, Vulkan и DirectX трёх версий.

Комппа признаёт, что картинка сугубо развлекательная, но тенденция его всё равно пугает.

Полная версия этой картинки по длине выходит за 20 тысяч пикселей.

Теги:
Всего голосов 9: ↑9 и ↓0 +9
Комментарии 0

После прочтения статьи «Увядает ли ремесло программиста?» и комментариев к ней появилась несколько парадоксальная мысль на эту тему, которую я хотел бы обсудить.

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

Как и любая хлёсткая фраза правдива она лишь отчасти, но тем не менее, своя доля правды в ней есть.

А теперь смотрим на рассуждения в статье из первого абзаца.

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

А вот джунам придётся несладко.
Начальные ступени становятся ещё выше.

Теги:
Всего голосов 3: ↑3 и ↓0 +3
Комментарии 2

После объявления о санкциях со стороны Минфина США против Санкт‑Петербургской биржи резко выросло число фишинговых сайтов, маскирующихся под торговые площадки в рунете. Основные сообщения от имени псевдобирж связаны с предложениями покупки ценных бумаг, вывода денег из активов и криптовалюты, рассказали информационной службе Хабра в пресс‑службе Angara Security.

В августе и сентябре 2023 года Angara Security зафиксировала около 300 мошеннических площадок, маскирующихся под торговые площадки, в октябре их число выросло до 400. Однако за первую половину ноября выявлено уже около 300 сайтов и TG‑площадок.

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

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

Теги:
Всего голосов 6: ↑6 и ↓0 +6
Комментарии 0

TeamViewer для Linux-юзеров - sshx

На днях наткнулся на классный сервис. Бесконечная доска, на которой можно наплодить кучу терминалов какого-то устройства. Вводишь одну команду, получаешь ссылку, делишься ей с друзьями - теперь вы вместе можете работать с одной машинкой. Удобно, когда, например, надо кому-то что-то объяснить или вместе сделать что-то не очень крупное

Написано, кстати, на Расте.

Теги:
Всего голосов 3: ↑3 и ↓0 +3
Комментарии 0