home.social

Search

29 results for “downgrade”

  1. 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/

  2. #Jakarta #shares plunge after #downgrade shock
    "Equities in #SoutheastAsia’s biggest economy have struggled since a January freeze in the #MSCI indexes, with a threatened downgrade to “frontier” status because of #opacity in ownership and trading behaviour.. Moody’s and Fitch cutting their #sovereign #rating outlooks to negative, citing reduced #policymaking #credibility"
    👉🧐 #Haze-producing #Indonesia is becoming a standout in #opaque #policy & ineffectual #governance. 🤦‍♂️
    bangkokpost.com/business/gener

  3. Fans Are Calling GTA 6’s Latest Trailer A Blurry ‘Downgrade’

    Rockstar Games served us with a new minute-and-a-half-long trailer for Grand Theft Auto 6 yesterday, and it’s got…
    #NewsBeep #News #US #USA #UnitedStates #UnitedStatesOfAmerica #Technology #GrandTheftAuto6 #GTA6 #RockstarGames
    newsbeep.com/us/885480/

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

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

  6. My hopes are low, tho. Back in a day when I tried to report Open Camera UI downgrade (EV correction buttons removed, only finicky slider left, bad for cold or stiff fingers), I was completely ignored.
    #OpenCamera #UI

  7. 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

  8. 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

  9. 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...

  10. I stopped using Google Maps and downloaded Map Quest because of the Lake Ontario/America nonsense. With this news, I am even happier with that choice. engadget.com/2288729/mapquest-

  11. The Bill Simmons Podcast (2026) 1 Episode [15]

    Bill Simmons hosts the most downloaded sports podcast ever, featuring conversations with celebrities, athletes and members of the Ringer universe.

    uk.newonnetflix.info/info/8218

    #NowStreaming #Netflix #NetflixUK

  12. 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

  13. 🚨 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.

  14. 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!

  15. 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

  16. #WritersCoffeeClub How do you feel about people reading your works without buying a personal copy?

    I released my audio short story collection for free, and it was downloaded over 50,000 times world-wide. I was transitioning from being known for my nonfiction book to fiction. It now has a paid option on Scribl, but it's also still free

    So I'm cool with anyone who wants to read/listen to my work having an option to do so.

    scribl.com/books/P60AB/Cain-t-

  17. Aan Iedereen: 💶💰🔥✅
    Idee? vastzetten en vooral delen met ouderen, jongeren, wie je denkt dat het nodig heeft

    Hoe voorzichtig je ook bent, iedereen kan beetgenomen worden, ergens intrappen, misleid worden etc

    Ik doe m'n best, let zo goed mogelijk op maar voel toch steeds een bepaald soort spanning, hopend dat ik niet gehackt wordt

    Is me laatst bijna overkomen
    Telefoon aangenomen, vreemd nr. - neem ik nooit op maar zat te wachten op belletje van dierenarts - vrouwenstem in Engels : >
    zogenaamd paypal, heeft betaling gedetecteerd, €699, of ik 'google meets' even wil downloaden dan kan men mij helpen.
    M'n Technisch Engels is gebrekkig, ik vraag paar keer om duidelijker uitleg, ze blijft vriendelijk maar nadrukkelijk
    Uiteindelijk vroeg ik of ze me wilde mailen zodat ik kon (her) lezen evt met iemand erbij
    Dat kon blijkbaar niet, ik móest doen wat zij opdroeg (daar reageer ik altijd allergisch op) heb opgehangen en zoon gebeld.
    Hij zei dat als ik 'meets' gedownload had dan gehackt zou zijn
    Wat ben ik blij met m'n intuïtie
    Maar ik weet dat ik ooit ook gepakt zal worden
    Wacht al lang op een betrouwbare actie of site van de overheid die te allen tijde geraadpleegd kan worden, nú is ie er

    Bij mij staat ie op m'n startscherm gepind

    #hacking #phishing #criminaliteit #rijksoverheid #veiliginternet #nieuws #politiek #socials

    Start campagne tegen online criminaliteit ‘Laat je niet interneppen’ - Online misleiding kan iedereen overkomen | Rijksoverheid.nl

    rijksoverheid.nl/actueel/nieuw

  18. Bootstrapped an installation of LocalAI on a 2020 laptop with an Nvidia GeForce with 6GB of video RAM.

    I was pretty impressed what it could do, even under those constraints, esp. when paired with my local Home Assistant installation.

    That said, the Docker image didn't persist downloaded models quite the right way. Probably a configuration issue on my end. Will probably look at NOT running it containerized in this case.

    localai.io/

    #AI #LocalAI #HomeAssistant

  19. Corporate America Is Getting Hooked on
    Companies like AT&T are increasingly using cheap, freely available models over expensive ones from Anthropic and OpenAI.
    As A.I. costs skyrocketed, Andy Markus, AT&T’s chief data and A.I. officer, looked for cheaper alternatives. He landed on “open” models, which can be downloaded and modified without payment or approval.
    nytimes.com/2026/09/04/technol
    archive.ph/kmOqm

  20. 🚨🇺🇸 Louisiana man charged with 63 counts involving child sexual abuse material

    Job Martinez, 42, of Shreveport, was arrested following an investigation by the Bossier Parish Sheriff’s Office and Louisiana Attorney General’s Internet Crimes Against Children Task Force.
    ⠀
    The investigation began after the National Center for Missing and Exploited Children forwarded a CyberTip concerning suspected child sexual abuse material.
    ⠀
    Detectives said they found evidence that Martinez received and downloaded sexual images depicting children between the ages of 2 and 11.
    ⠀
    Martinez was located in Bossier City on October 12 and taken in for questioning. The sheriff’s office said he confessed after being advised of his rights.
    ⠀
    Authorities also said Martinez admitted that he was unlawfully present in the United States after being deported in 2011.
    ⠀
    He was charged with 63 counts of pornography involving juveniles and booked into the Bossier Parish Maximum Security Facility. His bond was set at $500,000.

    Source: bossierpress.com/bossier-sheri

  21. #today I'm downloading the first (AFAIK) Gnome OS based on the stable version. As of this writing, I'm using a nightly, installed 3 days ago. GNOME Software tells me there is a new nightly available, but it cannot be downloaded. Maybe there's a bad link, somewhere, in this updater? Speaking of immutables, anyone running Silver Blue 45 Beta? #gui #GNU #Linux #GnomeDesktop #FedoraLinux #ComputerPlay

  22. MALFEX npm Package ‘imgdecode’ Hides Shellcode Loader in Windows Native Addon

    SafeDep researchers have found a malicious npm package named “imgdecode” that hides a shellcode loader in a Windows native addon as part of the MALFEX software supply chain campaign, The Hacker News reports. The package was uploaded on Sept. 30, 2026, has been downloaded 979 times and remains available on npm. thehackernews.com/2026/10/malf

  23. Most desktop AI interfaces today follow a predictable pattern: an isolated browser tab, a heavy Electron window, or a generic sidebar that gets lost in a sea of open windows.

    With Mintu, I wanted to explore a different paradigm: what if your AI assistant was not an application you open and close, but an ambient, living desktop companion that resides naturally in your workflow?

    Mintu is an open-source living desktop pet and local AI assistant built from scratch using Tauri 2, Rust, Vite, and TypeScript. It combines the ergonomics of an Apple-style Dynamic Island with 60 FPS kinematic pet physics, 100% private local LLM execution, real-time screen intelligence, and an open plugin ecosystem.

    Architecture Overview


    Building an interactive desktop pet that overlays other full-screen applications without stealing input focus or causing high CPU consumption requires strict architectural separation:

    • Unified Click-Through Screen Overlay Window (Tauri 2 / Win32):
      Single transparent coordinate space across the primary monitor with a Dynamic Island using spring-physics morphing (width, height, radius), a kinematic desktop pet layer (gravity, momentum, window edge anchoring), and a 30 Hz Win32 cursor poller with dynamic DOM hit-rect synchronization (maintaining under 2% idle CPU).
    • Local AI Engine (llama.cpp Sidecar):
      Automatic hardware tier detection (RAM, VRAM, CPU cores), a resumable chunk downloader with SHA-256 hash validation, real-time token streaming with syntax-highlighted markdown, and multi-provider cloud adapters (Gemini, Groq, OpenAI, Ollama).
    • Ambient Intelligence & Smart Clipboard:
      Foreground window process inspection and security blocklist, interactive screen-region capture with offline Windows Media OCR, and a real-time clipboard classifier (code review, translation, JSON cleanup).
    • Extensibility & Gamification:
      Focus XP progression and customizable wardrobe accessories, paired with JSON-based skin templates and runtime plugin manifests.


    Key Features

    1. Dynamic Island & Kinematic Pet Physics


    Mintu lives inside a floating pill at the top of your screen that expands, contracts, and morphs into different states (notifications, system media, Pomodoro timer, AI chat).

    When you want Mintu to explore, you can drag Mintu out or press Ctrl + Alt + M. Mintu leaves the island, sits on top of your currently active window, falls down if that window closes, and hops back into the island when thrown near the magnetic docking zone.

    2. 100% Local & Privacy-First AI


    Privacy is a core design principle:

    • Integrated llama.cpp sidecar running quantized GGUF models directly on your CPU/GPU.
    • No network requests are sent when using local models.
    • Built-in Privacy Guardian automatically suppresses context ingestion when sensitive applications (password managers, banking tools) are in the foreground.


    3. Smart Clipboard


    Whenever you copy text with Ctrl + C, Mintu analyzes the content in real time and offers context-sensitive actions directly in the island:

    • Programming code: Suggests "Check code for errors" or "Explain code".
    • Foreign-language text: Suggests "Translate to Azerbaijani" (or your preferred language).
    • JSON or unstructured data: Suggests "Format and validate JSON".


    4. Multi-Language Voice & Vision


    • Microphone speech-to-text with automatic multi-language recognition (supporting Azerbaijani, English, Russian, Turkish, and more).
    • Interactive screen-region capture (Ctrl + Alt + S) that captures any rectangle on your screen and extracts text using Windows Media OCR without uploading images to any third-party server.


    5. Focus Gamification & Wardrobe


    As you complete Pomodoro work intervals, Mintu earns focus XP and levels up. You can customize Mintu with earned accessories from the wardrobe, including reading glasses, winter beanies, a coffee mug, and noise-cancelling headphones.

    6. Developer Extensibility: Plugins & Custom Skins


    Mintu v0.2.0 introduces an open architecture:

    • Plugins: Developers can build standalone widgets (crypto/currency rates, GitHub alerts, prayer times, weather).
    • Custom Skins: A transparent JSON schema allowing artists and developers to reskin Mintu with their own spritesheets and animations.


    Getting Started


    You can test the pre-compiled standalone binary or build from source:

    Prerequisites


    • Windows 10 (version 1809+) or Windows 11
    • Microsoft Edge WebView2 Runtime (pre-installed on modern Windows)
    • Node.js 18+ and Rust toolchain (if building from source)


    Installation


    Clone the repository:

    bash
    git clone github.com/HuseynDeveloper/Min…
    cd Mintu
    npm install#ai #opensource #rust #typescript #software #coding #development #engineering #inclusive #community
    Building Mintu: An Open-Source Living Desktop Pet and Local AI Companion with Tauri 2, Rust, and TypeScript

  24. An InDesign Portfolio Brochure Template That Offers a Fresh, Modern, & Customizable Look

    An InDesign portfolio brochure template only helps when its pages know how to pace themselves. Sirisako’s portfolio brochure layout on Adobe Stock tries to do exactly that. I opened it with one question. Does it help you show your work, or does it mostly show itself?

    Here is my verdict up front. This InDesign portfolio brochure template suits designers who print. It also gives you sixteen CMYK pages in two paper sizes. Plus, the file stays small enough to email.

    Download the template from Adobe Stock.

    Please note that this template requires Adobe InDesign to be installed on your computer. Whether you use Mac or PC, the latest version is available on the Adobe Creative Cloud website—take a look here.

    Adobe InDesign Portfolio Brochure Template by Sirisako

    Is an InDesign Portfolio Brochure Template Worth Using for a Client Pitch?

    Yes, if you hand the brochure over in person. A printed portfolio still beats a PDF link in a first meeting. For example, a client can hold it and flip it. Then it stays on a desk. Meanwhile, a link sits in an inbox with forty others.

    No, if your work lives on screen only. Motion and UI designers should think twice. A static brochure flattens interaction work into screenshots. Instead, a website handles that better.

    So here is my thesis. An InDesign portfolio brochure template earns its place when it removes layout decisions you would otherwise make badly under deadline. Yet it loses its value when it forces new decisions on you. Sirisako’s template aims for the right side of that line. One condition applies, and I cover it below.

    What Does This InDesign Portfolio Brochure Template Include?

    Start with the facts, because marketplace listings bury them. This InDesign portfolio brochure template arrives as one INDT file at 7.17 MB. It also holds 16 predesigned, customizable pages. It works with Adobe InDesign. The color mode is CMYK, and the license type is Plus.

    File Format, Size, and Color Mode

    INDT is InDesign’s template format. Double-clicking it opens an untitled copy by default. So your master file stays clean. That habit saves you from the classic mistake of saving over the original.

    At 7.17 MB, this InDesign portfolio brochure template is light. Still, that tells you something. The download carries layout structure, not photography. The listing says so directly, because the preview photos are for display only.

    CMYK matters here. First, your colors start in the ink model your printer uses. Second, RGB files often print duller than they look on screen. Because of this, starting in CMYK avoids that surprise.

    Page Sizes: US Letter and A4

    The listing names two formats. US Letter measures 8.5 by 11 inches. A4 measures 210 by 297 millimeters. For example, studios in the United States print Letter. Yet clients in Europe expect A4. An InDesign portfolio brochure template that covers both sizes saves you a rebuild when a pitch crosses the Atlantic.

    What the Plus License Means

    The listing marks the license type as Plus. Read Adobe’s license terms before you use the InDesign portfolio brochure template on a paid client project. Terms change, so I will not guess at them here.

    What Is Spread Rhythm in a Portfolio Brochure?

    Every good brochure has a pulse. I call it Spread Rhythm. Spread Rhythm is the planned alternation of loud spreads and quiet spreads across a document. A loud spread carries a hero image. A quiet spread carries text and white space.

    Rhythm matters because sixteen loud pages numb the reader. Likewise, sixteen quiet pages bore them. A weak InDesign portfolio brochure template repeats one layout fourteen times. Instead, strong templates vary the density on purpose.

    An InDesign portfolio brochure template with 16 pages leaves you little room to vary. So check the page thumbnails in the Pages panel first. Count how many spreads look the same. Two or three repeats are fine, but seven is a warning.

    The Multiple-of-Four Rule

    Here is my second term. The Multiple-of-Four Rule says a saddle-stitched brochure must run in multiples of four pages. First, printers fold sheets and staple the spine. Then each sheet adds four pages.

    Sixteen pages equals four sheets. That count makes the InDesign portfolio brochure template friendly to saddle-stitch printing. Add one project and you may jump to twenty pages. Plan your case studies around that limit before you open InDesign.

    The cover and back cover stand alone. Then fourteen inside pages remain. That makes seven inside spreads, assuming the file uses facing pages. Seven spreads is a tight budget. Four case studies at one spread each leave three spreads for everything else.

    How Do You Test an InDesign Portfolio Brochure Template Before a Deadline?

    I judge every InDesign portfolio brochure template with one idea. Slot Discipline measures how gracefully a template’s image frames and text boxes handle content that does not match the preview. Previews always look perfect, since the preview photos fit perfectly. Yet your real work will not.

    So I run four passes. Each pass takes minutes, and each one exposes a different weakness.

    1. Wrong ratio. Drop a tall portrait photo into a wide frame. Check the frame fitting options. Decide whether the crop looks deliberate.
    2. Long text. Paste a 200-word project description into a caption box. Watch for overset text. See whether the layout bends or breaks.
    3. Color swap. Change one swatch in the Swatches panel. Notice whether every related element updates.
    4. Print export. Export a PDF with your printer’s preset. Confirm the bleed and the color values.

    Then add up the time. I call that total the Swap Cost. Swap Cost is the number of minutes needed to replace one placeholder spread with real project work. A low Swap Cost is the best feature a template can have.

    Run these four passes on this InDesign portfolio brochure template before you commit a weekend to it. The passes cost little. Yet a bad template costs far more.

    Why the Missing Photos Decide Everything

    The listing states that the preview photos are for display only. So the download leaves them out. I like that honesty. Plenty of template previews oversell with photography you will never own.

    Still, the omission has a consequence. Instead, your own photography becomes the visible variable. A template cannot rescue flat, grey project shots. Instead, it can only frame good ones. I think that makes this InDesign portfolio brochure template a better test of your portfolio than of itself.

    So prepare images first. A full-bleed spread on US Letter measures 17 by 11 inches. If your printer asks for 0.125 inches of bleed, the target becomes 17.25 by 11.25 inches. At 300 ppi, that means 5,175 by 3,375 pixels.

    On A4, a 420 by 297 millimeter spread with 3 millimeters of bleed measures 426 by 303 millimeters. At 300 ppi, you need roughly 5,031 by 3,579 pixels. Shoot or export to those numbers and the layout rewards you.

    Here is a take you may dislike. Sixteen pages is the right length for a designer’s portfolio brochure. Besides, anything longer is vanity. Most portfolios I review lose me after the sixth project. The format forces the edit you resisted.

    Who Should Use This InDesign Portfolio Brochure Template?

    I would say that freelance designers get the most from this Adobe InDesign template. A freelancer needs a print leave-behind faster than a custom layout allows. So a portfolio brochure template for designers removes the blank-page stage. Small studios benefit the same way when a pitch deadline lands.

    Design students also benefit from an InDesign portfolio brochure template. A print portfolio brochure in InDesign signals software skill, and it gives a reviewer something physical. Replace the placeholders with your best three projects first. Then build outward.

    Who Should Skip It?

    You can add as many pages as you want but skip this template if you need more than sixteen pages or want photography included. Skip it too if you do not own Adobe InDesign, since INDT files open there. Interactive work also belongs elsewhere.

    InDesign Portfolio Brochure Template Specs at a Glance

    This table sums up all the listing details for quick reference. Every value comes from the Adobe Stock listing.

    AttributeDetailTemplate typeInDesign portfolio brochure templateContributorSirisakoMarketplaceAdobe StockFile typeINDTFile size7.17 MBSoftwareAdobe InDesignColor modeCMYKPages16 predesigned, customizable pagesPage sizesUS Letter and A4Preview photosDisplay only, not included in the downloadLicense typePlusBest forFreelance designers, small studios, design studentsSkip ifYou need more than 16 pages or included photography

    Where Will InDesign Portfolio Brochure Templates Go by 2028?

    I make two predictions. First, every InDesign portfolio brochure template listing will publish page-level detail. Then buyers will see bleed settings, paragraph styles, and font requirements before they download. Meanwhile, marketplaces already field those questions.

    Second, generative tools will fill placeholder frames automatically. So that makes Slot Discipline the main quality filter. By 2028, I expect the best listings to state a Swap Cost in minutes.

    Frequently Asked Questions

    What is an InDesign portfolio brochure template?

    It is a prebuilt InDesign file that holds page structure, placeholders, and styles for a designer’s print portfolio. Then you replace the placeholders with your own work.

    How many pages does this InDesign template have?

    This file has 16 predesigned, customizable pages.

    Which page sizes does this layout support?

    The listing names US Letter and A4.

    Do the preview photos come with this InDesign portfolio brochure template?

    No. The preview photos are for display only, and the downloaded file leaves them out.

    What file type and size is it?

    This InDesign portfolio brochure template is an INDT file that weighs 7.17 MB.

    Do I need Adobe InDesign to use it?

    Yes. The listing says to use the template with Adobe InDesign.

    Is this file set up for print?

    It uses the CMYK color mode, which matches commercial print workflows. Confirm bleed and color settings with your printer before you export.

    Where can I download this InDesign template?

    You can find it on the Adobe Stock listing.

    How large should images be for this InDesign portfolio brochure template?

    On US Letter, export 5,175 by 3,375 pixels at 300 ppi. On A4, export about 5,031 by 3,579 pixels.

    Check out WE AND THE COLOR’s Templates category for more, or take a look at our selection of the 86 best InDesign templates for 2027. Our detailed reviews will help you find exactly what you are looking for.

    Subscribe to our newsletter!

    #AdobeInDesign #AdobeStock #BrochureTemplate #design #InDesignTemplate #portfolio #portfolioTemplate
Share on Mastodon

Enter the server where you have an account.