Forwarded from Вправо Вверх 📈 Михаил Табунов
История появления JavaScript
1995 год.
Netscape Navigator – главный браузер планеты, занимает 80% рынка, да еще и денег стоил, что сейчас вообще дикость.
Microsoft смотрит на это и видит: интернет – это будущее, и они его упускают.
Нужно что-то решать.
Microsoft срочно пилит Internet Explorer и встраивает его в Windows.
Бесплатно. Принудительно. Каждому.
Netscape в панике. Им нужно что-то, чего нет у Microsoft. Какая-то киллер-фича, которая привяжет разработчиков к их браузеру.
И тут появляется идея: а давайте сделаем так, чтобы странички были живыми.
Чтобы кнопки нажимались, формы проверялись, что-то мигало и двигалось.
Для этого нужен язык программирования прямо в браузере.
Задачу дают Брендану Айку, разработчику Netscape, которому на тот момент 34 года.
Срок – 10 дней.
Десять, блин, дней.
Не месяцев. Не недель. Дней.
Без чата гпт, Claude Code и даже Stack Overflow.
Брендан сел и написал.
Назвали JavaScript.
Чисто маркетинговый ход, чтобы присосаться к хайпу Java, которая тогда была на пике.
К самой Java этот язык имеет примерно такое же отношение, как хомяк к Hamster Kombat.
Спасло это Netscape? Нет.
Microsoft тупо скопировал идею, назвал свою версию JScript, и продолжил катком давить конкурента.
К 2000 году Netscape был мёртв. IE захватил 95% рынка.
Но JavaScript выжил.
И что в итоге?
Этот «временный костыль на 10 дней» сейчас:
– работает на 99.9% всех сайтов в интернете и является самым популярным языком в мире
– крутится на серверах (Node.js)
– пишет мобильные приложения (React Native)
– управляет умными чайниками
И при этом всем – это лютое говно.
Язык, написанный за 10 дней, несёт в себе все болячки того спринта:
Например "11" + 1 = "111", но "11" - 1 = 10 – typeof null возвращает "object" (это официально признанный баг, который не фиксят 30 лет ради обратной совместимости)
0.1 + 0.2 = 0.30000000000000004
[] == ![] возвращает true
Это помимо того, что ООП приходится эмулировать на костылях, а для сортировки массива тебе нужен фреймворк.
Человечество придумало TypeScript, линтеры, 500 библиотек, которые надо грузить вместе с сайтами чтобы как-то жить с этим, но это костыли поверх костылей, что плохо.
Удивительно, как иногда популярным становится очевидное говно.
1995 год.
Netscape Navigator – главный браузер планеты, занимает 80% рынка, да еще и денег стоил, что сейчас вообще дикость.
Microsoft смотрит на это и видит: интернет – это будущее, и они его упускают.
Нужно что-то решать.
Microsoft срочно пилит Internet Explorer и встраивает его в Windows.
Бесплатно. Принудительно. Каждому.
Netscape в панике. Им нужно что-то, чего нет у Microsoft. Какая-то киллер-фича, которая привяжет разработчиков к их браузеру.
И тут появляется идея: а давайте сделаем так, чтобы странички были живыми.
Чтобы кнопки нажимались, формы проверялись, что-то мигало и двигалось.
Для этого нужен язык программирования прямо в браузере.
Задачу дают Брендану Айку, разработчику Netscape, которому на тот момент 34 года.
Срок – 10 дней.
Десять, блин, дней.
Не месяцев. Не недель. Дней.
Без чата гпт, Claude Code и даже Stack Overflow.
Брендан сел и написал.
Назвали JavaScript.
Чисто маркетинговый ход, чтобы присосаться к хайпу Java, которая тогда была на пике.
К самой Java этот язык имеет примерно такое же отношение, как хомяк к Hamster Kombat.
Спасло это Netscape? Нет.
Microsoft тупо скопировал идею, назвал свою версию JScript, и продолжил катком давить конкурента.
К 2000 году Netscape был мёртв. IE захватил 95% рынка.
Но JavaScript выжил.
И что в итоге?
Этот «временный костыль на 10 дней» сейчас:
– работает на 99.9% всех сайтов в интернете и является самым популярным языком в мире
– крутится на серверах (Node.js)
– пишет мобильные приложения (React Native)
– управляет умными чайниками
И при этом всем – это лютое говно.
Язык, написанный за 10 дней, несёт в себе все болячки того спринта:
Например "11" + 1 = "111", но "11" - 1 = 10 – typeof null возвращает "object" (это официально признанный баг, который не фиксят 30 лет ради обратной совместимости)
0.1 + 0.2 = 0.30000000000000004
[] == ![] возвращает true
Это помимо того, что ООП приходится эмулировать на костылях, а для сортировки массива тебе нужен фреймворк.
Человечество придумало TypeScript, линтеры, 500 библиотек, которые надо грузить вместе с сайтами чтобы как-то жить с этим, но это костыли поверх костылей, что плохо.
Удивительно, как иногда популярным становится очевидное говно.
👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Генератору превью для GitHub репозиториев - ЖИТЬ!
Но - другому 😅
Как сообщал раннее, сервис preview.dragon-code.pro доживает свои последние дни и было рекомендовано пользоваться другими генераторами изображений, например, banners.beyondco.de.
Так вот, представляем Вашему вниманию новый генератор изображений для GitHub Actions - GitHub Preview Updater
Он собирает информацию о Вашем репозитории и проекте и составляет на её основании картинку.
Есть фича с поддержкой тёмной и светлой тем браузера. Да, GitHub так умеет и генератор, соответственно, тоже.
Генератор поддерживает гибкую настройку для каждого репозитория. По-умолчанию он составляет ссылку для banners.beyondco.de, но можно применить свой шаблон
Подробнее об использовании читайте в ридми проекта:
https://github.com/TheDragonCode/github-preview-updater
Быстрый старт:
Но - другому 😅
Как сообщал раннее, сервис preview.dragon-code.pro доживает свои последние дни и было рекомендовано пользоваться другими генераторами изображений, например, banners.beyondco.de.
Так вот, представляем Вашему вниманию новый генератор изображений для GitHub Actions - GitHub Preview Updater
Он собирает информацию о Вашем репозитории и проекте и составляет на её основании картинку.
Есть фича с поддержкой тёмной и светлой тем браузера. Да, GitHub так умеет и генератор, соответственно, тоже.
Генератор поддерживает гибкую настройку для каждого репозитория. По-умолчанию он составляет ссылку для banners.beyondco.de, но можно применить свой шаблон
Подробнее об использовании читайте в ридми проекта:
https://github.com/TheDragonCode/github-preview-updater
Быстрый старт:
# .github/workflows/preview.yml
name: Preview Updater
on:
schedule:
- cron: '20 2 * * *'
workflow_dispatch:
permissions:
contents: write
pull-requests: write
jobs:
preview:
uses: TheDragonCode/.github/.github/workflows/preview.yml@main
🔥4❤🔥1
🎁 GitHub Preview Updater v2 уже в релизе!
Что изменилось?
14-го января вышел MVP проекта.
15-го января его отшлифовали и скорректировали API.
Среди прочего, в процессе добавили поддержку глобального конфига в репозитории
Добавлены параметры для отрисовки команды установки - глобальная и dev зоны видимости.
И много чего ещё.
Во второй версии улучшена работа с урлами - убраны остатки привязки к banners.beyondco.de при необходимости заменить ссылку на свою.
Быстрый старт:
Создать файл
И руками запустить экшен. Либо дождаться обработки по расписанию.
https://github.com/marketplace/actions/preview-updater
Что изменилось?
14-го января вышел MVP проекта.
15-го января его отшлифовали и скорректировали API.
Среди прочего, в процессе добавили поддержку глобального конфига в репозитории
.github организации, исправлены ошибки объединения проектов, обнаружения пакетных менеджеров, установки иконок.Добавлены параметры для отрисовки команды установки - глобальная и dev зоны видимости.
И много чего ещё.
Во второй версии улучшена работа с урлами - убраны остатки привязки к banners.beyondco.de при необходимости заменить ссылку на свою.
Быстрый старт:
Создать файл
.github/workflows/preview.yml со следующим содержимым:name: Preview Updater
on:
schedule:
- cron: '20 2 * * *'
workflow_dispatch:
permissions:
contents: write
pull-requests: write
jobs:
preview:
uses: TheDragonCode/.github/.github/workflows/preview.yml@main
И руками запустить экшен. Либо дождаться обработки по расписанию.
https://github.com/marketplace/actions/preview-updater
GitHub
Preview Updater - GitHub Marketplace
Lightweight preview update in Your repository
🔥2
Forwarded from Пых (Валентин Удальцов)
Стартовал ежегодный опрос!
С 2020 года лидеры русскоязычного PHP-сообщества проводят опрос. Так мы получаем портрет нашей аудитории и понимаем, на чём фокусироваться в новом году.
В этот раз эстафету от CutCode приняла питерская команда Live PHP, пожелаем ребятам удачи с вёрсткой итогов!
➡️ Пройти опрос
Опрос анонимный, но если оставить свою почту, можно поучаствовать в розыгрыше слоника💙 Пых.
Итоги, как обычно, будут опубликованы на phpcommunity.ru.
С 2020 года лидеры русскоязычного PHP-сообщества проводят опрос. Так мы получаем портрет нашей аудитории и понимаем, на чём фокусироваться в новом году.
В этот раз эстафету от CutCode приняла питерская команда Live PHP, пожелаем ребятам удачи с вёрсткой итогов!
Опрос анонимный, но если оставить свою почту, можно поучаствовать в розыгрыше слоника
Итоги, как обычно, будут опубликованы на phpcommunity.ru.
Please open Telegram to view this post
VIEW IN TELEGRAM
В силу нулевого интереса к проекту, а также активному развитию различного рода консольных, GUI и ИИ инсталляторов, принял решение заархивировать проект Package Wizard, на разработку которого потребовалось много сил и времени.
Интересно что первая его версия, вышедшая в 2021-м году, опередила своё время - разработчики в то время ещё не были готовы к использованию инсталляторов для проекта вследствие чего интерес к нему был практически нулевой, а после возрождения проекта в 2025-м он уже потерял актуальность.
Поэтому просто приложу скриншоты мажорных изменений, так и не вышедших в релиз. И... помянем...
Интересно что первая его версия, вышедшая в 2021-м году, опередила своё время - разработчики в то время ещё не были готовы к использованию инсталляторов для проекта вследствие чего интерес к нему был практически нулевой, а после возрождения проекта в 2025-м он уже потерял актуальность.
Поэтому просто приложу скриншоты мажорных изменений, так и не вышедших в релиз. И... помянем...
😱3🫡1
И, раз уж пошла жара на принятие неизбежного - официально останавливается работа над проектом Cashbox для Laravel.
Это менеджер систем оплат.
Это менеджер систем оплат.
😢2🔥1
Фигурка толстого кота (кошки) - это воплощение лени и очарования!
Посмотрите на этого парня. Он познал дзен, съел все сливки в округе и теперь транслирует в ваш дом энергию абсолютного спокойствия.
Этот кот не просто зевает — он напоминает, что пора отложить дела и выпить кофе. Фигурка выполнена из золотого шёлкового пластика: он обладает благородным сатиновым блеском, который переливается на свету, как настоящий металл.
Почему он должен поселиться у вас?
- Текстура: Невероятно приятный на ощупь, гладкий, с глубоким золотым отливом.
- Детализация: Каждая складочка на упитанном пузике и широко открытый рот пропечатаны идеально.
- Стиль: Шикарно смотрится на рабочем столе, полке с книгами или прикроватной тумбе.
- Идеальный подарок: Для тех, кто ценит юмор, уют и котиков (то есть для всех).
Характеристики:
- Размеры (ДхВхШ): 65х49х40 мм
- Вес: 12.9 гр.
- Цвет: золотой шёлк
- Материал: шёлковый полилактид
Цена указана за одну фигурку.
Кот ждёт своего хозяина, чтобы вместе сладко зевать!
Цена: 230 руб за кота
По вопросам пишите в личные сообщения канала.
Посмотрите на этого парня. Он познал дзен, съел все сливки в округе и теперь транслирует в ваш дом энергию абсолютного спокойствия.
Этот кот не просто зевает — он напоминает, что пора отложить дела и выпить кофе. Фигурка выполнена из золотого шёлкового пластика: он обладает благородным сатиновым блеском, который переливается на свету, как настоящий металл.
Почему он должен поселиться у вас?
- Текстура: Невероятно приятный на ощупь, гладкий, с глубоким золотым отливом.
- Детализация: Каждая складочка на упитанном пузике и широко открытый рот пропечатаны идеально.
- Стиль: Шикарно смотрится на рабочем столе, полке с книгами или прикроватной тумбе.
- Идеальный подарок: Для тех, кто ценит юмор, уют и котиков (то есть для всех).
Характеристики:
- Размеры (ДхВхШ): 65х49х40 мм
- Вес: 12.9 гр.
- Цвет: золотой шёлк
- Материал: шёлковый полилактид
Цена указана за одну фигурку.
Кот ждёт своего хозяина, чтобы вместе сладко зевать!
Цена: 230 руб за кота
По вопросам пишите в личные сообщения канала.
❤2😁1
Продам принтер Creality K1 Max с CFS в отличном состоянии.
Включил и печатает.
Принтер использовался редко, в домашней печати.
Знаменитая кривизна стола Creality практически полностью компенсирована каптоновым скотчем.
Установлены пружины для регулировки высоты стола.
Вместе с принтером отдам:
- инструмент и снятые при установке CFS запчасти
- съёмную гладкую пластину стола
- силикагель для CFS
Возможна печать многоцветной тестовой модели.
Транспортировочная коробка отсутствует, только самовывоз.
Продаю в связи с переходом на класс выше.
Цена: 60'000 руб
По вопросам пишите в личные сообщения канала.
Включил и печатает.
Принтер использовался редко, в домашней печати.
Знаменитая кривизна стола Creality практически полностью компенсирована каптоновым скотчем.
Установлены пружины для регулировки высоты стола.
Вместе с принтером отдам:
- инструмент и снятые при установке CFS запчасти
- съёмную гладкую пластину стола
- силикагель для CFS
Возможна печать многоцветной тестовой модели.
Транспортировочная коробка отсутствует, только самовывоз.
Продаю в связи с переходом на класс выше.
Цена: 60'000 руб
По вопросам пишите в личные сообщения канала.
Подборка шпаргалок, руководств и инструментов для тестирования приложений на инъекции
https://github.com/Ilias1988/Hacking-Cheatsheets
https://github.com/Ilias1988/Hacking-Cheatsheets
GitHub
GitHub - Ilias1988/Hacking-Cheatsheets: A comprehensive collection of penetration testing cheatsheets, guides, and tools.
A comprehensive collection of penetration testing cheatsheets, guides, and tools. - Ilias1988/Hacking-Cheatsheets
🔥4
Разница запросов в применении foreach внутри билдера Laravel релейшена
✍1