Человеку, вообще не знающему, как кодить это вдвойне простительно.
Кстати, чаще всего такой выпендреж я вижу у мужчин. Особенно если он достигли хоть какого-то уровня в другой области, то автоматически считают себя подкованными во всех других. А как раз женщины в подобных ситуациях руководствуются инструкцией, а не интуицией. Они могут найти какую-то опечатку в мануале, потратить день на эксперименты и потом заявить: «я проверила все варианты и у меня никак не получается протестировать режим не нажимать кнопку и потом отпустить, что я делаю не так?»
У физической кнопки есть два состояния — нажата и отжата. У логического объекта «кнопка» может быть еще пучок дополнительных состояний с добавлением временного фактора — двойной клик, удержание, долгое нажатие, долгое не нажатие и т.д. Кодинг в современных API приучил нас к тому, что логические и физические состояния смешаны между собой — в общей копилке лежат события OnMouseDoubleClick, OnMouseUp, OnLongTap. Ничего в этом странного и страшного нет и можно было коллеге это объяснить, а не рассказывать тут историю в шовинистическом ключе ал-ля «она влезает», «в чем глупость?» и т.д.
Честно, пока напишу, вычитаю и опубликую, уже юбилей пройдет. Но постараюсь.
В «Косынке», кстати, пришлось использовать хак — при старте игры мы видим 7 карт, существенно быстрее загрузить только их, чем все 54+ обложки. В других пасьянсах так не работает.
В целом, уже есть универсальные форматы для OpenGL/DirectX/Vulkan/Metal. Речь о BC1-BC7, они же DirectX 11 Level, теоретически должны в 2020м году поддерживаться везде. К сожалению, BC7 все еще не завезли в половину интегрированных видеокарт, а на мобильных свой собственный зоопарк, который и не собирается как-то меняться.
Другой вопрос, что даже BC7 не дает Lossless.
Смотрите какая ситуация: в видеопамяти блочные форматы (DXT/BC, PVRTC, ASTC, ETC, etc) хранятся в том же запакованном виде, что и на диске. За счет constant-rate сжатия в момент обращения к случайному текселю можно сразу же найти его блок (обычно 4х4). Далее делается его распаковка за ничтожное время и данными можно пользоваться. Если же у нас текстура сжата variable-rate методом (LZW или Huffman), то случайный доступ не возможен и единственный вариант работы — распаковать её целиком в видеопамять перед использованием. Саму распаковку можно сделать на GPU, но она обычно не распараллеливается, да и гораздо проще сделать это на CPU.
Плюс отдельная проблема в том, что сам формат png не хранит mipmaps. Если же их хранить в разных файлах или слепить в один контейнер, то выходит оверкилл, проще просто хранить несжатую текстуру в архиве ZIP/LZMA/RLE*/Binominal.
* Кстати, я использую именно самописный RLE (привет 14й стандарт!) и он дает космические скорости при распаковке, небольшой размер файлов, еще и распараллеливается. Но об этом в будущей статье, вместе с исходниками.
С текстурами есть ещё одна сказочная проблема — нет общеупотребимых lossless форматов. Если дизайнеры хотят, чтобы какая-то конкретная текстура (UI?) была в 24-битном, а не 16-битном цвете, без мыла и артефактов, да ещё и с прозрачностью и mipmaps, то проще всего использовать несжатую текстуру. Для разрешения 4096*4096 это около 85 мегабайт на один файл. Его можно заархивировать, конечно, но перед отправкой на видеокарту надо будет распаковать, а это время CPU. Собственно, если кому-то интересно, могу написать статью с обзором этой проблемы и распространенными методами решения.
Я, конечно, извиняюсь, но ни онлайн версия, ни Microsoft Solitaire Collection не выглядят «теплыми и ламповыми». Пока что к работе Сьюзан Кэр ближе всего вот эта поделка, но это продукт стороннего криворукого разработчика. Сложно сказать, почему в 2020 это до сих пор востребовано, еще и на всех платформах, включая сам Windows.
Еще в одной стране есть. Правда, если не работает приложение или не сделал селфи, то сначала звонит участковый, потом заходит в гости для проверки. Ну а если у него не удалось вас застать и приложение бьет тревогу, то начисляется штраф в 17000 грн.
Пользуюсь на Mac OS каждый день. Иногда по 2-3 окошка. На 3.* в мейн проекте даже не смотрел, поэтому не знаю, что теряю, но как-т и не страдаю от этого.
Вы знаете, заметность шанса попадания еще сильно зависит от стоимости выстрела. Как в финансовом выражении, так и в влиянии на исход битвы.
Например, в X-Com: Ufo Defense очень ценны были магазины с патронами. Настолько, что до их массового производства стрельба с шансом меньше 50% была критично невыгодной. Когда начиналось производство и продажа излишков боезапаса, это отходило на второй план. Затем снова повторялось, когда был нужен Элериум на патроны к плазме, а трофейные заряды заканчивались. Сколько не напрягаюсь, я не припоминаю такого же требования по экономии патронов в остальных играх серии, в т.ч. и в римейке 2012 года — там было не дорого выстрелить «на авось» с небольшим шансом, а на влияние на исход битвы было не таким большим, потому что надо было сделать 5-8 попаданий по врагу, как результат и внимание на промахе не так акцентировалось. Я предположу, что в Chimera Squad движок мог не измениться и, возможно, не стал больше или меньше читерить, просто это стало более заметно из-за повышения ценности каждого хода (в игру еще не играл, но наличие большого количества спецабилок намекает, что бой теперь может закончиться не после 8 выстрелов из серийного оружия, а после 1 точного попадания абилки).
Смотрите, это, конечно, оффтоп, но я попробую рассказать в двух словах, почему статья похожа на отчет: там перечисляются факты и действия, а не мотивы и желания. Вот в видео вы довольно живо и приятно рассказываете о проекте, так же надо было написать и в статье. Ваша задача ведь не сообщить о выполненной работе с показателями на пятилетку, а мотивировать студентов, развивать отрасль. Этому совсем не помогают сухие тезисы из учебника вроде «Понимание алгоритмов физического проектирования микросхем — это ключевая компетенция.»
Конечно, это очень субъективно — не существует формулы хорошей статьи в принципе, просто мне очень резануло глаз, что я будто читаю диссертацию или дипломную работу. А ведь по сути дела идея здравая, хакатоны нужны, схемотехнику надо продвигать, студентов стоит мотивировать. Ну, разве что, если у них есть 4 часа, то за это время надо писать на языке, который знаешь и то, что знаешь, а не выбирать то, что всем не знакомо :) Но из таких ошибок могут неожиданно вырастать хорошие решения.
P.S. Из человеческого фактора: статья начинается посылом «все стартапы в этом направлении загнулись, их подмяли лидеры рынка», далее идет «но мы попробуем на хакатоне сделать свое решение, хоть частичное!», и под конец «хакатон не выиграли, решение с трудом работает» :) Конечно, история не-успеха тоже может быть интересной, но пару баллов это вам точно убрало.
Спор, это когда размахивают учебниками и источниками. Вы же на вопрос про нечитаемый текст, половина которого выглядит как отчет с пленума ЦК КПСС, а половина — прямая речь студентов и ваши собственные высказывания, отвечаете вопросом (!!) «чем транзисторы на один микрон отличаются от транзистора на 7 нанометров?»
Это показывает, что у вас как минимум проблемы с самооценкой, о чем писали выше. Как максимум, вы зря отчет ЦПСС выложили на Хабр. Еще и с плохой вычиткой — вагон ошибок, месяцы с большой буквы и т.д. Ему место в «вестнике Иннополиса», там оценят.
Отдельно отмечу спорный технический уровень команды студентов. Имея 2 недели подготовки, команду из C#, Python и JS программиста выбрать Java, чтобы еще и не сделать на нем работающую программу — это откровенно фейл. При чем, после хакатона они и не пытались ее доделать или починить (собственный Pair это не доделка, а костыль), а после этого еще пол года никто не смотрел их результаты. Значит в целом все делалось только «для галочки», точнее, для отчета. Разве что, сам опыт для ребят будет полезен — учиться надо на ошибках. Ну и на этом все.
У вас не так еще все и плохо, тёзка. Как гражданин Украины я в паспорте именуюсь Алексей и Олексiй на разных страницах. Но в загранпаспорте уже выбора нет, там я превращаюсь в Oleksii. Но такое буквосочетание иностранцами не воспринимается, поэтому меня 99% называют Oleski. Так диалог и проходит:
— Hi, Mr Oleski!
— Just Alex, please.
— O_O
Отдельный прикол был, когда кто-то посмотрел в паспорт на запись большими буквами OLEKS II и спросил: вы мистер Олекс Второй?
Некоторые читал. У него наверняка будет такая реакция. Ну и что?
Речь же о выгорании и медленном снятии пациента с иглы. Конечно же, будет дискомфорт. Конечно же, будет желание пилить хобби проект на родном языке. Но может хоть уровень стресса понемногу начнет спадать.
Если у автора от решения этих задач столь серьезное выгорание, то надо понижать сложность и выбирать языки попроще. К этому я и веду — вы же не будете в 70 лет вяленую баструму жевать.
Там выше вам C# или Java уже предлагали? Как облегченная версия плюсов. Лично мне весьма помогло. Ну а потом Python и JS, а уже к старости скатимся к VB или макросам Excel. :)
Какая видеокарта и как именно сделано «жидкостное охлаждение»?
Что будет, если владелец/ребенок/кот опрокинет чашку чая на стол?
P.S. Фиксированный кронштейн для монитора при таком размере стола означает дистанцию порядка 80-100см до экрана. Это много для большинства ситуаций, а вариантов регулировки я не вижу.
Кстати, чаще всего такой выпендреж я вижу у мужчин. Особенно если он достигли хоть какого-то уровня в другой области, то автоматически считают себя подкованными во всех других. А как раз женщины в подобных ситуациях руководствуются инструкцией, а не интуицией. Они могут найти какую-то опечатку в мануале, потратить день на эксперименты и потом заявить: «я проверила все варианты и у меня никак не получается протестировать режим не нажимать кнопку и потом отпустить, что я делаю не так?»
В «Косынке», кстати, пришлось использовать хак — при старте игры мы видим 7 карт, существенно быстрее загрузить только их, чем все 54+ обложки. В других пасьянсах так не работает.
Другой вопрос, что даже BC7 не дает Lossless.
Плюс отдельная проблема в том, что сам формат png не хранит mipmaps. Если же их хранить в разных файлах или слепить в один контейнер, то выходит оверкилл, проще просто хранить несжатую текстуру в архиве ZIP/LZMA/RLE*/Binominal.
* Кстати, я использую именно самописный RLE (привет 14й стандарт!) и он дает космические скорости при распаковке, небольшой размер файлов, еще и распараллеливается. Но об этом в будущей статье, вместе с исходниками.
С текстурами есть ещё одна сказочная проблема — нет общеупотребимых lossless форматов. Если дизайнеры хотят, чтобы какая-то конкретная текстура (UI?) была в 24-битном, а не 16-битном цвете, без мыла и артефактов, да ещё и с прозрачностью и mipmaps, то проще всего использовать несжатую текстуру. Для разрешения 4096*4096 это около 85 мегабайт на один файл. Его можно заархивировать, конечно, но перед отправкой на видеокарту надо будет распаковать, а это время CPU. Собственно, если кому-то интересно, могу написать статью с обзором этой проблемы и распространенными методами решения.
Например, в X-Com: Ufo Defense очень ценны были магазины с патронами. Настолько, что до их массового производства стрельба с шансом меньше 50% была критично невыгодной. Когда начиналось производство и продажа излишков боезапаса, это отходило на второй план. Затем снова повторялось, когда был нужен Элериум на патроны к плазме, а трофейные заряды заканчивались. Сколько не напрягаюсь, я не припоминаю такого же требования по экономии патронов в остальных играх серии, в т.ч. и в римейке 2012 года — там было не дорого выстрелить «на авось» с небольшим шансом, а на влияние на исход битвы было не таким большим, потому что надо было сделать 5-8 попаданий по врагу, как результат и внимание на промахе не так акцентировалось. Я предположу, что в Chimera Squad движок мог не измениться и, возможно, не стал больше или меньше читерить, просто это стало более заметно из-за повышения ценности каждого хода (в игру еще не играл, но наличие большого количества спецабилок намекает, что бой теперь может закончиться не после 8 выстрелов из серийного оружия, а после 1 точного попадания абилки).
Конечно, это очень субъективно — не существует формулы хорошей статьи в принципе, просто мне очень резануло глаз, что я будто читаю диссертацию или дипломную работу. А ведь по сути дела идея здравая, хакатоны нужны, схемотехнику надо продвигать, студентов стоит мотивировать. Ну, разве что, если у них есть 4 часа, то за это время надо писать на языке, который знаешь и то, что знаешь, а не выбирать то, что всем не знакомо :) Но из таких ошибок могут неожиданно вырастать хорошие решения.
P.S. Из человеческого фактора: статья начинается посылом «все стартапы в этом направлении загнулись, их подмяли лидеры рынка», далее идет «но мы попробуем на хакатоне сделать свое решение, хоть частичное!», и под конец «хакатон не выиграли, решение с трудом работает» :) Конечно, история не-успеха тоже может быть интересной, но пару баллов это вам точно убрало.
Это показывает, что у вас как минимум проблемы с самооценкой, о чем писали выше. Как максимум, вы зря отчет ЦПСС выложили на Хабр. Еще и с плохой вычиткой — вагон ошибок, месяцы с большой буквы и т.д. Ему место в «вестнике Иннополиса», там оценят.
Отдельно отмечу спорный технический уровень команды студентов. Имея 2 недели подготовки, команду из C#, Python и JS программиста выбрать Java, чтобы еще и не сделать на нем работающую программу — это откровенно фейл. При чем, после хакатона они и не пытались ее доделать или починить (собственный Pair это не доделка, а костыль), а после этого еще пол года никто не смотрел их результаты. Значит в целом все делалось только «для галочки», точнее, для отчета. Разве что, сам опыт для ребят будет полезен — учиться надо на ошибках. Ну и на этом все.
— Hi, Mr Oleski!
— Just Alex, please.
— O_O
Отдельный прикол был, когда кто-то посмотрел в паспорт на запись большими буквами OLEKS II и спросил: вы мистер Олекс Второй?
Речь же о выгорании и медленном снятии пациента с иглы. Конечно же, будет дискомфорт. Конечно же, будет желание пилить хобби проект на родном языке. Но может хоть уровень стресса понемногу начнет спадать.
Что будет, если владелец/ребенок/кот опрокинет чашку чая на стол?
P.S. Фиксированный кронштейн для монитора при таком размере стола означает дистанцию порядка 80-100см до экрана. Это много для большинства ситуаций, а вариантов регулировки я не вижу.