Niwe Code
227 subscribers
34 photos
3 videos
1 file
48 links
Канал создан для выброса моих важных мыслей касательно вещей в IT индустрии + некоторого обучения в данной сфере. В своей задаче я ставлю продвижение разных тем в юмористическом стиле.

Связаться: @HxQtl9
Download Telegram
#Backend #Education

Как Java стал популярным: спасибо JVM, а не заварке

Когда ты слышишь "Java", тебе может прийти в голову только Enterprise, Spring, маниакальные XML-конфиги и люди, которые пишут getUser().getAddress().getCity(), и называют это нормой.

Но на самом деле Java — это больше, чем просто язык. Это целая платформа. А теперь разберёмся, почему она вообще взлетела.

Как всё начиналось

1995 год. Sun Microsystems выпускает Java с лозунгом "Write Once, Run Anywhere".
И это не маркетинговая лапша как у некоторых…
Java реально дала возможность запускать один и тот же .class файл на любой ОС благодаря магии JVM.

JVM: сердце Java

JVM (Java Virtual Machine) — это та самая херня, которая позволяет твоему Java-коду жить вне зависимости от железа и операционки.
Ты пишешь в .java, компилируешь в байт-код .class (javac), а JVM уже разбирается как это крутить на Windows, Linux, MacOS, или, прости господи, Solaris с FreeBSD.

Как работает JVM?
1. Ты пишешь код на Java

2. Компилятор превращает его в байт-код (не исполняемый код, а "среднее")

3. JVM получает этот код, проверяет, оптимизирует и запускает

4. Используется JIT (Just-In-Time compilation), который превращает байт-код в нативный прямо во время исполнения
JIT — тот самый чит благодаря которому Java не такая медленная, как её хейтят. Иногда даже быстрее Python и Ruby (что несложно).

Почему это выстрелило?

Кроссплатформенность: в 90-х это было революцией. Никаких компиляций под каждую ось.

Платформа, а не язык: Java не просто язык — это JVM + библиотеки + экосистема

Инфраструктура: сервера, банки, терминалы — всё это стало на Java так как стабильность и предсказуемость → короли для бизнеса.

Spring и прочий энтерпрайз: сложно, перегружено, но работает. А бизнес любит когда "работает".


Java стала популярной не из-за языка, а из-за:
JVM — виртуальной машины с хорошей оптимизацией;

IDE и tooling’а — попробуй IntelliJ и ты поймёшь;

огромной экосистемы;

бизнеса, которому надо предсказуемо, стабильно, и чтоб 10 лет без поддержки работало;
#Backend #Education

CLR — когда Microsoft решила: «а давайте как в Java, только наше»

Ты думал что .NET — это просто C#? Не-а. В центре всей этой империи — CLR (Common Language Runtime). Это такая же виртуальная машина как у Java — JVM, только с виндовым акцентом и .NET-флером.

Что такое CLR?

Это исполняющая среда, которая:

