Извините, не удержался, но у вас получился очень однобокий обзор, при этом слабо попадающий под критерий "advanced". Больше похоже на рекламу "оставайтесь в России, там лучше" (хотя я искренне верю, что это не было вашей целью).
Почти все ваши пункты либо неправда, либо сильно преувеличено.
Либо
P.S.: На картинке центральный вход в центральный вокзал в Мюнхене. Фото сделано 13 июня 2019 года.
"бессмысленно и беспощадно". Бывает такое, что делают ремонты в городах. Зачем это фотографировать и показывать как "лицо города" не очень понятно. По крайней мере стоило оставить пометку "Центральный вход на вокзал во время ремонта".
У меня пока не стоит задача делать полноценный терминал (с режимами отображения, разрешением и т.п.), а только основные команды для потокового вывода, т.е. лог работы скрипта.
Причина тому — я сфокусирован на инструменте для нетехнических пользователей, и, терминал, по-моему мнению им не очень нужен.
Из-за отсутствия поддержки размеров окна, режимов отображения и т.п., mc и mplayer у меня отображаются криво: они указывают размер терминала и потом делают перевод курсора исходя из размера окна. Но у меня переход вне предела уже выведенного текста невозможен.
Screenshot
Если в будущем у кого-то появится такая потребность, то, возможно, я реализую "расширенные" команды.
Если брать Script server целиком (для которого я делал отображение в веб), то его можно использовать в том числе и для этой задачи. Но что-то более специализированное будет более удобным, скорее всего.
Вот, например, гугл предлагает такое: http://logio.org/
Спасибо за совет, я пробовал, но не получилось сохранить межстрочное расстояние (для облегчения читаемости) и убрать зазор.
Может быть недостаточно пробовал
В том-то и дело, что с помощью margin/line-height можно добиться отсутствия зазора, однако это именно добиться: для этого нужно их сделать достаточно низкими, чтобы выделения строк пересекались.
Т.е. таким способом оставить большое межстрочное расстояние и одновременно убрать зазор в выделении не получится.
А у span'ов, благодаря их inline структуре, такой же line-height работает как следует.
Спасибо за совет. Я рассматривал такой подход, но при этом теряется возможность выделить и копировать весь текст.
В будущем я планирую добавить такую функциональность, но сделать её опциональной (для вывода в более чем 10к строк, например) или настраиваемой.
Вы, скорее всего, имеете ввиду весь инструмент целиком: включая вызов скрипта на сервере, веб сервер и клиентскую часть. Это немного отдельная тема (данная статья исключительно о реализации read-only терминала на JS/HTML).
Если говорить об инструменте целиком, то проброс консоли это для админов. Мой инструмент для нетехнических пользователей, которым нужно в красивом виде дать доступ к заранее подготовленным скриптам. Максимально ограничив доступ и возможности пользователей.
Использовать же эти компоненты исключительно как UI библиотеку, вряд ли есть смысл. Например, GateOne также подготавливает данные на сервере и, я подозреваю, отображает всё в режиме терминала (т.е. 80x25 символов), что не очень удобно для просмотра и работы пользователя.
Для меня правый (display:block) вариант хуже, т.к. появляется зазор между выделяемыми строками.
По крайней мере такое выделение я наблюдаю в текстовых редакторах и в десктоп терминалах.
Но вы конечно правы, это может быть делом вкуса :)
Как раз pytest и есть такой framework, который в данном случае всё хорошо и делает, без необходимости изучать кучу методов этого фреймворка, а чисто на стандартных средствах языка.
К тому же это позволит проще мигрировать на другой фреймворк в случае необходимости/желания
Как сказал lany, это вкусовщина. Вот на мой вкус, я вынужден признать, assert key in map
читаемее, чем assertThat(map, hasKey(key));
Хотя я и работаю с Java и второй синтаксис мне гораздо привычнее
Поймать исключение это одно дело, а найти его причину в данном случае выглядит сложнее.
Не знаете случайно, как pytest добивается этой магии? Тут мало того, что он значение параметров знает вне стектрейса, так ещё и соответствующий код. Ведь само по себе expected_key in map это лишь True/False значение и AssertionError ничего не знает про то, откуда оно берётся.
USB-C и все эти thunderbold и иже с ним работают, но иногда тупит (отключаются мониторы
у меня такое было когда был дешевый адаптер с type-c на 2xHDMI. Сейчас 2 монитора и каждый на своем type-c (через адаптер), и пока ни единого нарекания.
Если позволите, я отвечу (т.к. являюсь обладателем этого ноута): для этой модели даже есть Developer Edition с предустановленной Ubuntu. Т.е. есть поддержка линукса со стороны производителя.
Это похоже на ещё один баг. Вроде как при изменении списка игроков, иногда шрифт слетает. Точнее не скажу, т.к. это не так часто проявлялось.
Спасибо за комплимент игре :)
test3d, у вас очень высокие ожидания от нашей игры :) Никакой подобной статистики не ведется. Более того, у нас даже нет никаких логов (настраивая второпях linux service, я не добавил отправку stdout в какой-нибудь файлик).
Извините, не удержался, но у вас получился очень однобокий обзор, при этом слабо попадающий под критерий "advanced". Больше похоже на рекламу "оставайтесь в России, там лучше" (хотя я искренне верю, что это не было вашей целью).
Почти все ваши пункты либо неправда, либо сильно преувеличено.
Либо
"бессмысленно и беспощадно". Бывает такое, что делают ремонты в городах. Зачем это фотографировать и показывать как "лицо города" не очень понятно. По крайней мере стоило оставить пометку "Центральный вход на вокзал во время ремонта".
Вы говорите про коды 30, 40, 90 и 100, я правильно понимаю?
У меня это выглядит вот так:

