Physics.Math.Code
147K subscribers
5.24K photos
2.34K videos
5.79K files
4.67K links
Купить рекламу: https://telega.in/c/physics_lib

VK: vk.com/physics_math
Чат инженеров: @math_code
Учебные фильмы: @maths_lib
Репетитор IT mentor: @mentor_it
YouTube: youtube.com/c/PhysicsMathCode

Обратная связь: @physicist_i
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
О физике северного сияния

Северное сияние (Aurora Borealis) — это видимое проявление фундаментальных процессов физики плазмы и электродинамики, происходящих на расстоянии в сотни километров над Землей.
Рассмотрим механизм этого явления:
1. Солнечный ветер — поток заряженных частиц (в основном электронов и протонов) — достигает магнитосферы Земли.
2. Частицы захватываются магнитным полем и направляются вдоль силовых линий к магнитным полюсам.
3. В верхних слоях атмосферы (ионосфере) эти высокоэнергетические частицы сталкиваются с атомами и молекулами кислорода и азота.
4. При столкновении происходит возбуждение атомов с последующим излучением квантов света в характерном диапазоне (зеленый, красный, фиолетовый).

Малоизвестные факты физики и электродинамики процесса:

▪️Роль альфвеновских волн. Непосредственную «доставку» электронов в атмосферу обеспечивают не статические поля, а альфвеновские волны — низкочастотные колебания плазмы и магнитного поля. Они разгоняют электроны вдоль силовых линий, подобно гигантскому электромагнитному «катапульту».
▪️Электрические токи гигантских масштабов. Свечению сопутствует система кольцевых токов в магнитосфере и электроджетов в ионосфере. Сила этих токов может достигать миллионов ампер, а их возмущения (магнитные бури) способны влиять на энергосистемы на Земле.
▪️Дифференциальное свечение по высоте. Разный цвет — не просто разный газ. Это точный индикатор энергии частиц и плотности атмосферы:
— Ярко-зеленый (557,7 нм): атомарный кислород на высоте ~100-150 км. Характерная черта основных дуг.
— Красный (630 нм): тот же атомарный кислород, но на высотах 200-400 км, где столкновения редки. Это признак спокойных, диффузных сияний.
— Фиолетовый/синий: ионизированные молекулы азота на высотах ~80-100 км. Их свечение говорит о самых энергичных частицах, проникающих глубже.
▪️Инверсионный слой космического масштаба. Область генерации сияния работает как природный лазер на разреженных газах (без зеркального резонатора). Процесс называется индуцированным излучением — возбужденные столкновением атомы излучают когерентно под воздействием пролетающих электронов.

😠 Может ли быть южное сияние? Не только может, но и регулярно существует. Его правильное название — Aurora Australis (Южная Аврора). Оно возникает вокруг южного магнитного полюса по тем же физическим законам. Наблюдать его сложнее из-за малозаселенности приполярных районов Южного полушария (Антарктида, юг Индийского и Тихого океанов). Во время мощных геомагнитных бурь его можно видеть на юге Новой Зеландии, Австралии и даже в Аргентине.

Итак, сияние — это гигантский природный ускоритель частиц, плазменный дисплей, работающий в разреженной атмосфере, и наглядная демонстрация связи Земли с Солнцем. Его изучение — ключ к пониманию космической погоды и физики плазмы. #электродинамика #physics #оптика #наука #физика #магнетизм #science #опыты #видеоуроки #астрофизика #геомагнетизм

💡 Physics.Math.Code // @physics_lib
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5229👍21😍5🤩21
This media is not supported in your browser
VIEW IN TELEGRAM
☺️ Труба Кундта — это экспериментальный акустический прибор, изобретённый в 1866 немецким физиком Августом Кундтом для измерения скорости звука в газах или твердом цилиндре. На сегодняшний день прибор используется для демонстрации акустической стоячей волны.

