Hey, this is my blog

It is somewhat abandoned.

Creeping Determinism

Let’s say that you won the lottery. That would be great, wouldn’t it?

Read more...

Code Generators, You Suck. Well, some of you do.

The scaffolding style code generators that generate out a good starting point from which standard coding takes over, those are very useful.

The Microsoft brand “design surface” based code generators (TableAdapters,WSSF) where the uml diagram of a class needs to be edited, rather than the actual class, those are more harm than good. if fact they slow development way down.

The design surface itself, is not necessarily a bad concept. it is just a GUI over top of a XML document. Just don’t use it to generate repetitive code. If code is repetitive, factor it out until its DRY. Don’t break out the code generators.

Read more...

ReturnOnException Aspect (postsharp)

This comes in handy sometimes.

Read more...

Attribute Based Caching Project Covered in infoQs

David Cookery did a short write up of my AOP caching framework on infoQ. As a result downloads and usage have spiked.

Read more...

Question':' Caching and postsharp is not working in my project?

You have made a project using attribute based caching, but the cache isn’t being hit?

Read more...

Incrementing

Generic Hierarchical Meta data is cool! There are many ways to implement it with a standard relational database. Most of them are considered anti-patterns, but sometimes we need to optimize for flexibility, not raw database performance. Here are some of my notes on the subject:

Read more...

Attribute Based Caching 1.2 Released

Attribute Based Caching 1.2 has been Released. It’s still the .net only caching library that has declarative cache invalidation.

Attribute Based Caching 1.1 had almost 100 downloads! Release 1.2 contains some small improvements like disk based cache and a time-to-live setting.

Cache 1.2

Read more...

Enterprise Software Authorization / Security

lockSecurity Thoughts:

There are generally three types of authorization in enterprise applications:

  1. Role based security - Which actions can a user do - aka role-based access control
  2. Entity level security - A user can only perform an Action on certain objects/data - aka row level security
  3. Field level security - A user can see or edit only certain fields of an entity – (this is really fine grained and usually a bad idea)
Read more...

Parser Combinators in C#

Haskell has parsec, f# has fparsec. I went searching for a good option for creating parsers in c#.

Read more...

Project Euler #24 in c#

A permutation is an ordered arrangement of objects. For example, 3124 is one possible permutation of the digits 1, 2, 3 and 4. If all of the permutations are listed numerically or alphabetically, we call it lexicographic order. The lexicographic permutations of 0, 1 and 2 are:

012   021   102   120   201   210

What is the millionth lexicographic permutation of the digits 0, 1, 2, 3, 4, 5, 6, 7, 8 and 9?

Read more...

Tags