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

Битва Героев: RPG

Приключения, Фэнтези

Играть

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

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

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

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

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

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

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

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

5 дней назад

«...Одним из примеров громоздкой и, по мнению авторов, бесполезной надстройки является интегрированная система 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 (ссылка) Длиннопост Блоги компаний
21
darckday
darckday

Нумерологический эксперимент Horix⁠⁠

5 дней назад

Всем привет! Помните ролик про "В вас сидит сущность в виде гномика, я сейчас все почистю..."? Почему люди верят в это? А шоу экстрасенсов? Вы видели, сколько там людей? Сколько людей смотрят? Согласно статистике, не менее 30% всех людей так или иначе верят в гороскопы, предсказания и т.п. Какой-то процент людей верят очень сильно. Я ничего не понимаю в астрологии, нумерологии и прочих колдунствах, но я умею программировать и сегодня существует ИИ, который, в отличие от меня, разбирается. Он знает, что такое "Дева в Овне", "Овен в огне" и т.п. двусмысленности.
Вместе с шайтан-машиной мы принялись изучать вопрос, и, пока изучали, писали код, пытались воспроизвести то, что сейчас делают астрологические, нумерологические, психологичекие и т.п. сервисы.
В результате у нас получился сервер, который делает эти расчеты. Для удобной визуализации и использования решили использовать API Telegram и подключили тг бота к серверу (проект назвал Horix).
По астрологии получилась такая картина: сервер считает ровно также, как и популярные мировые площадки. То есть, если вводить одинаковые данные - результат будет одинаковый (детерминированный). Получается, что астрологические расчеты - это не "сущности в виде гномиков", это просто расчеты, которые потом как-то и кем-то интерпретируются. В боте получилось сделать автоинтепретации таких расчетов.
По нумерологии картина получилась похожая: буквы соответствют каким-то числам, числа собираются в кучу, считаются по общедоступным формулам и выдается какой-то результат, который опять же, кем-то и как-то интерпретируется. В боте тоже получилось это сделать.
По психологии оказалось сильно проще - в общем доступе есть тест из 20 вопросов и методология, как интерпретировать ответы.
Ничего про чакры, гномиков, ауры, магию - сделать не получилось, потому что они как реальные, измеряемые сущности не существуют в смысле данных и сенсоров, а значит их нельзя корректно «сосчитать» и подать как объективный функционал. То есть все, что можно было посчитать - сделано. Все остальное может проистекать только из этих расчетов.
Далее мысль стала двигаться так - если есть расчеты астрологические, нумерологические и психологические, можно их сравнить и выявить общие данные, которые совпали, то есть произвести Астро-Нупо-Психо-Расчет (сокращенно АНПР-001). Я это реализовал и назвал "супер-профиль Horix".
Сейчас я думаю так: если у меня есть расчет, к примеру, "счастливого" числа на текущий день, то я могу взять все счастливые числа человека за месяц, к примеру, и посмотреть, в какие дни у человека был удачный день, а в какие - нет. Для этого нужно реализовать трекер настроения/удачности дня. Чтобы человек в течение дня тыкал кнопку, удачный день или нет. Это будет Нумо-Настро-Уда-Расчет (ННУР-001), который будет сравнивать реально удачные/неудачные дни с числом, которое считает нумерология, выявив таким образом реально удачные/неудачные числа дня для человека.
Тут я остановился и подумал, что меня уже заносит и я занимаюсь чушью, которая никому не нужна. Вообще, занимаясь такими исследованиями, нужно быть предельно осторожным, чтобы самому не уверовать в гномиков. Поэтому я решил обратиться к сообществу Пикабу для честной оценки моих начинаний.
Понимаю, что оценка будет жесткой и что возможен вариант, когда от коментариев мне захочется сесть в уголок и заплакать. Но тогда я пойму, что точно занимаюсь хе...ней, и не буду тратить свое время. Но может случиться вариант, что бот понравится (30% людей, я о них помню, они существуют), что будут комментарии с реальными советами, предложениями, пожеланиями. Пока у меня в голове генерируются вариации использования всего того, что действительно можно посчитать, для выжимки из этих расчетов чего-то ценного для человека. Если проект будет иметь хоть какой-то потенциал и будет интересен, я выложу сами формулы, по которым считаются числа, профили и т.п.
Заранее всем спасибо, кто даст обратную связь, особенно по ННУР-001, потому что этот функционал потребует от меня много времени и сил, я буду его делать, если эту мысль поддержат.

