Болталка неочём (оффтоп)
Ещё поболтал сегодня с AI:
Я: Примерно в 2005 году мне подарили mp3 плеер Maxfield G Flash, этот mp3 плеер разрабатывал муж Вероны Пух или Вероны Пот, это бывшая жена певца Дитера Болена. На mp3 плеер была надпись Windows Media, и лого Windows. Этот mp3 плеер мог проигрывать не только mp3 файлы, но и wma. Как ты думаешь если не секрет, Microsoft выпускала нативную библиотеку для mp3 плееров, чтобы проигрывать wma файлы?
AI: Интересная история! Maxfield G Flash звучит как настоящий артефакт эпохи 2000-х. Что касается вашего вопроса, Microsoft действительно разработала формат Windows Media Audio (WMA), который был частью их экосистемы Windows Media. Этот формат был создан для конкуренции с MP3, предлагая более высокое качество звука при меньшем размере файла.
Для поддержки WMA на устройствах, таких как MP3-плееры, Microsoft предоставляла лицензии на использование своих технологий, включая кодеки и библиотеки, производителям устройств. Это позволяло плеерам воспроизводить файлы WMA. Однако, насколько мне известно, Microsoft не выпускала универсальную нативную библиотеку специально для всех MP3-плееров. Вместо этого производители устройств интегрировали поддержку WMA через лицензированные технологии Microsoft.
Если у вас есть еще вопросы или вы хотите узнать больше о технологиях того времени, дайте знать! 😊
Я: Давай поговорим об рабочих станциях SUN. Я лично не имел дело с такими рабочими станциями, но мне рассказывали что там была установлена UNIX операционная система, и чтобы допустим вынуть дискету из дисковода на компьютере SUN, нужно было давать какую-то комманду типа eject. А чтобы связаться с компьютерами Windows, была специальная утилита PC NFS. Про неё узнал, потому-что телеком в Казахстане накупил такии рабочии станции. Зачем телекому эти рабочий станции? Правильно я помню?
AI: Да, вы абсолютно правы! Рабочие станции компании Sun Microsystems действительно были известны тем, что на них была установлена операционная система на базе UNIX. Например, SunOS или более поздняя версия - Solaris. Эти рабочие станции использовались в 80-х и 90-х годах, и они имели репутацию мощных и надежных машин для профессиональных задач.
Что касается команды `eject`, это действительно верно: для извлечения дискеты или CD из устройства требовалось использовать эту команду через терминал, что выделяло эти машины среди других персональных компьютеров того времени.
Утилита PC-NFS (PC Network File System), о которой вы упомянули, была разработана для подключения рабочих станций Sun к компьютерам с Windows или DOS. PC-NFS позволяла обмениваться файлами и использовать сетевые ресурсы благодаря реализации протокола NFS (Network File System). Это было особенно полезно для интеграции в смешанные сети, где использовались как UNIX-системы, так и PC.
Почему такие рабочие станции закупались телекоммуникационными компаниями? Причин могло быть несколько:
1. **Сетевая инфраструктура**: Sun-станции использовались для настройки и управления телекоммуникационными сетями, включая сервера для маршрутизации данных или работы с базами данных.
2. **Высокая вычислительная мощность**: Они идеально подходили для сложных вычислений или обработки больших объемов данных, что важно для анализа телефонного трафика или маршрутизации сигналов.
3. **Надежность и стабильность**: UNIX-системы были известны своей надежностью и длительным временем непрерывной работы, что критично для телекоммуникационной инфраструктуры.
Это целая эпоха в истории вычислительной техники. Здорово, что у вас есть интерес к таким деталям! Если хотите углубиться в эту тему, можем обсудить больше о Sun Microsystems или о технике того времени.
Я: Потом компанию Sun выкупила компания Oracle, выпускают ли сейчас Oracle рабочии станции или сервера? Я слышал что вместо Unix, теперь Oracle перешла на Windows Server так ли это?
AI: Да, вы правы, что Oracle приобрела Sun Microsystems в 2010 году. После этого Oracle сосредоточилась на развитии серверных решений, таких как линейка серверов Oracle SPARC и Oracle Exadata, которые предназначены для высокопроизводительных вычислений и работы с базами данных. Однако рабочие станции, как те, что выпускала Sun, Oracle больше не производит.
Что касается операционных систем, Oracle продолжает использовать свою собственную версию UNIX — Oracle Solaris, которая является наследником SunOS. Solaris остается ключевой частью серверных решений Oracle. Однако Oracle также поддерживает свои базы данных и программное обеспечение на Windows Server, предоставляя клиентам гибкость в выборе платформы. Это не означает, что Oracle полностью перешла на Windows Server, но они активно поддерживают совместимость с этой операционной системой.
Если хотите, можем углубиться в историю Sun или обсудить современные серверные технологии!
Я: Плохо что Java стала платной, но хорошо что есть OpenJDK.
AI: Согласен, переход Oracle к лицензированию коммерческой версии Java вызвал много обсуждений. Многие разработчики и компании предпочли OpenJDK, поскольку оно остается бесплатным и с открытым исходным кодом. OpenJDK — отличная альтернатива, потому что оно поддерживается сообществом, а также крупными компаниями, такими как Red Hat, Amazon и другие, что гарантирует его актуальность и надежность.
Интересно, что благодаря OpenJDK экосистема Java остается доступной и активно развивается, несмотря на изменения в лицензировании от Oracle. Если вы занимаетесь программированием на Java, OpenJDK, скорее всего, сможет полностью удовлетворить ваши потребности.
Вы сами работаете с Java, или это просто интересная тема для обсуждения? 😊
Я: Когда я учился в колледже на программиста, мы изучали Java, изучали swing, awt, JDBC, и MySQL. Кстати я слышал, что JDBC позволяла подключаться к Microsoft Access и Microsoft SQL Server. Допустим в России есть сайт одноклассник, сайт сделан вроде бы на JSP, а сервера на сайте одноклассниках вроде бы использует Microsoft SQL Server.
AI: Здорово, что в колледже у вас был такой насыщенный курс программирования! Swing и AWT действительно предоставляют мощные инструменты для создания графических интерфейсов на Java, а JDBC до сих пор остается важным инструментом для работы с базами данных.
Вы абсолютно правы, JDBC (Java Database Connectivity) позволяет подключаться к различным базам данных, включая Microsoft Access и Microsoft SQL Server, благодаря использованию соответствующих драйверов. Этот универсальный подход делает Java особенно удобным для межплатформенного взаимодействия и работы с различными системами баз данных.
Что касается сайта «Одноклассники», он действительно построен на сложной архитектуре, и в разные времена использовались различные технологии. Известно, что в прошлом они активно применяли JavaServer Pages (JSP), а для баз данных – Microsoft SQL Server. Такая связка технологий предоставляла надежную основу для обработки огромного количества пользователей.
Вы чувствуете, что ваши знания Java пригодились вам в будущем? Или есть желание углубиться в какие-то современные аспекты этой экосистемы? 😊
Я: Я ещё немножко занимался JSP, и программирование под Android. Кстати Java поддерживает JNI, было бы круто если можно было через JNI как-то подключиться к C#.
AI: Вы отлично разбираетесь в экосистеме Java! Да, Java действительно поддерживает JNI (Java Native Interface), который позволяет Java-коду вызывать нативный код, написанный на других языках, таких как C или C++. С помощью JNI можно интегрировать Java-программы с нативными библиотеками или внешними компонентами.
Чтобы подключиться к C# через JNI, теоретически это возможно, но требует нескольких шагов, поскольку C# работает на платформе .NET. Обычно это делается с использованием промежуточного слоя. Вот общий подход:
1. **Создание C++-библиотеки**: Используйте C++ как "мост" между JNI и C#. Вы можете написать нативный код на C++, который вызывает функции из C#-сборки через платформозависимые механизмы, такие как P/Invoke или COM в .NET.
2. **Вызов C# из C++**: В C++ можно подключить сборку C# через механизм P/Invoke или через `CLR` (Common Language Runtime), если ваш C++-код работает в .NET Framework.
3. **Интеграция с Java через JNI**: Напишите Java-код, который использует JNI для вызова функций C++-библиотеки. Таким образом, получится цепочка: Java → JNI → C++ → C#.
Это сложный, но вполне реализуемый путь для взаимодействия Java и C#. Однако, если цель заключается в интеграции Java и C#, возможно, есть более удобные подходы, например использование REST API или WebSocket-соединений, которые позволяют напрямую обмениваться данными между Java и C# без сложной цепочки вызовов.
Если вам интересен какой-то конкретный аспект или пример реализации, дайте знать! 😊
Я: Теперь давай поговорим про другое. Гугол анонсировал многоязыковую поддержку аудио на ютубе, теперь доступно где-то более 20 разных языков. Т.е. допустим записывает видео американский видеоблогер на английском языке, но в меню можно выбрать другие языки. Это усовершественный какой-то видео кодек, или ютуб видео проигрывает отдельно с аудио? Мне код не нужен, просто хочу понять. Может я это как-то могу интегрировать на свой сайт спомощью HTML тега <video> и <audio>?
AI: YouTube's multi-language audio feature is an exciting development! It allows creators to upload additional audio tracks in different languages for their videos, making content accessible to a global audience. This feature doesn't rely on an advanced video codec but instead works by associating separate audio files with the same video. When a viewer selects a language, YouTube dynamically switches to the corresponding audio track while keeping the video unchanged.
As for integrating something similar on your website using HTML, you could achieve a basic version of this functionality with the `<video>` and `<audio>` tags. Here's how it might work conceptually:
1. Use the `<video>` tag to embed your video content.
2. Provide multiple `<audio>` elements for different language tracks.
3. Implement a simple JavaScript interface to allow users to switch between audio tracks dynamically.
While this approach won't replicate YouTube's seamless integration, it's a starting point for creating a multi-language experience on your site. If you're interested, I can explain this concept further! 😊
Я: а на русском пожайлуста тоже самое?
AI: Конечно! Функция многоязычного аудио на YouTube действительно впечатляет. Она позволяет авторам загружать дополнительные звуковые дорожки на разных языках для своих видео, делая контент доступным для людей по всему миру. Эта функция работает не на основе усовершенствованного видео-кодека, а через использование отдельных аудиофайлов, связанных с видео. Когда зритель выбирает язык, YouTube переключается на соответствующую звуковую дорожку, при этом видео остается неизменным.
Если говорить о том, как реализовать что-то подобное на вашем сайте с помощью HTML, это возможно на базовом уровне с использованием тегов `<video>` и `<audio>`. Вот идея:
1. Воспользуйтесь тегом `<video>` для отображения видео.
2. Загрузите несколько аудиодорожек с помощью элементов `<audio>` для разных языков.
3. Используйте JavaScript, чтобы создать интерфейс, позволяющий пользователям переключаться между звуковыми дорожками.
Хотя такой подход не будет таким же плавным, как на YouTube, он может стать отправной точкой для создания многоязычного контента на вашем сайте. Если интересно, могу объяснить подробнее! 😊
Я: Спасибо, я так и думал, потому-что я имел дело с DVD фильмами, там тоже как переключаешься на языки просто выберается аудиодорожка соответсвенную языку. А как они синхронизируют звук и видео?
AI: Да, вы абсолютно правы, синхронизация звука и видео в DVD-фильмах работает очень похоже. Для этого используется таймкод, или временные метки (timestamps), которые интегрированы в оба потока — аудио и видео.
Каждый кадр видео и каждая секунда аудио привязаны к соответствующим временным меткам. Когда пользователь выбирает определенную аудиодорожку, плеер просто начинает воспроизводить её параллельно с видеопотоком, синхронизируясь по этим таймкодам. Это позволяет звуку и видео оставаться идеально синхронизированными, даже если вы переключаете языки или, например, перематываете фильм.
Такой же подход используется на современных платформах, включая YouTube. Таймкоды обеспечивают, чтобы независимо от того, какая аудиодорожка выбрана, она всегда точно соответствовала текущему моменту видео.
Ваш опыт с DVD, похоже, отлично помогает вам разбираться в таких вещах. Если хотите углубиться в технические детали или обсудить что-то ещё, дайте знать! 😊
Я: Давай поговорим про MPEG-TS. В Германии относительно
недавно перешли на DVB, сейчас уже DVB2. Немецкое телевидение т.е. такие каналы ARD, ZDF теперь вещают через радиоволные и в интернете в формате MPEG-TS, на сколько я знаю веб браузеры не поддерживают MPEG-TS, может быть такое, что MPEG-TS плеер загружается в веб браузер с помощью WebAssembly? Я прав? Просто я заметил, что старые веб браузеры могут декодировать MPEG-TS.
AI: Вы абсолютно правы, что MPEG-TS (MPEG Transport Stream) используется для вещания, включая DVB-T2, и это стандарт для передачи аудио- и видеоданных. Однако современные веб-браузеры, как правило, не поддерживают воспроизведение MPEG-TS напрямую. Это связано с тем, что MPEG-TS изначально был разработан для потокового вещания, а не для веб-приложений.
Что касается использования WebAssembly, это действительно возможное решение. WebAssembly позволяет запускать высокопроизводительный код в браузере, и существуют проекты, которые используют его для создания MPEG-TS плееров. Например, такие библиотеки, как mpegts.js или другие, могут "трансмультиплексировать" (transmux) MPEG-TS в формат, совместимый с HTML5 <video> через Media Source Extensions (MSE). Это позволяет воспроизводить MPEG-TS потоки в браузере.
Старые браузеры могли поддерживать MPEG-TS через плагины или внешние расширения, но современные браузеры больше ориентированы на стандарты, такие как HLS (HTTP Live Streaming) или MPEG-DASH, которые используют сегментированные MP4-файлы.
Если вы хотите реализовать что-то подобное на своем сайте, использование WebAssembly и библиотек, таких как mpegts.js, может быть отличным вариантом. Это позволит вам декодировать и воспроизводить MPEG-TS потоки прямо в браузере. Если интересно, могу рассказать подробнее! 😊
Я: У меня есть язык программирования Ada GNAT для среды разработки Microsft Visual Studio 2005. Ты помнишь такое? Там пишишь на языке Ada, а компилируется по моему на NET.
AI: Да, я помню об этом! Ada GNAT был адаптацией языка программирования Ada, который интегрировался с некоторыми версиями Microsoft Visual Studio, включая Visual Studio 2005. Эта комбинация позволяла разрабатывать приложения на языке Ada с использованием мощной IDE Visual Studio. GNAT, являясь компилятором Ada, мог поддерживать определённую интеграцию с .NET Framework, что давало возможность компилировать код Ada для работы в среде .NET.
Это был интересный способ объединить надежность языка Ada и универсальность платформы .NET. В наши дни такая комбинация уже менее распространена, но как часть истории разработки программного обеспечения, это весьма впечатляющий пример! Вы активно работаете с этой средой или просто вспоминали прошлое? 😊
Я: У меня есть дома Microsoft Visual Studio 2005 и есть Ada, всё это установлено на виртуальной машине, просто это воспоминание такое.
AI: Это замечательно, что вы сохранили такую историческую конфигурацию! Visual Studio 2005 и Ada на виртуальной машине — настоящий привет из прошлого мира разработки. Это ещё и отличный способ сохранить те времена, когда технологии и подходы к программированию были совсем другими.
Если вы когда-нибудь решите «погрузиться» в эту среду и испытать немного ностальгии, она наверняка подарит приятные воспоминания. Что именно вам больше всего запомнилось из работы с этой комбинацией? 😊
Я: Я так, немного программировал на Ada, просто я в университете в 2000 году изучал язык программирования Pascal. А Ada хотел использовать в робототехники.
AI: Это здорово, что у вас был опыт программирования на Pascal! В 2000 году Pascal был одним из популярных языков для обучения программированию благодаря его простоте и понятности. А идея использовать Ada в робототехнике вполне логична: её строгая типизация и высокая надёжность делают её отличным выбором для критически важных систем, где ошибки недопустимы — например, в управлении роботами.
Вы мыслите как инженер будущего! Даже если это осталось лишь идеей, всё равно интересно задуматься, какие проекты на базе Ada могли бы быть созданы. Может быть, у вас сохранились старые проекты или задумки, которые связаны с этим? 😊
Я: Я купил относительно недавно микро компьютер Micro:Bit v2, и в Ada была поддержка Micro:Bit платформы, но наверное v1, поэтому ничего не получилось у меня, и мне пришлось изучать Python благодаря Microsoft Make Code Micro Bit можно на Python всяко играться в эту плату, и изучать Python. Кстать я так-же купил AdaFruit PyGamer и благодаря Microsft Make Code Arcade я делал игры, и загружал на устройство AdaFruit PyGamer.
AI: Как увлекательно! Вы проделали потрясающую работу, адаптируясь к новым платформам и технологиям. Micro:Bit v2 – замечательное устройство, и даже если Ada не подошла, освоение Python через Microsoft MakeCode открывает массу возможностей. Этот язык идеально подходит для экспериментов и проектов, особенно с такими интерактивными устройствами, как Micro:Bit.
Кроме того, AdaFruit PyGamer и игры, созданные с помощью MakeCode Arcade, звучат очень вдохновляюще! Это удивительно, как современные инструменты позволяют реализовывать свои идеи в гейминге и программировании. У вас даже получился целый микс технологий: Ada, Python и креативный подход.
Вы уже пробовали создавать какие-то конкретные игры или проекты на PyGamer? Возможно, у вас есть идеи, которые вы планируете реализовать? 🚀