Why I do not use generative AI for prototyping

I often hear people say generative AI is useful for prototyping because it speeds up prototype creation. I strongly disagree with this, although I acknowledge that the speed gains from generative AI.

Protoypes should not be created in isolation. Talking to potential users will help guide what you prototype should do. AI lacks the ability to consider subjective user preferences that are described. While a AI prototype will be functional, it will do a poor job considering user preferences. AI also lacks the ability to convey the meaning of a prototype’s developer.

Quickly creating a prototype with generative AI can give a false impression about the state of a product. The prototype will need to be rewritten as AI is incapable of developing and maintaining user-facing software on it’s own. However, people will judge how quickly a final product can be delivered by the visual state of the prototype and how quickly it was made.

For example, for my website dmvboardgames.com, I made a logo using meeples to draw letters. and I use meeples elsewhere on the site. Meeples are used in many popular modern board games such as Carcassone. People typically think of games such as Monopoly when they hear about board games. I wanted a way to convey that my site was focused on events for modern board games, and didn’t want to use a more traditional board game symbol such as dice.

I also created a hexagonal background with light versions of colors similar to the ones used on the Catan board. Catan is a classic well-known example of a modern board game.

I had talked to enough people who played modern board games to know they were familiar with what a meeple looked like. I also realized that many people who didn’t play board games were somewhat familiar with Catan. Generative AI cannot talk to board game players or come up with a relevant design for a background. Users have also found that the hexagons and meeples looked interesting, even when they didn’t recognize what the represented.


I found a blog post that gives a great detailed overview on the problems with generative AI prototyping: https://www.frank.computer/blog/2026/03/prototyping-bottleneck.html

My thoughts on AI

I think AI has a variety of great use cases. It has demonstrated consistent utility in tasks-specific applications such as email spam filtering and weather forecasting.

On the other hand, I think LLM AI tools such as ChatGPT and Claude are scams. While some people are seeing practical use from LLMs, it is because of artificially low costs. LLMs are currently being subsided by billions of dollars in corporate investment and exploited labor.

I see LLMs in a manner similar to playing blackjack at a casino that gives you $10 every time you win, regardless of how much you bet. Following certain strategies will allow you to win more often, but you will still lose sometimes. Also, casinos are trying to make a profit, and aren’t going to hand people large sums of free money forever.

Using an LLM for the possibility of gaining a temporary productivity boost seems like a big risk for me. I don’t want to be dependent on a tool that doesn’t have clear bounds on where it is used and could become more expensive. Also, I see considering one”s audience as a critical part of high quality work, and LLMs lack the ability to understand humans.

I went through a period of overusing AI in the early 2010s because I overestimated the potential of AI. For example, I was under the impression that I could evolve intelligent AI for a real time strategy game through a genetic algorithm that simulated evolution. I was proven wrong when hitting a wall early in the process with automated formula generation.

Being in the right environments at the time helped me gain a more reasonable view of AI. Most of my computer science classes were about topics not related to AI, and my classmates rarely talked about AI. Also, AI was not a major focus at any of the jobs I had between graduating college in 2014 and ChatGPT’s release in late 2022. As a result, I was able to move away from AI overuse.

On the other hand, if I was in a college program or job where AI use was a major focus, I would’ve had a hard time moving away from AI overuse. I think it is important to consider that many people are currently in environments where using LLMs is a requirement.

In order to reduce AI overuse, I think it is important to help create environments where people can chose to not use LLMs.


This page has more details about my thoughts on AI. https://www.bponnaluri.com/ai/

There is more to improving social media than building a better Facebook

The quality of Facebook has declined significantly in the past 15 years. Back in 2011, it was a great place to keep in touch with friends, share photos, and organize events. Now Facebook feeds are full of advertisements and content from random strangers people decided not to follow, and the site is designed to keep people online.