🔴Труба состоит из прозрачного цилиндра, заполненного небольшим количеством мелкого лёгкого порошка (из пробки, ликоподия, талька, частичек пенопласта). На одном конце трубы установлен источник звука стабильной частоты. Кундт использовал металлический резонатор, который "пел" при его натирании. Современные демонстрации используют в качестве источника звука динамики, подключённые к генератору сигналов, дающим синусоидальный сигнал стабильной частоты. Другой конец трубы заглушен или содержит перемещаемый поршень для настройки длины трубы. Когда источник звука включён, длину трубы изменяют поршнем с противоположного конца, пока звук не станет резко громким — это показывает наличие в трубе акустического резонанса. Это означает, что на пути звука умещается кратное число длин волн звука, длина волны обозначается буквой λ. В то же время длина трубы кратна целому числу полуволн. В трубе образуется стоячая волна. Амплитуда вибраций, вследствие сложения волн, равна нулю через периодические расстояния вдоль трубы, образуя "узлы", в которых порошок не шевелится, и пучности, в которых амплитуда максимальна и порошок шевелится. Порошок захватывается движениями воздуха, созданными акустической волной в трубе, и формирует горки в местах узлов, которые остаются и после выключения звука. Расстояние между горками равно половине длины волны звука λ/2. Если измерить расстояние между горками - можно найти длину волны звука λ, и если частота звука, обозначаемая буквой f известна, то можно найти скорость звука в воздухе. Взаимосвязь описывается формулой: c = λ•f. Перемещение частиц порошка вызывается акустическим потоком, вызванным пограничным слоем у стенок трубы.

Заполняя трубу различными газами, а также откачивая газ из трубы насосом Кундт смог измерить скорость звука в различных газах и при различных давлениях. Источником колебаний служил металлический стержень, закрепленный в центре пробки с одного из концов трубы. Когда Кундт тёр стержень куском кожи, покрытом канифолью, стержень резонировал на своей резонансной частоте. Так как скорость звука в воздухе уже была известна, Кундт смог рассчитать скорость звука в металле стержня. Длина стержня L была равна длине полуволны звука в металле, а расстояние между горками порошка в трубе равно половине длины волны звука в воздухе d. Соответственно скорости звука в этих средах относились между собой как длины волн. #физика #наука #science #physics #акустика #волны #опыты #эксперименты #видеоуроки

Акустическая левитация

〰️ Воздействие звуковой волны 24 Гц на струю воды 🔉

Кнут способен преодолеть звуковой барьер

〰️ Воздействие звуковых волн различных частот на соль 🔉

💡 Physics.Math.Code // @physics_lib
Please open Telegram to view this post
VIEW IN TELEGRAM
242👍30🔥23❤‍🔥6🤯5😍4🤔2🤩21
Media is too big
VIEW IN TELEGRAM
👩‍💻 Ричард Фейнман: Fun to Imagine. Полная версия [FHD качество]

Это интервью было снято у Ричарда Фейнмана дома и показано на канале BBC2, в виде нескольких коротких серий, в период с 8 июля по 12 августа 1983.
0:00:50 Колеблющиеся атомы
0:07:18 Огонь
0:12:08 Резиновые жгуты
0:14:54 Магниты
0:22:29 Электричество
0:32:06 Загадки о зеркале и поезде
0:37:46 Чудо зрения
0:43:40 Большие числа
0:55:01 Способы думать

#physics #math #математика #научные_фильмы #видеоуроки #физика #science #наука

💡 Physics.Math.Code // @physics_lib
Please open Telegram to view this post
VIEW IN TELEGRAM
2🔥5018👍13😍5🙏3❤‍🔥2😱1👾1
👨🏻‍💻 Блог с заметками преподавателя по математике, физике, информатике и IT:

💡 Репетитор IT men // @mentor_it

Автор рассказывает о задачах и способах их решения. Пишет заметки о применении математики в жизни и как сквозь неудачи и вопросы идти к физико-математическому просветлению.
👍225🔥4🙈2😱1
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥33👍1310🤯8🤔4🤓2😎2😱1🤩1
📚 Фейнмановские лекции по физике [1976-1978] 💫

💾 Скачать книги

Это попытка одного из величайших умов XX века не просто изложить физику, но и передать особый, «фейнмановский» способ мышления о природе.

▪️ Не для абсолютных новичков. Несмотря на все старания Фейнмана сделать материал доступным, это очень плотный и сложный курс. Человеку без какой-либо базовой подготовки по математике и физике (на уровне старших классов физмат-школы или 1-2 курса вуза) будет крайне тяжело.

