Suramya's Blog : Welcome to my crazy life…

May 13, 2026

Godfather of digital forensics creates a guide to identify Deepfakes

Filed under: Artificial Intelligence,Interesting Sites,My Thoughts — Suramya @ 9:39 PM

After Photoshop was released in 1990 and more and more people started using it to create fake/morphed photos in the subsequent years there was a big panic about not being able to trust photo’s as evidence or logging of truth because they could be modified and it was hard for the average user to quickly identify fake images. But over the years a whole lot of people put their minds together and created guidelines that folks could use to see if a photo was edited or not.

Now a little over 3 decades later AI generated images are becoming more and more prolific and it is hard for average users to identify real images vs generated ones. Hany Farid, who is known as the Godfather of digital forensics has been looking into this problem and has created a guide that can be used to determine whether a photo or video has been manipulated or deepfaked over at Science.com: Reality Check, where he talks about various techniques that can be used to identify fake images using examples.

It is a pretty well written article and I highly recommend everyone read it so that you have some idea on how to identify fake images.

– Suramya

May 11, 2026

China’s Iron Battery Prototype is 80 times cheaper than lithium and can last 16 years

Filed under: Emerging Tech,My Thoughts — Tags: , , — Suramya @ 2:39 AM

One of the biggest problems with any of the renewable power sources is that we need batteries to store the power generated so that it can be used when the solar/wind etc is not able to generate power for whatever reason (its night or no wind etc). Battery capacity limits the amount of power that can be stored and the charge time required limits how much power can be stored. Another major issue is that the current generation of batteries are Lithium based which is a rare mineral and mining it has significant environmental footprint, primarily involving excessive water consumption, habitat destruction, and carbon emissions. Keep in mind that the impact is less than the impact of burning hydrocarbons but still it is an issue.

The second issue is that because it is relatively rare mineral the countries that have deposits can potentially limit/control access the same way the middle-eastern countries control access to Petroleum and as you can guess this significantly increases the chance of conflict over the minerals. So using alternate materials in battery manufacture is something pretty much every country in the world is working on.

Earlier this month, China announced that they have created an Iron Battery that maintains a stable structure and perfect reversibility over 6,000 cycles with almost zero loss in storage capacity. If this is true then this completely changes the battery landscape opening the door for cheap and efficient batteries that are 80 times cheaper than a lithium battery.

The battery prototype demonstrated endurance, maintaining a stable structure and perfect reversibility over 6,000 cycles — equivalent to more than 16 years of daily operation — with zero loss in storage capacity.

Throughout this period, the system remained free of harmful by-products or sediment while achieving a 99.4 percent leak-proof efficiency. Even at high power outputs, it retained 78.5 percent of its energy efficiency, proving that the design is both reliable and durable.

Source:
* @danslerush@floss.social
* scmp.com: China unveils ultra-cheap ‘all-iron flow battery’ for renewable energy storage

– Suramya

May 6, 2026

What is Vibe Coding?

Filed under: Artificial Intelligence,My Thoughts — Suramya @ 10:25 AM

I have talked about Vibe coding in a lot of my posts about AI and I just realized that some of the readers of my Blog Posts might not actually know what it means. ACM (Association for Computing Machinery) recently shared a Tech Brief on Vibe Coding (AI-Assisted Software Development, or Vibe Coding: Benefits and risks of AI-driven Software Development) that gives a good high level overview along with the benefits and risks associated with the practice so I am sharing it here.

You can download/view the PDF version of the document at: Vibe Coding: Benefits and risks of AI-driven Software Development.


AI-Assisted Software Development, or Vibe Coding: Benefits and risks of AI-driven Software Development
by simson Garfinkel, mohan sankaran, rohan sharma, Shrinivass Arunachalam Balasubramanian, Arpan Pandey, and Aruun Kumar

AI-Assisted Software Development, often referred to as “Vibe Coding,” is the practice of using Generative Artificial Intelligence to create or modify software systems in which humans describe what they want to build or modify, and an AI coding assistant writes and debugs computer code. Several popular vibe coding systems are built on top of Agentic AI systems, an “approach of making AI systems capable of setting or refining plans and executing tasks with minimal or
no human oversight”

Vibe Coding Benefits
Vibe coding enables people with little or no coding experience to create highly functional applications [2]. It can also assist experienced programmers by generating code that leverages complex application programming interfaces (APIs), a hallmark of modern software development.

Because vibe coding lets developers spend less time writing code, they can focus on higher-level concerns like design, user experience, and other creative problem-solving. Vibe coding might thus shift developer effort from time-consuming implementation toward higher-level design and intent specification.

