Sr. Content Developer at Microsoft, working remotely in PA, TechBash conference organizer, former Microsoft MVP, Husband, Dad and Geek.
146169 stories
·
33 followers

Podcast: Tech comm predictions for 2026 (Phase One)

1 Share
In this episode, Fabrizio and I discuss our predictions for tech comm in 2026, focusing on two posts: Fabrizio's My day as an augmented technical writer in 2030 and my 12 predictions for tech comm in 2026. Some of the specific topics we cover include the evolution of writers into automation engineers, the increasing necessity of systems thinking, the economic paradox where high tech valuations are contrasting with stagnant hiring, the risk of the Reverse Centaur dynamic (where humans merely approve AI output), and the growing value of authentic human connection and humanity.

Read the whole story
alvinashcraft
7 hours ago
reply
Pennsylvania, USA
Share this story
Delete

Leadership from Birds

1 Share

A colleague shared a newsletter with me titled The Shape of Leadership by Mike Fisher, here is an excerpt:

The V-formation is the one most of us are familiar with in organizations. It maps cleanly to how we think about leadership: someone sets direction, others align behind them, and progress is made through coordination and efficiency. Everyone knows where they’re going. Roles are clear. Responsibility is explicit. When it works, it’s a beautiful thing.

There’s a reason migrating birds use it. Flying long distances is expensive. Energy matters. Small inefficiencies compound over thousands of miles. The V-formation minimizes wasted effort by design. Each bird benefits from the work of the bird ahead of it, and the group as a whole goes farther than any individual could alone. In leadership terms, this is what strong alignment looks like. A clear vision reduces wasted motion. When people understand the destination and their role in getting there, they don’t have to guess. They don’t have to hedge. They can put their energy into execution instead of interpretation...

Murmurations, on the other hand, feel almost like the opposite extreme. There’s no visible plan. No clear leader. No stable shape. And yet, they are remarkably resilient. When a predator strikes, the flock doesn’t panic. It doesn’t wait for instructions. It responds instantly, each bird adjusting based on the movement of the birds nearest to it.

What’s fascinating is that murmurations aren’t chaotic at all. They operate on a small set of simple rules: maintain distance from your neighbors, match their velocity, and pay attention to sudden changes. That’s it. No bird has a global view of the flock, but the flock as a whole behaves intelligently.

This is what strong cultures look like.

Most corporate leaders do not choose the shape of their environments or their teams. They inherited them. They absorb the patterns that were in place long before they arrived, especially when those patterns have a history of success. The quiet assumption is that whatever worked in the past must be correct, so the inherited shape might go unchallenged. The problem though is that the conditions shift. The work shifts. Teams shift. Yet the shape of leadership often stays the same.

Systems, including the ways we lead, carry their own inertia, and they intuitively preserve whatever state produced success in the past. This is not a conspiracy or a character flaw. Success creates momentum, and momentum takes deliberate effort to redirect, especially when it is in service of finding and securing unrealized opportunities. It requires planning, patience, execution and a willingness to recognize when the moment has changed.

It comes back to culture

A team’s culture becomes most evident in what people do when no one is asking and no one is watching. It shows up in the choices made in unobserved moments, in the habits that persist without direction, and in the behaviors that surface when pressure is low (or indeed, high). What emerges in those moments is the real system, not the one written in documents or described in meetings. And if a team consistently falls back into a familiar V‑formation, even when unwarranted, it is usually because the culture has rewarded and reinforced that pattern over time.

Culture sets the boundaries of what feels acceptable, what feels risky, and what feels necessary. So when a team reverts to old patterns, when the intended formation collapses under pressure, or when outcomes fail to match stated values, it is the culture doing exactly what it was historically shaped to do.

Transforming culture is by no means easy. It is not a matter of slogans or revised instruction sets. It happens when teams practice different behaviors long enough for those behaviors to become the instinct. Meeting the moment requires leaders who can create the conditions where those new patterns can take root.

Text includes the words Continue your journey through Connection. With the Connection italicized for emphasis. Suggests forward movement and thematic focus on connection, from within a curated exhibit in Indianapolis.
Read the whole story
alvinashcraft
7 hours ago
reply
Pennsylvania, USA
Share this story
Delete

Why You Don’t Need To Put Everything In Your Book

1 Share

Are you running the risk of overwhelming your readers? In this post, we tell you why you don’t need to put everything in your book.

