This 2025 I decided to start learning how to code, so I installed Visual Studio and I started looking into C++. After days of watching tutorials and guides about the basics of C++ and programming, I decided to make something physics-related. I started with a dot that fell to the ground and then I wanted to simulate gravitational attraction, so I made 2 circles attracting each other. I thought it was really cool to see something I made with code actually work, so I kept building on top of that small, basic program. And here we are after roughly 8 months of learning programming. This is Galaxy Engine, and it is a simulation software I have been making ever since I started my learning journey. It currently can simulate gravity, dark matter, galaxies, the Big Bang, temperature, fluid dynamics, breakable solids, planetary interactions, etc. The program can run many tens of thousands of particles in real time on the CPU thanks to the Barnes-Hut algorithm, mixed with Morton curves. It also includes its own PBR 2D path tracer with BVH optimizations. The path tracer can simulate a bunch of stuff like diffuse lighting, specular reflections, refraction, internal reflection, fresnel, emission, dispersion, roughness, IOR, nested IOR and more! I tried to make the path tracer closer to traditional 3D render engines like V-Ray. I honestly never imagined I would go this far with programming, and it has been an amazing learning experience so far. I think that mixing this knowledge with my 3D knowledge can unlock countless new possibilities. In case you are curious about Galaxy Engine, I made it completely free and Open-Source so that anyone can build and compile it locally! You can find the source code inGitHub
When you’re working with binary data in Python—whether that’s image bytes, network payloads, or any in-memory binary stream—you often need a file-like interface without touching the disk. That’s where BytesIO from the built-in io module comes in handy. It lets you treat a bytes buffer as if it were a file.
What Is BytesIO?
Module:io
Class:BytesIO
Purpose:
Provides an in-memory binary stream.
Acts like a file opened in binary mode ('rb'/'wb'), but data lives in RAM rather than on disk.
Ideal for testing code that expects a file-like object.
Safety
No temporary files cluttering up your filesystem.
Integration
Libraries that accept file-like objects (e.g., PIL, requests) will work with BytesIO.
Basic Examples
1. Writing Bytes to a Buffer
from io import BytesIO
# Create a BytesIO buffer
buffer = BytesIO()
# Write some binary data
buffer.write(b'Hello, \xF0\x9F\x98\x8A') # includes a smiley emoji in UTF-8
# Retrieve the entire contents
data = buffer.getvalue()
print(data) # b'Hello, \xf0\x9f\x98\x8a'
print(data.decode('utf-8')) # Hello, 😊
# Always close when done
buffer.close()
Marigold repurposes Stable Diffusion for dense prediction tasks such as monocular depth estimation and surface normal prediction, delivering a level of detail often missing even in top discriminative models.
Key aspects that make it great: – Reuses the original VAE and only lightly fine-tunes the denoising UNet – Trained on just tens of thousands of synthetic image–modality pairs – Runs on a single consumer GPU (e.g., RTX 4090) – Zero-shot generalization to real-world, in-the-wild images
Generate New Camera Angles Generate the Next Shot Use Any Style to Transfer to a Video Change Environments, Locations, Seasons and Time of Day Add Things to a Scene Remove Things from a Scene Change Objects in a Scene Apply the Motion of a Video to an Image Alter a Character’s Appearance Recolor Elements of a Scene Relight Shots Green Screen Any Object, Person or Situation
For years, tech firms were fighting a war for talent. Now they are waging war on talent.
This shift has led to a weakening of the social contract between employees and employers, with culture and employee values being sidelined in favor of financial discipline and free cash flow.
The operating environment has changed from a high tolerance for failure (where cheap capital and willing spenders accepted slipped dates and feature lag) to a very low – if not zero – tolerance for failure (fiscal discipline is in vogue again).
While preventing and containing mistakes staves off shocks to the income statement, it doesn’t fundamentally reduce costs. Years of payroll bloat – aggressive hiring, aggressive comp packages to attract and retain people – make labor the biggest cost in tech. …
Of course, companies can reduce their labor force through natural attrition. Other labor policy changes – return to office mandates, contraction of fringe benefits, reduction of job promotions, suspension of bonuses and comp freezes – encourage more people to exit voluntarily. It’s cheaper to let somebody self-select out than it is to lay them off. …
Employees recruited in more recent years from outside the ranks of tech were given the expectation that we’ll teach you what you need to know, we want you to join because we value what you bring to the table. That is no longer applicable. Runway for individual growth is very short in zero-tolerance-for-failure operating conditions. Job preservation, at least in the short term for this cohort, comes from completing corporate training and acquiring professional certifications. Training through community or experience is not in the cards. …
The ability to perform competently in multiple roles, the extra-curriculars, the self-directed enrichment, the ex-company leadership – all these things make no matter. The calculus is what you got paid versus how you performed on objective criteria relative to your cohort. Nothing more. …
Here is where the change in the social contract is perhaps the most blatant. In the “destination employer” years, the employee invested in the community and its values, and the employer rewarded the loyalty of its employees through things like runway for growth (stretch roles and sponsored work innovation) and tolerance for error (valuing demonstrable learning over perfection in execution). No longer. …