A registrar that became a landlord. Namecheap hosts 386,450 domains in our index, not just sells them. The company that sold you the name now also keeps the lights on.
cl0q.com/site/nameche...
#webdev #domains #internet
namecheap.com · cl0q
Search
1000 results for “that_marouk_ish”
-
-
The people were taught that their race was "superior." Since this concept of "superior" and "inferior" race is completely contrary to the findings of all science, science has to be as carefully controlled and perverted as the schools.
#fascism #uspol #history #propaganda -
8 Cozy Gnocchi Recipes That Elevate Any Weeknight Dinner
https://www.seriouseats.com/gnocchi-dinner-recipes-12182918
Eight gnocchi recipes for weeknight dinners that punch above their weight - whether starting from store-bought pillows or hand-rolled from scratch, the results are cozy and worth the effort.
#food #recipe #pasta -
@Geri I bet that he will not kick the elbit systems subsidiary out of brazil because it makes too much taxable revenue for him
#Lula #Anarchism #Zionism #ElbitSystems #Israel #Palestine #Electoralism
-
I had an endpoint that sorts log lines as they come off a queue: route the ERROR ones one way, everything else another. The hot loop is one check, does this line start with "ERROR", and I'd written
line.StartsWith("ERROR")without a second thought. It's the most obvious thing you can type.Then I had the service under load with a profiler open, and a surprising slice of time was parked inside
CompareInfoand the globalization stack underneath it. For a prefix check on ASCII log lines. That's when it clicked thatStartsWith(string)doesn't do what I thought it did.The default overload is linguistic, not literal
Here's the thing I'd forgotten.string.StartsWith(string)andstring.IndexOf(string), the overloads that take only a string, don't compare characters. They compare text, using the current culture's rules, which on most boxes means routing through ICU for a full linguistic comparison. That's the machinery that knows "ff" and "ff" are the same word, that a soft hyphen shouldn't count, that casing folds differently in Turkish. Handy when you're sorting names a person will read. Total overkill when you're asking whether a byte string begins with five known ASCII letters.The fix is to say what you actually meant:
line.StartsWith("ERROR", StringComparison.Ordinal)
Ordinal means compare the char values, in order, and stop. No culture, no collation table, no ICU.
I counted it
I don't trust my gut on this stuff, so I wrote the smallest thing that would show the gap. Two million log-ish lines in an array, five prefixes mixed in so the comparison has to actually look at characters:string[] prefixes = { "INFO ", "WARN ", "DEBUG ", "ERROR ", "TRACE " };
var lines = new string[2_000_000];
for (int i = 0; i < lines.Length; i++)
lines[i] = prefixes[i % prefixes.Length] + "request " + i + " finished in " + (i % 400) + "ms";Then count how many start with "ERROR", the polite way and the ordinal way:
static long CountCulture(string[] lines)
{
long n = 0;
foreach (string s in lines)
if (s.StartsWith("ERROR")) n++; // CurrentCulture
return n;
}static long CountOrdinal(string[] lines)
{
long n = 0;
foreach (string s in lines)
if (s.StartsWith("ERROR", StringComparison.Ordinal)) n++;
return n;
}The harness is nothing fancy. A stopwatch, a warmup call for each path so the JIT and the ICU tables are hot, then the best time out of seven, with the allocation counter read around each pass:
static long Measure(Action a, out long bestMs)
{
bestMs = long.MaxValue;
long bytes = 0;
var sw = new Stopwatch();
for (int run = 0; run < 7; run++)
{
long before = GC.GetAllocatedBytesForCurrentThread();
sw.Restart();
a();
sw.Stop();
bytes = GC.GetAllocatedBytesForCurrentThread() - before;
if (sw.ElapsedMilliseconds < bestMs) bestMs = sw.ElapsedMilliseconds;
}
return bytes;
}It's a single-file console app on .NET 10, top-level statements, nothing else in it. Here's what came back:
StartsWith (culture) : 27 ms
StartsWith (ordinal) : 18 ms
ratio : 1.5x
allocated (culture) : 0 bytes
allocated (ordinal) : 0 bytesThat was a bit of a letdown, if I'm honest. I'd built this up in my head as the villain and it came in at 1.5x. Real, repeatable, but not the kind of number that changes your afternoon. And neither path allocates a byte, so this is pure CPU, no garbage to chase.
Then I ran the same question through
IndexOf, because plenty of my "does this contain" checks are written the same lazy way:IndexOf (culture) : 109 ms
IndexOf (ordinal) : 30 ms
ratio : 3.6xThere's the one that was actually hurting. A substring search under a linguistic comparison is a lot more work than a prefix check. It can't just glance at the front, it has to weigh matches at every position with full collation rules. Roughly 3.6x on the same data. That's the call I should have been worried about from the start.
These are ratios off a Linux container, not a lab bench with the clocks pinned, so the absolute milliseconds will land somewhere else on your hardware. The shape holds up though: ordinal is cheaper, and substring search is cheaper by a lot more than a prefix check.
Ordinal isn't a free find-and-replace
Here's the caveat, and it's a real one. Ordinal and culture don't always give the same answer. That's the entire reason they're separate methods, and it's why you can't just sweep the codebase swapping one for the other.string shy = "coop.log"; // a soft hyphen sits between "co" and "op"
shy.StartsWith("coop"); // True - culture treats the hyphen as invisible
shy.StartsWith("coop", StringComparison.Ordinal); // False - ordinal sees the hidden charCulture-aware comparison treats that soft hyphen as nothing, so it matches "coop". Ordinal sees nine characters and says no. For log routing, ordinal is exactly what I want: the literal content, invisible characters and all. For anything a human typed and expects to match "naturally", though, like search boxes, usernames, display sorting, the linguistic version is the correct one, and the extra cost is the price of being correct.
My rule of thumb now: if the strings are protocol rather than prose, so headers, enum names, file extensions, log levels, anything machine-generated, reach for
OrdinalorOrdinalIgnoreCaseby default. If a person wrote it and a person will read it, leave the culture-aware comparison where it is. The analyzer CA1310 flags exactly these call sites if you switch it on, which beats grepping for them by hand.The quiet irony is that ordinal is both faster and usually what you meant for this kind of data. It's just not the default, and the default looks so harmless sitting there.
So what's the laziest string comparison hiding in your hot path? Check the
Containscalls first, those areIndexOfunderneath.— still benchmarking corners of the standard library nobody asked me to#csharp #dotnet #programming #webdev #software #coding #development #engineering #inclusive #community
StartsWith Was Asking ICU Every Time -
Two open approaches that fit together naturally: #PM² is the European Commission’s free and open project management methodology, and #OpenProject is open source software.
Our new guide follows fictional project manager Zhara through all four PM² phases in OpenProject, showing how to put the methodology into practice.
Read more: https://www.openproject.org/blog/pm2-stey-by-step-guide/
#FOSS #ProjectManagement #OpenSource #DigitalSovereignty #EuropeanCommission
-
Building a compressor that competes on complete archive size Compression experiments can...#performance #programming #rust #softwaredevelopment #software #coding #development #engineering #inclusive #community
Building a compressor that competes on complete archive size -
The one change that worked: I told the men in my life I loved them – and my world opened up
By Ioan Marc JonesAt first I felt uncomfortable telling my dad, brother and friends how I felt. But I soon found it liberating, and once I started, I couldn’t stop
#Men #Men #Friendship #Family #Lifeandstyle #Society #TheGuardian #IoanMarcJones
-
XeroLinux launches a solution that simplifies iPhone backups on Linux.
https://gadgetflux.eu/xerolinux-ibr-backup-iphone-pe-linux/
#XeroLinux #iBR #Linux #iPhone #iPad #OpenSource #Backup #Apple #TechNews #GadgetFlux
-
Analyzed a project that we just delivered, successfully. Except we had higher expectations to what success looks like. Yep, AI.
We expected to come up with a significantly higher degree of automation than what we did. While we (devs) report that without the tooling we used it would have been 3--5x the effort, the others report 0.5x our effort doing it *differently* with their tools.
What fascinates me the most is the time when we run automation that should have been unattended, but ended up attending for 200 hours. We did something while the automation was running. And we accepted the automation run slower than any reasonable expectation should allow for.
-
Today I learnt that you can use a physical keyboard with iPhones. I’m very happy about this and will be using it for everything possible.
-
A game that won’t count, but could pay off: Duke-Kansas brings high stakes to Allen Fieldhouse | Basketball https://www.rawchili.com/nba/868020/ #Basketball #CollegeBasketball #KansasJayhawksDukeBlueDevilsCollegeBasketballExhibitions #men #ncaa #NCAABasketball #ncaab #Sports
-
The Surprising Numbers That Make Up the South Dakota Map https://www.diningandcooking.com/us/63111/ #articles #NorthDakota #NorthDakotaDining #NorthDakotaFood #NorthDakotaGroceryStores #NorthDakotaRestaurants
-
What's that bird call? Ooh, I don't think I've seen that bird here before. If I have, not in decades. Could it be? Whips out phone, zooms in enough that wobbles are losing the bird. [clicks]
[looks at pics]
Wait a minute, two of them?Another had arrived, & I was wobbling between each bird, thinking there was only one! 😂
*Two* sacred kingfishers
-
Also discussed: An instrument that's just the screechy tube part of the bagpipes. (Ep.259)
-
A game that won’t count, but could pay off: Duke-Kansas brings high stakes to Allen Fieldhouse | Basketball https://www.rawchili.com/5133938/ #basketball #KansasJayhawksDukeBlueDevilsCollegeBasketballExhibitions #men #ncaa #NCAABasketball #NCAAB #sports
-
ISC2 offers two certifications that people often weigh against each other: Certified in Cybersecurity...#cybersecurity #security #certification #career #software #coding #development #engineering #inclusive #community
ISC2 CC vs CISSP: Which Security Certification First? -
An agent that goes quiet for ten minutes does not feel autonomous. It feels broken. A spinner and a made-up “82% complete” label are not much better: they encourage users to trust a number your system cannot justify.
The fix is not to stream the model's hidden reasoning. It is to publish a small, evidence-backed account of the work: what phase the run is in, the last verified milestone, whether it needs a person, and what will happen next. This article shows how to build that contract for long-running, tool-using AI agents.
The progress problem is really a trust problem
Users ask three practical questions while an agent runs:- Is it still alive?
- Did it make meaningful progress?
- Do I need to do anything?
A token stream answers none of these reliably. It can continue while a tool is stuck, and it can stop even though a durable workflow will resume later. Likewise, an LLM-generated status such as “almost finished” is a prediction, not evidence.
Treat status as a product contract. The user-facing timeline should be derived from workflow events your system can verify: a job was accepted, a connector returned records, validation passed, an approval is waiting, or a final artifact was stored. The model may suggest a label, but it should not be the source of truth for state.
This distinction also protects privacy. A useful update is “Checked 42 invoices; 3 need review,” not a transcript of the agent's scratch work, retrieved customer text, or chain of thought.
Start with a state machine, not a progress bar
StateMeaning to the userRequired evidenceUseful UI action
Long-running agent work has more states thanrunningandfailed. Model the states explicitly and make transitions durable.queuedWork is accepted but has not startedrun record createdCancelrunningA worker currently owns the runlease heartbeatStopwaiting_on_toolThe run is awaiting a bounded external calltool request ID and deadlineCancelwaiting_on_userA decision or missing input is requiredapproval or question IDReview / answerretry_scheduledThe system will retry laterretry time and error classCancel / view detailssucceededThe requested result was verified and savedoutput receiptOpen resultfailedThe run cannot continue automaticallyfailure class and last checkpointRetry / contact supportcancelledWork was intentionally stoppedcancellation receiptRestart
Avoid a vaguepausedstate. If the workflow is paused because it needs an address, showwaiting_on_user. If it is paused because a vendor rate-limited it, showretry_scheduled. Specific state names let a user decide what to do without reading logs.Here is a compact TypeScript event shape. It is deliberately about observable work, not hidden reasoning.
type RunEvent = {
runId: string;
sequence: number; // monotonic per run
at: string;
type: "phase_started" | "milestone" | "approval_needed" |
"retry_scheduled" | "completed" | "failed";
phase?: "preparing" | "collecting" | "verifying" | "delivering";
message: string; // reviewed, user-safe copy
evidence?: {
kind: "artifact" | "tool_receipt" | "checkpoint" | "approval";
id: string;
};
action?: { label: string; url: string };
};Persist these events in the same transaction that changes workflow state, or attach them to an outbox. A UI event that says “report ready” before the report is stored is worse than no event at all.
Publish milestones, not a narrated thought process
Choose milestones at boundaries where the system can prove something changed. Good milestones are stable across model versions and useful if a run resumes tomorrow.For a document-analysis agent, the timeline might be:
- Request accepted
- Source file scanned and indexed
- 42 records extracted
- Policy checks completed
- Three exceptions need a decision
- Final report saved
Notice what is absent: “thinking about clause 7” or “I believe this source is probably relevant.” Those claims are neither a dependable progress signal nor an appropriate audit record.
Each milestone needs an owner. The workflow engine owns checkpoint messages; the connector owns data-fetch receipts; the policy service owns validation results. If no component can produce evidence for an update, leave it out.
That rule prevents a common failure mode: a chat interface keeps emitting cheerful prose while the actual job stopped moving. Your supervisor should detect stale progress independently of the agent. For example, mark a run
stalledinternally when its lease heartbeat is fresh but neither a checkpoint nor a tool receipt has advanced within the expected phase window. The user-facing text can then say, “Still working longer than expected; no action needed yet,” or escalate honestly to “This task needs attention.”Design an honest progress model
Percent complete works only when units of work are known. A migration over 10,000 rows has a denominator. An open-ended research task generally does not.Use one of these models instead:
Work shapeBest indicatorExampleFixed batchcompleted / total318 of 500 files checkedKnown workflowcompleted phaseVerifying findings (3 of 4 phases)Open-ended workelapsed time plus latest verified eventLast verified update: sources indexedApproval flowblocked state and decision impactNeeds approval before sending 3 emailsRetryable external worknext retry and preserved checkpointRetrying connector at 14:05; 18 items saved
Do not convert phase count into a false percentage. Four phases do not necessarily take equal time, and the model can loop inside one phase. If you show an estimate, label it as a range derived from similar completed runs, and hide it when the sample is weak.function statusCopy(run: Run) {
if (run.status === "waiting_on_user")
return "Your decision is needed before this task can continue.";if (run.completedUnits != null && run.totalUnits != null)
return `${run.completedUnits} of ${run.totalUnits} items verified`;return `Last verified update: ${run.latestMilestone.message}`;
}The word verified matters. It teaches users what the timeline represents and sets a standard your team can test.
Make waiting visible and actionable
The most damaging silence is not a slow model call. It is an agent waiting for a person while the product looks busy.An approval event should include the decision, the consequence, the safe default, and an expiry rule. Keep the payload concise and reviewable:
{
"type": "approval_needed",
"message": "Three customer records have conflicting addresses.",
"question": "Which address should be used for the renewal notice?",
"options": ["CRM record", "latest support ticket", "skip these records"],
"default": "skip these records",
"expires_at": "2026-10-26T15:00:00Z",
"evidence": { "kind": "approval", "id": "apr_8f2" }
}Never bury an approval in a scrolling chat. Surface it as a run state, send a notification only when action is required, and ensure a resumed run re-reads the approved decision from durable storage. This pairs well with approval gates, but it solves a different problem: making the wait understandable to the person who initiated the work.
Transport updates without building a fragile realtime system
Start with the simplest transport that fits your product.- Polling is enough for minute-scale background jobs. Return
status,latest_event, andetag; back off when nothing changes. - Server-sent events work well for one-way timelines and reconnect cleanly with
Last-Event-ID. - WebSockets fit collaborative workspaces where users can also approve, stop, or redirect a run live.
- Notifications should be sparse: completion, failure, and
waiting_on_userare normally worth interrupting someone; routine milestones are not.
Regardless of transport, the client must tolerate duplicate and out-of-order events. Use the
sequencefield, make the event stream append-only, and fetch the authoritative run snapshot after reconnecting. The UI is a projection; the workflow database remains the authority.Build the API around a durable run record
A small API surface is easier to secure and test than a channel full of ad hoc text.GET /runs/run_123
{
"status": "waiting_on_user",
"phase": "verifying",
"latest_event_sequence": 17,
"latest_event": {
"message": "42 records verified; 3 need a decision",
"at": "2026-10-26T12:04:12Z"
},
"actions": [{ "kind": "approve", "approval_id": "apr_8f2" }]
}Keep sensitive tool arguments, raw documents, and internal exception stacks behind a permissioned diagnostics view. The default run page should disclose only the minimum a user needs to understand progress and take the next action.
Test the status contract like an API
Status is part of the user experience, so add tests beyond the happy path:- A run cannot become
succeededwithout an output receipt. - A
waiting_on_userrun always exposes a decision action and cannot spend tools until it resumes. - Replayed events create the same final timeline.
- A reconnect receives no duplicate visible milestones.
- A cancelled run cannot later publish a success event.
- A stale worker lease produces an honest recovery state, not permanent “Working…” copy.
- User-safe messages contain no prompt, secret, customer text, or chain of thought.
it("does not claim success before output exists", async () => {
await workflow.emit({ type: "completed", evidence: undefined });
expect(await runs.get("run_123")).toMatchObject({ status: "failed" });
});This is also where observability earns its keep. Measure time to first verified milestone, time spent waiting for users, stale-run recovery rate, and the share of runs that finish with a useful artifact. Avoid treating the number of progress messages as a health metric; a noisy timeline can conceal a poor workflow.
A practical rollout plan
Do not retrofit every agent at once. Start with one workflow where users currently refresh a page or ask support whether a job is stuck.- Define the state machine and ownership of each transition.
- Add durable run records and one evidence-backed milestone per phase.
- Replace generic spinners with the latest verified update.
- Promote approval waits to a clear, resumable state.
- Add stale-run detection and a recovery message.
- Instrument completion quality, not just elapsed time.
The result is deliberately less theatrical than a stream of simulated thinking. It is far more useful: people can leave a long-running agent alone, return with context, and intervene exactly when their judgment is needed.
Keep the language stable across releases
Treat visible status copy as part of your API. Changingwaiting_on_userfrom “Needs your decision” to “Paused” may seem cosmetic, yet it can break notification rules, customer runbooks, and accessibility labels. Version the event schema, localize messages at the presentation layer, and keep a small compatibility test suite for every public state. That discipline pays off when new models, tools, and workflow engines arrive: the user still receives the same clear promise about what has happened and what they can do next.FAQ
Should an AI agent show its chain of thought as progress?
No. Show concise, evidence-backed milestones instead. They are more reliable, safer for sensitive data, and easier for users to act on.How often should an agent send status updates?
Update on meaningful state changes, verified milestones, and action-required moments. For long silent phases, add a bounded heartbeat that says the job is still owned, not a stream of filler messages.Is a percentage complete useful for AI agents?
Only when the work has a known denominator, such as files processed or records checked. Otherwise show the phase, elapsed time, and most recent verified milestone.What is the best state for an agent waiting on a person?
Use a specificwaiting_on_userstate with the exact question, a safe default, and a resumable approval ID. Do not leave the run labeledrunning.Can polling work for long-running AI workflows?
Yes. Polling is simple and reliable for background tasks that update every few seconds or minutes. Use ETags and backoff, then move to SSE or WebSockets only when the interaction requires it.How do you detect an AI agent that is stuck?
Track worker leases, tool deadlines, and the time since the last verified milestone. A supervisor outside the model should classify stale runs and surface a recovery state.#ai #ux #programming #devops #software #coding #development #engineering #inclusive #community
AI Agent Status Updates: Build Progress Users Can Trust Without Exposing Chain of Thought -
The article says that Brackley/Jackson was a poet and this one foray into prose was poorly received, which is too bad, because I would kill multiple men with a hammer to be able to write prose like that
-
-
-
-
Betcha didn't see that comin'!
-
Twelve records that turn a sample test into a qualified part: identity, boresight, range verification, accuracy, interface, power, environmental, sealing and safety.#hardware #manufacturing #embedded #codequality #software #coding #development #engineering #inclusive #community
What a first article inspection for a rangefinder actually contains -
A reminder that tonight's session is from Cavemen Mystery
-
Any place that sells a Double-Double Negative
-
I feel very strongly that if you roll up to people working in a problem domain you do not have expertise in and take a problem they've been working on and tell them "I asked an LLM and it said" you are being aggressively rude and we should treat that as a socially unacceptable behavior.
-
it figures that i struggled to work up[ the courage and knowledge to self host Nextcloud from home until this year and wouldn't you know, i get had by the PHP bug! haha, frickin A man. well idk if i was had, but the server was crashed and there was no reason for it to be been up for months no issues. made no changes. It was patched, but not mitigated for the other CVE. its offline until we can come up for air... or we just drown, you know, either way.
-
The Popular Chicken Restaurant That Sells Fan-Favorite Burgers https://www.diningandcooking.com/restaurants/45367/ #Restaurant #Restaurants
-
Those of you that are using tenable for vulnerability management, the plugin id that looks for the php2shell vulnerability in Palo Alto falsely claims patches were made available the same day as the announcement.
Fun and hilarity ensues when ServiceNow SecOps VR gives me 48 hours to remediate when vendor patches *start* trickling out in 72 hours.