Обходим trade restriction'ы GitHub Copilot'a!
0. Поднимаем HTTPS сервер вне зоны ограничений (неРФ =)), зеркалящий https://api.github.com
Буду называть этот сервер
JetBrains:
Тут можно обойтись без патчинга, а просто редактированием секретных конфигов: после обновления слетит не сразу. Причём этот конфиг общий на все JB IDEшки (и, говорят, на neovim плагин тоже), так что повторять не придётся
1. логинитесь в копилоте через github. После логина вылезет плашка о том, что "Unavailable in your location"
2. закрываете IDEшку
3. заходите в папку с (одним из) конфигов копилота:
Надо добавить ключ
Например:
БЫЛО:
Необходимо пропатчить расширение заменив в нём URL
1. закрываете vscode
2. заходите в папку расширения (
3. заменяете в файле
Можно это сделать sed'ом:
0. Поднимаем HTTPS сервер вне зоны ограничений (неРФ =)), зеркалящий https://api.github.com
Буду называть этот сервер
https://YOUR_SERVER_ADDRESS/
Далее шаги немного отличаются для JetBrains плагина и VsCodeJetBrains:
Тут можно обойтись без патчинга, а просто редактированием секретных конфигов: после обновления слетит не сразу. Причём этот конфиг общий на все JB IDEшки (и, говорят, на neovim плагин тоже), так что повторять не придётся
1. логинитесь в копилоте через github. После логина вылезет плашка о том, что "Unavailable in your location"
2. закрываете IDEшку
3. заходите в папку с (одним из) конфигов копилота:
$HOME/.config/github-copilot/ на Linux, %LOCALAPPDATA%\github-copilot
4. редактируете hosts.json:Надо добавить ключ
"dev_override": {"copilot_token_url": "https://YOUR_SERVER_ADDRESS/copilot_internal/v2/token", "notification_url": "https://YOUR_SERVER_ADDRESS/copilot_internal/notification"} на том же уровне что и oauth_token.Например:
БЫЛО:
{"github.com": {"user": "REDACTED","oauth_token": "REDACTED"}}
СТАЛО: {"github.com": {"user": "REDACTED","oauth_token": "REDACTED","dev_override": {"copilot_token_url": "https://YOUR_SERVER_ADDRESS/copilot_internal/v2/token", "notification_url": "https://YOUR_SERVER_ADDRESS/copilot_internal/notification", "content_restrictions_url": "https://YOUR_SERVER_ADDRESS/copilot_internal/content_exclusion"}}}
VSCode:Необходимо пропатчить расширение заменив в нём URL
https://api.github.com на свой. При обновлении расширения - повторить1. закрываете vscode
2. заходите в папку расширения (
$HOME/.vscode/extensions/github.copilot-1.73.8685/dist/, версия может, и, скорее всего, будет отличаться)3. заменяете в файле
extension.js все вхождения https://api.github.com/ на адрес своего сервераМожно это сделать sed'ом:
sed -i 's#https://api.github.com/#https://YOUR_SERVER_ADDRESS/#g' extension.js
Поздравляю, вы теперь нарушитель санкций👍3🤯2
Forwarded from НИНИКА 🦀
Алгоритм скейлится "вроде линейно" (по количеству узлов в графе), но есть нюанс...
https://github.com/immunant/c2rust/issues/853
I love finding subtle bugs that (subtly) destroy the semantics of your program
I love finding subtle bugs that (subtly) destroy the semantics of your program
GitHub
Missing casts in const macro translation · Issue #853 · immunant/c2rust
A but I found when working on unsafe-libopus Apparently, when const macro translation is enabled, some casts are dropped, which leads to a change in semantics. Reproducible case #include <st...
Forwarded from Si
The Cloudflare Blog
ROFL with a LOL: rewriting an NGINX module in Rust
Engineers at Cloudflare have written a replacement in Rust for one of the oldest and least-well understood parts of the Cloudflare infrastructure, cf-html, which is an NGINX module. In doing so we learned a lot about how NGINX works, and paved the way for…
https://github.com/PyO3/pyo3 - круто
Позволяет делать питоновские биндинги к расту
После испытывания огромной боли от сишного API, pyo3 - очень круто! Смог буквально за 10 минут написать биндинги к такому вот классу
Есть ещё
This level of tooling is unimaginable
Позволяет делать питоновские биндинги к расту
После испытывания огромной боли от сишного API, pyo3 - очень круто! Смог буквально за 10 минут написать биндинги к такому вот классу
Есть ещё
maturin - тулза для сборки и установки пакета. Тупо пишешь maturin develop и у тебя уже есть пакет в virtualenvThis level of tooling is unimaginable
👍3
Короткая история про мои приключения с запуском чужой модели для диплома
Content Warning: реверс-инжиниринг
https://telegra.ph/When-reproducing-scientific-results-is-a-CTF-challenge-03-06
Content Warning: реверс-инжиниринг
https://telegra.ph/When-reproducing-scientific-results-is-a-CTF-challenge-03-06
Telegraph
When reproducing scientific results is a CTF challenge
So, science. Science men always talk about importance of experiment reproducibility. The Computer Science can be the most reproducible science that ever existed, as reproducing a lot of results is just another program execution away. Unfortunately, it's not…
👍7🔥6❤1
Steins;Gate is actualy a part of a larger "Science Adventure" franchise??? WTF, now I need to read those!
https://en.wikipedia.org/wiki/Science_Adventure
https://en.wikipedia.org/wiki/Science_Adventure
Ещё одно техническое приключение, на этот раз про проигрывание видео в расте
Spoiler: one does not simply
https://telegra.ph/Playing-video-in-rust-the-hard-way-02-20
Spoiler: one does not simply
use video::Video; let video = Video::new(); video.play()https://telegra.ph/Playing-video-in-rust-the-hard-way-02-20
Telegraph
Playing video in rust (the hard way)
One day I needed to play an mp4 file (H.264 video + AAC audio) in a game engine. Shouldn't be hard, right? use video::Video; let video = Video::new(); video.play(), right?.. Sadly, there is no single library that can do this in rust. A bit disappointed, I…
🤯6👍1