Why You Don’t Need To Put Everything In Your Book

One of the main reasons beginner writers don’t finish their books is because they try to put everything into the story.

If you want to write a novel, you need to follow some basic rules. You need to limit the number of your characters. You need to give them story goals. You need to limit the number of settings. You need to include necessary dialogue and leave out unimportant conversations.

If you don’t do this, you run the risk of overwhelming your readers. Readers who feel lost are likely to abandon your story and find another one where they feel more comfortable.

Too Many Characters

Readers read to live vicariously through a fictional character. You cannot expect them to fragment into 10 characters and empathise with everybody.

We follow the rule that you should concentrate on the four main characters, with special emphasis on your protagonist. You need to create story goals for them as well.

Allow readers to bond with these characters so that they can identify with them.

Suggested reading: The 4 Main Characters As Literary Devices

Too Many Settings

The same goes for settings. Readers like to feel that they know where the story takes place. They become comfortable with the world you’ve created. If you continuously add new settings, you will distract them and you will interrupt the flow of the story.

We follow the rule that you should introduce most of your settings within the first quarter of your book. You should also limit them to the worlds of the four main characters.

Suggested reading: 12 Crucial Things To Remember About Setting

Too Many Plots

Readers also don’t want to feel confused by too many story lines. Again, look at your protagonist’s story goal and use this to figure out your plot and sub-plot.

Readers are comfortable with one main plot and one or two sub-plots. Remember that this is not the only book you will write. Keep some of the plots you want to include for other novels – or maybe a sequel.

Suggested reading: 6 Sub-Plots That Add Style To Your Story

Too Much Dialogue

Readers also don’t want to read about greetings, comments about the weather, questions about relatives, etc. – unless they move the plot forward in some way. Use dialogue carefully. Use it show people, create conflict, and show and not tell.

Suggested reading: A Quick Start Guide To Writing Dialogue

Keep It Simple

This does not mean that you are dumbing down your story, but you are following the rules of fiction writing. Choose your characters. Give them clear story goals. Write the book.

If you do this, you are more likely to be published. Editors are more likely to give you a chance. More importantly, readers are more likely to enjoy your book,

Good luck with your writing!

by Amanda Patterson
© Amanda Patterson

If you enjoyed this blogger’s writing, read:

  1. How To Write Hardboiled Fiction
  2. 12 Types Of Memoirs – Which One Is Yours?
  3. How Many Suspects Do You Need In A Crime Novel?
  4. What’s The Difference Between An Autobiography And A Memoir?
  5. How Your Characters’ To-Do Lists Can Help You Plot Your Book
  6. Why Writing A Memoir Is All About The ‘How
  7. 29 Ways To Write About Happiness
  8. 7 Really Good Reasons To Write A Memoir

Top Tip: Find out more about our workbooks and online courses in our shop.

The post Why You Don’t Need To Put Everything In Your Book appeared first on Writers Write.

Read the whole story
alvinashcraft
7 hours ago
reply
Pennsylvania, USA
Share this story
Delete

Links For You (1/25/26)

1 Share

I write this in the midst of a huge ice event - which thankfully isn't so bad here in south Louisiana. We're very cold and rainy, but no real ice yet, which is good. The worst is coming in later tonight and the schools have already shut down, but thankfully I work at home so there's no need to get on the roads. Today is also the 26th birthday of my eldest child, which makes the age ranges of my little army (8 kids total) go from 10 to 26. Wow.

Temporal is Coming...

Ok, most likely you've seen this across your feeds already, I swear I saw it at least ten times, but "Date is out, Temporal is in" is a great introduction to the new date hotness in JavaScript, the Temporal API.

According to MDN, the support is good so I imagine I'll be using this soon myself.

Temporal is so hot right now

The Personal Site is Back!

Or at least that's what I hear. Personally, I miss seeing all the cute, weird, personal web pages from the old days, so any effort to help promote this trend is a good thing in my book. Personalsit.es is a collection of personal web sites and a quick way to hop to a random one. Anyone can submit a PR to add your own. (I did!)

Free APIs to Get Your Hack On

This isn't new, but I love a good API, and what's better than one good API? How about near 500 of them! Free Public APIs is exactly what it sounds like, a collection of free APIs. Building simple API wrappers are a great way to learn a new language. Sadly though there are only three cat APIs - someone fix that please!

