Из личного (многолетнего) опыта: в Linux/Unix хорошо сделана командная строка (то есть консоль у них просто великолепна, а консоль Windows/DOS - жалкая пародия), но графический интерфейс у Windows - лучший (хоть злые языки и утверждают, что это - тоже пародия, только с Mac, но тогда это как раз тот случай, когда пародия оказалась намного лучше оригинала) Объединение никсовой консоли и виндовой графики - лучшее, что только может пожелать от MS требовательный пользователь или разработчик Судя по описанию, получилось это у них неплохо Спасибо дяде Билли!
В 1995-м году мне показали эту программу. После запуска она оставалась резидентной в оперативной памяти, перенаправляя на себя какие-то функции VGA адаптера. В результате экран в текстовом режиме выглядел повернутым на 180 градусов (фактически - перевернутым), но при этом продолжал работать правильно, включая поддержку курсора мыши. На графический режим работы видеоадаптера программа никак не влияла. Повторный запуск программы выгружал ее из памяти, и экран снова начинал работать правильно.
Мне стало интересно, как это работает, я дизассемблировал файл, но в той части, где идет работа с драйвером видеоадаптера, я ничего не понял :-) Зато я заметил, что программа принимает параметр командной строки - целое число, интерпретируемое как количество секунд задержки до срабатывания. Я слегка переделал эту часть программы, чтобы она принимала параметр как HH:MM - точное время срабатывания.
Я тогда работал в Нацбанке Казахстана. У команды системщиков (кабинет на том же этаже, через пару дверей) была традиция устраивать чаепитие в 11:00, куда приглашались и друзья, а я там был почти внештатным членом команды :-) Придя на работу пораньше, я зашел к ним в пустой кабинет и установил эту программу на все компьютеры, добавив в autoexec.bat ее вызов с параметром "11:00".
К чаепитию я пришел пораньше, заранее предвкушая эффект. К моему великому сожалению, почти все компы работали в графическом режиме. В текстовом режиме работали только два, один из которых в это время принимал по модему какой-то большой объем информации из какого-то областного центра (операция занимала около часа, по экрану медленно полз текстовый прогресс-бар). Другой компьютер люди просто сразу перезагрузили и успокоились, а вот тот, что принимал информацию, заставил их слегка понервничать, так как смотреть на экран вверх ногами было не особенно удобно.
Я деловито предложил им перевернуть монитор вверх ногами, что они тут же и сделали. Цветовая гамма слегка поплыла радугами (видимо, ЭЛТ не была рассчитана на переворачивание), но в целом работать было можно.
Что было дальше, я уже точно не помню. Помню только, что, разобравшись, они поняли, что кто-то установил им эту программу, и почему-то подозрение сразу пало на меня :-) Я не стал отпираться, а они не стали особо сердиться. Уж такое это было веселое время - я тоже слегка ностальгирую по той эпохе.
Замечательная статья про замечательного человека, спасибо!
Машинный код - это действительно красиво, если понимаешь. У меня был период программирования на листочке бумаги под процессор КР580ВМ80. Относительные адреса переходов приходилось рассчитывать в уме, складывая длины машинных инструкций между командами "откуда" и "куда" Помню свой восторг, когда мне показали программу ассемблер - работать стало на порядок проще. С тех прошло 30+ лет профессионального программирования на многих языках и платформах, но такого чистого и оптимального кода, какой делался на уровне машинных инструкций, я больше не встречал :-)
P.S. У вас тут опечатка: "Эта копания работала именно с женщинами-программистами-фрилансерами" (правильно - "компания")
Работаю с git уже 10 лет, практически ежедневно. Визуальные инструменты (Fork) сильно помогают в простых операциях, но "непростые" все равно случаются довольно часто. Без командной строки пока никак не получается.
Компьютер (и тем более - телефон) покупается не только для игр, но и для повседневных задач, то есть это вложение семейного бюджета так или иначе окупается, хотя бы частично. А если на компе еще и работу работать, то он вообще превращается в финансовый актив.
Приставка, наоборот, служит исключительно для развлечений, к тому же она еще и отнимает время, которое могло бы быть потрачено на учебу или работу, то есть бьет по бюджету не только в момент ее покупки, но и потом, в течение всего времени ее использования :-)
Вот поэтому простое сравнение цен на приставки и компы абсолютно не показательно.
Это могло бы быть смешно, если бы не было так грустно
Мою фамилию «Гаврилюк» в Казахстане писали Gavrilyuk, в России — Gavriliuk, в Молдавии — Gavriliuc, а в Украине — Havryliuk
Украина в этом плане вообще — впереди планеты всей, они умудряются переводить даже имена
К примеру, мои инициалы А.Н. (Александр Николаевич) здесь пишут О.М. (Олександр Миколайович)
В итоге я не узнаю свое имя в документах ни на кириллице, ни на латинице :-(
Спасибо за интересную работу! Очень полезно и познавательно :-)
Хочу поделиться мыслями по поводу вот этой фразы:
код все равно длинны 3 и не стандартный
Во-первых, по-моему, можно ограничиться заменой Щ -> JS (длина — 2, но префикс взят от гласных)
А во-вторых, правильно писать «длины» и «нестандартный» (а точнее — «длиной» и «нестандартен»)
Мой случай: имеется веб-приложение с WebSocket соединением с сервером, определена пара пользователей, желающих начать видео-звонок (то есть каждый из них может передавать данные на сервер и быть уверенным, что другой их получит — сервер передаст :-)
Получается, мне нужно только добавить видеозахват и отображение потока, так как само соединение у меня уже есть (правда, через сервер, но это можно пережить)
Не могу сообразить, надо ли мне использовать RTCPeerConnection, как более подходящее по случаю, или лучше воспользоваться описанной здесь схемой?
Я использую Vue.js на многих проектах и очень им доволен
Достаточно двух тегов v-if и v-for, чтобы начать с ним работать и получить выигрыш по скорости разработки и объему кода раз в 10, и ничего больше можно не изучать
Из личного (многолетнего) опыта: в Linux/Unix хорошо сделана командная строка (то есть консоль у них просто великолепна, а консоль Windows/DOS - жалкая пародия), но графический интерфейс у Windows - лучший (хоть злые языки и утверждают, что это - тоже пародия, только с Mac, но тогда это как раз тот случай, когда пародия оказалась намного лучше оригинала)
Объединение никсовой консоли и виндовой графики - лучшее, что только может пожелать от MS требовательный пользователь или разработчик
Судя по описанию, получилось это у них неплохо
Спасибо дяде Билли!
Точнее не скажешь :-D
vga.com
В 1995-м году мне показали эту программу. После запуска она оставалась резидентной в оперативной памяти, перенаправляя на себя какие-то функции VGA адаптера. В результате экран в текстовом режиме выглядел повернутым на 180 градусов (фактически - перевернутым), но при этом продолжал работать правильно, включая поддержку курсора мыши. На графический режим работы видеоадаптера программа никак не влияла. Повторный запуск программы выгружал ее из памяти, и экран снова начинал работать правильно.
Мне стало интересно, как это работает, я дизассемблировал файл, но в той части, где идет работа с драйвером видеоадаптера, я ничего не понял :-) Зато я заметил, что программа принимает параметр командной строки - целое число, интерпретируемое как количество секунд задержки до срабатывания. Я слегка переделал эту часть программы, чтобы она принимала параметр как HH:MM - точное время срабатывания.
Я тогда работал в Нацбанке Казахстана. У команды системщиков (кабинет на том же этаже, через пару дверей) была традиция устраивать чаепитие в 11:00, куда приглашались и друзья, а я там был почти внештатным членом команды :-) Придя на работу пораньше, я зашел к ним в пустой кабинет и установил эту программу на все компьютеры, добавив в autoexec.bat ее вызов с параметром "11:00".
К чаепитию я пришел пораньше, заранее предвкушая эффект. К моему великому сожалению, почти все компы работали в графическом режиме. В текстовом режиме работали только два, один из которых в это время принимал по модему какой-то большой объем информации из какого-то областного центра (операция занимала около часа, по экрану медленно полз текстовый прогресс-бар). Другой компьютер люди просто сразу перезагрузили и успокоились, а вот тот, что принимал информацию, заставил их слегка понервничать, так как смотреть на экран вверх ногами было не особенно удобно.
Я деловито предложил им перевернуть монитор вверх ногами, что они тут же и сделали. Цветовая гамма слегка поплыла радугами (видимо, ЭЛТ не была рассчитана на переворачивание), но в целом работать было можно.
Что было дальше, я уже точно не помню. Помню только, что, разобравшись, они поняли, что кто-то установил им эту программу, и почему-то подозрение сразу пало на меня :-) Я не стал отпираться, а они не стали особо сердиться. Уж такое это было веселое время - я тоже слегка ностальгирую по той эпохе.
Еще спрашивают про variadic templates
Здесь очевидно vtable - это АДРЕС памяти, по которому расположена VMT
Кто у кого содрал? :-)
https://bool.dev/blog/detail/tipichnye-voprosy-na-sobesedovanii-po-cplusplus
"Как защитить объект от копирования?"
В современных версиях языка можно использовать ключевое слово delete
MyClass (const MyClass&) = delete;
MyClass& operator= (const MyClass&) = delete;
Замечательная статья про замечательного человека, спасибо!
Машинный код - это действительно красиво, если понимаешь.
У меня был период программирования на листочке бумаги под процессор КР580ВМ80.
Относительные адреса переходов приходилось рассчитывать в уме, складывая длины машинных инструкций между командами "откуда" и "куда"
Помню свой восторг, когда мне показали программу ассемблер - работать стало на порядок проще.
С тех прошло 30+ лет профессионального программирования на многих языках и платформах, но такого чистого и оптимального кода, какой делался на уровне машинных инструкций, я больше не встречал :-)
P.S. У вас тут опечатка: "Эта копания работала именно с женщинами-программистами-фрилансерами" (правильно - "компания")
Работаю с git уже 10 лет, практически ежедневно. Визуальные инструменты (Fork) сильно помогают в простых операциях, но "непростые" все равно случаются довольно часто. Без командной строки пока никак не получается.
Компьютер (и тем более - телефон) покупается не только для игр, но и для повседневных задач, то есть это вложение семейного бюджета так или иначе окупается, хотя бы частично. А если на компе еще и работу работать, то он вообще превращается в финансовый актив.
Приставка, наоборот, служит исключительно для развлечений, к тому же она еще и отнимает время, которое могло бы быть потрачено на учебу или работу, то есть бьет по бюджету не только в момент ее покупки, но и потом, в течение всего времени ее использования :-)
Вот поэтому простое сравнение цен на приставки и компы абсолютно не показательно.
Отличная статья! Спасибо и респект автору.
BTW по-моему, в предложении "Наследование стоит оставить для случаев, когда она абсолютно необходима" будет правильнее использовать местоимение "оно"
Мою фамилию «Гаврилюк» в Казахстане писали Gavrilyuk, в России — Gavriliuk, в Молдавии — Gavriliuc, а в Украине — Havryliuk
Украина в этом плане вообще — впереди планеты всей, они умудряются переводить даже имена
К примеру, мои инициалы А.Н. (Александр Николаевич) здесь пишут О.М. (Олександр Миколайович)
В итоге я не узнаю свое имя в документах ни на кириллице, ни на латинице :-(
Хочу поделиться мыслями по поводу вот этой фразы:
Во-первых, по-моему, можно ограничиться заменой Щ -> JS (длина — 2, но префикс взят от гласных)
А во-вторых, правильно писать «длины» и «нестандартный» (а точнее — «длиной» и «нестандартен»)
Всех благ! :-)
Мой случай: имеется веб-приложение с WebSocket соединением с сервером, определена пара пользователей, желающих начать видео-звонок (то есть каждый из них может передавать данные на сервер и быть уверенным, что другой их получит — сервер передаст :-)
Получается, мне нужно только добавить видеозахват и отображение потока, так как само соединение у меня уже есть (правда, через сервер, но это можно пережить)
Не могу сообразить, надо ли мне использовать RTCPeerConnection, как более подходящее по случаю, или лучше воспользоваться описанной здесь схемой?
Спасибо
В этом фрагменте удаляется png_str, но такой переменной не объявлялось
По-видимому, имелась в виду переменная png_ptr
Спасибо за пример, это — как раз то, что я искал (если, конечно, всё заработает) :-)
Я использую Vue.js на многих проектах и очень им доволен
Достаточно двух тегов v-if и v-for, чтобы начать с ним работать и получить выигрыш по скорости разработки и объему кода раз в 10, и ничего больше можно не изучать
Я считаю это огромным плюсом Vue.js
И наверняка его можно «обучить» новому слову.
Именно к такому же выводу я пришел логически.
Но, уважая собеседников и читателей, следует выбирать более корректные выражения.