home.social

Search

37 results for “downgrade”

  1. Loop Capital downgrades Apple, cuts target $40 to $330

    "According to the firm's supply chain checks, Apple has no plans to recover the 13 million iPhone shipments cut in the second half of 2026."

    ped30.com/2026/10/20/apple-loo

  2. Indonesian stocks: MSCI downgrade fears mount

    Indonesia’s benchmark stock index plunged over 5% on Monday to its lowest level in six years, as concerns…
    #NewsBeep #News #Business #businessnews #CA #Canada #GoldmanSachsBDCInc #Indonesia #iSharesMSCIIndonesiaETF
    newsbeep.com/ca/938574/

  3. Liz Napolitano reports that Loop Capital has downgraded Apple, warning iPhone sales might miss expectations. The tech giant is on pace to fall short of revenue targets for its flagship devices, prompting investors to think twice before adding exposure. This serves as a timely reminder that even the strongest brands face cyclical pressures in consumer demand. Smart portfolio decisions require looking beyond headline momentum. Praise to Liz Napolitano for the sharp reporting.

    cnbc.com/2026/10/20/apple-loop #Apple #Investing #TechStocks #iPhone

  4. Service post: Windows update pushed an older version of the AMD driver and forced a partial downgrade bricking it for a lot of users.

    If you see someone having weird issues with monitors or the gpu upgrade/reinstall the AMD driver...

    Thanks #Microslop

    #AMD #Microsoft #PCgaming #GPU

  5. Carrefour, France’s largest retailer, has been hit hard as rallies against the country’s poor educat..

    Downgraded profit outlook and deteriorated cash flowHuge hit to year-end shopping season in Q4Cost increases due to theft…
    #France #FR #Europe #EU #Carrefour #Alexandre #Asurajang #CEO #Distributor #Reuters
    europesays.com/france/97315/

  6. Somehow, some time ago, I changed my Debian box from Stable Main to Backports? <sigh> Not what I wanted. downgrade and full-upgrade

  7. ⚡️ AKS now provisions a StandardV2 NAT Gateway by default: zone-redundant, IPv6, no downgrade path

    🏷️ #devdigest #azure #cloud

    devdigest.today/goto/6733

  8. Learn how to test browser E2EE against key substitution, ciphertext tampering, replay, downgrade attacks, and asynchronous state failures. hackernoon.com/adversarial-tes

  9. #Mealie is another software losing upgrade privileges on my #selfHosted server: I will keep running v3.28.0 for the foreseeable future while I expand my custom Mealie frontend into a standalone recipe manager.

    v3.29.0 was just released with breaking API changes that were not documented in the release notes. It also includes non-reversible database migrations, requiring me to nuke the database and restore from backup to downgrade to v3.28.0.

    This is barely one month after v3.25.0 released a breaking, unnecessary and very confusing API change (changing an endpoint's HTTP verb and returning a 200 status code on the old verb instead of a 40x).

    When you publish and document a REST API for your server, you create an expectation of stability. Monthly breakages are not acceptable.

  10. Lee Ying Shan, have you seen Indonesia's stocks crater to a six-year low? Her report details how Indonesia's benchmark index plunged over 5% Monday as MSCI considers downgrading the country from emerging-market status. This could spark fears of massive foreign outflows, with Goldman Sachs estimating $5.6 billion in passive selling alone. This situation underscores how index decisions can rapidly destabilize emerging economies already facing weak earnings and rate hikes. Read the full story to understand the implications. Lee Ying Shan delivers crucial clarity on these market risks. cnbc.com/2026/10/19/indonesian #Indonesia #EmergingMarkets #MSCI

  11. At 3 a.m., during an incident, your logs are the only interface you have to production. Dashboards, alerts, and log queries all depend on them: an alert fires on level=ERROR, a saved search filters on order_id, a compliance check makes sure no password ever reaches the log pipeline.

    That makes your log output an API. Other systems depend on its shape, yet most codebases never test it. Someone downgrades an error to a warning, renames order_id to orderId, or adds a debug line that dumps a whole request body, and no test fails.

    pytest has a built-in fixture for this, caplog. In this post we'll use it to test four things:

    1. The right level is used for the right situation
    2. Structured fields passed through extra= are present
    3. Unexpected errors carry a traceback
    4. A JSON formatter and a redaction filter behave correctly, together

    All code runs on Python 3.13 with pytest 9 and needs nothing beyond the standard library and pytest.

    The code under test


    Here is a small checkout function. It tells three different stories: a captured payment (INFO), a declined card (WARNING, because it's a normal business outcome and shouldn't page anyone), and a gateway failure (ERROR with a traceback, because it should).

    # checkout.py
    import logging

    logger = logging.getLogger("shop.checkout")

    class PaymentDeclined(Exception):
    pass

    def charge(order_id, amount_cents, gateway):
    logger.debug("charging order", extra={"order_id": order_id})
    try:
    gateway(amount_cents)
    except PaymentDeclined:
    logger.warning(
    "payment declined",
    extra={"order_id": order_id, "amount_cents": amount_cents},
    )
    return False
    except Exception:
    logger.exception("gateway error", extra={"order_id": order_id})
    raise
    logger.info("payment captured", extra={"order_id": order_id,
    "amount_cents": amount_cents})
    return True

    The extra= dictionary is the standard library's way of attaching structured fields. Each key becomes an attribute on the LogRecord, which is exactly what we'll assert on.

    Test 1: levels and fields


    caplog.records is a list of the actual LogRecord objects that were emitted. Asserting on records instead of formatted strings makes the tests resilient to formatting changes:

    import logging

    from checkout import PaymentDeclined, charge

    def ok_gateway(amount):
    return None

    def declining_gateway(amount):
    raise PaymentDeclined()

    def test_success_logs_info_with_order_id(caplog):
    caplog.set_level(logging.INFO, logger="shop.checkout")

    assert charge("ord-42", 1999, ok_gateway) is True

    [record] = caplog.records
    assert record.levelname == "INFO"
    assert record.getMessage() == "payment captured"
    assert record.order_id == "ord-42"
    assert record.amount_cents == 1999

    def test_decline_is_a_warning_not_an_error(caplog):
    caplog.set_level(logging.INFO, logger="shop.checkout")

    assert charge("ord-7", 500, declining_gateway) is False

    assert [r.levelname for r in caplog.records] == ["WARNING"]
    assert caplog.records[0].order_id == "ord-7"

    Two details matter here:

    • caplog.set_level(..., logger=...) scopes the level change to one logger and restores it after the test, so tests don't leak configuration into each other.
    • [record] = caplog.records is a small trick: the unpacking fails if there isn't exactly one record. That catches accidental duplicate logging, which is a common bug when a handler gets attached twice.

    The second test protects a decision that is easy to undo by accident. If someone "fixes" the decline path to use logger.error, your on-call rotation starts getting paged for expired credit cards. Now a test fails first.

    Test 2: debug output stays at debug


    Use the caplog.at_level context manager when a test needs different levels in different phases. caplog.messages gives you just the formatted message strings:

    def test_debug_line_only_appears_at_debug(caplog):
    with caplog.at_level(logging.INFO, logger="shop.checkout"):
    charge("ord-1", 100, ok_gateway)
    assert "charging order" not in caplog.messages

    caplog.clear()
    with caplog.at_level(logging.DEBUG, logger="shop.checkout"):
    charge("ord-1", 100, ok_gateway)
    assert caplog.messages[0] == "charging order"

    caplog.clear() resets the captured records between phases.

    Test 3: errors carry a traceback


    A log line that says gateway error without a stack trace is almost useless. logger.exception() attaches exc_info to the record, so assert that it's there and has the right type:

    import pytest

    def broken_gateway(amount):
    raise TimeoutError("gateway timed out")

    def test_unexpected_error_logs_traceback(caplog):
    caplog.set_level(logging.ERROR, logger="shop.checkout")

    with pytest.raises(TimeoutError):
    charge("ord-9", 100, broken_gateway)

    [record] = caplog.records
    assert record.exc_info is not None
    assert record.exc_info[0] is TimeoutError

    This test fails if someone replaces logger.exception(...) with logger.error(...), which silently drops the traceback.

    Test 4: the formatter and the redaction filter


    Most production setups ship JSON logs. Here is a minimal formatter that copies every extra= field into the JSON, plus a filter that masks sensitive keys before anything is written:

    # app_logging.py
    import json
    import logging

    _RESERVED = set(vars(logging.makeLogRecord({}))) | {"message", "asctime"}
    SENSITIVE_KEYS = {"password", "token", "card_number"}

    class JsonFormatter(logging.Formatter):
    def format(self, record):
    payload = {
    "level": record.levelname,
    "logger": record.name,
    "message": record.getMessage(),
    }
    # Anything passed via extra=... becomes an attribute on the record.
    for key, value in vars(record).items():
    if key not in _RESERVED:
    payload[key] = value
    if record.exc_info:
    payload["exception"] = self.formatException(record.exc_info)
    return json.dumps(payload, default=str)

    class RedactFilter(logging.Filter):
    def filter(self, record):
    for key in SENSITIVE_KEYS:
    if hasattr(record, key):
    setattr(record, key, "[REDACTED]")
    return True

    The _RESERVED trick builds the set of attribute names every LogRecord has by default, so anything else on the record must have come from extra=.

    You can unit-test both classes without any logger at all, because logging.makeLogRecord() builds a record from a dict:

    import json

    from app_logging import JsonFormatter, RedactFilter

    def make_record(**extra):
    return logging.makeLogRecord(
    {"name": "shop.checkout", "levelname": "INFO", "levelno": 20,
    "msg": "user %s logged in", "args": ("alice",), **extra}
    )

    def test_formatter_emits_valid_json_with_extras():
    line = JsonFormatter().format(make_record(order_id="ord-42"))
    data = json.loads(line)
    assert data == {
    "level": "INFO",
    "logger": "shop.checkout",
    "message": "user alice logged in",
    "order_id": "ord-42",
    }

    @pytest.mark.parametrize("field", ["password", "token", "card_number"])
    def test_redact_filter_masks_sensitive_fields(field):
    record = make_record(**{field: "s3cret"})
    assert RedactFilter().filter(record) is True
    data = json.loads(JsonFormatter().format(record))
    assert data[field] == "[REDACTED]"
    assert "s3cret" not in json.dumps(data)

    Comparing the whole dict with == is deliberate. It catches extra fields leaking into the output, not just missing ones.

    Test 5: the whole pipeline


    Unit tests on the formatter are good, but the real bug is often in the wiring. caplog.handler is a real logging.Handler, so you can give it your production formatter and filter and assert on the final text with caplog.text:

    def test_full_pipeline_through_a_real_handler(caplog):
    logger = logging.getLogger("shop.checkout")
    caplog.handler.setFormatter(JsonFormatter())
    caplog.handler.addFilter(RedactFilter())
    caplog.set_level(logging.INFO, logger="shop.checkout")

    logger.info("login", extra={"user": "alice", "password": "hunter2"})

    data = json.loads(caplog.text.strip())
    assert data["user"] == "alice"
    assert data["password"] == "[REDACTED]"

    A fresh handler is created for every test, so this configuration doesn't leak into other tests.

    Running it


    $ python -m pytest -q
    ......... [100%]
    9 passed in 0.01s

    Takeaways


    • Assert on caplog.records, not strings. Records give you the level, the logger name, exc_info, and every extra= field as attributes.
    • Use the [record] = caplog.records unpacking to catch duplicate log lines for free.
    • Scope levels with set_level(..., logger=...) or at_level. Both restore the previous state automatically.
    • Test redaction explicitly. A parametrized test over your sensitive keys is cheap insurance against a compliance incident.
    • Test the wiring once by attaching your real formatter and filters to caplog.handler.

    If a dashboard, alert, or audit depends on a log line, that log line deserves a test.

    Note: An AI assistant helped draft this post; all code was run and tested (Python 3.13, pytest 9.1).#python #testing #pytest #observability #software #coding #development #engineering #inclusive #community
    Your Logs Are an API: Testing Python Logging with pytest's caplog

  12. Three years ago, I looked at my recurring software subscriptions and almost fell out of my chair: $400/month. Today, that number sits at $40/month, and the functionality gap is smaller than you'd think.

    This is the playbook that got me there. Not "switch to free alternatives" — that's rarely enough. Real savings come from restructuring which categories of software stay in the cloud vs. which come home.

    Where my $400 went (peak SaaS years)


    I was paying for:

    • Cloud file storage: Dropbox family + iCloud 2TB
    • Email + calendar: Fastmail + Google Workspace (personal)
    • Notes: Notion + Evernote (tried both, ended up paying for both)
    • Photos: Google Photos + iCloud + Flickr
    • Passwords: 1Password family
    • Photo backup: Backblaze unlimited
    • VPN: NordVPN 3-year plan
    • Domain + email: Porkbun + Zoho mail
    • Newsletters: Substack + several paid ones
    • Streaming services: Spotify family
    • Work tools: Slack (free tier), Trello (free)
    • AI tools: ChatGPT Plus, Midjourney, GitHub Copilot
    • Hosting: DigitalOcean droplet + Vercel hobby + MongoDB Atlas free tier

    If your eyes went wide reading that list, you're not alone. I was the SaaS version of "subscription creep."

    Where I cut

    1. Cloud file storage: $20 → $0


    This was the easiest win. I had:

    • 200 GB in Dropbox (duplicates of photos)
    • 800 GB in iCloud (mostly phone photos)
    • 300 GB in Google Drive (work files)

    Self-hosted alternative: Nextcloud on a single Synology NAS I already owned (4-bay, 8TB usable RAID-5). Total cost: $0/month (the NAS was already paid for).

    Sync works on Mac (Nextcloud client), Windows, iOS, Android. Web UI is decent. Calendar + contacts built in.

    Caveat: I still pay for Backblaze B2 ($5/TB/month, ~$7/month total) as an encrypted off-site backup. So total storage cost: $7/month vs $20. Not $0, but a 65% cut.

    2. Photos: $35 → $7


    This is where I went from "Google Photos is convenient" to "my photos are mine."

    Self-hosted alternative: Immich (Google Photos clone, runs in Docker). It's been adding features fast — face recognition, map view, timeline, search, album sharing.

    • Immich + Synology NAS: $0 (just electricity + storage)
    • Backblaze B2 backup: $5/TB × 1.5TB of photos
    • Phone upload: Syncthing (free, open source)

    Caveat: My wife didn't love Immich at first (no Magic Eraser). I trained her on it. She uses it daily now.

    Total: $7/month vs $35 (Google Photos 2TB + iCloud 2TB).

    3. Email + calendar: $15 → $0


    I was paying Fastmail $5/month for myself, plus Google Workspace (free personal) for extra.

    Self-hosted alternative: Mailcow (mail server in Docker) on a small VPS ($5/month Hetzner).

    Let me be clear: self-hosting email is hard. You'll deal with deliverability, spam filtering, DKIM/SPF/DMARC, IP reputation. If you don't have time to learn, this isn't for you.

    I spent 2 weekends setting up Mailcow. After that, it just works. My domain email routes through my own server. SpamAssassin handles spam. DKIM + SPF are configured.

    Risk: If my IP gets on a blacklist, mail doesn't get delivered. I monitor with Mail-Tester and MXToolbox weekly.

    Caveat: For most people, this isn't worth the time. I just like owning my email.

    Total: $5/month (VPS) vs $15.

    4. Passwords: $5 → $0


    I was on 1Password family plan.

    Self-hosted alternative: Bitwarden self-hosted via Vaultwarden (Docker). Same functionality, same apps, same browser extensions.

    • Self-hosted: $0 (run on NAS or VPS)
    • Bitwarden cloud: still $0 for personal use (so actually this didn't save anything, but self-hosting gives data control)

    Most people should use Bitwarden cloud (it's free for individuals). I self-host because I want my vault encrypted on my own hardware.

    5. Notes: $20 → $0


    I was paying Notion Plus ($10/month) + Evernote Premium ($10/month).

    Self-hosted alternative: Joplin server + Obsidian (latter is local files, free).

    • Obsidian: free for personal use (sync via iCloud / Syncthing / Dropbox)
    • Joplin with Nextcloud sync: free
    • Joplin with WebDAV sync (Nextcloud provides): free

    Obsidian is markdown files on disk. I sync via Syncthing to all devices. No server needed.

    Total: $0/month.

    6. VPN: $4 → $0


    Was paying NordVPN ($4/month on a 3-year plan).

    Self-hosted alternative: WireGuard site-to-site between my VPS and home.

    • $0/month (uses the same VPS for VPN)
    • Or Tailscale: free for 100 devices (I use both)

    Total: $0/month.

    7. AI tools: $40 → $10


    Hardest to cut. I was on:

    • ChatGPT Plus: $20/month
    • Midjourney: $10/month
    • GitHub Copilot: $10/month

    Now:

    • ChatGPT Plus: still $20/month (don't want to give this up, no good self-hosted equivalent yet)
    • Midjourney: gone, replaced with ComfyUI (local Stable Diffusion) for free
    • GitHub Copilot: downgraded to Copilot free tier (limited)

    So I went from $40 → $20, mainly because AI is still a market where the best models are cloud.

    Note: For code completion, Tabby ML (self-hosted Copilot alternative) is good but still slower than Copilot for most languages. I'll switch when it catches up.

    8. Streaming / subscriptions: $30 → $10


    I cut:

    • Spotify family ($16/month): downgraded to YouTube Music ($11/month single user)
    • Various Substack creators: reduced from $50/year across many → $20/year across 2
    • Various newsletters: cut 2/3, kept only the ones I actually read


    The savings

    CategoryBeforeAfterSaveFile storage$20$7$13Photos$35$7$28Email + calendar$15$5$10Passwords$5$0$5Notes$20$0$20VPN$4$0$4AI tools$40$20$20Streaming + subs$30$10$20Total$169$49$120


    (Note: not all $400 was cuttable. I left work-paid tools out, plus domain costs, plus a few essentials.)

    Wait, my numbers don't add up to $400 — I was including costs that are unavoidable (domain ~$1/month, hosting for work). Let's say actual realistic personal SaaS bill: $300 → $60. Still 80% cut.

    What I didn't cut (and why)


    • ChatGPT Plus: no equivalent open-source yet for general reasoning
    • Backblaze B2 backup: $7/mo is too cheap to self-replicate
    • Domain registration: unavoidable ($12/year)
    • AppleCare + iCloud minimum: I'm in Apple ecosystem
    • GitHub Pro: $4/mo for private repos + Copilot integration


    What's actually self-hosted now


    Here's my full self-hosted stack:

    • NAS (Synology DS920+): Docker host for ~25 containers
    • VPS (Hetzner $5/mo): Mailcow + WireGuard + backups
    • Containers: Nextcloud, Immich, FreshRSS, Joplin, Vaultwarden, Jellyfin, Calibre-Web, Paperless-ngx, Homarr, Uptime Kuma, Pi-hole, Traefik, Caddy

    Each container solves a specific problem. None of them are doing anything magic. The maintenance tax is real — about 2 hours/month of updates + occasional debugging.

    What I'd recommend to start


    If you want to start small:

    1. Files: Nextcloud on a NAS or even a Raspberry Pi 4 with external SSD
    2. Photos: Immich (same Docker setup, point phone uploads at it)
    3. Passwords: Bitwarden cloud (free for personal) — don't self-host until you have the time
    4. VPN: Tailscale (free for 100 devices) or WireGuard if you're technical

    These 4 already cover 60% of my savings. The rest is layered on top as you get comfortable.

    The hidden costs


    Self-hosting has hidden costs you don't see upfront:

    • Time: 2 hours/month minimum for updates + monitoring
    • Hardware amortization: NAS + UPS + maybe a small VPS
    • Risk of failure: if the disk dies and your backup fails, you lose everything

    The risk is real. That's why Backblaze B2 backup is non-negotiable for me.

    When NOT to self-host


    Self-hosting isn't always the right answer. Skip self-hosting if:

    • You don't have a backup destination: don't put all your data on one disk
    • You can't spare 2 hours/month: stick to cloud
    • You're not comfortable with command line: the Docker setup is fine, but debugging requires it
    • The data is too sensitive: some things (medical, financial records) belong with a regulated provider, not your home NAS


    Was it worth it?


    After 3 years: yes. Even with the time cost, I'm saving $120-150/month, which is $1,500-1,800/year. Over 3 years that's $5,000+. That's real money.

    Plus, I have data ownership. I know exactly where my photos, files, and notes live. No vendor lock-in. If a service shuts down, I export and move.

    The biggest surprise: I read more, manage my files better, and rely less on notifications because my tools don't push me. The result is calmer computing.

    One-year check-in


    12 months after the migration:

    • Zero data loss incidents
    • Backup verified quarterly, restoration tested once a year
    • 2 hours/month maintenance budget holds
    • Zero regrets

    The "I should self-host more" feeling has stopped. I've found the level I'm comfortable with.

    Final thought


    $400 → $40 was a journey, not a switch. Start with 1 service. Make it work. Make it reliable. Backup the data. Then move the next one. Repeat.

    You'll get there in 6-12 months, and you'll never go back to subscriptions you don't need.#cloud #infrastructure #saas #tools #software #coding #development #engineering #inclusive #community
    How I cut my SaaS bill from $400/mo to $40/mo - the self-hosting playbook

  13. Cork 2.1.0 is out, and there are too many changes to list out yet again

    From app quarantine support, through native support for macOS disk access permissions, to respecting your ENV, everyone will find something to like in this update

    Read more: forum.rikidar.eu/topic/15/cork

    Buy Cork & support its AI-free development: corkmac.app

    Discord community: discord.gg/kUHg8uGHpG

    Source code: github.com/buresdv/Cork

    #swift #swiftUI #macOS #macdev #buildinpublic #macdev #homebrew #CorkApp

  14. I recently downloaded the OpenSUSE RescueCD ISO, installed it on a USB disk and booted it.

    Can someone please help me understand why anyone would create a "Rescue CD" and not include ddrescue on it?!

    I'm truly perplexed by that...

  15. `Be advised that a recent version of MATLAB is required. Once you have downloaded or cloned the Tensor Toolbox, use addpath to add the tensor_toolbox directory to your path. Type help tensor_toolbox for a list of functions and classes provided by the toolbox.`

    tensortoolbox.org/

    #matlab #tensor #tensorToolbox #computing

  16. Popular WordPress SEO Plugin Rank Math PRO Hijacked to Deliver Self-Restoring Backdoor

    Copies of the paid Rank Math PRO WordPress plugin downloaded from rankmath.com or delivered as updates between October 15 and 16 contained malware that installs a self-restoring backdoor, The Hacker News reports. Rank Math has released a clean version, but Wordfence warns that updating alone does not remove backdoor files, administrator accounts, or scheduled tasks the malware may have left behind. thehackernews.com/2026/10/popu

  17. 🚨 Malicious Rank Math PRO update delivered a self-restoring WordPress backdoor

    Copies of Rank Math PRO 3.0.123 downloaded or installed through updates between October 15 at 20:02 UTC and October 16 at 07:12 UTC contained malware.
    ⠀
    Activated copies could create persistent backdoors, administrator accounts, scheduled tasks and other malicious files. Credentials, database passwords and API keys accessible to compromised sites may also have been exposed.
    ⠀
    Tracked as CVE-2026-111862, the incident carries a CVSS score of 9.8.

    Rank Math released a clean version, 3.0.124, but updating alone does not remove backdoors already planted elsewhere. Affected websites should be treated as compromised and restored from a clean backup where possible.

    The free Rank Math plugin available through WordPress.org was not affected.

  18. That was "fun". It seems that 's linux-headers .deb package for their kernels is compressed with zstd rather than gz/xz which is not supported by the version of dpkg shipped with their own Debian bookworm image on .

    Fortunately you can extract the downloaded .deb, recompress the files and create a new .deb:

    ar -m -c -a sdsd linux-headers-6.6.20-starfive_6.6.20-vf2-1SF_riscv64.deb debian-binary control.tar.xz data.tar.xz

    then install them with "dpkg -i"

    github.com/yktoo/indicator-sou

  19. Kentucky Medicaid Portal Breach Exposes Data of Approximately 3,900 Individuals

    The Kentucky Cabinet for Health and Family Services disclosed a data breach after an unauthorized party accessed the KY Health-Net Provider Portal and downloaded Medicaid member information. Approximately 3,816 individuals were potentially affected across three unauthorized access incidents in 2026.

    ****

    beyondmachines.net/event_detai

  20. Small note:

    Someone pointed out a couple of formatting fubars I'd made in the epub and somehow hadn't noticed, so I fixed them and uploaded a new version. If you just downloaded the Epub, redownload it for a better experience!

  21. In case you aren't sure how, we also put together a guide on how to get Xbox Game Pass games downloaded and set up to play on your :

    steamdeckhq.com/tips-and-guide

  22. 🔴 CVE-2026-111862 - Critical (9.8)

    Rank Math SEO PRO for WordPress is affected by a supply-chain compromise in a subset of version 3.0.123 packages downloaded or updated between October 15, 2026 at 20:02 UTC and October 16, 2026 at 07:12 UTC. Rank Math states that the affected plug...

    🔗 thehackerwire.com/vulnerabilit

    #CVE #vulnerability #infosec #cybersecurity #security #Tenda #patchstack

  23. US teens can access ‘nudify’ apps despite Apple and Google’s parental controls, report finds
    By Johana Bhuiyan

    Exclusive: Using test accounts acting as 13-year-olds, Tech Transparency Project downloaded 135 apps with features to generate nonconsensual nude imagery

    theguardian.com/technology/202

    #AIartificialintelligence #Technology #Computing #Children #Apple #Google #Apps #Society #Childrenstech #Internetsafety #Deepfake #USnews #TheGuardian #JohanaBhuiyan

  24. How did big tech jump the shark to the point that when I look at the details of the new update for the phone, the update is features I would never want? I don’t want to allow the update. I need to know how to turn off all the crap that gets downloaded when I’m forced to do the update. Ugh! How did we get to this tech hell?

Share on Mastodon

Enter the server where you have an account.