Angular, .NET Core, and More

I took a new job this past November and was excited at the opportunity to get back into enterprise development. Enterprise development is something that I have found really enjoyable, because I’ve gotten to work with many different technologies ranging from the .NET Stack to 3rd party tools to API’s to databases of different kinds. You’re also typically presented with interesting problems to solve for the business you work for, many of which cannot be solved simply by your employer buying a piece of software; that’s when they rely on the creative talents of people like me and my cohorts.

Immediately when I started, I was told that within the next two week’s I’d be sent to Angular (Angular 2, now Angular 4), training as we will be using Angular and .NET Core for all new application development. I’ve now had the pleasure of building a few .NET Core apps and my team and I are wrapping up our first major Angular project. I’m just overwhelmed by how successful the development life cycle has been and how great the applications have turned out. We’ve put a lot of hard work into all the things and I’ve gotten to have some real head-first Angular development exposure.

While this post isn’t super informative, I just wanted somewhere to write how thrilled I am at returning to “line of business” development and how I’ve been involved in some really engaging and challenging work.

If you’re reading this and are thinking, “Should I learn Angular 2/4/[insert current version here]? How about .NET Core?” My answer, absolutely YES!!!  What I love about .NET Core is that becauase I use MacOS as my home operating system, I can write all the C# and ASP.NET code I want with .NET CORE.*

* Mac & Linux Users: You do not have access to the Windows related libraries and some other .NET Framework features which aren’t/won’t be ported to .NET Core.

Links for you:

.NET Core

Angular

Visual Studio Code (IDE for Windows/MacOS/Linux)

Advertisements
Tagged , , , , , ,

Made Two Guys Laugh in the Bathroom

We were all washing our hands. Don’t get weird now! I was chitchatting with one of my coworkers who started the conversation by asking me if everything was all good. I told him it was all good except for my ear that’s bleeding, “from all that hard coding I was doing.” My ear was actually bleeding. I said it with a dry sarcastic tone and it made him (we’ll call him ‘Vinny’) crack up and this other guy (we’ll call other guy Julio) laugh; Julio was to Vinny’s right washing his hands. Then I said, “actually they’re bleeding because I’ve been listening to Metal music while I code.” Vinny says jokingly, “I guess it’s true then.” I said, “Yep, my grandmother was totally right.” Again this was all said with a dry and sarcastic tone,  and I didn’t make myself laugh.

Screen Shot 2017-03-22 at 8.10.03 PM

(Photo screenshot from music of Drowning Pool’s song Bodies)

Tagged ,

Public Speaking Wins

Last night I presented a 30 second pitch for my open source project with Code For Philly and I spoke confidently. I also spoke to someone at the end of the bar and made a social interaction with someone, which would have normally felt uncomfortable.

Next challenge: attend another social event and engage with just one new person.

Will post note soon.

Setting the values of 2 variables, from the previous variable value.

At Starbucks, reading If Hemingway Wrote JavaScript by Angus Croll and on page 30 I learned this cool thing.

var oldDog = "Sam", newDog = "Lucky", futureDog = "Sneezy"; 
// My dogs at one time or another or future.

console.log(oldDog);
console.log(newDog);

newDog = (oldDog = newDog, futureDog); 
// Set oldDog equal to newDog, then set newDog = futureDog.

console.log(oldDog);
console.log(newDog);

// self.mindBlown();
Tagged , ,

#AALLHack 2015 in Philadelphia

Yesterday, I partook in the AALL Hackathon which was hosted this year in Philadelphia. AALL is the American Association of Law Libraries and each year they hold a conference to bring together Law Librarians across the country. The purpose of yesterday’s hackathon was to develop a solution in 6 hours that could be used to make legal information more accessible.

We began work on a project to allow people to search for a term such as RFA (Religious Freedom Act) and then get statistics on how many local news outlets are covering the term, by US state and territory. I worked with a group of librarians from Chicago, Philadelphia, D.C., Virginia, and Florida (don’t remember which city the latter two were from). We would use a technical solution in Python’s Django Framework to pipe the results into a CSV file, and then allow the file to be downloaded and uploaded into Excel. From Excel, a heat map would generate showing where the coverage was most prevalent. The exclusion of national publications such as NY Times and Washington Post were to be excluded from the results.

