William Ryan, W.G. Ryan, Bill Ryan, Kim Ryan, Search Engine Optimization, Dynamics CRM 2011, R Programming, Python Programming, Python NLTK, Natural Language Processing

 16 Apr 2014 @ 11:27 PM 

Unit Testing MSCRM 2011 – Part I of V

Unit Testing MSCRM 2011 is really no different than testing any other .NET application with the possible exception of Plugins and Workflows. However many shops completely overlook automated unit testing and that is very likely one contributing factor to why so many MSCRM projects fail or are much harder than they need to be.

Introduction:

One thing that has always bothered me about Microsoft Dynamics CRM development is how organizationally, it’s not treated like ‘real’ development.   What does that mean exactly? Well, it depends.  I’ve been a consultant at several companies. From very small ones (1-2 developers) to large ones (multiple teams with over 30+ developers and every formal role that goes along with it).  I can think of only 3 that had an actual API or Framework of truly reusable CRM code that projects were put together with (this isn’t the same thing as saying they didn’t reuse code just so I’m being clear).  I can think of only two that had automated unit testing. I can think of only 2 that had automated builds.  You get the idea hopefully.  You use C# or Visual Basic .NET for the most part to build CRM applications. You use ASP.NET, Silverlight, Windows Communication Foundation, Workflow Foundation to build out CRM Applications. You do most if not all of your development inside of Visual Studio .NET.  Yet in many cases, you could count more differences than similarities with respect to CRM projects and other ones.  So let this be an opening salvo in trying to enlist others to build CRM projects the same way they build other .NET Projects. Unit Testing MSCRM 2011 happens all too infrequently in most places if it happens at all, and as easy as it is to do, few things can aid your project’s quality more than Unit Testing MSCRM 2011.

MSTEST

There are several good tools to implement automated Unit Testing MSCRM 2011 with. Those include NUnit, MBUnit, MSTest , Telerik Test Studio and others. If you’d like to debate the merits of one framework over the other, there are plenty of places on the net that you’ll find many kindred spirits.  You won’t find one here.  What matters is that you automate your unit testing, any of the popular tools should suffice.  If you haven’t started unit testing, aren’t familiar with it or need to understand why it matters, you’d do well to do some background searching on the subject first. As far as I’m concerned, the debate as to whether or not you should unit test and how comprehensively you should do it was finished years ago.  You should definitely write automated unit tests. You should test early and often.  And you should test as much of your code base as you can.

[TestClass]

Visual Studio lets you create separate Unit Test Projects that serve as convenient containers to hold your tests. If you use another framework, the same principles apply.  Assuming that you’re using Visual Studio 2013 Professional (or an edition with Testing enabled), you’ll see a distinct Test Menu (Figure 1-1) that will allow you to interact with Test Explorer (Figure 1-2) among other things:

Figure 1-1Visual Studio 2013 Test Menu

MSTest Test Menu Options Visual Studio 2013

Test Menu Options in Visual Studio 2013

Figure 1-1Visual Studio 2013 Test Explorer

Microsoft Visual Studio 2013 Test Explorer

Visual Studio 2013 Test Explorer

Microsoft Visual Studio 2013 Test Explorer

Visual Studio 2013 Test Explorer

 

To start with, you should give your classes a coherently named Namespace.  YourCompanyName.ProjectName.Tests works as a starting point.  From there, you have 3 choices of items you can add to your Test Project:

  1. Basic Unit Test (An empty basic Unit Test Declaration)
  2. Ordered Test (Use an ordered test to execute a set of existing tests in an order you specify)
  3. Unit Test (An empty Unit Test class declaration)

The summaries at the end of each item pretty aptly describe what they do.  The important takeaway is that each set of test cases you want to run should be contained in a class definition that’s decorated with the [TestClass] attribute.

AssemblyInitialize & AssemblyCleanup

Lacking a better metaphor, you can think of AssemblyInitialize & AssemblyCleanup as outer layers of an onion.  MSDN describes AssemblyInitialize in the following way:

Identifies a method that contains code to be used before all tests in the assembly have run and to allocate resources obtained by the assembly.

AssemblyCleanup is the inverse counterpart, running at the end of everything to serve as the final cleanup agent.

Do you need these? Maybe, maybe not.  Generally speaking, a good unit test will allow itself to run in whatever environment the developers want it to.  To do that, it must generally be configurable.  Then it should create all the data it needs.  The tests should be run on this data validating the code along the way. Finally, the data that was created for the test should be removed so that the system is in the same state it was when the testing began.

At this point I’ll take a slight digression. I’ve heard (and participated in) many arguments around this subject. Many will argue that you can create effectively disposable CRM online instances so that cleaning up the data at the end isn’t really necessary. Personally, I don’t see much validity in this unless you’re coming from the “I don’t do anything more than the minimum I have to” perspective.  Others will argue you can use Virtual Machine images, load the data once there, save snapshots etc etc, thereby negating the need for adding data and cleaning it up. I think it’s a lame argument b/c it seems like it requires more resources and makes things less atomic, but devotees insist they can script things and do it in a way that’s faster than anything that can be done with setup and teardown.  Whatever.  The main point is that you want to test your code logic – you don’t want to get false positives or negatives b/c of a data issue. If you have a way that’s repeatable, can be run in multiple environments and doesn’t open itself up to data issues, go with my blessing.  Just keep in mind that if done correctly, your unit tests can (and should) validate that any given version of code will run on a given environment. If you do a promotion or deploy a new solution/web site /whatever, unit tests can be run against that environment to verify everything works as advertised.  This may or may not be advisable on a production system but it certainly is something you want to do everywhere else.  Creating the data, testing it and deleting it is one sure way to accomplish this goal.

