Notes by Craig Phillips
- There are 11 fallacies of Distributed Computing:
- The network is reliable
- Latency isn’t a problem
- Bandwidth isn’t a problem
- The network is secure
- The topology won’t change
Option Explicit | |
Dim objshell,path,DigitalID, Result | |
Set objshell = CreateObject("WScript.Shell") | |
'Set registry key path | |
Path = "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\" | |
'Registry key value | |
DigitalID = objshell.RegRead(Path & "DigitalProductId") | |
Dim ProductName,ProductID,ProductKey,ProductData | |
'Get ProductName, ProductID, ProductKey |
SELECT DB_NAME(database_id) AS DatabaseName, | |
Name AS Logical_Name, | |
Physical_Name, (size*8)/1024 SizeMB | |
FROM sys.master_files | |
ORDER BY SizeMB DESC |
-- Create a temporary table in an in-memory variable simply to allow the | |
-- select statement to output multiple rows. | |
DECLARE @TestTable TABLE (uniqueID int) | |
INSERT INTO @TestTable | |
SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL | |
SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9 UNION ALL SELECT 10 | |
-- The main Select statement that shows different correct (and incorrect) ways to generate | |
-- "random" things in a set-based select statement. | |
SELECT |
(dir -include *.cs -recurse | select-string .).Count |
# Run this as Administrator | |
net stop w3svc | |
Get-ChildItem "C:\Windows\Microsoft.NET\Framework*\v*\Temporary ASP.NET Files" -Recurse | Remove-Item -Recurse -Force | |
net start w3svc |
using System; | |
namespace ShortCodes | |
{ | |
public static class ShortCodes | |
{ | |
// You may change the "shortcode_Keyspace" variable to contain as many or as few characters as you | |
// please. The more characters that are included in the "shortcode_Keyspace" constant, the shorter | |
// the codes you can produce for a given long. | |
private static string shortcodeKeyspace = "abcdefghijklmnopqrstuvwxyz0123456789"; |
OK so now you have implemented the kata. Your tests should look something like this: | |
We can say that the tests define the object "in a calculus of itself". | |
They are not state based tests, they define how the behaviours of the object interact with each other. | |
To see the real value of this let's introduce some change ... I hear real system's do this occasionally. | |
Because this is a high performance system decimal math is too slow. You now need to use floats instead. | |
Need help on floating point math? Check out: http://www-users.math.umd.edu/~jkolesar/mait613/floating_point_math.pdf |
Value objects are an important concept in DDD. This kata is made both to learn value objects and to learn better ways of testing. | |
Write a probability value object. It should contain the following methods: | |
Probability CombinedWith(Probability) | |
Probability InverseOf() | |
Probability Either(Probability) | |
if you forget your probability math: | |
Either:P(A) + P(B) - P(A)P(B) | |
CombinedWith: P(A)P(B) |
using System; | |
using System.Security.Cryptography; | |
namespace BetterRandomNumbers | |
{ | |
// BetterRandom.cs | |
// This class implements a random number generator that is based off the Windows "Next Generation" cryptographically secure | |
// random number generator. It inherits from the base Random class, so can be used as a "drop-in" replacement for the | |
// built-in .NET System.Security.Random class, but providing a superior quality of random numbers. | |
public class BetterRandom : Random, IDisposable |