Many developers report feeling more productive when using AI to generate code [3], especially with mundane programming tasks that do not require significant creativity [4], although these reports are subjective and may not be borne out by empirical measurements over time.

Vibe Coding Risks
Software engineering’s established practices produce systems that are generally secure, reliable, and maintainable. Vibe coding circumvents these practices. While it can produce code that meets immediate requirements for style, conventions, and targeted (“unit”) tests, it does not produce well-designed software systems. Because many of these systems have been trained on data that includes cybersecurity vulnerabilities, there is a risk that they will replicate these in the code that they generate [5, 6].

A core principle of modern software development is that a program’s functions and behavior need to be specified in advance. “A program that has not been specified cannot be incorrect, it can only be surprising” [7]. AI-generated code typically lacks specifications. Even when specifications are provided, many of today’s vibe coding platforms lack mechanisms to enforce them. As a result, AI-generated code drifts away from stated requirements, including core functionality.

Few vibe coding platforms systematically test their AI-generated code to ensure it runs correctly and consistently [8]. Although it is possible to give these systems acceptance tests for the code they generate—or even have them generate their own tests—AI systems have been observed to modify, disable, or simply remove such tests rather than correcting
their code [9, 10].

Vibe coding platforms often produce over-engineered solutions with redundant code and subtle errors that create maintenance nightmares, known as “technical debt” [11]. Entry-level programmers do this as well, but they are typically supervised by senior programmers when code is critical. Entry-level programmers often seek to improve their skills and
are penalized if they try to subvert internal controls. AI-generated code, in contrast, is frequently unaudited, and there is no way to penalize a misbehaving AI. This can result in code that is, paradoxically, maintainable only by AI: the sheer volume and complexity of AI-generated code make manual code review impractical, increasing the likelihood that
undetected errors slip into production.

Recently, many vibe coding platforms have added “agentic” features that go beyond software development, allowing the platform to run programs on the software developer’s behalf, often without the human first reviewing and approving the program’s execution. This can make users more productive, since the platform can operate more quickly without
human intervention. However, it also lulls the user into granting the platform increased authority to run new executables without explicit review.

The agentic platforms can typically execute these programs not only on users’ computers but also on any computer reachable over their network. This leaves the users and their networks at risk if the AI executes commands users did not intend. For example, deleting critical information, sending confidential information outside the enterprise security
perimeter, downloading and executing software from the Internet, or reconfiguring computers so they become susceptible to intrusion. Vibe coding platforms can also be vulnerable to “prompt injection attacks” when third parties embed malicious commands in software that are interpreted as instructions from the programmer [12].

Vibe coders may generate significantly more CO2 emissions than traditional programmers. This is often debated, as vibe coding produces code faster than humans do, and in small-language models, the total energy difference between AI and prolonged code development could be comparable. But because vibe coding often overproduces code, it still
requires human intervention to refine and optimize. Energy consumption with “standard, widely-used models is far more environmentally strenuous” [13].

Vibe coding may also have long-term negative effects on skill development in the programming profession. An internal study from a major AI provider found that students and early-career programmers using vibe coding showed decreased mastery of sophisticated programming concepts and skills [14]. In educational settings, students with advanced pro-
gramming skills were more likely to succeed in building a program with AI assistance, whereas students with less coding experience were less likely to do so, indicating that instruction in fundamental programming concepts remains necessary.

Vibe coding may thus contribute to a hypothesized “experience gap,” in which AI automates many early-career skills that are both drudgery for more experienced programmers and a necessary step in building mastery. Such skills include simplifying redundant code, porting code to new environments, and the routine addition of simple features, which
typically require a programmer to first understand the codebase. Some studies have shown significant cognitive erosion resulting from AI tools, although they did not specifically consider vibe coding [15, 16]. Nevertheless, by eliminating opportunities for junior programmers to become senior while simultaneously deskilling those later in their careers,
increased AI use in software development may paradoxically contribute to a shortage of more experienced workers.

Conclusion

It is unclear what vibe coding means for the future of programming or the economic outlook for the programming profession. While the job market for programmers appears to be cooling [17], some studies find that junior developers see the biggest impact of vibe coding, which makes it less likely they will themselves be replaced with AI agents [18].
Vibe coding can make expert developers more productive and allow novice developers to create and deploy working apps, but current platforms do not enforce modern software engineering practices. The core issues are systemic: these platforms do not create formal specifications and frequently ignore them when provided; they do not systematically test
their outputs and may remove/modify failing tests rather than address the underlying problems; and they generate code that becomes maintainable only by AI, not by human developers. The same mechanism responsible for these failures — the lack of a rigorously enforced semantic model that allows AI systems to validate their outputs — is also responsible for AI hallucinations more broadly. Because of these fundamental limitations, vibe coding requires that users and organizations compensate with improved technical checks and governance mechanisms to avoid predictable failure modes.

