AI 资讯
AIs as Modern Genies
This essay was written with Barath Raghavan, and originally appeared in Lawfare . In April, an artificial intelligence (AI) agent conducting a routine task at a company hit a snag, tried to solve it, and soon ended up deleting the company’s database along with all of its backups. In July, OpenAI asked an unreleased AI model to attempt a hacking test. Instead of staying in the isolated box the developers had put it in, the model hacked onto the open internet and into another company to steal the answers. And as reported in August, an AI agent booked someone into a full gym class by ...
AI 资讯
Threads is overhauling its in-app analytics with more details, except for link clicks
The insights section of the Threads app now surfaces AI summaries and contextual info about post performance.
开发者
Google complies with EU rules for travel searches, says the new results stink
The EU continues to go after Google search practices it sees as anticompetitive.
AI 资讯
OpenAI Just Claimed a Huge Math Discovery. Some Academics Are Crying Foul
A landmark announcement by the frontier AI lab has been overshadowed by accusations of impropriety.
科技前沿
The White House made a "Tetris" clone. The Tetris Company was not amused.
Trump admin's propaganda "arcade" hits some apparent legal limits.
科技前沿
The secret to protecting next-gen spacecraft might be eggshells
3D-printed aluminum eggshell arrays filled with water proved more effective at impact resistance.
AI 资讯
Google Cloud races to catch up in the AI deployment wars with Accenture deal
Google Cloud expands its enterprise AI push with Accenture, betting on forward-deployed engineers to drive adoption and overcome deployment bottlenecks.
科技前沿
How to watch this week's second Nintendo Direct
After shining the spotlight on The Legend of Zelda, Nintendo will focus on other games in its second Direct for around 45 minutes.
产品设计
Tesla Cybercab doesn’t have any manual controls — but it does have a virtual joystick
The Tesla Cybercab is notable for what it lacks, namely a steering wheel and pedal. By design, there is no way for this vehicle to be manually controlled - or so we thought. Less than a week after the Cybercab was officially launched in Austin, Texas, some riders have discovered the Cybercab's secret manual controls […]
AI 资讯
The combat demo for Free Stars: Children of Infinity is out, and it's free
Blast your opponents in 1v1 arcade space battles like it's 1992 all over again.
产品设计
The White House pulls its racist Tetris clone
The White House has taken down its racist Tetris ripoff days after launching a website dedicated to "arcade games," as spotted earlier by Kotaku. The Tetris clone, called "Build the Wall," involved stacking different-sized blocks to prevent a "zombie border siege." It's not clear why the White House removed the title, though the Tetris Company […]
产品设计
What are the actual differences between cheap and expensive smart TVs?
Nearly any TV is suitable for 4K content, but spending more gets you a better viewing experience and several other advantages.
科技前沿
Here’s Samsung’s Advice for Apple and Its Upcoming Folding iPhone
The competition is “absolutely welcome” by the pioneering Korean giant, but Samsung warns that the device’s “weight” is crucial.
AI 资讯
I Used Every AI Coding Assistant I Could Find for a Month. Here's What I Actually Pay For Now
I Used Every AI Coding Assistant I Could Find for a Month. Here's What I Actually Pay For Now Note: this is the fourth post in an ongoing series where our small editorial team tests AI tools in real workflows and writes down what we find. No affiliate links. No "sponsored by" disclaimers to hide. We pay for the tools we review, including this month's experiment, which cost us about $190 in subscriptions and a fair amount of patience. The setup I spent most of August and September doing the same two jobs across eight AI coding tools: building a small internal dashboard (React + a Node API) and maintaining an older Python service at work. Same tasks, same files, same me. The tools were GitHub Copilot, Cursor, Codeium, Tabnine, Replit AI, v0, Bolt, and Lovable. Why those eight? Because those are the ones people actually argue about in our developer group chats — and the ones a colleague keeps asking me to "just try already." I also wanted to answer one question that none of the marketing pages answer: what happens after the first week, when the novelty wears off and the tool has to earn its place in a daily workflow? Quick background so you know where I'm coming from: I'm a working developer, not a journalist. Ten years mostly backend, some frontend when I have to. I'm skeptical of anything that promises to write my code for me, and I've been burned before by autocomplete that produces confident nonsense. The short version If you only take one thing from this: Copilot is still the safest default, Cursor is the most capable if you'll actually use its chat properly, and the no-code app builders (Bolt, Lovable, v0) are not for me — but they're genuinely impressive for people who don't live in an IDE. Everything below is the longer version with the boring details, including the stuff that surprised me. GitHub Copilot: the boring, reliable choice I started with Copilot because it's what most of my team already had. The completions are fast and mostly invisible — which is th
AI 资讯
How I built a Linux Distribution from scratch for my sister
Before you read this I want to express that this is my first blog ever and I have no previous experience of writing blogs How it was decided I wanted to make something truly fascinating as a gift for my sister. She inspired me to start coding, and so I decided that I will build an Operating System for her. This was going to be hard so I decided that it was also going to be something I would work on after gifting it. And then began Project Leviathan What I chose I first took a look at the available options, I could try archiso which was nice to try but for me it wasn't something I would want to consider as mine. On the other end, trying to build a kernel, initramfs, and other core components of an OS all by myself was beyond what I could build in a week. So it was decided, using the linux kernel, but building the tty, drivers, graphics, and others by myself basically a Linux Distribution First steps First I began researching on what I really needed to build a Linux Distribution. For most of the research of it I used chatgpt. And even more importantly, I had to learn C. I settled with the basics, pointers, and other stuff. And then it began, I started with a simple directory and grub configurations along with MY own linux-6.8.0-138-generic kernel, so that grub would find and detect it. The TTY(TeleTypewriter) Since pretty much every part of it was still from my ubuntu installation, the first TTY was just a Busybox shell provided by my installation. But of course I had to change it. I started with a simple virtual TTY with just echo and cat, according to me quite a important feature. After quite a bit I got it working, and therefore had my first ever TTY. It still worked on busybox but the TTY only worked with my commands. Soon enough I removed Busybox entirely and at added other essential commands such as ls, rm, copy, mkdir, and pwd. The first graphics stack Since most of my TTY was done, I figured it was a good time to get started on the graphics stack. First it sta
AI 资讯
Building an Interactive Excel Dashboard for E-commerce Product Analysis: A Case Study of Jumia Products.
Introduction In this project, I set out to analyze a dataset of products listed on Jumia, one of Africa's leading e-commerce platforms, with the goal of understanding how pricing strategies, discounts, and customer reviews influence overall product performance. Using Microsoft Excel, I cleaned and prepared the raw dataset, engineered new features to categorize products, ran correlation and trend analyses to uncover relationships in the data, and ultimately built an interactive dashboard to present the findings in a clear, business friendly format. The objective was not just to explore the numbers, but to answer practical business questions: Do bigger discounts actually drive more customer engagement? Does price influence how a product is rated? Which products are genuinely performing well, and which ones might need a different pricing or marketing approach? This article breaks down the full process behind how I turned raw data into a finished report from initial data cleaning to the creation of an interactive dashboard. The following is the uncleaned data(original dataset) Data Set Overview. The dataset contains information about products listed on Jumia with the following columns: • Product: Name of the product. • Current Price: The current selling price of the product (in KSh). • Old Price: The original price before discount (in KSh). • Discount: The percentage discount offered on the product. • Review: The number of customer reviews received by the product. • Rating: The average customer rating of the product (out of 5). Data Cleaning and Preparation On a separate sheet after copy pasting the original data set I had to ensure there was no any present duplicate in the dataset. Now that I had removed any duplicates that was present, next process was changing the cell format for each column from General to the appropriate data type i.e. Text for product names, Currency for prices, Percentage for Discount and Number for ratings and reviews. Next, I used Find and Repl
AI 资讯
OpenSparrow v3.6 adds an External API module
OpenSparrow v3.6 adds an External API module that lets admins expose table data to external services through read-only, encrypted API keys. Each key is bound to a single table with a fixed column set, server-side filters and a row limit, and is served by a sessionless JSON endpoint that accepts nothing from the client except the key itself. Below is a breakdown of what changed and why it matters. External API module A new Admin → System → API tab lets admins define read-only API keys. Each definition is bound to one schema table, a chosen set of columns, fixed server-side filters and a row limit, so the data an external service can see is decided entirely by the admin — never by the caller. Keys are stored encrypted ( key_enc ) plus an HMAC key_hash for constant-time lookup, and are never returned to the browser after generation A new or regenerated key is generated server-side and shown exactly once in a modal Filter values are type-checked against the column's schema type on save, so a stored filter can't 500 at query time A sessionless JSON endpoint public/api/external.php is the single endpoint. External services authenticate with an Authorization: Bearer <key> header and receive JSON rows. The endpoint accepts no table, column or filter names from the client — everything comes from the config Hidden and system ( spw_ ) tables are refused, both on save and at request time Rate limiting is enforced per key and per IP, answering 429 with a Retry-After header Responses are 401 (missing/bad key), 403 (disabled), 404 (configured table gone) and 429 (rate limited) Usage statistics A new spw_external_api_log table records each successful request — API, table, rows returned and duration — with a stats/log view and a purge action in the admin module, so you can see exactly how your keys are being used. Changed includes/db.php gained sys_table_prefix() / is_system_table() helpers so the endpoint can refuse system tables. includes/crypto.php gained secret_hash() (HMAC-SHA2
AI 资讯
AI Made Coding Faster. Now the Bottleneck Has Moved.
The code is being produced faster than I can confidently review, validate, and ship it. Old workflow vs. new workflow The biggest change in my workflow is not simply that AI writes code faster. It is that my role is gradually moving away from manually implementing every detail and toward designing, orchestrating, reviewing, and validating the overall result . That sounds like a small shift, but it changes where I spend most of my engineering effort. Coding is no longer the slowest part Working with coding agents has changed how I think about development productivity. I can define a task, let an agent explore the codebase, implement the change, add tests, and return a working diff much faster than I could build everything manually. But implementation is only one stage of software delivery. flowchart LR A[Requirement] --> B[Design] --> C[Implementation] --> D[Review] --> E[Test] --> F[Deploy] AI can compress the implementation stage dramatically, but review, testing, integration, security, and deployment still have their own limits. When those stages cannot keep up, faster coding does not remove the bottleneck. It simply moves it downstream. This is also the point Red Hat recently raised in Why faster coding isn't making delivery any faster : generating code and delivering reliable software are not the same thing. I have started to notice this more clearly in my own workflow. An agent can produce a fairly large change while I am still building the mental model needed to judge whether that change is actually good. More code is not the same as more productivity Suppose I used to complete two meaningful changes in a day and AI now helps me produce six. Calling that a 3x productivity increase sounds reasonable at first, but only if the rest of the engineering system can absorb those six changes. They still need to be understood, reviewed, tested, integrated, and eventually operated in production. If review capacity or CI becomes the constraint, I have not created three ti
AI 资讯
An AI-Fixed Test Passed. What Should QA Check Next?
One thing I’ve been thinking about something that sounds simple but is actually a little tricky: what do we do after AI fixes a failed test and it passes again? There are already some interesting approaches to this. mabl looks at adaptive healing, Testim focuses on smarter locators and maintenance, and Applitools approaches changes from the visual validation side. I don’t think there’s one perfect way to handle test maintenance, it really depends on why the test failed in the first place. While exploring X360 AI Tech, this made me look at the problem a little differently. Getting a test back to green is useful, but I’m more interested in what happened along the way. Looking at the failure details, previous execution, and the actual flow can help answer a basic question: did we really fix the test, or did we just find another way to make it pass? So, after an AI fix, I’d still want to check a few things: Is the test checking the same thing as before? Does it still match the original requirement? Was the failure actually caused by a UI change? And does the fix continue to work in the next few runs? I’m starting to feel that the real value of AI self-healing isn’t just fixing tests faster. It’s helping QA spend less time fixing tests blindly and more time deciding whether the fix actually makes sense. What’s the first thing you would check after an AI-healed test turns green?
AI 资讯
Promises In JS
Promises in JavaScript When JavaScript performs an operation that takes some time, such as fetching data from a server, it does not want to wait and block the rest of the program. Instead, JavaScript can handle the operation asynchronously. A Promise is an object that represents the eventual result of an asynchronous operation. In simple words, a Promise means "I don't have the result right now, but I will give you the result later." Creating a Promise We can create a Promise using the built-in Promise constructor: const result = new Promise (( resolve , reject ) => { const age = 10 ; setTimeout (() => { if ( age >= 18 ) { resolve ( " You are eligible to vote " ); } else { reject ( " You are not eligible to vote " ); } }, 3000 ); }); Here, Promise is a built-in JavaScript constructor, and new Promise() creates a new Promise object. The function passed to new Promise() is called the executor function : ( resolve , reject ) => { // code } resolve and reject are parameters of this executor function. The Promise constructor provides functions as arguments for these parameters. We call resolve() when the operation is successful and reject() when the operation fails. resolve ( " You are eligible to vote " ); means the operation was successful. reject ( " You are not eligible to vote " ); means the operation failed. Promise States A Promise has three possible states: State Meaning Pending The operation is still in progress Fulfilled The operation completed successfully Rejected The operation failed In our example, when the Promise is created, it is initially pending . After 3 seconds, the age is checked. Since the age is 10 , the condition is false and reject() is called. So the Promise changes from: Pending ↓ Rejected If the age were 18 or above, resolve() would be called instead: Pending ↓ Fulfilled Handling a Promise After creating the Promise, we can use .then() to handle a successful result and .catch() to handle an error. const result = new Promise (( resolve , rejec