Технологический Болт Генона
8.26K subscribers
3.04K photos
367 videos
214 files
3.9K links
До Декарта никогда не существовало рационализма.

Музыкальный Болт Генона: @mus_b0lt_Genona
Мемный Болт Генона: @mem_b0lt_Genona
Кадровый Болт Генона @kadr_b0lt_Genona

Обратная связь: @rusdacent
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
Тут в комментах у https://xn--r1a.website/psauxww/1381 задались вопросом, а где можно пройти Mario за Билла Райзера (и не только)

Я не знаю, что там за версия в видосе оригинального поста, но у меня есть ответ на запрос в целом

Когда-то давно я играл в такую модификацию, поэтому делюсь

1. Сначала качаем игру тут
https://archive.org/details/SuperMarioCrossoverOffline

2. Так как сама игра сделана на Flash'е, то качаете под вашу платформу проигрыватель для него
https://web.archive.org/web/20220316063802/https://www.adobe.com/support/flashplayer/debug_downloads.html

3. Запускаем

...

4. PROFIT111!!

Все файлы, как обычно, положу в комменты, так что можете организовать интенсивную подготовку к понедельнику

ЗЫ Записал демку небольшую с примером того, как и что можно выбирать. Писал с экрана, так как окно нормально не захватывалось, поэтому есть небольшие подлагивания 🌝
🔥82🥱2🥴2🤡1
Что? Да!

Автор себе придумал челлендж, что бы запустить go-шное приложение на второй плойке.

MIPS есть в списке поддерживаемых платформ, но PlayStation 2 там нет, так как в PS2 идёт MIPS R5900
https://go.dev/wiki/MinimumRequirements#mips-big-endian-and-mipsle-little-endian

В качестве подопытного был взят TinyGo (специальная версия для embedded и подобного)
https://tinygo.org/

Go can actually build code for MIPS already, which should save me some time, but not a lot, as I need to get TinyGo to work on it. TinyGo relies on LLVM 19, which does support MIPS-III, but not the R5900 CPU directly.


Дальше идёт over 9000 технических подробностей про низкоуровневые проблемы, взаимодействие с C и т.д. и т.п.

Отдельно рассматривается история с инструкцией DDIVU (Divide Doublewords Unsigned)

The DDIVU (doubleword divide unsigned) is a instruction defined in MIPS-III (source) responsible for doing the division of 2 unsigned 64bit integers.

However, that doesn’t work in the PS2, as we saw before. You see, the DDIVU instruction is not defined (source) in the PS2 MIPS instruction set - only DIVU is. This introduces a major problem, as now all int64 (with DDIV) and uint64 (with DDIVU) divisions won’t execute - or will execute incorrectly if it ends up matching some other instruction. We need to avoid that, and either split this division inside the Go compiler in a way that would not do the 64bit version of it, or modify the LLVM so that it won’t use this instruction, even on a mips3 CPU. Or maybe we can implement a custom CPU inside the LLVM - the r5900, like ps2dev’s GCC.


Golang on the PlayStation 2
https://rgsilva.com/blog/ps2-go-part-1/

Этот пост прочитал с большим удовольствием, всем интересующимся рекомендую. Автор обещает продолжение, так что будем подождать.
🔥197🤡4👎2🤯2🥱2👍1
Дима у себя в посте https://xn--r1a.website/k8security/1495 рассказал про свежий доклад с KubeCon EU 2025 о том как скрывать всякие непотребства в виде уязвимостей в образе контейнера, что бы сканеры рассказывали как всё хорошо.

Enhancing Software Composition Analysis Resilience Against Container Image Obfuscation (слайды в комменты закину тоже)
https://static.sched.com/hosted_files/kccnceu2025/01/KubeConEU25.pdf