▪️ Не лучший выбор для «натаскивания» на экзамены. Если ваша цель — быстро решить сотню типовых задач для зачета, «Фейнмановские лекции» — не ваш инструмент. Они дают глубокое понимание, но не отрабатывают навык решения стандартных упражнений. Для этого лучше подходят классические задачники (вроде Иродова или Савельева).

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

▪️ Физика своего времени. Лекции были прочитаны в 1960-х годах. С тех пор физика ушла далеко вперед (например, в области физики элементарных частиц, космологии). Хотя фундамент остался неизменным, современному читателю важно это учитывать.

☕️ Для тех, кто захочет задонать на кофе: ВТБ: +79616572047 (СБП)

📚Книжная серия. Курс общей физики [2007-2020] Иродов, Покровский

📚 Сборник задач по общему курсу физики [3 книги] [1998-2000]

📚 Курс общей физики в 5 томах [2021] Савельев И.В.

📚 Наука. Величайшие теории [50 выпусков] + Спец. выпуск

📚 Курс теоретической физики [2 тома] [1972] А. С. Компанеец

#физика #математика #задачи #геометрия #physics #math #science #наука #подборка_книг

💡 Physics.Math.Code // @physics_lib
👍4527🔥11😍3
📚_Фейнмановские_лекции_по_физике_1976_1978.zip
33.9 MB
📚 Фейнмановские лекции по физике [1976-1978]

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

▪️Глубина понимания, а не просто знание. Ричард Фейнман был известен своей способностью видеть сердце проблемы, отбрасывая всё лишнее. Он не дает готовых формул и алгоритмов решения задач. Вместо этого он показывает, как физики мыслят, как они приходят к тем или иным выводам, строят модели и проверяют их. Вы учитесь не «чему», а «как».

▪️Уникальный педагогический подход. Фейнман мастерски начинает с простых, интуитивно понятных вещей (часто с бытовых примеров), а затем шаг за шагом подводит к сложнейшим концепциям. Его объяснения полны аналогий, мысленных экспериментов и ярких метафор, которые врезаются в память. Знаменитая лекция о законе сохранения энергии, начинающаяся с детской игрушки, — тому подтверждение.

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

▪️Честность и отсутствие догм. Фейнман не скрывает сложностей и «неудобных» мест в физике. Он прямо говорит о том, что наука еще не все знает, где есть пробелы в понимании и какие вопросы остаются открытыми. Эта интеллектуальная честность заразительна и мотивирует на собственные размышления.

▪️Блестящий стиль изложения. Текст сохранил живую, разговорную интонацию Фейнмана. Читая, будто слышишь его голос — энергичный, полный юмора и любви к своему предмету. Это делает даже самый сложный материал увлекательным.

Для кого эти лекции:

— Для студентов 1-3 курсов физико-математических и инженерных специальностей — как основное или дополнительное чтение для формирования глубокого понимания.
— Для преподавателей физики — как неиссякаемый источник вдохновения, идей и блестящих объяснений.
— Для любознательных людей с хорошей технической подготовкой (инженеров, программистов), которые хотят понять, «как устроен этот мир» на фундаментальном уровне.
— Для всех, кто ценит красоту научной мысли и хочет насладиться интеллектуальным стилем одного из гениев современности.

💡 Physics.Math.Code // @physics_lib
👍5636🔥21❤‍🔥7🤩2
📝 Метод Якоби: решение СЛАУ методом итерации

Для решения систем линейных алгебраических уравнений (СЛАУ) большой размерности, а также систем, имеющих разреженные матрицы, применение точных методов (например, метод Гаусса) не является целесообразным, так как...

👨🏻‍💻Читать статью полностью 📝

#программирование #математика #python #разбор_задач #численные_методы

💡 Репетитор IT men // @mentor_it
Please open Telegram to view this post
VIEW IN TELEGRAM
👍198🔥7😱4
👻 Держите фотографию замечательного Ричарда Фейнмана, а также несколько интересных задачек по физике (школьных знаний для их решения достаточно). Все ваши мысли/соображения пишите в комментариях)

📝 Обсуждаем задачи здесь

📚 Фейнмановские лекции по физике [1976-1978] 💫