Existing techniques for improving code quality can be applied to both human- and AI-generated code. This includes the use of mathematical verification and other formal methods and techniques [19], as well as new work on developing specially tuned AI models adept at finding security vulnerabilities [20]. Such techniques will be needed to make vibe
coding a cost-effective and secure alternative to traditional software development.

Hopefully you found this as useful as I did to understand Vibe-Coding, what it means and how it impacts software development.

– Suramya

May 4, 2026

Some more thoughts on AI

Filed under: Artificial Intelligence,My Thoughts — Suramya @ 9:25 AM

Was talking to a friend working in a startup with an AI focused product and asked him how is AI helping them. He answered that it allows them to make releases faster. You should have seen the look on his face when I asked “so what? Are the releases bug free? Do they solve the business requirement without errors?” It blew his mind when I asked this and he told me they can now release the fix faster.

The above behavior is typical when you talk to AI proponents. The main selling point for them is that you can release faster. My counterpoint is that are the faster releases solving business problems faster? Or allowing you to push out fixes for stuff that doesn’t work/broke in production because you didn’t check it correctly? If it is the former then fantastic. That is what I need AI to help me do, nut if it is the latter then it is of no use to me or the business. People forget that IT is not there in a company to try out the latest tools or use the latest technologies. It is there to solve business problems and deliver solutions that help business proceed. If this means using a 30 years old technology because ‘it just works’ then that is what you do. Whatever we do that doesn’t give fast, reliable and efficient releases is of no use.

Taking the example of being able to release faster. It is awesome if I can release features faster to production, but if the release introduces bugs or breaks functionality it is worse than a slow release because till the fix is deployed their work is stuck or they are getting wrong information which means that the work needs to be redone post the fix being deployed. How is that a win for the business? Sure, in some cases it is a genuine win because you released a feature faster but in a majority of vibe-coded instances it is something that kind-of-sort-of works and you have to go back and release a fix because something broke. This is apparent in the stability and uptime of every single application/site that has boasted of using vibe-coding be it Microsoft with its multiple bug-fix releases, Twitter going down almost daily, Amazon services going down because of AI release deleting production data and many other such examples.

Another issue that people don’t really think about is maintainability of code. People tend to thing that code can easily be replaced with newer code when we need to, but the people who think like that never had to work with 30 years old legacy code that can’t be replaced because it is running critical systems and it is too expensive to replace. Every bank I have worked in has ongoing multi-year project to replace mainframes with newer systems. Think about that, mainframes are older than I am still run critical banking systems worldwide. Similarly we have other critical systems that run old code that has to be managed and with AI generated code that is difficult to achieve if you have not reviewed/updated/understood the code on an ongoing basis. It does get things to a working state (most of the time) but it also in a lot of cases create code that is very hard to maintain. For example, the below screenshot was posted on the vibecoding reddit a little while ago and this is similar experiences faced by others in the industry when they do pure vibe-coding.

Alt-Text in Blockquotes below the image

r/vibecoding ( 19h ago )
vibe coded for 6 months. my codebase is a disaster.

the app works. users are happy. revenue is coming in.( that’s
actually the only good part)

but i just tried to onboard a dev to help me and he opened
the repo and went quiet for like 2 minutes. then said “what is
this.”

6 months of cursor and lovable and bolt. every feature
worked when i shipped it. but nobody was thinking about
structure. the Al just kept adding. new file here, duplicate
function there, 3 different ways to handle the same thing
across the codebase.

tried to refactor it myself last week. gave up after 2 hours.
the thing is so tangled that touching one part breaks
something completely unrelated.

the generation was fast. the cleanup is a nightmare.

is there even a way out of this or do i just rewrite everything from scratch?

Finally, if AI/LLM’s were so good and perfect in generating code you wouldn’t need an industry wide media campaign to get people to use it, folks would use it on their own without companies having to track the usage and incentivize it. I have been coding for 28+ years now and have seen multiple advances/changes in how we code over the years. For example when IDE’s started supporting auto-complete for boiler-plate stuff people immediately started using it. When git came out folks started using it and immediately found it useful so no push was needed to get people to adopt the new tool. The same folks then pushed their work IT teams to start supporting git in the enterprise. If Microsoft/Amazon and other companies have to mandate their teams to use AI then it looks like the rank and file are not finding the tools to be that useful.

