Is this you? As a journalist, you can create a free Muck Rack account to customize your profile, list your contact preferences, and upload a portfolio of your best work.
Claim your profile
Articles by Paul Michaels
Why Drug Repurposing Might Be Biotech's Most Capital-Efficient Strategy
Guest Column | May 29, 2026 By Paul Michaels Biotech has entered a new era of financial discipline. The days of easy capital, billion-dollar preclinical valuations, and “platform first, data later” investing have largely disappeared. Today, investors want clinical relevance earlier, development risk reduced, and clearer pathways to commercialization. That shift may ultimately benefit one of the industry’s most underappreciated strategies: drug repurposing.
Using Azure Service Bus in the wild
June 30th, 2022 This post was written by guest blogger Paul Michaels. When you decide to adopt a message broker, there are a relatively small number of reasons: You want to use the queueing functionality to act as a shock absorber for spikes in traffic. You’re trying to ingest data into a data warehouse. You want a loosely coupled communication between two or more distinct systems. Situations where you need to process a backlog of data.
Amanda Bynes and Paul Michaels: Pregnant with First Child!
On Valentine's Day of this year, Amanda Bynes became engaged to a man she met in rehab. Now, the couple are expecting their first child. Amanda's fiance, Paul Michael, shared a glimpse of an ultrasound attributed to Amanda Bynes. The post, shared on Tuesday, March 17, also included a very happy caption. "Baby in the making," Paul announced. You can see the photo for yourself here: Despite Paul's apparent joy at the news, he has since deleted the pic from his Instagram.
Building a List With ASP.NET Core
Save {{ articles[0].views | formatCount}} Views Join the DZone community and get the full member experience. Join For Free I’ve recently been working with ASP.NET Core to build some functionality involving building a list of values.
No evidence school club discriminates against LGBT
In the current, politically polarized climate many people are apt to purport claims that evoke emotion from their audiences and promote their viewpoints. These claims, however emotionally charged they may be, are often unsubstantiated and are not backed up by any evidence. One such claim is that the Fellowship of Christian Athletes is a discriminatory club, which if this is true would be a huge violation of student’s rights within the school system.
Using View Models in Blazor
Being new to Blazor (and Razor), the first thing that tripped me up was that the view seemed divorced from the rest of the application. In fact, this is actually quite a nice design, as it forces the use of DI. For example, say you wanted to create a View Model for your view, you could register that ViewModel in the Startup: public void ConfigureServices(IServiceCollection services) { services.AddTransient<MyViewModel, MyViewModel>(); } Note here that you don't need an interface.
Creating a Car Game in React, Part 5: Levels and Time
This is the fifth part of a series (that began here). In the last post, we added the concept of score. The car now can collect cups while avoiding trees; however, we don't have any concept of what happens when there are no cups left. In this post, we'll add levels to the game, so that when you've collected all the cups, you move up.
Creating a Car Game in React, Part 4: Score
This is the fourth part of a series (that began here). So far, we have a game where you can whizz around the screen avoiding trees. This effectively encompasses most aspects of a game of this type; that is, you can move, and there is a something preventing you. The next step is to introduce something for the player to try to do, and give a score based on that. In our case, our player is going to try and collect cups — as per the original game. The asset I've created for the cup is here.
Creating a Car Game in React, Part 3: Collision
In this, the third post of this series, we're going to add collision to the game. For a full list of the code, please see here. If you're wondering about earlier posts, please start here. Since we're introducing collision, we'll also need to introduce the age old game concept of "Lives." The premise here is that when you crash into something, you lose a life.
Creating a Car Game in React, Part 2: Steering and Obstacles
In the second part of this series, we're going to add some steering to our car, and introduce a concept of obstacles. If you're wondering what this is the second part of, please start here. The GitHub repo for this post can be found here. In the first post of the series, we added a car, and allowed the user to move it around the screen in a very crude fashion; here, we're going to change the controls to feel a little more like a car.
Creating a Car Game in React (Part 1): Drawing and Moving
Since I started looking at React, I've wondered whether it would be possible to create a multi-user game. The game would look a little like a Spectrum game that I used to play called Trans-Am. I'm guessing most people reading this are not going to be old enough to remember this. Essentially, it marks the peak of car game development, and everything has been down hill ever since. If you have no idea what I'm talking about then there's a demo of the game here.
The Evolution of the Switch Statement and C# 8
Most languages have a version of the switch statement as far as I'm aware; I must admit, I don't remember one from Spectrum Basic, but ever since then, I don't think I've come across a language that doesn't have one. The switch statement in C was interesting.
Casting a C# Object From Its Parent
Have you ever tried to do something akin to the following? [Fact] public void ConvertClassToSubClass_Converts() { // Arrange var parentClass = new SimpleTestClass(); parentClass.Property1 = "test"; // Act var childClass = parentClass as SimpleTestSubClass; // Assert Assert.Equal("test", childClass.Property1); } This is a simple Xunit (failing) test.
C# Developer's Guide to React.js (Part 3): Conditionally Rendering HTML in React
Save {{ articles[0].views | formatCount}} Views Join the DZone community and get the full member experience.
A C# Developer's Guide to React.js (Part 2): Moving Controls
Following on from my previous post, I'm going to extend our React.js application by adding some boxes, and allowing the user to re-arrange them on the screen. React Concepts There are two key concepts to consider when working with React, and we'll cover one of them in this post; that is, state. React has a special property of each component known as state. If you use that to bind any of the UI, then React will refresh that component when the state changes.
C# Developer's Guide to React.js (Part 1): Create and Run
I thought it might be time for another of my patented "C# Developer's Guide to..." Basically, a guide to React for someone that understands programming (C# ideally), but doesn't know anything about React.js. There are a couple of VS templates for React; however, after working with it for a while, you realize that most of the React people live in the command line; there's a tool called create-react-app. You can use Powershell or Bash as your command line of choice.
Xamarin Dependencies: Android App Just Doesn't Start After Deployment
Being relatively new to Xamarin, I naively expected any errors to just show up, you know, like when you run a console app after headbutting the keyboard, it gives you some vague indication that there's a problem with your code. My story starts with the default template of Xamarin, running just an Android application. I just want to mention again that this is the default template (admittedly I am running VS2019 and .NET Core 3.0 - at the time of writing, .NET Core 3.0 is still in preview).
Working Out When Something Broke Using Git Bisect and Git Log
On Feb, 5 I attended DDD North. There were many excellent talks, but, in this post, I'm delving into something that I saw in one of the grok talks (I gave one myself). It concerns a feature of git that I'd never heard about until then, and it's proved to be enormously useful. This post is, as all of my posts are, really for myself. You're giving the app a quick test, and suddenly you realize that something in the application has stopped working (or maybe it's started, but it shouldn't have).
Short Walks: 406 Error While Creating a .NET Core API
Jumpstart your Angular applications with Indigo.Design, a unified platform for visual design, UX prototyping, code generation, and app development. I'm afraid this is another of those: "What has AddMvc() ever done for us" posts. Today, I was creating a brand new .NET Core 2.1 API and, instead of calling AddMvc in ConfigureServices, I instead used AddMvcCore: public void ConfigureServices(IServiceCollection services) { services.AddMvcCore(); When I tried to access the API, I got a 406 error.
Creating a Basic Web Site From an ASP.NET Core Empty Project
I recently wanted to do a very quick proof of concept, regarding the use of setInterval versus setTimeout after reading that setTimeout was referable if you were calling the same function very rapidly. I thought I'd note down my journey from File -> New Project to having the POC running so that, next time, I don't have to re-lookup the various parts.
.NET Client-Side Libraries
In this post, I introduced (to me) a new method of installing client-side JavaScript libraries for a .NET Web Application. In this follow-up, I'm going to cover how this can be used in conjunction with npm in order to simply move the files into the correct location. Note that this is a new tool in Visual Studio, and you'll need VS 15.8.0 or higher for it to work. Let's start by creating an empty .NET Core web app.
Fixing a CSRF Vulnerability
One way that your website might be vulnerable to an attack is via a Cross-Site Request Forgery (CSRF or XSRF). If you’ve ever been logged into a website — say Twitter, for example — and you open a separate tab and type in a Twitter account, for example, this Twitter feed: https://www.twitter.com/paul_michaels. You’ll notice that when the site opens, it opens already logged in for you, which can be very helpful.
Installing Client-Side Libraries in ASP.NET Core
As a relative newcomer to the web front-end, one thing that always surprised me was how many moving parts you need to get something running. This is probably true elsewhere (i.e. in backend development and desktop development) but we just do a better job of hiding it. In the past, people writing web-pages have always had an uneasy relationship with Microsoft. Maybe it started in the late '90s when, in order to win the battle of the browsers with Netscape, Microsoft started giving its product away.
Microsoft Chatbot Framework: Up and Running
Some time ago (think early to mid-nineties), I used to run a BBS. One Christmas, I logged onto another BBS based in Manchester, and they had a "Santa Chat." I tried it for a while and was so impressed by it that I decided to write my own; it was basically the gift that kept giving. You put this thing on your BBS (basically an Eliza clone) and it records the responses of the unsuspecting users to a text file (or log).
Unit Testing With Entity Framework and Entity Framework Core 2.1
Entity Framework Core 2.1 comes with a nifty little feature: an In-Memory Database setting. What this means, is that with a single option setting, your tests can interact directly with the database (or at least EF's impression of the database) but not actually touch any physical database.
An NSubstitute Extension Method Pitfall [Snippet]
Not a huge post, but this has tripped me up several times, and sent me down some quite deep rabbit holes. On to the story… I once had a check to received calls like this: And I was getting the error: I was confident that I had declared it correctly, a few lines above… I could, in fact see that I had declared it correctly.
Setting Up an Azure B2C Tenant: The Long Walk
B2C is (one of) Microsoft’s offering to allow us programmers to pass the business of managing logins and users over to people who want to be bothered with such things. This post contains very little code, but lots of pictures of configuration screens, that will probably be out of date by the time you read it. A B2C set-up starts with a tenant. So the first step is to create one.
Short Walks: System.InvalidOperationException — How to Deal With It [Snippet] - DZone Integration
I got this error recently while playing with EF Core 2. There's very little on Google about it, and although it's not a hugely difficult problem to solve, if I ever get it again, I can just Google it! System.InvalidOperationException: "The seed entity for entity type 'MyEntity' cannot be added because another seed entity with the same key value for {'Id'} has already been added.
Short Walks — Data Seeding in Entity Framework Core 2 [Snippet] - DZone Integration
Entity Framework Core 2.1 has a nice little feature for seed data. Previously, seeding data quite often involved a series of checks and potential for a script to exist that, if run on the wrong data, would repeatedly re-generate the same seed data.
Short Walks — Setting up a Foreign Key Relationship in Entity Framework [Snippet] - DZone Database
Having had to search for this for the fiftieth time, I thought I'd document it here, so I knew where to look! To set-up a foreign key relationship in EF, the first step is to define your classes; for example: In this case, each Resource has a ResourceType in a simple one-to-many relationship.
Using Event Hubs to Create a Multi-player Game
In this previous post, I introduced Azure Event Hubs (to myself mostly). In this post, I'm going to attempt to create a very basic multi-player game, using Event Hubs to manage the multi-player part. I've previously written extensively on MonoGame, although I haven't done anything with it for a while. The first step is to install the MonoGame framework from here. At the time of writing, 3.6 was the latest version.
ASP.NET Core 2.0: How to Pass Data Into a Model Using DI
Imagine you have an ASP.NET Core web page and you would like to edit some data in a form, but you'd like to default that data to something (maybe initially specified in the Web.Config). I'm sure there are dozens of ways to achieve this, but this is one.
Short Walks — Object Locking in C# - DZone Integration
While playing with Azure Event Hubs, I decided that I wanted to implement a thread locking mechanism that didn't queue. That is, I want to try and get a lock on the resource, and if it's currently in use, just forget it and move on. The default behavior in C# is to wait for the resource.
Playing with Azure Event Hub
I've recently been playing with the Azure Event Hub. This is basically a way of transmitting large amounts* of data between systems. In a later post, I may try and test these limits by designing some kind of game based on this. As a quick disclaimer, it's worth bearing in mind that I am playing with this technology, and so much of the content of this post can be found in the links at the bottom of this post — you won't find anything original here, just a record of my findings.
Israel heading for conflict along its northern border with Iranian (or Iranian-backed) troops
Times of Israel Middle East analyst and former Ha’aretz Arab affairs reporter Avi Issacharoff is not one given to alarmism. As a lecturer in modern Palestinian history at Tel Aviv University, an award-winning author and a political moderate, he’s prone to anything but that.
The Iranian-North Korean axis of evil
Iran’s aggressive designs in the Middle East have been well covered by the media. These range from its support of Houthi rebels in Yemen’s civil war to its propping up of Syrian President Bashar Assad with, among other things, thousands of its Lebanon-based Hezbollah fighters. Yet far less attention has been paid to another important element in Iran’s ambitions: the help it has long received from North Korea in the development of ballistic missiles.
Palestinians hold key to ending 50 year ‘occupation’
The mostly one-sided Western media commentary on the 50th anniversary of the 1967 Six Day War – fixated as it was on the theme “50 years of Israeli occupation” – has generated the need for reflection on truths either omitted or marginalized in the coverage.
The gap between words and reality
Reflecting on U.S. President Donald Trump’s trip to Saudi Arabia last month, and his announcement of a new Global Centre for Combating Extremist Ideology, liberal Israeli columnist Ben-Dror Yemini wrote in Ynetnews that “it was one of the unfortunate moments of the war on radicalization.
Remembering Israel's 1967 war, and the period preceding it, accurately
Next month marks the 50th anniversary of one of the most profound events in Israel’s brief but eventful history: the Six Day War, which began on June 5, 1967. While enumerating several milestones in Jewish and Israeli history in his column last week, Mordechai Ben-Dat drew attention both to the 50-year mark of this “momentous” war, and to the dread this event caused, both within Israel and throughout the Diaspora.
India’s newfound warmth toward Israel could mean surge in trade
On March 31, a brief news item, “Indian-Jewish ‘lost tribe’ make matzah for Passover,” appeared in the Times of Israel. It described the activity of the B’nai Menashe community of Churachandpur in a remote part of northeastern India as they baked matzah at a centre run by Shavei Israel, a non-profit that “seeks to connect ‘lost’ and ‘hidden’ Jews to the Jewish state.” In the last four years, Shavei has brought 1,200 Indian Jews to Israel.
'Post-truth' a problem society's been struggling with for ages
Since memory is often short, we tend, in difficult moments, to think the crisis we’re facing is unique.
Understand the very real danger of the BDS movement
Motion 36, Queen’s Park’s Dec. 1 declaration denouncing BDS, the boycott, divestment and sanctions movement against Israel, received a lot of media attention and was heralded as an important victory for the Jewish community and others firmly committed to countering discrimination, hatred, and – especially – anti-Semitism Thornhill, Ont.’s MPP Gila Martow introduced the motion, which was adopted by all Liberal and Conservative members present but, sadly, not by the NDP.
A message to the world, where is the outcry over Aleppo?
The world’s indifference to the ongoing slaughter of Syrians – in particular, the Russian-Assad brutal bombing in Aleppo – is stunning. Stunning, but not all that unusual. After all, Russia is well-practiced in eviscerating its opponents. Recall Russian President Vladimir Putin’s carpet bombing of Grozny in 1999 when he decided to teach the Chechens a lesson. His slaughter of civilians was met with virtual indifference by the so-called international community.
The recipe for peace in the Middle East: Mutual recognition
Much of the commentary early this month commemorating the death of Shimon Peres and his long search for peace failed to capture what that search entailed. Peres was typically portrayed as divided between his early days as a security hawk and, later, as a peace dove. In fact, Peres understood that security and peace cannot be separated, but go together, forming a whole.
Bill Gates Backs FBI In Their Case Against Apple
“They are not asking for some general thing, they are asking for a particular case”, Gates, who remains a technical adviser to Microsoft Corp., told the Financial Times in a Tuesday interview. According to a national Pew Research Center poll, 51 percent of Americans surveyed said that Apple should unlock the phone to assist with the FBI’s investigation. Bill Gates talks to reporters about the 2016 annual letter from the Bill and Melinda Gates Foundation in New York, Monday, Feb. 22, 2016.
Comcast takes on Google and AT&T with gigabit service in five cities
Comcast on Tuesday said it is planning to launch DOCSIS 3.1-powered gigabit Internet service in five cities across the country in 2016. That’s due to version 3.1 of DOCSIS, the Data Over Cable Service Interface Specification, which can bring gigabit download speeds without the need to deploy fiber to homes. In other areas, Comcast has charged subscribers $10 for every 50 gigabytes of data Internet data consumption over 300 gigabytes a month, or, as some say, $10 for a 50-gig bucket.
Verizon's Sponsored Data Program Launched In Beta
In one hypothetical example, a media company might pay for the megabytes of data that you use when you read stories and watch videos on its mobile website or app. Or a music app could pay for the songs you stream on your smartphone. Verizon has announced that it is now ready to begin beta testing its sponsored data service, called FreeBee Data.
Oculus Touch controllers won't ship until second half of 2016
The Oculus Touch was announced at E3 earlier this year. This is critical to nailing the sense of overall presence. In contrast, Touch controllers look, according to CNET Reviews’ Scott Stein, “more like skeletal hand-grips than wands”. Despite the delay, Oculus promised its flagship Rift headset will still arrive by March next year, its original launch period.
CES 2016: 100+ VR Titles Currently In Development, Says Sony
Eventually, once VR has started to gain a foothold, thanks to gaming, Sony may look into expanding the reach of the medium. In its place the Oculus Rift has launched pre-orders and the HTC Vive has revealed its second development kit, the Vive Pre. In the wake of yesterday’s pricing announcement for the Oculus Rift, one would think Sony would be ready to step up and talk about their upcoming PlayStation VR.
'About 100 or more' VR titles are being made for PlayStation VR
2016 is the year that the first high-end, immersive VR headsets go up for sale, starting with Facebook’s Oculus Rift (above, center) on March 28 and followed by the HTC Vive Pre (above, left) and Sony’s PlayStation VR (above, right). Surely, enough new details quickly emerged about Sony’s Playstation VR headset only to be refuted by Sony themselves shortly after.
Show More
loading
Actions
Is this you?
As a journalist, you can create a free Muck Rack account to customize your profile, list your contact preferences, and upload a portfolio of your best work.Get in touch with Paul
Contact Paul, search articles and posts on X, monitor coverage, and track replies from one place.
Learn more about Muck Rack