Follow Slashdot blog updates by subscribing to our blog RSS feed

 



Forgot your password?
typodupeerror

Comment AI for debugging (Score 1) 248

Sometimes I use AI to write quick functions with bounds checking, it does a decent job, but it always needs tweaking.

AI shines for debugging, when I have something that "should" work, I copy/paste the errors or problem description into AI and ask "How to Fix ELI5"

Once, AI even suggested there was a bug in a library, and it was right.

Note: I pay for Google Gemini 2.5 Pro and find it the best for coding compared to Chat-GPT.

Gemini does a good job of breaking everything down.

Here is an example from a mysql session timeout (brokenpipe) a problem that I just fixed this morning, with the help of AI. :)

-- START Gemini Pro Session --

ELI5: Fixing "MySQL server has gone away (BrokenPipeError)"
The Problem Explained Like You're 5
Imagine you're on the phone with a friend (the MySQL server). You're talking, everything is fine. Then, you put the phone down for a while to do something else. Your friend, thinking you're done talking, hangs up. A little later, you pick up the phone and start talking again, but your friend is no longer there. All you hear is a dial tone. This is the "Broken pipe" or "MySQL server has gone away" error.

In your code, your application (you) was connected to the MySQL database (your friend). It kept the connection open in a "pool" of connections to be reused, which is efficient. However, the connection sat idle for too long, and the MySQL server, to save resources, automatically disconnected it (hung up). When your application tried to use that same connection again, it discovered the connection was dead, leading to the error.

This specific error trace shows that SQLAlchemy, a tool that helps your Python code talk to the database, tried to clean up (rollback a transaction) on a connection that had already been dropped by the server.

The Fix: How to Keep the Conversation Going
The most common and effective way to fix this is to tell SQLAlchemy to check if the connection is still alive before using it, or to regularly refresh the connection. Here are the recommended solutions, from most common to more specific:

1. Recycle Connections (pool_recycle) - The "Hang Up and Redial" Approach
This is the most common and generally recommended fix. You can tell SQLAlchemy to automatically close and replace connections that have been open for a certain amount of time. This time should be less than the MySQL server's wait_timeout (which is often 8 hours by default, but can be much shorter on some hosting providers). A safe value is often 3600 seconds (1 hour) or less.

When you create your SQLAlchemy engine, add the pool_recycle argument:

Python

from sqlalchemy import create_engine

# Add pool_recycle to your engine creation
engine = create_engine(
        "mysql+pymysql://user:password@host/dbname",
        pool_recycle=3600
)
2. Pre-Ping Connections (pool_pre_ping) - The "Are You Still There?" Check
This option tells SQLAlchemy to send a very small, quick message (a "ping") to the database to see if the connection is still active before your application uses it. If the ping fails, SQLAlchemy will replace the dead connection with a new one. This is very reliable but adds a tiny bit of overhead to each database operation.

Python

from sqlalchemy import create_engine

# Add pool_pre_ping to your engine creation
engine = create_engine(
        "mysql+pymysql://user:password@host/dbname",
        pool_pre_ping=True
)
For many applications, pool_pre_ping=True is the most robust solution.

3. Adjusting Server-Side Timeouts (If you control the server)
If you have administrative access to your MySQL server, you can increase its wait_timeout value. This tells the server to wait longer before hanging up on idle connections. You would typically change this in your MySQL configuration file (my.cnf or my.ini).

[mysqld]
wait_timeout = 28800
After changing this, you must restart the MySQL server. However, it's often better to make your application more resilient (using pool_recycle or pool_pre_ping) than to rely on server-side settings.

4. For Large Queries: Check max_allowed_packet
Less commonly, this error can occur if you are trying to send a very large piece of data to the database that exceeds the server's max_allowed_packet size. If you are inserting or updating a row with a lot of text or a large binary file, and the error happens consistently with that operation, you may need to increase this value in your MySQL server's configuration file.

[mysqld]
max_allowed_packet=64M
Again, this requires server access and a restart of the MySQL service.

Summary
In most cases, the simplest and most effective way to fix the "MySQL server has gone away" error is to configure SQLAlchemy's connection pool to handle stale connections gracefully. Start by adding pool_pre_ping=True or a reasonable pool_recycle value to your create_engine call. This ensures your application doesn't try to talk on a dead line.

Comment Re:Awful.. (Score 1) 163

I am with you brother, it is good for simple things but the indenting for codeblocks and gymnastics for magic methods and mixed programming paradigms.
I use C most of the time and BYTHON is something I want to check out.

def print_message(num_of_times) {
        for i in range(num_of_times) {
                print("Bython is awesome!");
        }
}

