Bonum Certa Men Certa

Microsoft Whistleblower and Clients Warned, More Than 2 Years Ago in Fact, About the Current Azure Mess (But Microsoft Ignored Those Warnings, Buried Facts)

This article is reproduced with a foreword about how Microsoft's staff were forewarned (and ignored the warnings). As usual, when it comes to Azure, Microsoft just ignores security-related issues because security is not an actual goal. We saw that again very recently. "Covered this a few years ago," Mitchel Lewis told us, citing new reports such as this one.

New Azure Active Directory password brute-forcing flaw has no fix | Ars Technica
This is in the news now



"My article from two years ago," he added, already cautioned about it. We reproduce it below in full with permission from Mitchel Lewis.




How Azure AD Could Be Vulnerable to Brute-Force and DOS Attacks



Azure walking



MICROSOFT'S Azure AD is the de facto gatekeeper of Microsoft cloud solutions such as Azure, Office 365, and Enterprise Mobility. As an integral component of their cloud ecosystem, it is serving roughly 12.8 million organizations, 950+ million users worldwide, and 90% of Fortune 500 companies on a growing annual basis. Given such a resume, one might presume that Azure Active Directory is secure, but is it?



Microsoft Azure AD
Source: https://www.microsoft.com/en-us/microsoft-365/blog/2017/11/13/how-organizations-are-connecting-their-on-premises-identities-to-azure-ad/



Despite Microsoft itself proclaiming “Assume Breach” as the guiding principle of their security strategy, if you were to tell me a week ago that Azure or Office 365 was vulnerable to rudimentary attacks and that it could not be considered secure, then I probably would have even laughed you out of the room. But when a client of ours recently had several of their Office 365 mailboxes compromised by a simple brute-force attack, I was given no alternative but to question the integrity of Azure AD as a whole instead of attributing the breach to the services merely leveraging it and what I found wasn’t reassuring.

After a simple “Office 365 brute force” search on google and without even having to write a line of code, I found that I was late to the party and that Office 365 is indeed susceptible to brute force and password spray attacks via remote Powershell (RPS). It was further discovered that these vulnerabilities are actively being exploited on a broad scale while remaining incredibly difficult to detect during or after the fact. Skyhigh Networks named this sort of attack “Knock Knock” and went so far as estimating that as many as 50% of all tenants are actively being attacked at any given time. Even worse, it seems as if there is no way to correct this within Azure AD without consequently rendering yourself open to denial of service (DOS) attacks.

PowerShell bruce-force
Source: https://cssi.us/office-365-brute-force-powershell/



In fact, this sort of attack is so prevalent that it happens to be one of the biggest threats to cloud tenant security at Microsoft according to Mark Russonivich (CTO of Azure) and is among several reasons that Microsoft itself advises their customers to enable multi-factor authentication (MFA) for all users and implement advanced threat intelligence available only to E5 subscription levels or greater; basically requiring companies to give Microsoft more money to secure their own solutions. But MFA also doesn’t impede hackers from cracking passwords or protect businesses from a DOS attack nor does it help those that are unaware of its necessity as many tenants are at present.

Exchange and PowerShell
Source: https://docs.microsoft.com/en-us/powershell/exchange/exchange-online/connect-to-exchange-online-powershell/mfa-connect-to-exchange-online-powershell?view=exchange-ps



Further, since RPS does not work with deferred authentication (DAP) and MFA, partners consisting of consultants, managed services and support providers also cannot use their partner credentials to connect to the tenants of their clients via RPS for advanced administration and scripting. Even though they can easily manage their clients via a browser-based admin center with MFA, they often have to resort to creating admin accounts within Office 365 tenant itself instead, but others do it simply for ease of access to the admin console or for when they are not the Partner On Record. These accounts are precisely what many of these attacks are targeting, often unbeknownst to admins, and Deloitte’s breach is a perfect example of such a scenario.

Unfortunately, these accounts are often stripped of MFA security to make them more convenient and accessible for the multitude of support and operations staff to use while working for various companies offering support services and they seldom expire or change upon company exit. By default in Office 365 and on top of being vulnerable to being cracked and breached, the password expiration policy is further set to a 730-day expiration and further disabled, rendering accounts vulnerable to a prolonged breach at that. Needless to say, they are ripe for attack and this exact scenario is what enabled a hacker to have unabridged administrative access to Deloitte’s Exchange Online tenant for 6+ months.