It was only 3/4 of the way through, when we realized that we just recreated Google Trends. We had to bail on our idea and unfortunately duck out of the competition. It was fun process all together and I learned a lot about Librarian Information Science. In fact, for you coders reading this, Libraries in your area are most likely looking for a coder to help with implementing solutions to make information more accessible, so I highly recommend checking that out.

Check the Twitter hashtag #AALLHack to see more about the event.

Tagged , , , ,

Setting up MonoDevelop MVC Project to work with Neo4j

I have settled on learning Neo4j and how to use .NET to interact with it. When I opened MonoDevelop on my Ubuntu machine and setup an MVC project, there were a few adjustments I needed to make.

First you’ll notice that you can install package updates. Have a go at that by right clicking Packages folder and clicking Update.

Next, try running your app. You’ll see this error.

MonoDevelop-MVC-Setup2

You must go to the Views folder and access the Web.config file in there. Change the version of all MVC references to use the Version you see in your MVC Package, in your Packages folder. At the time of this writing it is 5.2.3.0.

Then run the app again and all is well.

Next install Neo4jClient as a Package from NuGet.

Change the HomeController Index method, as a test, to the following.

public class Person
{
   public string Name { get; set; }
}


public ActionResult Index()
{
     var mvcName = typeof(Controller).Assembly.GetName();
     var isMono = Type.GetType("Mono.Runtime") != null;

     ViewData["Version"] = mvcName.Version.Major + "." + mvcName.Version.Minor;
     ViewData["Runtime"] = isMono ? "Mono" : ".NET";

     //Test Neo4j

     var graph = new Neo4jClient.GraphClient(
                                 new Uri("http://neo4j:password@localhost:7474/db/data"));
     graph.Connect();

     var person = new Person();
     person.Name = "Brad";

     graph.Cypher
          .Create("(person:Person {newPerson})")
          .WithParam("newPerson", person)
          .ExecuteWithoutResults();

     return View();
}

Next run the app again. You’ll see this error.

MonoDevelop-MVC-Setup4

In root web config, set the compilation tag attribute of targetFramework to 4.5. Also add the following between the assemblies tag:

  <add assembly="System.Net.Http, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />

Run the app again. You’ll see this error.

MonoDevelop-MVC-Setup5

In the same file, add this under the runtime node, assembly binding child node:

    <dependentAssembly>
      <assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" />
      <bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
    </dependentAssembly>

Run one last time, and all should be working again.

Hooray!

Shouts to the answer on this Stackoverflow post… http://stackoverflow.com/questions/11941447/web-api-system-net-http-version-2-0-0-0-not-found

Tagged , , , , , , ,

Day 1 – Booting my app into Django Mode

The familiar voices of Carl and Richard of the .NET Rocks podcast appear in the background, as I plug my iPhone into the sound system. I pull my desk chair close to my desk, boot up Ubuntu, and begin to embark on the journey of creating my first Django web application from scratch. This idea has been brewing in my head for awhile but unlike a fine bottle of wine, the longer it lingers, the more the idea seemingly dissipates. Alas, I open the Terminal and Sublime Text 2, and I begin the basic setup.

I use Python 3 and Django 1.8, along with PostgreSQL 9.3.

cd my_code_directory
mkdir my_secret_project
cd my_secret_project
virtualenv venv
source venv/bin/activate
pip install Django==1.8
pip install psycopg2
django-admin startproject mysite .
django-admin startapp my_secret_app
psql -U brad -W
CREATE DATABASE my_secret_db WITH OWNER brad

To exit I press Ctrl-Z. At this point I must edit the DATABASES dictionary in the my_secret_project/mysite/settings.py file. From here I replace the dictionary with:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'my_secret_db',
        'USER': 'brad',
        'PASSWORD': 'im_not_writing_that_here',
        'HOST': 'localhost',
        'PORT': '',
    }
}
python manage.py makemigrations
python manage.py migrate
python manage.py createsuperuser

To create the super user I just keep the defaults and fill out a password. Lastly I give the site a quick test.

python manage.py runserver

I open Google Chrome and navigate to http://localhost:8000 which is the default port Django uses. I see the Django test page so I am in good shape to continue on. That’s Day 2’s job.

Tagged , , , , ,