1. Компилирует твой код (C#, F#, VB.NET и даже Python через IronPython) в байт-код CIL (Common Intermediate Language)

2. Потом JIT-компилятор превращает CIL в машинный код

3. А после этот код исполняется под управлением CLR

Проще говоря: это JVM от Microsoft. Только они это не признают.

Как это работает (упрощённо):
1. Ты пишешь код на C#

2. Компилятор превращает его в CIL (аналог байт-кода)

3. CIL попадает в CLR, где:

3.1 Срабатывает JIT-компиляция (или AOT в .NET Native/CoreRT)

3.2 Применяется сборка мусора (Garbage Collection)

3.3 Производится валидация типов, безопасность и всякая магия

4. В итоге ты получаешь исполнение кода с управляемым рантаймом

Сходства CLR и JVM:

Java была первой: JVM в 1995, а CLR в 2002.
Microsoft такие: «Годно. Копируем. Только XML ещё добавим!»

JVM про "write once, run anywhere"
CLR — "run only on Windows..." ну, пока не появился .NET Core и потом .NET 5+

JVM открыли позже (OpenJDK)
CLR — тоже открыли, но долго и неохотно. Типа "ну ладно, смотрите если очень надо"

Почему CLR важен?
Мультиязычность — ты можешь писать и на F#, и на C#, и даже на COBOL.NET (если очень плохо себя вёл)

Интеграция с Windows — идеальная для бизнес-приложений, WinForms, WPF и всей этой корпоративной утвари

Скорость — с появлением CoreCLR, RyuJIT и AOT — платформа стала реально конкурентоспособной

Эволюция — от старого .NET Framework до .NET 9 всё упростилось и ускорилось


CLR это по сути "мы дома тоже так можем" от Microsoft в ответ на JVM.
Работает? Да. Быстро? Уже да. Удобно? Смотря где.
Java захватила банки, Microsoft — корпорации. У каждого своя секта и свои плюсы.
1
#Programming #Python

IronPython

В своё время Microsoft захотелось Python, но чтобы в .NET и создали IronPython. Это не просто реализация языка. Это попытка впихнуть питонячью душу в CLR-костюм.

Что это вообще?

IronPython — реализация Python на платформе .NET/Mono.
Вместо обычного интерпретатора (CPython) он компилирует Python-код в байт-код и запускает его в Common Language Runtime.

Плюсы:
Интеграция с .NET — можешь использовать C#-библиотеки, классы, WinForms и даже WPF из Python.

Работа на Windows максимально нативная. Прям вот "родной язык" в корпорациях.

JIT от CLR — Python-код работает через Just-In-Time-компиляцию CLR, и иногда шустрее чем CPython.


Минусы:
Не совместим с C-питонячьими расширениями — никакого тебе NumPy, SciPy и прочего C-магнитного добра.

Отстаёт по версиям — IronPython долго застревал на Python 2.7, а только недавно начал двигаться к 3.4+ (на текущий момент актуальная версия 3.13+)

Низкая популярность — большинство питухонеров даже не знают о нём
Когда использовать?

1. Если ты в .NET мире, но любишь Python

2. Нужно склеить C# и Python без плясок с COM, RPC, gRPC

3. Хочешь написать скриптовую логику на Python внутри C#-приложения

Пример: вызов .NET кода из Python
import clr
clr.AddReference("System.Windows.Forms")

from System.Windows.Forms import Form, Label, Application

form = Form()
form.Text = "IronPython rocks!"
form.Controls.Add(Label(Text="Привет из CLR"))

Application.Run(form)

Да, это реальный WinForms — на Python. Мир перевернулся, да?


IronPython — странный, мощный и немного забытый зверь.
Он не для всех, но если ты застрял в мире .NET и не можешь без print("hello world") — это твой выход.
1
#Education #Frontend

Firebase — это как шаурма на углу: быстро, вкусно, но не факт что выдержит продакшн

Всё просто: ты фронтендер и хочешь бэкенд, но руки не доходят до Node.js, а база данных звучит как приговор? Тогда Google подлетает на белом облаке: "Держи Firebase, мой юный питомище, теперь ты — фуллстек".

Что вообще такое Firebase?

Это облачная платформа, которая предлагает тебе:
Базу данных
Аутентификацию
Сервера без серверов
Хостинг
Аналитику
Push-уведомления

Причём всё это "as-a-service", инициализирующаяся одной командой в терминале, как магия.

Компоненты Firebase:

Authentication — как Face ID, только для твоего проекта. Сюда можно затащить всех: Google, GitHub, Facebook*, бабушку с email'ом.

Realtime Database — база данных для тех кто не знает, что такое нормализация. Всё в JSON, всё в реальном времени, всё в одной ветке, как ёлка.

Cloud Firestore — тот же Realtime, только не на костылях, а уже с костылём от Google. Структура: коллекции, документы, вложенность. NoSQL, но с минимальной адекватностью.

Cloud Functions — тебе дали сервер, но сказали: "только тронь и он исчезнет". Это как волшебная палочка, только на Node.js. Пиши функции, вызывай их как API.

Hosting — "а можно я свой pet-проект задеплою?" — можно. Одной командой. С HTTPS. Без боли.

Analytics и Crashlytics — смотри как умирает твой проект в реальном времени и с графиками. Google знает, где ты ошибся.

Когда Firebase как спасение:
MVP: быстро, чётко, без бэкендера на фрилансе

Прототипы: показал — выкинул

Учебные проекты: чтоб дед из методички ахуел

Стартап на питании одной лапшой

Когда Firebase как шлакоблок:
Тебе нужен JOIN — иди на PostgreSQL

Считаешь каждую копейку — Blaze тариф может внезапно выжечь кошелёк

Пишешь сложную бизнес-логику — будешь упарываться в Firebase Rules, как в лабиринт Минотавра

Доверяешь только себе — тут ты полностью зависим от Google

Firebase — это как конструктор LEGO.
Ты собираешь идеальный pet-проект, пока не приходит взрослый дядя-бэкендер и не говорит: "где база на PostgreSQL, где доки, где CI/CD?"

Но для старта, демо, лайтовых продов это мечта, а не платформа.

*Facebook принадлежит компании Meta**, признанной экстремистской организацией и запрещенной в РФ;
**Meta признана экстремистской организацией и запрещена в РФ;
#OS #Windows

MS-DOS: мать всего, отец и дед современных ОС

Когда мир ещё не знал что Windows может синим экраном убивать нервы, в нём правил MS-DOS. Это была операционная система без окон, мышки и жалости.

Что такое MS-DOS?

Microsoft Disk Operating System — текстовая ОС, работающая напрямую с железом.
Да-да, никакого интерфейса: только ты и командная строка.
Ты либо учишься пользоваться cd, dir, copy, format, edit — либо ты просто не живёшь.

Краткая история:
Создана в 1981 году на основе 86-DOS, купленной Microsoft у Seattle Computer Products

Была основой для первых версий Windows (до 95-й запускалась прямо из неё)

Последняя официальная версия MS-DOS — 6.22 (1994)

После 2000-х заброшена, но легенда жива в виртуалках

Факты:
Занимала менее 1 МБ (влезала на дискету)

Поддерживала 640 КБ ОЗ, и этого «должно было хватить всем» © Билл Гейтс

Не имела многозадачности — одна программа за раз

Нет GUI — командная строка была всем (не совсем но это тема следующего поста)


Типичные команды MS-DOS:
C:\> DIR         # список файлов
C:\> CD GAMES # зайти в папку
C:\> COPY A:\*.* C:\BACKUP # скопировать файлы с дискеты
C:\> FORMAT C: # случайно форматнуть весь винт (без подтверждения!)

Почему это было больно:

1. Один неверный FORMAT и весь винт идёт нахуй

2. Никакой защиты от сбоев

3. Файловая система FAT16 поддержка до 2 ГБ максимум

4. Любой сбой — перезагружаем комп кнопкой

Зачем знать MS-DOS сегодня?

1. Для ретро-фетишистов

2. Чтобы запустить старые игры через DOSBox

3. Чтобы понять, откуда растут ноги у современных командных оболочек, потому что cmd.exe — это потомок DOS, а dir, cd, echo, copy — всё оттуда


MS-DOS это как дед в кресле-качалке:
давно на пенсии, но если спросишь как починить загрузчик — он знает лучше тебя.
ЛС - Мне никто не нужен
<unknown>
#ItLife

Я вас всех перебью. Виртуально, морально, технически.

Ты сидишь, читаешь это и думаешь: "Очередной заебанный айтишник выебывается".
А я и не выебываюсь. Я сдерживаю ярость.

Ты знаешь, каково это трое суток подряд копаться в чужом говнокоде, написанном лицом, не знакомым с логикой как концепцией?
Ты знаешь, каково это смотреть как твой билд валится из-за одной ебаной зависимости, которую кто-то обновил в 2 часа ночи, потому что "надо было попробовать"?

Ты не знаешь. Ты просто видишь проект, который работает. А значит кто-то умер чтобы ты мог это увидеть.

Я не умничал, я работал. Писал ночью, фиксил утром.
Когда вы «отдыхали от всего», я шёл в бой с новой IDE.
Когда вы жаловались на стек технологий, я в нём жил.

Я не лучший. Я просто остался. А остальные — сгорели.

Каждый мой проект это список ошибок, багов и компромиссов, которые я прожил на себе.
Моя голова не отдыхает. Мой сон это список задач в фоне.
Мои руки помнят git push даже в состоянии полусмерти.

Так что не лезь со своими нравоучениями.
Я не просил сочувствия. Я — не вы.

Я просто знаю что если проект умрёт — его подниму я.
Если всё развалится — я соберу заново.
Потому что у меня нет другого выхода. И никогда не было.

Вот почему я лучший. Не потому что круче. А потому что я не сошёл с ума; пока ещё.
🔥21👍1
#OS #Windows

Windows: из графического костыля в императора офисных ПК

Когда вы запускаете Windows, то возможно думаете, что это нечто самостоятельное. Но нет — в самом начале своего пути, Windows была просто графической накладкой над MS-DOS.

Первая версия Windows вышла в 1985 году, она не была ОС в привычном смысле, а графической надстройкой над MS-DOS и запускалась через команду win.

MS-DOS отвечал за всё важное: доступ к дискам, памяти, управлению процессами.
А Windows... просто рисовала окошки.

Что было под капотом:
Windows 1.0–3.11: полностью зависимы от MS-DOS. Без COMMAND.COM ты никуда не денешься.

Windows 95/98/ME: уже выглядели как полноценные ОСи, но под капотом всё тот же DOS, грузящийся первым.

Любой краш и ты видишь знакомое C:\> как лобовое стекло после ДТП.


Когда всё изменилось:

С приходом Windows NT (New Technology) в 1993 году (и позже XP, 7, 10) Microsoft ушла от DOS-ядра.
Теперь Windows стала настоящей операционной системой, с собственной архитектурой ядра, защищённой памятью и многозадачностью.

Наследие DOS в Windows:

1.До сих пор жив cmd.exe, который по сути правнук COMMAND.COM

2. Многие команды (dir, cd, copy) из тех времён

3. Некоторые драйверы ещё долго опирались на устаревшие DOS-интерфейсы

4. Даже путь C:\Windows\System32 — отголосок древней архитектуры


Windows разрабатывалась как декоративная надстройка, а позже стала монополистом в ОСях.
Но мы всё ещё не забыли как win.com запускал графику, а autoexec.bat настраивал жизнь.
#ItLife

Если ты получил админские права и решил, что можешь лазить в чужие личные папки — поздравляю: ты не админ, ты крыса с комплексом бога.

И да, мы не в 2003 году. Это не «прикол», это реальное нарушение закона.

Юридически ты сделал следующее:

1. УК РФ, 272 ст.:
Неправомерный доступ к компьютерной информации

До 200 тысяч рублей штрафа или до двух лет лишения свободы.
Просто за то что ты без спроса залез туда, где тебе быть не положено.

2. Федеральный закон №152
«О персональных данных»:

> Обработка без согласия субъекта — прямое нарушение.
Даже если «ничего не взял», «просто посмотрел» — уже нарушение.

3. Конституция РФ, ст. 23:
Нарушение неприкосновенности частной жизни и личной информации.


Ты не просто уебался, ты пошёл против базовых прав человека. Ты их нарушил.

А теперь ещё интереснее: ты не только залез в чужое,
ты потом пошёл и НАГЛО СОВРАЛ, что получил на это разрешение.
Что это? Попытка манипуляции? Давления? Или просто ты настолько привык врать, что не замечаешь?
Ты блядь всерьёз считаешь, что можно прикрываться «я ж просто по работе»?
Админ это не про вседозволенность. Админ — про доверие.
И если ты его нарушаешь, то тебя надо не просто увольнять, тебя надо гнать из профессии, как позорную шалаву.

У тебя есть логины, пароли, привилегии. Но это не делает тебя выше закона.
Это делает тебя ответственным.
А ты не справился. Ты проебал доверие.

И если ты думаешь, что никто не подаст жалобу, то ты сильно недооцениваешь последствия.

Что будет дальше:
Логи можно выгрузить.
Жалобу — написать.
Статьи — применить. Опыт есть


А Тебя — выебать юридически так, что в следующий раз подумаешь, прежде чем даже открывать чужие директории, потому что если ты снова сунешься туда куда не просили — я не напишу здесь. Я напишу заявление в нужные органы.
И ты пойдёшь не по Git-истории, а по статье.

Играешь во взрослую жизнь — отвечай по-взрослому.
1
#Backend #Database

Архитектор баз данных + backend — это не два человека. Это я. Один.

Да, можно быть просто "бэкоблядем", клепать эндпоинты и кидать JSON'ы в void.
Но в реальной жизни всё куда веселее: тебе прилетает задача сделать систему, а не просто «прикрутить логику».

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

Что я делаю как архитектор и бэкендер?

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

Сразу закладываю индексы, потому что SELECT без WHERE это пуля себе в колено.

Понимаю, как будет жить каждый элемент данных, в каком виде, откуда пришёл, куда идёт и сколько весит.

Оптимизирую логику запроса чтобы система не легла на отчёте по 3 параметрам.

Бэкендер ≠ тупо API

Backend — это не просто «сделай, чтобы кнопка на фронте работала».
Backend — это:
бизнес-логика,
работа с БД,
миграции,
миграции миграций,
деплой,
докеризация,
документация,
и снова багфикс.
И ты понимаешь что архитектура базы это не «таблица пользователей и токенов».
Это вся модель мира в которую потом надо будет встраивать реальных пользователей: с багами, исключениями и неожиданными сценариями.

Почему это важно?

Потому что потом приходит новый разработчик, открывает базу — и его бросает в пот.
Если ты не архитектор, ты не предугадаешь: какие связи взорвутся, если появится поле user_deleted_at, а что произойдёт, если в таблице будет 30 млн записей.
И вот это отличие человека, который просто пишет код, от того кто думает, как будет жить проект через год.

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

Так что да, архитектор баз данных и backend'ер — это один человек. И меня не надо "хлопать по плечу". Просто не лезьте в мой SQL без спроса.
#ItSecurity

Не доверяйте облакам. Никогда.

Если вы думаете, что Google Drive, Yandex Disk, Dropbox или даже S3 это «удобно, быстро и надёжно», то… вы правы. Но до первого факапа.

До первого бана, утечки, санкций или «мы решили, что ваш контент нарушает правила».
И всё: прощай, архив, база, проект, репозиторий, документы, диплом, жизнь.

Почему облакам нельзя доверять?

1. Они не ваши.
Это чужие сервера, чужая юрисдикция, чужие правила. Вас там никто не спрашивает. Могут удалить, ограничить, просканировать и не пискнешь.

2. Они читают ваши файлы.
Google, Microsoft, Apple — используют автоматическую индексацию, в том числе фото, документы, переписку. «Для улучшения качества» — ага, конечно.

3. Санкции.
Сегодня ты работаешь, завтра — всё заблокировано, аккаунт недоступен, доступ к Firebase закрыт, Copilot отключён, GPT отказывает. Просто потому что ты «не из той страны».

4. Утечки.
Слив баз данных, взломы, ошибки конфигурации регулярно происходят и с самыми крупными платформами. Что думаешь, твой аккаунт под надёжной защитой?

Что делать?

1. Локальные бэкапы.
SSD, жёсткие диски, флешки, сетевое хранилище — всё лучше облака, если оно под твоим контролем.

2. Шифрование.
Хранишь что-то в облаке? Минимум VeraCrypt, максимум вообще без доступа и не без ключа.

3. Собственный сервер.
VPS, Nextcloud, Syncthing — решение не для всех, но хотя бы ты знаешь, кто в ответе.

Не доверяй — проверяй.
Никаких оригиналов, никаких единственных копий в облаке. Храни максимум копию, и то зашифрованную.

Облако — это не твой друг. Это просто арендованный ящик. Пока платишь, находишься в «нужной» стране, не нарушаешь правила, то он с тобой.
Потом хлоп — и нет ничего.


Доверяй себе, своим устройствам и своим резервным копиям. Облака только как дополнение, а не как основа.
1
#Education #Programming

Flutter — когда хочешь сразу и всё.

Если ты хочешь писать мобильное приложение, но тебе лень учить Java, Kotlin, Swift и Objective-C (оно живое кто не знает) — Flutter спасёт. Android, iOS, Windows и Linux поддержка из коробки. А если ты совсем не хочешь останавливаться, то и на веб будешь дрочить

Что это вообще такое?

Flutter это UI SDK от Google. Работает на языке Dart (ты не один такой, кто про него узнал только что, признайся 🤩).

Суть проста:
Ты пишешь один код;

Flutter компилирует его под нативные платформы;

UI рисуется с нуля — никакого WebView, всё своё, родное и красивое;


Почему его любят?

1. Горячая перезагрузка (hot reload) — твоё личное волшебство. Меняешь код и тут же видишь результат. Можно не компилить заново трое суток.

2. Кастомизация UI — вообще всё можно настроить. Flutter рисует сам, так что ты не привязан к нативным компонентам.

3. Огромное комьюнити и куча пакетов. Лень писать кнопку — уже есть 40 вариантов на pub.dev.

А что бесит?

1. Размер приложений — Flutter любит пожрать. Hello World весит как GTA VI.

2. Сложности с нативным функционалом. Хочешь использовать Bluetooth или TouchID? Придётся лезть в нативку. Придётся страдать.

3. Dart. Просто Dart. Язык говно и половина разработчиков так и не знают как с ним дружить.

Для кого он?
Для фрилансеров, которым нужно быстро выдать MVP.

Для стартапов, потому что дорого держать две команды.

Для тех кто хочет собрать себе свой Tinder, но без лишней боли.



Flutter это компромисс. Комфортный, удобный, но не идеальный.
Если хочешь запилить приложение без боли, то возможно сойдёт.
Если хочешь ультимативную производительность и контроль — добро пожаловать обратно в Kotlin и Swift.
Please open Telegram to view this post
VIEW IN TELEGRAM
#Education #Programming

Как работает Flutter?

Кажется магией: пишешь один раз, а запускается и на Android, и на iOS, и даже на вебе. Но давай разберёмся, что реально происходит «под капотом».

1. Язык: Dart

Flutter работает на Dart. Почему не JavaScript или TypeScript?
Потому что Dart это:

Компилируемый язык (можно в машинный код).

С предсказуемым поведением (что важно для UI).

Разработан Google (ну а куда же без лоббизма?).

2. Принцип: "всё своё"

Flutter не использует нативные компоненты UI Android или iOS.
Он сам рисует интерфейс, используя собственный движок Skia — тот же, что в Chrome.

Это значит:
Ты видишь интерфейс, который одинаково выглядит на всех устройствах.

Интерфейс не зависит от версии Android или кастомизации iOS.

Всё это максимально гибко, но и прожорливо.


3. Как запускается на Android

Dart-код компилируется в AOT (Ahead-of-Time) в нативный машинный код.

Flutter включает в себя движок и runtime, которые упаковываются в APK вместе с твоим UI.
Получается приложение, полностью работающее без WebView и без нативных компонентов.

Даже "пустое" Flutter-приложение весит ~4.5 МБ — это уже со встроенным движком и библиотеками.

4. Как запускается на iOS

Примерно так же: Dart → AOT → нативный код → интеграция с iOS runtime.

Под капотом используется Objective-C / Swift обвязка, но основная логика живёт в твоём Dart-коде.

iOS более капризная система, особенно по части сборки, но Flutter умеет это обходить через flutter build ios.

5. Как запускается на Web

Тут Dart компилируется в JavaScript через dart2js или Dart Dev Compiler.

Интерфейс рендерится через HTML + Canvas (или WebGL).
Да, производительность не как у React, но зато кроссплатформенно и "один код на всё".

6. Flutter Desktop

Да-да, Flutter работает и на Windows / macOS / Linux.

Dart компилируется в нативные бинарники, а интерфейс через Skia и API платформы.

Поддержка пока "молодая", но уже рабочая.

7. Hot reload и Dev-mode

Для удобства в разработке Flutter использует JIT-компиляцию и hot reload:
Меняешь код,

Flutter обновляет только изменённые части,

Сохраняется состояние приложения,

Магия!



Flutter это:

1. Собственный UI-движок (Skia).
2. Кроссплатформенная модель.
3. Компиляция Dart в машинный код (или JS).
4. Изоляция от нативной реализации.
5. И абсолютный контроль над тем, как всё выглядит и работает.

Много плюсов, много компромиссов. Но факт в том, что один код → куча платформ и это реально работает.
#Education #Cs

MAUI — Flutter от Microsoft, только с блэкджеком и C#

Когда Google показали Flutter, Microsoft такие: «Хммм… а чё мы, хуже что ли?»
И Бах, появился .NET MAUI, он же Multi-platform App UI. Звучит круто, правда?

Типа один код на C# и ты одновременно пишешь под Android, iOS, Windows, macOS. Почти как Flutter, только вместо Dart — C#, вместо Skia — боль, а вместо удобства Visual Studio.

Как оно вообще работает?

MAUI это эволюция Xamarin.Forms, только на стероидах:
На фронте у нас XAML для UI.

На бэке C# для логики.

Под капотом всё завязано на .NET 8/9 и Native API через обёртки.


«Вы пишете один раз и оно само разбирётся, как и куда компилить». Но IRL это как надеяться что Visual Studio соберёт проект с первого раза. Ага, удачи.

Что умеет MAUI:
Один код — четыре платформы.

Поддержка всех прелестей C#: async/await, LINQ, DI и прочее .NET-барахло.

Глубокая интеграция с Windows (ну кто бы сомневался).

Работа с нативными API через Dependency Injection.


А что бесит?
Тяжёлый старт: чтобы всё это собрать, нужена Visual Studio Enterprise ++ Deluxe, Slave) и 25 ГБ ОЗУ (Просто открыть).

