China’s Tianwen-2 Space Probe Has Rendezvoused With Earth’s Quasi-Moon
The probe sent back the first pictures of the asteroid Kamo’oalewa. Next step: landing on the surface and collecting samples to send back to Earth.
找到 13516 篇相关文章
The probe sent back the first pictures of the asteroid Kamo’oalewa. Next step: landing on the surface and collecting samples to send back to Earth.
The Story: Picture this: It is 10 PM. I was eating my dinner while adding one final touch to my social media app, Vlox. It should just say "Processing..." while generating a card. Simple, right? See the nightmare. 🔥 The Nightmare Scenario 📉 Suddenly, my "Download Card" button broke. htmlToImage started spitting out completely empty 0b images. The hunt was on. Failed Mission Log 🛰️ Attempt 1: Swap to html2canvas 🔄 Result: Error stating the element was not found in the cloned iframe. Verdict: The parent container was completely lost. Attempt 2: Use CoolAlertJS Toast 🍞 Result: It looked ugly and meant loading two different alert libraries for the same job? Not my game. Verdict: Total waste of bundle size. Attempt 3: Append to body + display: none 🙈 Result: The canvas process failed entirely. Verdict: Canvas snapshot engines completely ignore hidden elements. The "Aha!" Moment 💡 Why did the element vanish? Because the card generator lives entirely inside a Swal popup. When you click the download/confirm button, Swal instantly destroys that entire popup DOM tree. You cannot snapshot an element that no longer exists. 👻 The Ultimate Fix 🚀 Inside the new "Processing" popup, I appended the #card-generator-image-preview directly into the new alert container. The element stays alive in the active DOM. The snapshot succeeds perfectly. Clean code. Happy developer. Delicious dinner. Want to see the exact JavaScript code block that fixed it? Drop a comment below or check Vlox on Github .
Lately, I've been doing some deep personal reflection. I'm talking about myself, I hope no one misunderstands, on how pervasive the use of AI has become in my daily development workflow. Through a bit of self-analysis, I've discovered some interesting dynamics. Dependencies often arise from the desire to fill a void. But what kind of void does an experienced developer like me face? As a professional, I have the skills. Sure, AI helps me get things done faster, but the final product is always the translation of my vision; if I don't fully understand the solution, I discard it. I'm not looking for "magic," I'm looking for efficiency. Yet, I realize I've used AI to fill a specific void: the need for discussion. Software development is inherently solitary. The satisfaction of a successful "execution" after hours of discussions, refinements, and clashes over an architecture is an experience I miss today. The chat interface is always there, ready to respond. But there's a problem: it's a "yes-man." Even when I force it to be critical or provocative via the system's prompts, I know it's just reciting a script to please me. There's no conviction, no risk of error, none of the friction that arises when a colleague courageously defends their vision, perhaps one that conflicts with mine. We are part of a huge community, but debate often remains superficial. One might argue that posts and comments are enough, but anyone who has tried knows it doesn't work very well: a debate is truly alive only when there is no latency. In comments, the time between thinking, writing, and waiting for a response diminishes the energy of the exchange, turning it into a series of monologues rather than a dialogue. Why don't we try creating "virtual tables" where we can discuss projects, architectures, and technical choices with the natural rhythm of a conversation? Direct, real-time discussions, in person or remotely, where the exchange of ideas can spark sparks, without the filter (and delay) of
Markdown to HTML: The Fastest Way to Convert Markdown Online Markdown is one of the easiest ways to write documentation, blog posts, README files, and notes. The only problem is that many platforms require HTML instead of Markdown. Instead of installing software or using complicated editors, you can convert Markdown directly in your browser. I built MDConvertHub to make this simple. It lets you: Convert Markdown to HTML instantly Preview the output before copying Work completely in your browser No signup required Free to use I started building MDConvertHub because I wanted a collection of small Markdown tools in one place instead of visiting different websites for every task. The project now includes multiple Markdown utilities, and I'm continuously adding new tools based on real use cases. If you'd like to try it, I'd love your feedback. 👉 https://mdconverthub.com/markdown-to-html What Markdown tool do you use most often? Feedback and suggestions are always welcome. I'm building MDConvertHub one tool at a time.
Instead of writing long build logs or recording traditional vlogs, my co-founder and I wanted to try something different. We're documenting our startup journey by turning it into an AI-generated anime series. Not for fiction. For real startup moments. Episode 2 follows our cold outreach journey: Finding an ICP Testing different niches Sending DMs Getting ignored Learning what works (and what doesn't) We're treating this as an experiment to see whether AI-generated storytelling can make the process of building a startup more engaging than the usual "build in public" content. The goal isn't perfect animation. It's authentic documentation—with AI as the creative medium. We're still figuring it out, improving every episode, and learning as we go. Would love to hear what fellow builders and developers think about this approach. Could AI-powered anime become a new way to document products, startups, and open-source projects? Feedback is always welcome. 🚀
I built CreditMeter, a small Windows tray app that shows GitHub Copilot AI-credit usage like a taxi meter. Why I built it Agentic coding makes AI usage feel invisible until you look at the bill. Constraints no WinForms no WPF no backend no telemetry no dependency-heavy architecture Tech stack C# / .NET 9 Native AOT raw Win32 / PInvoke GitHub REST API DPAPI for local PAT storage What I learned For tiny tools, architecture is also about knowing what not to add. Repo https://github.com/cdilorenzo/CreditMeter
On July 9, 2026, the European Parliament reauthorized a law that lets tech companies scan your private messages without a warrant. Here is the part that should worry you: a majority of lawmakers voted against it. 314 MEPs voted to kill the law. 276 voted to keep it. The law passed anyway. How? The rejection required an "absolute majority" of 361 votes out of 720 MEPs. Every absent MEP effectively counted as a yes. The vote was scheduled for the last day before summer recess, when many MEPs had already left Strasbourg. The European People's Party, Parliament's largest group, used a rarely invoked urgency procedure (Rule 170) to force the vote onto the floor on July 7. Two days later, the deed was done. What Chat Control 1.0 Actually Does The law is technically called the ePrivacy derogation. It allows tech companies to voluntarily scan private, unencrypted messages and emails for known child sexual abuse material (CSAM), without a warrant or prior suspicion. Platforms affected: Instagram DMs, Discord, Snapchat, Skype, Xbox messages, Gmail, and iCloud. Platforms not affected: WhatsApp and Signal, because they use end-to-end encryption. Parliament did adopt an E2EE exemption amendment with 369 votes, excluding "communications to which end-to-end encryption is, has been or will be applied" from the scanning scope. But here is the catch. Providers of E2EE services were not scanning messages anyway. The exemption preserves the status quo. It does not create new protections. The scanning is limited to "known" CSAM material, meaning previously identified photos and videos. It does not detect new or unknown material. And it remains in effect until 2028, or until a permanent regulation is agreed. The Numbers That Should Make You Doubt This Law The EU Commission's own evaluation report gives Chat Control a very poor assessment: Only 0.00000077% of messages scanned in the EU actually contained illegal material ( heise online ) False positive rates of filter technologies reach u
As the climate phenomenon sends warm water surging across the eastern Pacific, some parts of the fishing industry are suffering—but other regions are seeing a windfall.
Turn your SaaS into a clickable demo in 90 seconds. Discussion | Link
Hot showers, like electricity, are a luxury that's easy to take for granted. That all changes after a few nights camping at a music festival, a week toiling at a backcountry job site, or overlanding all summer in the great unknown. An itchy scalp and the vague smell of warm clams suddenly make the idea […]
AI is not a smarter Google I am convinced most people are using AI in the worst possible way. They treat it like a slightly magical search bar. Type question. Get answer. Copy. Paste. Forget. I think that mindset is holding a lot of people back. Developers. Designers. Knowledge workers. Even my baseball kids who ask ChatGPT for homework help. AI is not a better Q&A machine. It is a delegation machine. You do not "ask" AI. You give it a job. This post is me making that shift concrete. I just shipped six AI gallery pages on my site, built entirely around that idea. Not as a gimmick. As infrastructure for how I work, learn, and build. Why I stopped asking AI questions The turning point was basically frustration. My workflow looked like this for months: Open ChatGPT Ask something like "How do I X in Astro / Svelte / Next" Skim the answer Try the snippet Debug for 30 minutes anyway The answers were fine. Sometimes even useful. But nothing stuck. I would ask the same class of questions over and over. Same concepts. Same patterns. Same gotchas. No real accumulation of knowledge. Just one-off transactions. Then I noticed something: the few times I actually got huge value from AI, I was not asking. I was delegating. "Rebuild this layout using CSS grid, but keep these class names." "Refactor this component, keep the same API, and annotate the performance tradeoffs in comments." "Act like my annoying senior engineer and poke holes in this data model." That felt different. Less like search. More like a teammate who does legwork while I keep steering. Delegation > questions So I made a decision: treat AI like a junior colleague with unlimited patience and questionable taste. That means: I do not ask "How do I do X". I say "You are responsible for X. Here is context. Here are constraints. Here is the definition of done." The shift sounds subtle. It is not. When you ask a question, the model guesses what you want. When you delegate a job, you tell it what you want and where it fit
A practical workflow for batch audio and video conversion Media conversion is rarely difficult because of one file. The friction appears when the same job has to be repeated across a queue: choose an output format, adjust quality, add another file, wait for the result, and then start the setup again. That is the problem Format Factory is designed to address. It is a browser-based workbench for common audio and video conversion jobs, with a workflow built around batches instead of isolated one-file sessions. You open the page, choose the task you need, set the shared options once, add compatible files, and run the queue. There are no installer bundles or cluttered download pages to work through, and there is no need to configure every file from scratch. Start with the job, not the file Different media tasks call for different settings. Format Factory organizes the workflow around the operation you want to complete: Convert video to a different format for playback or upload Extract the audio track from a video Compress video files with shared quality settings Merge 2 to 10 clips into one MP4 Remove audio and export a silent copy of a video Convert audio between MP3, WAV, AAC, M4A, OGG, and FLAC Compress MP3 files by choosing a lower bitrate Merge 2 to 20 audio tracks into one MP3 This task-first approach is useful when you already know the result you want. Instead of opening a separate configuration flow for every input, you define the conversion job once and then build a queue around it. A queue that keeps each file visible Batch processing should reduce repetitive setup, but it should not make individual files mysterious. The queue keeps the state of each row visible from upload to download. If one file needs a different setting, you can apply a per-file override without rebuilding the entire job. If a file fails, its error is shown at the row level. You can retry that item, cancel it, or download a specific result when only one file needs attention. That gives you
Exposing the keys in the GitHub Issue The Phishing Site (Notice the Spotify option) There is a golden rule in cybersecurity: the weakest link is almost always human error. But what happens when that human error comes from a malicious actor trying to orchestrate a crypto phishing scam? The result is surprisingly comedic. Here is the story of how my newly built open-source secret scanner, Sentinel, accidentally neutralized a Tether (USDT) phishing operation during a routine benchmark. The Setup: Testing in the Wild I recently released Sentinel , a statically compiled, context-aware Git secret scanner and pre-commit hook written in Go. After fine-tuning its engine to achieve near-zero false positives, I decided to benchmark it "in the wild" by scanning random, recently updated repositories on GitHub. The goal was to see if Sentinel could catch edge-case credentials that traditional, regex-heavy tools often miss or drown in noise. During the scan, Sentinel instantly flagged a critical severity finding in a rather suspicious repository. The Catch: AI Copy-Paste Gone Wrong Upon inspecting the flagged file, the issue was immediately apparent: a fully exposed, hardcoded Firebase configuration object containing the API key, project ID, and messaging sender ID. It was a textbook case of a script kiddie asking an AI for a web login template and blindly copy-pasting the frontend code into a public repository. They had effectively handed over the administrative keys to their backend infrastructure before the project even launched. The Phishing Site: Logging into Crypto with Spotify? Out of professional curiosity, I checked the Vercel deployment linked to the repository. The project was attempting to impersonate Tether (USDT), the world's largest stablecoin. It featured the official logo, a catchy slogan, and a login prompt designed to harvest credentials. However, because the scammer had blindly copied a generic consumer application template, the authentication options presented
If you have ever built a custom JavaScript framework from scratch, you know that the line between a smooth, memory-clean engine and a total memory-leak disaster is incredibly thin. With version 1, Levelo-Js proved that lightweight reactive UIs could be fast and intuitive. But as codebases grow, raw JavaScript starts to feel like writing code blindfolded. The dreaded undefined is not a function is always lurking around the corner. Today, we are taking a massive leap forward. Meet Levelo-Js v2 —a complete ground-up architectural rewrite, fully re-born in TypeScript, with enterprise-grade build tooling and absolute bulletproof memory management. Let’s dive into what makes v2 an absolute game-changer. The Pillars of the TypeScript Rebirth 1. Full TypeScript Migration & Modern Bundling We didn't just add types; we transformed the entire runtime engine core and internal modules from .js to .ts . Every piece of code is now strictly type-safe, offering self-documenting APIs and flawless IDE autocompletion (IntelliSense) right out of the box. We also waved goodbye to publishing raw, uncompiled source files. Levelo-Js v2 now ships with production bundles powered by tsup . The engine is now pre-bundled into highly optimized, tree-shakable ES Modules ( compiler/index.js ), making your production build lighter than ever. 2. Hierarchical Tracking Context ( owner.ts ) Handling nested reactive scopes and side-effects can easily lead to chaotic state bugs if not tracked properly. v2 introduces a robust Reactive Ownership Architecture . This creates a clean parent-child tracking hierarchy, ensuring that nested state updates always know exactly where they belong in the application tree. 3. Ownership-Driven Effects & Zero Memory Leaks Memory leaks are the silent killers of Single Page Applications (SPAs). In v2, our core effect() engine has been deeply integrated with the new ownership layer. The breakthrough? It now auto-disposes stale tracking dependencies automatically. We ran heap
# Building an AI Sales Intelligence Platform in Just 12 Hours at Hack Aarambh 2026 Turning sales conversations into actionable business insights using AI. Yesterday, my team and I participated in Hack Aarambh 2026 at Swarnim Startup & Innovation University (SSIU) . Like every hackathon, the challenge wasn't just writing code—it was identifying a real-world problem, designing a practical solution, and delivering a working prototype within 12 hours . Instead of building another chatbot or productivity tool, we wanted to solve a problem faced by almost every sales-driven organization. The Problem Every day, sales teams spend hours talking to potential customers. These conversations contain valuable information such as: Customer pain points Buying intent Competitor mentions Product feedback Common objections Feature requests Unfortunately, most of this information remains buried inside meeting recordings or handwritten notes. Managers rarely have time to review every conversation, which means valuable business insights are often lost. That became our motivation. Introducing AI Sales Intelligence Platform Our project is an AI-powered platform that automatically analyzes sales conversations and transforms them into actionable insights for both sales representatives and business leaders. Instead of manually reviewing calls, users receive: AI-generated summaries Customer intelligence Actionable recommendations Performance analytics Business insights ...all within seconds. What We Built AI Call Transcription & Summarization The platform automatically converts conversations into readable transcripts and concise summaries. Customer Intelligence The platform identifies: Customer sentiment Buying intent Objections Competitor mentions Important discussion topics This helps sales teams focus on what actually matters. AI Generated Follow-ups Writing follow-up emails after every meeting is repetitive. Our platform automatically generates personalized follow-up emails based on each c
When learning a new technology, most of us follow a familiar path. We start with the official documentation. Then we search GitHub repositories. We read blog posts. We watch YouTube tutorials. Eventually, we ask an AI assistant when we get stuck. Each resource solves a different problem, and the best developers know when to use each one. Documentation Is the Foundation Official documentation should almost always be your first stop. It tells you how a framework or library is intended to work. The information is usually accurate, maintained, and version-specific. If you're learning React, Next.js, or Node.js, the official docs provide the most reliable starting point. But documentation has limits. It explains what something does, not always why developers use it in real projects. Community Content Fills the Gaps That's where blog posts, conference talks, and open-source repositories become valuable. Experienced developers share: Real-world architecture decisions Common mistakes Performance considerations Debugging strategies Project structure Deployment workflows These practical insights often don't belong in official documentation, but they're essential for becoming a better engineer. AI Has Changed the Workflow AI assistants have become another tool in the developer toolbox. Instead of searching through multiple pages, developers can ask targeted questions like: Why is this hook re-rendering? What's the difference between these two approaches? How can I improve this query? Can you explain this error message? AI doesn't replace documentation. It helps you understand it faster. The most effective workflow is using documentation as the source of truth while letting AI explain concepts, compare approaches, or clarify confusing examples. Build Your Own Reference Library One habit that's improved my productivity is creating a personal knowledge base. Whenever I solve a difficult problem, I write down: The issue Why it happened The solution What I learned Links to relevant
If you only tracked one part of the agent economy this June, you'd have missed how fast the rest of the stack is being built. So here's a roundup, and one honest observation about the piece that's still missing. Four launches, one month Four things shipped in roughly four weeks, and together they sketch the shape of the machine economy: MetaMask Agent Wallet (Jun 8) - a self-custodial wallet an AI agent can drive directly. Keys for machines. Coinbase for Agents (Jun 11) - an MCP + CLI surface that connects an agent to a Coinbase account, riding on x402, which has now processed well past 160M payments. OKX.AI marketplace (Jun 30) - persistent on-chain identity, cross-job reputation, and escrow-backed dispute resolution, all in one platform. Kustodia MCP escrow - a smart-contract escrow on Arbitrum, exposed as MCP tools so an agent can create an escrow, lock funds, monitor for delivery, and release payment through natural-language calls. It also supports x402, Google's AP2, and Coinbase's AgentKit. Add the payment-rail data around all of it: across the tracked x402 flows this year, USDC is the overwhelming majority of value moved, and the median agent payment sits in the cents. This is a real economy forming, not a demo. Every one of those launches is genuine progress. And every one of them, at the moment that matters, has someone other than the two counterparties holding the asset. The pattern: hold, then decide Look at where the money physically sits during a transaction in each model. A wallet holds your keys - fine, that's custody of your own funds by design. A payment rail moves value from your account to theirs - a transfer, one direction. A marketplace with escrow holds both sides' value and releases it when a condition (often a human-designed evaluator or dispute process) says so. Kustodia is the cleanest statement of the escrow model, so it's worth being precise about it rather than vague. Their Arbitrum contract acts, in their own framing, as an impartial re
**_Hi everyone! We're three 16-year-old friends learning to code. Instead of building "just another app," we want to solve a real problem that developers actually face. So we have one question: Think about a moment when you caught yourself saying, "Why hasn't anyone built a good solution for this yet?" What was the problem? It can be anything: something that wastes your time, something frustrating, a repetitive task, a confusing workflow, or anything that made you wish a better tool existed. We're not trying to sell anything. We're simply listening and looking for real problems worth solving. Every answer means a lot to us. Thank you!_**
Summer 2026 marks the 30th anniversary of Jay-Z’s debut Reasonable Doubt. To honor it, he put on a massive concert at Yankee Stadium—complete with performances from Beyoncé, Nas, and Alicia Keys.
Adapted from an appendix of my MS thesis. Markov Chain Monte Carlo Almost as soon as computers were invented, they were used for simulation. Markov chain Monte Carlo (MCMC) was invested as Los Alamos, Metropolis et al (1953) simulated a liquid in equilibrium with its gas phase. Their tour de force was the realization that they did not need to simulate the exact dynamics, they only needed to simulate some Markov chain with the same equilibrium distribution. The Metropolis algorithm was widely used by chemists and physicists, but was not widely known among statisticians until after 1990. Hastings (1970) generalized the Metropolis algorithm, and simulations following his scheme are said to use the Metropolis-Hastings (MH) algorithm [1]. A special case of the MH algorithm was introduced by Geman et al (1984) discussing optimization to find the posterior mode rather than simulation. Algorithms following their scheme are said to use the Gibbs sampler. It took some time for the spatial statistics community to understand that the Gibbs sampler simulated the posterior distribution, thus enabling full Bayesian inference of all kinds. Gelfand et al (1990) made the wider Bayesian community aware of the Gibbs sampler, and then it was rapidly realized that most Bayesian inference could be done using MCMC, whereas very little could be done without MCMC. Green (1995) generalized the MH algorithm as much as it could be generalized [1]. Theoretical Foundations A sequence X 1 , X 2 , … of random elements of some set is a Markov chain if the conditional distribution of X n + 1 given X 1 , … , X n depends on X n only. The set in which the X i take values is called the state space of the Markov chain. A Markov chain has stationary transition probabilities if the conditional distribution of X n + 1 given X n does not depend on n . This is the main kind of Markov chain of interest in MCMC. The joint distribution of a Markov chain is determined by the following [1]. The ma