Just For Fun

Another music discovery for me, hemlocke springs is an American singer and songwriter who just started being active in the music scene over the past few years. She's got a great sound, and while this is the only track I've tried so far, I'm looking forward to listening to more from her.

Play Video

Read the whole story
alvinashcraft
7 hours ago
reply
Pennsylvania, USA
Share this story
Delete

Google Discover Replaces News Headlines With Sometimes Inaccurate AI-Generated Alternatives

1 Share
An anonymous reader shared this report from The Verge: In early December, I brought you the news that Google has begun replacing Verge headlines, and those of our competitors, with AI clickbait nonsense in its content feed [which appears on the leftmost homescreen page of many Android phones and the Google app's homepage]. Google appeared to be backing away from the experiment, but now tells The Verge that its AI headlines in Google Discover are a feature, one that "performs well for user satisfaction." I once again see lots of misleading claims every time I check my phone... For example, Google's AI claimed last week that "US reverses foreign drone ban," citing and linking to this PCMag story for the news. That's not just false — PCMag took pains to explain that it's false in the story that Google links to...! What does the author of that PCMag story think? "It makes me feel icky," Jim Fisher tells me over the phone. "I'd encourage people to click on stories and read them, and not trust what Google is spoon-feeding them." He says Google should be using the headline that humans wrote, and if Google needs a summary, it can use the ones that publications already submit to help search engines parse our work. Google claims it's not rewriting headlines. It characterizes these new offerings as "trending topics," even though each "trending topic" presents itself as one of our stories, links to our stories, and uses our images, all without competent fact-checking to ensure the AI is getting them right... The AI is also no longer restricted to roughly four words per headline, so I no longer see nonsense headlines like "Microsoft developers using AI" or "AI tag debate heats." (Instead, I occasionally see tripe like "Fares: Need AAA & AA Games" or "Dispatch sold millions; few avoided romance.") But Google's AI has no clue what parts of these stories are new, relevant, significant, or true, and it can easily confuse one story for another. On December 26th, Google told me that "Steam Machine price & HDMI details emerge." They hadn't. On January 11th, Google proclaimed that "ASUS ROG Ally X arrives." (It arrived in 2024; the new Xbox Ally arrived months ago.) On January 20th, it wrote that "Glasses-free 3D tech wows," introducing readers to "New 3D tech called Immensity from Leia" — but linking to this TechRadar story about an entirely different company called Visual Semiconductor... Google declined our request for an interview to more fully explain the idea. The site Android Police spotted more inaccurate headlines in December: A story from 9to5Google, which was actually titled 'Don't buy a Qi2 25W wireless charger hoping for faster speeds — just get the 'slower' one instead' was retitled as 'Qi2 slows older Pixels.' Similarly, Ars Technica's 'Valve's Steam Machine looks like a console, but don't expect it to be priced like one' was changed to 'Steam Machine price revealed.' At the time, we believed that the inaccuracies were due to the feature being unstable and in early testing.... Now, Google has stopped calling Discover replacing human-written headlines as an "experiment." "Google buries a 'Generated with AI, which can make mistakes' message under the 'See more' button in the summary," reports 9to5Google, "making it look like this is the publisher's intended headline." While it is obvious that Google has refined this feature over the past couple of months, it doesn't take long to still find plenty of misleading headlines throughout Discover... Another article from NotebookCheck about an Anker power bank with a retractable cable was given a headline that's about another product entirely. A pair of headlines from Tom's Hardware and PCMag, meanwhile, show the two sides of using AI for this purpose. The Tom's Hardware headline, "Free GPU & Amazon Scams," isn't representative of the actual article, which is about someone who bought a GPU from Amazon, canceled their order, and the retailer shipped it anyway. There's nothing about "Amazon Scams" in the article.

Read more of this story at Slashdot.

Read the whole story
alvinashcraft
7 hours ago
reply
Pennsylvania, USA
Share this story
Delete

Optimizing Python scripts with AI

1 Share

One of the first steps we take when we want to optimize software is to look
at profiling data. Software profilers are tools that try to identify where
your software spends its time. Though the exact approach can vary, a typical profiler samples your software (steps it at regular intervals) and collects statistics. If your software is routinely stopped in a given function, this function is likely using a lot of time. In turn, it might be where you should put your optimization efforts.

Matteo Collina recently shared with me his work on feeding profiler data for software optimization purposes in JavaScript. Essentially, Matteo takes the profiling data, and prepares it in a way that an AI can comprehend. The insight is simple but intriguing: tell an AI how it can capture profiling data and then let it optimize your code, possibly by repeatedly profiling the code. The idea is not original since AI tools will, on their own, figure out that they can get profiling data.

How well does it work? I had to try it.

Case 1. Code amalgamation script

For the simdutf software library, we use an amalgamation script: it collects all of the C++ files on disk, does some shallow parsing and glues them together according to some rules.

I first ask the AI to optimize the script without access to profiling data. What it did immediately was to add a file cache. The script repeatedly loads the same files from disk (the script is a bit complex). This saved about 20% of the running time.

Specifically, the AI replaced this naive code…

def read_file(file):
    with open(file, 'r') as f:
        for line in f:
            yield line.rstrip()

by this version with caching…

def read_file(file):
    if file in file_cache:
        for line in file_cache[file]:
            yield line
    else:
        lines = []
        with open(file, 'r') as f:
            for line in f:
                line = line.rstrip()
                lines.append(line)
                yield line
        file_cache[file] = lines

Could the AI do better with profiling data? I instructed it to run the Python profiler: python -m cProfile -s cumtime myprogram.py. It found two additional optimizations:

1. It precompiled the regular expressions (re.compile). It replaced

  if re.match('.*generic/.*.h', file):
    # ...

by

if generic_pattern.match(file):
    # ...

where elsewhere in the code, we have…

generic_pattern = re.compile(r'.*generic/.*\.h')

2. Instead of repeatedly calling re.sub to do a regular expression substitution, it filtered the strings by checking for the presence of a keyword in the string first.

if 'SIMDUTF_IMPLEMENTATION' in line: # This IF is the optimization
  print(uses_simdutf_implementation.sub(context.current_implementation+"\\1", line), file=fid)
else:
  print(line, file=fid) # Fast path

These two optimizations could probably have been arrived at by looking at the code directly, and I cannot be certain that they were driven by the profiling data. But I can tell that they do appear in the profile data.

Unfortunately, the low-hanging fruit, caching the file access, represented the bulk of the gain. The AI was not able to further optimize the code. So the profiling data did not help much.

Case 2: Check Link Script

When I design online courses, I often use a lot of links. These links break over time. So I have a simple Python script that goes through all the links, and verifies them.

I first ask my AI to optimize the code. It did the same regex trick, compiling the regular expression. It created a thread pool and made the script asynchronous.

with concurrent.futures.ThreadPoolExecutor(max_workers=10) as executor:
    url_results = {url: executor.submit(check_url, url) for url in urls_to_check}
    for url, future in url_results.items():
        url_cache[url] = future.result()

This parallelization more than doubled the speed of the script.

It cached the URL checks in an interesting way, using functools:

from functools import lru_cache

@lru_cache(maxsize=None)
def check(link):
    # ...

I did not know about this nice trick. This proved useless in my context because I rarely have several times the same link.

I then started again, and told it to use the profiler. It did much the same thing, except for the optimization of the regular expression.

As far as I can tell all optimizations were in vain, except for the multithreading. And it could do this part without the profiling data.

Conclusion so far

The Python scripts I tried were not heavily optimized, as their performance was not critical. They are relatively simple.

For the amalgamation, I got a 20% performance gain for ‘free’ thanks to the file caching. The link checker is going to be faster now that it is multithreaded. Both optimizations are valid and useful, and will make my life marginally better.

In neither case I was able to discern benefits due to the profiler data. I was initially hoping to get the AI busy optimizing the code in a loop, continuously running the profiler, but it did not happen in these simple cases. The AI optimized code segments that contributed little to the running time as per the profiler data.

To be fair, profiling data is often of limited use. The real problems are often architectural and not related to narrow bottlenecks. Even when there are identifiable bottlenecks, a simple profiling run can fail to make them clearly identifiable. Further, profilers become more useful as the code base grows, while my test cases are tiny.

Overall, I expect that the main reason for my relative failure is that I did not have the right use cases. I think that collecting profiling data and asking an AI to have a look might be a reasonable first step at this point.

Read the whole story
alvinashcraft
8 hours ago
reply
Pennsylvania, USA
Share this story
Delete
Next Page of Stories