Ссылка на бот: https://t.me/horix_for_you_bot
Ссылка на канал поддержки: https://t.me/horixforyou

Показать полностью
[моё] Блог Астрология Нумерология Психология Стартап Разработка IT Текст
5
8
Esta.hash
Esta.hash

Конспект ИБ | понятие сети, VLAN, VPN, DMZ⁠⁠

5 дней назад

Информационно-вычислительная сеть

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

По способу доступа к информации сети бывают:

  • открытые (общедоступные)

  • закрытые (корпоративные).

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

Корпоративная сеть может использовать специфическое оборудование, телекоммуникации и программное обеспечение, учитывающее особенности организации, владеющей сетью. Кроме того, она либо полностью изолирована от других сетей (не имеет никаких связей с ними), либо имеет более или менее защищённые внешние связи. Последнее означает, что связь с внешним миром, осуществляется через компьютеры со специальным защитным программным обеспечением. Они препятствуют утечке корпоративной информации и несанкционированному проникновению в сеть снаружи.

Основные характеристики закрытых сетей:

Ограниченный доступ: Доступ к ресурсам сети (файлам, папкам, приложениям) разрешен только определённым пользователям.

  • Локальное расположение. Обычно, но не всегда, ограничены определенной географической зоной, например, офисом компании.

  • Безопасность. Обеспечивают высокий уровень защиты данных от несанкционированного доступа.

  • Использование частных IP-адресов. Внутри закрытых сетей часто используются частные=серые=внутренние=локальные IP-адреса, которые не доступны из Интернета.

  • Технологии безопасности. Для обеспечения безопасности используются такие технологии, как брандмауэры, VPN, DMZ (демилитаризованная зона).


VLAN

VLAN (Virtual Local Area Network) — это технология, позволяющая создавать виртуальные локальные сети, объединяя устройства в логические группы независимо от их физического расположения, изолируя трафик этих групп друг от друга.

Основные особенности VLAN:

  • Устройства в разных VLAN не могут напрямую обмениваться данными без маршрутизации.

  • Трафик внутри VLAN изолирован.

  • Реализуется через теги в Ethernet-кадрах


VPN

VPN (Virtual Private Network, виртуальная частная сеть) — это технология, которая создает защищенное и зашифрованное соединение (туннель) между устройством пользователя и VPN-сервером. В процессе работы VPN данные пользователя шифруются перед отправкой через интернет, что обеспечивает конфиденциальность и защиту от перехвата, а также позволяет менять виртуальный IP-адрес, обеспечивая анонимность и обход региональных ограничений.

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

Основные компоненты VPN:

  • Клиент — программа на устройстве пользователя, инициирующая соединение и шифрующая трафик.

  • VPN-сервер — промежуточный сервер, обеспечивающий безопасный канал и маршрутизацию данных.

  • Туннель — зашифрованное соединение между клиентом и сервером для безопасной передачи данных.

Принцип работы: пользователь подключается к VPN, формируется зашифрованный канал, все запросы идут через сервер-посредник, который меняет IP-адрес пользователя, а сайты видят запросы от имени сервера. Это позволяет защитить данные от перехвата, сохранить анонимность и обойти блокировки. Недостатком может быть снижение скорости из-за дополнительной обработки и шифрования трафика.


DMZ

Demilitarized Zone (dmz) — это часть сети с публичной IP-адресацией, отделенная межсетевым экраном от Интернета и локальной сети организации.

Межсетевой экран=файрволл=брандмауэр — это программа или устройство для контроля сетевых подключений. Работает на основе комплекса правил, согласно которому весь входящий и исходящий трафик проверяется и фильтруется. Может работать на уровнях: приложений, транспортном, сетевом, или на всех трёх одновременно в зависимости от типа и назначения (эта деталь нуждается в уточнении).

Межсетевой экран нового поколения — это межсетевой экран для глубокой фильтрации трафика. В отличии от “классического” файрволла умеет:

- Инфицировать приложения (App-ID). NGFW умеет определять приложение, независимо от того, какие порты, протоколы или методы шифрования оно использует (напр. для обхода запретов).

- Предотвращать вторжения (IPS): Это встроенная система, которая активно ищет и блокирует известные атаки и уязвимости в сетевом трафике.

