Creating an emulator is a very powerful experience. Not only do you become intimately familiar with the target hardware, but you virtually recreate it with simple keystrokes. Emulators aim to recreate every single component of a piece of hardware down to the electrical timing of a single CPU cycle, not to be confused with simulators, which simply mimic a platform. It’s not always a simple task, but it’s very rewarding when you power it up and are presented with a piece of childhood memory. Sure, there are plenty of emulators out there, but creating your own makes using it and tweaking it so much more fun.
The MOS 6510 is a modified version of the popular MOS 6502. The 6502 was used in systems like the Apple IIe, Atari 800 and 2600, Commodore VIC-20, Nintendo Famicom, and others. The biggest difference with the MOS 6510 is the addition of a general purpose 8-bit I/O port.
I wanted to emulate a Commodore 64... Why? The Commodore 64 was a staple of my childhood. Before graphical OS’es and the internet, there was just imagination and a command prompt. Pair that with some BASIC programming books that my dad left lying around and I felt like I had the world at my fingertips. I wanted to become more familiar with the first computer I ever used. The C64 is simple and complex at the same time, and its internal workings intrigued me.
The MOS 6510 was the CPU that the C64 used. To emulate a full C64 machine, you would also need to emulate the MOS 6581 SID (sound), MOS VIC-II (display), MOS 6526 CIA (interface adapters), I/O and more, but this article focuses on the heart of it all – the CPU. The memory in a C64 is also outlined, because without memory, the CPU can’t do very much.
First off, this article is, as mentioned in the title, a crash course. So, I won’t be going into a lot of detail. It’s more of a primer for those of you who are interested in MOS 6510 emulation, and something to send you off in the right direction.
The basic cycle your emulator will perform will be the following:
Read next instruction from memory at the PC (program counter)
Process instruction
Process Timers on CIA1 and CIA2 (not covered in this article)
Update screen via VIC-II (not covered in this article)
Calculate cycles (for emulators that aren’t cycle-exact)
The last point only applies if you are making an instruction-exact emulator vs. a cycle-exact emulator. Instruction-exact emulation is easier because you simply process an instruction and increment by the number of cycles that instruction is supposed to take, but it is less accurate and may result in some features of the system not working exactly right. Cycle-exact emulation only processes one CPU cycle per loop in your emulator, so one instruction could be performed over multiple loops. That method is very accurate but is more complex to implement as you will need to be more granular in how you process instructions.
The CPU is responsible for processing instructions from memory. It’s an 8-bit processor, which means the registers will store 8 bits each, other than the PC (program counter), which is 16 bits (high and low bytes) so that it can store a memory location.
To emulate the processor, you will need to implement the following components...
Registers are small areas of memory located directly in the processor that have extremely fast access. Each register has a purpose and can be used in various ways depending on the context of an instruction.
PC (program counter)
Stores the active address in memory.
S (stack pointer)
Pointer to current location in stack, which starts at 0x01FF in memory and grows downward to 0x0100
P (processor status)
See status flags below
A (accumulator)
Stores arithmetic and logic results
X (index register)
Used for modifying effective addresses
Y (index register)
Used for modifying effective addresses
The status flags are used in the byte that makes up the P register. They can alter the way certain things behave when set or unset and provide status outcomes for operations.
N (1 – negative flag)
V (2 – overflow flag)
X (4 – unused flag)
B (8 – break flag)
D (16 – decimal mode flag)
I (32 – interrupt disable flag)
Z (64 – zero flag)
C (128 – carry flag)
Addressing modes determine where an instruction finds a value to work with. One instruction can have many variations that use different addressing modes, these are called opcodes.
Implied
Operand is in accumulator, no addressing needed. This is for one byte instructions that operate on the accumulator
Immediate
Operand is at byte after instruction, no addressing needed
Relative
Address at PC +/- value of byte after instruction (interpreted as signed byte). This is used for branching. It basically allows the PC to branch from -128 to 127 bytes from its current position
Zero Page
Address at byte after instruction
Zero Page X
Address at byte after instruction + X register
Zero Page Y
Address at byte after instruction + Y register
Absolute
Address at word after instruction
Absolute X
Address at word after instruction + X register
Absolute Y
Address at word after instruction + Y register
Indirect
Address at memory which is pointed to by word after instruction
Indirect X
Address at memory which is pointed to by word after instruction + X register
Indirect Y
Address at memory which is pointed to by word after instruction + Y register
Click for more information on MOS 6510 addressing modes.
There are too many instructions to list in this crash course, but here is a link to an opcode matrix. It shows the value of each opcode, the associated instruction and addressing mode, as well as the logical function of each.
One of the most important aspects of emulating the CPU is the timing. For my C64 emulator, I used the PAL specification of 0.985 MHz, or 985,000 cycles/second. If you are implementing the NTSC specification, then you would use 1.023 MHz. As I said before, if not implementing cycle-exact emulation, you need to determine how many cycles each instruction takes and increment the cycles that have passed. This is important for determining when certain IRQ’s should be fired as well as the progress of the raster line when implementing the VIC-II. The raster line position will have to match the CPU cycles (screen refresh is 50 Hz on PAL, 60 Hz on NTSC) so that programs which rely on raster line position to create certain graphical effects will work.
Also, keep in mind that certain things take extra cycles. For instance, if an instruction uses Absolute Y addressing and crosses the page boundary in memory, that takes an extra CPU cycle.
The MOS 6510 is a little endian chip. This means that when you are reading a word from memory (16 bits on the MOS 6510), you will need to read in the second address position first, followed by the first address position. You can then use the result to create a 16 bit variable in your programming language of choice. A simple example of this is as follows:
(peek(address + 1) << 8) | peek(address)Where peek() grabs a byte from a memory location. The byte from the second address location is bit shifted 8 positions left and is then bitwise OR’ed with the byte from the first address location.
The C64 has 65,535 bytes of memory, or 64 KB. Bank switching is used to switch the ROM and I/O in and out by changing the latch bits in the first two bytes of memory. A page of memory on the C64 is 256 bytes. The first page is called the Zeropage and is easily addressable with zeropage addressing, which is fast because the C64 is an 8-bit machine.
Here is a basic mapping of the C64’s memory:
0x0000-0x00FF: Zeropage – first two bytes contain directional and latch bits that can be set to swap ROM’s and I/O in and out of place.
0x0100-0x01FF: Stack
0x0200-0x03FF: OS
0x0400-0x07FF: Screen
0x0800-0x9FFF: Free RAM for BASIC programs
0xA000-0xBFFF: BASIC ROM or free RAM for machine language programs when ROM switched out
0xC000-0xCFFF: Free RAM for machine language programs
0xD000-0xDFFF: CHAR ROM or I/O or Sprite data, interrupt register, etc. when CHAR ROM and I/O switched out.
0xE000-0xFFFF: KERNEL ROM or free RAM for machine language programs when ROM switched out
When I/O is switched on, the region 0xD000-0xDFFF maps to the following:
0xD000-0xD3FF: VIC-II registers
0xD400-0xD7FF: SID registers
0xD800-0xDBFF: Color memory
0xDC00-0xDCFF: CIA1
0xDD00-0xDDFF: CIA2
0xDE00-0xDEFF: I/O 1
0xDF00-0xDFFF: I/O 2
Click for a more detailed Commodore 64 memory map.
There are two important factors when initializing your emulator – the PC and directional/latch bits in the first two bytes of memory.
The first byte of memory, which contains directional bits, should be initialized to 0xFF. The second byte, which contains the latch bits, should be initialized to 0x07 (00000111). This will enable the KERNEL ROM, BASIC ROM, and I/O. The CHAR ROM and underlying memory of these locations will not be accessible unless the banks are switched.
The PC should be initialized to the word read from memory location 0xFFFC. This will read from the KERNEL ROM due to the latch bits initialization.
That concludes the crash course. Hopefully you’re at least a little more informed about the MOS 6510 than before. The only external pieces you will need to obtain in order to create your emulator are the three ROMs as mentioned above – BASIC, CHAR and KERNEL. These can usually be obtained somewhere online or from another emulator. It’s a lot of work to emulate anything, but it’s a fun project and worth it in the end.
There's usually more to the story so if you have questions or comments about this post let us know!
Do you need a new software development partner for an upcoming project? We would love to work with you! From websites and mobile apps to cloud services and custom software, we can help!
The rise of AI has come at a price as local communities deal with the impact of new data center construction. Your new neighbor might not stop by to borrow a cup of sugar, but what will they bring beyond real estate investment and claims of lower taxes?
Recently in East Vincent Township, PA, a proposed data center ordinance was shelved due to community concerns. And that township isn't alone. A proposed 1.4 million square foot data center in Limerick, PA (which would use energy from the Limerick nuclear power station) is under scrutiny over environmental impact and cost. Limerick Power Station is undergoing a major $167 million Digital Modernization Project, approved by the NRC, to replace analog controls with digital systems for enhanced safety, reliability, and cybersecurity, supporting both existing power needs and a large proposed nearby data center campus (Project Laurel).
So let's take a look at the pros and cons for the primary socio-economic categories impacted by the expansion of data centers across the country.
When any new business opens its doors there are direct and indirect financial benefits for the local community and region as a whole. On the scale of a data center it can be transformational, but at what cost?
Improved long-term, stable tax base because data centers are less volatile than retail or tourism-driven businesses.
Additional tax revenue can lower taxes for everyone else, and can positively impact the quality of schools and public services.
Workforce development opportunities are often created, including partnerships with local colleges, trade schools, or apprenticeship programs.
Additional employment opportunities: construction-phase jobs can create additional short-term employment for local contractors, trades, and suppliers, and high-skill, high-wage technical jobs can raise average local incomes.
Related businesses are attracted by logistics and market opportunities.
Property values are increased as residents see more value and opportunity in the area.
Data centers often negotiate long-term incentives, which can delay or reduce the actual tax revenue realized by the community.
New revenue can be offset by increased public costs, such as infrastructure upgrades, utility expansion, emergency services, and regulatory oversight.
Training programs and partnerships may require public funding or subsidies, and many specialized jobs still go to non-local workers if the local labor pool can't meet technical requirements.
Construction jobs are temporary, and permanent data-center employment can be relatively low compared to the facility’s size and incentives.
Secondary business growth is not guaranteed and may cluster elsewhere.
Rising property values can increase housing costs and property taxes for residents.
Most new businesses on the scale of a data center will also require local infrastructure improvements; think new and improved roads and bridges, electric grid capacity, etc. But it's not all roses. Here are a few of the key aspects of how local infrastructure is affected by a new data center.
Data centers are the bedrock for cloud computing, AI, and future technologies, ensuring the U.S. remains competitive in the digital age.
Utility and transportation infrastructure is often upgraded to support the new business, which has the knock-on effect of improving the lives of local residents.
Improved broadband availability and reliability, which can attract remote workers and tech startups, and increased grid resiliency through utility investment and redundancy improvements.
Lower traffic and lower strain on public services compared to factories, warehouses, or retail businesses.
Though data centers are crucial for cloud computing, they may not be the best fit for some communities.
While utilities and roads may be improved, the costs are often subsidized by taxpayers or ratepayers, and construction can cause years of disruption with limited long-term benefit to residents.
Enhanced connectivity and grid investments may be narrowly scoped to serve the data center, leaving residential service largely unchanged or more expensive due to cost recovery.
Although day-to-day traffic is light, it may only center around the data centers themselves.
Any new business will impact the local environment to some extent. The size of a data center means a bigger impact. But it isn't all bad. The key questions is: do the benefits out-weigh the drawbacks?
Increased investment in renewable energy (many data centers commit to solar, wind, or long-term power purchase agreements).
Waste heat reuse potential, such as heating nearby buildings, greenhouses, or municipal facilities.
Modern data centers often exceed environmental efficiency standards compared to older industrial developments.
Low pollution and noise levels relative to manufacturing plants.
Reduced land-use impact through vertical construction and efficient site design, preserving more surrounding green space compared to sprawling industrial facilities.
Data centers can still strain the local power grid, crowding out other users if generation or transmission upgrades lag behind demand.
Heat reuse projects are complex and costly to implement, even when nearby facilities can reliably use the heat.
Even efficient data centers consume vast amounts of electricity and water at scale, impacting regions facing water scarcity or energy capacity limits.
While quieter and cleaner overall, data centers can still introduce noise from fans and large backup generators.
Some data centers are built in rural conservation areas, negatively impacting local wildlife.
There's usually more to the story so if you have questions or comments about this post let us know!
Do you need a new software development partner for an upcoming project? We would love to work with you! From websites and mobile apps to cloud services and custom software, we can help!
Microsoft announced the general availability of .NET 10, describing it as the most productive, modern, secure, and high-performance version of the platform to date. The release is the result of a year-long effort involving thousands of contributors and includes improvements across the runtime, libraries, languages, tools, frameworks, and workloads. The benefits can be seen even if you only use it as a drop-in replacement for .NET 9.
Some of the key improvements to the framework include:
JIT compiler enhancements: Better inlining, method devirtualization, and improved code generation for struct arguments
Hardware acceleration: AVX10.2 support for cutting-edge Intel silicon, Arm64 SVE for advanced vectorization with Arm64 write-barrier improvements reducing GC pause times by 8-20%
NativeAOT improvements: Smaller, faster ahead-of-time compiled apps
Runtime optimizations: Enhanced loop inversion and stack allocation strategies deliver measurable performance gains
Post-quantum cryptography: Expanded PQC support helps future-proof your applications against quantum threats while maintaining compatibility with existing systems
Enhanced networking: Networking improvements make apps faster and more capable
AI frameworks: Building AI-powered apps in .NET 10 is straightforward, from simple integrations to complex multi-agent systems
In addition to library and package features, C# 14 and F# 10 deliver powerful language improvements that make your code more concise and expressive. C# continues to be one of the world’s most popular programming languages, ranking in the top 5 in the 2025 GitHub Octoverse report.
Related platforms are also being updated to run on .NET 10, like Umbraco CMS version 17. So if you're running a prior version now is the time to upgrade!
There's usually more to the story so if you have questions or comments about this post let us know!
Do you need a new software development partner for an upcoming project? We would love to work with you! From websites and mobile apps to cloud services and custom software, we can help!
Sfumato is a pair of tools that generate CSS for your web-based projects. You can create HTML markup and use pre-defined utility class names to style the rendered markup, without actually writing any CSS code or leaving your HTML editor! The resulting HTML markup is clean, readable, and consistent. And the generated CSS file is tiny, even if it hasn't been minified!
The first tool is the command line interface (CLI), which you can install once and use on any projects. It will watch/build CSS as you work.
The second tool is a Nuget package that you can add to a compatible .NET project. And after adding a snippet of code to your startup, it will build/watch as you run your app or debug, generating CSS on the fly.
Sfumato is compatible with the Tailwind CSS v4 class naming structure so switching between either tool is possible. In addition, Sfumato has the following features:
Cross-platform — Both the Sfumato CLI tool and nuget package work on Windows, Mac, and Linux on x64 and Arm64/Apple Silicon CPUs. They're native, multi-threaded, and lightning fast! So you can build anywhere.
Low overhead — Unlike Tailwind, Sfumato doesn't rely on NodeJS or any other packages or frameworks. Your project path and source repository will not have extra files and folders to manage, and any configuration is stored in your source CSS file.
Dev platform agnostic — The Sfumato CLI works great in just about any web project:
JavaScript frameworks, like React, Angular, etc.
Hybrid mobile projects, like Blazor Hybrid, Flutter, etc.
Content Management Systems (CMS) like WordPress, Umbraco, etc.
Custom web applications built with ASP.NET, PHP, Python, etc.
Basic HTML websites
Works great with ASP.NET — Sfumato supports ASP.NET, Blazor, and other Microsoft stack projects by handling "@@" escapes in razor/cshtml markup files. So you can use arbitrary variants and container utilities like "@container" by escaping them in razor syntax (e.g. "@@container").
In addition to using the CLI tool to build and watch your project files, you can instead add the Sfumato Core Nuget package to your ASP.NET-based project to have Sfumato generate CSS as you debug, or when you build or publish.
Imported CSS files work as-is — Sfumato features can be used in imported CSS files without any modifications. It just works. Tailwind's Node.js pipeline requires additional changes to be made in imported CSS files that use Tailwind features and setup is finicky.
Better dark theme support — Unlike Tailwind, Sfumato allows you to provide "system", "light", and "dark" options in your web app without writing any JavaScript code (other than widget UI code).
Adaptive design baked in — In addition to the standard media breakpoint variants (e.g. sm, md, lg, etc.) Sfumato has adaptive breakpoints that use viewport aspect ratio for better device identification (e.g. mobi, tabp, tabl, desk, etc.).
Integrated form element styles — Sfumato includes form field styles that are class name compatible with the Tailwind forms plugin.
More colorful — The Sfumato color library provides 20 shade steps per color (values of 50-1000 in increments of 50).
More compact CSS — Sfumato combines media queries (like dark theme styles), reducing the size of the generated CSS even without minification.
Workflow-friendly — The Sfumato CLI supports redirected input for use in automation workflows.
There's usually more to the story so if you have questions or comments about this post let us know!
Do you need a new software development partner for an upcoming project? We would love to work with you! From websites and mobile apps to cloud services and custom software, we can help!
If you’re building a new PC, upgrading your desktop, or purchasing a new laptop, you’ve likely noticed one thing: memory has become very expensive. RAM prices have jumped sharply compared to just a year or two ago, and the increase isn’t slowing down.
This isn’t a simple shortage. It’s the result of long-term changes in how memory is made, who it’s made for, and how manufacturers manage supply.
AI services are consuming massive amounts of memory. These systems rely on specialized high-bandwidth memory (HBM) to train and run large models. Because HBM is far more profitable, memory manufacturers are redirecting production capacity away from traditional consumer RAM. That means fewer chips are available for the rest of us.
There are limits on raw materials. All RAM starts with advanced semiconductor wafers that are expensive and produced by only a handful of suppliers worldwide. As AI companies lock in long-term contracts, wafer availability tightens, pushing up costs for all types of memory, even before it reaches consumers.
Manufacturers are intentionally controlling supply. Memory makers are keeping production tight to avoid oversupply. This helps stabilize profits but keeps prices elevated. With all major suppliers following similar strategies, competition isn’t driving prices down. In fact, companies like Micron are exiting the consumer RAM business.
Older DDR4 memory is disappearing faster than expected. As the industry transitions to DDR5, DDR4 production is being phased out. Fewer production lines mean lower availability, which is why even older systems are seeing price increases instead of discounts.
Modern devices need more RAM. What used to be considered a pro-level amount of memory (16–32 GB) is now considered standard, adding pressure to an already tight market.
High RAM prices are expected through 2026. Industry analysts report that by the end of 2026, manufacturers will have maxed out the expansion potential of their current facilities. New factories are also being built, but large-scale relief is still years away. Short-term sales may help, but a major price drop isn’t likely soon.
There are some basic strategies that can mitigate the price increases, but they're not a panacea.
Don’t wait too long to purchase. Prices have been steadily rising month over month. If you're planning to buy, purchase ASAP.
Focus on balanced systems. More RAM isn’t always better for every workload.
Watch for special deals. Even small discounts can help in a high-price market.
Consider pre-built systems. Complete PCs and laptops typically offer better value than upgrading parts. For example, Apple's usual price gouging on memory for a new Mac is actually a steal right now. But their negotiated part prices will eventually need to be renegotiated, likely increasing costs for consumers.
RAM prices reflect a fundamental shift toward AI-driven computing, not a temporary hiccup (similar to recent GPU prices increases). While costs may eventually stabilize, buyers should plan with the assumption that memory will remain expensive. Making smart, timely purchasing decisions now can help you avoid paying even more later.
There's usually more to the story so if you have questions or comments about this post let us know!
Do you need a new software development partner for an upcoming project? We would love to work with you! From websites and mobile apps to cloud services and custom software, we can help!
We're always reading about the latest security exploit or distributed denial of service (DDoS) attack. When we do it tends to feel like something that happens to other people or businesses, and is generally a nuisance when it comes to our own lives. But could we be part of the problem?
There are a couple things you can do to determine if your devices are being used by nefarious actors to attack and compromise networks and services on the Internet. The first is to see if your network is exposing any openings that can be exploited.
The Shodan search engine is a great tool for determining if your network is exposing any open ports. Ports are like doors that allow outsiders to connect to devices within your network. There are 65,535 possible ports, some of which are standard ports used by common services. For example, web servers use ports 80 and 443 for insecure and encrypted communication respectively. Open up those ports and point them to a device on your network, and you're now hosting a public website.
This is where Shodan comes in. It allows you to search for your network IP to see what's open. You need to sign up to use the filters (it's free), but it's a one-step process if you simply sign in using a Google account. Then in the search bar you can search your IP address like this:
ip:73.198.169.112If you have exposed ports you'll see information about which ports and protocols are available. You can even search a subnet, representing a range of IP addresses, like this:
ip:73.198.169.0/24
This IP address has an RTSP service port open to the world.
Suffice it to say that most people shouldn't have any results available. If you do, make sure the open port is supposed to be open. For example, if you're hosting a Minecraft server or website.
Another great, free, and simple tool is the GreyNoise IP Check. Visit the website and it will scan its massive botnet database to see if your IP address has ever been used in a distributed attack.
If your computer has been hacked and is under the control of someone on the Internet, they may use it (and your Internet connection) to participate in a distributed denial of service (DDoS) attack. That's when a large number of computers on the Internet make requests for a website at once, overwhelming the server and effectively taking it offline. These attacks are used for various reasons, like ransom demands.
GreyNoise watches the Internet's background radiation—the constant storm of scanners, bots, and probes hitting every IP address on Earth. They've cataloged billions of these interactions to answer one critical question: is this IP a real threat or just internet noise? Security teams trust their data to cut through the chaos and focus on what actually matters.
There's usually more to the story so if you have questions or comments about this post let us know!
Do you need a new software development partner for an upcoming project? We would love to work with you! From websites and mobile apps to cloud services and custom software, we can help!
DUID is a fully-featured replacement for GUIDs (Globally Unique Identifiers). They are more compact, web-friendly, and provide more entropy than GUIDs. We created this UUID type as a replacement for GUIDs in our projects, improving on several GUID shortcomings.
We pronounce it doo-id, but it can also be pronounced like dude, which is by design :)
You can use DUIDs as IDs for user accounts and database records, in JWTs, as unique code entity (e.g. variable) names, and more. They're an ideal replacement for GUIDs that need to be used in web scenarios.
Uses the latest .NET cryptographic random number generator
More entropy than GUID v4 (128 bits vs 122 bits)
No embedded timestamp (reduces predictability and improves strength)
Self-contained; does not use any packages
High performance, with minimal allocations
16 bytes in size; 22 characters as a string
Always starts with a letter (can be used as-is for programming language variable names)
URL-safe
Can be validated, parsed, and compared
Can be created from and converted to byte arrays
UTF-8 encoding support
JSON serialization support
TypeConverter support
Debug support (displays as string in the debugger)
Yes, you can also find DUID on nuget. Look for the package named fynydd.duid.
Similar to Guid.NewGuid(), you can generate a new DUID by calling the static NewDuid() method:
This will produce a new DUID, for example: aZ3x9Kf8LmN2QvW1YbXcDe. There are a ton of overloads and extension methods for converting, validating, parsing, and comparing DUIDs.
Here are some examples:
There is also a JSON converter for System.Text.Json that provides seamless serialization and deserialization of DUIDs:
There's usually more to the story so if you have questions or comments about this post let us know!
Do you need a new software development partner for an upcoming project? We would love to work with you! From websites and mobile apps to cloud services and custom software, we can help!
An Amazon Web Services (AWS) outage shut down a good portion of the Internet on Monday (October 20, 2025), affecting websites, apps, and services. Updates are still being released, but here's what we know so far.
At 3:00am on Monday morning there was a problem with one of the core AWS database products (DynamoDb), which knocked many of the leading apps, streaming services, and websites offline for millions of users across the globe.
The problem seems to have originated at one of the main AWS data centers in Ashburn, Virginia following a software update to the DynamoDB API, which is a cloud database service used by online platforms to store user and app data. This area of Virginia is known colloquially as Data Center Alley because it has the world's largest concentration of data centers.
The specific issue appears to be related to an error that occurred in the update which affected DynamoDb DNS. Domain Name Systems (DNS) are used to route domain name requests (e.g. fynydd.com) to their correct server IP addresses (e.g. 1.2.3.4). Since the service's domain names couldn't be matched with server IP addresses, the DynamoDb service itself could not be reached. Any apps or services that rely on DynamoDb would then experience intermittent connectivity issues or even complete outages.
Hundreds of companies have likely been affected worldwide. Some notable examples include:
Amazon
Apple TV
Chime
DoorDash
Fortnite
Hulu
Microsoft Teams
The New York Times
Netflix
Ring
Snapchat
T-Mobile
Verizon
Venmo
Zoom
In a statement, the company said: “All AWS Services returned to normal operations at 3:00pm. Some services such as AWS Config, Redshift, and Connect continue to have a backlog of messages that they will finish processing over the next few hours.”
This is not the first large-scale AWS service disruption. More recently outages occurred in 2021 and 2023 which left customers unable to access airline tickets and payment apps. And this will undoubtedly not be the last.
Most of the Internet is serviced by a handful of cloud providers which offer scalability, flexibility, and cost savings for businesses around the world. Amazon provides these services for close to 30% of the Internet. So when it comes to the reality that future updates can fail or break key infrastructure, the best that these service providers can do is ensure customer data integrity and have a solid remediation and failover process.
There's usually more to the story so if you have questions or comments about this post let us know!
Do you need a new software development partner for an upcoming project? We would love to work with you! From websites and mobile apps to cloud services and custom software, we can help!
Intel Panther Lake uses the new 18A node process
Intel’s Fab 52 chip fabrication facility in Chandler, Arizona is now producing chips using Intel’s new 18A process, which is the company’s most advanced 2 nanometer-class technology. The designation “18A” signals a paradigm shift. Because each nanometer equals 10 angstroms, “18A” implies a roughly 18 angstrom (1.8nm) process, marking the beginning of atomic-scale design, at least from a marketing perspective.
So what else is new with the 18A series?
18A introduces Intel’s RibbonFET, its first gate-all-around (GAA) transistor design. By wrapping the gate entirely around the channel, it achieves superior control, lower leakage, and higher performance-per-watt than FinFETs. Intel claims about 15% better efficiency than its prior Intel 3 node.
Apple is said to be including TSMC's 3D stacking technology in their upcoming M5 series of chips as well.
Equally transformative is PowerVIA, Intel’s new way of routing power from the back of the wafer. Traditional front-side power routing competes with signal wiring and limits transistor density. By moving power connections underneath, PowerVIA frees up routing space and can boost density by up to 30%. Intel is the first to deploy this at scale. TSMC and Samsung are still preparing their equivalents.
Intel plans 18A variants like 18A-P (performance) and 18A-PT (optimized for stacked packaging), positioning the node as both a production platform and a foundry offering for external customers. It’s the test case for Intel’s ambition to rejoin the leading edge of contract manufacturing.
18A isn’t just a smaller process. It’s a conceptual threshold. It unites two generational shifts: a new transistor architecture (GAA) and a new physical paradigm (backside power). Together, they allow scaling beyond what classic planar or FinFET approaches can achieve. In doing so, Intel is proving that progress no longer depends solely on shrinking dimensions. It’s about re-architecting how power and signals flow at the atomic level.
Intel’s own next-generation CPUs, such as Panther Lake, will debut on 18A, validating the process before wider foundry use. If yields and performance hold up, 18A could cement Intel’s comeback and signal that the angstrom era is truly here.
For the broader industry, 18A is more than a marketing pivot. It’s the bridge from nanometers to atoms... a demonstration that semiconductor engineering has entered a new domain where every angstrom counts.
There's usually more to the story so if you have questions or comments about this post let us know!
Do you need a new software development partner for an upcoming project? We would love to work with you! From websites and mobile apps to cloud services and custom software, we can help!
AI prompts that reveal insight, bias, blind spots, or non-obvious reasoning are typically called “high-leverage prompts”. These types of prompts have always intrigued me more than any other, primarily because they focus on questions that were difficult or impossible to answer before we had large language models. I'm going to cover a few to get your creative juices flowing. This post isn't a tutorial about prompt engineering (syntax, structure, etc.) it's just an exploration in some ways to prompt AI that you may not have considered.
This one originally came to me from a friend who owns the digital marketing agency Arc Intermedia. I've made my own flavor of it, but it's still focused on the same goal: since potential customers will undoubtedly look you up in an AI tool, what will the tool tell them?
If someone decided not to hire {company name}, what are the most likely rational reasons they’d give, and which of those can be fixed? Focus specifically on {company name} as a company, its owners, its services, customer feedback, former employee reviews, and litigation history. Think harder on this.I would also recommend using a similar prompt to research your company's executives to get a complete picture. For example:
My name is {full name} and I am {job title} at {company}. Analyze how my public profiles (LinkedIn, Github, social networks, portfolio, posts, etc.) make me appear to an outside observer. What story do they tell, intentionally or not?This prompt is really helpful when you need to decide whether or not to respond to a prospective client's request for proposal (RFP). These responses are time consuming (and costly) to do right. And when a prospect is required to use the RFP process but already has a vendor chosen, it's an RFP you want to avoid.
What are the signs a {company name} RFP is quietly written for a pre-selected service partner? Include sources like reviews, posts, and known history of this behavior in your evaluation. Think harder on this but keep the answer brief.People looking for work run into a few roadblocks. One is a ghost job posted only to make the company appear like it's growing or otherwise thriving. Another is a posting for a job that is really for an internal candidate. Compliance may require the posting, but it's not worth your time.
What are the signs a company’s job posting is quietly written for an internal candidate?Another interesting angle a job-seeker can explore are signs that a company is moving into a new vertical or working on a new product or service. In those cases it's helpful to tailor your resume to fit their future plans.
Analyze open job listings, GitHub commits, blog posts, conference talks, recent patents, and press hints to infer what {company name} is secretly building. How should that change my resume below?
{resume text}You'll see all kinds of wild scientific/medical/technical claims on the Internet, usually with very little nuance or citation. A great way to begin verifying a claim is by using a simple prompt like the one below.
Stress-test the claim ‘{Claim}’. Pull meta-analyses, preprints, replications, and authoritative critiques. Separate mechanism-level evidence from population outcomes. Where do credible experts disagree and why?Even if you're a seasoned professional, it's easy to get lost in jargon as new terms are coined for emerging technologies, services, medical conditions, laws, policies, and more. Below is a simple prompt to help you keep up on the latest terms and acronyms in a particular industry.
Which terms of art or acronyms have emerged in the last 12 months around {technology/practice}? Build a glossary with first-sighting dates and primary sources.
There's usually more to the story so if you have questions or comments about this post let us know!
Do you need a new software development partner for an upcoming project? We would love to work with you! From websites and mobile apps to cloud services and custom software, we can help!