Personally I love it for Proof of Concept or quick and dirty prototyping/trying out new things. But before any code that is AI generated goes into production you need to ensure it is reviewed by a human who knows coding.

– Suramya

April 13, 2026

Legendary singer Asha Bhosle passed away over the weekend

Filed under: My Thoughts — Suramya @ 4:43 PM

Asha Bhosle died over the weekend after being admitted to a hospital on Saturday after allegedly suffering from exhaustion and chest infection. At 92 years she was one of the greatest singers of multiple generations with only her elder sister Lata Mangeshkar coming close (or surpassing her depending on who you ask). She sang over 12,000 songs over seven decades in over 20 languages. She has been recognized by the Guinness World Records in 2011 as the most recorded artist in music history. Her songs are evergreen and she will not be forgotten easily.

I had the chance to hear her sing live back in 2018 and it was a phenomenal experience. Her grace, simplicity and above all the simple range of her voice was an experience that I will never forget.

Her funeral is today in Mumbai and thousands flocked to say their farewells to a legend.

It is sad that she is no more but no one can doubt that she lived her life fully and made it better for everyone around her through her music and kindheartedness.

– Suramya

February 25, 2026

Found the perfect gift for the next Rakhi

Filed under: My Thoughts — Suramya @ 7:53 PM

Thinking of getting this as a gift for Surabhi for the next Rakhi. 😀

Photo of a scary looking creature with the caption: Wanna take a nap? Sure, let me get you a pillow.
Wanna take a nap? Sure, let me get you a pillow.

Do you think I will survive gifting this?

– Suramya

February 24, 2026

You can now run an actual x86 Simulator in a Browser using CSS without any Javascript

Filed under: Tech Related — Suramya @ 3:43 PM

When I think of CSS (Cascading Style Sheets) I think of it as a way to change presentation and styling of a web page, but it looks like it is a full fledged programming language now that can run an entire x86 CPU emulator without using any Javascript.

Lyra Rebane managed this feat where you can write programs in C, compile them to x86 machine code with GCC, and run them inside CSS. A demo is available at: https://lyra.horse/x86css/. The demo doesn’t work in Firefox but works great in Chrome/Chromium based browsers.

Lyra is going to post a blog in the near future explaining how it all works and I for one am eagerly waiting for it because this is a phenomenal achievement.

How??

I plan on writing a blog post that explains how this works as well as many of the tricks used. Bookmark my blog or add it to your RSS reader.
Surely you still need a little bit of JavaScript?

Nope, this is CSS-only!

There is a script tag on this site, which is there to provide a clock to the CSS – but this is only there to make the entire thing a bit faster and more stable. The CSS also has a JS-less clock implementation, so if you disable scripts on this site, it will still run. JavaScript is not required.

My CSS clock uses an animation combined with style container queries, which means you don’t need to interact with anything for the program to run, but it also means its a bit slower and less stable as a result. A hover-based clock, such as the one in Jane Ori’s CPU Hack, is fast and stable, but requires you to hold your mouse on the screen, which some people claim does not count as turing complete for whatever reason, so I wanted this demo to be fully functional with zero user input.

Source: @rebane2001@infosec.exchange

– Suramya

February 18, 2026

Self driving cars & automated drones are vulnerable to Prompt Injection Attacks Via Road Signs

When I started working with computers way back in 1995, one of the first lessons I learnt was to keep things simple because the more complicated or more layers you have in your system the more ways there are for things to go wrong and more attack surfaces are available for a bad actor to target. This was called the KISS (Keep It Simple Stupid) principle. With the current systems adding more and more complexity it feels like people have stopped following that advice. Especially with LLM/AI getting added there is a layer of complexity that is like a black box because we can’t know enough about the model being used, such as what data was used to train it, what biases are included (knowingly or unknowingly) into the model etc.

Where cars used to be simple mechanical devices they are now instead computers on wheels that are getting more and more complicated. As per IEEE, a typical car may use 100 million lines of code and this is without AI/Self Driving systems coming into the picture.

We now have AI systems running on Cars that use models to drive cars, decide when to stop and what rules to follow. To explore the risk, researchers at the University of California, Santa Cruz, and Johns Hopkins tested the AI systems and the large vision language models (LVLMs) underpinning them and found that they would reliably follow instructions if displayed on signs held up in their camera’s view. This research adds to the growing list of evidence that AI decision-making can easily be tampered with, which is a major concern because a lot of decisions are slowly being outsourced to these “AI” systems some of which can have serious consequences.

