Monday, February 29, 2016

How to create an iOS calendar event that repeats every weekday on your iPhone

It's not hard to create a calendar entry on your iPhone that repeats only on weekdays, but its not quite straight-forward either.
Step 1:  Create an event

Step 2: On the "Repeat" category above click on "Never" to change it.

Step 3: Change "Never" to "Every Week" above and it will pull you back to the previous page.

Step 4: On the "Repeat" category, select "Weekly"

Step 5: Now that it knows you want "Every Week", select Custom to modify it

Step 6: Then check all the work days and return by selecting "

Step 7:  Then to double-check, edit the event, and it should say "repeats weekdays", like below:

This is a little convoluted, but the easiest way I've found.  Let me know if there's a better way.

Friday, February 26, 2016

Impressions of the new .Net version 5 RC1, ASP.NET CORE 1.0

I saw my first demo of .Net 5, aka Core 1.0.  Shawn Wildermuth of presented to a full house at Microsoft on Feb 24 about the next generation of .Net, ASP.NET 5, aka Core 1.0, on his Hello World Tour.

Do not be fooled by the ".Net 5" name, it's not a gentle  upgrade from 4.5, it's a whole new enchilada.  ASP.NET 5 is a complete rewrite that is open-source and designed to be cross-platform. 

Kudos to Microsoft for making this breaking change.  The new trimmed down, modular framework is going to be much simpler, and ultimately easier to use, understand, and port.

 Here are my impressions:

1. I liked the way it seamlessly integrates state-of-the-art web technologies as first class citizens.  Gone are the Balmer  days of re-implementing some technology (I'm looking at you AJAX) just to brand it Microsoft.  NPM and Bower are expected to be used.

2. I liked having to specify exactly what you want.  Shawn gave a demo where you have to tell it that you want to deliver static pages, but only from the "wwwroot" directory by default.  This helps us to know exactly where those files live in the directory, but its also a good security feature to prevent other not-designed-for-public-release files from leaking to the web.

The current version of .Net will give you everything in a big pile, which is nice to get started, but makes things process slowly and masks from the developer how some things are working.

3.  The new configuration method is much simplified from of the current mess.  In my previous project we were always having to sync configuration variables from "web.config" files for web projects, with "app.config" for our Selenium test projects.

The new method also helps in testing since its trivial to mock the configurations.

4.  The IIS complexity is gone - good riddance.   You don't even have to have a "web.config" file now, unless you want to use IIS.  It always felt wrong to put app configuration values in the same file as IIS and building options.

 5.  The new CoreCLR will run on MacOS and Linux which is great.

6.  It's still a work in progress.  Not all the .Net goodness is available in CoreCLR, but hopefully it will come soon.

 A few pics from the evening:

Before the .NET presentation, Shawn interviewed Rod Paddock, @rodpaddock, about his start in the biz.

Thursday, February 11, 2016

Why Oil Will Never Recover and Russia is Doomed

In 2007 oil was going for $90 a barrel, the experts were predicting $150, and peak oil was all the rage.  I predicted that in 30 years the price of oil would still only be $30 a barrel. 
I forecast the rise of shale oil and the electric car would force oil prices lower.  Tight oil indeed has plummeted the price of oil and the electric car will finish off the sticky black stuff.

For the electric car to really go mainstream, batteries have to hold twice the current power, half their cost, and be able to recharge in 10 minutes.  With tanker trucks of cash pouring into top research labs around the world to find the better battery - and its only a matter of engineering now - the new battery tech should be here in the next few years (although ultimately super-capacitors will drive our cars, but for the near future it will be chemical batteries).

Once we get that half-the-cost, twice-the-range, fast-charging battery, the electric car market will slowly accelerate.  It won't take all the new cars to be electric, but just enough to start nudging the world consumption of oil on a long downward slope.   When producers realize that all that oil in the ground has a shelf life, they will race to the exits and try to get anything for their oil.  The price will be in free fall.

The falling price will effect countries differently.  Importing countries will do well.  Those countries reliant on oil, well, that's a different story. 

With it's aging population, poorly run economy, and dependency on oil, the current state of Russia will be doomed.  Hopefully out of the ashes of an oil dependent economy, the bear will spring resilient and remake itself, but I wouldn't lay odds on it.

Monday, February 08, 2016

Pictures from Austin .Net Users Group Feb 8, 2015 - Docker Swam by Dimitry Ushakov

Dimitry Ushakov spoke to 30 people about Docker Swam.
Microsoft will fully support Docker natively, but now you spawn a linux virtual machine.
Microsoft will support bash and other tools.

My jumbled, incoherent notes:
-docker pull nginx -- pull image from registry like
images can inherit from other images and be built from command files like "Dockerfile":
  FROM microsoft/apsnet/...
  RUN apt-get update
  RUN apt-get -qq update ** apt-get -install -qqy sqlite33 libsqlite3-dev
  ENTRY ...

docker-machine is deployment tool
docker-compose is a orchestrate
docker-swam is to cluster clusters together

strategies to distribute work to containers
- Spread (default)
- Binpack
- Random
filters: health,  port, dependency, affinty, constraint

DNU - .Net development utility - builds, packages and publishes DNX projects
DNVM - .Net version manager

Carina, rackspace docker manager, ", a hosted Docker Swarm environment and showcase some of the performance and high availability features that we are able to get from Docker."

docker exec -ti 19f bash
#apt-get install curl -y

haproxy to load balance