BitBurner
2 поста
2 поста
Приветствую! Много работаю за компом и давно планировал сделать рабочее место удобным, в частности, обеспечить возможность работы стоя. Про эргономику можно спорить, но каждый теребит, как хочет, я попробовал, мне понравилось, стало удобнее чередовать по минут 40 режимы стоя и сидя, колзозя подъём моников на удобный уровень как-нибудь, от коробки картонной поначалу до деревянной полки ныне.
Однако покупать под это подъёмные столы или кронштейны имхо слишком дорого, а текущий вариант слишком шаткий и ненадёжный. Хочу поставить мониторы на крест из двух штанг (вертикальная и горизонтальная, профиль, наверное, 40х20, для двух fullhd мониторов более чем нормально) с возможностью быстрой сменой высоты. С металлом работал, ржавеющие стали варить/красить и прочее умею, но вот подвижные соединения ещё ни разу не делал, посему прошу совета именно в этом месте:
1) Как вообще можно сделать удобную смену высоты штанги, чтобы встал, приподнял, зафиксировал, затем опустил и зафиксировал?
2) Как защитить краску от обдирания при смене высоты?
3) Как ограничить минимальную-максимальную высоту, чтобы максимально защитить технику?
4) Как более-менее красиво продумать опору конструкции, чтобы не шатало лишнего? Пока полагаю наварить внизу одну пластину горизонтально и по центру крепить стойку либо к стене, либо к столу дополнительно.
Что нагуглил/надумал по первому пункту:
1.1. Крючки на нескольких уровнях, просто поднять штангу и переставить выше/ниже. Выглядит неплохо, смущает грубость конструкции, да и как-то не оч по душе.
1.2. Подобно муфте наварить вокруг вертикальной трубы подвижную часть, а в самой вертикальной трубе сделать отверстия для крепежа на нужной высоте. Нравится, но не знаю как сделать смену высоты аккуратной, без повреждения краски и адского скрипа. И как сделать муфточку саму такого рода тоже не подозреваю)
1.3. Заморочиться с роликами, звучит прикольно, но не нашёл ни образцов, ни представить не удалось.
Что получилось по второму пункту:
2.1. Накладки есть разного рода, под подвижную часть, из резины и подобного. Мне кажется, всё равно покрытие будет страдать.
2.2. Может, плёнка какая-то. Если смена высоты через "накладку", а не скольжение, то мб и норм.
По третьему вижу некрасивые варианты: наварить что-то ограничивающее снизу, а сверху просто добавить высоты, чтобы не вылететь наверх при неаккуратном рывке.
Пункт 4 пока кажется вполне адекватным, пластина снизу, плюс отросток для крепежа на стену/стол, вроде будет стоять.
Если есть идеи по автоматизации, типа "поставь вот такой движок вот так, там можно ардуинку прикрутить", то буду рад почитать, конечно. Самому сделать интереснее, чем взять готовое за охулиард, да и охулиарда чёт нет, эх. Ну и цель сделать так, чтоб глаз и совесть радовало, а не "хуяк хуяк". Спасибо)
Игра позволяет прописывать код во встроенном редакторе Nano, достаточно удобном в целом, но всё же интерфейс которого не самый привычный большинству, и совсем непривычен для новичков. Поэтому многие пользуются редактором VSCode с расширением Bitburner VSCode Integration. Считаю, что это гораздо удобнее, и рекомендую так же отстроить окружение. Для работы транспилятора необходимо также установить NodeJS помоложе (14+), а для Windows - Git, чтобы иметь unix-like терминал и можно было пользоваться всеми преимуществами контроля версий.
https://code.visualstudio.com/download - редактор
https://marketplace.visualstudio.com/items?itemName=bitburne... - расширение
https://nodejs.org/en/ - NodeJS
Чтобы получить автокомплит, проще писать сразу на Typescript. Во-первых, язык помогает избежать многих ошибок, пусть и только в рантайме/на этапе транспиляции в JS. Во-вторых, организации покрупнее перешли или переходят на TS, поэтому для желающих во фронтенд практика TS лишней не будет.
На гитхабе есть множество готовых темплейтов, позволяющих сразу взять и писать скрипты с автодополнением и прочими плюшками. Я предпочитаю лишний раз самому разобраться, поэтому опишу базовую настройку окружения) Все подробности пишу под Windows, т.к. у линуксоидов всё же должны быть базовые навыки работы с терминалом. Будет полезно знакомящимся с экосистемой разработки под JS|TS, не только для BitBurner.
Итак, после установки всех вышеописанных программ мы должны настроить редактор и затем подготовить директорию для работы. Запускаем VS Code, и выбираем дефолтным окружением Git Bash по инструкции: https://code.visualstudio.com/docs/terminal/basics
Периодически настройка меняется, поэтому ссылка на оф. документацию. Я сижу на арче/убунте, поэтому могу ошибаться в нюансах работы на Windows, но, в целом, после выбора bash дефолтным терминалом проблем быть не должно.
Теперь при открытии терминала (ctrl+~ по умолчанию) у вас будет запускаться unix-like терминал. Теперь можно создавать проект :)
Создайте директорию, в которой будете хранить скрипты. Откройте её в VSCode и запустите терминал. Теперь инитим npm-проект командой npm init -y (флаг -y автоматом выберет дефолтные параметры), затем добавим необходимые пакеты:
npm install -D typescript @TypeScript-eslint/eslint-plugin @TypeScript-eslint/parser eslint eslint-config-airbnb-base eslint-plugin-import eslint-config-airbnb-typescript
Эта команда установит нужные библиотеки для разработки скриптов под игру + линтер (лучший друг любого кода). Теперь нужно настроить линтер и Typescript. Для понимания настроек необходимо прочесть документацию:
https://eslint.org/docs/latest/user-guide/configuring/ - линтер
https://www.typescriptlang.org/docs/handbook/tsconfig-json.h... - typescript
Или просто создайте файлы через терминал:
code .eslintrc.js tsconfig.json
И вставьте готовые настройки из песочницы:
Если у вас есть свой любимый конфиг линта, то добавьте в него правило 'import/prefer-default-export': 'off' , т.к. в большинстве случаев ESLint предлагает заменить конструкцию export fn main на export default, и подчёркивает весь код как неверный.
Теперь создадим папки для удобного размещения скриптов:
mkdir {src,build,types}
Эта команда создаст в текущей директории 3 папки. В одной мы будем хранить и прописывать TS файлы с исходным кодом (src от sources - исходники), в build будет готовый js - для синхронизации с игровым сервером, его руками менять не будем. И types - для хранения файла, описывающего API игры, тоже будем менять только при обновлениях игры (если будет меняться api, как в недавнем релизе 2.0.0+).
В tsconfig уже указали эти папки. Так же там есть настройка "paths" - она пригодится в будущем для импортов, т.к. игра не может в относительные пути.
Теперь нам нужно добавить Type Definitions - собственно, описание апи игры, по которому мы получим автокомплит в редакторе, а при изучении его сможем многое полезное позже найти. Итак, как объявлено в tsconfig.json, мы должны создать файл NetscriptDefinitions.d.ts и положить его в папку types, а наполнить мы можем оригинальным описанием от разработчика:
https://github.com/danielyxie/bitburner/blob/dev/src/ScriptE...
ctrl+a, ctrl+c:
https://raw.githubusercontent.com/danielyxie/bitburner/dev/s...
Осталось дело за малым: запустить игру, старт API server и получить токен авторизации:
Нужно включить верхние две опции и скопировать токен авторизации. Не закрывая игру, возвращаемся в VSCode, прожимаем палитру команд (ctrl+shift+p) и вводим BitBurner, выбираем Add Аuth Token и вставляем ранее скопированный токен из игры. И заодно включаем File Watcher, чтобы автоматизировать обновление скриптов в игре.
Теперь нужно настроить пуш в игру файлов из папки build, а не всех папок. Для этого снова открываем настройки, как при выборе терминала, но теперь вводим в поиск scriptRoot, сразу находим нужную опцию и вводим ./build/
Теперь при компиляции (таки скорее транспиляции) TS файлов в JS будет триггериться вотчер расширения, который отправит все файлы в игру и там мы можем сразу запускать их.
Осталось дело за малым: проверить, как оно работает. В папке src создаём файл с понятным названием и расширением .ts (например, hack.ts) и прописываем базовую структуру:
Нам нужно импортировать тайпинги и объявлять асинхронную функцию с именем main, которая принимает в себя как минимум один аргумент ns. Это требование апи игры. Исключение - вспомогательные именованные функции, которые вы будете импортировать как часть своего скрипта, там можно уже называть как угодно. Но если вы хотите запускать скрипт из терминала игры, то его исходник должен соответствовать такой структуре.
Последний этап - компиляция. Мы пишем скрипты в среде Node JS, поэтому нужно в главном файле любого проекта - package.json - указать скрипты для компиляции. Чтобы один раз запустить команду и дальше автоматом компилить TS файлы в JS, в поле scripts нужно добавить команду watch (или любую удобную, например, go) со значением tsc -w:
Теперь в терминале можно выполнить npm run watch и сосредоточиться только на написании кода. Вперёд, за взломом!))
Для желающих погрузиться:
1) попробуйте настроить tsconfig.json так, чтобы импортировать тайпинги NS можно было из '@ns'
подсказка: https://www.typescriptlang.org/docs/handbook/tsconfig-json.h...
2) Создайте скрипты из туториала через данное окружение
TL, DR: игра про автоматизацию вообще всех действий в игре с помощью скриптов на JS. Вряд ли понравится любителям динамичных игр, вероятнее всего зайдёт любителям порешать чего-нибудь на досуге.
Игра вышла 11 декабря 2021 года в Steam. Основная площадка разработчика - Discord-сервер и GitHub, так же иногда отвечает на Reddit в профильном сабе. Сама игра представляет собой цикл из развития, заработка денег на аугментации (бонусы, дающие буст к скорости скриптов и скорости прокачки персонажа) и рестарт с бонусами, позволяющими гораздо быстрее дойти дальше предыдущего уровня. Основное действие происходит в терминале, который из привычных команд поддерживает только ls с парой флагов, cd и запуск скриптов.
В процессе игры попадаются интересные алгоритмические задачи - coding contracts.
Так же есть мини-игры попроще, вида "нажимать нужную стрелку на клавиатуре". Но самый сок в игре - это продумывание автоматизации, создание алгоритмов, способных максимально быстро пополнять ваш кошелёк. Для этого приходится разбираться с апи, высчитывать (кодом) время на ослабление защиты, время на пополнение счёта целевого сервера и прочее.
По мере развития у вас появляются возможности путешествовать по нескольким городам, вступать в хакерские фракции, работать на компании или преступные группировки. Можно внедриться в корпорацию и украсть её секреты, а можно примкнуть к спецслужбам.
На одном из этапов вы можете попробовать себя в роли биржевого брокера, покупать акции, продавать, играть на разнице их стоимости. Так же можно сыграть в казино. И самое главное - эти действия тоже можно описать скриптом и выполнить без единого клика мышью.
Неудачные скрипты (бесконечный цикл, например) могут положить бразуер, поэтому всегда приходится думать, что пишешь. Несмотря на простоту, в игре есть место для шевеления мозгами, и можно даже прокачать базовые алгоритмы.
Для удобства можно использовать VSCode и установленную игру, тогда при сохранении скрипта в редакторе будут сразу обновляться скрипты в игре. Так же можно писать во встроенном редакторе с подсветкой синтаксиса и автокомплитом. Поддерживаются горячие клавиши, всё удобно разбито.
На выбор даётся две версии скриптового языка: NS1 - старый стандарт Ecma Script, не изучал его особенности, сразу пользовался NS2 - ES6 стандарт, импорты, модули, всё привычное фронтенд-разработчикам.
Можно логировать, раскрашивать вывод, делать кликабельные кнопки в логе, а бонусом достаточно много фич, позволяющих кастомизировать окружение. Например, можно выбрать между тёмной и светлой темой приложения, или полностью с нуля создать свою собственную.
Постараюсь примерно 1 раз в неделю-две докидывать интересные скрипты с разбором. Присоединяйтесь, хакать весело)
П.С.: у кого есть 5к рейтинга, добавьте, пожалуйста, тег "bitburner", это позволит кому надо - блокировать, а кому надо - подписаться.
Здравствуйте!
Суть проблемы кратко: Приобрёл комплектующие на ПК, не в первый раз. При сборке не стартанул компьютер. Все комплектующие завелись на "старом" (2019-2020) компьютере, материнская плата же не реагировала. Попробовал отвезти в ДНС назад, приняли на сервис, но вернули со словами "всё хорошо работает, обновили биос, если не стартует - проверяйте ваше железо". Проверил с третьими комплектующими - те же проблемы, никаких признаков жизни. Хочу вернуть матплату и получить либо деньги назад, либо рабочую матплату
Опыт: ранее, ещё год назад, по работе собирал компьютеры для работы внутри, домой тоже сам собрал, теперь уже в обязанностях этого нет.
Подробнее:
27.06.2022 получил материнскую плату MSI MPG X570 GAMING PLUS. На сайте матплаты посмотрел спеку, с её учётом выбрал блок питания, оперативку, видеокарту и процессор. Собирал на разных сайтах, в DNS приобрёл только видеокарту и матплату.
Вечером того же дня начал сборку машины, к полуночи закончил, машина не запустилась. Дома есть старый ПК, в его матплате завелись все комплектующие (блок питания, процессор, кулер, видеокарта, SSD диски).
28.06.2022 вернул материнскую плату в DNS. Сотрудник спокойно принял, сказал, что в течение недели всё разберём.
01.07.2022 получил назад мат плату с заключением: "дефект не выявлен, проверить остальные комплектующие".
05.07.2022 сгонял на работу, там много машин, проверил всё:
- остальные комплектующие
- текущую матплату с другими комплектующими
Матплата нигде не завелась. Остальное железо работает чётко.
Мой вердикт: DNS не проводил сервис, отписались для галочки и надеются, что я не буду бороться за права.
Покупка:
Сервис:
Подскажите, пожалуйста, как могу вернуть деньги или затребовать замену на рабочую матплату, а не потратить время на отписки и прочее. На сайтах вида "юрист 911" ответы противоречивые, кто-то сразу за досудебку, кто-то "претензии достаточно", кто-то пишет "требуйте возврат и точка", кто-то пишет "пусть забирают на сервис, требуйте взамен рабочую сейчас прям".
Ещё увидел, что в ЗоЗПП есть п.2 ст.20:
- «в отношении товаров длительного пользования изготовитель, продавец либо уполномоченная организация или уполномоченный индивидуальный предприниматель обязаны при предъявлении потребителем указанного требования в трехдневный срок безвозмездно предоставить потребителю на период ремонта товар длительного пользования, обладающий этими же основными потребительскими свойствами, обеспечив доставку за свой счет».
Как можно затребовать это право?
UPD: 05.07.2022 18:42 Позвонил в магазин, оператор сказал, что можно написать заявление в свободной форме на "приглашение" в сервисный центр для тестирования вживую. Иду в магазин, пробую оформлять. Вопрос не решён, всё ещё буду рад помощи и советам