Azure panel



Complicating matters even further, the natural solution to this problem renders the tenant vulnerable to DOS attacks by virtue of being able to lock users out of their accounts for a fixed duration imposed by Azure AD; but this is still in preview phases. For example, by default Azure AD Smart Lockout (Preview Stage), which is still in preview, is configured to allow 10 password attempts before subjecting the account to a 60-second lockout, giving attackers a theoretical limit of 14,400 attempts per account/per day. You could decrease the threshold to 5 and increase the duration to 5 minutes protect against breaches, reducing attempts to 1,440 per day, but this would create the potential for downtime for users whenever their accounts are being attacked with brute force and password spray attacks.

More brute-force PowerShell
Source: https://cssi.us/office-365-brute-force-powershell/



However, Tyler Rusk at CSSI also called out that Microsoft doesn’t seem to throttle or limit authentication attempts made through RPS. As shown, Tyler was able to surpass the theoretical 14,400 per day limit listed in Azure AD Smart Lockout Preview without added logic, moving at a rate of 48,000 per day had he let it run for a 24 hour period or an est. 17,520,000 attempts over 365 days. However, there are obvious ways to optimize these efforts even further through via background jobs (start-job cmdlet) by essentially running attacks asynchronously instead of synchronously while optimizing for custom lockout limits, max attempts, and minimal detection. The possibilities are endless with regard to password spray attacks for obvious reasons. To be fair to Tyler and CSSI though and in my opinion, they didn’t need to leverage such measures to validate their concern.

If their lockout feature were to work though and if you were able to reduce the threat surface in the manner above, you would then have to contend with the hard countdown of the duration time. It’s immutable which means that users have to wait for it expire in order to render the account accessible again. The unlock cannot be expedited administratively at present. As such, it can just as easily result in an intentional DOS for end users if they or an unintentional DOS while running the possibility of exposing the attack; that is when/if it starts actually working. Obviously protecting from breach takes precedent over downtime, but becoming prone to DOS attacks is hardly a consolation prize.

Ned Pyle

Banned passwords nor MFA cannot protect against DOS or brute-force attacks either, only against the breach itself. In fact, when brute forcing an account protected by MFA, the MFA challenge itself can be treated as confirmation of a valid cracked username and/or password. In turn, they can then begin to try these credentials in other places which may not be protected by MFA as users and admins alike tend to keep them as similar as possible in multiple directories so that they’re easy to remember. I’ll defer to Ned Pyle of Microsoft as to whether this applies to his employer and their partners.

Summarizing matters thus far, you can brute force accounts housed in Azure AD via RPS. Obvious solutions for this such as MFA, customized password blocking, and advanced threat intelligence are either ineffective, insufficient, paywalled, and/or generate significantly more overhead in order to offset these vulnerabilities. Further, these solutions are often ignored by lazy admins, consultants, and managed services providers and many may be oblivious to this threat entirely; possibly even to breaches of their own. Deloitte has proven that this can even hit the best of them.

Windows 2000 Server



As offensive as all of this may seem though, it’s important to remember that AD was never designed to be public facing, quite the opposite. It has actually always been inherently vulnerable to brute-force, password spray, and DOS attacks by design. AD has always been designed to be implemented in conjunction with various other counter-measures in order to maintain its integrity. This includes but certainly is not limited to relying on physical security measures such as controlled entry and limiting the ability to access the domain to those that make it past physical security measures successfully; with the obvious exception of VPN users. This is nothing new.

That said, AD was never, ever, meant to be the sole source of security for IT infrastructure and is fundamentally dependent on other security measures in order to be effective. Consequently, AD becomes markedly more vulnerable when other pre-emptive methods fail or are non-existent. Put simply, such breaches should be the expectation when depending on Azure AD alone for IT security, and this sadly applies to any Office 365 tenant with its default security settings. However, understanding its limitations helps us illuminate ways to harden Azure AD and mitigate these problems just the same.

It almost goes without saying, but none of the measures necessary to patch these vulnerabilities are free to companies leveraging these services at present. Even if Microsoft were to fix this, who is to say that something else just as simplistic and embarrassing isn’t hiding around in the corner or already being used? That said, avoiding products backed by a 20-year-old security system streamlined for vendor lock-in seems like a viable solution to avoiding this problem in the first place.

