- Видео 118
- Просмотров 135 891
Easy IT
Украина
Добавлен 6 май 2018
Человеческим языком о простом и сложном в мире информационных технологий
Проверка условий в Linux shall #easyit #linuxcommandline @EasyITChannel
Разбираем как в Linux устроена проверка условий. Три типа проверок - файлы, строки, числа.
Полную документацию по команде test можно получить если воспользоваться командой: man test
Самые часто используемые опции для проверок:
Проверка доступа к файлу:
-d - является ли файл каталогом?
-f - это обычный файл?
-L - это символическая ссылка?
-r - установлены ли права на чтение?
-w - установлены ли права на запись?
-s - файл нулевого размера?
-u - установлен ли SUID флаг?
-x - установлены ли права на запуск?
Проверка строк:
= - строки равны?
!= - строки не равны?
-z - строка пуста?
-n - строка не пуста?
Проверка чисел:
-eq - числа равны?
-ne - числа не равны?
-gt - первое больше второго?
-lt - первое меньше второ...
Полную документацию по команде test можно получить если воспользоваться командой: man test
Самые часто используемые опции для проверок:
Проверка доступа к файлу:
-d - является ли файл каталогом?
-f - это обычный файл?
-L - это символическая ссылка?
-r - установлены ли права на чтение?
-w - установлены ли права на запись?
-s - файл нулевого размера?
-u - установлен ли SUID флаг?
-x - установлены ли права на запуск?
Проверка строк:
= - строки равны?
!= - строки не равны?
-z - строка пуста?
-n - строка не пуста?
Проверка чисел:
-eq - числа равны?
-ne - числа не равны?
-gt - первое больше второго?
-lt - первое меньше второ...
Просмотров: 52
Видео
React Router. Как открыть саб-роут в модалке? @EasyITChannel #reactjs #reactrouter
Просмотров 49814 дней назад
Отвечаю на вопрос как с использованием "нового" поодхода открывать под-роуты в модальном окне. Предыдущие части по теме React Router: ruclips.net/video/eRt0cIS2PZ0/видео.html Исходник: github.com/easy-linux/reactjs/tree/main/ReactRouterModal Рабочее приложение: easy-linux.github.io/reactrouter_with_modal/ Сериал "Создание SPA приложения на чистом JS": ruclips.net/video/eqAefmCqA6M/видео.html По...
React Router + lazy загрузка компонентов роутов @EasyITChannel #reactjs #reactrouter
Просмотров 22421 день назад
Разбираемся как произвести рефакторинг существующего проекта и добавить поддержку недавно появившегося в библиотеке новые возможности ReactRouter DataAPI плюс Lazy лоадинг для компонентов используемых как обработчики роутов. Предыдущая часть: ruclips.net/video/eRt0cIS2PZ0/видео.html Исходник: github.com/easy-linux/reactjs/tree/main/ReactRouterLazy Рабочее приложение: easy-linux.github.io/reactr...
Переменные в Linux #easyit #linuxcommandline @EasyITChannel
Просмотров 295Месяц назад
Разбираемся какие бывают переменные в ОС Linux. Интересное по тематике Linux: ruclips.net/video/yuYEZCOhukU/видео.html ruclips.net/video/n2peak03KXo/видео.html ruclips.net/video/NEeCkRIitVg/видео.html ruclips.net/video/6sRQQKBE3X8/видео.html ruclips.net/video/GCLjwQ1GCRU/видео.html ruclips.net/video/Q3NJ0-yfZts/видео.html Еще интересное на канале: Сериал "Создание SPA приложения на чистом JS": ...
React Router + новые возможности DataAPI @EasyITChannel #reactjs #reactrouter
Просмотров 286Месяц назад
Разбираемся как произвести рефакторинг существующего проекта и добавить поддержку недавно появившегося в библиотеке новые возможности ReactRouter DataAPI. Исходник: github.com/easy-linux/reactjs/tree/main/ReactRouterFetch Рабочее приложение: easy-linux.github.io/reactrouter_with_data_api/ Сериал "Создание SPA приложения на чистом JS": ruclips.net/video/eqAefmCqA6M/видео.html Полезные видео для ...
Права доступа к файлами и каталогам в Linux #easyit #linuxcommandline @EasyITChannel
Просмотров 104Месяц назад
Разбираем все возможные права доступа к файлами и каталогам в операционной системе Linux. Два способа установки прав доступа - символьный и абсолютный. Интересное по тематике Linux: ruclips.net/video/yuYEZCOhukU/видео.html ruclips.net/video/n2peak03KXo/видео.html ruclips.net/video/NEeCkRIitVg/видео.html ruclips.net/video/6sRQQKBE3X8/видео.html ruclips.net/video/GCLjwQ1GCRU/видео.html Еще интере...
Файловые потоки и каналы в Linux #easyit #linuxcommandline @EasyITChannel
Просмотров 1,6 тыс.2 месяца назад
На простых примерах разбираемся как любая программа Linux взаимодействует со своим окружением, как отдельные программы и команды Linux можно объединять в сложные цепочки обработки данных. Интересное по тематике Linux: ruclips.net/video/yuYEZCOhukU/видео.html ruclips.net/video/n2peak03KXo/видео.html ruclips.net/video/NEeCkRIitVg/видео.html ruclips.net/video/6sRQQKBE3X8/видео.html Еще интересное ...
Screen -знакомство с одной из самых крутых программ #easyit #linuxcommandline @EasyITChannel
Просмотров 1,1 тыс.2 месяца назад
Разбираемся как комфортно и безопасно работать по сети с помощью программы Screen. Интересное по тематике Linux: ruclips.net/video/6sRQQKBE3X8/видео.html ruclips.net/video/yuYEZCOhukU/видео.html ruclips.net/video/NEeCkRIitVg/видео.html ruclips.net/video/n2peak03KXo/видео.html Еще интересное на канале: Сериал "Создание SPA приложения на чистом JS": ruclips.net/video/eqAefmCqA6M/видео.html Полезн...
Знакомимся со всеми возможными типами файлов в Linux #easyit #linuxcommandline @EasyITChannel
Просмотров 3813 месяца назад
На простых примерах знакомимся со всеми возможными типами файлов в операционной системе Linux. Интересное по тематике Linux: ruclips.net/video/yuYEZCOhukU/видео.html ruclips.net/video/n2peak03KXo/видео.html ruclips.net/video/NEeCkRIitVg/видео.html Еще интересное на канале: Сериал "Создание SPA приложения на чистом JS": ruclips.net/video/eqAefmCqA6M/видео.html Полезные видео для лучшего понимани...
Удобная работа с удаленной файловой системой по SSH #easyit #linuxcommandline @EasyITChannel
Просмотров 1,1 тыс.3 месяца назад
Разбираемся как максимально просто работать с удаленной файловой системой по протоколу SSH с помощью файлового менеджера Midnight Commander. Интересное по тематике Linux: ruclips.net/video/yuYEZCOhukU/видео.html Еще интересное на канале: Сериал "Создание SPA приложения на чистом JS": ruclips.net/video/eqAefmCqA6M/видео.html Полезные видео для лучшего понимания JS: Стрелочные функции 1 - ruclips...
HTML Forms, основы, часть 4 #easyit #js #javascript @EasyITChannel
Просмотров 633 месяца назад
Полностью динамическое создание запроса по клику. Включая генерацию изображения. Запрос полностью аналогичен тому, который отправляли в предыдущем видео. Исходник: github.com/easy-linux/web-basics/tree/main/6 Сериал "Создание SPA приложения на чистом JS": ruclips.net/video/eqAefmCqA6M/видео.html Полезные видео для лучшего понимания JS: Стрелочные функции 1 - ruclips.net/video/21wNsy72BKg/видео....
HTML Forms, основы, часть 3 #easyit #js #javascript @EasyITChannel
Просмотров 643 месяца назад
HTML Forms, основы, часть 3 #easyit #js #javascript @EasyITChannel
HTML Forms, основы, часть 2 #easyit #js #javascript @EasyITChannel
Просмотров 734 месяца назад
HTML Forms, основы, часть 2 #easyit #js #javascript @EasyITChannel
HTML Forms, основы, часть 1 #easyit #js #javascript @EasyITChannel
Просмотров 1844 месяца назад
HTML Forms, основы, часть 1 #easyit #js #javascript @EasyITChannel
Продвинутое копирование файлов на любой POSIX системе #easyit #linuxcommandline @EasyITChannel
Просмотров 7814 месяца назад
Продвинутое копирование файлов на любой POSIX системе #easyit #linuxcommandline @EasyITChannel
Текстовый чат с любым пользователем linux сервера #easyit #linuxcommandline @EasyITChannel
Просмотров 1,2 тыс.4 месяца назад
Текстовый чат с любым пользователем linux сервера #easyit #linuxcommandline @EasyITChannel
Canvas API, простейший способ редактирования картинок #easyit #js #javascript @EasyITChannel
Просмотров 2925 месяцев назад
Canvas API, простейший способ редактирования картинок #easyit #js #javascript @EasyITChannel
Web Worker & Atomics - работа с разделяемой памятью #easyit #js #javascript @EasyITChannel
Просмотров 3225 месяцев назад
Web Worker & Atomics - работа с разделяемой памятью #easyit #js #javascript @EasyITChannel
Chrome Extension + Web Clipboard API #easyit #js #javascript #chromeextensions
Просмотров 3366 месяцев назад
Chrome Extension Web Clipboard API #easyit #js #javascript #chromeextensions
10 самых распространенных признаков обмана на IT курсах #easyit #js #javascript @EasyITChannel
Просмотров 9456 месяцев назад
10 самых распространенных признаков обмана на IT курсах #easyit #js #javascript @EasyITChannel
JavaScript Generator - создание, поведение, использование #easyit #js #javascript @EasyITChannel
Просмотров 5387 месяцев назад
JavaScript Generator - создание, поведение, использование #easyit #js #javascript @EasyITChannel
Установка и базовая настройка контроллера умного дома на OrangePI Zero @EasyITChannel #OrangePI
Просмотров 2438 месяцев назад
Установка и базовая настройка контроллера умного дома на OrangePI Zero @EasyITChannel #OrangePI
Debouncing/Throttling - разгрузка обработчика событий #easyit #js #javascript @EasyITChannel
Просмотров 2358 месяцев назад
Debouncing/Throttling - разгрузка обработчика событий #easyit #js #javascript @EasyITChannel
Telegram WebApp, часть 3 #easyit #telegrambot #js #javascript #pixi.js @EasyITChannel
Просмотров 8169 месяцев назад
Telegram WebApp, часть 3 #easyit #telegrambot #js #javascript #pixi.js @EasyITChannel
Основы WEB для разработчиков, часть 2 #easyit #webbasics @EasyITChannel
Просмотров 43510 месяцев назад
Основы WEB для разработчиков, часть 2 #easyit #webbasics @EasyITChannel
Тестовое задание. 10 правил как повысить шансы #easyit #aboutIT #@EasyITChannel
Просмотров 17510 месяцев назад
Тестовое задание. 10 правил как повысить шансы #easyit #aboutIT #@EasyITChannel
Основы WEB для разработчиков, часть 1 #easyit #webbasics @EasyITChannel
Просмотров 1,3 тыс.11 месяцев назад
Основы WEB для разработчиков, часть 1 #easyit #webbasics @EasyITChannel
Telegram WebApp, часть 2 #easyit #telegrambot #js #javascript #pixi.js @EasyITChannel
Просмотров 2,3 тыс.11 месяцев назад
Telegram WebApp, часть 2 #easyit #telegrambot #js #javascript #pixi.js @EasyITChannel
Оптимизация игры на JavaScript (часть 5) #easyit #js #javascript #pixi.js @EasyITChannel
Просмотров 533Год назад
Оптимизация игры на JavaScript (часть 5) #easyit #js #javascript #pixi.js @EasyITChannel
Портирование Create React App приложения на Vitejs и публикация в Vercel. @EasyITChannel #reactjs
Просмотров 447Год назад
Портирование Create React App приложения на Vitejs и публикация в Vercel. @EasyITChannel #reactjs
в поддержку автора! у вас уникальное музыкальное сопровождение к видео. вы наверное веселый по жизни человек. первое видео очень зашло. посмотрел с удовольствием хоть и пишу приложухи уже 2й год на реакте.
В react router 6 для lazy роутоа suspense не нужен?
Добрый день. Если делать как в ролике - то нет. Компонент загружается до начала рендера и следовательно Suspense не требуется. Сложности могут возникнуть если нужно показать скелетон лоадер или спиннер. Тогда нужно делать немного по-другому и следовательно понадобится и Suspense, и Await.
@@EasyITChannel При lazy load страниц если загрузилась страница и при последующих переходов к нему уже с кэша будет взята да?
Вялікі дзякуй :)
спасибо 😇
посмотрел видео и на рабочем проекте сделал так же, все отлично работает, спасибо) еще интересно, как правильно использовать errorBoundary в "новом" подходе (ниже опишу как я использовал) или достаточно к каждой странице добавлять errorElement? так же интерерсует момент по воду lazy, вижу в девтулзах что, когда использую lazy, каждый компонент подгружается отдельным файлом (не одна страница как один отдельный файл, а все компоненты, которые есть на этой странице подгружаются отдельно, dev сборка, пока не собирал билд), так и должно быть? const ErrorBoundaryLayout = () => ( <ErrorBoundary> <Outlet /> </ErrorBoundary> ) export const router = createBrowserRouter([ { element: <ErrorBoundaryLayout />, children: [.......] }])
При "новом" подходе это делается по-другому: export const ErrorBoundary = () => { let error = useRouteError() return <div>{JSON.stringify(error)}</div> } export const router = createBrowserRouter([ { element: <RootLayout />, children: [ { path: '...', lazy: async () => { Component: ..., loader: ..., errorElement: <ErrorBoundary /> } } ] }]) Т.е. можно для всех роутов один компонент ошибки использовать, можно для каждого свой.
@@EasyITChannel понял, спасибо, сейчас попробую сделать как вы описали)
Почему у вас нет плейлиста для расширений?
Так там пару видео всего. Добавил плейлист.
@@EasyITChannel Спасибо
Спасибо большое, а регистрация, аутентификация возможна с данными из аккаунта пользователя?
Конечно можно
спасибо 😇
Привет, спасибо за разбор, есть такой вопрос: Не видел ли ты такого, что после загрузки страницы, в фоне подгружались все остальные страницы. Мне это нужно например для анимации переключения страниц, а с lazy load там лоадер и эффекта не видно..
Добрый день. Ну подгрузить компоненты в фоне не сложно. Достаточно воспользоваться тем же динамическим импортом, как внутри функции lazy. Другое дело, что там же еще и данные вероятно грузятся? Чтобы страница загрузилась до фактического получения данных нужно использовать defer, компоненты Await и Suspense. Я об этом тоже расскажу, но по плану после SSR.
Супер, круто, возьму на вооружение))
Спасибо за видео, а можно про публикацию расширения в маркете google chrome, я так понимаю что запакованное приложение не получится установить для другого пользователя?
Добрый день. Для публикации нужно зарегистрировать аккаунт разработчика стоит 5 долларов. Правильно заполнить манифест, в зависимости от функционала есть и другие условия, загрузить zip, пройти модерацию и всё. Сложного там ничего нет, если очень надо, то не проблема. Но если нужно просто свой код спрятать, то есть способ попроще.
@@EasyITChannel спасибо за ответ, по скрытию кода не слышал, а если я опубликую расширение в магазине, далее при обновлении, его новые версии нужно будет заново каждый раз снова грузить и магазин и старую удалять?
@@zndesigner9966 Нет, нужно только загрузить новую версию. Старая останется. После того как появится новая версия юзеры смогут обновиться. Принцип тот же как в аппсторе или плеймаркете.
Привет, спасибо за видео! Интересует один момент, как в таком подходе (createBrowserRouter) реализовать функционал открытия одного поста в модальном окне (модальное окно должно открываться с новым url), при этом на заднем фоне должно быть видно предыдущую страницу? /posts --> click on post with id 1 --> /posts/1 --> открывается модальное окно с данными post with id 1 и на заднем фоне виден список из /posts. P.S. в классическом подходе работает без проблем (передаем location) Thanks!
На v6 сделать это еще проще. Причем не важно используется DataAPI или нет, и на классике работает тоже. Даже состояние передавать не нужно :) Запишу ответ на вопрос.
@@EasyITChannel Спасибо за ответ! Вижу видео уже на канале, оперативно)
@@mtrkhvch Пожалуйста. Повезло, было время на это.
Автор только начинает , так что давай продолжай! Из минусов - нужен сценарий, нужна теоретическая база в видео. Это все для того что бы было понятно что делаешь в принципе, а не на конкретном примере, а то сложно вникать в проект вникая с этого видео. Да и не понятно как понять что наш lazy работает и в чем плюс
Спасибо за просмотр и за ценные советы. Сценарий используется, цели рассказать обо всем на свете в одном 10 минутном видео не стояло. Цель большинства видео - на конкретном работающем примере показать решение какой-то задачи. Это отправная точка для собственных исследований по теме. Если Вы не понимаете о чем вообще речь, то возможно эта тема не для Вас.
@@EasyITChannel в том то и дело - что слишком конкретно, конкретный проект с конкретными файлами с конкретным названием ) сделай более общее хоть немного и будет отлично )
Ну тут некоторое противоречие в Ваших рассуждениях. Любой проект конкретный. Файлы, названия, данные... Какой бы кусок кода я не придумал, он будет конкретным и для 100% проектов (которые тоже конкретные) не подойдет без осмысления со стороны разработчика. В этом и предыдущем ролике по сабжу рассказывается как с православного, много лет существующего, такого родного для большинства разрабов, подхода перейти на относительно новый. Быстро и с минимумом усилий. Особо хорошо это проявится на следующем шаге, когда SSR добавим. Тут буквально - делай раз, делай два. Это рецепт, такой формат видео. Если очень нужно объяснить что такое лейзи лоадинг, для чего, и почему (желательно) его прикрутить - это надо отдельное видео снимать.
спасибо 😇
Спасибо тебе огромное! Лучшее видео по вебапп
Спасибо за просмотр и поддержку.
спасибо 😇
И Вам спасибо за поддержку :)
Спасибо за видео, очень круто рассказываешь! Жду новых видео по линуксу
И Вам спасибо за просмотр и поддержку. Следующее видео как раз по линукс будет.
А можно сделать в боте запуск игры в отдельном окне, а не в чате? Как это было в процессе отладки через botfather
Можно. Это разные способы запуска.
Спасибо 😇
точно. еще одно непростое занятие это разобраться в собственном коде который написал неделю назад
Отличное замечание.
Если видео претендует на обучающее и для новичков, то хочется отметить один недостаток. Это редактирование package.json в ручную. Для этого следует использовать npm или другой менеджер.
Недостаток это или достоинство вопрос открытый. В редактировании package.json вручную нет ничего плохого. Правда как и в любом другом деле надо понимать что делаешь. Это относится и к новичкам и к тем, кто думает, что он уже не новичок.
спасибо огромное за видео матерьял. а не подскажите если я хочу сделать приложение для отслеживания выпитой воды
Добрый день. Надо посмотреть api. Если есть готовый то это легко. Если нет надо делать кастомные данные и их обработку. Я сейчас вообще другим занят, но спасибо за идею. Надо будет покурить мануалы ;)
@@EasyITChannel есть готовое решение от гармин но мои часы слишком старые есть такое приложение но оно не выгружает данные в гармин конект
Спасибо 😇
Спасибо большое
И Вам спасибо за поддержку.
спасибо выручил!
Здравствуйте! Возможно ли менторство с вами по React?
Спасибо за видео. Но я так и не понял нафига нужен этот useSyncExternalStore. Чем это лучше, чем useReducer?
Смысл в том, что изменения внешнего хранилища (на то оно и внешнее) может происходить не по инициативе React. Вы сможете как-то подключить внешнее хранилище данных, так чтобы изменение в нем приводило к изменению state React компонента только с помощью useReducer? Пример можно глянуть? Всегда держите в уме, что изменения такие могут происходить вне React компонента. И чем тогда useReducer поможет. Хук рассмотренный в видео не для повседневного использования, а для создателей библиотек, чтобы интегрировать их с React.
не вздумайте покупать от мерион академи, та самая, которая на ютубе канал ведёт.
Это однозначно лайк. Всё четко и понятно.
Спасибо.
Ещё бы видео с примерами применения итераторов для обработки тех самых сложных кейсов работы с асинхронной логикой
Познакомьтесь с redux-saga. Там всё на генераторах.
@@EasyITChannel я про кейсы, когда самому нужно написать логику, а не использовать библиотеку
Я не про «использовать библиотеку» а как раз о кейсах. Это отличный пример. Лучший способ обучения - разбираться в исходниках и подходах решения задач в популярных библиотеках.
очень интересно и полезно, спасибо. Коммент для поддержки.
Спасибо 🙏
очень интересно и полезно, спасибо!
очень интересно и полезно, спасибо!
Спасибо за поддержку.
спасибо, познавательно! Повторение - мать учения!
следующая запись: const fetch = (...args) => import('node-fetch') и тд - это обход для es6 импортов без type: module?
Это просто динамический импорт. Его можно использовать внутри кода и именно тогда, когда нужно.
Почему отказываются от тестовых, очень просто, работодатель в 90% не то, что обратной связи не дают, а вообще никак не сообщают о результате отбора даже отрицательном. Чертовски жаль потраченного времени и отбивает желание после нескольких таких тестовых.
Да это так. Но проблема в том, что на действительно хорошие вакансии очень много кандидатов и встретиться или даже поговорить по телефону со всеми нет никакой возможности. Усугубляется тем, что 90% из них вообще не соответствуют вакансии и просто тратят время следуя идее «авось прокатит». Тестовое задание для того чтобы отсеять тех, с кем и говорить нет смысла. Поэтому отказавшись от тестового Вы просто не попадете на интервью и всё. То что не отвечают это увы обычная практика, с этим нужно смириться и задуматься о реальном уровне своих решений на эти задания. Это нормально, что работодатель выбирает лучших. Надо не жаловаться на судьбу, а повышать свой скилл. Ничего не поделаешь - это рынок так устроен, никто не хочет платить деньги за неудовлетворительную работу.
@@EasyITChannel Работодателям бы нужно побольше уважения к соискателям потративших свое время на тестовое. И давать хотя бы информацию об отказе, а не гробовое молчание. Да и само ТЗ тестовых иногда составлено на "отвали" с ошибками, при том уточнений и комментарии от работодателя не дают. Это не жалоба, а реальность. Действительно очень много соискателей, я понимаю. Даже плюс-минус скилованных и равных, так вот, поставьте себя на место соискателя, когда бы вы перегорели, если потратив кучу времени на действительно сложные тестовые вам будут либо отказ без объяснения, либо вообще ничего.
Я согласен с Вами, поэтому всегда даю развернутый ответ если есть в этом смысл. Если же это очередной пользователь ChatGPT то в чем смысл ответа, если претендент меня не уважает? Задание может быть не корректным или с ошибками. Но это Ваш взгляд, с другой стороны на это могут смотреть по другому. Возможно смысл как раз в том, сможете ли распознать ошибки и некорректности или нет. А может Вы ошибаетесь и ошибок нет. Основной посыл в том, что не стоит лишать себя шанса просто из-за обиды на весь этот несправедливый мир.
@@EasyITChannel вы наверное один из немногих исключений, кто дает ответ)) Мое уважение! Что касается ошибок, везде люди, они тоже могут ошибаться или просто делать на "отвали" называя это проверкой. Обиды все же нет, просто время, это ресурс и когда он тратится в пустоту, начинаешь относиться к этому иначе.
Да, я Вас хорошо понимаю. У этого есть очень неприятная причина. Сейчас развелось много псевдо-курсов, которые просто дурят людям головы вместо обучения и убеждают, что они могут чего-то добиться если просто будут спамить любую вакансию. Где-то да сработает. Из-за этого любая вакансия подвергается наплыву претендентов абсолютно не адекватных предложенной позиции, часто даже требования особо не читают. Например, в требованиях написано знание Реакт, в резюме о реакте ни слова. HR созванивается - а я быстро обучаюсь :) Резюме написаны как под копирку, видно, что это просто шаблон полученный на курсах или еще где-то. По резюме понять ничего невозможно, там кроме "я высоко мотивированный работник, пунктуальный, исполнительный, креативный, широко мыслящий, легко решающий сложные задачи" по сути ничего нет. Выслушать всех не реально. Я, например, не могу сразу после первого вопроса прекратить интревью и попросить на выход, как многие коллеги делают. Поэтому трачу минимум полчаса на абсолютно бесперспективное общение. Чтобы человек хоть понял, что от него хотят и хотя бы немного подготовился и подтянул знания. Но ведь и работать надо, тех-интервью это просто помощь компании. Поэтому максимум 2 интервью в день, чаще одно. Если приходит 100+ резюме то как это разрулить без тестового задания? Так 30 процентов откажется, на проверку остальных 60 процентов выполненных заданий потратишь от 10 секунд до 5 минут, вместе с рецензией. А оставшихся 10% попадут на интервью, это уже можно потянуть. Самое смешное, что все понимают, что идеального кандидата не найти и выбирают не по критерию "он знает всё, что нужно", а чаще всего по принципу "остальные еще хуже". Увы, но это факт.
А первая часть видео есть? 😢
:) Если заглянуть в описание и найти первую ссылку, то это будет именно она. Там и текст есть, для большей понятности.
@@EasyITChannel действительно)
Знакомлюсь с Linux, видео оказалось очень полезным! Спасибо!
И Вам спасибо за поддержку. Надеюсь продолжите изучать Linux. Не только "фишки", но и основательно. Удачи Вам!
zellij подходит совсем для новичков
Так и есть. Что бы Вы хотели увидеть не для совсем новичков?
Хорошо, что я играю на линуксе, и поэтому не боюсь мышей.
Когда-то давно, где-то в 2002-2003, замутили с коллегами выделенный сервачок CS на корпоративном linux сервере. С плагинами, статистикой, записью реплеев и т.д. все как положено. Так вот оказалось, что с линуха даже под wine пинг и картинка были круче чем из-под винды. Мышей никто не боится, просто очень часто, если ты "тракторист" в игре - это недостаток, а если в работе, то наоборот гораздо быстрее получается без мыши некоторые задачи закрывать.
@@EasyITChannel да я в целом согласен, это больше была лёгкая шутка такая.
@@fofanik Да я понял, что шутка. Спасибо за поддержку.
Аффтар Пафосу НаГнал столько, что МелкоМягкие, наверное, ОбоСрались! «…Гарантирую: После ПроСмотра ДаннОго Видео, Ваш Мир ИзМенитСя, и НиКогда уже не будет Прежним». Если бы Я умел так Говорить - ПоШёл бы в Политики или Шоу вёл бы по ЗомбоЯщиКу! В Каждом (Втором?) Предложении Слово «Linux», хотя КонСоль, Screen, и всё такое Применимо к гораздо бо́льшему Спектру OSей… Если уж Debian (к тому же «Bionic Beaver»), то, может быть уже «apt» вместо «apt-get»? Много Лет НаЗад пытался Сравнивать ПроИзВодительнОСть Screen и TMux (на Intel® Atom™ N270 1.60GHz) - НиКаких Существенных Различий не ОбНаружил, возможно, Плохо Сравнивал. Но, поскольку TMux «НеМного Удобнее» (Кстати, позволяет ВышеУпомянутой Мышой Панельки/Регионы ПереКлючать :)) и с более «Вменяемым» КонФигом, то остановился на Ней… Я Сам Юзаю Пингвинус достаточно Редко (и не Ведаю Всех ТонКостей), но полагаю, что ИзМерять «среди Linux-Юзеров Крутость Пользователя» Степенью Его «КрысоФобии» - Это Дикая Дичь! За 14:15 Чуть «Диз» не Бахнул Видосу, честно, но «Удержался», т.к. ОбЗор-то в Целом Полезен для Многих… 14:21 На НеДоСягаемой Высоте НаХодятСя Те, у Кого нет не только Мыши с Курсором, но и Монитора с Жёстким Диском! Они Компилируют Софт «в Уме» в Двоичный Код и ПроБивают ПерфоКарты Зубами! Учитесь, Дети ГигаБитных ИнтэрНэтов! Программа на ПерфоКартах, Данные на ПерфоЛентах, Результат на Принтере, ИллюстРация на Плоттере! 16:42 Кстати, после «ПриБития» Сессии с НеЗаВершённым MidNight Commander, что остаётся в Каталоге «ls -lsAFG "/tmp/mc-$(id -n -u "${USER}")"» и Кто будет Вытирать Это?
Это не пафос, а сарказм и известные линуксоидные мемчики. Если нет чувства юмора Вам вообще, наверное, не легко живется. Вон как пишите странно, не иначе с претензией на «не такой как все». Кстати, каталог tmp в современных дистрибутивах чистится автоматически. Да и места эти файлы занимают ерунду. Даже на сервере шало постараться чтобы хоть мегабайт занять. Но чисто формально - согласен, мусор надо подчищать.
tmux же лучше и более гибкий в настройке.
Уже ответил под другим постом. Кратко - зависимость от ncurses не всегда дает положительный эффект. Мне больше нравятся универсальные решения, которые будут работать всегда и везде, а не будут по 10 секунд обновлять скрин по нажатии любой кнопки при подключении на слабом канале или в терминале не поддерживающем ANSI Escape последовательности. Когда появился tmux я уже давно привык к screen, мне уже было удобно и гибко :)
15 лет уже использую. Как и vi. Почему? Потому что эти две мегаудобные штуки есть во ВСЕХ дистрах. Решают кучу проблем. Но многие боятся, потоу что "сложно, много кнопок, ниче не запомнить".. Мощь этих вещей перевешивает неудобство от запоминания кучи комбинаций. Особенно если авария и надо что то быстро поправлять или подключать коллег к решению. Когда нет времени на "а где тут мой любимый nano?", когда на сервере по соображениям ИБ нет интернета и ты ничего не поставишь. В ролике кстати неочевидный момент, на который стоило акцентировать внимание - открытое окно с двух разных терминалов это фишка для двух(трех/пятерых) разных пользователей которые могут удаленно зайти на сервер с разных частей света в одно окно скрина и коллективно решать проблему. Ну или какое-то обучение так проводить можно.
Да тут вообще можно МногоПользовательскую Игру ЗаМутить: ПодЦепляютСя скажем 100 (ну чем не «КороЛевская Битва»?) Админов на Один НеСчастный Сервант и пытаются Друг Друга Кикнуть в Одном Терминале на ПереГонки́! Последний, «ОставшийСя в Живых», Меняет IP-Адрес и DDшит Винт!
Полностью согласен, и что очень важно - освоив программу 15 лет назад, пользуешься и горя не знаешь. Не надо при выходе нового релиза опять с нуля разбираться в больных фантазиях разработчика. Тут он все кнопки поменял и переместил в неведомые места, тут самую важную для меня фичу переделал так, как ему кажется правильно. Я одно время работал в крупной конторе и там корпоративной средой разработки были vi и emacs, а ось - FreeBSD. Vi надо знать на базовом уровне минимум, так как, Вы правы, он есть всегда. И если решать задачи быстро и если нет прав что-то доустанавливать, то выбора особо и нет. По поводу двух терминалов, думал это очевидно. Но Вы правы, если человек еще не понимает, что отдельный терминал это по факту отдельный пользователь подключившийся откуда угодно, то может быть недопонимание этого важного момента.
Почему не Tmux?
По нескольким причинам. 1. Я не пользуюсь tmux 2. Когда появился tmux я уже 7 лет пользовался screen, зачем менять проверенный инструмент на что то еще? 3. tmux (как, к слову, и mc) построен на ncurses. Такие программы не всегда корректно работают на слабых каналах или на некоторых терминалах. Если нужна универсальность и надежность зависимость от ncerses может сыграть злую шутку в самый неожиданный момент.
@@EasyITChannel что за слабые каналы или некоторые терминалы, которые не справятся с ncurses? Intel 386? А так понятно.
@@AloneStroller Делал я как-то проект для AT&T. Подробности разглашать не могу, NDA. Так вот там у них "умные коробочки" с линуксом на борту(что-то типа busybox, но screen там был для админских нужд) коннектились к другим коробочкам по крайне медленным модемным соединениям и нужно было на тех удаленных коробочках менять прошивки. И это в пакетном режиме - коробочек этих сотни. Так вот для отладки и отслеживания что происходит ncurses никак не подходил, а с ним и все тулзы на нем основанные. По причинам - канал очень слабый, терминал специфический, нкурсес, даже если извратиться и запустить (я mc прикрутил по недомыслию), отображается как мешанина рандомных символов. Поймите, соединения бывают не только "из дома до офиса" или "из офиса до сервера в клауде". Если законнектиться через цепочку серверов, то нкурсес будет просто жестко бесить. Это проверено многократно. В комфортных условиях - mc и вообще что угодно - ок. Но надежнее иметь хорошо освоенный проверенный инструмент, который не подведет в самый неожиданный момент.
@@EasyITChannel Коннект через цепочку осуществляется же через SSH -J (раньше -J могло не быть, но тоже возможно было). При чём тут ncurses? Даже для момеда ncurses не медленный. Там же траффик - типа текстовая графика. НО, если надо на многих устройствах сразу установить, то да, медленно может быть. Скачивать. Способ, который вы привели, можно сказать, вырожденный.
@@AloneStroller К сожалению, Вы не поняли ничего из того, что я сказал. Это не проблема, просто еще не сталкивались, а "теоретически" не получается понять о чем речь.
хм интересно
Очень полезно!!!
Спасибо за обратную связь. Значит не зря....
вот это годнота! Спасибо! Очень позновательно
Спасибо за поддержку. Приятно, что есть польза.
Ключ подписи приложения, сгенерированный Google - если сделать сгенерированный ключ от Гугл? это надежный метод?
У Вас нет выбора. Подписываете своим ключом, после загрузки Гугл сохраняет этот ключ и подписывает своим. Если этого не сделать, приложение не установится, оно будет проходить по категории «из ненадежных источников». При загрузке новой версии Гугл сравнит ключ подписи и с сохраненным. Если совпадут - ок, если нет то будет ошибка и выложить не выйдет. Так что ключ для прода надо хранить в сейфе ;)
@@EasyITChannel или просто сгенерировать ключ от Гугл и не париться со своим верно?
Со своим придется запариться тоже. Загружать нужно уже подписанное приложение. По-другому никак.
@@EasyITChannel значит надо подписать приложение своим ключом Потом этот свой ключ загрузить в Гугл и еще в добавок сгенерировать ключ в Гугл, верно?
Нет не так. Надо подписать своим ключом. Загрузить приложение в плей маркет. Гугл вытянет ключ из приложения и сохранит у себя. Затем сгенерирует свой ключ, Вам он не доступен. Подпишет им приложение. Это всё. При загрузке следующей версии Гугл опять вытащит ключ, сравнит с сохраненным ранее, если они совпадут, то примет версию. Если не совпадут - будет ошибка. Поэтому первую и все последующие версии необходимо подписывать одним и тем же ключом.
Пытаемся подключиться к FreeBSD и тут же ловим грабли в виде ошибки. Не могу, говорит, "Не лэзе"... Как вариант, на FreeBSD лезем в sshd_config, устанавливаем "PasswordAuthentication" в "yes". Есть какие-то другие решения?
Конечно есть. Если пассворд авторизация запрещена, то надо через ключи (это супер правильно, любой сервер ssh открытый в интернет пытаются ломать 24/7).
@@EasyITChannelну вот чот не хочет. По ssh всё работает, соединяется по ключам. А mc продолжает запрашивать пароль и отваливается.
@@EasyITChannelну, в общем, заборол и эту проблему. Два способа. 1. создаём ~/.ssh/config, там прописываем алиас. 2. способ более универсальный: ssh-add ~/.ssh/id_rsa
Это стандартный способ настройки авторизации по ключу. Более универсальный способ первый. Если у Вас много серверов с разными ключами, то второй работать не будет.
Пример. У Вас два разных рабочих аккаунта на GitHub, два разных ключа. Подключаться к одному репозиторию по ssh надо от одного юзера, а к другому от другого. Вопрос - как Вы это сделаете. Тот способ который сработает и есть более универсальный. Согласны?
круто! спасибо, отличный контент!)
Спасибо за поддержку!