- Контролировать трафик на основе пользователей (User-ID): Позволяет создавать правила не только для IP-адресов, но и для конкретных пользователей, даже если их IP-адрес динамически меняется.

Эта часть инфраструктуры нужна для доступа внешних пользователей. В неё выносятся почтовые серверы, веб-сервисы и приложения, DNS-серверы и прокси, cистемы мониторинга и журналирования событий (хранить журналы событий стоит отдельно, чтобы они были недоступны для изменения из самой DMZ — это защитит доказательства в случае инцидента). Основная задача — создать дополнительный защитный барьер между открытым интернетом и корпоративной сетью. Даже если злоумышленник взломает сервер в этом сегменте, попасть дальше ему будет значительно сложнее.

Традиционно DMZ создается на физических серверах и сетевом оборудовании внутри компании, например, с помощью двух отдельных файрволлов или одного файрволла с двумя разными зонами безопасности. С ростом популярности облачных технологий её чаще организуют в облаке: провайдеры позволяют настраивать собственные защитные зоны с помощью виртуальных сетей и правил доступа.

Показать полностью
[моё] Развитие IT Карьера Статья Информационная безопасность Образование Длиннопост
1
13
NUSTMISIS
NUSTMISIS
Наука | Научпоп

Хакатоны для чайников: что это и как к ним подготовиться⁠⁠

5 дней назад

4 декабря в России отмечается День информатики — день рождения отечественной компьютерной науки. Эта дата выбрана неслучайно: именно 4 декабря 1948 года Государственный комитет Совета Министров СССР зарегистрировал авторское свидетельство №10475 — первый советский патент на автоматическую цифровую электронно-вычислительную машину (ЭВМ), созданную выдающимися учёными Исааком Семёновичем Бруком и Баширом Искандаровичем Рамеевым.

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

Цифровые технологии настолько плотно вошли в обиход, что без них уже невозможно представить повседневную жизнь.

О хакатонах

Из названия следует, что хакатон — это марафон, на котором хакеры объединяются для решения конкретной задачи. Обычно такие мероприятия длятся 48 часов, в течение которых участники разрабатывают прототипы продуктов (MVP) или услуг. Под «хакерами» здесь, конечно, подразумеваются не компьютерные взломщики, а просто креативные, талантливые программисты, желающие применить свои навыки на деле.

Хакатоны проводят крупные компании (Яндекс, Сбер, ВТБ и др.), госструктуры, благотворительные организации и вузы. Ежегодно только в России проходят десятки таких соревнований по самым разным направлениям: «Лидеры цифровой трансформации», Moscow Travel Hack, InnoGlobalHack, «Цифровой Прорыв», Nuclear Hack, Moscow City Hack, DEMHack и многие другие.

Для участников это уникальная возможность получить реальный опыт командной работы, расширить портфолио, обзавестись новыми контактами и при должной подготовке выиграть денежный приз (в крупных хакатонах от 500 000 до 1 000 000 рублей, а иногда и больше). Например, за последние 5 лет члены хакатон-клуба Университета МИСИС ITAM выиграли более 35 млн рублей.

А о том, как подготовиться, мы расскажем ниже.

1. Собственно, зачем?

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

2. Сильная команда — залог успеха

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

Идеальная команда — это микс из разных специалистов. Комбинации могут разниться, однако часто нужны бэкенд- и фронтенд-разработчики, программисты, дизайнеры. Важно, чтобы каждый хорошо разбирался в своей области, а команда в целом покрывала основные направления разработки.

На хакатонах структура команд может варьироваться. В некоторых случаях количество участников вовсе ограничено. Есть и те, кто выступает один, но это тяжело и, скажем прямо, не слишком продуктивно.

Типичная сборная кейс-чемпионата

Типичная сборная кейс-чемпионата

3. Изучите тему и требования хакатона

Звучит очевидно, однако многие отсеиваютися именно на этом этапе.

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

Иногда заказчик может составить задачу широко или, наоборот, слишком размыто. Ваша цель — понять не «что сделать», а «какую проблему решить». Этому поможет не только следовать ТЗ буквально, но и выстроить коммуникации с заказчиком.

Также внимательно изучите критерии оценки. Если 40% баллов дают за «инновационность», не делайте скучный клон существующего сервиса.

4. Подготовьте инструментарий

Хакатон — не время для первого знакомства с новым фреймворком. Попрактикуйтесь в работе с конкретными инструментами, которые планируете использовать. Не стесняйтесь прибегать к шаблонам, библиотекам и API. Всё это значительно ускорит процесс разработки.