if __name__ == "__main__" {
        print_message(10);
}./qu

Comment Re:The gain on this amplifier was negligable (Score 3, Insightful) 50

Coding is not the point of the CS50 class.
The point is code literacy and the intellectual pursuit of computer science.

CS50 isn't just about learning to write code; it's about fostering computational thinking and code literacy. While coding is a crucial tool, the core of CS50 lies in understanding the underlying principles of computer science. The course meticulously builds a foundation, starting with fundamental building blocks like variables, data types (booleans, integers, etc.), control flow (if/else statements, loops), and functions. It then progresses to more complex concepts like data structures (arrays, linked lists, trees), algorithms (searching, sorting), and algorithm analysis using Big O notation. This journey from the micro to the macro gives students a holistic view of how software works.

CS50 empowers you to dissect and comprehend code, regardless of the specific language. Instead of just blindly writing lines of code, you learn to think algorithmically, breaking down problems into logical steps that a computer can execute. This understanding is crucial for leveraging tools like AI code generation. Imagine using an AI assistant like Claude: with a CS50 background, you wouldn't just accept the generated code at face value. You'd be able to critically evaluate it, understand its logic, identify potential flaws, and modify it to perfectly fit your needs. You become a collaborator with the AI, not just a passive user.

Harvard's commitment to making CS50 accessible to the world is commendable. The course's comprehensive curriculum, combined with its engaging teaching style and extensive online resources, has democratized computer science education. The availability of variations like CS50 AI further demonstrates the program's dedication to exploring cutting-edge topics and preparing students for the future of technology. CS50 isn't just a course; it's an investment in developing the next generation of problem solvers and innovators.

CS50 is a brilliant class and I applaud Harvard putting it out there for the world. Thank you HARVARD! I wish I could have gone to Harvard.

Comment ARM for Windows = SUCKS! (Score 1) 86

Great, you ditched the legacy CPU Intel chip, now where is all ARM native windows software and what do I do with my existing legacy non-arm software.
There kinds of needs a bit more to this play than a press release. If I want 22 hours of video playback I'll get an iPad or MacBook Air.

Comment 10 years of developing RNA, not self assembling (Score 1) 127

Reading the paper, it took scientists 10-years to develop (not sure of procedure) hammerhead RNA which is now able to copy itself.

The origin of the RNA in this story is lab created RNA.

Electronic Arts promised me a molecule construction set back in the 90's, where is it?

Comment Re:AI (Score 1) 48

You are absolutely incorrect.
Back before your were born there existed TVs and VHS machines.
The thinking was, all we have to do is get the best teaches in the world to create engaging courses, record them, and fill large rooms with little TVs with VHS players and PROFIT.

Guess what they found?

A teacher is more than a content delivery device. A teacher encourages, is positive and enthusiastic, believes in their students, offers specific and sometimes hard to swallow feedback, celebrates success, builds relationships, creates a safe and supportive learning environment, and is a guide along for the journey of learning.

30% of the kids can be given a library card and access to AI and the Internet and they will be fine.

The other 70% are still going to need a teacher because learning and looking toward a successful future isn't on their list of things to do.

Comment Think of the coaches...... (Score 1) 48

Right now in states like Michigan, they had a Computer Science endorsement and then dropped it.
https://computinged.wordpress....

And replaced it with this:
Teachers who currently hold the endorsements will continue to see them displayed on their certificates and may continue to teach in those areas. However, starting in 2017-18, administrators will have discretion in assigning a teacher in those endorsement areas. For example, a teacher with a computer science endorsement may be assigned to teach computer science, or a district may employ a teacher without the endorsement who displays strong computer science skills.

Yes, Administrator Discretion is the standard now in Michigan for teaching the computer/technology class. Since this is a non-core, non-ACT evaluated class it is often given to coaches to round out their schedules.

Comment Non-Stop Layoffs at AT&T possible root cause? (Score 4, Interesting) 55

From what I have heard it has been non-stop layoffs at AT&T since 2023. Comparing 2018 AT&T to 2024 AT&T it is 40% fewer employees.

https://www.lightreading.com/a...

You can only cut, outsource, and AI so much until either bad things happen or people get upset and let bad things happen, either intentionally or unintentionally.

Comment Freevee with Amazon Prime barely works (Score 3, Informative) 14

When Amazon bolted on Freevee, you have a 20% of the first ad not freezing and your content loading.

Complaints to Amazon have been going on since 2023 and no one at Amazon responds or cares.

Amazon Prime + Freevee should be called AmazonFreezy.

Slashdot Top Deals

Machines have less problems. I'd like to be a machine. -- Andy Warhol

Working...