Но не упомянул отдельно, что помимо бенчмарка (https://github.com/kube-security/container-obfuscation-benchmark), так же открыли код тулы, которая использовалась в экспериментах - https://github.com/kube-security/orca

Мне было интересно посмотреть, а какую информацию она в принципе выдаёт и вот информация по слоям о количестве обнаруженных пакетов мне видится интересной. Особенно это интересно в контексте сколько всего осталось в слоях после организации очистки в Dockerfile.

В качестве подопытного у меня под рукой был образ, который идёт в составе @cozystack
https://github.com/cozystack/cozystack/pkgs/container/cozystack%2Fkubeovn/388045179?tag=v1.13.3

$ docker history kubeovn:v1.13.3
IMAGE CREATED CREATED BY SIZE COMMENT
0fa873c6e4e4 3 weeks ago RUN /bin/sh -c setcap CAP_NET_ADMIN,CAP_NET_… 4.31MB buildkit.dockerfile.v0
<missing> 3 weeks ago WORKDIR /kube-ovn 0B buildkit.dockerfile.v0
<missing> 3 weeks ago RUN /bin/sh -c /kube-ovn/iptables-wrapper-in… 3.15kB buildkit.dockerfile.v0
<missing> 3 weeks ago COPY /kube-ovn /kube-ovn # buildkit 256MB buildkit.dockerfile.v0
<missing> 3 weeks ago COPY /source/dist/images/grace_stop_ovn_cont… 1.39kB buildkit.dockerfile.v0
<missing> 3 weeks ago COPY /source/dist/images/logrotate/* /etc/lo… 1.79kB buildkit.dockerfile.v0
. . .
<missing> 7 weeks ago RUN |3 DEBIAN_FRONTEND=noninteractive DUMB_I… 26.7MB buildkit.dockerfile.v0
. . .
<missing> 7 weeks ago RUN |2 DEBIAN_FRONTEND=noninteractive DUMB_I… 94.5MB buildkit.dockerfile.v0
<missing> 7 weeks ago RUN |2 DEBIAN_FRONTEND=noninteractive DUMB_I… 63kB buildkit.dockerfile.v0
. . .
<missing> 7 weeks ago RUN |1 DEBIAN_FRONTEND=noninteractive /bin/s… 0B buildkit.dockerfile.v0
<missing> 7 weeks ago RUN |1 DEBIAN_FRONTEND=noninteractive /bin/s… 230MB buildkit.dockerfile.v0
. . .
<missing> 2 months ago /bin/sh -c #(nop) ARG RELEASE 0B

$ orca kubeovn:v1.13.3

blobs/sha256/4b7...41d - Found 170 packages. Indexed 4961 filed over a total of 2946 - Remaining files -2015
blobs/sha256/f09...b37 - Found 550 packages. Indexed 8670 filed over a total of 7081 - Remaining files -1589
blobs/sha256/3ac...7d2 - Found 0 packages. Indexed 0 filed over a total of 0 - Remaining files 0
blobs/sha256/9b6...403 - Found 0 packages. Indexed 0 filed over a total of 4 - Remaining files 4
blobs/sha256/660...8f3 - Found 119 packages. Indexed 4 filed over a total of 8 - Remaining files 4
blobs/sha256/3c4...c97 - Found 327 packages. Indexed 504 filed over a total of 323 - Remaining files -181
blobs/sha256/1e3...0da - Found 0 packages. Indexed 0 filed over a total of 6 - Remaining files 6
blobs/sha256/7b0...98d - Found 0 packages. Indexed 0 filed over a total of 6 - Remaining files 6
blobs/sha256/cba...2a6 - Found 170 packages. Indexed 4 filed over a total of 42 - Remaining files 38
blobs/sha256/f4c...58b - Found 0 packages. Indexed 0 filed over a total of 6 - Remaining files 6
blobs/sha256/5f7...6ef - Found 0 packages. Indexed 0 filed over a total of 0 - Remaining files 0
blobs/sha256/d47...a82 - Found 0 packages. Indexed 0 filed over a total of 11 - Remaining files 11


Первое что приходит в голову, это желание пойти посмотреть, а что же там такого в слоях интересного (или нет) наоставалось 🌝
🤡6👍3🥱2😁1🥴1
Технологический Болт Генона
Хорошие новости про Tornado Cash, а значит и про Лëшу Перцева https://x.com/AggrNews/status/1903089113701773707 Tornado Cash addresses have been removed from the OFAC sanctions list https://www.chaincatcher.com/en/article/2173694 Спасибо подписчику за…
Хорошие новости для Лёши Перцева продолжаются

In a memo, the agency said it will no longer pursue criminal charges against crypto exchanges, mixing services, or holders of cold wallets in most cases.

The DOJ’s National Cryptocurrency Enforcement Team (NCET) has been disbanded effective immediately according to the memo, which was sent to agency staff last night by Deputy Attorney General Todd Blanche.

Further, the DOJ will no longer pursue criminal charges against crypto exchanges, crypto mixing services, or holders of cold wallets for “acts of their end users or unwitting violations of regulations” unless those violations include crimes like embezzlement, scams, rug pulls, and hacks.

DOJ Will Shutter Crypto Unit, Back Off Services Like Tornado Cash
https://decrypt.co/313898/doj-will-shutter-crypto-unit

DOJ - Department of Justice - Министерство юстиции США
👍10🤡2🤨2👎1
😁29😢12🔥8🥴3🤯2😨2👾2💊1
Forwarded from Vadim Rutkovsky
Хвалюсь тулзой на основе VictoriaLogs: https://github.com/vrutkovs/audit-log-stats
Нам часто приходится анализировать audit log кубернетесовских аписерверов и вытягивать оттуда инфу о том какой юзер чаще всего достает ресурсы, сколько времени занимает ответ и разбивка этого времени на части - etcd / webhook / сериализация и т.д. В графане сразу сделан дашборд, который позволяет быстро найти виновника тормозов.

Сами аудит логи это простой jsonl, но зато их очень много и кардинальность улетает в небеса. После долгого мучения с перфомансом локи переделал на VLogs и теперь всё 🚀быстро🚀

cc @valyala
👍18🔥7🥱1
Технологический Болт Генона
При обсуждении под постом https://xn--r1a.website/tech_b0lt_Genona/5163 я вспомнил, что хотел написать на похожую тематику ранее, но как-то замотался и забыл Я не зря там написал последний абзац В целом, наблюдать за всем этим печально, потому что люди ради своего как…
Когда я сделал недавно серию постов про "железо", которое не ваше я же не шутил, а обозначил вполне конкретную проблему и будущее в которое не хотелось бы двигаться, но мы в него движемся

https://xn--r1a.website/tech_b0lt_Genona/5163
https://xn--r1a.website/tech_b0lt_Genona/5166
https://xn--r1a.website/tech_b0lt_Genona/5195 (почему-то многие подумали, что про "облачные" кондиционеры я придумал, нет это реальный производитель с реальными кондиционерами)

Оцените ход Nintendo

Теперь вы покупаете приставку и контроллер, в который по умолчанию встроена кнопка для рекламы. С выходом Nintendo Switch 2 компания решила внедрить кое-что новое — кнопку C, которая активирует встроенный голосовой чат, показ экрана и даже возможность стримить с веб-камерой прямо с консоли. Прорыв? Почти, только в другой части.

Как выяснилось, использовать эти функции бесплатно можно будет только до 31 марта 2026 года. После этого доступ к C-кнопке потребует подписки на Nintendo Switch Online — минимум $20 в год (на текущий момент). Без нее кнопка на корпусе консоли превращается в ссылку на рекламу платного сервиса.
. . .
Представитель Nintendo Билл Тринен в интервью Polygon подтвердил: «Если вы нажмете кнопку без подписки, вы узнаете о преимуществах NSO». То есть, чтобы воспользоваться функцией на консоли за $450, вы должны доплатить, чтобы она вообще работала.

Кнопка для рекламы. Nintendo объяснила работу кнопки «С» в контроллере Switch 2 без активной подписки
https://gameguru.ru/publication/knopka-dlya-reklamy-nintendo-obyasnila-rabotu-knopki-s-v-kontrollere-switch-2-bez-aktivnoj-podpiski/

Оригинал
Nintendo confirms you'll have to pay a monthly or yearly fee to use the Switch 2's C button once the free trial period is up
https://www.gamesradar.com/platforms/nintendo-switch-2/nintendo-confirms-youll-have-to-pay-a-monthly-or-yearly-fee-to-use-the-switch-2s-c-button-once-the-free-trial-period-is-up/
🤡53👍6🦄5🔥2
Forwarded from Andrey Slepykh
Коллеги, добрый день!

В уже далеком по времени, но близком сейчас по погоде январе был проведен небольшой Хакатон составом ИСП РАН, Профископ, Базальт СПО и НТЦ Фобос-НТ.

Целью данной встречи было исследование возможности применения инструмента Natch при анализе решений в контейнерном исполнении, в виде распределенной архитектуры.

Модельным примером стал продукт CodeScoring.

В результате встречи была подтверждена корректность анализа работы инструмента (ожидание совпало с результатами анализа), а также подготовлены методические рекомендации по подготовке подобных решений для анализа более тяжелыми инструментами динамического анализа.

Более подробно с процессом подготовки и результатами можете ознакомиться в статье на Хабр!
4👍1🤡1
FlowExporter is a sidecar that runs alongside all Netflix workloads in the AWS Cloud. It uses eBPF and TCP tracepoints to monitor TCP socket state changes. When a TCP socket closes, FlowExporter generates a flow log record that includes the IP addresses, ports, timestamps, and additional socket statistics. On average, 5 million records are produced per second.
. . .

FlowCollector, a backend service, collects flow logs from FlowExporter instances across the fleet, attributes the IP addresses, and sends these attributed flows to Netflix’s Data Mesh for subsequent stream and batch processing.
. . .
As noted in our previous blog post, our initial attribution approach relied on Sonar, an internal IP address tracking service that emits an event whenever an IP address in Netflix’s AWS VPCs is assigned or unassigned to a workload.
. . .
Attributing local IP addresses for container workloads running on Netflix’s container platform, Titus, is more challenging. FlowExporter runs at the container host level, where each host manages multiple container workloads with different identities. When FlowExporter’s eBPF programs receive a socket event from TCP tracepoints in the kernel, the socket may have been created by one of the container workloads or by the host itself. Therefore, FlowExporter must determine which workload to attribute the socket’s local IP address to. To solve this problem, we leveraged IPMan, Netflix’s container IP address assignment service.

How Netflix Accurately Attributes eBPF Flow Logs
https://netflixtechblog.com/how-netflix-accurately-attributes-ebpf-flow-logs-afe6d644a3bc

Предыдущий пост из этой серии
How Netflix uses eBPF flow logs at scale for network insight
https://netflixtechblog.com/how-netflix-uses-ebpf-flow-logs-at-scale-for-network-insight-e3ea997dca96

Спасибо подписчику за наводку
🔥4🥱2
Прикольная история успеха, как стартанув с "нуля" студент смог заработать денег

This post shares the story of the nice!nano; a wireless, Pro Micro-compatible microcontroller board I made in my freshman year of college. The nice!nano powers tens of thousands of keyboards, has inspired many, and changed my life.

Over my first winter break in college, I created what I called the Dissatisfaction65, a wireless 65% keyboard inspired by the Satisfaction75. I don’t remember exactly why, but I wanted to try making a DIY wireless keyboard after having made a few wired ones. The Adafruit 32u4 Bluefruit LE microcontroller was used to accomplish wireless since the open-source QMK keyboard firmware supported Bluetooth with this specific board. The project looked great in the end, but its performance was awful. The typing latency was nearly unusable, and it only lasted a few days on battery even with a huge battery inside.
. . .
The weekend (yes, the whole thing was designed in a weekend) I created the nice!nano.It was just me, KiCad, Nordic’s Infocenter2, nRFMicro wiki, and the Adafruit nRF52840 Feather schematic. I put together the schematic and BOM, laid out the PCB, and routed (and re-routed) the connections. On the other side I came out with the thinnest Pro Micro compatible nRF52840 based board.
. . .
Over the next week I created a name and found my PCB assembler. The name is based on my online username, “Nicell”. I wanted to continue the spirit of metric naming of the Pro Micro and came up with “nice!nano”.After reaching out to a few assemblers, the cheapest option for producing five was about $100.
. . .
As a college student, I didn’t have the money to bank roll a purchase of 1,000 nice!nanos, so I ran a group buy pre-purchase. At the time I had set a minimum purchase amount of 200 pieces for the order to go through and a maximum of 1,000 because I didn’t think I could handle more than that.
. . .
Within just seven hours all 1,000 nice!nanos had been sold, ending the group buy. In the next two months I got all the product in and shipped out the 400+ unique orders with the help of my family.
. . .
The million dollar product#

Ok, so the title is a bit of click-bait, but if you made it this far, I suppose it worked. The nice!nano might have been designed in my dorm room, but this was a multi-year journey. To date, over 50,000 nice!nanos have been sold at various online retailers around the world representing over a million dollars in sales. It’s hard to wrap my head around still, and I’m extremely grateful.

I Made a Million Dollar Product from My Dorm Room
https://nick.winans.io/blog/nice-nano/

ЗЫ Это мог быть ваш четверговый проект, но в этот четверг никто не пришёл 🌝
https://xn--r1a.website/tech_b0lt_Genona/4983
👍102🥴2💊2😁1🥱1
Поздравляю @aenix_io и @cozystack/@cozystack_ru

Бизнес-модель Ænix заключается в продаже подписки на Ænix Enterprise for Cozystack, в которую входят техническая поддержка с гарантиями по SLA, сопровождение платформы, professional services, а также энтерпрайзная функциональность (например, White Labeling и система биллинга).

Андрей Квапил, CEO Ænix: «Мы долго искали и тщательно выбирали инвестора — команду, которая понимает ценность того, что мы делаем, у которой есть опыт успешного инвестирования в похожие проекты, связи с институциональными инвесторами и потенциальными клиентами, а также опыт консультирования стартапов. И мы рады, что нашим партнером на этом пути стала именно команда Prospective Technologies. Кроме того, я благодарен всей нашей команде, ребятам из Ænix, внешнему сообществу пользователей и контрибьюторов, а также клиентов, которые поверили в нас и оказали серьезную поддержку».

Сергей Негодяев, Управляющий Партнер, Prospective Technologies: «Ænix решает важнейшую задачу для компаний, которым необходим контроль над своей инфраструктурой без потери гибкости современного облака. Вклад Cozystack в CNCF демонстрирует их приверженность инновациям с открытым исходным кодом, и мы рады поддержать их путь».

Ænix, основной разработчик open source-платформы Cozystack, привлек 300 тысяч долларов на стадии seed
https://habr.com/ru/companies/aenix/news/899586/
🎉33👍9🔥5🤡3👎1😁1
Forwarded from Simple Engineer Notes
🛠 VmWare & Hardware version debug

Jenkins runs a powershell script and it creates a VM. Normally it works, but this morning I got this:
 

Virtual Machine [xxx] does not exist
Importing new Virtual Machine
New-VM : 4/4/2025 9:55:27 AM New-VM An invalid argument "configSpec.guestId" was specified.
At C:\...\powershell\commonScripts\Initialize-VM.ps1:247 char:14
+ ... $newVM = New-VM -Name $VMName -ContentLibraryItem $templateObj -Da ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [New-VM], ViError
+ FullyQualifiedErrorId : ViCore_VMServiceImpl_DeployFromLibraryItem_ViNetException,VMware.VimAutomation.ViCore.Cm dlets.Commands.NewVM


The first idea was that something has been changed in the powershell wrapper. But with the terraform I got more a less the same error. It was complaning about unsupported guest ID. In packer we explicitly specify rhel8_64Guest, but just in case I also decided to specify it in terraform https://registry.terraform.io/providers/hashicorp/vsphere/latest/docs/resources/virtual_machine#guest_id-1 and got different errors:

rhel8_64Guest:

│ Error: deploy error: An invalid argument "configSpec.guestId" was specified.

│ with module.Personal.vsphere_virtual_machine.ld-lgonchar-2,
│ on modules/Personal/ld-lgonchar-2.example.local.tf line 2, in resource "vsphere_virtual_machine" "ld-lgonchar-2":
│ 2: resource "vsphere_virtual_machine" "ld-lgonchar-2" {


rockylinux_64Guest:
│ Error: cannot find OS family for guest ID "rockylinux_64Guest": could not find guest ID "rockylinux_64Guest"

│ with module.Personal.vsphere_virtual_machine.ld-lgonchar-2,
│ on modules/Personal/ld-lgonchar-2.example.local.tf line 2, in resource "vsphere_virtual_machine" "ld-lgonchar-2":
│ 2: resource "vsphere_virtual_machine" "ld-lgonchar-2" {


However in the docs https://knowledge.broadcom.com/external/article/321876/determine-the-guest-os-from-a-vm-configu.html both of them exist. The next idea was to epoxrt list of guest IDs:

[VMware.Vim.VirtualMachineGuestOsIdentifier].GetEnumValues()

...
rhel8_64Guest
...
rockylinux_64Guest
almalinux_64Guest


and again... both of them exist. Also the windows VM were created without any problems. However, my workmate spotted that the different hardware version is available for customezation in web UI. I also found it in the doc https://registry.terraform.io/providers/hashicorp/vsphere/latest/docs/resources/virtual_machine#hardware_version-1. So, If I set the hardware_version param to 21 it works because rockylinux_64Guest is introduced.

What happens?
1. We used to have the VM hardware compatibility set to version 19. And the templates we created used to be detected as RHEL8. And compatibility for version 19 supported RHEL 8.
2. Weekly template rebuild happens
3. what's happening right now?
- The template is still defined as RHEL 8
- During deployment VMWare automatically detects it as Rocky Linux 8
- Vmware sets the Guest OS to rockylinux_64Guest.
- rockylinux_64Guest is not compatible with VM version 19
- When the VM is startted it get the error The guest operating system 'rockylinux_64Guest' is not supported.
4. The compat level in packer template was increased to 21 and rebuilt.

Why it happens?

1. The first idea was that VMWare tools was updated(we are installing the latest one). but it's the same
2. The Vcenter version is also the same.
3. The code is also the same.
4. Something else has been updated inside the VM template(we also install all updates) like firmware but i've not find the diff yet. also the kernel https://oraclelinux.pkgs.org/8/ol8-baseos-latest-x86_64/kernel-4.18.0-553.46.1.el8_10.x86_64.rpm.html was suspicious but I found nothing interesting in the release notes
5. i also upgraded rocky 8.6->8.10 at a test VM just to exclude the changes in the /etc/redhat-release

so.. I don't know why.. wip..

#vmware #debug #terraform
👍2🔥2