forked from ploeh/ploeh.github.com
-
Notifications
You must be signed in to change notification settings - Fork 0
/
about.html
123 lines (116 loc) · 7.4 KB
/
about.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
---
layout: page
title : About
header : About
group: navigation
---
{% include JB/setup %}
<p>
My name is Mark Seemann, and <em>ploeh blog</em> is my professional blog (not that I have a personal blog). Here, I write about programming, software development, and architecture.
</p>
<p>
I'm a professional programmer and software architect living in Copenhagen, Denmark, and currently an independent advisor. I enjoy reading, drawing, playing the guitar, good wine, and gourmet food.
</p>
<h2>Publications</h2>
<p>
Apart from the hundreds of articles on this blog, I also write and produce material via other professional outlets.
</p>
<h3>Print</h3>
<p>
<ul>
<li><a href="http://amzn.to/12p90MG">Dependency Injection in .NET</a></li>
<li><a href="http://www.ndc2011.no/userfiles/NDC_Magazine_2011.pdf">Deterministic unit tests with non-deterministic input</a></li>
<li><a href="http://msdn.microsoft.com/en-us/magazine/gg983487.aspx">Windows Azure Development: CQRS on Windows Azure</a></li>
<li><a href="http://msdn.microsoft.com/msdnmag/issues/07/09/MockTesting/default.aspx">Unit Testing: Exploring The Continuum Of Test Doubles</a></li>
<li><a href="http://msdn.microsoft.com/msdnmag/issues/06/07/PatternsAndPractices/default.aspx">Patterns & Practices: Speed Development With Custom Application Blocks For Enterprise Library</a></li>
<li><a href="http://msdn.microsoft.com/en-us/magazine/cc163746.aspx">Easy UI Testing: Isolate Your UI Code Before It Invades Your Business Layer</a></li>
<li><a href="http://msdn.microsoft.com/en-us/magazine/cc163904.aspx">Unit Testing: Mock Objects to the Rescue! Test Your .NET Code with NMock</a></li>
</ul>
</p>
<h3>Video</h3>
<p>
<ul>
<li><a href="http://www.shareasale.com/r.cfm?u=1017843&b=611266&m=53701&afftrack=&urllink=www%2Epluralsight%2Ecom%2Fcourses%2Ffsharp%2Dtype%2Ddriven%2Ddevelopment">Type-Driven Development with F#</a></li>
<li><a href="http://www.shareasale.com/r.cfm?u=1017843&b=611266&m=53701&afftrack=&urllink=www%2Epluralsight%2Ecom%2Fcourses%2Ffsharp%2Dtest%2Ddriven%2Ddevelopment">Test-Driven Development with F#</a></li>
<li><a href="http://www.shareasale.com/r.cfm?u=1017843&b=611266&m=53701&afftrack=&urllink=www%2Epluralsight%2Ecom%2Fcourses%2Ffsharp%2Dproperty%2Dbased%2Dtesting%2Dintroduction">Introduction to Property-based Testing with F#</a></li>
<li><a href="http://www.shareasale.com/r.cfm?u=1017843&b=611266&m=53701&afftrack=&urllink=www%2Epluralsight%2Ecom%2Fcourses%2Ffsharp%2Dunit%2Dtesting">Unit Testing with F#</a></li>
<li><a href="http://www.shareasale.com/r.cfm?u=1017843&b=611266&m=53701&afftrack=&urllink=www%2Epluralsight%2Ecom%2Fcourses%2Fencapsulation%2Dsolid">Encapsulation and SOLID</a></li>
<li><a href="http://www.shareasale.com/r.cfm?u=1017843&b=611266&m=53701&afftrack=&urllink=pluralsight%2Ecom%2Fcourses%2Ffunctional%2Darchitecture%2Dfsharp">A Functional Architecture with F#</a></li>
<li><a href="http://www.shareasale.com/r.cfm?u=1017843&b=611266&m=53701&afftrack=&urllink=www%2Epluralsight%2Ecom%2Fcourses%2Fadvanced%2Dunit%2Dtesting">Advanced Unit Testing</a></li>
<li><a href="http://www.shareasale.com/r.cfm?u=1017843&b=611266&m=53701&afftrack=&urllink=www%2Epluralsight%2Ecom%2Fcourses%2Foutside%2Din%2Dtdd">Outside-In Test-Driven Development</a></li>
</ul>
</p>
<h2>Contact me</h2>
<p>
There are lots of ways to contact me, and you are welcome to do so, e.g. if you want to hire me, want me to speak at a conference or user group meeting, or simply if you have a question you think I should answer here on the blog. In case of public speaking, you can also review <a href="http://lanyrd.com/profile/ploeh/">my public speaking schedule</a>.
</p>
<p>
One way to contact me is via email. Here's a little test of your sentience: take each segment of the following email address, and reverse it (e.g. [email protected] would become [email protected]): [email protected].
</p>
<p>
If you learned something from this blog, or otherwise derived value from it, please consider <a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=NZEPYW8KVZ8WL">donating (via PayPal)</a>. No amount is too small - I write this blog for free, so I appreciate any donation.
</p>
<p>
<a href="https://github.com/ploeh">My profile on GitHub</a>
</p>
<p>
<a href="http://www.linkedin.com/in/ploeh" ><img src="http://www.linkedin.com/img/webpromo/btn_profile_bluetxt_80x15.gif" width="80" height="15" border="0" alt="View Mark Seemann's profile on LinkedIn"></a>
</p>
<p>
<a href="https://twitter.com/{{ site.author.twitter }}" class="twitter-follow-button" data-show-count="false">Follow @{{ site.author.twitter }}</a>
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
</p>
<p>
<!-- Place this tag where you want the badge to render. -->
<div class="g-plus" data-width="170" data-href="//plus.google.com/100509078856689101462" data-rel="author"></div>
<!-- Place this tag after the last badge tag. -->
<script type="text/javascript">
(function() {
var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
po.src = 'https://apis.google.com/js/plusone.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
})();
</script>
</p>
<p>
<a href='https://www.ohloh.net/accounts/102464?ref=Detailed'><img alt='Ohloh profile for Mark Seemann' height='35' src='https://www.ohloh.net/accounts/102464/widgets/account_detailed.gif' width='191' border='0' /></a>
</p>
<p>
<a href="http://stackoverflow.com/users/126014/mark-seemann">
<img src="http://stackoverflow.com/users/flair/126014.png?theme=clean" width="208" height="58" alt="profile for Mark Seemann at Stack Overflow, Q&A for professional and enthusiast programmers" title="profile for Mark Seemann at Stack Overflow, Q&A for professional and enthusiast programmers">
</a>
</p>
<p>
<a href="http://www.last.fm/user/ploeh"><img src="http://imagegen.last.fm/audioscrobbler/recenttracks/ploeh.gif" border="0" alt="ploeh's Last.fm Profile Page" /></a>
</p>
<p>
<style>
.ig-b- {
display: inline-block;
}
.ig-b- img {
visibility: hidden;
}
.ig-b-:hover {
background-position: 0 -60px;
}
.ig-b-:active {
background-position: 0 -120px;
}
.ig-b-v-24 {
width: 137px;
height: 24px;
background: url(//badges.instagram.com/static/images/ig-badge-view-sprite-24.png) no-repeat 0 0;
}
@media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min--moz-device-pixel-ratio: 2), only screen and (-o-min-device-pixel-ratio: 2 / 1), only screen and (min-device-pixel-ratio: 2), only screen and (min-resolution: 192dpi), only screen and (min-resolution: 2dppx) {
.ig-b-v-24 {
background-image: url(//badges.instagram.com/static/images/[email protected]);
background-size: 160px 178px;
}
}
</style>
<a href="http://instagram.com/ploeh?ref=badge" class="ig-b- ig-b-v-24"><img src="//badges.instagram.com/static/images/ig-badge-view-24.png" alt="Instagram" /></a>
</p>
<p>
<a href="https://www.goodreads.com/author/show/4383188.Mark_Seemann">My profile on Goodreads</a>
</p>