Showing posts with label General. Show all posts
Showing posts with label General. Show all posts

Saturday, July 30, 2016

Patterns, practices, frameworks, and principles

As a solutions architect, I am often working on projects at various levels of management.  Depending on the level I am operating at, I will make use of, incorporate to, or help design frameworks, principles, patterns and practices.  Often, there seems to be a lot of confusion about exactly what the purpose of these constructs are.

Let's start with Principles. I think that simplicable has a really good definition of what principles are.  It states that principles are enduring rules and guidelines.

If you think about it, upper management uses principles all the time to help motivate staff and ensure that people are pulling in the same direction.  In management, these appear as mission statements, and corporate charters.
The goal of principles, in my mind, is to set the overall vision.  Akin to a core belief, principles help govern the frameworks, patterns, and practices that are used in an organization.  Further, principles give the nuance that guides how the other constructs are used in an organization.

Frameworks are essentially a set of principles and practices rolled together.  While it is true that the principles and practices may not be called out explicitly, the role of a framework is to provide an overview of a particular approach to achieve a specific objective.  It serves as a guide, and can be modified as required.

It is always important to remember that a framework requires implementation.  The implementation is not simply taking all the guidelines inside the framework and implementing, however.  It is the act of applying the framework, along with the principles of the organization, and determining the parts to modify and the parts to keep the same.

A framework that is implemented with no regard for the business context that it sits in can serve as a huge roadblock for future growth of that organization.  Alignment is crucial.

There has been a lot of talk these days about practices.  At least for me anyways.  I can't count the number of times that I have walked into an engagement where the client has asked for best practices.  If you have studied the cynefin framework at all, you'll have learned that best practices only exist when the task at hand is obvious or simple.

In any event, practices used in an organization, or for a project, will be derived from the framework being used, and be nuanced by the principles in play.  ITIL, for example, provides and leads to many practices.  However, if your organizations principles are that it is better to deliver something half-done then wait for something great, you'll modify the corresponding practices in use to comply.

Many people like practices, because they are the concrete implementation of the principles.  Think of it as answering the "how" question, whereas principles answer the "why" question.  Practices are great, but be careful of expecting a particular practice to define how to deal with every situation. 

Patterns, on the other hand, can best be defined as a general, reusable solution to a commonly occurring problem.  If you think about it, patterns could be seen as a construct within a framework, and could prescribe practices to follow given a particular situation.  I like to think of patterns as advice.  Not all of it fits my situation, some of it may require modification, and sometimes I can piece together advise from different people to form on my own solution. 

From an SA perspective, I find it very important to capture principles and frameworks as the start of my projects.  Getting guidance in those areas from the client help shape my solution, and provides some assurance that I will be focusing on the aspects that are important to the client.

Thursday, December 4, 2014

news.sleepysecurity.ninja launched

Sooo, I love reading up on the latest security news.  I try and do this every morning.  Lately, the content aggregator I was visiting seemed to be under maintenance.  I wanted to spend some more time with the Azure PaaS offering, and decided this was probably a good time to do so.

I have big plans for this site (at least until I get caught up with something else bright and shiny) and hope to continue working on this over the next couple of months.

Right now the architecture is pretty simple.  I used this site to get a good list of security blogs to follow.  I created a webjob to handle the parsing of the feeds and storing them into a database so that I can display.  I then created an MVC5 app to read the data and display it.  Pretty simple right now, but I am hoping to expand on it a bit.

For example, I want to run the parsing of the feeds in parallel.  At this point in time, I'm thinking that I would have one webjob push data onto a queue, and then another webjob pick it up to process.  There are some issues with this architecture (webjobs only scale with the websites, and not independently) but I'm hoping to learn lots by working thought it.

In any event, if you want to check it out, you can do so by clicking here.


Saturday, December 14, 2013

Troll Websites: The Insurance Salesmen of the IT Business

It is that time of year again, people are looking to spend their hard earned money on the latest and greatest technology.  When I need to compare products, I, as I assume most people do these days, turn to google and plug in a "product x vs product y" search.  Some of the search results yield technical reviews of the products, comparing the specific details against each other.  Others are people, reviewing products they have purchased.  You can find many "unboxing" youtube videos that provide an awesome amount of information. In the end, I make a decision for myself based on the information I have.  It isn't the "best decision" and might not even be the best for me, but it is at least an informed decision.

