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

IoT Coffee Talk: Episode 302 - Netscape (A Neuromorphic Throwback)

1 Share
From: Iot Coffee Talk
Duration: 38:51
Views: 2

Welcome to IoT Coffee Talk, where hype comes to die a terrible death. We have a fireside chat about all things #IoT over a cup of coffee or two with some of the industry's leading business minds, thought leaders and technologists in a totally unscripted, organic format.

This week Rob and Pete jump on Web3 for a discussion about:

šŸŽ¶ šŸŽ™ļø BAD KARAOKE! šŸŽø 🄁 "Catfish Blues", Jimi Hendrix
🐣 Why Edge AI is not going to MWC when mobile is largely about edge AI?
🐣 Why aren't we using more neuromorphic compute for AI stuff?
🐣 We want more for less, but what went wrong? Is IoT and edge AI the way to go?
🐣 Rob and Pete talk about the legacy of Texas Tech!
🐣 Why are Apple's Mac Mini selling out? Did they have AI right this whole time?
🐣 AI needs guardrails. Do humans need guardrails with AI?
🐣 How the old school mini computer creators create our whole new world.
🐣 The origins of the Internet and how its wizards apparently didn't sleep.
🐣 From Netscape to Clubhouse.
🐣 How "Plug and Pray" change the world and propelled Microsoft Windows.
🐣 It's never too late to innovate. Being first likely means you will be first.
🐣 Pete shows off his Oscar Goldman look!

It's a great episode. Grab an extraordinarily expensive latte at your local coffee shop and check out the whole thing. You will get all you need to survive another week in the world of IoT and greater tech!

Tune in! Like! Share! Comment and share your thoughts on IoT Coffee Talk, the greatest weekly assembly of Onalytica and CBT tech and IoT influencers on the planet!!

If you are interested in sponsoring an episode, please contact Stephanie Atkinson at Elevate Communities. Just make a minimally required donation to www.elevatecommunities.org and you can jump on and hang with the gang and amplify your brand on one of the top IoT/Tech podcasts in the known metaverse!!!

Take IoT Coffee Talk on the road with you on your favorite podcast platform. Go to IoT Coffee Talk on Buzzsprout, like, subscribe, and share: https://lnkd.in/gyuhNZ62

Read the whole story
alvinashcraft
31 minutes ago
reply
Pennsylvania, USA
Share this story
Delete

GeekWire Podcast on location at OpenAI in Bellevue, with CTO of Applications Vijaye Raji

1 Share
Vijaye Raji, OpenAI’s CTO of Applications, speaks at the company’s Bellevue office opening. (GeekWire Photo / Todd Bishop)

OpenAI just opened its largest office outside San Francisco, in downtown Bellevue, Wash., and we were there for the grand opening to tour the space, check out the vibe, and record this week’s GeekWire Podcast.

Chatting inside the OpenAI game room, we share our observations about the Mad Men-meets-Pacific Northwest aesthetic — which features open floor plans and a wide variety of common areas — and try to figure out what it all says about OpenAI’s culture.Ā 

Plus, a conversation with Vijaye Raji, former Statsig CEO and now OpenAI’s CTO of applications, about Codex, infrastructure, hiring, and the evolution and growth of Silicon Valley tech giants in the region.Ā 

In our final segment, it’s the return of the GeekWire trivia challenge, with a question focusing on one of the earliest tech giants to establish an outpost in the Seattle area. 

‘Hard to imagine going back’

One of the most interesting moments in the conversation with Raji came when he described how OpenAI’s own Codex tool has changed his day-to-day work, to the point where he’s personally making software again, or at least he’s prompting the software to make software.

“Codex has made coding a lot more delightful,” Raji said. “I’m back coding.”

He described a new daily rhythm: “Before you hop into a meeting, you ask it to go do a set of tasks, and then you jump into a meeting, and then when you come back, it’s done, and then you review it,” he said. “It’s so cool.”

OpenAI CTO of Applications Vijaye Raji (left) and Bellevue Mayor Mo Malakoutian just after cutting the ribbon at the opening of OpenAI’s new Bellevue office. (GeekWire Photo / Todd Bishop)