#physics #math #математика #задачи #геометрия #разбор_задач #физика #science #наука

💡 Physics.Math.Code // @physics_lib
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍36❤‍🔥1716🔥12🤩4
🖥 Найди ошибку за 30 секунд

Представьте: разработчики потратили 50 часов на поиск бага в этом куске кода на C++. Попробуйте найти проблему до того, как дочитаете пост до конца.
if (ch >= 0x0FF00)
{
if (!((ch >= 0x0FF10) && (ch <= 0x0FF19)) ||
((ch >= 0x0FF21) && (ch <= 0x0FF3A)) ||
((ch >= 0x0FF41) && ((ch <= 0x0FF5A)))
{
if (j == 0)
continue;
ch = chx;
}
}

👉 Что пошло не так? Автор хотел проверить, что символ ch не входит ни в один из трех диапазонов. Но оператор отрицания ! применяется только к первому условию, а не ко всей сумме. Из-за этого логика сломалась, и проверка работала совсем не так, как ожидалось. Ошибка в расстановке скобок, которая привела к 50-часовому детективу.

А у вас были подобные ошибки в коде? Расскажите об этом в комментариях. #программирование #C #cpp #задачи #computer_science #разбор_задач

💡 Physics.Math.Code // @physics_lib
Please open Telegram to view this post
VIEW IN TELEGRAM
👻4624👍17🔥8👨‍💻6🗿4🤯3🫡2🤨1
Media is too big
VIEW IN TELEGRAM
🔴 Физика и анимация 🟢

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

#физика #наука #science #видеоуроки #gif #научные_фильмы #physics

💡 Physics.Math.Code // @physics_lib
Please open Telegram to view this post
VIEW IN TELEGRAM
376👍26🔥21💯12👏2🤔2🤩1
Media is too big
VIEW IN TELEGRAM
🔊 Колебания, стоячие волны, резонанс и сахар в качестве индикатора узлов звуковых волн

〰️ Стоячая волна — это устойчивый колебательный (волновой) процесс, возникающий при наложении волн, согласованных по времени и длине. Допустим, в какой-то среде возникает волна. Скажем, человек спел звук. Звуковая волна распространяется и попадает на поверхность. Звук отражается: отражённая волна идёт обратно. Теперь у нас 2 звуковых волны. Как они взаимодействуют? Преграды и неоднородности вызывают наложения падающей и отражённой волн. На результат влияют частота и фаза звука, направление распространения и затухание волн в среде. Вы знаете, что мягкие ткани гасят звук, а твердые вещества, наоборот, хорошо проводят его.

Допустим, у нас каменный тоннель: он не гасит, а хорошо отражает звук. Если подобрать звук с длиной волны, которая совпадает (или кратна) с поперечным размером тоннеля, мы получим интересный эффект. Возникает стоячая волна. Падающая и отражённая волны согласованы по времени: они начинают усиливать друг друга. Это явление называется резонанс. Стоячая волна появляется при отсутствии потерь в среде распространения и полном отражении падающей волны. В жизни такого нет, небольшие потери энергии будут всегда. #научные_фильмы #опыты #physics #science #физика #наука #механика #колебания #волны

💡 Physics.Math.Code // @physics_lib
👍2110🔥4😍3🤝2🆒1
🤔 Задача по математике для наших подписчиков. Уровень сложности: ~7-8 класс

#math #математика #задачи #пропорции #разбор_задач #algebra #calculus

✏️ Подсказка к задаче здесь

💡 Physics.Math.Code // @physics_lib
1🔥3713👍9🤯8🗿6🤔21
Media is too big
VIEW IN TELEGRAM
🌐 IPv4 vs IPv6: Гонка за адресами, которую мы почти проиграли

IP-адрес — это главный цифровой паспорт устройства в сети. Сейчас мы живем в эпоху перехода между двумя сущностями: старого доброго IPv4 и нового монстра IPv6. Здесь можно привести аналогию: IPv4 — это как номер квартиры в старом фонде, а IPv6 — это координаты в звездной системе.

▪️ IPv4: 32 бита. Выглядит как четыре числа: 192.168.1.1. Это примерно 4.3 миллиарда уникальных адресов. В 80-х казалось, что это навсегда.
▪️ IPv6: 128 бит. Выглядит как абракадабра: 2001:0db8:85a3:0000:0000:8a2e:0370:7334. Количество адресов? 340 ундециллионов ( это 10³⁶ ). Грубо говоря, на каждый квадратный нанометр поверхности Земли можно повесить миллионы адресов.

Закончились ли адреса IPv4? Формально — да. В 2019 году. Последние большие блоки раздали в Европе ещё в 2019-м. Но интернет не рухнул! Как так? Существует технология NAT (Трансляция адресов): Ваш роутер дома получает один единственный «белый» адрес, а внутри квартиры раздает вам «серые» (192.168...). Вы втроем сидите в интернете через одну дверь.

Будет ли полный переход? Это неизбежно. Но это самый медленный апдейт в истории. Переход идет уже лет 15, и до сих пор около 30-40% трафика в мире идет по IPv4. Почему так долго? Провайдерам нужно менять железо за миллиарды долларов. IPv6 несовместим с IPv4 "напрямую". Это как пытаться вставить кассету в плеер без переходника.

Инженеры придумали «костыли» — механизмы перехода:
▫️ 1. Двойной стек (Dual Stack): Устройства и сайты учатся говорить на двух языках сразу. Если можешь говорить на IPv6 — говоришь на нем. Нет — переходишь на старичка IPv4.
▫️ 2. Туннелирование: Пакеты IPv6 упаковываются внутрь пакетов IPv4 и отправляются через старую инфраструктуру. Как письмо в письме.

🔺 3 малоизвестных факта из мира сетей:

1. Вы сидите в интернете без IP? Если вы дома, скорее всего, у вас нет своего уникального IPv4-адреса. Вы сидите за CGNAT (Carrier-Grade NAT). Это когда провайдер выделяет один публичный адрес целой улице. Из-за этого могут не работать онлайн-игры (особенно старые) или торренты.

2. IPv6 не только для людей. Из-за гигантского пространства адресов, концепция IPv6 позволяет каждой косточке в вашем организме потенциально иметь свой адрес. В интернете вещей (IoT) это спасение, но и кошмар для безопасности, если неправильно настроить файрвол.

3. Китай ускоряет смерть IPv4. Китай форсирует переход на IPv6 быстрее всех. У них так мало "своих" IPv4-адресов на душу населения (большая часть принадлежит США), что экономически им выгоднее строить "новый интернет" с нуля, чем перекупать старые адреса на черном рынке.

IPv4 умрет не завтра. Он будет работать еще лет 20, как работают факсы в военных ведомствах. Но будущее за IPv6. Работает ли у вас IPv6 можно в настройках роутера или на сайте: https://test-ipv6.com .

💡 Physics.Math.Code // @physics_lib
Please open Telegram to view this post
VIEW IN TELEGRAM
195👍60🔥17🫡6🤔5💯5👻2🤝2🌚1
Изменение требования, новая версия узла или корректировка алгоритма и проект внезапно начинает терять сроки и бюджет. Переделки накапливаются, испытания повторяются, а команды тратят время на согласования вместо разработки. В сложных изделиях ключевая задача — управлять изменениями так, чтобы они не превращались в перерасход и сдвиги графика.

О том, как системное моделирование помогает сделать жизненный цикл разработки управляемым и предсказуемым, поговорим 8 апреля в Москве на конференции «Системное моделирование в управлении жизненным циклом разработки сложных изделий». В программе реальные кейсы, интеграция CAD/PLM/CAE/EDA и практический опыт внедрения.

Среди участников и экспертов представители Минпромторга, Росатома, ОАК, ОДК, Концерна «Алмаз-Антей», АО «НПП Исток» и других организаций.

Регистрация по ссылке
15🔥86👍31🌚1😈1🙈1
Media is too big
VIEW IN TELEGRAM
🖥 SQL-инъекции: когда точка с запятой становится оружием

SQLI — не просто абстрактная уязвимость из учебника, а классика, которая до сих пор регулярно приводит к громким взломам. Это история про то, как отсутствие одной функции mysqli_real_escape_string() может стоить миллионов долларов. Рассмотрим как это работает подробнее...

Вместо логина передаём в поле ввода гениальную строчку: ' OR '1'='1' --
И вот уже запрос: SELECT * FROM users WHERE login = '$login' AND password = '$pass'
Превращается в запрос: SELECT * FROM users WHERE login = '' OR '1'='1' --' AND password = '$pass'
-- комментирует всё после, а '1'='1' всегда истинно. Добро пожаловать в систему.

🖥 Более высокий уровень: UNION-based атака
' UNION SELECT username, password FROM users --

Если колонки совпадают, вы получите всю базу логинов и хешей.

Из истории эпичных взломов:

1. Heartland Payment Systems (2008) — через SQLI хакеры установили малварь на сервера процессинговой компании, скомпрометировав 130+ миллионов кредитных карт. Ущерб — сотни миллионов долларов.

2. Yahoo (2012) — атака через union-based инъекцию привела к утечке 453 тысяч логинов и паролей в открытый доступ. Пароли хранились в plain text — отдельный позор.

3. TalkTalk (2015) — подростки взломали телеком-гиганта через элементарную SQLI, получив доступ к данным 157 тысяч клиентов. Компания потеряла £60 млн и репутацию.

▪️«Невозможный» взлом Lamo и Th3j35t3r — в 2001-2002 годах хакер Адриан Ламо использовал SQLI (среди других методов) для проникновения в сети NYT и Yahoo, просто вводя payload-ы в формы поиска на сайтах.

▪️Группа «D33D Company» — в 2012 году через SQLI выкачали и слили в открытый доступ 1 миллион Apple UDID-ов. Заявление хакеров: «Мы сделали это, чтобы поднять вопрос о безопасности».

Даже в 2024 году OWASP включает Injection в Top-3 угроз. Защита — это не только prepared statements, но и:
▫️ Валидация и эскейпинг входных данных
▫️ Принцип минимальных привилегий для DB-пользователя
▫️ Регулярный аудит и тесты (например, sqlmap в умелых руках)

🔐 Prepared Statements — или как перестать конкатенировать и начать жить. Если вы до сих пор собираете SQL-запросы склейкой строк, у нас для вас плохие новости. Prepared Statements (подготовленные выражения) — это единственный цивилизованный способ обезопасить запросы к БД. Это не просто «рекомендация», а обязательный паттерн.

Представьте, что вы даёте инструкцию сварщику:
Конкатенация (уязвимо): «Свари мне конструкцию вот по такому чертежу {user_input}» — где user_input может быть "а потом разбери соседний танк".
Prepared Statement: «Вот держатель (шаблон), а вот отдельно деталь, которую нужно вставить в держатель. Свари только так». Деталь физически не может стать инструкцией.

Раньше (плохо):
$query = "SELECT * FROM users WHERE login = '$login' AND password = '$pass'";
$result = mysqli_query($conn, $query);

Теперь (как надо):
// 1. Шаблон с плейсхолдерами (?)
$stmt = $conn->prepare("SELECT * FROM users WHERE login = ? AND password = ?");
// 2. Привязываем переменные к плейсхолдерам (типизация!)
$stmt->bind_param("ss", $login, $pass);
// 3. Выполняем
$stmt->execute();

Или для PostgreSQL:
$stmt = $pdo->prepare("SELECT * FROM users WHERE login = :login AND password = :pass");
$stmt->execute(['login' => $login, 'pass' => $pass]);

Что происходит на самом деле?
1. Компиляция шаблона: DB-сервер заранее анализирует структуру запроса, понимает, где WHERE, что такое login, и запоминает план выполнения.
2. Отдельная передача данных: Ваши $login и $pass передаются после компиляции шаблона.
3. Безопасность: Даже если в $login передать ' OR '1'='1', это будет интерпретировано не как команда SQL, а просто как строка для сравнения с полем login. Инъекция невозможна в принципе.

Если в вашей кодовой базе до сих пор есть строки типа "SELECT * FROM " . $table . " WHERE id = " . $id, остановите разработку и проведите рефакторинг. Прямо сейчас. Время, сэкономленное на написании «быстрого костыля», вы потратите в сотни раз больше на расследование инцидента.

💡 Physics.Math.Code // @physics_lib
Please open Telegram to view this post
VIEW IN TELEGRAM
2220👍15🔥111🤔1👨‍💻1
👨🏻‍💻 Магия 3D на ZX Spectrum: Как это делали на калькуляторе и ассемблере? 🖥

В былые времена 8-битный ZX Spectrum заставляли делать то, что ему вообще-то не снилось — крутить 3D-модели. Когда мы сейчас видим скриншоты Elite или Driller, сложно поверить, что этот "проволочный каркас" заставлял людей в 90-х открывать рты от удивления . Но как это работало технически? Были ли там библиотеки DirectX? Конечно нет. По сути был голый металл. Никаких готовых решений не существовало. Программисты были одновременно и математиками, и художниками, и инженерами. Вся магия происходила на голом ассемблере (Z80). Почему на ассемблере? Потому что Бейсик был безнадежно медленным. Представьте: первая 3D-программа в журнале Your Computer (1983 год) была написана на Бейсике, но уже через год код уходил в машинные коды, чтобы получить хоть какие-то сносные 5-10 кадров в секунду. Как вам такие FPS, зумеры?

🔻 Цена 3D: Такты и килобайты

Программы весили около 16-48 КБ. В этот объем нужно было вместить код движка, текстуры (если они были) и логику. Один из современных энтузиастов ради интереса переписал 3D-движок под Spectrum. Результат на реальном "железе" с частотой 3.5 МГц — 1 кадр в секунду. Чтобы получить играбельные 10 FPS, код оптимизировали до такой степени, что каждая команда и каждый такт процессора были на счету.

⚙️ Как это создавалось программно?

Современный программист скажет: «float умножить на матрицу». Спектрумист сказал бы: «Ты охренел, сынок, какой float?». И вот какие интересные особенности получались:
▪️1. Никаких дробей: Дробных чисел боялись как огня. Выход — использовать целочисленную арифметику и таблицы предрасчета. Например, синус угла хранили не как число от 0 до 1, а как значение, умноженное на 256
▪️2. Таблицы вместо расчетов: Процессор Z80 не умел быстро умножать. Поэтому умножение делали сдвигами и сложением, либо просто брали готовый результат из заранее заготовленной таблицы (например, таблица умножения на 24 килобайта — это вам не шутки!)
▪️3. Точка решает всё: Самая важная процедура — вывод точки. В статьях того времени программисты хвастались скоростью: 70 тактов на точку . Если процедура вывода точки тормозит, кубик при повороте развалится на глазах.

🏆 Соревнования: Кто быстрее

Все началось с проволочных кубиков (1983-1985). К 1987 году вышла культовая Driller (она же Space Debris), которая использовала заливку полигонов. А потом началась демосцена. Группы ломали игры, чтобы вытащить оттуда 3D-движки.
▫️ Jacek Michalak (Польша) выдрал движок из игры Starion и Starstrike II, добавив туда текстуры.
▫️ В середине 90-х украинские и словацкие кодеры выдали жемчужины: Echology (где объекты были усыпаны точками), IRIS Ultrademo с тенями у объектов.
▫️ Вершина инженерной мысли — режим Gigascreen, когда использовались два экранных буфера для создания иллюзии большего количества цветов.

💬 Насколько это было сложно?

Очень. Чтобы объект не "плыл" при вращении из-за накапливающихся ошибок округления, координаты хранили в 5-байтовом формате, а расчет одного кубика на 200 кадров мог занимать 40 секунд процессорного времени . Код приходилось писать так, чтобы прерывания (halt) не стирали изображение с экрана. Программисты вручную оптимизировали код под конвейер команд, использовали "метод средней точки" для расчета сложных полигонов через простые арифметические операции, чтобы не множить лишние умножения.

ZX Spectrum — это машина, на которой люди учились делать невозможное. 3D на нем — это чистая магия, основанная на математике, знании архитектуры процессора и нечеловеческом терпении. Если есть здесь олды, которые застали и пробовали такую машину, то напишите в комментариях вашу историю. Фото/видео по теме приветствуются. #hardware #assembler #ассемблер #графика #3d #математика #геометрия #программирование #zxspectrum #gamedev

💡 Physics.Math.Code // @physics_lib
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍104❤‍🔥4039🔥30👏51🤔1🙏1