Azure AD
Source: https://www.microsoft.com/en-us/microsoft-365/blog/2017/11/13/how-organizations-are-connecting-their-on-premises-identities-to-azure-ad/



Before anything else, I truly think that the onus is on Microsoft to ensure that their baseline configuration for cloud accounts doesn’t expose their tenants unnecessarily. Sure, we could blame ignorant users and lazy admins, but I don’t think that this is fair given the scope of this vulnerability, which is essentially 46% of AzureAD’s user-base (password hash sync + cloud only = 46%). It is unknown how many have MFA enabled and the scope of this is ultimately an unknown both with regard to those who are vulnerable to it, actively being attacked, and/or those already breached though. But as a former tier 3 support engineer for Exchange Online at Microsoft, I can confirm that a significant amount of individuals as well as small-medium businesses are relying on Azure AD exclusively without further counter-measures and that they account for a sizable amount of Office 365’s user-base. That said, telling customers that pay you to secure their mailboxes or to disable basic auth to address this doesn’t cut it.



Microsoft has clearly acknowledged this problem, but rather than hardening their tenants from such attacks as other cloud services have, they have offered solutions only available to their high tier plans so as to capitalize on this problem rather than fixing it. As expensive as they are to migrate away from now, or sticky as they like to call it, their products are just going to become more costly to manage, vulnerable, and difficult to migrate away from over time. This is the malady of any legacy solution.

One easy way for Microsoft to mitigate such attacks is to update their RPS module to support DAP and develop other creative avenues for admins and the like to efficiently and securely manage their clients’ tenants. They should also extend their threat intelligence and advanced customizations available only to costly, high tier license subscribers to all license levels, at least until proper solutions are implemented for all tenant levels.

As an immediate mitigation step though, Microsoft could simply swap the order of authentication. Rather than requiring a password prior to doing a two-step verification on your phone, they could require the phone verification through authenticator app or a third party MFA app such as Duo as the initial means of authentication. By deferring their password in Azure AD as the second step instead of the first, they could buffer its weak password security at present and buy time to implement a proper solution. However, this only applies to users and tenants with MFA enabled and in-use.

System life span



Just as Active Directory seems to create necessity for other costly ancillary solutions, Microsoft seems to have built AzureAD to generate further necessity for more costly solutions coincidentally offered by them just the same. On top of this and if they had their way, their solution to enable MFA would also require employers to buy phones and mobile plans for two-step verification for all of their employees which can cost more on an annual basis than any of their plans.The same can be said of the costs associated with a proper MFA solution and/or an on-premises or hosted ADFS solution (if none exist) as they drastically complicate the solution as a whole while consequently inflating the ownership costs associated with it. As complexity increases, stability falters while costs skyrocket. All of which is why I recommend avoiding their solutions entirely.

stickiness-ip-microsoft
Source: https://blogs.partner.microsoft.com/mpn/create-stickiness-with-ip/



But if a company is entrenched with Microsoft products and migration is out of reach, there are options. One solution that companies can implement is ADFS which defers authentication attempts to your own domain controllers on-premise rather than Azure AD while immediately granting more granular control of password policies with Active Directory on-premise and as much protection as money can buy on the network layer. All of which can be quite costly from a licensing perspective alone, let alone the hardware, network infrastructure, and labor required to implement it all let alone the staff to maintain it. This creates a single point of failure, often on-premise, for a cloud solution unless implemented in a highly available manner though.

They can also implement an MFA solution as well but there still remains added exposure and vulnerabilities which may require further consideration. But as mentioned before, there are also added costs and MFA may not protect accounts entirely. Users tend to manually synchronize their passwords across multiple platforms for the sake of remembering it, but not all of them have the same protections, MFA or otherwise. Similar to ADFS, access to your mailbox and other apps are restricted when MFA services are degraded, also becoming a single point of failure, as shown today by Azure's MFA outage. So if you go with an MFA solution, diversify with a 3rd party MFA provider.

Microsoft password policy



While the existence of dirsync can do little to protect against brute-force attacks, enforcing a strong password policy including a customized banned password list on premise can be mirrored in the cloud. Customers with dirsync already pay for this functionality with Active Directory on premise and can simply have it be mirrored in the accounts synced to the Azure AD forest. Although this cannot protect from brute force, password spray, or denial of service attacks, it can absolutely harden accounts against prolonged breaches.