Не забывайте про системы контроля версий. GitHub позволяет сохранять версии вашего продукта и откатываться к определенному коммиту, чтобы вносить изменения. Также члены вашей команды смогут работать над конкретными ветками функций. Затем вы можете взять эти ветки и объединить их в основной продукт после теста, чтобы убедиться, что всё работает как надо.

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

5. Есть ли у вас план, мистер Фикс?

Разработайте четкий план действий, который поможет эффективно реализовать проект за ограниченное время.

Хоть и нельзя заранее учесть каждую мелочь, план поможет продумать простые продукты и не переусердствовать со вторичным функционалом. Если времени настолько мало, что не до планирования, то просто продумайте ключевые идеи, которые помогут конечному пользователю, и работайте в режиме 20 на 80. Это именно то, что ищут компании и поможет им вас заметить.

6. Не бойтесь менять курс

Если в середине хакатона вы поняли, что выбранная идея слишком сложная или не решает задачу, меняйте её. Умение быстро перестроиться («сделать пивот») и выдать упрощённое, но рабочее решение ценится выше, чем упорство в реализации заведомо провальной стратегии. Не бойтесь «убивать» фичи, которые тянут команду на дно.

7. Подготовьтесь к защите проекта

Грамотно структурированная презентация важна не меньше, чем сам проект. Поэтому подготовку к защите стоит начинать заранее — чем раньше, тем лучше.

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

Для спикера составьте последовательную речь, которая не будет повторять содержание слайдов.

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

8. Нетворкинг и обратная связь

Хакатоны — отличная возможность получить фидбек от бизнес-заказчиков, менторов и инвесторов: заранее подготовьте вопросы и консультируйтесь. Общайтесь с другими командами: они могут предложить полезные решения или даже стать вашими будущими коллегами. Также не стесняйтесь обращаться к открытым ресурсам — Stack Overflow, GitHub, документации. Особенно ценны комментарии жюри.

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

Показать полностью 4
[моё] МИСиС IT Программирование Образование Бизнес Стартап Длиннопост
0
kodprog
kodprog

Как я постепенно пересел на Linux и почему до сих пор от него не ушёл⁠⁠

6 дней назад

Привет! Решил рассказать свою историю знакомства с Linux. Это не инструкция, не обзор и не техническая статья - просто мой путь, который начался со школьного компьютера и закончился тем, что я сегодня пишу этот пост из Debian 13.

🏫 Первое появление Linux в моей жизни

В школе у нас на информатике стояли компьютеры с двумя системами: Windows и Ubuntu.

Ubuntu там была чисто «на всякий случай». Понятно, что этот случай ни разу не наступил - все уроки были на Windows, и никто даже не пытался загрузить Linux. Так что моё знакомство на этом этапе ограничилось только тем, что я знал: «О, есть ещё какая-то Ubuntu».

🎓 Колледж: вот теперь настоящее знакомство

На предмете «Операционные системы» нам наконец-то показали Ubuntu «вживую» - загрузили её на виртуалке.

Мы:

  • сравнивали скорость архивирования файлов в Windows и Ubuntu;

  • пользовались Midnight Commander (аналог Far);

  • запускали разные команды, которые большинство студентов быстро забыли.

Версия была примерно 14.04. Именно тогда я впервые понял, что Linux - это не просто «чёрный терминал», а вполне рабочая система.

🛠 Первая практическая польза

Позже мне нужно было написать маленькое учебное приложение на Lazarus под Linux. Преподаватель предложил поставить Linux Mint на виртуалку - и я начал искать команды в терминале, чтобы установить IDE.

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

🎒 Университет и первый настоящий опыт

В универе тоже стояла Ubuntu рядом с Windows. Тут она уже использовалась иногда по назначению - и я понял, что неплохо бы её изучить.

У меня был старенький ноутбук, и Ubuntu на нём почему-то просто висла при установке.

В итоге я поставил Debian с XFCE - и он ожил. На нём я:

  • компилировал программы на C++;

  • запускал Python;

  • делал лабораторные.

Это был мой первый Linux, который реально работал каждый день.

🖥 Дистрибутивы, эксперименты и беготня туда-сюда

Дома стояла Ubuntu рядом с Windows. Потом была Fedora (не понял её тогда).
Потом Xubuntu (нестабильно работала).
Потом Ubuntu Server для веба.

