Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Регистрируясь, я даю согласие на обработку данных и условия почтовых рассылок.
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр Классика карточных игр! Яркий геймплей, простые правила. Развивайте стратегию, бросайте вызов соперникам и станьте королем карт! Играйте прямо сейчас!

Дурак подкидной и переводной

Карточные, Настольные, Логическая

Играть

Топ прошлой недели

  • solenakrivetka solenakrivetka 7 постов
  • Animalrescueed Animalrescueed 53 поста
  • ia.panorama ia.panorama 12 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая «Подписаться», я даю согласие на обработку данных и условия почтовых рассылок.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Маркет Промокоды Пятерочка Промокоды Aroma Butik Промокоды Яндекс Путешествия Промокоды Яндекс Еда Постила Футбол сегодня
0 просмотренных постов скрыто
27
AlexMrak
AlexMrak
Reddit

Мигранты везде мигранты⁠⁠

1 день назад
1/3

Наткнулся на ветку обсуждений на Реддите, в которой индусы из развитого штата обсуждали мигрантов из Бангладеша. Капец какая знакомая ситуация

https://www.reddit.com/r/Kerala/comments/pf5qc7/are_bengalis...

Показать полностью 3
Индия Бангладеш Reddit Мигранты Конфликт Reddit (ссылка) Длиннопост
8
585
Grouchyknight

Вот это я понимаю принципиальность!⁠⁠

2 дня назад

Стажёр в Китае уволился с работы после требования начальства отдать выигранную на мероприятии Nvidia RTX 5060

Стажёр неназванной корпорации в Шанхае уволился с работы, поскольку начальство хотело отобрать как корпоративное имущество выигранную им в лотерею видеокарту GeForce RTX 5060. Розыгрыш графической карты стоимостью $400 проходил 14 ноября на техническом мероприятии Nvidia, стажёр попал на эту презентацию в рамках оплачиваемой командировки.

Вот это я понимаю принципиальность!

После мероприятия финансовый отдел компании потребовал от стажёра отдать видеокарту, поскольку работодатель оплатил поездку и покрыл другие расходы. Китайские СМИ указали, что победителя лотереи неоднократно вызывали на встречи с высшим руководством, которое продолжало требовать сдать RTX 5060.

Из-за нескольких отказов начальство намекнуло стажёру, что ему следует искать новую работу. В ответ стажёр уволился, забрав с собой видеокарту.

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

Китайское информационное агентство Fast Technology опубликовало заявление местных юристов, которые определили, что право собственности на такие предметы зависит от того, были ли они выиграны «по счастливой случайности» или в результате «исполнения официальных обязанностей» для компании.

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

https://habr.com/ru/news/973098/

Показать полностью 1
Увольнение Видеокарта Nvidia Розыгрыш Лотерея Reddit (ссылка)
94
98
Bloopz
Bloopz
Косплей

Nikke Goddess of Victory | Marciana⁠⁠

2 дня назад

...

...

...

В съёмке участвовала: Candy Ball.

Показать полностью 4
Косплей Marciana (Nikke) Goddess of victory: nikke Видеоигра Фотография Reddit (ссылка) Длиннопост
1
255
user5513110
TopWar

Ответ docitay в «Как бы повела себя Финляндия в 1941, если бы не Зимняя война в 1939»⁠⁠10

2 дня назад

Также как во время HEIMOSODAT или войнах за Мурманскую область и Карелию" (Heimosodat) 1918-1922. Когда Финляндия два раза напала на Россию/СССР чтобы забрать Мурманскую область и Карелию чтобы построить Suur Suomi.

Политика Великая Отечественная война Военная история Длиннопост Фашизм Вторая мировая война Красная Армия Запад Финляндия Нацизм Русофобия Ответ на пост Reddit (ссылка) Текст Волна постов
38
1932
docitay
TopWar

Ответ на пост «Как бы повела себя Финляндия в 1941, если бы не Зимняя война в 1939»⁠⁠10

3 дня назад

Почитал комментарии. Впечатлен. Оказывается, прояви товарищ Сталин сдержанность, финны так и быть не стали бы трогать Ленинград. И не было никакой блокады. Вот это персонаж особенно впечатлил @user7457819 с буквально панегириком нежным финским обывателям, которые вообще не хотели, но мол выбора не было...