iOS и Android требуют установки SDK, эмуляторов и танцев с бубнами. С i
OS вообще пиздец, либо будь добр это иметь либо ты раком будешь ставить vs раком.

Документации много, но все примеры сыпятся при первой попытке запуска.

Всё нестабильно. Особенно на Mac.


Стоит ли оно того?

Если ты фанат Microsoft, обожаешь C# и хочешь всё и сразу, то да, пробуй MAUI.
Если ты хочешь быстрое, удобное, стабильное кроссплатформенное решение — лучше не стоит.

MAUI всё ещё в разработке, как мечта Microsoft о телефонах с Windows(может со второго раза получится у них, хах). Только теперь это не "Windows Phone", а "Windows Crossplatform But Not Really".
#QA

QA-инженеры, вы серьёзно!?

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

Начинается всё с видосиков на YouTube: «Как стать тестировщиком за неделю». Тип в худи, с кружкой кофе и хуйнёй в голове, показывает как посылать запросы в Postman и кликать по кнопкам в Selenium. Всё. Ты готов к бою. Осталось только на собесе втереть, что ты «ручной QA с уклоном в автоматизацию» и вперед — тестировать фронт каждому третьему лендингу.

Сценарии? Прогон после каждого билда? Ну конечно, гений инженерной мысли. Баг — написал разработчику, всё, ты герой.

