.ForEach(blog => {

at my core, I'm a scientist/engineer. Translation : A big nerd, like you have no idea

Opinion : Lack of Interaction is a self-fail

For the past ... probably 3 years I've tried to articulate this idea I've had into words that would make ANY bit of sense. I've tried various angles and had a few different theories and finally, this is what I came up with. Since my first attempt, I've witnessed different forms of this and have drawn a conclusion with utmost confidence.  "It's all about the people" isn't a cliché but solidly ... no one gives a damn and they should. Now, before you start saying "well duh" or make some excuse, hear me out. More...

Where'd that fail come from and how do I find it? -- git bisect

Earlier this week I found myself in an interesting spot.  We had a hell of a bug come though that had no real reason for existing, much less any kind of answer to "how did this even get there?!".  Someone mentioned I should use git bisect -- I'd never heard of this.  It's a little strange at first, but once I got the hang of it, it's really slick. Say for instance your on your repository on the latest and greatest and you find a bug was introduced ... say ... three weeks ago.  You don't know when exactly, but you know it was sometime in that time frame.  Grab a hash code, (treeish, the first few letters of the hash I'm told are usually enough for uniqueness) and go ... something like this ... git bisect start HEAD <someHash> and you'll see something like this ... $ git bisect start HEAD <someHash>Bisecting: 174 revisions left to test after this (roughly 8 steps)[someMiddleHash] Comment for that commit JRiley@JRILEY /c/Projects/Core ((someMiddleHash...)|BISECTING) What git will do is say ok, somewhere between HEAD and <someHash> was a screw up, so it will pick the middle commit and give that as a starting point.  Build, do your dance and determine if its a good (problem isn't there) or bad (problem still exists) as such ... in my case, I'll say its bad. $ git bisect badBisecting: 86 revisions left to test after this (roughly 7 steps)[yet another hash] comment for that commit More...

Lot of good articles lately ... Kanban, failures, disasters, learning and psych

This is just a link-puke of a bunch of articles I've been meaning to post/talk about.  So here we go (say bye bye to your morning) First up, a mildly misleading heading of kanban vs scrum.  It's really how one can be used to streamline the other. http://www.agilejournal.com/articles/columns/column-articles/6441-a-productivity-comparison-of-kanban-and-scrum Next up are a pair of articles from the same site.  First one talks about overcoming poor architectural choices and a rather candid discussion on "disaster porn".  Love that description. http://arstechnica.com/business/news/2011/10/when-clever-goes-wrong-how-etsy-overcame-poor-architectural-choices.ars http://arstechnica.com/business/news/2011/09/google-devops-and-disaster-porn.ars A couple psych ones.  First one is amazingly nerdy and in my opinion, expands on the feedback principle.  Random nerd fun fact - technically, Pe (error positivity) can be instantly recognized, which for the human brain is 130-180ms and falls with the range of the study which measured it at 100-500ms. http://www.wired.com/wiredscience/2011/10/why-do-some-people-learn-faster-2/ and not to be outdone, a discussion on sugar vs protein and being awake. http://www.wired.com/wiredscience/2011/12/why-sugar-makes-us-sleepy-and-protein-wakes-us-up/ Another article I found very interesting was on leading clever people (I agree with it, especially "create a galaxy") http://business.in.com/article/rotman/how-to-lead-clever-people/28632/0 And finally, on a similar vein is a concept of "developeronomics" ... http://www.forbes.com/sites/venkateshrao/2011/12/05/the-rise-of-developeronomics

Encryption -- it's not as lame as you think but far more intesting than you know (maybe)

Today at the office I gave a presentation on encryption.  Attendance was very very light (4pm on a friday, no surprise ... ?) and I was even asked if I wanted to reschedule -- na, I'll do it twice if I have to.  Wow did they miss out.  I had discovered that the methods of applying encryption were amazingly important, and I'll be damned if I couldn't replicated it.  I wanted to see this for myself as it broke every rule I had known or in other words, perfect.  First I tried hacking up a jpeg file until someone pointed out the obvious -- it's got it's own "encryption" and suggested I bounce it over to bmp, a raw format.  What a great idea and how did I miss it? But I'm getting ahead of myself, let me step back and talk about encryption... Encryption in and of itself is very technical once you get into the modern age.  Very specific, lots of math, probability, etc make it a subject most people just glaze over and shut down.  I'll do you one better.  I see your glazing and raise you an awesome visual.  While doing my research for this presentation, I ran across something absolutely facinating which I touched base on earlier... Encryption algorithm and of itself is not the whole story.  Not even close.  I'm seriously starting to wonder if, holistically, its method is JUST as important than its computation/execution.  Why?  Allow me to explain and consider this image. (warning -- shamelessness !!!) More...

Off Topic : Does knowing more about how your brain works make you less human?

When I was in college, one of the classes we were forced to take was psychology.  I had taken a class in high school, and looking down the list of items this class would cover, I was expecting another boring, useless class.  I was right, with a slight exception -- the professor, Tony Obradovich, I had not expected.  I took a second class per my own direction and made sure he was teaching it.  How awesome it was, and based on his reviews, he's still awesome today -- as I would expect. Professor Obradovich would talk to us about the times he was a kid and would repeat things he would hear from authority figures (his dad specifically about someone following too close) and how his patients were struggling with different aspects of addiction -- most were drug, alcohol and I think even one sex addict. More...

Code Camp slides

Thanks again to everyone that attended the Atlanta Code Camp and of course, my talks.  I really enjoyed the discussions more than anything, especially the one about monkeys and as always, feel free to shoot me an email at je riley from the gmails of the com  (Suck on that spammers)with any questions.  Also you can find me on IM (gtalk/msn) and ...just about everything else with that email address, so feel free! Kanban'in It Slides Dynamic Slides Gentle Intro to TDD

nhibernate's IPreUpdateEventListener ... and getting it to work

Just a few days ago I was tasked with a rather interesting and challenging feature -- create a history tracking service that was more or less transparent and easy for other devs to use.  Started to dig into certain parts of nhibernate, I quickly found a few comments about "IPreUpdateEventListener" -- great, cool, that's what I need ... well, almost. More...

Asp.net Membership Provider - you don't have to use the command line

This afternoon, a overly blanketed comment was made - something to the effect "the membership provider sucks, it does too much and installs too many tables" and "I'd rather write my own".  What?!  So after some better understanding, there's two very clear problems.  1, For all practical purposes, all the blog posts out there say "install via command line! It's so easy!" and 2, because of those posts, its assumed its an all or nothing. More...

Moq Utility - creating those CRUD services

Taking a post I wrote a while ago a bit further -- this is a class that does the basic get, delete, update, create.  I used Telerik's awesome converter tool to create a vb version, so props to them.  I haven't tested it but I'm pretty confident it works.  If you don't have the GetPrimaryKey method, do a google search, you'll find plenty or just write your own. Usage is simple.  Create a list<T> of items for your fake service... var fakeList = new List<PayPeriod>();fakeList.Add(new PayPeriod{/* cool stuff here! */}); and toss it into the mockUtility ... var mockGet = MockUtility.FakeGetServiceFactory(fakeList);var mockUpdate = MockUtility.FakeUpdateServiceFactory(fakeList); and finally, pass those items into your constructors for your test object... var payController = new PayController(mockGet.Object, mockUpdate.Object); And that's it! Oh and just so those who are legal types, yes, you can use this, modify it, do whatever you want with it -- maybe shoot me a note if you found it useful or expanded it to do something that's cool? MockUtility.vb.txt (2.71 kb) MockUtility.cs.txt (2.62 kb) full repository goodness MockRepository.cs.txt (2.23 kb) IBaseRepository.cs.txt (629.00 bytes)

Moving to a new host

Today, I moved my webhosting off of UltimaHosts onto discountasp.net for one sole reason - I under prepared for hosting my own stuff.  I was on Ultimahosts for a while ... a long while.  They introduced me to DNP (dotnet panel, the BEST freakin web management tool that you probably never heard of) and was moving forward to host my little website on my home network.  It wasn't until this morning I discovered "hey dummy, you need to do all this work to make this happen" heh, whoops. I will continue to whole heartedly recommend Ultimahosts.  I've used them for some clients, for myself, and if anyone needs more than just a REALLY basic host, thats where they need to go.  Period.