Internally, Raji said teams using Codex are seeing 2-3x productivity gains in terms of code output. Beyond engineering, the tool has found its way into marketing, sales, and operations.

“It’s very hard for me to imagine going back to the way we used to write code anymore,” he said. “It’s fundamentally changed.”

OpenAI’s Codex, which got a Windows app this week, is part of an explosion of AI coding tools including GitHub Copilot (Microsoft), Amazon Q Developer, Google’s Gemini Code Assist, Anthropic’s Claude Code and others, all promising significant developer productivity gains.

A template for other OpenAI offices

As for the Bellevue office, Raji sees it as a potential model for OpenAI’s expansion elsewhere. The proximity to San Francisco headquarters, the shared time zone, the short distance from OpenAI partners Microsoft and Amazon, and the depth of local infrastructure talent make it an ideal test case.

A seating area at OpenAI’s new Bellevue office, featuring the retro-modern aesthetic that runs throughout the space. (Trevor Tondro Photo for OpenAI)

“If we can make Seattle very, very successful, we can take that formula and apply it to more offices,” he said.

OpenAI currently has 250 employees in Bellevue, with room to grow to 1,400. The office houses teams working on infrastructure, ChatGPT, research, advertising, and partnerships.

Raji will be speaking at GeekWire’s AI event, Agents of Transformation, March 24. More info and tickets.

Subscribe to GeekWire in Apple Podcasts, Spotify, or wherever you listen.

Related coverage: Inside OpenAI’s new Bellevue office: A swanky statement about AI’s impact on the Seattle region

Audio editing by Curt Milton.

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

OpenAI delays ChatGPT’s ā€˜adult mode’ again

1 Share
The feature, which will give verified adult users access to erotica and other adult content, had already been delayed from December.
Read the whole story
alvinashcraft
2 hours ago
reply
Pennsylvania, USA
Share this story
Delete

How to Center Any Element in CSS: 7 Methods That Always Work

1 Share

Centering elements in CSS often seems straightforward at first, but it quickly becomes confusing once you start building real layouts. A property like text-align: center; works perfectly for text, yet it fails when you try to center an image or a block element.

Then you experiment with margin: auto;, which centers a div horizontally but doesn’t help with vertical alignment. Before long, you find yourself searching through solutions involving Flexbox, Grid, transforms, and other techniques that appear complicated and inconsistent.

The reality is that CSS does not provide a single universal property that can center everything. Instead, each layout scenario requires the right method, and understanding when to use each technique is the key to mastering CSS centering.

Table of Contents

First: Understand the Two Types of Centering

Before diving into centering techniques, it’s important to understand the two types of centering in CSS, because different methods work along different axes. CSS layouts operate on two axes: Knowing which axis you want to center along helps you choose the right approach.

There are two axes in CSS layout:

Axis

Direction

Horizontal

Left to Right

Vertical

Top to Bottom

When someone says ā€œcenter this elementā€, they usually mean one of four things:

  • Center text inside a container

  • Center a block horizontally

  • Center vertically

  • Center both horizontally and vertically

Each requires a different solution.

Method 1: Center Inline Content (text, inline elements)

This method centers inline content such as text, links, inline images, and sometimes buttons, using the text-align: center; property. This is the simplest centering method in CSS, but it is often misunderstood because it only affects the content inside a block container, not the container itself.

Example

<div class="box">
  <h2>Hello World</h2>
  <p>This text is centered.</p>
</div>
.box {
  text-align: center;
  border: 2px solid #444;
  padding: 20px;
}

Output

f9c2bb33-f6aa-4b12-b5cc-2d3cc9d76032

Why It Works

When you apply text-align: center; to a parent element, the browser horizontally aligns all inline and inline-block children within that container. This makes it perfect for centering headings, paragraphs, navigation links, or small inline elements, but it won’t work for block-level elements like divs unless their display is changed to inline-block.

So this will NOT work:

.box {
  width: 300px;
  text-align: center; /* does NOT center the box */
}