А теперь внимание. Открываем с помпой QA Roadmap: бля, у меня уши свернулись от умных слов. Agile, CRM, проектное мышление, владение жизненным циклом продукта и, внимание, навык работы с Jira. Вы серьёзно? Навык мышкой карточку потянуть? Ну тогда у меня в скиллах ещё «жую еду» и «умею дышать».

Люди которые реально шарят в тестировании это, мать его, программистыкоторым пришлось в это вкатиться. Потому что они знают, как работает код. А вы, офисные обезьяны, гоняющие кейсы по 10 раз на дню, даже не понимаете как устроен сервис, который вы «тестируете».

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

А знаете что самое обидное? Эти люди реально считают себя инженерами. Мол, они вносят вклад, спасают проекты от багов, держат прод на плаву. Да-да, особенно когда ты забыл кейс закрыть и фича ушла в прод с ошибкой. Вклад века.

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

Тестировщик — не профессия для дегенератов (хотя по первому впечатлению может показаться иначе)

Интернет — удивительное место: стоит лишь сказать, что тестирование на первый взгляд кажется простой и даже деградантской штукой, и начинается ор. "ДА КАК ТЫ МОГ!", "ОНИ НУЖНЫЕ!", "БЕЗ НИХ ВСЁ УПАДЁТ!". Окей, дышите. Я ведь не говорил что они бесполезны. Я говорил что со стороны они выглядят как-то... ну, несерьёзно.

