AI prompts
base on Bad Apple using Windows windows # Bad Apple but it's a Windows virus
A high-performance (I've never seen _anything_ like this run in realtime before)
rendition of Bad Apple, using Windows windows as the video surface.
It's not _actually_ a virus, but it is reminiscent of the viruses of old that
were more of a nuisance than anything.
Video demonstration:
[![Flandre Scarlet made out of windows](https://img.youtube.com/vi/EZpZwunMzuE/0.jpg)](https://www.youtube.com/watch?v=EZpZwunMzuE)
## Why is it so performant?
- `DeferWindowPos` - even the most naive of projects can go from 1fps to 15fps
by using this wonderful batched API instead of `SetWindowPos`.
- `WS_EX_TOOLWINDOW` to remove the taskbar entry
- `SWP_NOREDRAW` when moving/resizing windows
- Optimised code that only shows/hides/moves windows that need
showing/hiding/moving
- Rust is *blazing fast*, don't you know?
## Could it be faster?
I suspect that choosing which windows to move/resize, such that each is resized
as little as possible, can increase performance - currently, the windows are just
used from largest to smallest, which can result in some location jitter as they
fit into different indexes.
## Future work
All of these I have done already in small tests, but they're both difficult to
make performant (copy dialogs are particularly slow), and difficult to arrange
into a pleasing display.
- Spawning `MessageBoxA` windows and taking their handle (thus avoiding the need
to replicate the layout of `MessageBoxA` for each version of Windows you run
on)
- Spawning Vista file copy dialogs using `IProgressDialog`
- Arranging windows in rolling sine waves, circles, etc
All of these I have not tried yet, but would be great additions:
- Water physics using hundreds of scroll bars
- Basic hard-body physics between windows
- Error noises synced with the audio (could just pre-render...)
- Notification bubbles
- Windows in the taskbar to show text (if the user has large taskbar buttons
enabled)
- A large variety of error messages to delight the user with
## Building and such
Should be fine to just `cargo build --release`.
Look at `bad apple.py` for the pre-processing to take an input video and turn it
into `boxes.bin`, a space-optimized representation of the window bounds for each
frame. The script is jank, don't come complaining.
Check the PRs for some forks that improve the python script to be easier to run.
## Why's the repo archived?
I simply don't have the bandwidth to respond to questions and merge PRs for this little
project I threw out into the world. Feel free to fork it and make it do cool things!
", Assign "at most 3 tags" to the expected json: {"id":"6121","tags":[]} "only from the tags list I provide: [{"id":77,"name":"3d"},{"id":89,"name":"agent"},{"id":17,"name":"ai"},{"id":54,"name":"algorithm"},{"id":24,"name":"api"},{"id":44,"name":"authentication"},{"id":3,"name":"aws"},{"id":27,"name":"backend"},{"id":60,"name":"benchmark"},{"id":72,"name":"best-practices"},{"id":39,"name":"bitcoin"},{"id":37,"name":"blockchain"},{"id":1,"name":"blog"},{"id":45,"name":"bundler"},{"id":58,"name":"cache"},{"id":21,"name":"chat"},{"id":49,"name":"cicd"},{"id":4,"name":"cli"},{"id":64,"name":"cloud-native"},{"id":48,"name":"cms"},{"id":61,"name":"compiler"},{"id":68,"name":"containerization"},{"id":92,"name":"crm"},{"id":34,"name":"data"},{"id":47,"name":"database"},{"id":8,"name":"declarative-gui "},{"id":9,"name":"deploy-tool"},{"id":53,"name":"desktop-app"},{"id":6,"name":"dev-exp-lib"},{"id":59,"name":"dev-tool"},{"id":13,"name":"ecommerce"},{"id":26,"name":"editor"},{"id":66,"name":"emulator"},{"id":62,"name":"filesystem"},{"id":80,"name":"finance"},{"id":15,"name":"firmware"},{"id":73,"name":"for-fun"},{"id":2,"name":"framework"},{"id":11,"name":"frontend"},{"id":22,"name":"game"},{"id":81,"name":"game-engine "},{"id":23,"name":"graphql"},{"id":84,"name":"gui"},{"id":91,"name":"http"},{"id":5,"name":"http-client"},{"id":51,"name":"iac"},{"id":30,"name":"ide"},{"id":78,"name":"iot"},{"id":40,"name":"json"},{"id":83,"name":"julian"},{"id":38,"name":"k8s"},{"id":31,"name":"language"},{"id":10,"name":"learning-resource"},{"id":33,"name":"lib"},{"id":41,"name":"linter"},{"id":28,"name":"lms"},{"id":16,"name":"logging"},{"id":76,"name":"low-code"},{"id":90,"name":"message-queue"},{"id":42,"name":"mobile-app"},{"id":18,"name":"monitoring"},{"id":36,"name":"networking"},{"id":7,"name":"node-version"},{"id":55,"name":"nosql"},{"id":57,"name":"observability"},{"id":46,"name":"orm"},{"id":52,"name":"os"},{"id":14,"name":"parser"},{"id":74,"name":"react"},{"id":82,"name":"real-time"},{"id":56,"name":"robot"},{"id":65,"name":"runtime"},{"id":32,"name":"sdk"},{"id":71,"name":"search"},{"id":63,"name":"secrets"},{"id":25,"name":"security"},{"id":85,"name":"server"},{"id":86,"name":"serverless"},{"id":70,"name":"storage"},{"id":75,"name":"system-design"},{"id":79,"name":"terminal"},{"id":29,"name":"testing"},{"id":12,"name":"ui"},{"id":50,"name":"ux"},{"id":88,"name":"video"},{"id":20,"name":"web-app"},{"id":35,"name":"web-server"},{"id":43,"name":"webassembly"},{"id":69,"name":"workflow"},{"id":87,"name":"yaml"}]" returns me the "expected json"