The researchers have published their findings in a paper where they introduce CHAI (Command Hijacking against embodied AI), a physical environment indirect prompt injection attack that exploits the multimodal language interpretation abilities of AI models.

Abstract: Embodied Artificial Intelligence (AI) promises to handle edge cases in robotic vehicle systems where data is scarce by using common-sense reasoning grounded in perception and action to generalize beyond training distributions and adapt to novel real-world situations. These capabilities, however, also create new security risks. In this paper, we introduce CHAI (Command Hijacking against embodied AI), a new class of prompt-based attacks that exploit the multimodal language interpretation abilities of Large Visual-Language Models (LVLMs). CHAI embeds deceptive natural language instructions, such as misleading signs, in visual input, systematically searches the token space, builds a dictionary of prompts, and guides an attacker model to generate Visual Attack Prompts. We evaluate CHAI on four LVLM agents; drone emergency landing, autonomous driving, and aerial object tracking, and on a real robotic vehicle. Our experiments show that CHAI consistently outperforms state-of-the-art attacks. By exploiting the semantic and multimodal reasoning strengths of next-generation embodied AI systems, CHAI underscores the urgent need for defenses that extend beyond traditional adversarial robustness.

Potential consequences include self-driving cars proceeding through crosswalks without regard to humans crossing it, taking passengers to a different destination (potentially allowing bad actors to kidnap people), getting the car into an accident by forcing it to ignore traffic rules/oncoming traffic.

Source: schneier.com: Prompt Injection Via Road Signs

– Suramya

February 17, 2026

25th Anniversary of “All your base are belong to us”

Filed under: My Thoughts — Suramya @ 12:15 PM

25 years ago, one of the first Internet meme’s took the net (and real life) by the storm. I am talking about “All Your Base Are Belong To Us” which was making fun of a bad translation of a Japanese videogame.

In honor of the anniversary Jamie Zawinski, downloaded the original Flash SWF file from Internet Archive, played it using Ruffle in a full-screen window, and replaced the audio with the original MP3 of “Invasion of the Gabber Robots” by The Laziest Men on Mars. The updated/clean version is now posted on Youtube and you can watch it in all it’s glory there:


All your Base are belong to us

Transcript:

Captain: What happen ?
Mechanic: Somebody set up us the bomb.
Operator: We get signal.
Captain: What !
Operator: Main screen turn on.
Captain: It’s you !!
CATS: How are you gentlemen !!
CATS: All your base are belong to us.
CATS: You are on the way to destruction.
Captain: What you say !!
CATS: You have no chance to survive make your time.
CATS: Ha ha ha ha …
Operator: Captain !!
Captain: Take off every ‘ZIG’!!
Captain: You know what you doing.
Captain: Move ‘ZIG’.
Captain: For great justice.

Folks nowadays are so used to things going viral that it is hard for them to realize how big of a phenomenon this was (along with the Alien song). I have posted about this earlier as well. Talking about it has made me want to look up the Alien Song, so will do that now.

That’s all for now. Will post more later.

Source: jwz.org: All Your Base, slight remaster (via: mastodon.social)

February 13, 2026

New Playable class added to Diablo II 25 years after last update

Filed under: My Thoughts,Tech Related — Suramya @ 1:26 AM

Diablo II is one of my all time favorite games and I have been playing it on and off since it first released back in 2000. The game had five character classes when it first launched and two more classes were added in the expansion Diablo II: Lord of Destruction released a year later.

Now 25 years later Diablo II a new playable class called ‘Warlock’ is coming to Diablo II as part of the ‘Reign of the Warlock‘ expansion. In addition to the new character class the update also has new quests, Terror Zones etc.

Fresh from the gates of the Burning Hells, the Reign of the Warlock is upon us! This major update brings the Warlock, the first new playable class to Diablo II in 25 years. The Warlock is a mysterious, dark scholar who’s spent years studying their taboo craft in the shadows, but no longer. Wield their awesome power to bind demons and wreak havoc upon your foes.

Reign of the Warlock brings fresh new Terror Zones, fearsome Colossal Ancients to conquer, alongside player requested quality-of-life changes, and more. Use this powerful new class to carve through the demon hordes, using your dark arts to dominate your foes.

It shows how popular the game is when the studio releases an update with new content to a 26 year old game.

Source: @arstechnica@mastodon.social

Older Posts »

Powered by WordPress