Building a people-centric social media website that helps people keep in touch and organize events isn’t simply a matter of building a better Facebook. Many people have built social media websites that are better than Facebook, but they have either failed to be Facebook replacements, or they have been turned into sites designed to keep people online.

My experiences trying to build a better Facebook

I created a website to advertise local board game events at dmvboardgames.com. I want people to use the site to find board game events where they can meet people and make friends. While it is functionally useful as a specialized alternative to Facebook, that is not enough. Many people are used to finding events on Facebook, and they have no way of knowing that dmvboardgames.com exists. I’ve spent time actively reaching out to people who play board games to let them know about dmvboardgames.com, and I will need to continue in order to make sure people know about the site.

People are also rightfully concerned about dmvboardgames.com using their data, and many are under the impression that the site is following the Silicon Valley model of get customers first, and then monetize. All code for the site is open source, and I will be running the site indefinitely as a non-commercial website that does not make a profit. It takes time for me to demonstrate that the website is different from a Silicon Valley startup.

Dmvboardgames.com also doesn’t follow many of the typical practices of a Silicon Valley tech company. For example, dmvboardgames.com does not have an official social media presence on Facebook, LinkedIn, or other similar websites. Also, all code written for dmvboardgames.com was written without the help of generative AI, and the use of generative AI for future contributions is banned. While I believe it’s best to keep following these practices, it does make it harder to reach out to people, since they aren’t used to the practices dmvboardgames.com follows.

Why building a better Facebook isn’t enough

There are many reasons why simply building a functioning alternative to Facebook isn’t enough. I think the biggest reason is cultural norms that have developed around the tech industry. They incentivize a focus on trying to monetize users as much as possible, while manipulating them into tolerating declining quality.

Network effects are a factor in keeping Facebook around, since many people find Facebook as a convenient way to keep in touch with friends and family. However, network effects aren’t enough due to the current quality of Facebook and the fact that many people including myself have already stopped using Facebook.

Many people are aware of the user-hostile cultural norms. This leads them to mistrust new alternatives, From their perspective, a new alternative to Facebook is going to become just as bad. People will chose to use Facebook because it is familiar, and there are known workarounds to problems such as seeing unwanted suggestions. On the other hand, if a new alternative to Facebook becomes just as bad, it will take time for people to find workarounds to problems that arise.

Cultural norms end up affecting the people working at tech companies. They are pushed to ignore their sense of ethics and prioritize corporate tech profit. Tech companies are also reliant on venture capital(VC) funding to get started. A VC firm ends up gaining partial ownership of the company. Through this partial ownership, VC firms will push a tech company towards additional monetization to gain investment returns.

Founders of tech companies are not immune from this cultural push to monetize. I believe that most tech company founders, including billionaires Jeff Bezos, Mark Zuckerberg, Peter Thiel, and Sam Altman are fundamentally decent people. However, they have an ongoing history of greed and manipulation and that is rewarded by their environment. It is practically impossible to successfully run a major tech company using Silicon Valley norms and maintain a sense of ethics.

What else needs to be done

Future for-profit tech companies should avoid Silicon Valley and find an alternative to venture capital funding. Also, I think more tech projects should be created by nonprofits.

However, this isn’t going to be enough. These companies need leadership not influenced by Silicon Valley tech norms, and they need support from a more people-centric environment. The toxic norms of the tech industry that came from Silicon Valley have spread across the US. They have widespread influence among regular people outside of the tech industry.

In summary, convincing Americans to adopt a less pro Silicon Valley mindset is an essential part of making sure we end up with a better Facebook.

Retrospective on board game night and advertising events

Yesterday, I hosted a successful Friday board game night at City-State Public House in DC and realized I need to change the way I advertise events.

The event was advertised on Meetup and City-State’s website. I was concerned about attendance at the event because there were no RSVPs on Meetup besides mine. After arriving at City State, I sat down with my games, and thought I would go home after a while if nobody else showed up. At the time, I thought one other person showing up would be a success.