Но давайте честно: у тестировщиков снаружи репутация типа «мышкой по сайтику, постманчиком по API». И как бы... вот с этим их и ассоциируют. Да, это несправедливо и происходит из-за недопонимания. Но образ есть.

И проблема не в них. Проблема в том, что хер кто снаружи видит их работу. Сервера видны. Код — виден. А вот тестирование это как сапёр, о котором вспоминают только когда он ошибся. А пока всё работает — никто не знает, кто стоял между багом и пользователем.

Тестировщики — это не просто кнопкодавы.
На одних проектах они просто автотесты пишут, на других ковыряются в логике, работают с аналитикой и даже лезут в код. Всё зависит от команды. В стартапе без QA? Бывает. А в финтехе на миллиарды? Без них жопа.

Это не «одна работа» это сотни вариаций.
Фронт, мобильные платформы, legacy проекты, нестабильные API, чудные баги под Safari на китайском смартфоне и каждый из них требуют от QA реального скилла и мозга, а не "проверки логина".

А ещё знаете, если тестировщик — дно, это во-первых, видно. Во-вторых — такие долго не задерживаются. А если человек держится, его слушают, с ним советуются — он полезен. Даже если по утрам двигает тикеты в Jira, а вечером пересобирает автотесты на Selenium.

Местами QA это тупняк. Да, есть и те, кто зашёл "с подворотами и Postman'ом с Ютуба". Но это не отменяет того, что грамотный тестировщик — это бро, который страхует твою жопу от катастрофы.