Unfortunately, embedded in these search results, are troll websites.  The insurance salesmen of the IT business.  They are generally easy to spot for the seasoned IT professional, but I'm sure the masses have a hard time distinguishing them.  One of the articles that prompted me to write this post is http://www.werockyourweb.com/best-tablet-for-kids-reading-students-work-gaming

Tell Tale Signs of a Troll Website

  • They are obsessed with "The Best"
    • I want to stress this point a little.  There is no "best" product on the market.  The market makes many different products which satisfy many different use cases.  There are tons of different people in the world who use the technology they buy for different tasks.  There is no "Best".  To quote one website in particular, you could say that the surface 2 is the "best tablet for work".  Maybe if you need office to do your job.  Maybe it is if your requirements are that you run windows and need to run windows apps.  What happens if all of your stuff is done in the cloud?  Google Docs?  There are many ways to do things, and the surface 2 has it's use cases.  If there was a single "best product" on the market, everyone would buy it.  The fact is, there isn't.  So stop advertising as such
  • The author has no credentials what so ever
    • Listen, we are talking about technology here.  I would expect the author to have some credential in this area, be it experience or otherwise. Some people have been reviewing technology for a long time, I would probably trust their advice.  Others have no credentials what so ever, and basically are just regurgitating information either google searched or paid for.  You wouldn't want me blogging about medicine or the law would you?  NO, I have little knowledge in this area and a bunch of google searches isn't going to change that.
  • They do not list the comparisons that they did
    • Many websites at least list the different products they were comparing in their review.  The website in question states.. "We thought we would help our readers out by researching each tablet on the market and determining which tablet is best, depending on the user."  Umm, each and every one?  I doubt it, but if you did, could you provide a list? 
  • They claim to "remove the geek speak".
    • Hey, I am all for this.  But misleading the people visiting your websites is just wrong.  There has to be a better way.
  • They do not cite any of their findings
    • The entire article is a big "citation please".  At the very least, the site could include some references to articles they used as research.  The best is the A7 chip.  According to the site in question, " A7 chip provides up to two times faster CPU".  Compared to what?  The A6?  An iPhone 3?  It certainly isn't 2 times faster than the galaxy note 10.1 or the asus transformer.  I was going to go through the entire article and debunk all of their "pros" for the air, but I figured that would just be a waste of time.  If you are reading THIS post, you m

Now before I continue, I want you to understand that I have no beef with this website in particular.  What my issue is is that we as a community have dropped down to this level.  It isn't just this website.  Many blogs/comments/articles basically disintegrate into a flame war of technology vs technology rather than trying to understand and embrace the differences between the products on the market.  We are all concerned with reassuring ourselves that the product we purchased is the "best" and that the others are inferior.  Lame.

I wonder what we as an industry can do about this problem.  Are there ways that we can fight back against these insurance salesmen?  Other than calling them out and generating awareness, what else can we do?




As an aside, I called out this particular website for receiving free ipad airs in exchange for their useless reviews.

Their response: 

+Shamir C, no free iPads over here. Just our honest review after extensive research. But, we'd love to know if you thought different from what our review states. For instance, we said that the iPad Air is the  'Best Tablet for Gaming' would you consider that a fair choice? or would you place another tablet in its place as the best for gaming? & why? 

Their Policy:

This article may contain links and/or phone numbers to merchants (affiliate links), and we may receive compensation if you purchase a product or service from these merchants. Our credibility is very important to us, which is why we research and write our articles before inserting any affiliate links. For more information, please read our compensation disclosure notice.

I think they go light on the enforcement of the "research" in their policy, but probably heavy on the compensation they receive from merchants.




Friday, July 12, 2013

Technet Expiration

I must confess something, I am a technet subscriber!  Phew, at least now it is out in the open and I don't have to hide it anymore.