У меня пока не стоит задача делать полноценный терминал (с режимами отображения, разрешением и т.п.), а только основные команды для потокового вывода, т.е. лог работы скрипта.
Причина тому — я сфокусирован на инструменте для нетехнических пользователей, и, терминал, по-моему мнению им не очень нужен.
Из-за отсутствия поддержки размеров окна, режимов отображения и т.п., mc и mplayer у меня отображаются криво: они указывают размер терминала и потом делают перевод курсора исходя из размера окна. Но у меня переход вне предела уже выведенного текста невозможен.
Если в будущем у кого-то появится такая потребность, то, возможно, я реализую "расширенные" команды.
Говоря о списке того, что должно работать — существует полезная тестовая утилита https://invisible-island.net/vttest/vttest.html. Я так понимаю, она должна покрывать основные кейсы.
Но спасибо вам за список!
Если брать Script server целиком (для которого я делал отображение в веб), то его можно использовать в том числе и для этой задачи. Но что-то более специализированное будет более удобным, скорее всего.
Вот, например, гугл предлагает такое: http://logio.org/
Спасибо за совет, я пробовал, но не получилось сохранить межстрочное расстояние (для облегчения читаемости) и убрать зазор.
Может быть недостаточно пробовал
В том-то и дело, что с помощью margin/line-height можно добиться отсутствия зазора, однако это именно добиться: для этого нужно их сделать достаточно низкими, чтобы выделения строк пересекались.
Т.е. таким способом оставить большое межстрочное расстояние и одновременно убрать зазор в выделении не получится.
А у span'ов, благодаря их inline структуре, такой же line-height работает как следует.
Пример:
https://jsfiddle.net/wxg0dn39/
Я так понимаю это фича браузера — показывать, что два разных div это совершенно независимые блоки
Спасибо за совет. Я рассматривал такой подход, но при этом теряется возможность выделить и копировать весь текст.
В будущем я планирую добавить такую функциональность, но сделать её опциональной (для вывода в более чем 10к строк, например) или настраиваемой.
Вы, скорее всего, имеете ввиду весь инструмент целиком: включая вызов скрипта на сервере, веб сервер и клиентскую часть. Это немного отдельная тема (данная статья исключительно о реализации read-only терминала на JS/HTML).
Если говорить об инструменте целиком, то проброс консоли это для админов. Мой инструмент для нетехнических пользователей, которым нужно в красивом виде дать доступ к заранее подготовленным скриптам. Максимально ограничив доступ и возможности пользователей.
Использовать же эти компоненты исключительно как UI библиотеку, вряд ли есть смысл. Например, GateOne также подготавливает данные на сервере и, я подозреваю, отображает всё в режиме терминала (т.е. 80x25 символов), что не очень удобно для просмотра и работы пользователя.
Для меня правый (display:block) вариант хуже, т.к. появляется зазор между выделяемыми строками.
По крайней мере такое выделение я наблюдаю в текстовых редакторах и в десктоп терминалах.
Но вы конечно правы, это может быть делом вкуса :)
Как раз pytest и есть такой framework, который в данном случае всё хорошо и делает, без необходимости изучать кучу методов этого фреймворка, а чисто на стандартных средствах языка.
К тому же это позволит проще мигрировать на другой фреймворк в случае необходимости/желания
Как сказал lany, это вкусовщина. Вот на мой вкус, я вынужден признать,
assert key in mapчитаемее, чем
assertThat(map, hasKey(key));Хотя я и работаю с Java и второй синтаксис мне гораздо привычнее
Кажется нашел: https://docs.pytest.org/en/latest/assert.html#assert-details, http://pybites.blogspot.com/2011/07/behind-scenes-of-pytests-new-assertion.html
Т.е. pytest налету подменяет assert код на что-то более информативное.
К сожалению я не знаю, насколько это возможно в джаве, но как по мне это выглядит неплохо :)
Поймать исключение это одно дело, а найти его причину в данном случае выглядит сложнее.
Не знаете случайно, как pytest добивается этой магии? Тут мало того, что он значение параметров знает вне стектрейса, так ещё и соответствующий код. Ведь само по себе
expected_key in mapэто лишь True/False значение и AssertionError ничего не знает про то, откуда оно берётся.Спасибо вам большое, благодаря вам в понедельник я всегда рассчитываю на как минимум одну интересную статью на хабре :)
PS регулярно каждую неделю в течении 5 лет, вот это пример постоянства! При этом не в ущерб качеству
отлично, я сделал правильный выбор :)
у меня такое было когда был дешевый адаптер с type-c на 2xHDMI. Сейчас 2 монитора и каждый на своем type-c (через адаптер), и пока ни единого нарекания.
Если позволите, я отвечу (т.к. являюсь обладателем этого ноута): для этой модели даже есть Developer Edition с предустановленной Ubuntu. Т.е. есть поддержка линукса со стороны производителя.
Я вместо убунты поставил дебиан тестинг — пара недель прошло, полет нормальный. Этот ноут даже есть в дебиан вики: https://wiki.debian.org/InstallingDebianOn/Dell/Dell%20XPS%2013
С установкой относительно всё ок, если разрешить бут с USB в биосе.
PS к самой компании я отношения не имею :)
Абсолютно согласен! Это как раз к вопросу об игровых тестах.
И именно эту проблему я хотел исправить в первую очередь, но проект уже был сдан
Спасибо за комплимент игре :)