diff --git a/content/post/builders-dsl.md b/content/post/builders-dsl.md index 48f2a746..37e60f89 100644 --- a/content/post/builders-dsl.md +++ b/content/post/builders-dsl.md @@ -4,10 +4,9 @@ date: '2013-11-14' bigimg: /img/Enhancing the builder pattern with closures.jpg subtitle: the trainwreck/builder/chaining pattern can be dangerous and here's why tags: - - tech - closures - groovy - - 'C#' + - CSharp - javascript - java - functional programming diff --git a/content/post/custom-webdriver-page-factories.md b/content/post/custom-webdriver-page-factories.md index d2c42f0d..400379c5 100644 --- a/content/post/custom-webdriver-page-factories.md +++ b/content/post/custom-webdriver-page-factories.md @@ -3,7 +3,7 @@ title: Custom Webdriver Page Factories bigimg: /img/Custom Webdriver Page Factories.jpg date: '2014-09-22' subtitle: Wrapping WebElements to reduce boilerplate clutter -tags: ['tech', 'unit testing', 'java', 'C#', 'webdriver', 'scenario testing' ] +tags: ['unit testing', 'java', 'CSharp', 'webdriver', 'scenario testing' ] --- The problem: Webdriver elements returned by `driver.FindElement()` are too generic. There're the `Text`, `SendKeys()` and `Click()` methods/properties (depending your on C#/Java implementation). The solution is to simply wrap all elements inside custom HTML objects which contain specific methods like `ShouldContainValue` or `Type` (okay, that's a one-to-one mapping with `SendKeys()`, but it's a lot less technical!). Instead of diff --git a/content/post/faking-domain-logic.md b/content/post/faking-domain-logic.md index 982a3a87..dcec7b17 100644 --- a/content/post/faking-domain-logic.md +++ b/content/post/faking-domain-logic.md @@ -3,7 +3,7 @@ title: Faking domain logic bigimg: /img/Faking domain logic.jpg date: '2014-09-23' subtitle: Using C# extensions to create the illusion of domain logic -tags: [ 'tech', 'domain driven design', 'C#', 'code smells' ] +tags: ['domain driven design', 'CSharp', 'code smells' ] --- Sometimes, life is just a little bit more difficult than you imagined the day before. Sometimes, you have to work on a legacy codebase with custom frameworks rooted so deeply you're having lot's of trouble trying to build around them. To make it a bit more concrete, here's an example: imagine a separate DLL for interfaces and a separate DLL for the implementation. This decision was made because we use NHibernate as a data mapper and not to write beautiful domain driven design code. As a result, writing domain logic methods on our "domain" objects is impossible because we have three implementations. diff --git a/content/post/hiding-complexity.md b/content/post/hiding-complexity.md index 01d9b49c..33b4e298 100644 --- a/content/post/hiding-complexity.md +++ b/content/post/hiding-complexity.md @@ -3,7 +3,7 @@ title: Hiding Code Complexity bigimg: /img/complexity.png date: '2018-02-26' subtitle: Do make it easy to read. Don't expose inner workings. -tags: ['tech' ] +tags: ['domain driven design' ] --- We like to talk about the architecture of our software because we like complexity. Software developers are the bears, and complex patterns seem to be the honey. The more I pair with people the more I wonder: "what makes us decide to take on a simple question with a difficult answer"? Why would anyone choose to implement something so complex, that it cannot be easily understood even the day after it's committed? diff --git a/content/post/integration-testing-sqlite.md b/content/post/integration-testing-sqlite.md index 59e8a00d..1ff10670 100644 --- a/content/post/integration-testing-sqlite.md +++ b/content/post/integration-testing-sqlite.md @@ -5,7 +5,7 @@ aliases: - /integration-testing-with-sqlite/ date: '2013-11-04' subtitle: Decoupling your integrated database environment from your development. -tags: [ 'tech', 'unit testing', 'sql', 'C#', 'sqlite' ] +tags: [ 'unit testing', 'sql', 'CSharp', 'sqlite' ] --- This article is based on the notes I've collected on [My Wiki](http://brainbaking.com/wiki/code/db/sqlite). diff --git a/content/post/memory-management-vs-java.md b/content/post/memory-management-vs-java.md index 131e2f97..751fdbaf 100644 --- a/content/post/memory-management-vs-java.md +++ b/content/post/memory-management-vs-java.md @@ -2,7 +2,7 @@ title: .NET Memory management VS JVM Memory management date: '2014-10-24' subtitle: Increasing your maximum heap size in .NET? Tough luck. -tags: [ 'tag', 'memory management', 'CLR', '.NET', 'JVM' ] +tags: [ 'memory management', 'CLR', '.NET', 'JVM' ] --- Memory management is something to keep in mind when deploying and running applications on top of the JVM. Parameters like `Xmx` and `Xms` are things to juggle with when it comes to finding the perfect balance between too much memory hogging (at app startup) and too little, especially if you're working with heavy duty entity mapping frameworks like Hibernate (and you're not so good at writing fast HQL). When we bumped into an `OutOfMemoryException` in .NET, I got an Xmx flashback and started searching on how to do the same with the CLR. diff --git a/content/post/metaprogramming-convention-dry.md b/content/post/metaprogramming-convention-dry.md index 0f1c3535..63e23b18 100644 --- a/content/post/metaprogramming-convention-dry.md +++ b/content/post/metaprogramming-convention-dry.md @@ -3,7 +3,7 @@ title: Metaprogramming instead of duplication bigimg: /img/Metaprogramming instead of duplication.jpg date: '2014-03-14' subtitle: convention over duplication, good or bad? -tags: [ 'tech', 'C#', 'java', 'metaprogramming', 'reflection', 'unit testing', 'mocking' ] +tags: [ 'CSharp', 'java', 'metaprogramming', 'reflection', 'unit testing', 'mocking' ] --- So... What's up with all that duplication in your unit tests? Let's take a look at a very recognizable pattern when for instance using `RhinoMock` in `C#`: diff --git a/content/post/pseudocode.md b/content/post/pseudocode.md index 192ad51c..b2438d0a 100644 --- a/content/post/pseudocode.md +++ b/content/post/pseudocode.md @@ -4,7 +4,6 @@ date: '2018-04-06' bigimg: /img/btrees.png subtitle: Clean code, pseudocode or real code? tags: - - tech - java - functional programming published: true diff --git a/content/post/react-in-extjs.md b/content/post/react-in-extjs.md index 78b18493..314c52df 100644 --- a/content/post/react-in-extjs.md +++ b/content/post/react-in-extjs.md @@ -5,7 +5,7 @@ aliases: - /migrating-from-extjs-to-react-gradually/ date: '2016-01-26' subtitle: Migrating from Extjs to React gradually -tags: ['tech', 'javascript', 'extjs', 'react' ] +tags: [ 'javascript', 'extjs', 'react' ] --- We were looking for a few alternatives to our big ExtJS 4 application. Since it's not that easy to completely migrate from one front-end framework to the next, a possible solution would be to start developing new parts in another framework. There's a lot of domain logic spread in Ext views and controllers - which shouldn't be there, we are well aware of that. Let's call it "legacy" :-) diff --git a/content/post/scons-building.md b/content/post/scons-building.md index 94130213..60f3865f 100644 --- a/content/post/scons-building.md +++ b/content/post/scons-building.md @@ -3,7 +3,7 @@ title: Bye autotools hello Scons bigimg: /img/Bye autotools hello Scons.jpg date: '2014-03-26' subtitle: Building C++ projects with Scons -tags: [ 'tech', 'C++', 'python', 'build ecosystem' ] +tags: [ 'C++', 'python', 'build ecosystem' ] --- Remember this? diff --git a/content/post/thinking-in-terms-of-objects.md b/content/post/thinking-in-terms-of-objects.md index 551aba07..d57b29d2 100644 --- a/content/post/thinking-in-terms-of-objects.md +++ b/content/post/thinking-in-terms-of-objects.md @@ -3,7 +3,6 @@ title: 'Denken in termen van objecten' date: '2018-04-25' subtitle: Software ontwerp in termen van objecten tags: -- tech - teaching published: false --- diff --git a/content/post/unit-testing-extjs-ui.md b/content/post/unit-testing-extjs-ui.md index a04f90c8..aa5562a5 100644 --- a/content/post/unit-testing-extjs-ui.md +++ b/content/post/unit-testing-extjs-ui.md @@ -5,7 +5,7 @@ aliases: - /unit-testing-extjs-ui-with-siesta/ date: '2014-12-23' subtitle: An attempt to replace instable Webdriver tests with Siesta UI tests -tags: ['tech', 'unit testing', 'javascript', 'extjs', 'siesta'] +tags: [ 'unit testing', 'javascript', 'extjs', 'siesta'] --- ### WebDriver & js-heavy frameworks ### diff --git a/content/post/unit-testing-stored-procedures.md b/content/post/unit-testing-stored-procedures.md index 28184fc1..893934ce 100644 --- a/content/post/unit-testing-stored-procedures.md +++ b/content/post/unit-testing-stored-procedures.md @@ -3,7 +3,7 @@ title: Unit Testing Stored Procedures bigimg: /img/Unit Testing Stored Procedures.jpg date: '2013-10-10' subtitle: And a pragmatic guide on how to include them into your build system. -tags: [ 'tech', 'unit testing', 'sql'] +tags: [ 'unit testing', 'sql'] --- This article is based on the notes I've collected on [My Wiki](http://brainbaking.com/wiki/code/db/sql). diff --git a/content/post/vb6-unit-testing.md b/content/post/vb6-unit-testing.md index 1dcd2df1..d753e065 100644 --- a/content/post/vb6-unit-testing.md +++ b/content/post/vb6-unit-testing.md @@ -1,7 +1,7 @@ --- title: 'Unit testing in Legacy Projects: VB6' date: '2016-12-27' -tags: [ 'tech', 'unit testing', 'VB6' ] +tags: [ 'unit testing', 'VB6' ] --- Thanks to the [Postmodern VB6](https://ihadthisideaonce.com/2015/05/13/postmodern-vb6-a-quick-start-with-simplyvbunit/) article I've found on the internetz, I decided to give [SimplyVBUnit](simplyvbunit.sourceforge.net) a try. My job requires sporadic visual basic 6 code changes in the big legacy project we're converting to C#. It's an administrative system bound to Belgium laws so as you can imagine they change every few months and the old software still has to be complaint to those crazy new rules. As a result, we sometimes dabble in VB6 code. It feels more like drowning, really. diff --git a/content/post/vstudio-missing-features.md b/content/post/vstudio-missing-features.md index 800e54af..d9d5a35b 100644 --- a/content/post/vstudio-missing-features.md +++ b/content/post/vstudio-missing-features.md @@ -3,7 +3,7 @@ title: Visual Studio 2012 for Eclipse users bigimg: /img/Visual Studio 2012 for Eclipse users.jpg date: '2013-10-14' subtitle: Trying to fill the gap of missing features in VStudio. -tags: [ 'tech', 'visual studio', 'eclipse'] +tags: [ 'visual studio', 'eclipse'] --- When switching over to a new editor and new language, I can sometimes get frustrated by missing features I got (very) attached to. This excludes the obvious difference in shortcut keys. diff --git a/content/post/webdriver-exception-handling.md b/content/post/webdriver-exception-handling.md index 52a65a81..048c9f29 100644 --- a/content/post/webdriver-exception-handling.md +++ b/content/post/webdriver-exception-handling.md @@ -3,7 +3,7 @@ title: Webdriver Exception Handling date: '2015-01-14' subtitle: What should you do when something goes wrong with your scenario tests bigimg: /img/Webdriver Exception Handling.jpg -tags: [ 'tech', 'unit testing', 'C#', 'webdriver', 'scenario testing' ] +tags: [ 'unit testing', 'CSharp', 'webdriver', 'scenario testing' ] --- As the previous post indicated, we're trying to stabilize our scenario tests created with WebDriver. One of the things we did was trying to capture as much data as possible if something goes wrong. Something like a typical `ElementNotFoundException`, or the less common `StaleElementException` (detached from DOM after evaluation) - these things can be hard to trace if you don't run the tests locally. We also stumbled upon the "it works on my machine" problem - tests succeeding on one development machine but not on the other - mostly related due to timing issues.