Так что не стоит заранее лить на них хейт. Потому что пока ты фигачишь фичу, именно они говорят тебе: "Брат, ты там форму не проверяешь вообще-то".

И знаешь, это дорогого стоит.
#Windows #OS

Ну, классика же. У тебя есть:


🔹 Две виртуалки
🔹 Windows Server на флешке
🔹 HDD с подготовленной файловой системой
🔹 ТРИ мать его ноутбука

И всё что ты хочешь — просто запустить этот ебучий Windows Server. Ну просто ЗАПУСТИТЬ. Не настроить домен, не прокинуть DNS, не развернуть AD — просто чтобы экран загрузки показался. Но нееееет…

"Зачем ты, кожаный решил, что у тебя всё заработает с первого раза? Ты что, дебажил ядро Linux'а в 3 ночи, когда тебе было 15? Не? Тогда хер тебе, а не запуск."

Половина утилит — "не поддерживается", драйверы — "не найдены", ISO — "повреждено", BIOS — "а может ты хочешь вместо флешки загрузить себя в депрессию?"

И вот ты стоишь, смотришь на синий экран, но не BSOD. Это "просто пусто". Система как бы есть, но она не хочет быть. Она пассивно-агрессивна, как бывшая на твоей же вписке.

На третий час понимаешь: это КВЕСТ, с элементами выживания.