Пробовал Arch Linux. Уважаю, но ставить всё вручную, когда ты новичок, - тот ещё челлендж. Система была быстрой, но не для меня.

Далее я создал свой YouTube-канал и снимал видео прямо из Ubuntu 18.04 - например, как ставить LAMP-стек.

🔄 Вечный круговорот систем

Так и жил: Windows → Ubuntu → Debian → обратно → снова Ubuntu → и снова Debian.

Было обновление Ubuntu 22.04, которое мне не понравилось - перешёл на Debian. Потом баги пофиксили - вернулся. Потом снова ушёл в Debian.

Короче, классическая Linux-карусель.

💻 Новый ноутбук - новая глава

Недавно купил ноутбук и снова поставил Ubuntu 22.04. Обновился до 24.04 - и поймал баг: папки с большим количеством файлов открываются невероятно медленно.

Поставил Fedora 42. Всё ок, но некоторых программ не хватало.

Перешёл на Debian 13 (новая версия, свежий GNOME 48) - и вот сейчас пишу этот пост именно из него.

⚠️ Какие сложности встречаются у новичка

Перечислю коротко:

🔸 Программы

Много привычного Windows-софта нет под Linux. Надо искать аналоги или запускать через Wine (работает не всё).

🔸 Обучение

Часто приходится гуглить, читать статьи, смотреть форумы. Но лично мне это даже нравилось - вдохновляет разбираться.

🔸 Драйверы

Не всегда из коробки работает Wi-Fi или Bluetooth. Иногда нужно самим ставить драйверы.

🔸 Видеокарты

Свободный драйвер работает, но не идеально. Владельцам Nvidia проще на Ubuntu/Mint/Zorin - там ставится в пару кликов. В других системах - через терминал или репозитории.

🔸 Игры

Часть игр не работает. Многие запускаются через Proton (Steam), PortProton, но Windows всё равно стабильнее.

✔ Итог

Linux стал моей основной системой.
Нравится, что он быстрый, гибкий и даёт больше понимания, что происходит «под капотом».

Если вы ни разу не пробовали Linux - лучше начать с виртуальной машины.
И понять, нравится вам такой подход или нет.

Показать полностью
[моё] Linux Личный опыт Истории из жизни Компьютер Первый опыт IT Текст
48
8
Аноним
Аноним

Зарплата 25к⁠⁠

6 дней назад

Из шумного города в село: как я решила заняться ИТ-образованием для детей (и не только)

Недавно я переехала из шумного города в тихое село и устроилась директором отдела образования по цифровизации — зарплата всего 25 тысяч. Первоочередная задача — развивать ИТ-среду в поселке, которого вовсе не было.

Первым делом я решила поднять уровень информатики у местных детей. Арендовала класс в школе и запустила курсы по программированию на Python. У детей пока нет уроков информатики в школе, а мы уже пишем свои первые программы! Для них это что-то новое и очень вдохновляющее.

Но я не останавливаюсь. Очень хочется открыть полноценный кружок робототехники. В рамках федеральной программы у школ есть всё необходимое: 3D-принтер, лазерный станок, шесть дорогих наборов Lego Mindstorms. Но когда я попыталась договориться об арендовании помещения, мне отказали. Думаю, причины всем понятны — нет желания делиться ресурсами или, может, опасения.

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

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

Пока все идет тяжело, но я верю, что наши усилия обязательно принесут свои плоды!

Пока что я закупила Lego Vedo 2.0 — китайский аналог, чтобы протестировать его и понять, как работает. Надеюсь, всё получится, и это станет хорошим шагом к развитию робототехники в нашем поселке!

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

Я открываю для них мир ИИ, рассказываю про фишки для помощи в учебе.

Все это хотелось бы делать своими силами, не связывать с образованием, у них итак большая нагрузка.

Буду вести здесь дневник с успехами и провалами. Фото прикрепить не могу, так как несовершеннолетние дети.

Публикую анонимно, так как нужны хорошие отношения в селе.

Показать полностью
[моё] Образование Школа Робототехника IT Текст
11
0
O9nix
O9nix

Прототип игры IronWill⁠⁠

6 дней назад
Перейти к видео

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

[моё] Разработка Программирование Карточная игра Программист IT Программа Web Видео
2
83atlant83

Сколько плюсов наберёт стул?⁠⁠

6 дней назад
Сколько плюсов наберёт стул?

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

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