Anyway, if you want to set up data that spans classes, AssemblyInitialize and AssemblyCleanup are the places to facilitate that.

 

ClassInitialize & ClassCleanup

ClassInitialize and ClassCleanup are the next layer of the onion. ClassInitalize runs when an instance of the class is created, and ClassCleanup is run after all the tests in the class have been run. The only thing noteworthy about these are that they are static, and ClassInitialize takes in an instance of the TestContext class.  The TestContext class is a container that lets you store things that you can reference throughout the tests.

The signature for Class initialize is shown below:

private static TestContext currentTestContext;

///<summary>

///Gets or sets the CurrentTestContext property.

///</summary>

publicstaticTestContext CurrentTestContext

{

      [DebuggerStepThrough()]

      get

{

        return currentTestContext;

}

      [DebuggerStepThrough()]

      set

{

          currentTestContext = value;

}

}

 

[ClassInitialize()]

publicstaticvoid ClassInitialize(TestContext context)

{}

Anyway, this is a great place to load data.  For instance, you may have data corresponding to each entity you want to create stored in an Excel sheet.    Here is a working example of code I used in production to load a list of Dealers from an Excel sheet.  The location is stored in a settings file so hopefully you can deduce that on your own.  Also keep  in mind that with excel, each Sheet name corresponds to a Table name, it just uses a Dollar Sign $ character at the end of it:

String ConnectionString = @Settings.Default.ExcelFileLocation;

DataTable dt = newDataTable();

OleDbConnection conn = newOleDbConnection(ConnectionString);

String SQL = String.Format(CultureInfo.CurrentCulture, “SELECT * FROM [{0}$]“, “Dealer”);

OleDbDataAdapter adapter = newOleDbDataAdapter(SQL, conn);

adapter.Fill(dt);

Afterward, I call a method called HydrateDealers where I just pass in the DataTable, loop through the rows and then create the corresponding entities.  I also create a collection of Guids corresponding to the newly created entity id values.  This is so that in the ClassCleanup method, I can just loop through the collection, using the entity type (in this case, dev_dealer) and the id and calling the OrganizationServiceInstance Delete method.  Exception handling only writes to the Console for this example, in practice I log it using the EnterpriseLibrary and using the TestResults feature, but the article is already getting too hard to read.

So using the ClassCleanup counterpart, this method runs for each of the collections that I populated earlier. Using the stored Guids (which I get from the OrganizationService.Create ) I can loop through each collection and delete anything I created. Done correctly, I leave the system in the exact same shape I got it with respect to data.  This means no “Test Accounts” or any garbage of that sort in the system:


[ClassCleanup]

public static void CrmCleanup()