To my pleasant surprise, 10 other people showed up. One person said they found out about the event through City State’s website. Two of their friends also came, which suggested word of mouth helped advertise the event. Other people either saw the event on Meetup and didn’t RSVP or heard about the event somewhere else.

I also spoke with 2 people who were part of the Meetup group I hosted the event through, and they were not aware of the game night I was hosting.

Despite the success of the event, attendance did not reflect the level of interest people had in playing board games. A group that used to host Friday game nights at City-State had more than 20 people show up. I also used to host Friday game nights at another location for around 50 people.

Attendance and people’s awareness of the event showed me evidence of the following patterns.

  • People often find out about events through word of mouth
  • Meetup has become far less useful for promoting events compared to 4 years ago.

Here are lessons I learned about promoting events I host in the future.

  • There is a lot of information on the Internet, which makes information about an event hard to notice. If an event is noticeable, that also means it is more likely to attract unwanted bot traffic
  • It is useful to advertise events on a website for a specific location, because there is less extraneous information. Also, some people want to go to an event because of the location due to some combination of convenience, the overall vibe, and the possibility of seeing people they know.
  • Although advertising events online is useful , offline advertising is better. Online event advertising can come across as impersonal, assuming there are no distractions from other information. Focusing on impersonal promotion goes against the way I want my events to be run. For example, if I hosted a board game night for 60 people where everyone played games in silence and said absolutely nothing during the event, I would see that event as unsuccessful. While board games are the main focus of my events, I don’t want people seeing my events purely as board game optimization opportunities. I want people to make casual conversation.

Flexibility of deciding to solve problems with software

As someone with programming experience, I think it’s important to have flexibility to decide if if a problem should be solved with software. Focusing on only addressing problems with software is limiting and leads to ineffective low quality solutions.

I have been focusing on addressing the problem with a lack of accessible public spaces known as third places. I want to drive up demand for third places by showing people how great they are, and by encouraging other people to get involved in promoting them.

I have been trying a variety of things including working on two non-commercial open source software projects. One is a JavaScript framework for building websites that facilitate interactions in third places. The other is a decentralized platform for hosting in person events. However, most of my success has come from in person interaction.

Problems

I have been hosting regular Sunday board game events in third places since 2021. Until recently, many of my events had challenges with people not getting along or disagreements about what to play. I had tried many solutions with mixed degrees of success, and decided to make events more focused.

I labelled the events as “High Interaction board games”, and decided that longer games should start later in the afternoon. During the first hour of an event, quick social games would be played while people ate lunch. Later, I narrowed down events to focus on 1-3 hour high interaction resource management game.

Afterwards, things started to improve. Events stopped having constant issues with people not agreeing on games to play, and personality conflicts largely disappeared. Also events started having a more consistent and predictable experience. Playing a more predictable set of games meant that teaching was easier because other people could help, and I could get good at teaching the same game by playing it repeatedly. Nowadays, 10-15 people typically attend, and they will help run events.

Due to help from others and fewer problems at events, hosting has become easier. The events have also become places where people will share information about other third places, and regulars are now far more likely to become friends. These events also demonstrate to other people that third places are great for hosting events for things they enjoy.

In person conversations have also given me great feedback on how to promote third places and take action.

Notes about tech industry.

The case for not criticizing people for using generative AI

While generative AI is a flawed technology that should not be used, I think we should avoid criticizing others for using it.

In the instances where people are using generative AI for malicious purposes, I think it’s better to focus on what they doing wrong instead of the generative AI use. For example, if a criminal is using generative AI to generate automated phishing email, they should be prosecuted for phishing. Criminals can create phishing emails without AI, so getting them to not use generative AI is not helpful.

Also, people can end up in situations where they have to use generative AI or aren’t familiar with why they shouldn’t use it. Criticizing them for using generative AI doesn’t help them find alternatives.

Some of my experiences with focusing too much on technology and a teacher’s unconventional approach.

