home.social

Search

226 results for “almost_senselesss”

  1. Hoover’s TD run lifts No. 6 Indiana to 13-6 OT win at Michigan, its 1st win at Big House since 1967

    ANN ARBOR, Mich. – Josh Hoover is banged up and was almost benched because of his injuries. Curt…
    #NewsBeep #News #US #USA #UnitedStates #UnitedStatesOfAmerica #BreakingNews #BryceUnderwood #CurtCignetti #Headlines #JoshHoover #Sports #TommyCarr #Topstories #TopStories
    newsbeep.com/us/893442/

  2. LIVE BLOG: Edmonton Elks at Saskatchewan Roughriders | GX94 Radio – Now That’s Country!

    11:02 a.m.The Riders have had luck with the weather almost all season, but today, my oh my. Not…
    #Canada #Edmonton #Agriculture #contests #CountryMusic #gx94 #manitobanews #radio #riderradio #SaskatchewanNews #saskatchewanroughriders #saskatchewansports
    europesays.com/canada/262921/

  3. 🎃 #Halloween Spooktacular 01 - Creepy Abandoned Hospitals

    💉Kill or cure; these decaying medical facilities are long closed. Asylums, their long corridors with peeling paint and smashed windows. Almost pristine hospitals, with the power still on and beds still made. Silent operating theatres and empty wards.

    📷 Explore #abandoned hospitals - obsidianurbexphotography.com/p

    #AbandonedPlaces #LostPlace #Portfolio #Macabre #Spooky #Haunted

  4. We have AI tools that can write code, summarize documents, generate ideas, and answer almost any question.

    But there is still a problem I keep thinking about:

    AI can help us figure out what to do. But what helps us actually do it?

    You can ask an AI to create a study plan, build a roadmap for your startup, or organize your daily routine. The response might be excellent.

    Then real life happens.

    You miss a deadline. You get distracted. A task becomes more complicated than expected. Your original plan stops making sense.

    And suddenly, that beautifully generated plan becomes another forgotten document.

    That got me thinking about a different kind of AI-powered product.

    Introducing Cometflow LifeOS

    Cometflow LifeOS, by Cometflow Space, is built around one simple idea:

    Intent → Reality.

    Instead of treating AI as a place where you only ask questions, imagine an experience designed around turning intentions into real, trackable progress.

    You start with something you want to accomplish.

    For example:

    • Learn web development.
    • Prepare for an important exam.
    • Launch a small project.
    • Build a consistent daily routine.
    • Turn an idea into a working product.

    The goal isn't just to generate a list of tasks. It's to help connect the goal with the steps, resources, deadlines, and follow-ups needed to move forward.

    The idea behind LifeOS

    I'm exploring three connected concepts.

    1. The Intent Graph

    A goal rarely exists on its own.

    Launching a website might require learning a framework, designing the interface, building features, testing the application, and publishing it.

    The Intent Graph represents these relationships so that a big goal becomes a sequence of understandable actions rather than one overwhelming task.

    1. The Reality Loop

    Plans should adapt to reality.

    What if your AI assistant checked in at a time you chose, asked what you accomplished, understood what blocked you, and helped determine the next practical action?

    Instead of repeatedly generating new plans, the experience could build on previous progress.

    The principle is simple: when reality changes, the plan should change too.

    1. A More Connected Intent Network

    Eventually, goals may require more than personal organization.

    They might involve useful tools, learning resources, collaborators, or services. A connected system could help people discover what they need to move from an idea to an outcome.

    The challenge is making these connections genuinely useful without overwhelming users with notifications or unnecessary complexity.

    Why build another productivity app?

    That's a fair question.

    There are already excellent task managers, calendars, habit trackers, and AI assistants.

    I don't think the answer is to put a chatbot inside another to-do list.

    The more interesting question is:

    Can we design software around the progress a person wants to make, rather than the tasks they happen to enter?

    That means thinking about context, dependencies, setbacks, follow-ups, and what the user should do next.

    It also means respecting user control. An assistant should help people make decisions, not turn their lives into an endless stream of automated reminders.

    The difficult engineering questions

    This concept raises several questions I'm interested in exploring:

    • How can an AI maintain useful context across multiple days?
    • How can it distinguish meaningful progress from simply completing tasks?
    • When should it suggest a change instead of generating another plan?
    • How can we make the experience useful without requiring users to sign up before they can try it?
    • How can we build an engaging system without making it addictive or notification-heavy?

    These are product-design problems as much as AI problems.

    A genuinely useful LifeOS should help people become more capable and independent over time, not more dependent on the assistant.

    Building in public

    Cometflow LifeOS is an independent product under the Cometflow Space ecosystem, and I'm interested in exploring how this idea can become a practical daily-use experience.

    The goal is ambitious, but the principle is straightforward: help people turn intentions into actions, learn from what actually happens, and keep moving forward.

    I would rather build a focused system that helps someone achieve one meaningful goal than a giant dashboard full of features they never use.

    I have a question for developers and builders

    Imagine you could give an AI assistant one responsibility beyond answering questions.

    Would you want it to:

    1. Help you stay consistent with long-term goals?
    2. Adapt your plans when things go wrong?
    3. Organize your projects, resources, and next actions?
    4. Help you turn ideas into finished products?

    Or do you think this entire concept needs a different approach?

    I'd genuinely like to hear your perspective. What would make an AI-powered LifeOS useful enough to become part of your everyday routine?

    AI #Productivity #WebDev #BuildInPublic

    #ai #programming #apk #productivity #software #coding #development #engineering #inclusive #community
    What If AI Didn't Just Answer Your Questions, but Helped You Actually Get Things Done?

  5. Hebron is under siege, Palestinian families are losing their homes and their shops.

    The Israeli military evicted almost 500 Palestinian apartments in Hebron . 100 shops were closed too .

    Many Other shops and houses were demolished too near the attack area .

    #palestine #hebron

  6. Our rose bushes are replete with buds that probably won't survive long enough to open, so K has been bringing them inside in batches whereupon they open nicely and we get to enjoy them for a few days. Almost ready for a few more.

    #roses #autumn #flowers

  7. ❤️ THREE OUT OF FOUR AIN’T BAD! ❤️ - ❤️ THREE OUT OF FOUR AIN’T BAD! ❤️ Maude and Matilda update. After 68 days in Bradford Cat Watch Rescue and Sanctuary we are delighted to tellyou that Maude and Matilda are almost ready to find their forever indoor home. When they first arrived with us we thought that both kittens may face losing both […] bcwr-kittens.co.uk/%e2%9d%a4%e

  8. This, like the privatisation scheme that has led to so much profiteering and corruption, is naive and short sighted. Without considerable oversight it is almost certain to lead to major misuse and considerable corruption.

    It must stop.
    #ukgovernment naive and easily led ?
    #ukpol #society warped
    #burnham must do something ?

    gov.uk/government/publications

  9. "My first piece covered the first 15 months of Trump’s second administration; as astonishing as it was seeing it all together, ...the excesses of the five months since are almost unfathomable.

    More stories will come to the surface after I publish this piece... Don’t believe me? Consider just 10 stories that have broken in the last three weeks, since I finished the first draft of this piece"
    readtangle.com/the-corruption-

    #DonaldTrump #Trump #Corruption #Crime #GOP #Politics #News #US #USA

  10. New paper: In a small study with 32 people who were learning science from an AI tutor that was confidently wrong, the participants took over around two of three of its false informations, and they felt almost as sure about them as about the true facts.

    Their trust in the AI did barely drop, what suggests that sometimes it's not the AI who bends to the user, but the user who bends to the AI.

    arxiv.org/abs/2610.31579

    #AI #AIAlignment #AIAndI

  11. Good morning! 🎊🪩🎉 It's a party out here! LOL It's still really dark on #WestCoast. You don't know but #MissKitty sits outside almost all the time even when it's really fucking cold. How do #homeless people get a glass of #water? That's really bugging me this morning. Forget a shower, a cup of water?

  12. If only the tenth part of the religion and the morals that are in books existed in the heart! But what almost universally happens is that the greater part of human wisdom, soon after its production, is laid to rest in repositories. Hence it was once suggested that this word must be derived, not from the Latin reponere, but direct from the French repos.

    #GeorgChristophLichtenberg

  13. China's CAICT reports daily token consumption hit about 500 trillion in June 2026, nearly four times the December 2025 level. Domestic model throughput doubled to 78.23 tokens per second, yet average prices rose almost 100 percent to 13.46 yuan, ending two years of cuts. 47.8 percent of monitored models now support 1 million tokens. pandaily.com/caict-token-servi #China #Tech #AI

  14. St Michael, Brantham, by a whisker Suffolk's most southerly* parish church. Almost all that you see's the work of John Hakewill, brother of the more famous Edward, in the 1860s. #SteepleSaturday

    *Bures St Mary and Nayland churches are nearly as far south, but a few metres short.

  15. El País RSS Feed Bot 🤖

    A visit to Laika, the animation studio where every detail is made by hand: Birds with 3,000 feathers and more than 100 sets

    The Portland studio is releasing a new stop motion film, ‘Wildwood’ that they began conceiving almost 15 years ago. ‘I don’t think technically we could have made it english.elpais.com/culture/202


  16. Of a Hollywood neighbour who had had his portrait painted in the nude with outsize genitals:
    "It's so real, you almost feel he could speak to you, don't you?"

    #DorothyParker #Parker

  17. A very convincing victory for tonight. As of posting this, she leads Bradford 54.1% to 41.2%.

    This does not speak well for the polls that said it would be close. To be fair, I think a lot of voters were persuaded by mainstream media and its uncritical reporting to look at Brad, but as the time to vote approached decide they didn't like what they were seeing and emphatically rejected Brad's crabbed conservative vision.

    Also seeing that Braeden Chow snagged almost 8,000 votes, most of which were probably votes meant forf Olivia. He's very lucky the final vote isn't close, because if Bradford had won by that margin I think Braeden woudl have had to move out of Toronto, the little weasel.

  18. «Democracy has proven unable to reign in capitalism. China executes or life imprisons billionaires who break the law, we bail them out and immunize them from their crimes by fining their companies, but not them, leaving them still rich.

    It all adds up to a horrid indictment of our system, and people are not going to put up with it forever. Liberal capitalism and liberal democracy, and perhaps democracy almost entirely, will be replaced by Party systems throughout the world over the next couple generations, starting, I’d guess, in about 15 years or so.

    Failure, greed and incompetence have consequences, and the [sic] democracy will [be] one of the casualties of our elites depravity.»

    As someone in my 60s, who was able to, without especially great effort on my part, do reasonably well in my life, it is still shocking to encounter sentiments like this. But I've been reading Welsh's articles for probably a year or more now, and I find I can't dismiss his basic arguments. Will the "death of democracy" come to pass? I don't know and neither does Welsh, but the rise of extreme inequality, the consequent capture of our institutions and governments by the wealthy few, and the collapse of opportunity for those foolish enough not be born when those things were at least less true cannot bode well for our political institutions.

    ianwelsh.net/the-death-of-demo

    #democracy #inequality #inequalitycrisis

  19. I wired up a free model endpoint last month. I sent one request. It returned 200 OK. I shipped the feature. Then the tool calls never happened. The endpoint accepted the request. It just ignored half of it. Sound familiar?

    Here is my question. What does a 200 actually prove? My answer: almost nothing about capabilities. It proves the transport worked. That is it.

    So I stopped trusting status codes and started probing the contract. This post is the FAQ I wish I had read first. It ends with a script you can run in about two minutes.

    Myth 1: A 200 means the model supports my feature


    The server can accept a tools array and silently ignore it. The model then answers in prose. No error. No warning. Your code sees a normal response and skips the branch. Is that a bug in the model? No. It is a bug in your assumption.

    The corrected model: support is a property of the endpoint, not of the model name. Probe it. Record it. Re-probe when anything changes.

    Myth 2: finish_reason is optional metadata


    It is the most important field in the response. length means the model ran out of output budget. Your answer looks fine and is probably cut in half. I have watched a parser happily eat a truncated JSON object.

    {"choices":[{"finish_reason":"length","message":{"content":"{\"items\": [1, 2, 3, 4"}}]}

    If you do not branch on finish_reason, you are parsing whatever bytes arrived. That is not a feature. That is a coin flip.

    Myth 3: Streaming and non-streaming are interchangeable


    They are two different code paths. In streaming, finish_reason arrives in the final chunk, not the first. Some servers only report token usage when you ask for it explicitly. Some omit it entirely.

    Ask yourself: does my client read the last event? Mine did not, for a week. I was logging None as the finish reason every single time.

    Myth 4: JSON mode means my schema


    It means valid JSON. It does not mean your keys. It does not mean your types. Validate every response against a schema before it touches business logic. Treat model output like user input, because that is what it is.

    Myth 5: Retries are always safe


    Retry a failed read, fine. Retry a tool call that already wrote a row, and now you have two rows. I learned this from a duplicate charge, not a blog post.

    Add an idempotency key your tool honors. Make the retry decision depend on the operation, not on the exception class.

    The artifact: a five-minute capability probe


    This script uses only the Python standard library. It assumes a chat-completions-shaped endpoint. Adjust the paths if yours differs.

    # probe_capabilities.py — smoke test only, not a benchmark
    import json, os, time, urllib.request, urllib.error, concurrent.futures as cf

    BASE = os.environ["BASE_URL"].rstrip("/")
    KEY = os.environ["API_KEY"]
    MODEL = os.environ["MODEL"]

    def call(payload, stream=False, timeout=60):
    req = urllib.request.Request(
    BASE + "/chat/completions",
    data=json.dumps(payload).encode(),
    headers={"Content-Type": "application/json",
    "Authorization": f"Bearer {KEY}",
    "Accept": "text/event-stream" if stream else "application/json"},
    method="POST")
    t0 = time.time()
    try:
    with urllib.request.urlopen(req, timeout=timeout) as r:
    return {"status": r.status, "ms": int((time.time()-t0)*1000),
    "raw": r.read().decode("utf-8", "replace")}
    except urllib.error.HTTPError as e:
    return {"status": e.code, "ms": int((time.time()-t0)*1000),
    "raw": e.read().decode("utf-8", "replace")}

    def probe_truncation():
    p = {"model": MODEL, "max_tokens": 8,
    "messages": [{"role": "user", "content": "List ten colors."}]}
    r = call(p)
    if r["status"] != 200:
    return {"probe": "truncation", "ok": False, "why": r["status"]}
    ch = json.loads(r["raw"])["choices"]
    [0] return {"probe": "truncation", "ok": True,
    "finish_reason": ch.get("finish_reason"),
    "reports_usage": "usage" in json.loads(r["raw"])}

    def probe_tools():
    p = {"model": MODEL, "max_tokens": 128,
    "messages": [{"role": "user", "content": "Read ./README.md and report its first line."}],
    "tools": [{"type": "function", "function": {
    "name": "read_file",
    "description": "Read a file from disk.",
    "parameters": {"type": "object",
    "properties": {"path": {"type": "string"}},
    "required": ["path"]}}}]}
    r = call(p)
    if r["status"] != 200:
    return {"probe": "tools", "ok": False, "why": r["status"]}
    msg = json.loads(r["raw"])["choices"][0]["message"]
    return {"probe": "tools", "ok": True,
    "returned_tool_calls": bool(msg.get("tool_calls"))}

    def probe_json():
    p = {"model": MODEL, "max_tokens": 128,
    "messages": [{"role": "user",
    "content": 'Reply with only JSON: {"status":"ok","count":3}'}]}
    r = call(p)
    if r["status"] != 200:
    return {"probe": "json", "ok": False, "why": r["status"]}
    text = json.loads(r["raw"])["choices"][0]["message"]["content"]
    try:
    obj = json.loads(text)
    return {"probe": "json", "ok": True,
    "keys_match": sorted(obj) == ["count", "status"]}
    except json.JSONDecodeError:
    return {"probe": "json", "ok": True, "keys_match": False,
    "note": "not parseable as JSON"}

    def probe_concurrency(n=2):
    p = {"model": MODEL, "max_tokens": 16,
    "messages": [{"role": "user", "content": "Say ok."}]}
    with cf.ThreadPoolExecutor(max_workers=n) as ex:
    codes = list(ex.map(lambda _: call(p)["status"], range(n)))
    return {"probe": "concurrency", "ok": True, "statuses": codes,
    "saw_429": 429 in codes}

    if __name__ == "__main__":
    for fn in (probe_truncation, probe_tools, probe_json, probe_concurrency):
    print(json.dumps(fn(), sort_keys=True))

    Run it like this. Keep the key in the environment, never in the file.

    export BASE_URL="$YOUR_ENDPOINT"
    export API_KEY="$YOUR_KEY"
    export MODEL="$YOUR_MODEL"
    python3 probe_capabilities.py

    Reading the output: a decision table

    Probe resultWhat it meansWhat I do nextreturned_tool_calls: falseTools accepted, not acted onDrop the agent branch, or change endpointfinish_reason: "length" on an 8-token capNormal, expectedKeep the check; raise budget in real callsfinish_reason: null in streamingClient is not reading the final eventFix the parser before anything elsereports_usage: falseNo token accounting from serverCount tokens client-side, or accept blind costkeys_match: falseValid JSON, wrong shapeAdd schema validation at the boundarysaw_429: true at n=2Very low concurrency ceilingQueue work; never fan out blindly


    Nothing here measures quality. Nothing here measures speed. Those are different experiments with different controls.

    Where I run this


    I run probes from a throwaway box, not my laptop. Same reason I do not test migrations on my main database. The probe should not touch anything I care about.

    MonkeyCode's free model access and free server option are the two pieces I use for that. The free model access gives the probe something to talk to. The free server option gives it a disposable place to run. Disclosure: This article was prepared as part of MonkeyCode's product outreach.

    I am not claiming the free tier is fast, generous, or permanent. I do not know its limits, and I am not going to guess at them. Run the concurrency probe and read your own numbers. That is the whole point of this post.

    Limitations and who should skip this


    • This is a smoke test. It is not a benchmark and not a load test.
    • Results describe one endpoint, one model, one moment. They expire.
    • Paid tiers can behave differently from free ones. Re-probe after switching.
    • Only probe endpoints you own or are authorized to test.
    • Do not use this to grade answer quality. It checks contract shape only.

    Skip this approach if you need contractual latency SLOs, deterministic output, or guaranteed tool-call behavior. Buy a plan with a written contract. A probe will not save you from a missing SLA.

    The corrected mental model


    Treat every free endpoint as a set of separate promises. Transport, truncation, tool calls, JSON shape, and concurrency are five different promises. A 200 only confirms the first one.

    Which promise broke on your last integration? I keep a one-page probe log per endpoint now. It has saved me two weekends so far.#ai #api #testing #python #software #coding #development #engineering #inclusive #community
    200 OK Proves Nothing About Tool Calls: A Free-Model Capability FAQ With a Probe

  20. 🏒🥅 🇨🇦 Good to see —and hear!— Stuuuuuu appreciated in Winnipeg.

    He was made “the problem” in Edmonton (because the Capt wouldn’t take 200-ft responsibility). Winnipeg’s gain. Looking forward to him getting more wins (but not against the Habs, of course!).

    “They’re not booing: Winnipeg fans have taken a fancy to goaltender Stuart Skinner, who was never part of the solution during his years at Edmonton. Almost every time he made a save on Sunday, the spectators chanted “Stuuuuuu.””

    #NHLJets #goalies #Stuuuuuuu #Habs #hnom #nhl #hockey #Canadiens #montreal @hnom

    montrealgazette.com/sports/hoc

  21. This might be the biggest thing I've shipped in Home Assistant. And also the most boring one. I'm weirdly proud of both.

    HACS is now built into Home Assistant, as the Marketplace. When ludeeus donated HACS to the Open Home Foundation, I knew it had to end up there. Something almost the entire community uses shouldn't sit on the side.

    I wrote down why we did it, what it means for you, and why it's not called a store.
    frenck.dev/hacs-is-now-the-hom

  22. you know I've been looking at passive repeaters

    a funny thing about Microflect is that they were really inconsistent about branding. Some of the older ones had a bigger Microflect logo on the front, some just have a little badge like this on a leg, some have nothing at all. I suppose when you enjoy an almost complete monopoly there isn't much need.

  23. "Minnesota has had a few remarkable turnarounds and conservation successes over the decades, resurrecting local populations of trumpeter swans and wild turkeys, bald eagles and peregrine falcons. But the return of those species took decades of intentional work and, in the case of eagles and falcons, a nationwide ban on the farming insecticide DDT.

    "It is far rarer for a lost species to simply walk back into Minnesota to start reproducing here again.

    "But here they are.

    "The return of breeding cougars is almost certainly a turning point, both for the wildcats and their push eastward, and for the Minnesota woods that harbor them, experts said."

    The unlikely comeback of the Minnesota cougar
    Story by Greg Stanley. Photos and videos by Anthony Soufflé
    startribune.com/chasing-ghosts

  24. CW: Hurt my thumb...

    Yesterday, after shaving (one of those hate-it-when-I-don't, hate-doing-the-thing, things), I slipped when unscrewing to remove the blade, and sliced the top of my thumb off... oopsy.

    It's not terrible, but the flap almost certainly didn't go back where it came from, and a bunch of the edges died away (I cut the dead bits off, leaving smooth patches from underneath).

    ... it's got me wondering - do fingerprints come back or slowly go back to what they were before?

  25. At 8:26 I make a video, then sing through the rest of the hour, pack up, walk homeward for a day of teaching, errands, resistance tasks, and a meeting. I am almost finished with my last batch of voter postcards; I did four hours of phone-banking over the weekend; I've got a loaf of bread to bake and a Registry of Motor Vehicles to visit and a bunch of video to edit.

    7/

  26. You shipped the feature, fixed the bugs, and answered the "quick question" that turned into a two-hour debugging session. The invoice went out on the first of the month. Thirty days later: nothing.

    The most I have ever waited on was $4,800. The client answered every message within a day - "accounts is processing it", "the approver is on holiday", "next Friday, promise". What got it paid was not a longer or angrier email. It was the third email in a sequence I already had sitting in my drafts folder, sent on day 30, worded almost exactly like the one below. The money arrived in 48 hours.

    If you freelance or run a small dev shop, chasing payment for finished work is one of the worst parts of the job. The fix is not a better apology for asking. It is a process: the same three emails, on the same days, every time.

    Here they are, copy-paste.

    Day 7: the polite nudge


    At seven days past the due date, assume a boring explanation. The invoice was missed, routed to the wrong person, or stuck in an approval queue. Your goal is a response without friction.

    Subject: Quick follow-up on invoice #[NUMBER]

    Hi [CLIENT NAME],

    I'm following up on invoice #[NUMBER] for [PROJECT/DELIVERABLE], which was due on [DUE DATE].

    Could you confirm that it's been received and let me know when I can expect payment?

    For reference, the outstanding amount is [AMOUNT].

    Thanks,
    [YOUR NAME]


    Why this works: you identify the invoice, state the amount, and ask for one specific next step. No accusation, no essay.

    Send it in the original invoice thread so the context travels with it. If they reply with a payment date, write it down. A promise in a casual email is easy to forget - yours and theirs.

    Day 14: the firm follow-up


    Two weeks late, be more direct. This message says the balance needs attention; it does not ask whether anyone saw your last email.

    Subject: Payment overdue - invoice #[NUMBER]

    Hi [CLIENT NAME],

    Invoice #[NUMBER] for [AMOUNT] was due on [DUE DATE] and remains unpaid.

    Please confirm the scheduled payment date by [RESPONSE DEADLINE].

    If payment has already been processed, please disregard this reminder and let me know so I can update my records.

    Thank you,
    [YOUR NAME]


    Why this works: it replaces a vague request with a clear action and a deadline, and it gives the client an easy out if payment is already moving.

    Set the response deadline at two business days. If the answer is "waiting for approval," ask when approval is expected. If "accounting pays on Fridays," ask which Friday your invoice is scheduled for. Turn "we'll get to it" into something you can track.

    Check your contract before this email. If it allows late fees, interest, or pausing work, know the terms before you invoke them. Never add fees the contract does not mention.

    These templates are communication examples, not legal advice. Check your contract and applicable local law before adding late fees or taking collection action.

    Day 30: the final notice


    A month overdue changes the conversation. Stay polite, but do not send a third email that sounds like the first one.

    Subject: Final payment notice - invoice #[NUMBER]

    Hi [CLIENT NAME],

    Invoice #[NUMBER] for [AMOUNT], originally due on [DUE DATE], remains outstanding despite my previous follow-ups.

    Please arrange payment in full by [FINAL DEADLINE] or contact me by that date to confirm a concrete payment arrangement.

    If the balance remains unpaid and I have not received an agreed resolution, I will consider the next steps available under our agreement and applicable law, which may include formal collection or recovery proceedings.

    Please confirm receipt of this notice.

    Regards,
    [YOUR NAME]


    Why this works: it is factual, it documents the history, and it sets an explicit deadline without threats you cannot carry out.

    Only name actions you are genuinely prepared and legally entitled to take. Before formal recovery, review your agreement, preserve the invoices and correspondence, and check the rules in the relevant jurisdiction. And do not assume you can shut down a live service, revoke access, or withhold source code - your contract decides that, not your frustration.

    What happens between the emails matters as much


    1. Keep a payment log. Invoice number, amount, due date, reminder dates, responses, promised dates. The day you have three late invoices, this log is the only thing keeping the story straight.
    2. Separate payment from new work. A client who has not paid asking for another feature is not an automatic yes. Review the agreement and discuss a pause or revised schedule.
    3. Make paying easy. Every email includes the invoice, the amount, payment instructions, and the reference their accounting needs. Every extra step is another week.
    4. Fix the next contract. Explicit payment terms, a defined invoicing schedule, a stated late-fee rule. For larger projects, milestone payments instead of one big invoice at the end.
    5. Do not let one client be your whole business. A great relationship is still a financial risk if one unpaid invoice stops you paying your own bills.


    Build the system before you need it


    The best time to decide how you handle late payment is before an invoice goes overdue. Set three calendar reminders for days 7, 14, and 30, save the scripts as templates, and when the day comes you fill in the brackets and send. You follow a process instead of writing an email while frustrated.

    Your turn: what is worse - clients who ignore reminders, clients who keep promising "next week," or clients who dispute the invoice after the work is done? And what actually worked for you?

    Written by the Change Brief team - we build practical, no-signup toolkits for freelancers.

    AI assistance was used in drafting this article. The publisher reviewed and edited the content and takes responsibility for the final version.#freelance #career #productivity #software #coding #development #engineering #inclusive #community
    3 Late-Payment Emails for Freelance Developers

  27. RE: mastodon.social/@Toadlyturtle/

    Please be kind and show compassion to my friend Sabi. She's a disabled Indigenous woman caring for her elderly mom who has dementia

    They are recovering from mom's recent ER stay. They need to be safe.

    $155 for today's shelter. Due in 7 hours. They almost lost shelter yesterday, please uplift so it doesn't happen again!

    Any amount helps immensely! And boost this post please. You can make a difference!

    paypal.me/SabiLewSounds

    ko-fi.com/sabilewsounds

    #IndigenousPeoples #Indigenous #Signal_boost #MutualAidSavesLives #MutualAid #MutualAidRequest #DirectAid #Disability #DisabilityCrowdfund #DisabilityMutualAid #NativeMutualAid #IndigenousMutualAid #UrgentHelp #HelpFolksLive2026 #HelpFolksLive #Help #SupportDisabledArtists #DisabledArtist #Caretaker #FoodInsecurity #HousingInsecurity #Advocacy #Hunger #Family #Community

  28. A new documentary about extinction risk and the efforts to mitigate it is now available on ARTE and features Axel Paulsch, who has been engaged with IPBES since the inception of the platform, and currently runs a capacity-building programme for from Eastern Europe, Central Asia and the Caucasus.

    arte.tv/en/videos/127467-004-A

  29. A few years ago, I checked a dependency’s license once, at install time, and never again. That habit is getting expensive.

    License changes aren’t new, but they’re happening often enough that “it’s open source” is no longer a permanent property of a project. It’s a status that can change between releases.

    The pattern is almost always the same.


    The shift nearly always runs one way: from an OSI-approved permissive or copyleft license toward a “source-available” license the Open Source Initiative doesn’t recognize as open source.

    The Business Source License (BSL) is the most common destination. It’s a “delayed open source” license: the vendor sets restrictions up front, and each version converts to a true open-source license after a change date, typically four years out.

    It’s not just the famous cases anymore. A few from this year alone:

    • Loki Mode moved from the MIT License to BSL 1.1 effective March 19, 2026.
    • Unleash announced in June 2026 that its core repository is moving from Apache 2.0 to AGPLv3. AGPL is OSI-approved, so this one is a different kind of change, but it still affects anyone embedding the code.
    • MiniMax moved its M2.7 AI model from MIT to a non-commercial license, which drew immediate backlash.


    Who it actually hurts


    • 1. Small teams and agencies building on top: If your product depends on a library that relicenses, you now have three options: pay, migrate, or fork. Big companies have legal teams for that. A five-person shop usually doesn’t.
    • 2. Contributors: People gave their time to a project under one set of terms. When the company controlling it changes the rules, the community’s work becomes part of a product they no longer fully share in.
    • 3. Downstream projects: Plugins, integrations, and tutorials built around a tool inherit the uncertainty when its license shifts.


    The fair counterargument


    I don’t think vendors are simply villains here. Many of these changes were a response to cloud providers selling managed versions of a project without funding it. Maintainers need a sustainable model, and “be open and hope for donations” has a poor track record.

    It’s also not always one-way. Redis is back under a recognized open-source license for those who choose it, while Valkey continues to be actively developed. Competition between the original and the fork may have pushed both toward better outcomes. Broader data also suggests permissive licensing has been rising, so this isn’t a total collapse of open source.

    What I do now


    • Check who controls the project A single company controlling a project can relicense future versions at any time, while a project run by a neutral foundation with many contributing companies is much harder to change.
    • Read the license on every major upgrade, not just at install.
    • Pin versions so a surprise change doesn’t land in your next deploy.
    • Know your exit. Is there a credible fork? A foundation-backed alternative?
    • Set up license-change alerts for your critical dependencies.


    So, is open source still open?


    My honest answer: the code is still often open. The guarantee isn’t. Open source has always depended on trust, and trust now needs a little due diligence.

    Over to you: Has a license change ever forced your team to migrate? Do you think relicensing is a fair business move, or a betrayal of the community that built the project? Tell me in the comments.#opensource #webdev #discuss #devdiscuss #software #coding #development #engineering #inclusive #community
    Is Open Source Still Open? A Look at Recent License Changes and Who They Hurt

Share on Mastodon

Enter the server where you have an account.