{

foreach (Guid dealerId inFinancingUnitTest.CurrentDealersList)

{

try{

ServiceInstance.Delete(“dev_dealer”, dealerId);

}

catch (Exception ex){

Console.WriteLine(ex.ToString());

}

}

TestInitialize & TestCleanup

These run at the beginning and end of each test and let you set things up and tear things down that are specific to the test.  The same principle applies here that applies to the AssemblyInitialize , AssemblyCleanup , ClassInitialize and  ClassCleanup attributes, they just let you apply them at a more granular level.  The Assembly attributes are the outermost layer of the onion, the Test attributes are the innermost ones.

Now, one last thing before closing this portion of the article.  It is often useful to have a reference to the OrganizationService.  My preference is to create a property of Type CrmConnection and one of type OrganizationService (if you don’t know how to do that, there are several examples throughout this blog).  This particular approach lends itself well to the so-called ‘late bound’ approach to CRM coding.  But the same principal can be applied using the early bound approach (using the OrganizationServiceClient) or the OrganizationServiceContext.  The main point is that you have something to hook onto to run and test your methods.

With that in mind, the next article will walk through creating several tests using the [TestMethod] attribute

Technorati Tags: , , , , , , , ,

Share and Enjoy

  • Facebook
  • Twitter
  • Delicious
  • Digg
  • StumbleUpon
  • Add to favorites
  • Email
  • RSS

 16 Apr 2014 @ 3:57 PM 

AssociateEntitiesRequest

AssociateEntitiesRequest is an implementation of the Request/Response pattern used throughout Microsoft Dynamics CRM 2011.  Any time you have entities related in a N-N fashion, you can use this request to programmatically bind them together. [This sample uses C# but can easily be ported to use any other .NET language including Visual Basic .NET]

In order to use this request, you’re going to have to add a reference to the  Microsoft.Crm.Sdk.Proxy.dll library (which is located in the bin directory of the SDK).  This request is a member of the Microsoft.Crm.Sdk.Messages namespace. Hence the fully qualified type name is Microsoft.Crm.Sdk.Messages.AssociateEntitiesRequest.  Because there is no Microsoft.Crm.Sdk.Messages dll, this is the source of confusion for many newcomers.  You’ll still likely need a reference to Microsoft.Xrm.Sdk, Microsoft.Xrm.Client (if you want to use the CrmConnection), System.Runtime.Serialization and System.ServiceModel if you want to use the OrganizationService and System.Configuration if you want to reference a value in the .config file.

Conceptually, think of a Contract. A Contract may have Terms & Conditions.  Terms & Conditions are generally applicable to states or jurisdictions. I’m not a lawyer so if I’m talking out of my a55, please ignore it, it’s just an example.  Assume you have a Contract entity, a T&C Entity and a State entity.  You want to associate a set of T&Cs with a state.  Just to make things easy, I’m going to declare two properties, one a CrmConnection and the other of type IOrganizationService.  The CrmConnection points to a connectionstring named CrmMain added in a config file .(I add the DebuggerStepThrough attribute on the Get accessors just for good measure b/c stepping through the accessor repeatedly can be a huge waste of time

IOrganizationService

public static IOrganizationService ServiceInstance
{
[DebuggerStepThrough()]
get
{
if (serviceInstance == null)
{
serviceInstance = new OrganizationService(ConnectionInstance);
}
return serviceInstance;
}
}

CrmConnection

public static CrmConnection ConnectionInstance
{
[DebuggerStepThrough()]
get
{
if (connectionInstance == null)
{
connectionInstance = new CrmConnection("CrmMain");
}
return connectionInstance;
}
}

With that in place, we’re ready to use the AssociateEntitiesRequest.  You’ll need to know three things.

  1. Name of the first Entity you want to associate using the AssociateEntitiesRequest. (used for the Moniker1 property of the request)
  2. Name of the Target entity you want to associate using the request.  (used for the Moniker2 property of the request)
  3. The name of the Relationship (the RelationshipName property).

If you have the names for Moniker1, Moniker2 and RelationshipName, ignore the next paragraph.

If you do not know any of the three items mentioned above, the following will help you identify them:

To find the name of the relationship. open the solution, find either of the Entities in question and choose  the N:N Relationship node. You’ll see a list of possible relationships on the right hand side. There shouldn’t be too many of these generally and it should strike out at you (b/c the “Other Entity” column should have the name of one of the two entities you’re looking to relate);

AssociateEntitiesRequest - Microsoft Dynamics CRM 2011

AssociateEntitiesRequest

With these items identified, the associating the items is absolutely trivial.

1- Declare and instantiate an instance of the AssociateEntitiesRequest. It only has the default constructor available so there’s nothing exotic about it:


AssociateEntitiesRequest AssociateRequest = new AssociateEntitiesRequest();

2- You need to set the Moniker1 and Moniker2 properties of the request.  These will be of type EntityReference.  To create an EntityReference, you simply need the entity’s identifier (the Guid assigned by CRM) and the CRM type name.  So for example, if you wanted to create an EntityReference to an Account entity with a Guid of  73BC8091-3B13-452A-AC0E-BE5EB18BF735, you’d do the following:


EntityReference AccountReference = new EntityReference("account", new Guid("73BC8091-3B13-452A-AC0E-BE5EB18BF735");

You’ll do the same for the Moniker1 and Moniker2 properties.

AssociateRequest.Moniker1 = new EntityReference("dev_terms", termId);
AssociateRequest.Moniker2 = new EntityReference("dev_state", stateId);

3- Set the  RelationshipName property (in this case, “dev_terms_state“).


AssociateRequest.RelationshipName = "dev_terms_state";

4- Call  the Execute methodsof the OrganizationService instance which we created at the beginning of the article. Pass in the AssociateEntitiesRequest instance we just created.


ServiceInstance.Execute(AssociateRequest);

I’ve left off correct exception handling and logging for the sake of readability, but it should go without saying that any production code should take exceptions into account.  If you did this correctly and didn’t encounter any errors, you’ll now see the items you specified in CRM associated together

If you have not already done so, please make sure you have downloaded the Microsoft Dynamics CRM 2011 Software Development Kit (SDK).  There are certain features only available in certain rollups, so make sure the version of the SDK you are using matches the rollup you are currently working with on your Dynamics CRM 2011 instance (or the rollup you plan to be using)

Keywords: AssociateEntitiesRequest, , Moniker1, Moniker2, RelationshipName, DebuggerStepThrough, DebuggerStepThroughAttribute, Microsoft.Crm.Sdk.Proxy, Micrososft.Crm.Sdk.Messages, EntityReference, Guid, MSCRM, Microsoft Dynamics CRM, Dynamics CRM 2011, Microsoft Dynamics CRM 2011 Software Development Kit, ConnectionString, CrmConnection.ConnectionString, Bill Ryan, William G. Ryan, OrganizationService, IOrganizationService, CrmConnection, AssociateEntitiesRequest

Technorati Tags: , , , , , , , , , ,

Share and Enjoy

  • Facebook
  • Twitter
  • Delicious
  • Digg
  • StumbleUpon
  • Add to favorites
  • Email
  • RSS

 14 Apr 2014 @ 9:43 PM 

Dogecoin

Dogecoin is a big part of what I’m going to start talking about. I’ll also be covering several other issues as well, but DogeCoin will be the focus of things, from mining, to faucets to trading.

Artificial Intelligence, Bots, Forensics, Counter Measures

I’ve never been good at keeping my blog up to date, in large part b/c I constantly find new things interesting.  I’ve went dormant for a while and am going to start posting again regularly.  Truth be told, i’ve refrained from posting in large part b/c of BS associated with it.  You see, a blog post is just that, a blog post.  However it can serve as a Rorschach test.  People see what they want in it.  I’ve spent countless hours defending myself from delusional accusations that posts were about specific people.  The legal system isn’t what you see on law and order.  You can be very innocent and fortunately, if you have means, it’s often easy to prove that. But you can spend a lot of money in the process.

If you happen to get on the bad side of a law enforcement officer, things as innocuous as walking downstairs to your car can be framed as interfering with an investigation and you can be called to prove otherwise.  In any case, I got really sick of playing whack a mole with the colorful imagination of someone who flattered themselves to think everything I wrote revolved around them.

I’ve spent a lot of time helping victims of computer crimes. If you look at my articles  on “The Hacking of DB Singles.org”  or similar ones, I think it’s pretty clear where I stand.  I’ve helped countless people avoid victimization online as well as trying to mitigate the damage they’ve already incurred.  If I wanted to, I could post a list of over 30 people that would gladly spell out in detail how much I’ve helped them.  But begin a white knight isn’t my thing and running around posting about how great you are is well, pathetic. In any case, I write about computer crime and common scenarios people don’t think about.  I have 7 articles queued up from over a year I’ve hesitated to post b/c I knew certain parties would use it as ‘evidence’ that I was about to engage in such crimes.

A big part of what I write is using real world, tangible scenarios that make people understand how vulnerable they are.  To do this, while being a cyber-criminal myself, would be the height of stupidity. Here, let me write out a blueprint on how to commit a crime, and then let me go commit it. Only a fool would do such a thing.  I’m a lot of things, but being a fool isn’t one I’ve been accused of much.

The more real the scenarios, the more certain parties have claimed I’m talking about them.  Well, the time has come that I’ve had enough. I’m tired of withholding valuable information that could protect people b/c of fear that someone will delusionally misrepresent what I’ve written as some sort of manifesto about what i’m going to do.

Currently, i’ve had the pleasure of taking a job as Director of Data Science for  a very successful publicly traded company. It’s not work, it’s like getting paid to play.  In the course of that, I get to investigate and play with many different technologies. From here on in, the blog focus will be as follows.  My intent is to inform and protect. Anyone that takes it as someone else is seriously fooling themselves (and should that day arrive in court, I’m quite confident ANY and every reasonable person will see it for exactly what it is – benevolence shown by someone fascinated by technology, helping others avoid victimization:

Keywords:  CryptoCurrency, CryptographyDogecoinLiteCoin & BitCoin, Artificial Intelligence, Advanced Statistics and Calculus, Web Services and Web API’s, Natural Language Programming, Zero-Day exploits, Digital Forensics - Cellebrite in Particular, Protecting yourself from being victimized online., Anonymity,Tails, UDOO, Raspberry PI, BOTS, PYTHON

 

Technorati Tags: , , , , , , , ,

Share and Enjoy

  • Facebook
  • Twitter
  • Delicious
  • Digg
  • StumbleUpon
  • Add to favorites
  • Email
  • RSS

 14 Oct 2013 @ 10:01 AM 

This whole story really pissed me off.  First off, I’m a Scientific American subscriber and have been for a while.  For years I subscribed and my wife and daughter never paid any attention to it. As my daughter has gotten older and set her sites on going to medical school, it really excites me to see her show major enthusiasm to intellectual pursuits and STEM subjects in particular (and if you’ll forgive the brag here, she’s maintained a 4.0 GPA the whole time  4.0 was the best GPA you can get. Now that she’s moved on to HS and you can earn a 5.0 GPA with honors courses, she’s consistently > 4.9). Sure, Scientific American is watered down and it’s hardly the Harvard Medical Review, but it’s a good start.  I recently cancelled my subscription to Popular Science b/c of the stance they took on turning off comments (I agreed with pretty much every premise they put forth (as well as their belief that science supports AGW, the but conclusion was pathetic and cowardly). 

Then this happens. Since the article was taken down, I’m republishing it.  If Scientific American doesn’t put the post back up and apologize to DL Lee, I will definitely pull my subscription and encourage others to do the same (not that I matter or that one subscription matters, but I have yet to see anyone on the “ANTI-DL Lee” side here other than her editor at Scientific American.  So it’s reprinted here:

 

Don’t Start None, Won’t Be None

 

Something that happens every day, to me and many other people who write things: you get asked to do something for free. There’s an idea that mere “writing” isn’t actually “work,” and besides which “exposure” should be more than enough recompense. (Can I eat exposure? Can I smoke it?)

You know, that’s okay. I’m constantly asking people to do things for less recompense than their time is worth; it’s worth a shot. For a young writer who is trying to build a career, exposure might actually be valuable. But most of the time the writer will politely say no and everyone will move on.

For example, just recently an editor named “Ofek” at Biology-Online.org asked DNLee to provide some free content for him. She responded with:

Thank you very much for your reply.
But I will have to decline your offer.
Have a great day.

Here’s what happens less often: the person asking for free content, rather than moving on, responds by saying

Because we don’t pay for blog entries?
Are you an urban scientist or an urban whore?

Where I grew up, when people politely turn down your request for free stuff, it’s impolite to call them a “whore.” It’s especially bad when you take into account the fact that we live in a world where women are being pushed away from science, one where how often your papers get cited correlates strongly with your gender, and so on.

DNLee was a bit taken aback, with good reason. So she took to her blog to respond. It was a colorful, fun, finely-crafted retort — and also very important, because this is the kind of stuff that shouldn’t happen in this day and age. Especially because the offender isn’t just some kid with a website; Biology Online is a purportedly respectable site, part of the Scientific American “Partners Network.” One would hope that SciAm would demand an apology from Ofek, or consider cutting their ties with the organization.

Sadly that’s not what happened. If you click on the link in the previous paragraph, you’ll get an error. That’s because Scientific American, where DNLee’s blog is hosted, decided it wasn’t appropriate and took it down.

It’s true that this particular post was not primarily concerned with conveying substantive scientific content. Like, you know, countless other posts on the SciAm network, or most other blogs. But it wasn’t about gossip or what someone had for lunch, either; interactions between actual human beings engaged in the communication of scientific results actually is a crucial part of the science/culture/community ecosystem. DNLee’s post was written in a jocular style, but it wasn’t only on-topic, it was extremely important. Taking it down was exactly the wrong decision.

I have enormous respect for Scientific American as an institution, so I’m going to hope that this is a temporary mistake, and after contemplating a bit they decide to do the right thing, restoring DNLee’s post and censuring the guy who called her a whore. But meanwhile, I’m joining others by copying the original post here. Ultimately it’s going to get way more publicity than it would have otherwise. Maybe someday people will learn how the internet works.

Here is DNLee. (Words cannot express how much I love the final picture.)

——————————————————–

wachemshe hao hao kwangu mtapoa

I got this wrap cloth from Tanzania. It’s a khanga. It was the first khanga I purchased while I was in Africa for my nearly 3 month stay for field research last year. Everyone giggled when they saw me wear it and then gave a nod to suggest, “Well, okay”. I later learned that it translates to “Give trouble to others, but not me”. I laughed, thinking how appropriate it was. I was never a trouble-starter as a kid and I’m no fan of drama, but I always took this 21st century ghetto proverb most seriously:

Don’t start none. Won’t be none.

For those not familiar with inner city anthropology – it is simply a variation of the Golden Rule. Be nice and respectful to me and I will do the same. Everyone doesn’t live by the Golden Rule it seems. (Click to embiggen.)

pic-1
pic-2pic-3

The Blog editor of Biology-Online dot org asked me if I would like to blog for them. I asked the conditions. He explained. I said no. He then called me out of my name.

My initial reaction was not civil, I can assure you. I’m far from rah-rah, but the inner South Memphis in me was spoiling for a fight after this unprovoked insult. I felt like Hollywood Cole, pulling my A-line T-shirt off over my head, walking wide leg from corner to corner yelling, “Aww hell nawl!” In my gut I felt so passionately:”Ofek, don’t let me catch you on these streets, homie!”

This is my official response:

It wasn’t just that he called me a whore – he juxtaposed it against my professional being: Are you urban scientist or an urban whore? Completely dismissing me as a scientist, a science communicator (whom he sought for my particular expertise), and someone who could offer something meaningful to his brand.What? Now, I’m so immoral and wrong to inquire about compensation? Plus, it was obvious me that I was supposed to be honored by the request..

After all, Dr. Important Person does it for free so what’s my problem? Listen, I ain’t him and he ain’t me. Folks have reasons – finances, time, energy, aligned missions, whatever – for doing or not doing things. Seriously, all anger aside…this rationalization of working for free and you’ll get exposure is wrong-headed. This is work. I am a professional. Professionals get paid. End of story. Even if I decide to do it pro bono (because I support your mission or I know you, whatevs) – it is still worth something. I’m simply choosing to waive that fee. But the fact is told ol’ boy No; and he got all up in his feelings. So, go sit on a soft internet cushion, Ofek, ’cause you are obviously all butt-hurt over my rejection. And take heed of the advice on my khanga.

You don’t want none of this

Thanks to everyone who helped me focus my righteous anger on these less-celebrated equines. I appreciate your support, words of encouragement, and offers to ride down on his *$$.

 

Keywords: DL Lee, The Urban Scientist, ofek, Mariette DiChristina, @Sciam, Streisand Effect

 

Share and Enjoy

  • Facebook
  • Twitter
  • Delicious
  • Digg
  • StumbleUpon
  • Add to favorites
  • Email
  • RSS
Posted By: admin
Last Edit: 14 Oct 2013 @ 10:01 AM

EmailPermalinkComments (2)
Tags
Categories: CRM 2011 Development

 31 Aug 2013 @ 8:28 PM 

Nootropics – Phenibut from Liftmode

I’ve been very interested in Nootropics for a while now. I frequently get questions about which ones I take, where they can be procured and what areas can be enhanced with them.

Phenibut is one of the more popular products in this area. There is some debate about whether or not it’s actually a Nootropic but in my experience, the Nootropic benefits are profound.  

If you search around for Phenibut, you’ll see it discussed pretty frequently in Bodybuilding forums.  It’s been used in Russia (and the former Soviet Union) for years and is prescribed by doctors there today.  I’ve used it for about 2 months and have grown quite fond of it.  Like anything, I’ll admit it’s possible that the benefits I experience are the result of the placebo effect but I strongly doubt it.

So what does it do?  Depending on the dosage, Phenibut’s effects range from energizing to sedating.  Personally, I started out taking 500mg once or twice a day and didn’t really notice any effect. In fact I really started to doubt the efficacy of it at first. Then I increased the dosage to 1500mg one day and found very energized and pleasant. I tried taking 2g’s a day, twice a day for the next week and it seemed to really give me a boost.  Just for experimentation, I would take 2gs before I went running and compared how I felt to times I’d go running without any Phenibut. Again, it could be mostly placebo going on, but it seemed to help tremendously. 

A slight digression on this note—I’ve had sleeping problems for years but the last 4 years started to be very problematic for me in terms of sleep.  Once I got heavy, the more weight I gained the worse my sleeping problems became.  Things got so bad for me that I would basically not sleep all week and then I’d crash all weekend.  i went from being a dyed in the wool ‘morning person’ to someone who had extreme difficulty waking up.  After waiting much too long, I had a sleep study performed, was diagnosed with Sleep Apnea and started CPAP therapy.  The CPAP fixed my sleep problem overnight and had a huge impact on my health, but b/c I had had ‘insomnia’ for so long, my sleep cycles were totally out of what. I would generally have trouble going to sleep before 5:30 AM – using the CPAP, I would sleep 6-8 hours a day, sleep like a rock and all would be great, but i still had a lot of trouble falling asleep.  I started trying to use a Phillips Go-LITE (which I’ll post a review about). The Go-LITE helped me wake up on time but I still had trouble falling asleep. Phenibut seemed to be the fix to the going to sleep problem i was still experiencing.

Phenibut gives you a notable energy boost starting after 5-10 minutes after first dose.  Even though I describe the effects as an energy boost, it’s much different from Caffeine or Ephedrine -mainly, it doesn’t raise my heart rate or blood pressure and there’s no ‘racey’ or nervous feeling associated with it. In fact it’s quiet the opposite – it always seems to reduce anxiety, relax you a good bit and gives you  a general feeling I can only describe as well-being.

I read about reports of increased tolerance and withdrawal (which many reports say is terribly bad) which I found concerning. I started taking it only once or twice a week, then started taking it more frequently. There have been weeks in the recent past where i”ve taken it every single day for a week. Generally though, I keep use limited to 4-5 days a week.  The most I’ve taken in a day is 5gs although that’s pretty high, i try to keep it to 2 dosages a day of 1.5-2gs.  Taking 4gs a day for 4 weeks straight, I tried to stop using it completely to see if tolerance was building or if there were any withdrawal effects. I don’t want to tell anyone there is no withdrawal (our bio-chemistry is very unique and one person may not experience any withdrawal while someone else might have the opposite reaction), but in my case, even after daily usage for 2 months, I was able to take a 2 week break without any  notable withdrawal effects.  At worst I may have felt a little edgy once or twice, but i’d be hard pressed to say it was actual withdrawal and not just general tiredness or agitation that happens here and there in life. 

Suffice to say that I’m very glad I found Phenibut and I really like it. I take it before running and it seems to give me a very comfortable boost. I use it before work frequently and it seems to give me a very comfortable edge helping me stay alert, helping me to think clearly and focused and gives me all of this without any downside.

So where do you find it? I have tried several brands and types and have settled on Liftmode.  I’ve bought several products from LiftMode and think they are about as good to deal with as a company can be. First off, their product line is extensive . they have many different sizes for most of their products, they have everything from small sizes of Phenibut (40gs for $12.99) to really big containers of it (500G for $98.88).  When you buy something from LiftMode, they give you a certificate of Analysis from a laboratory that confirms the purity of their products.  In this case, the Phenibut was analyzed by Analytical Labs in Anaheim.  It shows a claim of > 99.5% and a result of 100%. LiftMode is great to deal with from every regard that I’ve seen, and they ship the product the same day in most cases.  Delivery is quick and reliable and they’ll send you tracking information if you choose a shipping option that provides tracking updates.  Having tried several brands of Phenibut (including many that are much more expensive), I’ve found that Liftmode’s Phenibut is consistently great and the most reasonably priced stuff I’ve come across. They are very responsive and friendly to deal wit and doing business with them couldn’t be easier.

As an aside, if you’re going to give Phenibut a try (again, keep in mind that LiftMode offers a 40g container for $12.99), check out LiftMode’s L-Theanine and their Noopept. L-Theanine is reported to help bolster the efficacy of Phenibut and in my experience, they do seem to compliment each other well. Noopept is effective at really small dosages (dosages so small it’s hard to believe they work – but countless things are very effective at seemingly small dosages). I’ll write more about L-Theanine and NooPept in another post, but if you’re interested, take a look at LiftMode’s sight and look around. Their stuff is very reasonably priced and you can try a Nootropic buffet including a sampling of almost everything they sell without breaking the $150.00 mark. I’ve tried just about everything they have and have been consistently pleased with everything I’ve gotten from them, I’d encourage you to give them a try – I’d love to hear any feedback on any Nootropics you’ve tried and let me know if your experience was similar.

 

[Liftmode, Phenibut, L-Theanine, GhB, NooTropics, Noopept]

Share and Enjoy

  • Facebook
  • Twitter
  • Delicious
  • Digg
  • StumbleUpon
  • Add to favorites
  • Email
  • RSS
Posted By: admin
Last Edit: 31 Aug 2013 @ 09:38 PM

EmailPermalinkComments Off
Tags
Categories: CRM 2011 Development

 23 Apr 2013 @ 10:54 PM 

<h3>Colin Purrington vs Consortium for Plant Biotechnological Research</h3>

In the spirit of  copying someone’s words, I decided to jack  the text of Ken White’s brilliant post, Bring me the Head of that Threatening Lawyer. Having gotten really behind with posting, I decided to get back in the groove and well, Popehat being my favorite site and all, I figured this is a great place to start.

Colin Purrington made an error in judgment.

His error was this: he believed that simply because he had created something himself — specifically, a helpful guide for creating scientific posters — that it was safe to go about asking other people not to appropriate it for their own profit.

Colin was wrong. This is America, Colin. What were you thinking?

See, Colin saw that an outfit called the Consortium for Plant Biotechnology Research was using some of his language in appendices to its grant applications. Colin, as is his practice, sent a wry missive asking that they stop, with a humorous coda:

Read the whole thing here. Then read this. Then go to Colin Purrington’s site and check out his work – he’s got great advice and well, he’s funny as hell.  And on top of that, he’s actually got the balls needed to stand up to douchebag attorney David P Metzger at Arnold & Porter.

Keywords:  Ken White, Collin Purrington, David P. Metzger, Arnold and Porter, Consortium for Plant Biotechnology Research

 

Share and Enjoy

  • Facebook
  • Twitter
  • Delicious
  • Digg
  • StumbleUpon
  • Add to favorites
  • Email
  • RSS
Posted By: admin
Last Edit: 23 Apr 2013 @ 10:54 PM

EmailPermalinkComments Off
Tags

 10 Apr 2013 @ 2:14 PM 

Adam Steinbaugh continues to illustrate why the legal system is going to be a much better place once he starts practicing law. Adam’s been covering the whole Revenge Porn controversy and as he posts, Marc Randazza apparently just scored  another win (shocking, I know).  When you end up on the wrong side of both Anon and Randazza, you know you’re life is about to start sucking, majorly.  I’m not one to take joy in other’s misfortunes but sometimes it’s warranted, and in the case of Eric Chanson, Roy Chanson, Amy Chanson, Kevin Bollaert and Blue Mist Media LLC, they deserve everything they get. They couldn’t even begin to undo the damage they’ve inflicted on innocent and/or undeserving folks and they’ve had every opportunity to stop but did do so. In fact they went to a good bit of effort to keep this crap going.  Well, all I can say is I hope a plate full of Randazza serving up Murum Aries Attigit is just what’s needed in a case like this.

Keywords:  Adam Steinbaugh, Marc Randazza, Eric Chanson, Roy Chanson, Amy Chanson, Kevin Bollaert and Blue Mist Media LLC, YouGotPosted, IsAnybodyDown, Revenge Porn

Share and Enjoy

  • Facebook
  • Twitter
  • Delicious
  • Digg
  • StumbleUpon
  • Add to favorites
  • Email
  • RSS
Posted By: admin
Last Edit: 10 Apr 2013 @ 02:14 PM

EmailPermalinkComments Off
Tags

 04 Dec 2012 @ 7:39 PM 

Cody Saltsman has no sympathy for ‘whore’s

Marc Randazza is covering the story of Cody Saltsman, a few other members of a Steubenville, Ohio football team and their proclivity for non-traditional hookups. Now, if you make fun of Cody Saltsman or imply he’s a rapist, he and his family apparently get nice and butthurt and will sue as Alexandria Goddard found out. So it’s possible that someone else took the picture, it’s possible someone else made the comments under Cody Saltsman’s name etc etc, but I ask you, how would you feel if this was something your son posted?

How many times have you hooked up and had to carry the girl like that? Anyway, the family is learning firsthand about the Streisand Effect and their class act of a lawyer , Shawn Blake, is doing his best to make sure they achieve it in it’s full glory.

On a side note, I was working on a project for class. It randomly generates words, it’s really cool. Check out the results:

Cody Saltsman thinks rape victims are whores. Cody Saltsman Steubenville, OH, Rapist, Rapist, Attorney Shawn Blake is a douchebag. Cody Saltsman thinks taking pictures of gang rapes and making jokes about the victims is funny.

UPDATE:

I just came across Busted Bitches and Internet Stalkers who’s hot on the Cody Saltsman / Prinniefield / #SteubenvilleOhio – Must read coverage

UPDATE II:

Judge Delays Ruling in Code Saltsman Case Against Prinni #SteubenvilleOhio

 

 

 

Keywords: Cody Saltsman, Alexendria Goddard, Cody Saltsman Steubenville Ohio, Steubenville Ohio Football Gang Rape, Shawn Blake, Marc Randazza, Streisand Effect, #SteubenvilleOhio

Technorati Tags: , , , , , ,

Share and Enjoy

  • Facebook
  • Twitter
  • Delicious
  • Digg
  • StumbleUpon
  • Add to favorites
  • Email
  • RSS

 03 Dec 2012 @ 2:27 AM 

GainSpan / Gainspand / GainSpand0a6f9 on my Wifi Network

I was going through my router logs earlier tonight and saw the following entries which I didn’t recognize:
GainSpan GainSpand GainSpand0a6f9
Not exactly the type of thing you want to see right? Well, I started to look around and found out it’s quite innocent and nothing to worry about.  If you search for it, an exact match of GainSpand0a6f9 returned absolutely nothing on Google and nothing much on Bing (but but Bing is just a cheap wannabe and never has anything that Google doesn’t, Stephen Colbert said so).  Looking for GainSpan returned a whole lot of stuff none of which seemed to point to anything too obvious.  Then I came across this, which points to it being the FitBit and related Aria Wifi Smart Scale  scales we use.  But I found quite a few more, and that didn’t make any sense. I have a FitBit, the wife has one, and we each have a matching Aria scale which is 4 devices, I was seeing a total of 9 devices attached and they were grouped in similar patterns to the ones shown above.  I got to thinking maybe they were switching connections but that didn’t add up as each had a different MAC address.   A little further investigation led to this post about GainSpan and NetDuino.  And yes, I have a few Arduino and NetDuino boards around the house which I’ve been playing with for various projects. I powered all of them off and did a refresh and everything added up exactly as I expected it would.

So, if you see an entry on your Wifi Logs about attached devices named GainSpan, GainSpand, or GainSpan(d)with a few numbers afterward, you probably don’t have anything to worry about if your network is locked down. If you’re using a FitBit or an Aria, that’s most likely it. If that’s not it, check to see if you have any Arduino boards around (these are pretty specific devices and you’d know if you were using them or not, after all you don’t buy or program Arduino without knowing it. On the other hand, there’s many different devices, more than I could possibly outline here that may be using Arduino boards).

Keywords:  GainSpanFitBit , Aria, Aria Wifi Smart Scale, ArduinoNetDuino, Why is GainSpan Showing up on my Wifi-Network, Why is GainSpand showing up on my Wifi Network, William Ryan, William G. Ryan, Katy Michaelis

Technorati Tags: , , , , ,

Share and Enjoy

  • Facebook
  • Twitter
  • Delicious
  • Digg
  • StumbleUpon
  • Add to favorites
  • Email
  • RSS
Posted By: Bill
Last Edit: 03 Dec 2012 @ 02:28 AM

EmailPermalinkComments Off
Tags

 18 Nov 2012 @ 6:49 PM 

Katy Michaelis

Katy Michaelis is one of the sharper minds in the development world. I’ve been following Katy for quite a while and she’s always ahead of the curve on technical issues. She also bears a striking resemblance to Katy Johnson, the model referenced in Tucker Max’s book – see for yourself:
Katy Michaelis

I just noticed that she moved her old blog TheKatyMichaelis to KatyMichaelis at WordPress. It looks like none of her old posts have been moved over yet but they should be shortly.  Anyway, if you’re interested in a good technical read, Katy Michaelis is not one to disappoint. Read and Enjoy

 

Keywords:  Katy Michaelis, KatyMichaelis, TheKatyMichaelis, Katy S Michaelis, Katherine S Michaelis, KatyMichaelis.Wordpress.com, Tucker Max, TuckerMax, Katy Johnson

Technorati Tags: , , ,

Share and Enjoy

  • Facebook
  • Twitter
  • Delicious
  • Digg
  • StumbleUpon
  • Add to favorites
  • Email
  • RSS
Posted By: EvilDevilCuckoo
Last Edit: 18 Nov 2012 @ 06:49 PM

EmailPermalinkComments Off
Tags





 Last 50 Posts
 Back
 Back
Change Theme...
  • Users » 4374
  • Posts/Pages » 124
  • Comments » 404
Change Theme...
  • VoidVoid « Default
  • LifeLife
  • EarthEarth
  • WindWind
  • WaterWater
  • FireFire
  • LightLight

Code Sample Reference



    No Child Pages.

Disclaimer



    No Child Pages.