From 2008 to 2010, I overused AI due to unrealistic expectations. I was working on my own real-time version of Risk, and I started focusing on making a skilled AI for it. My high expectations culminated with an attempt to use a genetic algorithm to make an AI through simulated evolution. I was able to get to the point where the algorithm could generate equations for specific numbers, and then progress stalled.

For a while, I focused on front-end development with React, and took the idea of building single page applications in React too far. This included building a static site listing board game groups using React. 

Also, I used to dismiss the importance of liberal arts subjects for a software engineer. In my high school, there was a math and computer science teacher, Michael Stueben who gave extra credit for writing book reports. I thought the idea of writing a book report for a math or computer science class was a waste of time, and I was not sure sure why Mr. Steuben was a fan of them.

Recently, I’ve come to the conclusion that asking computer science students to write book reports like Mr. Steuben is a great idea to practice written communication. Coding is only a small part of creating software. Communicating with others is an essential part of software development, and will likely take more time than coding. I’m currently working on a decentralized open source alternative to Meetup.com. There are days where I don’t write a single line of code because of a focus on communication.

Mr. Stueben also had a unique sense of humor and would make jokes completly unrelatd to computer science. Someone claimed he gave the following quiz, which was a logic puzzle.


DIRECTIONS: Choose the best answer to the following question from the choices below.