I suppose they could also call support to complain about it and see if they’ll fix it, but you will likely be met by someone difficult to understand without experience on such matters. Or maybe they could even get a technical account manager to yell into the void or possibly even find someone with half of an ass on your behalf if you have deep enough pockets for a premier membership. While you’re at it, maybe you could upgrade your E3 plan to an E5 plan at almost double your monthly cost of E3 just to pay Microsoft to compensate for its own vulnerabilities.

Microsoft: assume breach

In summary, Microsoft services built on Azure AD along with the businesses leveraging them are vulnerable to brute-force and password spray attacks which can be carried out by anyone with the capacity to run a script in RPS. Also, there isn’t an adequate means of hardening these services without incurring significant financial burden and paying for more of Microsofts services. All of which has probably been the case for as long as the ability to access tenants via RPS has been widely available to admins and ultimately why you would be wise to assume breach with Microsoft cloud solutions just as Microsoft does. Entities can absolutely mitigate these vulnerabilities, but Office 365 and Azure would cease to function as true cloud solutions while generating significantly more overhead costs in the process. All things considered though, it seems as if there is no way to harden Azure AD or the services such as Azure or Office 365 when leveraged by itself without incurring significant costs in addition to the aforementioned introduction of further complexity, points of failure, and on-premise dependencies for your cloud architecture.

By default , Azure AD is more of a security problem than a cloud. This is not to say that Azure cannot be made to be secure but it comes at a cost while sacrificing cloud resiliencies. Although they advise others to assume breach, Microsoft seems to be omitting this reality from Office 365 and Azure advertisements and such inconsistencies are indicative of this stance being more of a cop out than a tenable security strategy because of this. Rather than hardening the vulnerabilities inherent to Active Directory and Azure AD which makes them susceptible to some of the oldest tricks in the book, Microsoft seems to be attempting to capitalize on them instead while exposing those unaware to a haunting amount of risk.

Azure: need premium

Recent Techrights' Posts

