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 |