А потом… всё внезапно заводится. Само. Без причин. Потому что Windows работает по принципу шаманства и непредсказуемости. И ты не радуешься, ты сидишь и думаешь: "А стоит ли жизнь этих страданий?"

Вот и думайте, где удобнее, где проще. Где ты не становишься психологом ISO-образа и дипломированным специалистом по внезапному нерабочему bootloader'у.
#OS #Linux

🐧 Ubuntu: начни с неё, если не хочешь сломать себе мозг (но всё равно сломаешь)

Ubuntu это как первая любовь: вроде и запомнится на всю жизнь, но со временем начинаешь понимать, сколько же багов ты терпел.

Что это вообще за зверь?

Ubuntu — дистрибутив Linux, основанный на Debian. Разрабатывается Canonical с 2004 года. Главная цель — сделать Linux доступным для простых смертных, не читающих man перед сном. Впервые появился как «Linux, который просто работает».

Что под капотом:

1. DE: GNOME (был ещё Unity но линуксоиды не зацепили);

2. Пакетный менеджер: apt, но Canonical любит snap, а snap любят не все;

3. LTS-версии: выходят каждые 2 года, поддерживаются 5 лет. Последняя: Ubuntu 24.04 LTS;

4. Производные: Kubuntu, Xubuntu, Ubuntu MATE, Ubuntu Server — кому что по вкусу.

Почему новички начинают с Ubuntu?

1. Установка проще некуда. Live USB, пара кликов и ты уже в системе. Никакого адского пляса с fdisk, как в Arch.

2. Много документации. Форумы, Reddit, AskUbuntu — всё, чтобы не почувствовать себя идиотом над терминалом.

3. Поддержка «из коробки». Wi-Fi, Bluetooth, видео. На удивление часто заводится с первого раза. Часто, но не всегда.