(Chinese text you don't need to know to solve it)

A. All of the below.
B. None of the below.
C. All of the above.
D. One of the above.
E. None of the above.
F. None of the above.

I also remember one conversation I had with a friend about the computer science at UC Berkeley. They mentioned that it was very hard to get into the engineering departments undergraduate computer science program. However, they mentioned that getting into the Letters and Science(Liberal arts version) was far easier. I thought that the idea of getting a liberal arts degree for computer science was not worthwhile.

How luck with getting good information helped me understand technology

During the peak of my AI overuse, I was also in the fortunate position of learning about fundamentals of AI through a class, which helped me develop a more realistic view of AI. Due to luck, I could have also found myself in a situation where I was not getting accurate information, and I think that is the case for many people today. Also, outside of some websites, I didn’t hear anything about genetic algorithms, so my unrealistic view of their use was not getting reinforced.

One of the factors that stopped my AI overuse in 2010 was learning about neural networks the AI class I was taking. Neural networks were presented as an innovative AI technology, and I thought that their resemblance to a human brain would make them better than genetic algorithms. I decided to spend time on my own trying to learn about neural networks, and learned that they had fundamental limitations on their effectiveness.

Having a good teacher, and being around motivated students who were eager to learn about AI helped. Also, the class was done in a computer lab run by student volunteers who setup all the computers to run Linux. During the multiple classes I took in the lab, students promoted an environment of trying different things and talking about newer tech.

Here are some examples showing other student’s interest in trying new things and thinking about tech.

  • I mentioned that I didn’t enjoy using a terminal, and then they tried to convince me that the terminal was more powerful. Now, I use the terminal far more often.
  • One student made a comment about using the recently released Microsoft Bing for search. Others started vocally calling Bing a joke. On a related note, I tried Bing around that time and found Google search to be better.
  • Someone started talking about the Go programming language shortly after it was announced. While they found Go interesting, they did not talk about actively using it. I appreciated their perspective about acknowledging a new technology while not immediately rushing to use it

When I heard about generative AI because of ChatGPT, I became concerned about a superintelligent AI developing that would take everyone’s jobs. I thought ChatGPT was using some new advanced technology. However, I then found out that ChatGPT and other generative AI tools were advanced neural networks. Afterwards, I started doing more research on generative AI and it became increasingly clear that the technology was flawed. If I didn’t learn about neural networks years earlier, I probably would have had a different and inaccurate understanding of generative AI.

In summary, I learned a lot about technology because of the environment I happened to be in. If I had the luck to live somewhere else with a different teacher and minimal interaction with other students, I would have a more limited understanding of technology. When someone is overusing AI, it is important to consider they have not been receiving correct information.

Other reasons why I avoid criticizing people for using generative AI

If someone is using generative AI, I think adjusting to working without AI involves short term challenges when getting used to different habits. Often, people may not have time to deal with these short term challenges due to other priorities. I’ve experienced a similar pattern across multiple jobs with tech debt that was slowing down development. However, we often did not have the time to refactor code and reduce tech debt because of other higher priorities. 

Also, people may be in situations where they have to use generative AI, even if they don’t like it. Working with others or doing a job sometimes required me using technologies I did not like. Software development is a team activity, and this means considering the preferences of other developers or requirements given to you.  For example, I have not enjoyed using AWS since I started using it close to 10 years ago. However, I’ve used AWS at my previous job because I was contributing to existing software deployed on AWS, and switching to a different cloud provider was not an option.

How I make sure generative AI is not used on my projects

I make sure new projects aren’t created with any generative AI help and establish a norm of not using generative AI. It becomes far more difficult to stop using generative AI for a project once it has started. Every one of my projects has been started with zero generative AI use, and I am not going to add generative AI to them. Also, I ban generative AI contributions on my open source projects.

Using task specific AI automation.

Although I don’t use generative AI, I think task specific AI automation is useful when clear quantitative expectations for input and output can be created, and the accuracy and be measured. Automation also has clear boundaries on where it will be useful.

For example, predicting the high temperature for the next day is a great use of AI. The accuracy of the AI prediction can be easily evaluated by comparing the prediction with the measured temperature, and being inaccurate by a few degrees is not a major issue. There is also a clear boundary between what the AI is doing, and what a human meteorologist is doing.

A meteorologist will read the prediction, and then can communicate relevant information and also the consequences of uncertainty.In the case where the predicted temperature is around 32 degrees, and a slight difference could mean rain, snow, or ice, a human meteorologist will communicate that uncertainty and mention the possibility of frozen precipitation so that people.

The cost of opening a board game café in DC

I’ve been interested in opening up a board game café in DC for a while. While I estimate that there is enough interest in board games in DC to sustain 10 or more board game cafés, I’m concerned about the difficulty of making a game store financially sustainable while it is getting established. Advertising a new store is going to be hard and it is going to be a while before the cafe earns enough to cover expenses.

In Virginia, I’ve noticed multiple game stores close, including Compleat Strategist and Game Parlor, and rents tend to be cheaper than DC.

This post is a rough estimate of how much it will cost to run a board game store in DC. It will be a lower bound as it does not consider taxes, or miscellaneous costs such as paying for electricity and permit fees. Also, I’ll be using lower bound values for a likely best case scenario.

-Monthly rent: $4.5/square foot

-Size of place: 400 square feet.

-Yearly rent : 4.5*400*12 = $21,600

Salary costs

On weekends, I’d like to keep the place open from 9am to 12pm, and from 4pm to 12pm on weekdays, which is 70 hours. When factoring in 2 hours per day for opening, closing, and maintenance, 84 hours are needed. While many restaurants close earlier, I do want to keep the game store open until midnight. This gives people an opportunity to stay and socialize for a while instead of having to quickly leave due to an early closing time. Assuming that 2 people would be working at all times, that is a cost of $20,160 a month, or $241,920 each year.

  • Minimum monthly salary: $25*40*4 = $4000
  • Monthly health insurance cost: $800

A lower bound on the costs of rent and salaries would be $263,520 per year. This number is likely to be significantly higher when considering the other costs. I’m not willing to compromise on customer service, paying employees, or employee benefits.

I would rather see policy changes that reduce the costs of running a small business, such as a vacancy tax that would lower rents.

One possible solution may involve several other people trying to start board game cafés at the same time. Due to the amount of interest in board games, they aren’t going to be competing with each other or other board game stores or cafés. On the other hand, we can work together in many ways including sharing advice on running a board game café or negotiating bulk discounts on games.

We could also work together to advocate for policies that make a board game café more sustainable. One example would be increasing financial penalties for vacant storefronts in DC, which would encourage landlords to rent space to small businesses at lower rates. I’ve seen many storefronts that have been vacant for years that are in great locations near Metro stations.

Vanilla PHP is great

I am working on a proof of concept for a public event aggregator which will allow users to search for events from multiple sites.

I decided to use vanilla PHP for the aggregator due to simplicity. While I haven’t worked with PHP in a while, I remember PHP being relatively straightforward to setup and deploy. PHP is well tested due to decades of development, and it is still widely used, which is another indication of it’s usefulness. The aggregator will work by retrieving data from multiple sources and then converting it into HTML, which is a great fit for a PHP proof of concept.

An added bonus of using vanilla PHP is that there is a variety of great documentation, which is mostly been written before AI generated documentation became widespread.

While this setup isn’t optimal from a performance perspective, it does allow for improvements to be easily added. One option would be to use PHP in memory caching to cache data. Local sites could also be configured to call a PHP API endpoint to submit updates to the aggregator, which would run a separate script to save data to the cache. A database could also be added later.

A PHP framework such as Laravel, or a framework in another language such as Ruby on Rails, Django, or Spring Boot can be more powerful when it comes to additional features such as handing use authentication. From an engineering perspective, I think Java is a better language for a backend, and one could say the same about other languages.

Higher engineering quality is important for software where security and avoiding bugs is more important than codebase accessibility. Examples include software running on medical devices, or a security software used to control access to government buildings. An accessible codebase could make it easier to find and exploit security flaws, and lower quality software increases the risk of bugs.

However, I think vanilla PHP is a better solution for an aggregator website despite lower engineering quality. Setting up an aggregator website using Java involves additional complexity when compared to PHP for deployments. When deploying the Java API for dmvboardgames.com, I had to setup a Docker container and logic to start a server, which was not necessary with the way Digital Ocean supports PHP deployments. When learning PHP, I also remember being able to upload PHP files to a shared hosting server on bluehost.com and have them run without any additional setup. There is also the additional complexity of setting up another server or the Java server to serve HTML.

The aggregator proof of concept is to demonstrate the decentralized in event hosting platform I am working on. One key goal is to get more people involved with making websites for in person events. The aggregator code is open source, and I want people to use it as an example to build their own event websites.

How AI Destroys Institutions

https://papers.ssrn.com/sol3/papers.cfm?abstract_id=5870623

This paper specifically refers to generative AI, predictive AI, and automated decision systems.

I’ve seen this happen many times to software projects that are prioritizing generative AI over producing customer value. For example, GitHub.com keeps trying to push generative AI features while making the UI more bloated and not prioritizing user experience issues. One example is not providing a way for projects to block AI generated code contributions that do not meet quality standards.

I’m in the process of moving from GitHub.com to Codeberg.org for open source development, and I plan to stop using GitHub entirely once I get time to replace my GitHub deployment pipelines. Development of the Zig programming language has moved from GitHub to Codeberg, citing a decline in quality. (Source)

Slowing down coding speed can be beneficial

Earlier this week, I decided to try using Vim instead of an IDE for working on createthirdplaces.org. My coding speed has slowed down significantly as I am not used to Vim. I think the slowdown is somewhat of a benefit right now.

  • Right now, I am prioritizing user experience by displaying pages in a way that makes sense for users, and making sure information is organized in an intuitive way. As part of this process, I’m thinking about the user feedback I have received recently. Slowing down is helping me think carefully about the changes I am making to ensure that they are addressing feedback.
  • Slowing down makes it less likely that I am producing too much content. Too much visible content overwhelms users. If I can improve the user content by making it less visible, that means users are unlikely to see the content, and working on that content probably did not need to be a priority.