I'll be honest, I am not Microsofts' #1 fan.  Not by a long shot.  Whenever I can, I upgrade my machines to the Fedora/CentOS Experience.  I rely as much as I can on FOSS tools to get me through my day.  I am always looking for ways to decrease my dependence on MS products.  When I am at work, I bond with the *nix guys.  We make fun of the point and click simplicity that is windows.

But alas, the world runs on MS products and services.  That is why I subscribe to technet.  As a general IT enthusiast, I want to be able to play around with products.  I want to test their limits.  I want to try customizing it, to try new things, to try and integrate it with FOSS tools, and to try and get windows and linux to play nice together.  As a security enthusiast, I need windows to be able to test out the latest malware and exploits.

I am saddened that the technet subscription service is expiring.  If anything, MS owes me money for licenses that I have purchased (unavoidable) as part of my PC purchases.  I do like the idea of a affordable way for IT generalists and the like to tinker with MS products.  It is unfortunate that MS does not feel the same way.

If you like technet, please sign this petition.  I'm sure that because we don't have Premier support, we cannot expect anyone to get back to us within 4 hours, but it is worth a shot.

Wednesday, January 19, 2011

Windows 7 64bit: ctrl-space switching to Chinese

For a while now I have had an issue using my favorite IDE's (eclipse, visual studio).  Every time I hit ctrl-space (auto complete) it would switch to Chinese characters.

It turns out that ctrl-space is windows hot-key used to switch keyboards.  If you have multiple keyboards installed (or say installed by default by your manufacturer who pre-loaded windows for you), the ctrl-space command would be intercepted by windows, and you would switch keyboards to the new language.  I don't know if this has anything to do with the fact that the Chinese keyboard was listed first in my properties.

In any event, I just stumbled upon this SO question and it seems to have solved my issues.

http://stackoverflow.com/questions/179119/how-to-prevent-windows-xp-from-stealing-my-input-ctrl-space-which-is-meant-for-em

Saturday, January 15, 2011

Top 10 mistakes made in behavior change

So I was reading hacker news and found the following link.
http://www.slideshare.net/captology/stanford-6401325

I suggest that everyone read it. Although it is just a point form slide show, it really hits the spot with why I think many people (including myself) fail at certain goals. There are three points that I really want to touch on.

1)  Ignoring how environment shapes behavior
2)  Trying to stop old behaviors instead of creating new ones
3)  Underestimating the power of triggers

I will start with a little story.  My wife and I had set a goal of watching less TV.  This goal has obvious benefits.  For some reason, tho, we could never seem to get away from the TV.  The problem was this.  We lived in a condo, and as soon as you walked in, you were basically right at the TV.  It was hard to "sit on the couch" for a few minutes after work without turning on the TV.  I finally decided one day to move the TV from the "living room" to the "second bedroom".  Instantly, we have a nice, accessible area to just hang out, without the pressure of the TV also being in the same room.  I found it much easier to break away from wasting evenings completely watching TV.  It was great, and felt liberating.  It could not have happened if I had not realized how the environment I was in was affecting me.

Number 2 above really speaks to making positive, rather than negative goals.  For example.  The goal to want to stop smoking is really a negative goal.  You could, instead, set a goal to live a healthier life.  Of course that goal would have to be more specific than that, otherwise it would just be meaningless.  I really like they way the slideshow summarized this point, however.

Number 3 is really about understanding why you fail.  Lets say you eat junk food when you are stressed.  You make a goal to eat less junk food (or, alternatively, eat healthier) but sometimes you digress.  It is important to understand the "failure" and try to figure out what triggered you to digress.  Without understanding that, you can never get to the root of the problem.  The problem is not that you eat too much junk food, it is that you are too stressed in your life.

Wednesday, December 22, 2010

New Move

Well, I decided to move to blogger.  The reason being is I don't like what wordpress.com was doing to the tags.  For example, you can create a bunch of tags that your post belongs to.  Pretty standard stuff right?  Well when you click on the tag it actually sends you to a search for all the wordpress blogs out there.

Stupid.

Hopefully Google has more sense.

In any event, my old blog can be found here: http://ctrldot.wordpress.com/
I'm going to probably port a few of the articles over here over time.