4. Есть графика. Да-да, если ты боишься терминала, GNOME спасёт тебя. Хотя и пожрёт пол твоей оперативки.

Где начнётся боль?

1. Snap. Это типа контейнеризированные приложения. На практике тормознутая альтернатива apt, которая жрёт ресурсы, стартует по 10 секунд и хранит по три копии всего.

2. Поддержка проприетарного железа. Особенно Nvidia. Кто понял, тот ушел плакать.

3. Система апдейтов. Один кривой apt upgrade и ты без DE. Потом лезешь с лайв-флешкой чинить загрузчик.

Ubuntu Server

Если ты захотел сервер без интерфейса, то есть Ubuntu Server. На нём разворачивают всё: от веб-приложений до Kubernetes. Он лёгкий, надёжный, но без опыта лучше не суйся. Там тебе никто не подмигнёт мышкой.

Ubuntu — это твой боевой старт в мир Linux. Она тебя встретит, приголубит, а потом... заставит гуглить «как удалить snap» или «ubuntu gnome black screen fix». Но ты уже не уйдёшь — подсел. Именно так и работает Linux-секта.
Please open Telegram to view this post
VIEW IN TELEGRAM
#OS #Linux

Debian — или "почему ваш сервер ещё не сгорел"?


О, да! Вы наконец-то созрели для единственного дистрибутива, который не развалится в первый же день, как Ubuntu с её кривыми snap-пакетами или Arch с его "я-обновился-и-всё-сломалось". Поздравляю, вы почти адекватны!

Зачем вам этот дедушка Debian?
Стабильность? Ну да, если называть "стабильностью" пакеты, которые обновляются раз в полтора года. Зато не сдохнет на ровном месте в отличие от вашей надежды на человечество.

Свобода? Вы свободны страдать с `systemd`, но хотя бы без корпоративного говна от Red Hat.

Универсальность? Поддержка древнего железа — потому что новые компьютеры это для слабаков, которые не умеют править `xorg.conf` вручную.


Кому НЕ подойдет?
Фанатам "всё самое новое" — ваш удел Arch (и вечная переустановка).

Любителям "удобства" — идите на Windows, там хоть синий экран смерти предсказуем.

Тем, кто не умеет в консоль — `apt-get` вас всё равно добьёт.


Как установить?

1. Качаете образ (без торрентов).
2. Читаете документацию (ага, как будто кто-то это делает).
3. Ставите, настраиваете, страдаете, но зато потом не гуглите с "ой, у меня демон сдох".

Если после установки у вас не работает Wi-Fi — это не баг, а фича. Поздравляю, теперь вы настоящий линуксоид!
🤡321
Please open Telegram to view this post
VIEW IN TELEGRAM
#OS #Linux

🐧 Fedora — это дистрибутив для тех, кто хочет чтобы их компьютеры выглядели как серверы, а работали как калькуляторы на Windows 95. Это как если бы ты захотел кучу новых фишек, но с такой "пользовательской дружелюбностью", что иногда хочется сбросить монитор в окно.

Без пива Fedora существовать не может: вроде и есть, но что-то не то. Хочешь стабильности? Иди в Ubuntu или Debian. Хочешь дистрибутив который первым находит баги в твоей жизни и всем сообщает? Да, она тебе поможет. Оно как та система, что тебе говорят «работать будет», а ты сидишь и думаешь: «А чё блять… не работает?»

Обновления тут не просто обновления, это покушение на твою психику. Лишь в Fedora ты почувствуешь как система говорит тебе: «Ну что, не выспался? Вот тебе ядро чтобы ты ночью не спал». Если ты любишь гадать почему твои драйвера не работают и как решить данную проблему, то это, безусловно, твой выбор.

Оооо, GNOME... Если бы кто-то очень старался сделать интерфейс в стиле "я не понимаю, что происходит, но очень красиво", при этом сделав все так, что ты часами будешь тыкать по пустому экрану, пытаясь понять, куда же пропала твоя кнопка "выключить систему".

Fedora — это дистрибутив для тех кто не боится ошибок, потому что ошибок тут так много, что ты начнешь верить в бога. Хочешь чтобы твоя жизнь была как увлекательное приключение? Просто установи её и твои проблемы будут на том уровне, что ты начнешь ценить моменты когда просто не включается интернет. А когда всё-таки включится — скажешь спасибо Fedor'e за каждое обновление, которое принесёт тебе новую ошибку чтобы ты не скучал.

Ну а если ты решился, то удачи. Это будет как сделать татуировку на лбу: все будут знать что ты смелый, но вопросы по поводу твоего выбора будут возникать.


В общем, если хочешь почувствовать себя программистом, который всегда готов быть пидорасиком для операционной системы, тогда прошу, качай Fedora.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1