text:
Latest Blog Posts
Proxying HTTP requests in ASP.NET Core using Kestrel
Posted on Saturday, 02 Jul 2016
A bit of a short post this week but hopefully one that will save some a bit of googling!
Recently I've been doing a lot of ASP.NET Core MVC and in one project I've been working on I have an admin login area. My first instinct was to create the login section as an Area within the main application project.
Creating a login area in the same application would work, but other than sharing an /admin/ path it really was a completely separate application. It has different concerns, a completely different UI (in this instance it's an Angular 2 application talking to a back-end API). For these reasons, creating the admin section as an MVC Area just felt wrong - so I began to look at what Kestrel could offer in terms of proxying requests to another application. This way I could keep my user facing website as one project and the administration area as another, allowing them to grow independent of one another.
Whilst proxying requests is possible in IIS, I was keen to use Kestrel as I'd like the option of hosting the application across various platforms, so I was keen to see what Kestrel had to offer.
Enter the ASP.NET Core Proxy Middleware!
After a little digging it came to no surprise that there was some middleware that made proxying requests a breeze. The middleware approach to ASP.NET Core MVC lends itself to such a task and setup was so simple that I felt it merited a blog post.
After installing the Microsoft.AspNetCore.Proxy NuGet package via the "Install-Package Microsoft.AspNetCore.Proxy" command, all I had to do was hook the proxy middleware up to my pipeline using the MapWhen method within my application's Startup class:
// Startup.cs
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
app.MapWhen(IsAdminPath, builder => builder.RunProxy(new ProxyOptions
Scheme = "http",
Host = "localhost",
Port = "8081"
private static bool IsAdminPath(HttpContext httpContext)
return httpContext.Request.Path.Value.StartsWith(@"/admin/", StringComparison.OrdinalIgnoreCase);
As you can see, all I'm doing is passing a method that checks the path begins with /admin/.
Once setup, all you need to do is set your second application (in this instance it's my admin application) to the configured port. You can do this within the Program class via the UseUrls extension method:
// Program.cs
public class Program
public static void Main(string[] args)
var host = new WebHostBuilder()
Now, if you start up your application and navigate to /admin/ (or whatever path you've specified) the request should be proxied to your secondary application!
Happy coding!
Fira Mono - An exceptional programming font, and now with (optional) ligatures
Posted on Friday, 17 Jun 2016
I've always been a fan of customising my IDE or text editor of choice, and one such customisation (and often the first thing I do after installing an editor) is setup my font of choice which has long been Google's Droid Sans font.
Recently however, I was introduced to a rather interesting but delightful looking typeface called Fira Mono that's been designed by Mozilla specifically for their Firefox OS.
At first I didn't think much of the font, but the more I saw him using it the more it grew on me. Eventually I decided to download it and give it a try. And having been using it now for a number of days I've no intention of switching back to Droid Sans.
Fira Mono in Visual Studio Code:
Fira Mono in Visual Studio:
Would you like ligatures with that?
If you're a developer that likes your programming fonts with ligatures then there is a version available that includes ligatures called Fira Code.
Downloading Fira Mono
The font itself is open-source so if you're interesting it giving it a try then download it via Font Squirrel here, then once extracted to your fonts directory load up Visual Studio (or restart so Visual Studio can load the font) and to go Tools > Options > Environment > Fonts and Colors and select it from the Font dropdown.
Having experimented with various font sizes (In Visual Studio only), font size 9 appears to work really well with Fira Mono.
As mentioned above, if you'd like the ligatures then head over here to download them.
Select by camel case - the greatest ReSharper setting you never knew
Posted on Monday, 06 Jun 2016
One of ReSharper's most powerful features is the sheer number of additional shortcuts it adds to Visual Studio, and out of the arsenal of shortcuts available my most used shortcuts have to be the ones that enable me to modify and manipulate code in as fewer wasted keystrokes as possible. Ultimately, this boils down to the following two shortcuts:
1: Expand/Shrink Selection (CTRL + ALT + Right to expand, CTRL + ALT + Left to shrink)
This shortcut enables you to expand a selection by scope, meaning pressing CTRL + ALT + Right to expand your selection will start by highlighting the code your cursor is over, then the line then function scope, class and namespace. Check out the following gif to see an example. Be sure to watch the selected area!
Expand/Shrink Selection:
2: Increase selection by word (CTRL + Shift + Right to expand, CTRL + Shift + Left to shrink)
A few of you will probably notice that this shortcut isn't really a ReSharper shortcut - and you'd be right. But none the less, once harnessed, increase/decrease selection by word is extremely powerful when it comes to renaming variables, methods, classes etc. and will serve you well if mastered.
Where am I going with this?
Whilst the aforementioned shortcuts are excellent tools to add to your shortcut toolbox, one thing I always wished they would do was the expand selection by camel case, allowing me to highlight words with more precision and save me the additional key presses when it comes to highlighting the latter part of a variable in order to rename it. For instance, instead of highlighting the whole word in one go (say, the word ProductService, for example), it would first highlight the word Product, followed by Service after the second key press.
Having wanted to do this for sometime now, I was pleasantly surprised when I stumbled across a ReSharper setting to enable just this. This setting can be enabled by going to ReSharper > Options > Environment > Editor > Editor Behaviour and selecting the Use CamelHumps checkbox.
The problem I've found when enabling this is the setting overwrites the default behaviour of CTRL + ALT + Left / Right. Whilst this may be fine for some, I would rather the ability to choose when to highlight by word and when to highlight by camel case. Luckily you can do just this via the ReSharper_HumpPrev and ReSharper_HumpNext commands that are available for binding in Visual Studio.
To do this do the following:
- Open the Visual Studio Options window from Tools > Options
- Expand Environment and scroll down to Keyboard
- Map the two commands ReSharper_HumpNext and ReSharper_HumpPrev to the key mappings you wish (E.g. ALT+Right Arrow and ALT+Left Arrow) by selecting the command from the list and entering the key mapping in the Press shortcut keys text box, then click Assign.
Now, with UseCamelHumps enabled and my shortcut keys customised, I can choose between the default selection by string, or extend selection by camel case - giving me even more code-editing precision!
Social authentication via Google in ASP.NET Core MVC
Posted on Sunday, 29 May 2016
Lately I've been re-developing my blog and moving it to .NET Core MVC. As I've been doing this I decided to change authentication methods to take advantage of Google's OAuth API as I didn't want the hastle of managing username and passwords.
Initially, I started looking at the SimpleAuthentication library - but quickly realised ASP.NET Core already provided support for third party authentication providers via the `Microsoft.AspNet.Authentication` library.
Having implemented cookie based authentication I thought I'd take a moment to demonstrate how easy it is with ASP.NET's new middleware functionality.
Let's get started.
Sign up for Google Auth Service
Before we start, we're going to need to register our application with the Google Developer's Console and create a Client Id and Client Secret (which we'll use later on in this demonstration).
- To do this go to Google's developer console and click "Create Project". Enter your project name (in this instance it's called BlogAuth) then click Create.
- Next we need to enable authentication with Google's social API (Google+). Within the Overview page click the Google+ API link located under Social API and click Enable once the Google+ page has loaded.
- At this point you should see a message informing you that we need to create our credentials. To do this click the Credentials link on the left hand side, or the Go to Credentials button.
- Go across to the OAuth Consent Screen and enter a name of the application you're setting up. This name is visible to the user when authenticating. Once done, click Save.
- At this point we need to create our ClientId and ClientSecret, so go across to the Credentials tab and click Create Credentials and select OAuth client ID from the dropdown then select Web Application.
- Now we need to enter our app details. Enter an app name (used for recognising the app within Google Developer Console) and enter your domain into the Authorized JavaScript origins. If you're developing locally then enter your localhost address into this field including port number.
- Next enter the return path into the Authorized redirect URIs field. This is a callback path that Google will use to set the authorisation cookie. In this instance we'll want to enter http://<domain>:<port>/signin-google (where domain and port are the values you entered in step 6).
- Once done click Create.
- You should now be greeted with a screen displaying your Client ID and Client Secret. Take a note of these as we'll need them shortly.
Once you've stored your Client ID and Secret somewhere you're safe to close the Google Developer Console window.
Authentication middleware setup
With our Client ID and Client Secret in hand, our next step is to set up authentication within our application. Before we start, we first need to to import the Microsoft.AspNet.Authentication package (Microsoft.AspNetCore.Authorization if you're using RC2 or later) into our solution via NuGet using the following command:
install Microsoft.AspNet.Authentication
install Microsoft.AspNetCore.Authorization
Once installed it's time to hook it up to ASP.NET Core's pipeline within your solution's `Startup.cs` file.
First we need to register our authentication scheme with ASP.NET. within the `ConfigureServices` method:
public IServiceProvider ConfigureServices(IServiceCollection services)
// Add authentication middleware and inform .NET Core MVC what scheme we'll be using
services.AddAuthentication(options => options.SignInScheme = CookieAuthenticationDefaults.AuthenticationScheme);
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
// Adds a cookie-based authentication middleware to application
app.UseCookieAuthentication(new CookieAuthenticationOptions
LoginPath = "/account/login",
AuthenticationScheme = "Cookies",
AutomaticAuthenticate = true,
AutomaticChallenge = true
// Plugin Google Authentication configuration options
app.UseGoogleAuthentication(new GoogleOptions
ClientId = "your_client_id",
ClientSecret = "your_client_secret",
Scope = { "email", "openid" }
In terms of configuring our ASP.NET Core MVC application to use Google for authentication - we're done! (yes, it's that easy, thanks to .NET Core MVC's middleware approach).
All that's left to do now is to plumb in our UI and controllers.
Setting up our controller
First, let's go ahead and create the controller that we'll use to authenticate our users. We'll call this controller AccountController:
public class AccountController : Controller
public IActionResult Login()
return View();
public IActionResult External(string provider)
var authProperties = new AuthenticationProperties
// Specify where to return the user after successful authentication with Google
RedirectUri = "/account/secure"
return new ChallengeResult(provider, authProperties);
public IActionResult Secure()
// Yay, we're secured! Any unauthenticated access to this action will be redirected to the login screen
return View();
public async Task<IActionResult> LogOut()
await HttpContext.Authentication.SignOutAsync("Cookies");
return RedirectToAction("Index", "Homepage");
Now we've created our AccountController that we'll use to authenticate users, we also need to create our views for the Login and Secure controller actions. Please be aware that these are rather basic and are simply as a means to demonstrate the process of logging in via Google authentication.
// Login.cshtml
Sign in with Google
// Secure.cshtml
This page can only be accessed by authenticated users.
Now, if we fire up our application and head to the /login/ page and click Sign in with Google we should be taken to the Google account authentication screen. Once we click Continue we should be automatically redirected back to our /secure/ page as expected!
ASP.NET Core tag helpers - with great power comes great responsibility
Posted on Monday, 09 May 2016
I recently watched a Build 2016 talk by N. Taylor Mullen where Taylor demonstrated the power of ASP.NET Core MVC's new tag helpers. Whilst I've been keeping up to date with the changes and improvements being made to Razor, there were a couple times my jaw dropped as Taylor talked about points that were completely new to me. These points really highlighted how powerful the Razor engine is becoming - but as Ben Parker said in Spiderman, "With great power comes great responsibility".
This post serves as a review of how powerful the Razor tag engine is, but also a warning of potential pitfalls you may encounter as your codebase grows.
The power of ASP.NET Core MVC's tag engine
For those of you that haven't been keeping up to date with the changes in ASP.NET Core MVC, one of the new features included within Razor are Tag Helpers. At their essence, tag helpers allow you to replace Razor's jarring syntax with a more natural HTML-like syntax. If we take moment to compare a new tag helper to the equivalent Razor function you'll see the difference (remember, you can still use the HTML helpers, Tag helpers do not replace them and will happily work side by side in the same view).
// Before - HTML Helpers
@Html.ActionLink("Click me", "MyController", "MyAction", { @class="my-css-classname", data_my_attr="my-attribute"})
// After - Tag Helpers
Click me
Whilst both of these will output the same HTML, it's clear to see how much more natural the tag helper syntax looks and feels. Infact, with data prefix being optional when using data attributes in HTML, you could mistake the tag helper for HTML (more on this later).
Building your own tag helpers
It goes without saying that we're able to create our own tag helpers, and this is where they get extremely powerful. Let's start by creating a tag helper from start to finish. The follow example is a trivial example, but if you stick stick with me hopefully you'll see why I chose this example as we near the end. So let's begin by creating a tag helper that automatically adds a link-juice preserving rel="nofollow" attribute to links outbound links:
public class NoFollowTagHelper : TagHelper
// Public properties becomes available on our custom tag as an attribute.
public string Href { get; set; }
public override void Process(TagHelperContext context, TagHelperOutput output)
output.TagName = "a"; // Specify our tag output name
output.TagMode = TagMode.StartTagAndEndTag; // The type of tag we wish to create
output.Attributes["href"] = Href;
if (!output.Attributes["href"].Value.ToString().Contains("josephwoodward.co.uk"))
output.Attributes["rel"] = "nofollow";
base.Process(context, output);
Before continuing, it's worth noting that our derived class (NoFollowTagHelper) is what will become our custom tag helper name; Razor will add hyphens between the uppercase character and then lowercase the string. It will also remove the word TagHelper from the class name if it exists.
Before we can use our tag helper we need to tell Razor where to find it.
Loading our tag helper
To load our tag helper we need to add it to our `_ViewImports.cshtml` file. The _ViewImport's sole purpose is to reference our assemblies relating to the views to save us littering our views with references to assemblies. Using the _ViewImport we can do this in one place, much like we used to specify custom HTLM Helpers in the Web.config in previous versions of ASP.NET MVC.
// _ViewImports.cshtml
@using TagHelperDemo
@using TagHelperDemo.Models
@using TagHelperDemo.ViewModels.Account
@using TagHelperDemo.ViewModels.Manage
@using Microsoft.AspNet.Identity
@addTagHelper "*, Microsoft.AspNet.Mvc.TagHelpers"
@addTagHelper "*, TagHelperDemo" // Reference our assembly containing our tag helper here.
The asterisk will load all tag helpers within the TagHelperDemo assembly. If you wish to only load a single tag helper you can specify it like so:
// _ViewImports.cshtml
@addTagHelper "ImageLoaderTagHelper, TagHelperDemo"
Using our tag helper
Now that we've created our tag helper and referenced it, any references to <no-follow> elements will be transformed into no follow anchor links if the href is going to an external domain:
// Our custom tag helper
<no-follow href="http://outboundlink.com">Thanks for visiting</no-follow>
<no-follow href="/about">About</no-follow>

Thanks for visiting
About
But wait! There's more!
Ok, so creating custom no-follow tags isn't ideal and is quite silly when we can just type normal HTML, so let's go one step further. With the new tag helper syntax you can actually transform normal HTML tags too! Let's demonstrate this awesomeness by modifiyng our nofollow tag helper:
[HtmlTargetElement("a", Attributes = "href")]
public class NoFollowTagHelper : TagHelper
public override void Process(TagHelperContext context, TagHelperOutput output)
var href = output.Attributes["href"];
if (!href.Value.ToString().Contains("josephwoodward.co.uk"))
output.Attributes["rel"] = "nofollow";
base.Process(context, output);
As you'll see, we've removed some redundant code and added the HtmlTargetElement attribute. This attribute is what allows us to target existing HTML elements and add additional functionality. Now, if we look at our Razor code ALL of our anchors have been processed by our NoFollowTagHelper class and only those with outbound links have been transformed:

Thanks for visiting
About

Thanks for visiting
About
We've retrospectively changed the output of our HTML without needing to go through our codebase! For those that have worked on large applications and needed to create some kind of consistency between views, you'll hopefully understand how powerful this can be and the potential use cases for it. In fact, this is exactly how ASP.NET uses the tilde (~/) to locate the path an img src path - see for yourself here.
Moving on
So far we've spent the duration of this blog post talking about how powerful ASP.NET Core MVC's Tag Helpers, but with all great powers comes great responsibility - so let's take a moment to look at the downsides of tag helpers and ways we can prevent potential pitfalls as we use them.
The Responsibility
They look just like HTML
When the ASP.NET team first revealed tag helpers to the world there were mixed reactions over the syntax. The powers of Tag Helpers were clear, but some people feel the blurring of lines between HTML and Razor breaks separation of concerns between HTML and Razor. Take the following comments taken from Scott Hanselman's ASP.NET 5 (vNext) Work in Progress - Exploring TagHelpers post demonstrate the feelings of some:
What are the design goals for this feature? I see less razor syntax, but just exchanged for more non-standard html-like markup. I'm still fond of the T4MVC style of referencing controller actions.
This seems very tough to get on-board with. My biggest concern is how do we easily discern between which more obscure attributes are "TagHelper" related vs which ones are part of the HTML spec? When my company hires new devs, I can't rely on the fact that they would realize that "action" is a "server-side" attribute, but then things like "media" and "type" are HTML ... not to mention how hard it would be to tell the difference if I'm trying to maintain code where folks have mixed server-side/html attributes.
This lack of distinction between HTML and Razor quickly becomes apparent when you open a view file in a text editor that doesn't support the syntax highlighting of Tag Helpers that Visual Studio does. Can you spot what's HTML and what's a tag helper the following screenshot?
The solution
Luckily there is a solution to help people discern between HTML and Razor, and that's to force prefixes using the @tagHelperPrefix declaration.
By adding the @tagHelperPrefix declaration to the top of your view file you're able to force prefixes on all of the tags within that current view:
// Index.cshtml
@tagHelperPrefix "helper:"
<helper:a asp-controller="MyController" asp-action="MyAction" class="my-css-classname" my-attr="my-attribute">Click me</helper:a>
With a tagHelperPrefix declaration specified in a page, any tag helper that isn't prefixed with the specified prefix will be completely ignored by the Razor engine (note: You also have to prefix the closing tag). If the tag is an enclosing tag that wraps some content, then the body of the tag helper will be emitted:
// Index.cshtml - specify helper prefix
@tagHelperPrefix "helper:"
// Haven't specified helper: prefix
<asp-controller="MyController" asp-action="MyAction" class="my-css-classname" my-attr="my-attribute">Click me

Click me
One problem that may arise from this solution is you may forget to add the prefix declaration to your view file. To combat this you can add the prefix declaration to the _ViewImport.cshtml file (which we talked about earlier). As all views automatically inherit from _ViewImport, our prefix rule will cascade down through the rest of our views. As you'd expect, this change will force all tag helpers to require your prefix - even the native .NET MVC tags including any anchors or image HTML tags that feature a tilde:
Unexpected HTML behaviour
Earlier in this article, the second version of NoFollowTagHelper demonstrated how we can harness the power of Tag Helpers to transform any HTML element. Whilst the ability to perform such transformations is a extremely powerful, we're effectively taking HTML, a simple markup language with very little native functionality, and giving it this new power.
Let me try and explain.
To demonstrate this with an example, what does the following HTML element do?

In any other context it would be a simple profile picture from the root of your application. Considering the lack of classes or Id attributes you'd be fairly confident there's no JavaScript targeting it too.
With Tag Helpers added to the equation this HTML isn't what you expect. When rendered it actually becomes the following:

Ultimately, the best way to avoid this unpredictable behaviour is to ensure you use prefixes, or at least be ensure your team are clear as to what tag helpers or are not active.
On closing
Hopefully this post has been valuable in highlighting the good, the bad and the potentially ugly consequences of Tag Helpers in your codebase. They're an extremely powerful addition to the .NET framework, but as with all things - there is potential to shoot yourself in the foot.
Capturing IIS / ASP.NET traffic in Fiddler
Posted on Monday, 25 Apr 2016
Recently, whilst debugging an issue I needed to capture the traffic being sent from my local application to an external RESTful web service. In this instance, I needed to see the contents of a JWT token being passed to the service to verify some of the data. Thankfully, Fiddler by Telerik is just the tool for the job.
What is fiddler?
Fiddler is a super powerful, free web debugging proxy tool created by the guys and girls at Telerik. Once launched, Fiddler will capture all incoming and outgoing traffic from your machine, allowing you to analyse traffic, manipulate HTTP (and HTTPS!) requests and perform a whole host of traffic based operations. It's a fantastic tool for debugging and if you don't have it I'd highly recommend you take a look at it. Did I say it's 100% free too?
Capturing ASP.NET / IIS Traffic
By default, Fiddler is configured to register itself as the system proxy for Microsoft Windows Internet Services (WinInet) - the HTTP layer used by IE (and other browsers), Microsoft Office, and many other products. Whilst this default configuration is suitable for the majority of your debugging, if you wish to capture traffic from IIS (which bypasses WinInet), we'll need to re-route our IIS traffic through Fiddler by modifying our application's Web.config.
Step 1: Update your Web.config
To do this, simply open your Web.config and add the following snippet of code after the <configSections> element.
<defaultProxy enabled="true">
<proxy proxyaddress="http://127.0.0.1:8888" bypassonlocal="False"/>
Step 2: Configure Fiddler to use the same port
Now that we've routed our IIS traffic through port 8888, we have to configure Fiddler to listen to the same port. To do this simple open Fiddler, go to Tools > Fiddler Options > Connections then change the port listed within the "Fiddler listens on port" setting to 8888.
Now if you fire up your application you'll start to see your requests stacking up in Fiddler ready for your inspection.
Happy debugging!
Publishing your first NuGet package in 5 easy steps
Posted on Friday, 15 Apr 2016
So you've just finished writing a small .NET library for a one-off project and you pause for a moment and think "I should stick this on NuGet - others may find this useful!". You know what NuGet is and how it works, but having never published a package before you're unsure what to do and are short on time. If this is the case then hopefully this post will help you out and show you just how painless creating your first NuGet package is.
Let's begin!
Step 1: Download the NuGet command line tool
First, you'll need to download the NuGet command line tool. You can do this by going here and downloading the latest version (beneath the Windows x86 Commandline heading).
Step 2: Add the NuGet executable to your PATH system variables
Now we've downloaded the NuGet executable we want to add it to our PATH system variables. At this point, you could simply reference the executable directly - but before long you'll be wanting to contribute more of your libraries and adding it to your PATH system variables will save you more work in the long run.
If you already know how to add PATH variables then jump to Step 3, if not then read on.
Adding the nuget command to your PATH system variables
First, move the NuGet.exe you downloaded to a suitable location (I store mine in C:/NuGet/). Now, right-click My Computer (This PC if you're on Windows 10). Click "Advanced System Settings" then click the "Environment Variables" button located within the Advanced tab. From here double-click the PATH variable in the top panel and create a new entry by adding the path to the directory that contains your NuGet.exe file (in this instance it's C:/NuGet/).
Now, if all's done right you should be able to open a Command Prompt window, type "nuget" and you'll be greeted with a list of NuGet commands.
Step 3: Create a Package.nuspec configuration file
In short, a .nuspec file is an XML-based configuration file that describes our NuGet package and its contents. For further reading on the role of the .nuspec file see the nuspec reference on nuget.org.
To create a .nuspec package manifest file, let's go to the root of our project we wish to publish (that's where I prefer to keep my .nuspec file as it can be added to source control) and open a Command Prompt window (Tip: Typing "cmd" in the folder path of your explorer window will automatically open a Command Prompt window pointing to the directory).
Now type "nuget spec" into your Command Prompt window. If all goes well you should be greeted with a message saying "Created 'Package.nuspec' successfully". If so, you should now see a Package.nuspec file your project folder.
Let's take a moment to look inside of our newly created Package.nuspec file. It should look a little like below:
<?xml version="1.0"?>
<description>Package description</description>
<releaseNotes>Summary of changes made in this release of the package.</releaseNotes>
<copyright>Copyright 2016</copyright>
<tags>Tag1 Tag2</tags>
<dependency id="SampleDependency" version="1.0" />
As you can see, all of the parameters are pretty self-explanatory (see the docs here if you have any uncertainties on what the configuration does). The only one you may have a question about is the dependencies node - this is simply a list of the dependencies and their version that your NuGet package may have (See here for more info).
Now we've generated our NuGet configuration file, let's take a moment to fill it in.
Once you're done, your manifest file should look a little like below. The next step is to reference the files to be packaged. In the following example, you'll see that I've referenced the Release .dll file (take a look at the documentation here for more file options). If you haven't noticed, I've also removed the <dependencies> node as my package doesn't have any additional dependencies.
<?xml version="1.0"?>
<package >
<authors>Joseph Woodward</authors>
<owners>Joseph Woodward</owners>
<description>Slugity is a simple, configuration based class library that's designed to create search engine friendly URL slugs</description>
<releaseNotes>Initial release of Slugity.</releaseNotes>
<copyright>Copyright 2016</copyright>
<tags>Slug, slug creator, slug generator, url, url creator</tags>
<file src="bin\Release\Slugity.dll" target="lib\NET40" />
Step 4: Creating your NuGet package
Once your Package.nuspec file has been filled in, let's create our NuGet package! To do this simply run the following command, replacing the path to the .csproj file with your own.
nuget pack Slugity/Slugity.csproj -Prop Configuration=Release -Verbosity detailed
If you have the time, take a moment to look over the various pack command options in the NuGet documentation.
Once the above command has been run, if all has gone well then you should see a YourPackageName.nupkg file appear in your project directory. This is our NuGet package that we can now submit to nuget.org!
Step 5: Submitting your NuGet package to nuget.org
We're almost there! Now all we need to do is head over to nuget.org and submit our package. If you're not already registered at nuget.org then you'll need to do so (see the "Register / Sign in" link at the top right of the homepage). Next, go to your Account page and click "Upload a package". Now all you need to do is upload your .nupkg package and verify the package details that nuget.org will use for your package listing!
Congratulations on submitting your first NuGet package!
I hope this guide has been helpful to you, and as always, if you have any questions then leave them in the comments!
Tips for learning on the job
Posted on Tuesday, 29 Mar 2016
Today, whilst out walking the dog I was listening to an episode of Developer Tea titled "Learning on the Job". As someone that's always looking for smarter ways of learning, this episode was of particular interest to me. In fact, it got me thinking - what tips would I recommend for learning on the job?
I find learning on the job interesting for a few reasons. First of all, you spend a good portion of time at your computer programming. This very fact means you have plenty of opportunities to improve your knowledge and understanding of the language or framework you're using. However, you also have to balance this opportunity with the fact that you're working and have things to do and deadlines to meet. These external pressures mean you have to be smart about how you learn.
One of the strengths of a good developer is their ability to learn on the fly, and we should always be looking for opportunities to learn.
With this in mind. This post is a collection what I've found to be effective ways of learning on the job, whilst not letting it get in the way of your work.
REPLs, Fiddlers and online editors are your friends
If I'm researching a problem or happen to come across some code that I'm struggling to understand, I'll often take a moment to launch the appropriate REPL or Fiddler and experiment with the output to make sure I fully understand what the code is doing. These can be an invaluable tool for testing that base library function you've not never used before, test the output of the algorithm you've found or learn what your transpiled TypeScript code will look like. In fact, some online tools such as .NET Fiddle also have the ability to decompile code all the way to the IL/MSIL level - enabling you to gain an even greater understanding of what your code is doing.
Here are a few of the online tools I would recommend:
- .NET Fiddle (suitable for C#, F# and even VB.NET!)
- TypeScript Playground
- JS Fiddle or Plunker
This aptly brings me onto my next tip.
Don't just copy and paste that code
Above I talked about REPLs and online Fiddlers. Use them! We've all copied and pasted some code on Stack Overflow to get something working. Take a moment to figure out exactly WHY the code is working and what your code is doing. Copying and pasting code that you don't understand is both dangerous and a wasted opportunity to learn something new. If you're too busy then bookmark it, or better yet - some of the editors listed above such as .NET Fiddle allow you to save snippets of code for later.
Write it down in a notepad
This tip I've found particularly effective and goes beyond learning whilst on the job, but I'll expound on this in a moment.
If you stumble across one of those bits of information that you think "Wow, I didn't know that. I should remember that!", take a moment and write it down on a notepad. The process of writing it down helps your new found knowledge to your long-term memory. Another tip for further improving your long-term memory is to revisit some of your notes a couple of hours, or days later. Repetition is another proven way to improve the retention of such information.
Having a notebook on you is also useful when reading books. If you happen to read a sentence of paragraph whilst reading a book, take a moment to write it down in your own words in your notebook. I guarantee you'll be able to recall the information later that day far clearer than you would have had you continued reading.
Share it with a co-worker or summarise it in a quick tweet
If you've just solved a problem or stumbled across a valuable piece of information then share it with your nearest co-worker. The very fact that you're talking about it or explaining the concept will help engrain it into your long-term memory. You also have the added benefit of sharing information knowledge with others.
If no-one's around then you could always talk it through with your rubber duck, or summarise your new knowledge in a quick tweet.
Stack Overflow
Stack Overflow is another great tool for learning on the job. If you're a registered user then you should take full advantage of the ability to favourite answers or questions. Doing so enables you to review them in more detail at a time more suitable.
Pocket and other alternatives
Bookmark sites like Pocket are another powerful tool when it comes to learning on the job and go a step beyond bookmarking.
Whilst struggling with that problem, if you happened to have come across an interesting article but didn't have the time to read it in its entirety then why not add it to your personal Pocket list and fill in the knowledge gap at a later date whilst you're waiting for the bus. Many of the apps like Pocket include the ability to automatically sync bookmarks with your smartphone for offline viewing making it perfect for commuting.
I hope people find these tips valuable. I'm always interested in hearing other recommendations for learning on the job so if there's anything I've not mentioned then please feel free to add it to the comments!
Easy slug generation with Slugity
Posted on Friday, 18 Mar 2016
This year, as outlined in my goals for 2016 post, I've been keen to turn random bits of code I've written across a variety of projects, into fully-fledged open-sourced libraries that can be downloaded via NuGet. My first library aims to tackle a minor problem any developer that works on public facing web-based applications faces - generating search engine friendly URL slugs.
Introducing Slugity - The highly configurable C# slug generator
Whilst creating Slugity, my main focus was configure-ability. People, myself included, have opinions on how a URL should be formatted. Some people like the camel-case URLs that frameworks such as ASP.NET MVC encourage, other dogmatically favour lowercase slugs. Some people still like to strip stop-words from their slugs in order to shorten the overall URL length whilst retaining keyword density within their slugs. Having jumped from pattern to pattern across a variety of projects myself, I was keen to develop Slugity to cater to these needs.
Having been working on Slugity for a number of days now, below are the configuration end-points included in its first release:
- Customisable slug text case (CamelCase, LowerCase, Ignore)
- String Separator
- Slug's maximum length
- Optional replacement characters
- Stop Words
Slugity setup and configuring
Given the fact that slugs aren't the most complicated strings to get right, setting up Slugity is a breeze. It comes with a default configuration that should be suitable for the majority of its users, myself includes - but it's simple enough to configure if the default settings don't meet your requirements.
Using default configuration options:
var slugity = new Slugity();
string slug = slugity.GenerateSlug("A customisable slug generation library");
//Output: a-customisable-slug-generation-library
Configuring Slugity:
If Slugity's default configuration doesn't meet your requirements then configuration is easy:
var configuration = new SlugityConfig
TextCase = TextCase.LowerCase,
StringSeparator = '_',
MaxLength = 60
configuration.ReplacementCharacters.Add("eat", "munch on");
var slugity = new Slugity(configuration);
string slug = slugity.GenerateSlug("I like to eat lettuce");
//Output: i_like_to_munch_on_lettuce
Moving forward I'd like to add the ability to replace the various formatting classes that are responsible for the various formatting and cleaning of the slug.
The code is currently up on GitHub and can be viewed here. I'm in the process of finishing off the last bits and pieces and then getting it added to NuGet, so stay tuned.
The library has recently been added to NuGet and can be downloaded here, or via the following NuGet command:
Install-Package Slugity
OzCode Review - The magical extension that takes the pain out of debugging
Posted on Thursday, 10 Mar 2016
TLDR; Yes, OzCode is easily worth the money. It doesn't take you long to realise the amount of time it saves you in debugging quickly pays for itself over time.
Debugging code can be both hard and time-consuming. Thankfully, the guys over at OzCode have been working hard to battle the debugging time sink-hole by developing OzCode, a magically intelligent debugging extension for Visual Studio.
Remembering back to when I first installed OzCode (when it was in its beta stage!), it took all of a few minutes to see that the OzCode team were onto a winner. I clearly remember entering into debug mode by pressing F5 and watching my Visual Studio code window light up with a host of new debugging tools. Tools that I've been crying out for in Visual Studio (or other editors for that matter!) for a long time. In fact, OzCode has changed the way I debug altogether.
What does OzCode cost, and is it worth it?
Before continuing, let's go over the price. OzCode is a paid for Visual Studio extension, coming in at an extremely reasonable $79 (£55) for a personal licence. Is it worth the money? Definitely.
I'm always happy to pay for good software and OzCode is no exception. Suffice it to say, it doesn't take long to realise the value it provides and how quickly it pays for itself in the time it saves you. Don't believe me? Go try the free 30-day trial and see for yourself. I purchased it as soon as it was out of public beta as it was clear it was worth the money.
It's also worth mentioning that OzCode do provide open-source licences and to Microsoft MVPs.
So without further ado, let's take a deeper look at OzCode and some of the features that make it one of the first extensions I install when setting up a new development machine, and why I think you'll love it.
Magic Glance
OzCode's magic glance feature is by far the biggest change to how you'll debug your code, and probably the first thing you'll notice when entering into debug mode. Normally, when you're trying to find out the value of a variable or property within Visual Studio you need to hover over the variable(s) you'd like to inspect. This is less than perfect as the more variables you have to inspect then the more time it'll take you hovering over them to keep track of what's changing. This is what OzCode's Magic Glance feature steps in.
With OzCode installed and Magic Glance at your disposal, you're treated to a helpful display of variable/parameter values without the requirement to hover over them. This also helps you build a better mental model and holistic view of the data you're debugging.
Collections (or any derivative of an array) receive an even larger dosage of OzCode love with the Reveal feature. If you've ever had to view specific properties within a collection then you'll know it's not the most pleasant experience.
OzCode simplifies the process of reviewing data in a collection by providing you with the ability to mark properties within a collection as favourites (via a toggleable star icon) which make them instantly visible above the variable.
Linked closely to the aforementioned Reveal function, Search adds the additional benefit of being able to search a collection for a particular value. To do this simply inspect the collection and enter the value you're searching for. OzCode will then filter the results that match your input. By default OzCode will perform a shallow search on your collection (I'd imagine this is for performance purposes) - however, if your object graph is deeper then you can easily drill down even deeper.
If you've ever had to split a complex expression up in order to see the values whilst debugging then OzCode's Investigate feature will be music to your ears. When reaching a complex (or simple) if statement, OzCode adds visual aids to the expressions to indicate whether they're true of false.
Quick Attach to a process
OzCode's Quick Attach to a process feature is easily one of my most used features - and I'll explain why in a second. Depending on your project type, you either have to enter debugging mode by pressing F5, or by manually attaching your build to a process. With OzCode, they've greatly simplified this process, and as a keyboard shortcut junkie - they've also provided shortcuts to make it even faster.
Using shortcuts to attach to a process via quickly became my de facto way of entering debugging mode, and it saves me a tonne of time. Friends and colleagues are often impressed at how quickly I'm able to enter debugging mode, to which I explain that it's all thanks OzCode. Debugging is now a single keypress away and I love it! (as opposed to multiple clicks, or waiting for Visual Studio to launch my application in a new browser window)
Loads more features
These are just a few of my favourite features that easily make OzCode worth the money.
If you want to see a full list of features then I'd recommend taking a look over OzCode's features page.
Features include:
- Predict the Future
- Live Coding
- Conditional Breakpoints
- When Set... Break
- Exceptions Trails
- Predicting Exceptions
- Trace
- Foresee
- Compare
- Custom Expressions
- Quick Actions
- Show All Instances
Future of OzCode
The future of OzCode is looking bright. With code analysis tools now being able to leverage Roslyn platform I can't wait to see what wizardry the OzCode guys come up with next. For a sneak peek at some of the great features on the horizon I would definitely recommend this recent OzCode webinar. If you've only got a few minutes then I would highly recommend you take that time to check out the 28-minute mark at the LINQ visualisation.
I am in no way associated to OzCode. I'm just an extremely happy user of a great Visual Studio extension that I purchased when it was first released and still use to this day.
Any questions about this review or OzCode itself then feel free to ask!


text:
Call. Click. Connect.
Chat with a triage consultant nowLive Chat
Online Counseling and Coaching
Register for online non-medical counseling and health and wellness coaching.
Don't have a Military OneSource account yet? Check eligibility, and register now.
Confidential services, including non-medical counseling and specialty consultations, are available through Military OneSource. Eligible individuals may receive confidential services at no cost. Check eligibility. International calling options.
Other Resources
There's more to a military family than moving and deployments — take us along through each phase of your military life. And don't worry; we can help with the big stuff, too.
Keeping Your Kids Safe and Sound
Money matters can be tricky. We can help you make informed decisions on navigating legal and financial questions or point you to the resources that can help.
The New Blended Retirement System
We've got your back. Protect yourself, and make health a priority with our support.
Motivate Each Other
Attention all members of a military family: Take a peek at our cheat sheet for all things career and education-related.
Maximize Summer Reading
Let us help you make the most of your new assignment from planning each step of your move to confirming that your new commisary does — in fact — stock your favorite kind of cereal. What would a new place be without a little adventure.
Vacation in Style
The one constant of military life is that it changes — quickly. Be ready for the next chapter.
Add to Your Predeployment Checklist
A personally procured move, or PPM, may be right for you if you are interested in making a little extra money and don't mind the extra work. Previously known as a do-it-yourself, or DITY move, a PPM is voluntary and allows you to move yourself and, hopefully, pocket the extra cash. The program is open to active-duty and retiring service members, but you must have prior approval from your service's transportation office.
There are several good reasons to consider a PPM. In general, if your shipment is a manageable size, you might want to think about packing and moving yourself. You can find more details and information on a PPM by visiting Move.mil. Following are the reasons service members consider a PPM:
A PPM is not for everyone. More work, planning and responsibility are involved. With that in mind, there are several things you'll want to consider as you decide whether or not to do a PPM, including the following:
Payments more than your actual moving costs may be taxable. Read IRS Publication 521 for more information.
Find programs and services at your local installation.
Service members, family members, surviving family members, service providers and leaders rely on Military OneSource for policy, procedures, timely articles, cutting-edge social media tools and support. All in one place, empowering our military community.
Release 2016.06.20.1.18.104.22.168.9
You are about to leave the publicMilitary OneSource website. Thank you for visiting!

subset: commoncrawl


text:
Presidential Campaign Contributions
Find out which candidates your neighbors have supported financially
See which residents in your community are donating to the presidential candidates by searching the Journal Sentinel's database of more than 3,000 contributions given by suburban donors to the five major presidential candidates from Jan. 1, 2007, to June 30, 2008.
The maximum a donor can give in the primary is $2,300, though sometimes donors will give $4,600 - with the other half going to the candidate for the general election. Negative amounts denote a redesignation of a contribution to the general election or a reattribution to a donor's spouse.
Source: Federal Election Commission
More from News and Features
- Video: Summer fun in suburban Milwaukee in 2016
- Video: Elmbrook Education Foundation awards first student grant
- BEAST Robotics advances to World competition
- Sunset's 'Christmas Carol' features Dickens himself
- REVIEW: Sunset Playhouse's 'Addams Family' is creepy, lovable
- Video: Strumming along at the Milwaukee Ukulele Festival
- Milwaukee suburbs trick-or-treat times 2015
- Business Spotlight: Elm Grove wood studio lets the creative juices flow
- Elm Grove library surveying residents on future
- Brookfield and Elm Grove Mystery Photo Contest: June18


text:
1200 Reviews
$1000 Protection*
Perfect transaction A+++. Easy web site to use, part was in stock, super fast shipping, very fairly priced. Highest recommendation; excellent vendor
Condiment front panel 345
Fiesta: Advantis XA34552 EZA34535 B301 EZA34535 B334 EZA34545 B410 EZA34545-B410 EZT34535 B401 EZT34545 B304 EZT34545 B307 EZT34545 B338 EZT34545 B482 XA34540
Fiesta Continued: XA34552 XA34555 Advantis XA34555 Advantis NG
This part may fit other models. Please contact us if you require additional assistance.
Our warehouse is stocked full of parts for all kinds of appliances.
Questions? Just ask - No call centers!
We are a USA business based in Denver, Colorado and we stand fully behind our products and service


text: To nobody's surprise, Sundance just won the best steakhouse in the Palo Alto Weekly's annual review. You can always depend on Sundance for delicious beef, from its namesake prime rib to its delectable filet mignon. This is truly a family-driven place, including the kitchen and floor staff who have been with the restaurant for decades. The antithesis of a chain... More


text:
Obama's Secretary of State John Kerry Says … Funds From Iran Sanctions Relief Could End Up In Terrorists' Hands
Barack Obama White House and Secretary of State John Kerry both admit that some of the $100′s of billions of unfrozen Iranian assets could find its way to support terrorism. In other words, Barack Obama and John Kerry just negotiated a deal to fund terrorism against the United States. ARE YOU KIDDING ME? These same people will provide you with the twisted logic that the United States and its allies are now safer because of an Iranian nuclear deal, that most rational people know and understand that Iran will never keep its word, and having paid Iran billions, knowing that some of it will go to support and sponsor terrorism.
These people should be jailed for treason. They actually just admitted that they have funded terrorism. So if an individual person does it or is accused of it, they are arrested, thrown in jail, tried, founds guilty and imprisoned. But if Obama does it, he is hailed as a hero. Who is buying this BS?
"I'm not going to sit here and tell you that every component of that could be prevented, but I can tell you this, right now, we are not seeing the early delivery of funds going to that kind of endeavor at this point in time. I'm sure at some point some of it will, but that has never made the difference of what is happening there."
"The only observation we've made on how they would spend the money is the observation from the secretary of state that it certainly seems possible, if not likely, that they will use some of those funds to support acts of terrorisms," White House press secretary Josh Earnest added later in the day. "That possibility certainly exists."
WSJ: American Tax Dollars for the Mullahs.
What a sick, twisted America we live in under the Obama regime. It took Barack Obama and his band of woefully ignorant and all too willing cronies to pay off Iran and the mullahs; however, the American hostages held in Iran got butkis as the State Department told us Wednesday the settlement isn't connected to the claims of terrorism victims.
Ali Khamenei congratulated Iran's diplomats on Tuesday for making the "front of arrogance and bullying"—that would be the U.S.—retreat. Iran's Supreme Leader has good reason to be happy. Having preserved the core of his nuclear capabilities, his regime is now on the receiving end of a financial windfall.
Take the financial component of the nuclear accord that took formal effect on Saturday. In addition to lifting most sanctions and releasing more than $100 billion in frozen Iranian assets, the Obama Administration over the weekend agreed to pay the mullahs a separate $1.7 billion to settle an Iranian claim dating to the 1970s.
That amount includes a $400 million trust fund used by the Shah to purchase American arms before the 1979 Islamic Revolution, plus $1.3 billion in interest. You can argue whether the trust fund properly belongs to the regime that overthrew the Shah, but at least that $400 million was originally Iranian money.
The $1.3 billion interest payment will come from U.S. taxpayers, which U.S. Secretary of State John Kerry claims "was fixed at a reasonable rate of interest." Maybe so, but it happens that $1.7 billion is also the amount at issue in a case brought by American victims of Iranian terrorism against the Central Bank of Iran. The plaintiffs include victims and survivors of the 1983 Beirut barracks bombing and the 1996 Khobar Towers bombing, among other Iranian-directed atrocities.
Yet President Obama and Mr. Kerry didn't press for fair settlements for these victims as part of the nuclear deal and now seem to be pre-emptively reimbursing Tehran for its potential losses from the claims. The State Department told us Wednesday the settlement isn't connected to the claims of terrorism victims.
Posted January 22, 2016 by Scared Monkeys
America - United States, Barack Obama, Community Agitator, Divider in Chief, Epic Fail, Incompetence, Iran, Islamist, Jihad, Middle East, Misleader, Radical Islam, Terrorism, The Lying King, US National Security, War on Terror, WTF, You Tube - VIDEO | no comments
Donald Trump at The Stop Iran Deal Rally in Washington, DC – Promises Return of US Hostages (Video)
Businessman and current poll leader for the GOP presidential nominee Donald Trump joined top conservatives and Israel supporters at the "Stop the Iran Deal" rally on September 9, 2015 on the west lawn of the US Capitol. The ralley included Sarah Palin, Ted Cruz, Mark Levin, Glenn Beck, Dave Brat, Jenny Beth Martin, David Bossie, Steve King, Louie Gohmert, Mark Meadows, Brigitte Gabriel, Anne Bayefsky, Marsha Blackburn and many more.
Donald Trump said that he would bring our hostages home that are currently being held in Iran and also reminded the crown that just today, Iran's Supreme Leader stated that Israel will not be around in 25 years. Yet we have a president in Obama that is willing to make a deal with Iran and trust them with a nuclear deal. Trump said it perfectly, We are a country being lead by stupid people.
Below is the full speech from Donald Trump.
Posted September 10, 2015 by Scared Monkeys
Barack Obama, Donald Trump, Iran | 2 comments
Hillary Clinton Praises Barack Obama's US-Iran Nuclear Deal as Iranian Supreme Leader Ayatollah Seyed Ali Khamenei Says Israel Will Not Be Alive in 25 Years
Iranian Supreme Leader Ayatollah Seyed Ali Khamenei proclaims Israel will not exist in 25 years …
On the very day that Hillary Clinton made a public speech and embraced Barack Obama's Iranian nuclear deal, the Iranian Supreme Leader Ayatollah Seyed Ali Khamenei proclaimed that Israel will not be in existence in 25 years. Khamenei further went on to say, "God willing there will be nothing left of the Zionist regime in 25 years. Meanwhile, the heroic jihadi Islamic spirit will not leave the Zionists in peace for a second."
Well thanks to Barack Obama and the anti-Semite Democrats, the Ayatollah's wish just may become a reality. Honestly, who is the hell in their right mind would support a treaty that would allow Iran access to nukes and in some cases of this hideous agreement, actually have Iran self-inspect themselves. ARE YOU FRIGGING KIDDING ME!!! Sorry folks, but this is the last straw with this president and Democrats who put party ahead of country and the world. You have to be a sick and ignorant SOB to actually believe that Iran could be trusted to do anything that they saw. There is no trust and verify with the fanatical Islamic leaders of Iran, they should not even be dealt with to even verify anything with. As for the Democrat politicians who are Jews, like Debbie Wasserman-Schultz and her ilk, that actually support this terrible treaty, I guess you would have lead your own people into Hitler's gas chambers as well.
Supreme Leader of the Islamic Revolution Ayatollah Seyed Ali Khamenei described Israel as a "fake" regime, and said there won't be any Israel in 25 years from now.
"Some of the Zionists have said that given the results of the nuclear negotiations (between Tehran and the world powers), they have been relieved of concerns about Iran for 25 years, but we tell them that basically, you will not see the next 25 years and with God's grace, nothing under the name of the Zionist regime will exist in the region by then," Ayatollah Khamenei said, addressing a large number of Iranians in Tehran on Wednesday.
He added that the heroic spirit and morale of Muslim fighters will not let the Zionists feel comfort and tranquility in the next 25 years.
Elsewhere, Ayatollah Khamenei warned of the US endless enmity towards the Iranian nation, and said even after the nuclear agreement, whose fate is not yet clear in Iran and the US, the Americans have been hatching plots and approving a bill in the congress against Iran.
He described national might as the only way to end the US plots, and said a strong economy, growing scientific progress and maintaining and reinvigorating the revolutionary spirit and morale of the people, specially the youth, are among ways to boost national might and power.
Ayatollah Khamenei reiterated the need for vigilance against the US plots to influence Iran, and said Tehran had only entered negotiations with Washington just on the nuclear issue "and we will not negotiate with the US in other fields".
Yeah Hillary, wait until these saps see my Iranian nuclear deal after they foolishly elect me for a second term
This is a regime that wants to wipe Israel off the face of the Earth and the United States. And with Obama's Iran nuclear deal, this delusional, poor excuse for a president is about to unfreeze $100 billion back to an Islamist regime, a state sponsor of terrorism to do whatever they want with this money.
In essence, the second worst president in history, Jimmy Carter, created the Islamic terrorist state of Iran and now the worst president in American history, Barack Obama, is giving Iran the means to put forth their means of extermination. UNREAL.
Posted September 9, 2015 by Scared Monkeys
Ayatollah Khamenei, Barack Obama, Community Agitator, Epic Fail, Hillary Clinton, Iran, Islamist, Jihad, Main, Misleader, Radical Islam, State Sponsored Terrorism, Terrorism, War on Terror, WTF | 2 comments
How Presidential, Anyone Who Disagrees With Barack Obama is Called "Crazies" … Update: White House Walks back Obama's 'crazies' comment
The Divider in Chief is at it again calling referring to those who do not agree with his Iran nuclear deal as "crazies". How presidential. But what can we expect from the worst president in modern times. So I guess the Democrats like soon to be Senate minority leader Charles Schumer (D-NY) is one of those crazies? How sad that this is what it has come to with this poor excuse for a president. A note to Barack Obama, you know what crazy is … making a deal with a fanatical Islamist regime like that exists in Iran, giving away the kitchen sink in the process and providing no real way to monitor their nuclear capabilities and in some cases making secret provisions for Iran to monitor themselves. What is crazy is to actually trust Iran, a government hellbent on destroying Israel and the United States.
There are the people on his side on the Iran deal, President Barack Obama said Monday evening. Then there are "the crazies."
Back from a notably uneventful and restful two-week vacation in Martha's Vineyard, Obama was immediately on the road for a short trip here, first to speak at a green energy conference hosted by retiring Senate Minority Leader Harry Reid, then to raise money for his preferred successor, former Nevada Attorney General Catherine Cortez Masto.
White House walks back Obama's 'crazies' comment
The White House on Tuesday walked back on President Obama's comments during a Nevada fundraiser Monday night when he referred to some of his political opponents in Congress as "crazies."
In his comments at the fundraiser, president acknowledged that he was back from vacation feeling "refreshed, renewed, recharged" and "a little feisty."
On the feisty score, he didn't waste time saying he was ready for the fall's legislative battles, noting that he had ridden to the fundraiser with Senate Democratic leader Harry Reid. The two, he said, did some reminiscing and spent time "figuring out how we are going to deal with the crazies in terms of managing some problems."
Some reporters and critics immediately interpreted the "crazies" comment as referring to those opposing the Iran nuclear deal. The White House Tuesday denied that it was a reference to Iran deal opponents but admitted the president was "flip" with his language.
Posted August 26, 2015 by Scared Monkeys
Barack Obama, Divider in Chief, Epic Fail, Incompetence, Iran, Misleader, WTF, You Tube - VIDEO | 2 comments
Top Senate Democrat Chuck Schumer Opposes Obama Iran Nuclear Deal & Faces the Obama Wrath
So is Barack Obama and his minions going to compare Chucky Schumer to hardline Iranians?
The top U.S. Senate Democrat Chuck Schumer has come out and said that he opposes Barack Obama's Iran nuclear deal. The next in line to become the Democrat Senate Minority leader has gone against the Obama White House and actually done the right thing. Schumer has put America first and Obama second. Its is about time the Democrat party or at least a high ranking Democrat has done so. Also, Representative Eliot L. Engel of New York, the ranking Democrat on the House Foreign Affairs Committee, has also opposed the deal. on Friday, Congress, Rep. Brad Sherman (D-CA), said on Friday that he would follow suit and vote against Obama's naive nuke deal.
Chuck Schumer stated that he will not approve the Iran nuclear dead because "he believes that Iran will not change … ". There is ver little that I agree with Schumer; however, lets give credit where credit is due. However, if this is just a ploy by Schumer, knowing that there are enough liberal, ignorant law makers to approve Obama's terrible nuke deal for the US, Israel and its Middle East allies, then shame on Schumer.
Will Obama treat Democrats who dare oppose him like the GOP?
Senator Chuck Schumer, the most influential Jewish voice in Congress, said Thursday night that he would oppose President Obama's deal to limit Iran's nuclear program.
"Advocates on both sides have strong cases for their point of view that cannot simply be dismissed," Mr. Schumer, Democrat of New York, said in a lengthy statement. "This has made evaluating the agreement a difficult and deliberate endeavor, and after deep study, careful thought and considerable soul-searching, I have decided I must oppose the agreement and will vote yes on a motion of disapproval."
Mr. Schumer had spent the last several weeks carrying a dog-eared copy of the agreement in his briefcase and meeting with Mr. Obama and officials like Wendy R. Sherman, the deal's chief negotiator. With his decision, he paves the way for other Democrats on the fence to join Republicans in showing their disapproval.
Will Obama's attacks on Iran deal opponents hurt his cause?
Claiming September's vote on whether to support the deal carries similar weight to the 2002 decision to invade Iraq, Obama suggested the soundtrack to both historic moments was the "drumbeat of war."
And he charged that Republicans who have vowed to defeat the agreement were making "common cause" with hardliners in Iran.
Posted August 8, 2015 by Scared Monkeys
Barack Obama, Charles Schumer (D-NY), Democrats, Epic Fail, Incompetence, Iran, Misleader, Politics of Fear, Senate | one comment