Лет ~15 назад потерял интерес к компьютерным играм, потому что они очень быстро приедаются, не мотивируют к прохождению, потому что не могут предложить новых механик, лишь добавляют количество того-сего в пределах уже известной механики. К тому же, тогда начал набирать популярность мультиплеер в ущерб одиночному прохождению, а это означает необходимость поиска других игроков, которые наверняка ещё и поголовно играют лучше.
Зато чуть позже полюбил настольные игры. И если классические настолки тоже можно считать однообразными, то настольно-ролевые позволяют разыграться фантазии и ограничивают сюжет и возможности игроков по минимуму. А кроме того, даже в обычных настолках взаимодействие людей за одним столом пересиливает однообразие и изученность геймплея.
К тому же, настолки не "протухают": у них не отключают сервера, они не устаревают вместе с железом/операционками (свой тип устаревания, правда, имеется, но не такой критичный). Тут, конечно, привет вам, Особняки безумия и прочие, кто требует использования мобильного приложения, которое почти наверняка пропадёт из сторов в ближайшие 5-10 лет или перестанет поддерживать новые версии операционок.
Уменьшай разрыв между героями, за которых играешь
Так-то, я любитель классических RTS, без примесей RPG. Нынешнее поколение, небось, даже не знает, как это, без RPG. Да, выше я писал про НРИ, ролеплей, но если речь о компьютерных играх, то мне нравится строить базы.
стоял бы выбор поиграть в новую часть GTA или вживую потискать такую задорную девчонку, как на превью к статье, что бы выбрал?
Во-первых, у игры нет КДПВ, о ком речь?
Во-вторых, я в GTA играл только в первые две части: по фану катался на машинках и даже не знал, что там есть сюжет. Но тискать незнакомых девчонок, без предварительного сближения и выяснения общих взглядов — это тоже не моё. Поэтому я в затруднении.
Эх, читаю одну-две книги в полгода, если попадаются неинтересные. Не в моих правилах бросать начатое, пока что бросил только Красный Марс, но у меня эта трилогия в бумаге, поэтому я ещё к ней вернусь лет через 5.
Купил на днях Оникс, книги в него можно закачивать по локалке — он поднимает веб-сервер. Ещё бы включался и открывал последнюю книгу раза хотя бы в три быстрее. А то памяти навалом , процессор гигагерцовый, а на загрузку андроида уходит секунд 7. Куда ушли времена PalmOS?
Использую телефон в качестве экспонометра при съёмке на плёнку, но пользуюсь камерой, а то через датчик не очень удобно бегать к месту, которое буду снимать. Мне достаточно было один раз проявить плёнку, чтобы узнать, насколько телефон врёт и куда нужно подкручивать выдержку/диафрагму.
Мне показалось, что вступление статьи — это рерайт раздела "Открытая планировка глазами компаний". Статья не такая уж маленькая, зачем её раздувать таким способом?
Опять колдовство началось. Как типы могут оперировать данными и пересобирать строки? Нужна же какая-то реализация того, что написано. И как можно затипизировать регистры символов внутри строки? Это же всё string. Как TS проверит, что функция (a: string) => string реализовала именно такое преобразование, как тут написано в типах? Он же не умеет проверять логику работы. Соответственно, зачем мы вызываем ToHandler<"name">? Чтобы получить конкретный строковый литерал? Почему сразу его не записать?
Кто-то так пишет? Есть шанс встретить такое в готовом коде и без комментариев?
На счёт последнего, c extends, какая практическая польза от T extends string вместо string? Что может скрываться пот extends string? Какой-нибудь string | number подходит под это? Если да, тогда мы не сможем сделать .length у того, что имеет тип T, нам придётся проверять, кто именно там лежит.
Или я зря вообще пытаюсь представить перемененную типа T, с которой будет что-то делаться?
Я ещё при чтении учебника осознал, что это программирование типов, такое же, как написание функций, только используются не переменные, а типы, и возвращаются тоже типы.
Пример из учебника: type Without<T, U> = T extends U ? never : T type A = Without<boolean | number | string, boolean> На выходе будет number | string, но если бы в книге это не расписали, я бы ни за что не догадался, что эта строчка делает такое вот. Здесь нужно понимать иерархию типов, кто чей предок, а кто потомок, чтобы понимать, кто кого extends. И почему-то частенько в описаниях пишут не T, а U extends T, но не объясняют, почему нам важны именно потомки типа. Типа, задел на будущее, чтобы функция работала с кем-то ещё?
А ещё infer, который что-то достаёт из массивов. Вернее, из типов массивов: T extends (infer U)[] ? U : T, причём, они этот U даже в квадратных скобках не писали, он просто появляется тут. Для меня это белиберда, я не могу осознать, что тут происходит, а это всего лишь возврат типа элементов массива.
На минимальном уровне я понял, как это использовать, могу описать функцию, которая принимает объект с парой ключей и возвращает объект с другой парой ключей или массив. Но если у меня будет стоять задача типизировать вообще всё, то я пока не знаю, с чего начать. Очень надеюсь на учебники, который ещё нашёл, а пока что читаю "Программируй & типизируй", там подход вообще другой, там вместо объявления type на каждый чих, всё время создают классы, пользуясь тем, что классы одновременно создают одноимённые типы, в результате рождаются выражения a: A = new A(), но это я примерно понимаю так, что то ли конструктор класса может вернуть что-то отличное от A (его родителя?), то ли автор не доверяет автовыведению типа TS и хочет явно писать, что A() вернёт объект типа A. Но с классами понимать становится проще, потому что они явно друг друга наследуют или реализуют интерфейс, а не абстрактное number extends number | undefined.
Пришёл из PHP и JS, примерно понял, как работают обобщённые типы, но не понимаю, как писать, чтобы они были правильные. Это как с английским: читать могу, но когда сам пишу, то даже не могу правильно выбрать между can, could и would.
Кроме того, я путаюсь, где объявление типа, а где уже его использование. В вашем примере я начал искать, где описан тип, в который подставляется ResultType, потому что привык, что в учебниках сперва опишут в терминах T и P, а потом подставляют, чтобы вышло что-то типа Promise<number>, а сам Promise<T> лежит где-то ещё. В общем, очень сложно уложить всё в голове. А a<b<c>> я вообще пропускаю, не пытаясь понять, просто верю, что эта магия работает, сам я такое не напишу. Мне сама концепция не понятна, как понимать эти угловые скобки. Может быть, это как вызов функции с параметром, и тогда b<c> как бы возвращает некоторый тип, который идёт параметром в a<>. Или всё хуже?
А вообще, я сразу понял, что мне попался плохой учебник, но так как он был платный, я заставил себя его прочитать. Теперь попробую другой.
Странно. Я читал книгу-мемуар "Чёрный клановец", там полицейский пишет, что его приставили оберегать гдаву ку-клукс-клана, когда тот к ним в город приехал.
Не телефон, карту. Телефону-то чего бояться? Я на нём NFC включаю только если хочу заплатить телефоном, а это примерно раз в месяц.
Какой вид акцента у дядьки с видео "Подробное видео"? Я его очень хрошо понимаю, хочу узнать, какой акцент для меня предпочтителен у говорящего :)
Хум хау
Лет ~15 назад потерял интерес к компьютерным играм, потому что они очень быстро приедаются, не мотивируют к прохождению, потому что не могут предложить новых механик, лишь добавляют количество того-сего в пределах уже известной механики. К тому же, тогда начал набирать популярность мультиплеер в ущерб одиночному прохождению, а это означает необходимость поиска других игроков, которые наверняка ещё и поголовно играют лучше.
Зато чуть позже полюбил настольные игры. И если классические настолки тоже можно считать однообразными, то настольно-ролевые позволяют разыграться фантазии и ограничивают сюжет и возможности игроков по минимуму. А кроме того, даже в обычных настолках взаимодействие людей за одним столом пересиливает однообразие и изученность геймплея.
К тому же, настолки не "протухают": у них не отключают сервера, они не устаревают вместе с железом/операционками (свой тип устаревания, правда, имеется, но не такой критичный). Тут, конечно, привет вам, Особняки безумия и прочие, кто требует использования мобильного приложения, которое почти наверняка пропадёт из сторов в ближайшие 5-10 лет или перестанет поддерживать новые версии операционок.
Так-то, я любитель классических RTS, без примесей RPG. Нынешнее поколение, небось, даже не знает, как это, без RPG. Да, выше я писал про НРИ, ролеплей, но если речь о компьютерных играх, то мне нравится строить базы.
Во-первых, у игры нет КДПВ, о ком речь?
Во-вторых, я в GTA играл только в первые две части: по фану катался на машинках и даже не знал, что там есть сюжет. Но тискать незнакомых девчонок, без предварительного сближения и выяснения общих взглядов — это тоже не моё. Поэтому я в затруднении.
Чую, возрастёт спрос на экранированные карманы для карт. А то расплодятся любители прикладывать телефон к чужим карманам в толпе.
Как лимит покупок без пошлины снижать, у них всё нормально было.
Эх, читаю одну-две книги в полгода, если попадаются неинтересные. Не в моих правилах бросать начатое, пока что бросил только Красный Марс, но у меня эта трилогия в бумаге, поэтому я ещё к ней вернусь лет через 5.
Купил на днях Оникс, книги в него можно закачивать по локалке — он поднимает веб-сервер. Ещё бы включался и открывал последнюю книгу раза хотя бы в три быстрее. А то памяти навалом , процессор гигагерцовый, а на загрузку андроида уходит секунд 7. Куда ушли времена PalmOS?
Джокера не на пустом месте сняли, да?
Использую телефон в качестве экспонометра при съёмке на плёнку, но пользуюсь камерой, а то через датчик не очень удобно бегать к месту, которое буду снимать. Мне достаточно было один раз проявить плёнку, чтобы узнать, насколько телефон врёт и куда нужно подкручивать выдержку/диафрагму.
То есть, onNameChange уже где-то затипизировано как литерал, это не рандомная строка?
Я бы в такой статье, если бы понял причину разлогина, первым делом попробовал отключить показ картинок на странице и так оставить комментарий.
Мне показалось, что вступление статьи — это рерайт раздела "Открытая планировка глазами компаний". Статья не такая уж маленькая, зачем её раздувать таким способом?
Опять колдовство началось. Как типы могут оперировать данными и пересобирать строки? Нужна же какая-то реализация того, что написано. И как можно затипизировать регистры символов внутри строки? Это же всё string. Как TS проверит, что функция (a: string) => string реализовала именно такое преобразование, как тут написано в типах? Он же не умеет проверять логику работы. Соответственно, зачем мы вызываем ToHandler<"name">? Чтобы получить конкретный строковый литерал? Почему сразу его не записать?
Кто-то так пишет? Есть шанс встретить такое в готовом коде и без комментариев?
На счёт последнего, c extends, какая практическая польза от T extends string вместо string? Что может скрываться пот extends string? Какой-нибудь string | number подходит под это? Если да, тогда мы не сможем сделать .length у того, что имеет тип T, нам придётся проверять, кто именно там лежит.
Или я зря вообще пытаюсь представить перемененную типа T, с которой будет что-то делаться?
Они там знатно "лизнули", потому что его охранял полицейский-негр :)
Авторизация там опциональна, достаточно скрыть два div'а.
Я ещё при чтении учебника осознал, что это программирование типов, такое же, как написание функций, только используются не переменные, а типы, и возвращаются тоже типы.
Пример из учебника:
type Without<T, U> = T extends U ? never : T
type A = Without<boolean | number | string, boolean>
На выходе будет number | string, но если бы в книге это не расписали, я бы ни за что не догадался, что эта строчка делает такое вот. Здесь нужно понимать иерархию типов, кто чей предок, а кто потомок, чтобы понимать, кто кого extends. И почему-то частенько в описаниях пишут не T, а U extends T, но не объясняют, почему нам важны именно потомки типа. Типа, задел на будущее, чтобы функция работала с кем-то ещё?
А ещё infer, который что-то достаёт из массивов. Вернее, из типов массивов:
T extends (infer U)[] ? U : T, причём, они этот U даже в квадратных скобках не писали, он просто появляется тут.
Для меня это белиберда, я не могу осознать, что тут происходит, а это всего лишь возврат типа элементов массива.
На минимальном уровне я понял, как это использовать, могу описать функцию, которая принимает объект с парой ключей и возвращает объект с другой парой ключей или массив. Но если у меня будет стоять задача типизировать вообще всё, то я пока не знаю, с чего начать. Очень надеюсь на учебники, который ещё нашёл, а пока что читаю "Программируй & типизируй", там подход вообще другой, там вместо объявления type на каждый чих, всё время создают классы, пользуясь тем, что классы одновременно создают одноимённые типы, в результате рождаются выражения a: A = new A(), но это я примерно понимаю так, что то ли конструктор класса может вернуть что-то отличное от A (его родителя?), то ли автор не доверяет автовыведению типа TS и хочет явно писать, что A() вернёт объект типа A.
Но с классами понимать становится проще, потому что они явно друг друга наследуют или реализуют интерфейс, а не абстрактное number extends number | undefined.
Пришёл из PHP и JS, примерно понял, как работают обобщённые типы, но не понимаю, как писать, чтобы они были правильные. Это как с английским: читать могу, но когда сам пишу, то даже не могу правильно выбрать между can, could и would.
Кроме того, я путаюсь, где объявление типа, а где уже его использование. В вашем примере я начал искать, где описан тип, в который подставляется ResultType, потому что привык, что в учебниках сперва опишут в терминах T и P, а потом подставляют, чтобы вышло что-то типа Promise<number>, а сам Promise<T> лежит где-то ещё. В общем, очень сложно уложить всё в голове. А a<b<c>> я вообще пропускаю, не пытаясь понять, просто верю, что эта магия работает, сам я такое не напишу. Мне сама концепция не понятна, как понимать эти угловые скобки. Может быть, это как вызов функции с параметром, и тогда b<c> как бы возвращает некоторый тип, который идёт параметром в a<>. Или всё хуже?
А вообще, я сразу понял, что мне попался плохой учебник, но так как он был платный, я заставил себя его прочитать. Теперь попробую другой.
Странно. Я читал книгу-мемуар "Чёрный клановец", там полицейский пишет, что его приставили оберегать гдаву ку-клукс-клана, когда тот к ним в город приехал.
Вот да, вроде жму "отписаться", а они продолжают приходить.