Small Steps on the .NET Core with Angular Front

I’ve found that by uninstalling node completely and then reinstalling with windows NVM things seem to be working on my main development machine here now. I’m also running both my command line and visual studio 2017 in admin mode. Not certain that is required, but it did seem to resolve an ‘EPERM’ issue with npm install.

Tonight I’ll try to move forward with some actual coding on top of the sample code from visual studio.

Continue reading Small Steps on the .NET Core with Angular Front

Frustrating day with .NET Core

A bit of a frustrating day today, finding everything that could possibly be mis-configured on my system here for building Angular/ASP.NET Core applications. Node wasn’t setup right, paths had spaces where tools didn’t like them. Network connections get flaky at inappropriate times.

Looking like I’m past that now. Feels a bit like a waste of a day, but hoping for smoother next steps.

 

Setting up MongoDB

Setup windows (chaos)

Found instructions on stack overflow here.

Created data folder and symlink to the mongodb bin folder for version 3.4.

Added the bin folder for mongodb to my system path.

Created a new config file initially containing:

systemLog:
 destination: file
 path: c:\data\log\mongod.log
storage:
 dbPath: c:\data\db\

Started the service and so far all looks ok.

Need to create an SSL cert and set up authentication soon. On my local network only, but there are anough machines here that I’d rather not get burned by a compromised raspberry pi eating my database.

Verified that mongo.exe does see the database.

Temporarily adding ‘bindIp’ instead to force only 127.0.0.1 to be accepted.

Created a local PEM key to use to secure the link. Probably need to delve deeper here…I have the feeling that before I’m done I’ll want to create a local CA and install its root certs into my local certificate stores as trusted.

Digression…local CA

Found a page that looks reasonable here.

Basics are in place. Still need to sign the secondary certs and test.

 

Thanksgiving…the technical side :)

Looking to get my Linux NUC fully configured before Monday. I’ve got samba, RDP and VNC installed but not set up. I need to get at least one remote desktop protocol working for me and SSH set up with keys deployed.

I’ve started playing with MongoDB in C#. Much more to do there…need to pick a machine to host the server, get the server configured with a password and then start experimenting. The book I have uses Ruby as the language to drive MongoDB from. I’m currently working in C# and so I expect to start there.

Pulling together things for our upcoming short vacation at Disney with our Daughter. Lots of CF cards to be archived and cleared before we leave. I continued to be surprised by the performance gap between CF and SD cards.

I have my new PFSense based router loaded with its OS but not configured. Not sure that is going to make it this weekend. Hoping to get it in place relatively soon though. The existing router doesn’t seem to deal with the streaming we’re doing all that well and I expect the performance of the Core-i5 base machine that’s running this one to be vastly better.

My Functional C# book is here finally (took weeks and I’m spoiled by Amazon prime’s two day delivery). Reading through it at the moment. There are some interesting techniques in there, but I’m still not sold on full functional as a model for building real systems. Once I finish reading though it I’ll reflect some more.

More Functional Programming and some MERN

Functional and Haskell

I’ve been reading through the Haskell book I bought (the C# functional programming book isn’t here yet). So far, Haskell functional programming still looks like a gimmick more than a set of useful tools. I’ll keep reading through to the end and likely play with the language a little before I’m done.

I’m looking forward to the C# functional programming book as I’m hoping it will provide a more practical view of what functional methods bring to the table. Working in a hybrid environment should allow the best of both worlds to shine and allow any awkward spots on one side of the other to be worked around.

MERN and Bootstrap and Things…

I’ve also been rummaging through a book on using node with react rather than angular 2/4. Seems like an interesting option as react sounds less proscriptive than angular. As with angular 2 the react tool still needs a CSS library and also similarly this book suggests bootstrap.

I need to sit down and code up a simple sample program that self-hosts a web server (probably OWIN based) and presents a web UI and perhaps a handful of RESTful web methods as a trial. Not sure whether I’ll go with react or angular 2 for this. Stay tuned…

Oh…also picked up ‘Learning Bootstrap 4, Second Edition‘ to read a bit more about bootstrap along the way. The Amazon web UI framework was bootstrap derived I believe so I expect this to  be somewhat familiar…

I am looking at self-hosting partly because node doesn’t play as nicely with windows as it does with linux and I’m mostly windows based. It is also rather nice to have a one-stop simple web UI hosting option that can get access to native code as needed. The NSSM package seems as if it provides a reasonable way to host something like node as a boot time startup service…I’ll probably play with that at some point.

Interesting…there is a package manager for windows called ‘Chocolatey‘ that seems to be an option for deploying NSSM… 

Continuing to read about functional programming

Functional programming techniques are becoming more mainstream (and more generally useful) and I’ve been doing some reading to come up to speed.

I’ve just ordered a book on Haskell. Haskell seems to be the functional programming equivalent to SmallTalk for object oriented design…a pure functional language.

 

I’ve also ordered a book on functional programming in C#. While C# isn’t a purely functional language, I am far more likely to build things in C#. I’m expecting the combination of these two books to give me a decent combination of theory and useful practice.

Javascript is really where I first began running into functional approaches. I’m still working on getting my javascript up to where I’d like it to be. The javascript world is currently pretty hard to keep up with as things continue changing at a frantic rate. I’m expecting to spend a weekend soon adding a self hosted web UI to one of my ongoing sandbox projects…probably something Angular 2 with a C# back end, but we’ll see…

Continue reading Continuing to read about functional programming

Finally got my resume up to date…

Last weekend I finally finished getting my resume updated. I hasn’t been a terribly high priority, but I try to keep it ready for use at need.

Finished updating it and the power and internet goes out 🙂 It is posted on the site (under resume) now. I’m not actively looking as I’m happy where I’m at, but its always nice to have things in order in case something should come up unexpectedly.

Hopefully the internet will be back up today or tomorrow. It is disturbingly hard doing code development (even for sandbox stuff) without google and stack overflow on tap.

Hmm…and Kestrel in .NET Core

Ok..and Kestrel seems to be the .NET Core alternative to the OWIN stuff under .NET classic.

Yet another option…in my case the OWIN side is likely more interesting as I’m almost certainly going to be doing things that need interop or similar windows-centric functionality. Interesting as a Linux facing option though. May also be lower overhead in cases where a particular micro-service doesn’t need access to native capabilities.

I am also expecting to need some sort of SSL certificate to enable TLS on these links (don’t need the full commercial cert probably as these are likely going to be expose by IP address and not on the open web). I need to understand what is needed to deploy TLS, ideally with cert verification on both ends using certs I’ve created myself and that don’t correspond to a particular URL.

In this case I’m looking to ensure no MITM attacks and to encrypt the traffic but not to ensure much more than that. I don’t want further authentication to leak and I want to protect the connection (for example for a web UI on a small ‘appliance’ that may at times be exposed to an open internet connection).

Mostly saving these to read/watch in more detail later. Options on top of options here…

Engineering execution and creativity mixed for the best results…