Real-world use cases

  • Center headings

  • Center button labels

  • Navigation menus

  • Card content alignment

Beginner Mistake

Most people try to center a <div> with text-align: center;. This won’t move the div, only its contents.

Method 2: Center a Block Horizontally

This method centers a block element horizontally using margin: 0 auto;, which is one of the oldest and most reliable CSS techniques. It works by automatically distributing the available horizontal space equally on the left and right sides of the element. When you set the left and right margins to auto, the browser calculates the remaining space in the container and splits it evenly, pushing the element into the center.

Works when:

  • Element has a width

  • Element is block-level

Example, Center a Card

<div class="card">
  I am centered!
</div>
.card {
  width: 300px;
  margin: 0 auto;
  padding: 20px;
  background: #eee;
}

Output

1f1e1df4-7e33-4f54-a9f7-c688c5432782

Why It Works

When you set the elements' margins to auto, the browser calculates the remaining horizontal space in the container after accounting for the element’s width. It then distributes this extra space equally between the left and right margins, which pushes the element into the center. This happens automatically, making margin: 0 auto; a simple and reliable way to horizontally center block elements with a fixed width.

|----auto----|---element---|----auto----|

Browser calculates: left margin = right margin. So the element sits in the middle.

Important Rule

If width is not defined, it won't work:

.card {
  margin: auto; /* won't center , takes full width */
}

Because block elements default to width: 100%;.

Real-world use cases

  • Center website layout container

  • Center forms

  • Center blog content area

Method 3: Perfect Center (Horizontal + Vertical) with Flexbox

This method uses Flexbox to center an element both horizontally and vertically, making it one of the most reliable modern CSS solutions. When you set a container to display: flex;, you activate the Flexbox layout system, which gives you powerful alignment controls. The property justify-content: center; centers the content along the main axis (usually horizontal), while align-items: center; centers it along the cross axis (usually vertical).

Example, Center Login Box

<div class="page">
  <div class="login">
    Login Form
  </div>
</div>

.page {
  height: 100vh;
  display: flex;
  justify-content: center;
  align-items: center;
}

.login {
  padding: 40px;
  background: white;
  border: 2px solid #333;
}

Output

e7c4abc2-1d23-4933-9b3a-dad52326e924

Why It Works

Flexbox treats the container and its children as a flexible layout system, automatically distributing space along the main and cross axes. This allows any element, regardless of its size, to sit perfectly in the middle of the container, making it ideal for centering modals, hero sections, and other dynamic content.

Property

Controls

justify-content

horizontal

align-items

vertical

This Works Regardless Of:

  • Unknown height

  • Unknown width

  • Responsive layouts

  • Dynamic content

That’s why it’s widely used today.

Real-world use cases

Developers commonly use Flexbox centering to place important interface elements directly in the middle of the screen. For example, it helps center modal dialogs, loading spinners, hero section content, and other full-screen UI components. Hence, they remain visually balanced and easy for users to notice, regardless of screen size.

Method 4: Center Using CSS Grid (The Easiest Method Ever)

CSS Grid offers one of the simplest ways to center elements both horizontally and vertically. By setting a container to display: grid; and applying place-items: center;, you can position any child element perfectly in the middle with just a few lines of code. This method works because Grid provides built-in alignment controls that automatically handle positioning along both axes.

Example

<div class="wrapper">
  <div class="box">Centered!</div>
</div>

.wrapper {
  height: 100vh;
  display: grid;
  place-items: center;
}
.box {
  width: 200px;
  padding: 30px;
  text-align: center;
  background: white;
  border: 2px solid #333;
}

Output

fb959081-1adb-467b-bf7d-754ec2777566

In this example, the .wrapper acts as the grid container, and the .box element becomes a grid item. The property place-items: center; automatically aligns the box in the middle of the container, both horizontally and vertically.

100vh means 100% of the viewport height, which is the full height of the visible browser window. When you set height: 100vh; on a container, it expands to fill the entire screen from top to bottom.

Why It Works

The property place-items: center is actually shorthand for two grid alignment properties:

align-items: center;
justify-items: center;
  • align-items controls vertical alignment inside the grid.

  • justify-items controls horizontal alignment.

By combining both in one line, Grid centers elements in both directions automatically without needing additional layout rules.

When to Prefer Grid Over Flexbox

CSS Grid is ideal when you only need simple centering and don’t require complex layout control. It keeps your code short and easy to read.

Use Grid when:

  • You only need to center a single element

  • You are not building complex layouts

  • You want the simplest and cleanest code

Use Flexbox when:

  • You are aligning multiple items

  • Layout direction matters (row vs column)

  • You need spacing control between elements

Method 5: Center with Absolute Position + Transform

This centers an element using absolute positioning combined with CSS transforms, and it works even when you are not using Flexbox or Grid. In this approach, you position the element with position: absolute; and move it to the middle of its parent using top: 50%; and left: 50%;.

Example, Center Popup

<div class="container">
  <div class="popup">I'm centered</div>
</div>
.container {
  position: relative;
  height: 400px;
}

.popup {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

Output

bc20cc8d-090c-45cf-a240-8792c6963784

Why It Works

  1. top: 50% moves the top edge to the middle

  2. left: 50% moves the left edge to the middle

  3. translate(-50%, -50%) shifts the element back by half its size

So the center becomes the element’s midpoint, not the corner.

Explanation

Without transform: The element corner sits at the center, which means this places the top-left corner of the element at the center point.

f579c42a-074f-4bda-8fab-5c8163ff8fac

To fix that, you apply transform: translate(-50%, -50%);, which shifts the element back by half of its own width and height. This adjustment ensures the actual center of the element aligns with the center of the container. Developers often use this technique for overlays, modals, tooltips, and floating UI components.

Real-world use cases

  • Modals

  • Tooltips

  • Floating labels

  • Overlays

Method 6: Vertical Center Single Line Text

This method vertically centers single-line text inside a container by using the line-height property. When you set the line-height to the same value as the container’s height, the browser places the text in the vertical middle of that space because the line box expands to fill the container evenly.

Example, Center Text in Button

<button class="btn">Click Me</button>
.btn {
  height: 60px;
  line-height: 60px;
  text-align: center;
}

Output

be456849-c4b8-49aa-a330-fe448b9a5ee6

Why It Works

This technique works best for elements with a fixed height, such as buttons, badges, or navigation items. However, it only works reliably when the text stays on one line, because multiple lines will break the vertical alignment.

Limitations

The main limitation of using line-height to vertically center text is that it only works for single-line text. If the text wraps onto multiple lines, the line-height no longer matches the container height for each line, causing the vertical centering to break.

This makes the method unsuitable for paragraphs, headings, or any content that can expand beyond one line, so it’s best reserved for buttons, labels, or other fixed-height, single-line elements.

Method 7: The Table-Cell Method (Old but Useful)

This method uses the table-cell technique to center content vertically and horizontally, a reliable approach for older CSS layouts and email templates. By setting a container to display: table; and its child element to display: table-cell; with vertical-align: middle; and text-align: center;, The browser treats the child like a table cell and automatically centers its content.

Example

<div class="outer">
  <div class="inner">Centered</div>
</div>
.outer {
  display: table;
  width: 100%;
  height: 300px;
}

.inner {
  display: table-cell;
  vertical-align: middle;
  text-align: center;
}

Output

e0960bcf-bd1c-43c0-9d1b-afa48530fd8d

How It Works

  • The .outer container acts as a table.

  • The .inner element behaves like a table cell.

  • Table cells automatically respect vertical alignment rules.

  • Combining vertical-align: middle; and text-align: center; perfectly centers the content both vertically and horizontally.

Why Use This Method

  • It works in older browsers that don’t fully support Flexbox or Grid.

  • It’s especially useful in email templates or legacy layouts.

  • No knowledge of height calculation or transforms is required.

Quick Decision Guide

Situation

Best Method

Center text

text-align

Center block horizontally

margin auto

Center anything modern

flexbox

Simplest full center

grid

Overlay/modal

absolute + transform

Single-line text vertical

line-height

Legacy/email support

table-cell

Common Beginner Problems (And Fixes)

Problem 1: ā€œmargin auto not working.ā€

You forgot the width.

width: 300px;
margin: auto;

Problem 2: ā€œalign-items center not working.ā€

Parent needs height.

height: 100vh;

Problem 3: ā€œabsolute centering weird position.ā€

Parent missing positioning.

parent { position: relative; }

Problem 4: Flexbox vertical centering fails

Check direction:

flex-direction: column;

Now vertical/horizontal axes swap!

Pro Tips You’ll Use Forever

1. Flexbox = alignment tool

2. Grid = placement tool

3. Margin auto = layout tool

Different tools, different jobs.

Remember This Rule

  • If you are centering one thing, use Grid

  • If centering many things, use Flexbox

Summary

CSS centering often feels difficult because beginners expect a single magic property that works in every situation, but no such property exists. Instead, CSS provides multiple layout systems, each designed to solve specific alignment problems.

These include inline alignment for text and inline elements, flow layout for standard block elements, Flexbox for flexible row or column arrangements, Grid for two-dimensional layouts, and positioned layouts for absolute or fixed elements. Once you understand which system applies to your scenario, centering becomes predictable and much easier to implement.

The 7 Methods You Should Memorize

  1. text-align: center

  2. margin: 0 auto

  3. Flexbox centering

  4. Grid place-items: center

  5. Absolute + transform

  6. Line-height trick

  7. Table-cell fallback



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

Audio Notes 2.0. Smarter Summaries, Better Insights, Less Time Wasted

1 Share

We’re all drowning in content. Every week there are new podcast episodes, conference talks, and YouTube videos that feel essential to keeping up.

The problem is not finding good content. The problem is that a 3-hour podcast demands 3 hours of your life before you know whether it was worth it.

I built Audio Notes to solve this.

You paste a YouTube or podcast URL, and it produces an AI-generated summary with key takeaways, action items, and topic tags.

Version 1 did a solid job. Version 2 does it significantly better.

I had neglected the version 1 prototype but have gave it a reboot.Ā  There were some things I wasn’t happy about.Ā  I leveraged Claude Code to extend some of the features -another productivity boost.

In this post I will walk through what has changed in Audio Notes 2.0, why I made these changes, and how the new features help you extract more value from long-form content in less time.

~

What Was Missing in Version 1

The original Audio Notes relied heavily on Azure AI Language for summarisation. It worked, but the summaries were extractive. The system pulled key sentences directly from the transcript rather than synthesising new ones.

For a 30-minute video this was adequate. For a 3-hour podcast, the output often felt thin.

Key takeaways were the biggest gap.

A 3-hour conversation covering half a dozen topics would produce 3 to 5 bullet points. That is not enough to capture the breadth of a long discussion. I was losing information that mattered.

I also had no way to see at a glance how much time a summary was saving me. The numbers were impressive, but they were invisible.

~

What Is New in Audio Notes 2.0

LLM-Powered Summary Generation.Ā  The biggest change is the integration of OpenAI via Semantic Kernel.

Instead of relying solely on extractive summarisation, Audio Notes now sends the full transcript to a large language model with a structured prompt. The model returns:

  • A written summary of the content
  • Key takeaways covering the breadth of topics discussed
  • Action items mentioned in the conversation
  • Topic tags for quick categorisation

 

The difference in quality is immediately noticeable. Summaries read like something a person wrote, not a collection of sentences pulled from a transcript.Ā  The generated summaries are much better,

~

Smarter Key Takeaways That Scale with Content Length

This was a specific frustration. A 15-minute video and a 3-hour podcast were producing roughly the same number of key takeaways. That made no sense.

Audio Notes 2.0 scales the number of requested takeaways based on the transcript length:

  • Short content (under ~20 minutes): 5 takeaways
  • Medium content (up to ~1 hour): 8 takeaways
  • Longer content (up to ~2 hours): 10 takeaways
  • Extended content (3+ hours): 15 takeaways

 

The prompt also instructs the model to cover the breadth of topics discussed, rather than clustering around a single theme.

The result is a set of takeaways that actually represents the full conversation.

~

Time Savings Dashboard

Every summary page now displays three stat cards at the top:

  • Original Duration showing the length of the source content in hours and minutes
  • Reading Time estimating how long it takes to read the summary at an average reading pace
  • Time Saved showing the minutes reclaimed and a percentage with a visual progress bar

 

For a typical 60-minute podcast, the reading time is around 3 to 4 minutes. That is a 90%+ saving displayed right on the page. It is a small addition, but seeing the concrete numbers reinforces that the tool is doing its job.

~

Improved YouTube Processing

Audio extraction from YouTube has been overhauled. The underlying tooling now handles a wider range of video formats and edge cases. The processing pipeline is more reliable, and failures that previously required manual intervention are handled automatically.

~

Topic Badges

Topics extracted from the content are displayed as visual badges on the summary page. This gives you an instant signal about what a piece of content covers before you read any of the summary text.

~

How It Works

The workflow is still three steps and hasn’t changed.

  1. Paste a URL. Drop in any YouTube video or podcast URL from the dashboard.
  2. Generate Summary. Audio Notes extracts the audio, sends it to Azure transcription, then passes the transcript to OpenAI for structured analysis. The entire pipeline runs asynchronously so you can submit a URL and come back to it later.
  3. Review Your Insights. The summary page presents the time savings dashboard, the full summary with markdown formatting, key takeaways, action items, and topic badges. A link back to the original source is included if you decide the content warrants a full listen.

 

I have removed the voice note feature for now.

~

The Technology Behind It

Audio Notes 2.0 is built on .NET with the following services:

  • Azure Speech Services for batch transcription of audio content
  • OpenAI via Semantic Kernel for LLM-powered summary generation, key takeaway extraction, action item identification, and topic classification
  • Azure Blob Storage for persisting transcripts and generated summaries
  • SQL Server with Entity Framework Core for job tracking, user management, and encrypted settings storage

 

The background processing middleware monitors the database for new jobs, submits them to Azure Speech Services, polls for completion, downloads the transcript, extracts the duration, and triggers summary generation.

The web application handles the user interface and job management.

~

A Real Example

I recently processed a 6-hour podcast episode. In version 1, I would have received a handful of takeaways that barely scratched the surface.

With version 2, the summary page showed:

  • Original Duration: 6h 9m
  • Reading Time: 2 min
  • Time Saved: 367 min (99%)

 

The key takeaways section listed many distinct points covering the full range of topics discussed across the episode.

The action items flagged specific tools and frameworks mentioned that were worth investigating further. The topic badges gave me an instant overview before I read a single line.

Total time from paste to insight: under 10 minutes including processing time.

~

What Is Next

I am continuing to refine the summarisation prompts and exploring the integration of Audio Notes with my AI Researcher agent.

The goal is a fully automated pipeline where the researcher agent discovers noteworthy content and Audio Notes summarises it without manual intervention.

I am also looking at supporting batch submission of multiple URLs in a single operation, making it practical to process an entire week of podcast episodes in one go.

~

Wrapping Up

Audio Notes 2.0 is a good step forward from the original. The move to LLM-powered summarisation, the dynamic scaling of key takeaways, and the time savings dashboard make the tool more useful for processing long-form content.

If you are spending hours each week consuming podcasts and YouTube videos, this is the kind of tool that gives you those hours back.

The summaries are better, the insights are deeper, and the time savings are now visible on every page.Ā  You can then decide if you want to make the time investment.

Audio Notes 2.0 is available here.

~

JOIN MY EXCLUSIVE EMAIL LIST
Get the latest content andĀ code from the blog posts!
I respect your privacy. No spam. Ever.
Read the whole story
alvinashcraft
2 hours ago
reply
Pennsylvania, USA
Share this story
Delete

When to Use Prototype Pattern in C#: Decision Guide with Examples

1 Share

When to use Prototype pattern in C#: decision guide with examples, use cases, and scenarios where cloning objects is better than creating new instances.

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