Ну во первых вы бы пожили немного в финке, пообщались с местными в момент подпития... Они гордятся участием в блокаде. Они знают, что там много умерло от голода, но это для них нормально. Они знают, что в Карелии были концлагеря и там куча погибших, но какой может быть разговор с punainen paskiainen? Блин, финский историк с удовлетворением констатирует эффективность зачистки Itä-Karjala (https://www.autistici.org/deti-uzniki/sepp.html). Мол хорошо парни отработали. Добротно. И вообще стыда ни в одном глазу. И это сейчас, в вегетарианские времена. А в 30 годы?

Во-вторых... А в 30 годы они готовились. На полном серьезе. Нет, в одиночку никто не собирался. Ждали каких-либо серьезных союзников. Чтобы откусить весь европейский север РСФСР. Плакаты на reddit https://www.reddit.com/r/PropagandaPosters/comments/1kkf5kg/...

Показать полностью 3
Политика Великая Отечественная война Военная история Длиннопост Фашизм Вторая мировая война Красная Армия Запад Финляндия Нацизм Русофобия Ответ на пост Reddit (ссылка) Волна постов
315
153
Timeweb.Cloud
Timeweb.Cloud
TECHNO BROTHER

Программирование для Windows 1.0 в 2025 году⁠⁠

3 дня назад

«...Одним из примеров громоздкой и, по мнению авторов, бесполезной надстройки является интегрированная система WINDOWS фирмы Microsoft. Эта система занимает почти 1 Мбайт дисковой памяти и рассчитана на преимущественное использование совместно с устройством типа "мышь".» — вы точно знаете, откуда это

Приветствую всех! Буквально неделю назад прошло сорок лет с момента выхода первой релизной версии Windows. Именно в тот день в 1985 году началась история ныне повсеместно распространённой ОС.

И вот, узнав об этом, я подумал: а что, если попробовать запустить эту ОС и узнать, как предполагалось писать софт для неё? Именно этим мы сейчас и займёмся. Заодно и узнаем, насколько это было проще или сложнее, нежели сейчас.

❯ Суть такова

Уверен, если вы интересуетесь историей ОС, то хорошо знаете, что вообще такое Windows 1.0 и что она собой представляла. Хотя Windows 1.X были не полноценными ОС, а графическими оболочками под DOS, для них существовал SDK, позволяющий писать оконные приложения. Тем не менее, из-за высокой по меркам тех лет сложности разработки самих приложений было не так уж и много.
Особой популярности система тоже не заполучила, поскольку имела значительные системные требования и малое количество софта. Очень многие из тех, у кого в те годы был ПК, про этот продукт вообще ни разу не слышали. В общем, это самая подходящая платформа, под которую сейчас стоит попробовать что-то написать. Этим-то мы и займёмся.

❯ Обзор оборудования

Как известно, я пишу про железо, а не только про софт, поэтому запускать то, что получится, будем на настоящем ПК.

Намного более аутентичного для такой системы PC XT у меня нет, поэтому для запуска был вытащен вот такой промышленный одноплатник. Конечно, можно было бы взять и просто плату на 286 или 386, но этот девайс лежал у меня уже больше полугода и всё ждал, когда я сделаю с ним что-то интересное. Так что сейчас будем пробовать с ним.

Это ROCKY-328E-M4. На борту процессор 386SX-40 (точнее, SoC Ali M6117C, объединяющая процессорное ядро и чипсет Ali M1217), четыре мегабайта памяти, IDE, флоппи-контроллер, в данный момент ненужный Ethernet, панелька под DiskOnChip и стандартные для любого ПК интерфейсы. Когда-то давно он работал на одном неназванном предприятии и управлял какими-то устройствами при помощи плат дискретного ввода-вывода и платы последовательных портов. Впрочем, про эти модули поговорим как-нибудь в другой раз, а сейчас будем рассматривать его просто как обычный ПК.

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

Встроенного видео на плате нет, поэтому для запуска понадобится ещё и видеокарта.

Это довольно популярная в своё время плата на чипе Realtek RTG3105i. Особых причин выбрать именно её у меня нет: просто когда-то она досталась мне вместе с этим промПК.

Всё вместе втыкается в кросс-плату.

У меня она вот такая, от Advantech. Конкретно эта сделана под размер обычной материнки типа AT. Даже предусмотрен разъём DIN-5 для клавиатуры с отводом от него для подключения к процессорной карте.

❯ Что нужно, чтобы начать писать софт под Windows 1.X?

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

  • Образ MS-DOS 3.0.

  • Дистрибутив Windows 1.X.

  • Компилятор. В моём случае Microsoft C 4.0.

  • Windows SDK. Тут я решил использовать версию 1.03.

Изначально я хотел использовать SDK 1.01 и Microsoft C 3.0, но...

...во всяком случае, я пытался.

То ли ему чего-то не хватает, то ли устанавливается он не так просто, как мне думалось, но ни одна программа им не собралась. Поэтому выбор был сделан в пользу того, на что имелась документация. Никаких PDF, никакой онлайн-справки в те годы не было, все мануалы были бумажными. Так уж вышло, что на Microsoft C 4.0 и Windows SDK 1.03 их сканы имелись в наличии.

Ну что, приступим?

❯ Эмулятор

Как я уже упомянул, собирать всё будем в эмуляторе. Им стал 86box (пришедший на смену почившему PCem). Как его поставить, описывается тут.

Создал виртуалку с процессором 386SX и чипсетом как у моей платы (дабы, если что, заранее обнаружить, что что-то пошло не так, и это решить).

Далее добавляем винт, а в разделе контроллеров выбираем «PC/AT Floppy Drive Controller» и «[ISA16] PC/AT IDE Controller (Dual-channel)».

В BIOS указываем параметры жёсткого диска. Загружаем в дисковод образ DOS и перезагружаемся.

Далее выполняем стандартные действия для установки DOS: размечаем диск при помощи fdisk, форматируем при помощи format, делаем его загрузочным при помощи sys и копируем остальные файлы. На этом загрузочная дискета нам больше не понадобится. Компьютер теперь будет запускаться с винта.

Процесс установки Windows 1.0 особых сложностей тоже не вызывает, так что показывать его я тут не буду. При установке надо указать следующие параметры: мышь — Microsoft Mouse (Bus/Serial), видеокарта — EGA with Enhanced Color Display or Personal Computer Color Display, принтер — не используется.

Запускаем ОС командой win и убеждаемся, что картинка цветная, мышь шевелится, а стандартные приложения нормально открываются.

❯ Компилятор

Теперь очередь компилятора.
Установочной программы у него нет. Поэтому всё придётся копировать самому. На системном диске создаём папки BIN, INCLUDE, TEMP, LIB. В BIN копируем всё содержимое первой дискеты, ещё несколько экзешников со второй и link.exe с третьей, в INCLUDE — всё с расширением *.H и *.INC, в LIB — всё с расширением *.OBJ и *.LIB, TEMP оставляем пустой. В INCLUDE создаём папку SYS и копируем туда содержимое одноимённого каталога на третьем диске. Дискеты 6, 7 и 8 для первого запуска можно пока не трогать.

Казалось бы, на этом всё. Но на самом деле нет, ведь если теперь мы попробуем что-либо собрать, то компилятор выдаст вот такую ошибку.

Поэтому продолжим установку, для чего создадим в корне системного диска ещё два файла.

Первый, AUTOEXEC.BAT, следующего содержания:

PATH C:\WINDOWS;C:\BIN;C:\INCLUDE;C:\LIB
SET INCLUDE=C:\INCLUDE
SET LIB=C:\LIB
SET TMP=C:\TEMP
SET TEMP=C:\TEMP

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

Второй, CONFIG.SYS, вот такой:

FILES=20 BUFFERS=40

Это файл конфигурирования системы. Здесь мы задали число максимально возможных открытых файлов и число максимально возможных дисковых буферов.

Если у вас не чистая установка DOS, то прописываем эти параметры и имена переменных в соответствующих файлах.

После этого тестовая программа (из комплекта компилятора) должна будет собраться и запуститься. Отлично.

❯ SDK

Теперь нужно установить Windows SDK. Поставляется он опять таки на нескольких дискетах.

Вставляем диск номер два и выполняем следующие команды:

C:
copy A:\INSTALL.BAT C:\INSTALL.BAT
CD \
INSTALL \BIN \WINDOWS \INCLUDE \LIB

После этого начнётся установка.

Тут всё просто, вставляем очередную дискету и ждём, пока скопируются файлы.
На этом установку SDK можно считать законченной.

❯ Ставим Windows

А пока что отвлечёмся от установки инструментария и произведём ещё одну установку Windows.

На этот раз создадим загрузочную дискету с Windows 1.03, установив систему на чистый образ и добавив на оставшееся место DOS. Туда же чуть позже закинем собранные приложения.

Собираем тестовый стенд.

В кросс-плату втыкаем одноплатник и видеокарту, подключаем клавиатуру, мышь, монитор, блок питания и дисковод. В дисковод втыкаем записанную нами дискету. Всё, девайс готов к запуску.

❯ Пишем первую программу

Ну что же, время попробовать что-нибудь собрать. В составе SDK есть и какие-то примеры кода. С них-то и начнём.

Находим папку HELLO и копируем её на жёсткий диск. Теперь заходим в неё и выполняем команду:

make hello

После этого через примерно пару минут приложение должно будет собраться. Если не собралось — проверяем, правильно ли установили компилятор и SDK.

Можно даже попробовать запустить свежесобранный экзешник и убедиться, что приложение действительно требует для работы Windows.

Поэтому заходим в Windows, запускаем, и, если всё получилось, на экране должно будет появиться примерно следующее:

Отлично!

❯ Что же тут происходит?

Взглянем на исходник этого приложения.

Файл достаточно внушительной длины (больше полутора сотен строк). Тем не менее, там можно встретить много того, что есть и в куда более свежих программах для Windows на Си.

Вообще, первые версии Windows были просто оболочками, не имели никакой многозадачности, а целью их создания было не выпустить полноценную ОС, а облегчить работу с DOS. Несмотря на это, кое-что из появившегося в них либо претерпело значительное развитие и используется и до сих пор (например, GDI, много позже ставший GDI++ и использующийся и сейчас, появился с самых первых сборок Windows), либо ушло в историю, но оставило свой след (например, параметр hPrevInstance, использовавшийся в Win16 и всегда равный NULL в Win32).

Но всё же отличий Win16 от Win32 намного больше, чем может показаться неподготовленному пользователю. В Win32 очень многие операции стали значительно удобнее, а случайно уронить всю систему, запороть память другого приложения или заставить все остальные программы разом перестать работать теперь куда сложнее.

❯ Тесты на ПК

Теперь попробуем запустить тестовый стенд.

Насаживаем перемычку между контактами PS_ON и землёй на кросс-плате, запуская тем самым блок питания. Через несколько секунд компьютер проходит POST и начинает загружаться. Можно набирать WIN и пробовать запускать софт.

Всё успешно работает!

И ещё одно приложение — показ фигуры заданного мышкой размера.

❯ Утилиты

Помимо инструментария для сборки в комплекте с SDK идёт несколько графических приложений. Само собой, никаких интерактивных редакторов кода с ним не поставлялось: для написания программы надо было открыть текстовый редактор, набрать там код, закрыть редактор, попробовать собрать приложение, затем при необходимости снова открыть редактор и исправить ошибки. И так очень много раз. Но всё же несколько интересных утилит тут имеется.

Первая из них — это редактор шрифтов.

Следом идёт редактор иконок.

В Windows 1.0 нет ни рабочего стола, ни панели задач. Единственное место, где видны эти иконки, так это при сворачивании приложения. Снизу видны открытые HELLO.EXE, MS-DOS Executive и калькулятор.

Вот так выглядит процесс редактирования.

И, наконец, самое важное. Это редактор диалогов.

Весь интерфейс программы создаётся в нём и сохраняется в виде двух файлов — ресурсов и заголовков.

❯ Что же в итоге?

Несмотря на то, что программирование под Win16 по сути умерло, некоторые порой всё же пробуют что-то написать. Кому-то это надо из любви к ретрокомпьютерам, кому-то — ради того, чтобы оживить какой-то древний, но очень нужный и приносящий очень много денег софт.
Но всё же если вдруг вас так и тянет попробовать что-то написать под древнюю ОС, то рекомендую начать опыты с Windows 95 или 98. Под них куда больше документации и примеров кода, а инструментарий намного более удобен.
Такие дела.

❯ Ссылки

  • Win16 for Fun and (Probably No) Profit

  • Building Win16 GUI applications in C

  • Win16 Retro Development

  • Win16 Programming Resources

  • Готовая установка Microsoft C для разработки софта под Windows 1.X


Материал получился очень объемным, но весьма интересным. Все иллюстрации не влезли. Но их можно изучить в

оригинальной статье.


Написано при поддержке Timeweb Cloud.

Больше интересных статей и новостей в нашем блоге на Хабре и телеграм-канале.

Реклама ООО «ТАЙМВЭБ.КЛАУД», ИНН: 7810945525

Показать полностью 24
IT Программист Windows Программирование Программа Электроника Microsoft Timeweb Telegram (ссылка) YouTube (ссылка) Reddit (ссылка) Длиннопост Блоги компаний
18
98
Bloopz
Bloopz
Косплей
Серия Косплей: Final Fantasy / Серия компьютерных игр.

Final Fantasy VII(Remake) | Тифа Локхарт⁠⁠

3 дня назад

...

...

...

В съёмке участвовала: Candy Ball.

Показать полностью 4
Косплей Tifa Lockhart Final Fantasy VII Square Enix Компьютерные игры Фотография Reddit (ссылка) Длиннопост
1
72
mosaicOpal
mosaicOpal
Опалы и опалесценция

Видишь радугу?⁠⁠

3 дня назад

Подождите увеличения!

Перейти к видео

Автор на Reddit

Почему креветка радужная?

Потому что это креветка с иридесценцией (структурной окраской) - её цвета не пигментные, а оптические.

У таких креветок окраска возникает:

  1. Из-за микроскопических пластин и слоёв в хитине, которые отражают и преломляют свет.

  2. Из-за интерференции света (как у крыльев бабочек, радужной плёнки на воде и перьев павлина).

  3. Из-за прозрачности хитина свет, проходя через него под разными углами, меняет оттенок.

По внешнему виду это Caridina cf. mariae (группа Tiger / Galaxy).

Показать полностью
Креветки Интерференция Вертикальное видео Reddit (ссылка) Короткие видео Аквариум Радуга Видео
2
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Маркет Промокоды Пятерочка Промокоды Aroma Butik Промокоды Яндекс Путешествия Промокоды Яндекс Еда Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии