16 мая в 19:00
Please open Telegram to view this post
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Мой личный топ 5 естественных стимуляторов мозга
Forwarded from Tina
Моковое собеседование Rust | Дмитрий Беляев, Wildberries — сегодня в 19:00
https://youtube.com/live/mUiy3TcvT_s
Напоминаем, что уже сегодня состоится эфир, который включает в себя:
1️⃣ Вопросы на собеседовании
2️⃣ Live coding
3️⃣ Разбор собеседования
4️⃣ Q&A блок
А вообще там целый фестиваль для Backend-разработчиков и предстоит много классных стримов: моковые собесы, тестовый скрининг, вебинар про поиск работы от крутых менторов из Яндекса, Вайлдберриз, Райффазен банка
Скорее регистрируйтесь, чтобы стать зрителем или участником собеседования!
https://youtube.com/live/mUiy3TcvT_s
Напоминаем, что уже сегодня состоится эфир, который включает в себя:
А вообще там целый фестиваль для Backend-разработчиков и предстоит много классных стримов: моковые собесы, тестовый скрининг, вебинар про поиск работы от крутых менторов из Яндекса, Вайлдберриз, Райффазен банка
Скорее регистрируйтесь, чтобы стать зрителем или участником собеседования!
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Моковое собеседование Rust | Дмитрий Беляев, Wildberries
Промокод BACK20 - 20% скидка на первое занятие с любым ментором по разработке! Действует до 19.05.2024
Партнерский стрим с моковым собеседование по Rust для бэкендеров в рамках Backend Fest.
Официальные партнеры тестового интервью — Rust (https://t.me/rust_code…
Партнерский стрим с моковым собеседование по Rust для бэкендеров в рамках Backend Fest.
Официальные партнеры тестового интервью — Rust (https://t.me/rust_code…
Please open Telegram to view this post
VIEW IN TELEGRAM
Всем привет!
Решил так же восстановить свою активность на ютубе и в процессе создания видео. Но как всегда времени это отнимает много, а выделить его я могу только на выходных.
И чтобы вы пока не скучали, сейчас будет небольшой пост про выравнивание данных в памяти.
Ну а бонусом ловите скрин переписки с наглядным пособием как отшивать назойливых рекрутёров, так чтоб они хотели вас ещё больше
Решил так же восстановить свою активность на ютубе и в процессе создания видео. Но как всегда времени это отнимает много, а выделить его я могу только на выходных.
И чтобы вы пока не скучали, сейчас будет небольшой пост про выравнивание данных в памяти.
Ну а бонусом ловите скрин переписки с наглядным пособием как отшивать назойливых рекрутёров, так чтоб они хотели вас ещё больше
Выравнивание памяти - что это и зачем оно нужно?
Если ответить совсем кратко, то это размещение данных в памяти таким образом, чтобы они распологались по адресам кратным некоторой степени 2. Но что это даёт?
Как вам должно быть уже известно, процессоры оперируют блоками данных называемыми машинное слово, размер которого идентичен размеру регистров и разрядности самого процессора, то есть на 64 разрядном процессоре машинное слово будет занимать 64 бита (или 8 байт).
Но наши программы зачастую хотят оперировать типами меньшей размерности. Например многие программы работают со строками, которые по своей сути являются массивами отдельных байт, то есть нам нужно оперировать типом вроде char в языке C. Для процессора не является большой проблемой загрузить подобный тип на регистр, но сделает он это следующим образом:
1. загрузит машинное слово содержащие нужный нам байт,
2. побитовым сдвигом переместит его в 0 позицию,
3. побитовым И откинет лишние биты.
После этого мы можем применять к регистру любые операции, которые мы хотим применить к нашему байту. Проблем здесь нет никаких в каком бы адресе не был размещён наш char. Поэтому его выравнивание будет 1, что позволит разместить его в любом адресе.
Но теперь давайте посмотрим на тип int, который занимает 4 байта. Давайте для простоты представим, что он размещён по адресу 3. Вроде проблем пока тоже никаких, процессор применит все те же операции и на регистре окажется наш int. Но что если у нас массив этих int? Тогда следующий из них будет расположен по адресу 7 и будет пересекать границу машинного слова. Процессору уже придётся загрузить сразу 2 машинных слова (по адресам 0 и 8) на разные регистры, каждый из них очистить от лишних бит, выставить биты на нужные позиции, а затем объединить 2 регистра через побитовое ИЛИ. Процессоры Intel и AMD вполне справляются с подобной задачей, но затрачивают на неё гораздо больше операций. А вот процессоры с архитектурой ARM откажутся исполнять такое непотребство, по крайней мере в автоматическом режиме (никто не мешает нам то же самое проделать в собственном коде). Но гораздо эффективнее всегда размещать int только по адресам кратным 4, или по простому выравнивать по 4 байта.
К нашему счастью компиляторы достаточно умные, что бы соблюдать выравнивание для всех типов. Правда при этом возникает один нюанс, для понимания которого давайте посмотрим на такую структуру:
Поле a имеет выравнивание 1, а поле b - 4. Что бы это соблюдалось вся структура должна иметь выравнивание, как самое большое выравнивание её полей, то есть 4. Что в итоге приведёт к тому, что наш char так же будет выравнен по 4 байтам. При этом вся структура будет иметь размер 8 байт, а возле поля a окажутся 3 мусорных байта, которые никак не используются. Такие байты называют "паддинг". Это вынужденая трата памяти, которая обеспечивает нам быстродействие и работоспособность на разных платформах.
При проектировании структур имеет смысл учитывать эту особенность. К тому же стандарты языков C и C++ требуют, чтобы поля структуры были расположены в памяти в том же порядке, что и в коде. А вот компилятор языка Rust умеет переставлять поля местами ради оптимизации места занимаемого паддингами, что несомненно плюс, но требует более аккуратного подхода при низкоуровневых операциях с памятью структур. В крайних случаях ему можно указать, чтоб он обращался с конкретными типами так же как принято в C.
Если ответить совсем кратко, то это размещение данных в памяти таким образом, чтобы они распологались по адресам кратным некоторой степени 2. Но что это даёт?
Как вам должно быть уже известно, процессоры оперируют блоками данных называемыми машинное слово, размер которого идентичен размеру регистров и разрядности самого процессора, то есть на 64 разрядном процессоре машинное слово будет занимать 64 бита (или 8 байт).
Но наши программы зачастую хотят оперировать типами меньшей размерности. Например многие программы работают со строками, которые по своей сути являются массивами отдельных байт, то есть нам нужно оперировать типом вроде char в языке C. Для процессора не является большой проблемой загрузить подобный тип на регистр, но сделает он это следующим образом:
1. загрузит машинное слово содержащие нужный нам байт,
2. побитовым сдвигом переместит его в 0 позицию,
3. побитовым И откинет лишние биты.
После этого мы можем применять к регистру любые операции, которые мы хотим применить к нашему байту. Проблем здесь нет никаких в каком бы адресе не был размещён наш char. Поэтому его выравнивание будет 1, что позволит разместить его в любом адресе.
Но теперь давайте посмотрим на тип int, который занимает 4 байта. Давайте для простоты представим, что он размещён по адресу 3. Вроде проблем пока тоже никаких, процессор применит все те же операции и на регистре окажется наш int. Но что если у нас массив этих int? Тогда следующий из них будет расположен по адресу 7 и будет пересекать границу машинного слова. Процессору уже придётся загрузить сразу 2 машинных слова (по адресам 0 и 8) на разные регистры, каждый из них очистить от лишних бит, выставить биты на нужные позиции, а затем объединить 2 регистра через побитовое ИЛИ. Процессоры Intel и AMD вполне справляются с подобной задачей, но затрачивают на неё гораздо больше операций. А вот процессоры с архитектурой ARM откажутся исполнять такое непотребство, по крайней мере в автоматическом режиме (никто не мешает нам то же самое проделать в собственном коде). Но гораздо эффективнее всегда размещать int только по адресам кратным 4, или по простому выравнивать по 4 байта.
К нашему счастью компиляторы достаточно умные, что бы соблюдать выравнивание для всех типов. Правда при этом возникает один нюанс, для понимания которого давайте посмотрим на такую структуру:
struct example {
char a;
int b;
};
Поле a имеет выравнивание 1, а поле b - 4. Что бы это соблюдалось вся структура должна иметь выравнивание, как самое большое выравнивание её полей, то есть 4. Что в итоге приведёт к тому, что наш char так же будет выравнен по 4 байтам. При этом вся структура будет иметь размер 8 байт, а возле поля a окажутся 3 мусорных байта, которые никак не используются. Такие байты называют "паддинг". Это вынужденая трата памяти, которая обеспечивает нам быстродействие и работоспособность на разных платформах.
При проектировании структур имеет смысл учитывать эту особенность. К тому же стандарты языков C и C++ требуют, чтобы поля структуры были расположены в памяти в том же порядке, что и в коде. А вот компилятор языка Rust умеет переставлять поля местами ради оптимизации места занимаемого паддингами, что несомненно плюс, но требует более аккуратного подхода при низкоуровневых операциях с памятью структур. В крайних случаях ему можно указать, чтоб он обращался с конкретными типами так же как принято в C.
В комментах к последним постам несколько человек заинтересовались вакансиями Wildberries. Специально для вас узнал что есть сейчас:
Что такое Wildberries сейчас - это 30 млн пользователей ежедневно, сотни тысяч сотрудников и одна из сильнейших IT-команд в стране. У нас гибкий современный стек, около-rocket-science задачи прилагаются. Можно работать из любой локации🌎
Если ты back-end разработчик, у нас есть, что предложить для тебя в нашем департаменте Инфраструктура:
Rust Developer🔥
Что мы делаем на Rust:
Видеонаблюдение - мы обеспечиваем работу и развитие системы видеонаблюдения на складах и сортировочных центрах. Это сотни локаций, десятки тысяч камер, петабайты видеоданных.
FaceID - наша команда реализовала и развивает систему двухфакторной авторизации на проходных.
Рендер - отвечает за получение медиафайлов, их обработку и отправку в различные хранилища данных. Масштабы: сотни картинок в секунду на входе, тысячи на выходе, сотни тысяч RPS на отдачу.
Сервис отзывов - мы собираем, храним, ранжируем и отдаем пользователям отзывы по товарам. Масштаб системы: десятки тысяч запросов в секунду, более миллиарда отзывов, ежедневно добавляются миллионы новых отзывов.
Что для нас важно в тебе:
- Имеешь опыт разработки на Rust или желание его освоить.
- Имеешь большой опыт разработки и траблшутинга backend-сервисов.
- Хорошо знаешь, что такое highload.
- Отлично знаком с Linux.
Go Senior developer / Tech Lead (управление небольшой командой)🔥
BerryBasket продукт собственной разработки, написанный на GO. Представляет из себя высоконагруженное, шардированное, реплицированное, линейно масштабируемое файловое хранилище. Главные задачи проекта - хранение и защита персональных данных пользователей, простой и надежный канал для чтения/записи данных, легкое и прозрачное масштабирование.
Что для нас важно в тебе:
- Алгоритмы и структуры данных.
- Опыт коммерческой разработки на Golang от 4 лет.
- Опыт работы с БД, а также с брокерами сообщений.
- Опыт работы с Linux.
Что готовы предложить на всех позициях:
- Быстрый процессинг: 1 или 2 технические встречи, быстрый фидбек после интервью.
- Команда профессионалов, у которой можно учиться.
- Возможность работать из любой локации.
- Работа над интересными проектами, которые прокачают твои технические навыки и аналитическое мышление.
- Минимум бюрократии.
Что такое Wildberries сейчас - это 30 млн пользователей ежедневно, сотни тысяч сотрудников и одна из сильнейших IT-команд в стране. У нас гибкий современный стек, около-rocket-science задачи прилагаются. Можно работать из любой локации🌎
Если ты back-end разработчик, у нас есть, что предложить для тебя в нашем департаменте Инфраструктура:
Rust Developer🔥
Что мы делаем на Rust:
Видеонаблюдение - мы обеспечиваем работу и развитие системы видеонаблюдения на складах и сортировочных центрах. Это сотни локаций, десятки тысяч камер, петабайты видеоданных.
FaceID - наша команда реализовала и развивает систему двухфакторной авторизации на проходных.
Рендер - отвечает за получение медиафайлов, их обработку и отправку в различные хранилища данных. Масштабы: сотни картинок в секунду на входе, тысячи на выходе, сотни тысяч RPS на отдачу.
Сервис отзывов - мы собираем, храним, ранжируем и отдаем пользователям отзывы по товарам. Масштаб системы: десятки тысяч запросов в секунду, более миллиарда отзывов, ежедневно добавляются миллионы новых отзывов.
Что для нас важно в тебе:
- Имеешь опыт разработки на Rust или желание его освоить.
- Имеешь большой опыт разработки и траблшутинга backend-сервисов.
- Хорошо знаешь, что такое highload.
- Отлично знаком с Linux.
Go Senior developer / Tech Lead (управление небольшой командой)🔥
BerryBasket продукт собственной разработки, написанный на GO. Представляет из себя высоконагруженное, шардированное, реплицированное, линейно масштабируемое файловое хранилище. Главные задачи проекта - хранение и защита персональных данных пользователей, простой и надежный канал для чтения/записи данных, легкое и прозрачное масштабирование.
Что для нас важно в тебе:
- Алгоритмы и структуры данных.
- Опыт коммерческой разработки на Golang от 4 лет.
- Опыт работы с БД, а также с брокерами сообщений.
- Опыт работы с Linux.
Что готовы предложить на всех позициях:
- Быстрый процессинг: 1 или 2 технические встречи, быстрый фидбек после интервью.
- Команда профессионалов, у которой можно учиться.
- Возможность работать из любой локации.
- Работа над интересными проектами, которые прокачают твои технические навыки и аналитическое мышление.
- Минимум бюрократии.
Всем привет!
Есть мысли в ближайшую субботу сделать стрим, ориентируемся на 19:00 мск
В программе:
- Ответы на ваши вопросы
- Напишем небольшую либу на Rust и опубликуем её на crates.io
- По изучаем исходники чегоо-нибудь из опенсорс
Свои вопросы к стриму можно задавать заранее в комментах под этим постом
Есть мысли в ближайшую субботу сделать стрим, ориентируемся на 19:00 мск
В программе:
- Ответы на ваши вопросы
- Напишем небольшую либу на Rust и опубликуем её на crates.io
- По изучаем исходники чегоо-нибудь из опенсорс
Свои вопросы к стриму можно задавать заранее в комментах под этим постом
В сети периодически встречаются статьи и видео сравнивающие различные ОС в разных аспектах. Кто-то ревностно отстаивает преимущества одной ОС перед другой, часто имея о второй весьма поверхностные представления, кто-то приводит более объективное сравнение. Но почти все они несут взгляд со стороны обычного пользователя. Я же хочу привнести своё видение разработчика на различные десктопные ОС.
Скорее всего, взгляд будет всё равно субъективным. Во-первых больше всего я занимаюсь серверной разработкой, что сильно отличается от типичных нюансов десктопа, но в своё оправдание скажу, что имею не малый опыт с вебом, а так же мне приходилось иметь дело с десктопной разработкой (пару раз это были корпоративные штуки на электрон, ну и для себя мучаю таури, во всех случаях сразу под 3 ОС - винда, мак и линукс). Во-вторых, моей основной ОС многие годы являются различные линуксы и конкретно сейчас я считаю Арч линукс лучшей ОС для десктопа и именно она у меня стоит на ПК, но в своё оправдание скажу, что с другими ОС я всё таки имею дело достаточно часто, макбук мой основной инструмент для работы вне дома, а на втором ноуте у меня установлена Win11 pro + у меня несколько лет назад был почти 2х летний эксперимент жизни на Win10 pro (хоть он и закончился не успешно, но я подумываю его повторить, уже с 11 виндой). Так что будем считать, что моё сравнение всё-таки подтверждено некоторым опытом.
Для начала хочу отметить, что большинству разработчиков скорее всего должно быть всё равно из под какой ОС разрабатывать. Большинство популярных IDE одинаково работают и под виндой и под линуксом и под маком. То же самое можно сказать про git. А многие другие инструменты вообще живут в web.
Но есть нюансы, поэтому начнём с них.
Мобильным разработчикам под iOS без вариантов придётся работать под MacOS, неважно пишут ли они нативку на Swift или кросплатформу на ReactNative/Flutter/Xamarin или чём-то подобном. Собрать приложение получится только из под MacOS и подключиться дебаггером тоже. С теми же проблемами Вы столкнётесь если захотите собрать что-то под саму MacOS, кросскомпиляция здесь отсутствует от слова совсем.
Чуть лучше живётся тем кто разрабатывает web-приложения, индустрия зовёт их фронтендерами (надо доделать видео про исковерканные индустрией термины...). С одной стороны браузер есть везде, вот только не любой. Когда-то давно огромной болью был Internet Explorer живущий только на винде, на благо он сдох. И теперь пальму первенства, как самый проблемный браузер занимает Safari, который есть только на устройствах Apple. Особая боль это Safari на iOS, дебаггером в него можно подключиться только с Safari на MacOS, так ещё и другие браузеры на iOS бывают только на его движке (и дебаггером к ним вообще не подключиться).
Ну и последняя категория - это .Net разработчики. Хоть в последнее время .Net и стал кросплатформенным, нормально разрабатывать можно только в Visual Studio, которая есть только под виндой. И Rider от JB здесь не панцея, хотя в какой-то степени может помочь.
Возможно кого-то ещё забыл, кому нужна какая-то конкретная ОС. Но в целом большинство вещей спокойно разрабатываются из под любой операционки. Правда есть ещё несколько нюансов, которые уже не настолько критичны. Затронем и их.
Большинство серверов сегодня живут на линуксе, изредка встречается FreeBSD, которая тем не менее Unix и достаточно схожа с линуксом. Крайне редко можно встретить сервера на винде. Однако популярные сегодня Python, Node.js, Java, Go практически полностью прячут от нас нюансы операционок. Rust и C++ стремятся к тому же. Однако бывают моменты, когда приходится завязываться на Linux-специфичные вещи, вроде inotify - потестить их из под винды или макос будет проблематично, виртуалки в помощь.
А ещё стандартом индустрии сегодня стал Docker, который основан на линуксовых cgroups и namespaces. Правда есть Docker Desktop, который на маке поднимет виртуалку с минималистичным Linux, а на винде умеет работать из под WSL или так же с виртуалкой как на MacOS.
Особенностей различных ОС много. Здесь я пробежался лишь по самым верхам. Продолжение следует...
Скорее всего, взгляд будет всё равно субъективным. Во-первых больше всего я занимаюсь серверной разработкой, что сильно отличается от типичных нюансов десктопа, но в своё оправдание скажу, что имею не малый опыт с вебом, а так же мне приходилось иметь дело с десктопной разработкой (пару раз это были корпоративные штуки на электрон, ну и для себя мучаю таури, во всех случаях сразу под 3 ОС - винда, мак и линукс). Во-вторых, моей основной ОС многие годы являются различные линуксы и конкретно сейчас я считаю Арч линукс лучшей ОС для десктопа и именно она у меня стоит на ПК, но в своё оправдание скажу, что с другими ОС я всё таки имею дело достаточно часто, макбук мой основной инструмент для работы вне дома, а на втором ноуте у меня установлена Win11 pro + у меня несколько лет назад был почти 2х летний эксперимент жизни на Win10 pro (хоть он и закончился не успешно, но я подумываю его повторить, уже с 11 виндой). Так что будем считать, что моё сравнение всё-таки подтверждено некоторым опытом.
Для начала хочу отметить, что большинству разработчиков скорее всего должно быть всё равно из под какой ОС разрабатывать. Большинство популярных IDE одинаково работают и под виндой и под линуксом и под маком. То же самое можно сказать про git. А многие другие инструменты вообще живут в web.
Но есть нюансы, поэтому начнём с них.
Мобильным разработчикам под iOS без вариантов придётся работать под MacOS, неважно пишут ли они нативку на Swift или кросплатформу на ReactNative/Flutter/Xamarin или чём-то подобном. Собрать приложение получится только из под MacOS и подключиться дебаггером тоже. С теми же проблемами Вы столкнётесь если захотите собрать что-то под саму MacOS, кросскомпиляция здесь отсутствует от слова совсем.
Чуть лучше живётся тем кто разрабатывает web-приложения, индустрия зовёт их фронтендерами (надо доделать видео про исковерканные индустрией термины...). С одной стороны браузер есть везде, вот только не любой. Когда-то давно огромной болью был Internet Explorer живущий только на винде, на благо он сдох. И теперь пальму первенства, как самый проблемный браузер занимает Safari, который есть только на устройствах Apple. Особая боль это Safari на iOS, дебаггером в него можно подключиться только с Safari на MacOS, так ещё и другие браузеры на iOS бывают только на его движке (и дебаггером к ним вообще не подключиться).
Ну и последняя категория - это .Net разработчики. Хоть в последнее время .Net и стал кросплатформенным, нормально разрабатывать можно только в Visual Studio, которая есть только под виндой. И Rider от JB здесь не панцея, хотя в какой-то степени может помочь.
Возможно кого-то ещё забыл, кому нужна какая-то конкретная ОС. Но в целом большинство вещей спокойно разрабатываются из под любой операционки. Правда есть ещё несколько нюансов, которые уже не настолько критичны. Затронем и их.
Большинство серверов сегодня живут на линуксе, изредка встречается FreeBSD, которая тем не менее Unix и достаточно схожа с линуксом. Крайне редко можно встретить сервера на винде. Однако популярные сегодня Python, Node.js, Java, Go практически полностью прячут от нас нюансы операционок. Rust и C++ стремятся к тому же. Однако бывают моменты, когда приходится завязываться на Linux-специфичные вещи, вроде inotify - потестить их из под винды или макос будет проблематично, виртуалки в помощь.
А ещё стандартом индустрии сегодня стал Docker, который основан на линуксовых cgroups и namespaces. Правда есть Docker Desktop, который на маке поднимет виртуалку с минималистичным Linux, а на винде умеет работать из под WSL или так же с виртуалкой как на MacOS.
Особенностей различных ОС много. Здесь я пробежался лишь по самым верхам. Продолжение следует...
Скоро планирую продолжить разбирать ОС от лица разработчика ПО. Посты будут выходить отдельные на каждую ОС, а выпускать я их планирую в порядке популярности на десктопе.
А прямо сейчас решил немного отдаться ностальгии и вспомнить свой путь по различным ОС и по языкам программирования (ибо это у меня оказалось связано).
Получилось немного автобиографично.
https://telegra.ph/Moj-put-v-razrabotke-i-na-kakih-OS-ya-ego-proshyol-06-15
Приятного чтения
А прямо сейчас решил немного отдаться ностальгии и вспомнить свой путь по различным ОС и по языкам программирования (ибо это у меня оказалось связано).
Получилось немного автобиографично.
https://telegra.ph/Moj-put-v-razrabotke-i-na-kakih-OS-ya-ego-proshyol-06-15
Приятного чтения
Telegraph
Мой путь в разработке и на каких ОС я его прошёл
Мне в некоторой степени повезло с тем, что мои родители всегда были "на ты" с компьютерной техникой, насколько помню даже в самом раннем детстве дома был какой-никакой комп - один из советских клонов ZX Spectrum или что-то вроде того, хотя кажется я лично…
Какая ОС у вас оснавная на десктопе/ноутбуке?
Anonymous Poll
53%
Windows 10/11
17%
MacOS
10%
Ubuntu (KUbuntu, XUbuntu, KDE Neon, etc...)
3%
Linux Mint/LMDE
3%
Debian
7%
ArchLinux
3%
Fedora
0%
OpenSUSE
2%
Monjaro
3%
Другая (напишу в комментах)
Продолжаю делиться своим взглядом на различные десктопные ОС, теперь уже углублённо.
Первой на очереди у нас Windows - самая популярная ОС на десктопе, в том числе и по вашим ответам на опрос.
https://telegra.ph/Kak-zhivyotsya-na-Windows-razrabotchiku-06-21
Приятного чтения! 😉
Первой на очереди у нас Windows - самая популярная ОС на десктопе, в том числе и по вашим ответам на опрос.
https://telegra.ph/Kak-zhivyotsya-na-Windows-razrabotchiku-06-21
Приятного чтения! 😉
Telegraph
Как живётся на Windows разработчику
Небольшой дисклеймер. Автор гик и линуксоид, описанное в статье мнение субъективно. Основной ОС автора является ArchLinux, а Windows мучилась в свободное время и на ноуте отведенным под роль экспериментов, когда автор заменит свою основную ОС на Windows и…
Думаю с экспериментами с виндой на ноуте можно закончить.
Да и если планирую в последствии поставить винду на основной комп, то надо перестать использовать тут, лицензия то у меня на 1 устройство.
А на ноуте можно поэкспериментировать с чем-то ещё.
И вот смотрю я на опрос, и как-то одну из ОС совсем голосами обделили...
Ок, вызов принят
Да и если планирую в последствии поставить винду на основной комп, то надо перестать использовать тут, лицензия то у меня на 1 устройство.
А на ноуте можно поэкспериментировать с чем-то ещё.
И вот смотрю я на опрос, и как-то одну из ОС совсем голосами обделили...
Ок, вызов принят
Всем привет!
Писать свой обзор на MacOS начну лишь в эти выходные, но нет полной уверенности, что закончу и опубликую.
А пока ловите краткое мнение на OpenSUSE Tumbleweed.
Если быть совсем кратким - данная ОС мне не понравилась.
Но, обо всём по порядку.
Для начала два момента, которые всё же понравились:
1. Утилита YaST2, работает как через GUI так и через терминальный ncurses интерфейс. Позволяет удобно настраивать многие вещи в системе, смотреть логи ядра и systemd. При необходимости сама может доустановить пакеты, когда пытаешься что-то включить. Для людей, которые "боятся" терминала - самое то.
2. Пакетный менеджер zypper. По ощущениям работает быстрее, чем dnf и apt, но медленнее чем pacman. Если корень системы размечен в btrfs с каноничными сабволами, то делает снапшот перед каждым изменением. Допом к ней в YaST2 есть интерфейс для управления пакетами очень похожий на synaptic из Debian.
А теперь о минусах:
Очень мудрёный установщик. Я скачивал вариант с net-install, возможно в другом варианте чуть проще. Сначала грузится в ncurses интерфейс, где надо произвести первоначальную настройку. WiFi адаптер вроде нашёл, но списка сетей нет, всё вводим вручную. Ну и в итоге не подконнектился и я подрубил к ноуту Ethernet и устанавливал по кабелю. Обязательно просит указать репозитории, с которых будем устанавливать, всё вбиваем ручками, есть вариант по умолчанию, но я пока разбирался, умолчания несколько раз слетали и восстановить их только reboot и всё сначала. В конце предлагает загрузится непосредственно в сам установщик в двух вариантах - GUI и текстовый. GUI у меня так и не загрузился, но текстовый вполне неплох, тут уже явно что-то посовременнее ncurses и в нём даже мышь работает.
На выбор есть Gnome, KDE Plasma (версия 6 уже в наличии), XFCE, IceWM и "серверный" вариант без GUI. Я ставил последний, так как решил поставить сюда Hyprland. Дополнительно можно настроить своё ПО, есть пресеты для частых задач и есть тот самый интерфейс из YaST2, через который мне удалось затащить Hyprland и sddm сразу в момент установки, так что голую консоль я в итоге не увидел. Но в итоге у меня таки затащился IceWM и я особо не понял как.
Разметка диска по умолчанию выбрала из двух SSD тот что больше и полностью проигнорировала второй. Сделала раздел под efi, swap на 2 гига и остатки предложила сделать btrfs, в котором уже размечены сабволы. При ручной разметке сабволы так же предложила автоматом (а снапшоты в zypper будут работать только с такой разметкой). По умолчанию делает сабвол под /home, но если вынести на отдельный диск или раздел, то предлагает сделать его в xfs, хотя на выбор есть ext4 и btrfs. Ну и совсем не шарит в типах GPT разметки, кроме efi и swap всё остальное предлагает просто как Linux Partition, но руками можно поменять и разметить где будет корень, а где /home.
Пакеты здесь rpm, но названия у них часто отличаются от RedHat (RHEL, Fedora, CentOS), а значит если просто скачать rpm с сайта, то или не найдёт зависимости или поставит что-то другое. Ну и сами зависимости порой странные, например установка waybar затащила мне целый sway...
Нельзя оставить root без пароля. Я считаю, что это плохо, ибо в root без пароля нельзя логиниться напрямую, что чуток увеличивает безопасность. Особенно если учесть, что sshd здесь можно поднять мышкой, но настройки будут дефолтные, с возможностью войти в root и с разрешением входить по паролю. Очень странно работает sudo, просит не пароль текущего пользователя, а пароль root, притом об этом надо только догадаться. В репозиториях есть doas и shim к нему для sudo (то есть sudo можно подменить на doas).
В целом пользоваться можно, как альтернатива Ubuntu или Fedora - очень даже ок. Но уверенным пользователям Arch/Void/Gentoo думаю не зайдёт.
Игрался я с ней одно воскресенье, может чего и упустил, но на этом эксперименты с ней заканчиваю. В комментах было предложение попробовать AltLinux, думаю попробовать ещё его.
Писать свой обзор на MacOS начну лишь в эти выходные, но нет полной уверенности, что закончу и опубликую.
А пока ловите краткое мнение на OpenSUSE Tumbleweed.
Если быть совсем кратким - данная ОС мне не понравилась.
Но, обо всём по порядку.
Для начала два момента, которые всё же понравились:
1. Утилита YaST2, работает как через GUI так и через терминальный ncurses интерфейс. Позволяет удобно настраивать многие вещи в системе, смотреть логи ядра и systemd. При необходимости сама может доустановить пакеты, когда пытаешься что-то включить. Для людей, которые "боятся" терминала - самое то.
2. Пакетный менеджер zypper. По ощущениям работает быстрее, чем dnf и apt, но медленнее чем pacman. Если корень системы размечен в btrfs с каноничными сабволами, то делает снапшот перед каждым изменением. Допом к ней в YaST2 есть интерфейс для управления пакетами очень похожий на synaptic из Debian.
А теперь о минусах:
Очень мудрёный установщик. Я скачивал вариант с net-install, возможно в другом варианте чуть проще. Сначала грузится в ncurses интерфейс, где надо произвести первоначальную настройку. WiFi адаптер вроде нашёл, но списка сетей нет, всё вводим вручную. Ну и в итоге не подконнектился и я подрубил к ноуту Ethernet и устанавливал по кабелю. Обязательно просит указать репозитории, с которых будем устанавливать, всё вбиваем ручками, есть вариант по умолчанию, но я пока разбирался, умолчания несколько раз слетали и восстановить их только reboot и всё сначала. В конце предлагает загрузится непосредственно в сам установщик в двух вариантах - GUI и текстовый. GUI у меня так и не загрузился, но текстовый вполне неплох, тут уже явно что-то посовременнее ncurses и в нём даже мышь работает.
На выбор есть Gnome, KDE Plasma (версия 6 уже в наличии), XFCE, IceWM и "серверный" вариант без GUI. Я ставил последний, так как решил поставить сюда Hyprland. Дополнительно можно настроить своё ПО, есть пресеты для частых задач и есть тот самый интерфейс из YaST2, через который мне удалось затащить Hyprland и sddm сразу в момент установки, так что голую консоль я в итоге не увидел. Но в итоге у меня таки затащился IceWM и я особо не понял как.
Разметка диска по умолчанию выбрала из двух SSD тот что больше и полностью проигнорировала второй. Сделала раздел под efi, swap на 2 гига и остатки предложила сделать btrfs, в котором уже размечены сабволы. При ручной разметке сабволы так же предложила автоматом (а снапшоты в zypper будут работать только с такой разметкой). По умолчанию делает сабвол под /home, но если вынести на отдельный диск или раздел, то предлагает сделать его в xfs, хотя на выбор есть ext4 и btrfs. Ну и совсем не шарит в типах GPT разметки, кроме efi и swap всё остальное предлагает просто как Linux Partition, но руками можно поменять и разметить где будет корень, а где /home.
Пакеты здесь rpm, но названия у них часто отличаются от RedHat (RHEL, Fedora, CentOS), а значит если просто скачать rpm с сайта, то или не найдёт зависимости или поставит что-то другое. Ну и сами зависимости порой странные, например установка waybar затащила мне целый sway...
Нельзя оставить root без пароля. Я считаю, что это плохо, ибо в root без пароля нельзя логиниться напрямую, что чуток увеличивает безопасность. Особенно если учесть, что sshd здесь можно поднять мышкой, но настройки будут дефолтные, с возможностью войти в root и с разрешением входить по паролю. Очень странно работает sudo, просит не пароль текущего пользователя, а пароль root, притом об этом надо только догадаться. В репозиториях есть doas и shim к нему для sudo (то есть sudo можно подменить на doas).
В целом пользоваться можно, как альтернатива Ubuntu или Fedora - очень даже ок. Но уверенным пользователям Arch/Void/Gentoo думаю не зайдёт.
Игрался я с ней одно воскресенье, может чего и упустил, но на этом эксперименты с ней заканчиваю. В комментах было предложение попробовать AltLinux, думаю попробовать ещё его.
Media is too big
VIEW IN TELEGRAM
За выходные поставил и настроил Windows 11 на своём основном ПК, краткий обзор того что получилось
Немного полезностей для тех кто пользуется "носками из тени" (далее по тексту сократим до ss).
Замечено, что некоторые интернет провайдеры, вероятно с поощрения организации на 3 буквы, не хотят пускать в прекрасное далёко неопознанный трафик, а так же tls трафик, который не совсем tls. Но при этом в пределах большойкитайской русской стены (далее стена) такой трафик прекрасно бегает.
Давайте представим, что у вас уже есть сервак в прекрасном далёко (для примера его ip будет 123.123.123.123), где поднят ss сервак на порту 4321 и вы вдруг потеряли с ним связь.
Справиться с сей неприятной ситуацией поможет банальный nginx на сервере в пределах стены.
Нужно добавить следующие строчки в корень конфига nginx (естественно поменяв ip и порт на свои):
Теперь в ss клиенте можно поменять ip на тот, что у тачки с nginx и всё должно работать
Замечено, что некоторые интернет провайдеры, вероятно с поощрения организации на 3 буквы, не хотят пускать в прекрасное далёко неопознанный трафик, а так же tls трафик, который не совсем tls. Но при этом в пределах большой
Давайте представим, что у вас уже есть сервак в прекрасном далёко (для примера его ip будет 123.123.123.123), где поднят ss сервак на порту 4321 и вы вдруг потеряли с ним связь.
Справиться с сей неприятной ситуацией поможет банальный nginx на сервере в пределах стены.
Нужно добавить следующие строчки в корень конфига nginx (естественно поменяв ip и порт на свои):
stream {
server {
listen 4321;
proxy_pass 123.123.123.123:4321;
}
server {
listen 4321 udp;
proxy_pass 123.123.123.123:4321;
}
}
Теперь в ss клиенте можно поменять ip на тот, что у тачки с nginx и всё должно работать
Последнее время совсем не хватает времени что-то написать.
Очень много работы, сил не остаётся на действительно полезные тексты.
Изредка удаётся сделать что-то для курса по Rust, но и это не часто...
В августе был в отпуске, но там совсем не хотелось заниматься чем-либо кроме распития алкоголя и купания в море.
Но всё это не означает, что я забросил канал. Надеюсь на понимание.
Постараюсь накидывать изредка небольшие заметки о том, что происходит вокруг меня.
Например по работе мне пришлось достаточно глубоко погрузится в устройство HTTP/3
А для себя ковыряю OPNsense (опенсорсный маршрутизатор/фаервол на базе FreeBSD) и Proxmox VE (окружение для виртуализации на базе kvm)
Очень много работы, сил не остаётся на действительно полезные тексты.
Изредка удаётся сделать что-то для курса по Rust, но и это не часто...
В августе был в отпуске, но там совсем не хотелось заниматься чем-либо кроме распития алкоголя и купания в море.
Но всё это не означает, что я забросил канал. Надеюсь на понимание.
Постараюсь накидывать изредка небольшие заметки о том, что происходит вокруг меня.
Например по работе мне пришлось достаточно глубоко погрузится в устройство HTTP/3
А для себя ковыряю OPNsense (опенсорсный маршрутизатор/фаервол на базе FreeBSD) и Proxmox VE (окружение для виртуализации на базе kvm)
До сих пор я экспериментировал с OPNsense на виртуалке, но сегодня мне доставили вот такую малютку. По размерам сравнимо с моей мышкой.
Когда-то давно у меня в качестве роутера использовался обычный комп, в который через PCIe были подключены 2 дополнительные сетевые: Ethernet и WiFi с поддержкой режима AccessPoint. В ethernet на материнке заходил провод от провайдера, а в доп ethernet подключался хаб, через который подключались локальные девайсы по проводу. Всё это неплохо работало, за одним исключением - я так и не смог настроить WiFi на работу сразу в двух диапазонах.
В итоге я перешёл на обычный TP-Link, позже на TP-Link понавороченее. Но с тех пор меня не оставляла мысль, что я потерял какую-то часть контроля над домашней сетью. А в первую очередь контроль над фаерволом для wan порта, что при наличии белого IP не очень хорошо.
В августе потребность воткнуть что-то управляемое между роутером и провайдером резко усилилась... Но при этом хотелось недорого и с низким энергопотреблением. Стоимость готовых решений с полноценным Linux/FreeBSD на борту - улетает в космос. При этом оперативки мало, что ограничивает в количестве маршрутов и поднятых на устройстве сервисов. Поэтому всякие MikroTik и Ubiquiti я рассматривать не стал.
Вначале я думал взять OrangePi 5 Plus и накатить на неё OpenWRT. Необходимые 2 Ethernet тут присутствуют. Неплохой ARM CPU и 4ГБ оперативы. Но пообщавшись с теми кто пробовал OrangePi в деле и посчитав сколько всего нужно дополнительно докупить, данный вариант отбросил.
И тут я наткнулся на Junibox Q-ube pro. 2 Ethernet есть. Проц Intel N100, слабенький, зато кушает мало, а для задач фаервола его достаточно. 16ГБ оперативы и sata-m2 SSD на 512ГБ - хороший запас. За рекламу мне не платили, по этому ссылок не будет, кому надо сам найдёт. Был с предустановленной Win11Pro, но я в неё даже не загружался, так что тут ничего не скажу.
Когда-то давно у меня в качестве роутера использовался обычный комп, в который через PCIe были подключены 2 дополнительные сетевые: Ethernet и WiFi с поддержкой режима AccessPoint. В ethernet на материнке заходил провод от провайдера, а в доп ethernet подключался хаб, через который подключались локальные девайсы по проводу. Всё это неплохо работало, за одним исключением - я так и не смог настроить WiFi на работу сразу в двух диапазонах.
В итоге я перешёл на обычный TP-Link, позже на TP-Link понавороченее. Но с тех пор меня не оставляла мысль, что я потерял какую-то часть контроля над домашней сетью. А в первую очередь контроль над фаерволом для wan порта, что при наличии белого IP не очень хорошо.
В августе потребность воткнуть что-то управляемое между роутером и провайдером резко усилилась... Но при этом хотелось недорого и с низким энергопотреблением. Стоимость готовых решений с полноценным Linux/FreeBSD на борту - улетает в космос. При этом оперативки мало, что ограничивает в количестве маршрутов и поднятых на устройстве сервисов. Поэтому всякие MikroTik и Ubiquiti я рассматривать не стал.
Вначале я думал взять OrangePi 5 Plus и накатить на неё OpenWRT. Необходимые 2 Ethernet тут присутствуют. Неплохой ARM CPU и 4ГБ оперативы. Но пообщавшись с теми кто пробовал OrangePi в деле и посчитав сколько всего нужно дополнительно докупить, данный вариант отбросил.
И тут я наткнулся на Junibox Q-ube pro. 2 Ethernet есть. Проц Intel N100, слабенький, зато кушает мало, а для задач фаервола его достаточно. 16ГБ оперативы и sata-m2 SSD на 512ГБ - хороший запас. За рекламу мне не платили, по этому ссылок не будет, кому надо сам найдёт. Был с предустановленной Win11Pro, но я в неё даже не загружался, так что тут ничего не скажу.