Start of September 2026 'Voluntary' Mass Layoffs at IBM, Start of October Red Hat Employees Forced Into the 'Bloodbath' (After Collapse of IBM's Shares)
Red Hat is in trouble
A Data Centres Hub Puts Everyone at Risk, Especially People Who Live Near Them at Times of War/s
Spoiler: Datacentres are military targets, they attract missiles, some with nuclear warheads
GAFAM Mass Layoffs and Mountains (Trillions of Dollars in 'Secret' or 'Off-the-Ledger') Debt
GAFAM is having layoffs this month
analytics.usa.gov Says 7% of Sessions Come From GNU/Linux and ChromeOS. If ~40% (Mobile) Get Omitted, It's More Like 11%.
In desktops and in laptops GNU/Linux has become a big player
IBM Cannot Survive for Much Longer, There Are Limits to RAs and Offshoring, IBM Now Asks Workers to Quit
IBM is in very serious trouble
Debian losses in Switzerland hidden until after DPL election debate
Reprinted with permission from Daniel Pocock
 
A Long Break and What's Coming Next Year
Some time next year we definitely plan to show how the EFF failed women, failed bloggers, and basically prioritised GAFAM
Daniel Pocock on a "metre-long ballot paper"
The Debian "cult" (as he calls them collectively) is simply jealous of him
Links 06/08/2026: Disney and Fentanylware (TikTok) Deal, "Hearing Aids Shenanigans"
Links for the day
IBM Mass Layoffs Began Yesterday, They're Sold as "Voluntary", the "Offer" Runs for Two Weeks (Last Day August 19th 2026)
IBM will self-detonate while using contractual agreements to force people to smile
Many GNU/Linux PCs Are Not Connected to the Net or Don't Use the Web
Saying GNU/Linux user-agents are just "bots" (Microsoft Lunduke and other Microsofters say this) is like asserting that the Twin Towers fell not because of two giant planes but because of explosives
They Call Occupations "Professions" Because the "Pro" Means Something
If you want to find tech news online
New Conference Paper (Science of Cyber Security) Credits RMS With Delaying Passwords
When it comes to passwords, RMS was "right"
Removing Gender Barriers in Computer Science
It is not that "women aren't good at maths"
In Brunei, GNU/Linux Approaches International Average of 8.5%
a sharp rise from 0% to about 7.5% happened in a few years
15% of IBM Staff Marked for Layoffs ("RAs"), the Workers' Objective is to Find Another Employer and Leave
"That's not a workforce, that's a waiting room."
Maintenance to be Completed Tonight (IPv6)
Notice how, after 25+ years, we're still not fully adopting IPv6, we're only about 50% there
August 2026 Microsoft Layoffs Confirmed by Staff This Week
It's hard to assess how many are impacted but signed an NDA, preventing them from speaking about what really happened
SLAPP Censorship - Part 141 Out of 200: Brett Wilson LLP Failed to Learn From the Mistakes of the European Patent Office (EPO)
my solicitor, David Allen Green, put them in their place
Texts of the Claims From Balabhadra (Alex) Graveley and Matthew J. Garrett Almost Identical, I am Suing for Abuse of Process
Half a decade ago Balabhadra (Alex) Graveley from Microsoft and GNOME was arrested for strangulation in Texas
Gemini Links 06/08/2026: "Eat That Frog", Mutt Terminal Email Guide, and BASICODE
Links for the day
Over at Tux Machines...
GNU/Linux news for the past day
IRC Proceedings: Wednesday, August 05, 2026
IRC logs for Wednesday, August 05, 2026
Big Announcement Tomorrow
Stay tuned...
GNU/Linux Seen Exceeding 10% in Antigua and Barbuda
In Antigua And Barbuda, what's seen this month is not far from the average
Gemini Links 05/08/2026: Family Room, Smoke, and Alarm clocks
Links for the day
The Establishment, Oxford, Google & Debian artificial intelligence conspiracies
Reprinted with permission from Daniel Pocock
SLAPP Censorship - Part 140 Out of 200: You Become What You Eat, Your Clients Become You
In 2024 Brett Wilson LLP failed to heed a decade-old warning
Links 05/08/2026: Microsoft's (XBox's) "Devastating July" and "Never Write With" Slop, Says New York Times
Links for the day
Gemini Links 05/08/2026: No to Slop, Dangers of Clown Computing, and Reducing Internet Usage
Links for the day
The Register MS Takes Money From NVIDIA and HP to Promote Their Ponzi Scheme, "AI", in a Fake 'Article' That Says "AI" 42 Times
"The media"... selling us scams for profit
Fertility app privacy, Britain's teenage pregnancies & faith based schooling
Reprinted with permission from Daniel Pocock
In Chile, GNU/Linux Approaches 4%
Let's see if it can exceed 5% by year's end
No Room for Misogyny and Incels in Free Software
How can we ever trust men whose own family and their own partners cannot trust?
How to Dehumanise a Triple National
Don't be easily incited against those who sacrifice a lot to inform the public of suppressed topics
In El Salvador, ChromeOS and GNU/Linux Now Measured at Around 12%
signs of gradual and steady adoption of GNU/Linux
Software in the Public Interest (SPI) Starts Spending Big Money in an Effort to Resist Lawsuit From Daniel Pocock
They've lost over half a million dollars in the latest 3 years
The Establishment, Cambridge, Steve McIntyre & Debian suicide cluster
Reprinted with permission from Daniel Pocock
Links 05/08/2026: Internet Archive Harmed by Slop Bot, "EBay And Former Execs Agree to Pay $56 Million For Trying to ‘Crush’ a Journalist"
Links for the day
Luxembourg and Software Freedom
Luxembourg's adoption of GNU/Linux has quite consistently been higher than the European average
The Free Software Foundation (FSF) Web Site is Online, GNU's Site Having Issues (Ongoing Issues)
We hope they can rectify the issues with the GNU Web site
Freedom Includes the Liberty to Disagree (and be Listened to, Not Censored)
Freedom is our collective strength
Tanzania: GNU/Linux Now Seen on 8% on Desktops/Laptops (User Clients)
numbers have more than doubled
IBM CEO Says IBM Won't be Bankrupt by 2028 or 2029 (When He Reaches Retirement Age)
IBM has no path to survival
Over at Tux Machines...
GNU/Linux news for the past day
IRC Proceedings: Tuesday, August 04, 2026
IRC logs for Tuesday, August 04, 2026
Gemini Links 05/08/2026: Being Good, Tildeverse and Tilde.pink, Games
Links for the day
Links 04/08/2026: GAFAM Expressing Concerns About Dangerous Disinformation by Slop, Bill Epsteingate-Connected Litigation Firm Salivating Over Europe
Links for the day
Gemini Links 04/08/2026: Root Shell and "Duty of Care"
Links for the day
Alternate Data (Not IBM's Headcount) to Show Mass Layoffs' Effect at IBM (Despite Many Acquired Workers Via M&A)
mass layoffs at Hashicorp and at Confluent this year (media did not cover either).
Big Blue's Quiet Axe - Poem Regarding IBM "RAs"
No idea who posted this, but it is profound
Growing Proportion of Linux Commits Being Made by LLMs Not a Sign of LLMs Working, It's a Sign of Linux Development Being Shifted From Community to GAFAM and Other Slop Pushers
antagonist became apologist
Worse Than "Taking Your Job", the Slop Pyramid Scheme Will "Take Your Pension"
This will not end well
Abundance of Fake (Sometimes Paid-for) 'News' About IBM Will Discredit the Media as a Whole
In 'the news' today
Microsoft is Trying Vapourware Again (to Keep Developers and Gamers From Fleeing)
For XBox, the main thing over the horizon is additional layoffs
statCounter Reckons 12.33% of Web Traffic in Gambia Can be Attributed to GNU/Linux, Even 15% If Adding ChromeOS
Will this be sustainable?
Reminder: The Pedophilia Problem Comes From the Accusers
Attacks on Richard Stallman are a distraction; his accusers are themselves the culprits
SLAPP Censorship - Part 139 Out of 200: Solicitors Regulation Authority (SRA) Needs More Public Scrutiny (New Management Changed Nothing, It's Costing a Lot of Taxpayers' Money)
millions or maybe billions of pounds wasted
Rumours of Further IBM Shutdowns
IBM is going out of existence
Brigading Against Women - Part II - Threatening Women Using the Human Rights Tribunal of Ontario (HRTO) and Then False Threats Miscarrying the Name of a Court
In this series we intend to show the threats, the outcomes of those threats, the response to those threats
Collapse of MElon Companies a Taste of What's to Come for Slop Bubble and GAFAM (Trillions in Debt, Justified as Slop "Investments")
One good example of this was SpaceX
The 'Hyperinflation' in Hardware Dooms Video Hosting (Very Large Files)
a terabyte of video files would be expensive
Rumours of Silent Layoffs in Microsoft This Month (August 2026), PIPs and Global Voluntary Separation Agreement (GVSA), aka "Buyouts"
Will any investigative journalism follow or just shallow puff pieces and LLM trash from slopfarms?
Links 04/08/2026: "Framework for Musician Burnout" and Alexa+ "is a Buggy Embarrassment"
Links for the day
Signs That XBox as a Console is Coming to an End, Windows Gaming Will be Called "XBox"
"XBox" is the next "Surface"
Microsoft's Share in Search Falls Sharply in Europe
The layoffs at Microsoft's Bing will carry on
Romania: GNU/Linux Reaches 4% (Less Than EU Average)
We expect this same upward trend to carry on
Microsoft Sites or Sites Sponsored by Microsoft Angry That GNU/Linux is Gaining
The Microsofters cannot easily dismiss reports of GNU/Linux growth as "bots" or just allege that statCounter alone is wrong
Ableism in the Free Software Movement Typically Comes From GAFAM Operatives and Proprietary Software Apologists
And their hired guns
Afghanistan: GNU/Linux Steadily Rises to 9%
Windows is steadily declining
IBM Innovation: It Has Invented New Methods of Silent Layoffs or Secret RAs
How IBM disguises mass layoffs now
Many Anniversaries
Many anniversaries in quick succession
LLM Slop Won't Replace People and Jobs (in the Long Run)
At the end of the day, people who know their job offer more useful information, whereas LLMs waste people's time (typically an 'externality' to the entity deploying chatbots)
Over at Tux Machines...
GNU/Linux news for the past day
IRC Proceedings: Monday, August 03, 2026
IRC logs for Monday, August 03, 2026
Over 3,500 Known Gemini Capsules Accessible and Active According to Lupa
It finally happened this morning
Gemini Links 04/08/2026: Library Cards, Dead Ends in Software Development, and DOS on USB Key
Links for the day