Author Archives: getthinktank

Restaurants in Vina del Mar, Chile

I find myself conveying this information a lot so in line with my blogging philosophy I’m making a post to make my life easier…
I’ve been living in Vina del Mar, Chile for a little over a year (at time of writing) and want to note some of the restaurants I consider worth visiting.
These are in no particular order and they can vary quite a bit by their type but I’m going to try to be thorough in my notes on each.

Tonic Coffee

Links – Facebook (they are super on top of this so feel free to message them for a  question…)
This is one of my favorite places in town.  If it weren’t for that fact you’re speaking Spanish and the lack of flannel shirts you would not be able to distinguish this from one of the little bohemian coffee shops in Seattle or San Francisco.  They also care about their coffee every bit as much as those places.
I’m pretty into to coffee and I think they have the best moccachino in town and good espresso in general.  They get their beans from a local supplier that imports them raw and roasts them locally.  In my opinion all of their coffee is good but some people consider their pour overs to be on the weak side.
They are into really good ingredients on the food side also.  They apparently have good sandwiches but I’ve only ever had their brunch special.  It’s a Chilean twist on the idea and is a large dinner plate filled with a mezza of different items; some scrambled eggs, a lentil or bean soup, small piece of carrot frittata, piece of cake, fresh fruit, yogurt, homemade bread, etc.  It’s not expensive and includes a fresh juice and espresso with the price.  It is actually a little deceiving because the plate has a tasting look and doesn’t seem like a lot of food but I always leave satiated and I really like to eat…

La Ciboulette

This is a small intimate Belgique restaurant that I actually haven’t been to yet but is highly recommended by people I trust.  (I’ll update when I’ve visited it)

El Austriaco

Links – Site, TripAdvisor
This is an Austrian restaurant right in the middle of the tourist area.  The location is central and the decor is very nice.  It’s intimate without feeling cramped and upscale without feeling pretentious.  They have excellent soups and almost all of the entrees I’ve had have been very good.  There desserts are a little hit and miss so proceed with caution there.  It’s also a really cool place; they’ve been in Chile for like 30 years or something.  Started by an Austrian guy that came to Chile, got married, and opened a restaurant – he still cooks there too.  His wife is the hostess and they are quite approachable.  Note, he is definitely Austrian so super curt but not trying to be overtly rude…

The Beef Cut

Links – Site, TripAdvisor
This place doesn’t get much attention so I hope they stick around.  They are trying for a decor that’s actually not bad but I’m not sure will fly in Vina; polished concrete floors, modern decor, sparse artwork with pictures and quotes from people like Albert Einstein and Steve Jobs.  Their prices are notably above average so that turns some people off.  All that said, for me at least, they have the best steaks and burgers in town.  As in truly exceptional cuts of beef cooked very well, especially for Chile.  The staff is also pleasant as well as having good bread and sides.
Other burger joints worth mentioning are A Mano’s (TripAvisor) which has a great atmosphere and really cool topping combinations with good but not great burgers.  Roof Burger (TripAdvisor) which has better burgers than A Mano’s but slightly less on the atmosphere.
Both of these other places are cheaper than The Beef Cut and maybe have better atmosphere’s but are second place to The Beef Cut 100% of the time on quality of product in my opinion…

La Flor de Chile

Links – Site, TripAdvisor
This is like a Chilean pub or something, it’s a very Chilean place and the menu matches.  It’s quite lively and there is a standing bar section of people watching futbol (soccer) that looks very English/Irish which gives way to a back section that looks like someone converted a house into a restaurant (I’m pretty sure that’s actually what happened).  They have really good Chilean fare and it’s always fun when we go…

Don Vito e Zanoni

Links – Site, TripAdvisor
This is the best Italian restaurant I’ve found thus far.  It’s a little on the “fine dining” side but in Vina that really only means so much.  It’s tucked away a bit and you kind of have to be looking for it.  It’s a nice atmosphere and the service is good, they have especially good pasta and desserts!

La Dolce Vita

Links – Site, TripAdvisor
This is not the best Italian food in town, I’ll come right out and say that.  However, it’s one of my favorite restaurants.  The location is excellent, it’s got a back room that can catch a peek-a-view of the sunset, the decor has a nice warm feel.  The staff is amazing and has worked there for a quite a while.  They care about the food and the guests.  All in all the food is good not “great” but I always have a great time when I go and if you like Italian food it’s worth checking out!

Ristorante San Marco

Links – TripAdvisor
This place is right on San Martin and thus I avoided it because it looked like a posh tourist place not worth the stop.  I eventually went with some friends and was pleasantly surprised to be wrong, the food was really good.  It’s still have that feeling of a “nice tourist place” and thus not my favorite but it’s definitely worth a stop if you like Mediterranean food.

Le Bistrot Merci

This place is super unassuming and worth visiting.  The owner Philip is a great guy and they have a really good wine selection.  They have a new patio that overlooks the dirt parking lot where they hold the big Feria which has a real Chilean charm.  The cheese souffle is really good and the macaron’s are probably the best in town.

Ica Comida Peruana

Links – TripAdvisor
This is the best Peruvian place I’ve been to in Vina, everything I’ve had is good and they have some interesting fusion options.

El Imperio Peruano

Links – Site (caution annoying music plays), TripAdvisor
This was the first Peruvian restaurant in town and always has a special place.  I think Ica nudges it out a bit in terms of which is best but it’s a very good option.

Santabrasa

Links – Site, TripAdvisor
This place is a chain and while there are better steaks in Vina (like The Beef Cut) it’s pretty good food all around.  The mashed potatoes are particularly good and served in little copper crocks.  I went to the one in the casino so it all has a fantastic view of the ocean…

Tierra del Fuego

Links – Site, TripAdvisor
This place is one of the coolest locations in Vina.  It’s a sweet all glass exterior right on the ocean.  I’ve not actually been there but while many people complain that’s it’s touristy and overpriced several friends that trust the opinion of have said that the food and service are both good.

El Internado

Links – TripAdvisor
Haven’t tried yet but this is a Valparaiso restaurant that is recommended.

ABTAO

Links – Site, TripAdvisor
Haven’t tried yet but this is a Valparaiso restaurant that is recommended as one of the best.

Naos.Packaging.NuGet – Wrapper to easily download packages from NuGet

Summary

NuGet is just plain hard to work with.  I know you shouldn’t throw stones in glass houses and all that.  I’m sure many people think my contributions to Naos are terribly written code.  All that said, I personally think the entire NuGet stack is terribly written code.  Its got far too many layers, zero to terrible documentation, hard to read, hard to follow, counter-intuitive, etc.  Since I needed to be able to simply download packages for use in the Naos.Deployment work I created this library to hide and document all the scariness necessary to download packages from either a private repository or the public one using .NET.

Project

Naos is an opensource project dedicated to providing infrastructure tools for free to aid in small companies having solid platforms to launch on, learn more at http://naosproject.com.

Source

The entire project is open sourced under the MIT license and available at: https://github.com/NaosFramework/Naos.Packaging

Referencing

It’s best to reference the NuGet package: http://www.nuget.org/packages/Naos.Packaging.NuGet which will provide a more feature rich interaction with packages…

The specific NuGet operations using the prototcol are included in a single file which can be copied into your project without a Naos depedency in your project (will still REQUIRE package NuGet.PackageManagement):https://raw.githubusercontent.com/NaosProject/Naos.Packaging/master/Naos.Packaging.NuGet/NuGetPackageManager.cs.

Use

Below is an example of usage in C#.

// this is how you would use the full retriever
[Fact(Skip = "Meant for local debugging and to show usage.")]
public void DownloadPrivate()
{
        var repoConfig = new PackageRepositoryConfiguration
                            {
                                Source = "https://ci.appveyor.com/nuget/XXX",
                                ClearTextPassword = "ThisIsPassword",
                                Username = "ThisIsUser",
                                SourceName = "ThisIsGalleryName",
                                ProtocolVersion = 2,
                            };

    var defaultWorkingDirectory = @"D:\Temp\NewNuGet";
    var pm = new PackageRetriever(repoConfig, defaultWorkingDirectory);
    var bundleAllDependencies = false;
    var package = pm.GetPackage(new PackageDescription { Id = "ThisIsPackage" }, bundleAllDependencies);
    Assert.NotNull(package.PackageFileBytes);
}

[Fact(Skip = "Meant for local debugging and to show usage.")]
public void DownloadPublic()
{
    var defaultWorkingDirectory = @"D:\Temp\NewNuGet";
    var pm = new PackageRetriever(defaultWorkingDirectory);
    var bundleAllDependencies = false;
    var package = pm.GetPackage(new PackageDescription { Id = "Newtonsoft.Json" }, bundleAllDependencies);
    Assert.NotNull(package.PackageFileBytes);
}

// this is how you would use the NuGet only file
[Fact(Skip = "Meant for local debugging and to show usage.")]
public void DownloadPrivate()
{
    var defaultWorkingDirectory = @"D:\Temp\NewNuGet";
    var downloadDirectory = Path.Combine(defaultWorkingDirectory, Guid.NewGuid() + ".tmp");

    var pm = new NuGetPackageManager(2, "ThisIsGalleryName", "https://ci.appveyor.com/nuget/XXX", "ThisIsUser", "ThisIsPassword");

    var includeUnlisted = true;
    var includePreRelease = true;
    var latestVersionTask = pm.GetLatestVersionAsync("ThisIsPackageId", includeUnlisted, includePreRelease);
    latestVersionTask.Wait();
    var version = latestVersionTask.Result;

    var includeDependencies = true;

    pm.DownloadPackageToPathAsync(
        "ThisIsPackageid",
        version,
        downloadDirectory,
        includeDependencies,
        includeUnlisted,
        includePreRelease).Wait();
}

[Fact]
public void DownloadPublic()
{
    var defaultWorkingDirectory = @"D:\Temp\NewNuGet";
    var downloadDirectory = Path.Combine(defaultWorkingDirectory, Guid.NewGuid() + ".tmp");

    var pm = new NuGetPackageManager();

    var includeUnlisted = true;
    var includePreRelease = true;
    var latestVersionTask = pm.GetLatestVersionAsync("Newtonsoft.Json", includeUnlisted, includePreRelease);
    latestVersionTask.Wait();
    var version = latestVersionTask.Result;

    var includeDependencies = true;

    pm.DownloadPackageToPathAsync(
        "Newtonsoft.Json",
        version,
        downloadDirectory,
        includeDependencies,
        includeUnlisted,
        includePreRelease).Wait();
}

Every Day Carry

Overview

Lots of people make Every Day Carry (EDC for short) videos on YouTube, post pictures, write articles, etc.  For people that are into this it’s pretty straightforward that you never know what life throws at you and you’re often going to be caught with only your skills, intelligence, and whatever is in your pockets.  For those that aren’t into this, see previous sentence as to why we are…

“Be Prepared” is the Boy Scouts of America’s motto.  I was in the scouts for a long time and earned my Eagle Scout at the youngest possible age.  My wife might say I took this to heart too much and I’d probably say just enough.  That said, this is heavily slanted by that and other life experiences like travelling all over the world since I was 8.  Many people don’t have the skills for this stuff to be useful or by luck or otherwise haven’t been in a situation to realize the value of having it.  Others might constrain their life to not ever require self assistance.  I make the trade to have a lot of capabilities by combining knowledge and tools, at the cost of carrying a bit sometimes and a lot of work and practice with skill building.

“Two is one and one is none”… not sure who said it first but everyone from the Marine Corps to Forbes likes to quote it.  You’ll see this theme that I double down on all the essentials, I’m not going full NASA but it’s good to think about backups for things you consider important.  I also try to not just straight duplicate but incorporate some additional capabilities with the spare since I will likely have both…

Essentials

Bandana/Hankerchief

When I was young every grown man carried a hankerchief, not sure which generation stopped doing this but it’s a habit I picked back up.  I use it to wipe off my daughters hands/face/whatever when I don’t have wipes with me (kids are super messy…), I used to blow my nose (nothing more embarrassing than being in a meeting you can’t leave without a Kleenex and mucus running down your face.  The nice thing is it also has all these ancillary emergency features also like bandage, tourniquet, etc.

Light

It’s so crazy to me that most people don’t carry flashlights in our modern world.  I always hear that my phone has a flashlight but then I routinely hear that hey my phone battery is almost dead, the flashlight burns through a phone battery pretty quick…  Flashlight technology has progressed so much in just the last 5 years even that it’s basically free to always have a flashlight with you that lasts a very long time and has good beam quality.  I carry a Streamlight Nano on my keychain which is about 10 USD at time of writing, is super tiny, waterproof, lasts 8 hours on a single set of batteries that you can replace at basically in drug store (in the USA at least).  I also carry a Foursevens Preon 2 which uses two AAA batteries that are easily found anywhere in the world and on high mode kicks out a crazy 192 lumens from a little pen light.  I’ve used these two lights looking for things under car seats, find my keys I dropped under the car, finding the breaker box when the power kicks off, etc. flashlights are just plain useful…

Time

I started wearing a watch again after yet another trip to the beach where I found I no one had a watch (or a waterproof phone) with them and we actually had to be somewhere.  One of us had to keep going and checking a phone to see what time it was.  I found this really funny because it’s a problem I just didn’t have before smart phones because EVERYONE had a watch (probably not everyone but most people so if you forgot yours it wasn’t a big deal).  I’m currently sporting a Citizen Promaster Air which is sweet because it’s EcoDrive (i.e. never needs a new battery) and also has a slide rule in the bezel (which albeit isn’t necessary is really neat and does in fact do math on the off chance my phone was dead and I really needed to multiply something…).  I have found that since I started wearing a watch I look at my watch even when my phone is with me and easy to get to.  I’ll even set a timer on it instead of my phone just because its quicker and easier.  I’m not really sure when or why I stopped wearing a watch but I’m definitely glad I’m back on the wagon.

Writing

Having pen and paper is severely under-rated in my opinion.  I started carry this again the day I was at a work event and went to add someone to LinkedIn but then my phone battery died.  He didn’t have a business card and I actually never got his contact info.  Granted if it was a super important lead I would probably have found a way to get in touch but it made me realize how functional having a little bit of pen and paper with me was.  Now I always have a small pad (some paper removed for easier carry) of Rite n Rain paper which is nice because it won’t disintegrate when you get a drink knocked over on it.  I carry a cheap hotel pen that I don’t mind leaving on the table after I sign a check or forget to get back after lending to someone.  I also carry either a Mini Fisher Space Pen or a Fisher Bullet Space Pen that writes in basically any condition.

Fire

I don’t smoke anymore but when I did I found that having a lighter on me was actually really useful! Not just lighting a cigarette; but setting off fireworks, lighting candles, burning threads off a sweater, melting 550 ends, etc.  I personally carry a mini BIC lighter on me and a slim Zippo in my bag with some small bike intertube around the lid to keep the fuel from evaporating so quickly.  The thing about a Zippo is that if you do find yourself out of fuel you can basically fill it with anything layer around – rubbing alcohol, charcoal lighter fluid, gasoline/petrol/diesel/kerosine, lamp oil, whiseky/vodka.  I’ve also carried a mini-BIC lighter which is a little more dependable for basic lighting but less versatile in the long run so its a bit of a trade off.  I also carry a tiny little fero rod but I admit that’s probably a bit overkill when I’m not out in the woods camping.  I read an interview with a native american chief where he was asked what the greatest invention the white man brought and his answer was the wooden match, I sometimes wonder how it would explode his mind to see the excellent, cheap, widely available options we have for fire making today…and the fact that almost no one actually ever has one with them.

Knife and/or Multitool

I got my first knife from the souvenir shop at Mammoth Caves when I was 7, that’s a big deal for a Kentucky kid, it’s like you’re half way to manhood.  I promptly took it to show and tell at school, no knives weren’t allowed in school back then either; but people weren’t crazy and it was Kentucky so the teacher just let me show it and said she’d keep it in her desk and return it when I headed home (or maybe mom and dad had to come pick it up, I honestly don’t remember).  All in it really wasn’t a big deal and surprise no one got hurt, but then again it was Kentucky where, at least at the time, all kids knew what to and NOT to do with knives.  I’ve pretty much carried a knife with at least some frequency since then.  I’ve done a lot of camping in my life, camping you use a knife to prepare food, cut firewood, make tools (skewers, pot lifters, etc.) most people are pretty familiar with all those uses.  There are several other places I’ve found a lot of use carrying a knife. My Grandparents have a small farm in Kentucky so I spent a lot of time as a child out and about on a farm.  On a farm you will often find yourself opening a feed bag, cutting rope, etc. pretty far from a house or even a car that has a cutting tool so carrying a knife (better yet a multitool) is really convenient and saves a lot of back and fourth grabbing things, or trying to plan ahead on exactly what you need all the time.  My parents liked to move a lot so I spent a lot of time in my adolescence working on houses.   Working on houses I used a knife to strip wires, open paint cans, cut tape, cut caulk, open caulk, etc.   Knives can also be good for defense but this is always a last resort and should really be avoided at all costs.  Granted, right now, I don’t live in a dangerous place, I don’t spend a lot of time on at the farm, I’m not working on any houses, and I’m obviously not always camping – but all the years of carrying and using knives has turned a knife into an extra finger almost.  It’s weird not having it, if I’m around the house and don’t have it I find I still reach for it.  While not strictly necessary most the time, I could use keys to open a package, wander around finding  a scissors or a steak knife to cut some packaging.  I COULD start my fire place with a friction fire and hand make all my own shoes, I don’t because there are much easier ways…  That’s mostly the reason I always carry a knife is that it’s just useful and easier in my experience.  The multi tool just kicks that up a notch because it adds pliers, scissors, and screwdrivers to the mix.

Currently I carry a Victorinox Waiter for cutting food, opening wine, opening cans, as a backup knife and a Spyderco Tenacious Combo Edge as a beater for all the standard cutting tasks.  I also carry a Leatherman Syle PS on my keychain which provides small scissors and pliers and is also TSA allowed on planes…

When I’m camping I carry an ESEE-5 for cutting wood and such, ESEE Izula Stainless for camp tasks, cutting food or small carving.  And a Leatherman Surge for pliers, screwdrivers, and such but I’ll sometimes drop to my Leatherman Wave if I’m really worried about weight.  My wife will often carry her Leatherman Skeletool CX which is even lighter but not nearly as strong.

As with anything there are sets of trade offs.  It’s all about what you’re familiar and comfortable with and willing to carry around (mostly a size and weight concern).

Non-Essential but useful

Thumbdrive

This is honestly almost on the essential list nowadays.  I mostly use this to take documents or photos to be printed.  I also keep a ton of reference material on it and will sometimes use to randomly swap files with someone or move something to another computer (like a network driver when it can’t get on the internet).  I carry a Kingston SE-9 and it’s USB 3.0 cousin (I have two because they have two different file systems on them, if you’re not in computer work one is probably fine).

Sharpie

I had a spare pen slot and through an Industrial Sharpie in, it actually might get used more than the pen.  If I had to cut one I’d cut this and keep the pen but I do use it a lot…

Rope

I see a lot of guys wearing these paracord bracelets and it’s always the same story – how much is in that (I don’t know), every used one (no).  It’s also hard to get at, you’re not going to whip it out to make a quick leash for a neighborhood dog that got out (something that I seem to do pretty often).  I carry two pieces of 550 paracord, one wadded up in my back pocket (1-2 meters depending on the day) and a smaller piece (0.5 -1 meter) braided on my key ring.  I like hanks that I put there because I always use them, I think absolutely nothing of cutting a piece off to tie a lanyard on a knife or tie the bow on the Christmas tree (those are just the two things I did lately).  Eventually it gets short enough and I just get a new piece.  Since the barrier for entry is low (i.e. I’m not having to destroy a bracelet) it actually gets used and makes it all the more useful.  If you have a bracelet then at least you’re carrying rope which puts you ahead of almost everyone but for me personally I like loose rope.

Prying

I started carrying a small metal pry called the Pocket Wrench 2.0 bar that doubles as small wrench and a bit driver (I also carry a double end 3D phillips bit).  This is new so I’m not sure how often I’ll use it but it seems pretty cool.

Compass

I carry a small 14mm button compass, it may or may not be useful but when you get turned around in a foreign city with buildings too tall for GPS to work it helps.  Alternatively you can probably ask people where to go…

Spare Flashlight Batteries

I keep a couple spare AAA’s in an empty pen slot on my wallet which isn’t strictly necessary but I’ve got the space.

Carabiner

I keep my keys on a real climbing carabiner that I took off a Black Diamond Quickdraw, I like having a climbing one because it can hold an insane amount of weight and/or force if needed.  That said, I mostly just like have a carabiner because it’s really nice to be able to quickly hook things up, like my water bottle or my backpack on a rack, my wife’s keys onto mine (she has the other carabiner from the draw…).

Why do I blog?

blog

Why does anyone blog?

There are lots of reasons to that someone might blog and I don’t really think any or them are necessarily bad or good.  I do think if you’re personally not getting anything out of it then you’re probably not doing it well or are being dishonest with yourself about the self-interested gains…  To be clear I don’t personally think there is anything wrong with personal gain.

Branding/Advertising

A lot of people blog to get the word out there about themselves.  This is effective for a lot of people because it will get eyeballs on their pages.  If you’re an artist, sell personal products, or have an affiliate or advertising driven content site then it’s probably smart to do this to drive traffic.

Credibility Building

This is a lot like those plumbers that have a YouTube channel showing how to do basic repairs.  If you proclaim yourself to be good at something then it’s a way to showcase it on the internet in hopes that will drive some kind of revenue.  This is probably a good idea for classes of trade and some might argue that my OpenSource project Naos is the equivalent of this for me as a professional developer…

Pride/Fame

Some people like to just feel important because lots of people are reading their content.  This can be a huge self esteem boost, I definitely got that feeling with all of the traffic that I got on my standing desk article from HackerNews.  My friend once said that “pride is a funny thing, you need just enough to get you out of bed in the morning but no more”.  It’s good to feel important every now and then in life and also probably good to realize that if that’s all you have then life feels a little empty.

Therapy/Thought Processing

This would be some kind of exhibitionist journaling kind of thing.  Lots of people find that writing things down helps organize their thoughts, reinforce ideas, break down barriers in their thinking, etc.  Getting those thoughts out in the wild can’t hurt because it just adds more to the collective information of the internet even if we don’t know how to squelch out the noise correctly yet.

Back to the point, why do “I” blog…

Probably a little of all of the previous ones because I’m self actualized enough to not rule any out but not self actualized enough to really know very concretely.  That said, none of those were reason enough to get over the hurdle that; I really don’t like to write!  It’s tedious, feels like work, keeps me in front of a computer even more which is something I’m always trying to get out of.  It’s just not fun for me…

The thing that pushed me over the edge started around information sharing.  My father grew up in eastern Kentucky where there is little opportunity and a fair amount ignorance (both willful and otherwise).  However, he was smart enough, or maybe someone taught him, that what you don’t know CAN and usually does hurt you in life.  He dedicated his life to learning and passed that demon/angel down to his children.  The problem with learning so much about the world is that I started to feel bad for people who didn’t know what I did and spent/spend an inordinate amount of time explaining things to people (the irony is not lost on me that I feel bad for people that are probably happier than me since knowledge really is sorrow sometimes).  Specifically I would explain the same things over and over again, or over explain things to people who don’t care about them.  It really wasted a lot of my time but I didn’t really notice because I genuinely care so much about helping people get to information.

So in short I blog because it’s the easiest way to share notes with people.  I like the idea of free information out on the internet, I use other peoples info ALL the time and I think it’s good to give back to balance the equation a bit.  I like the idea of that it might contribute to my companies revenue.  I like the idea that it is consumed by many people and I might have a real positive impact on peoples lives.  It probably does help me organize my ideas and thoughts.  But none of that is enough, I LOVE that it’s easy to share with friends and people I meet the few things that I have (or at least think I have) figured out thus far.  May or may not be a good enough reason in other peoples opinions but it was the inflection point for me.

Would be curious to see peoples comments on reasons I’ve missed or why they blog.

Words that should exist in english…

Introduction

I routinely will verbify nouns or nounify verbs to create words that seem like they should exist.  The problem being that I think about the world more like an architect so everything should be structural in nature – american english is most definitely not this!  So I’m creating a list of words that I personally believe should exist to increase their presence on the internet until Google adds them to their dictionary.

Verbify

Definition: Convert a word in it’s present form into a verb.

Past Tense: verbification.

Example: When you verbify “concrete” (solid) you get “concretize” (to make solid).

Nounify

Definition: Convert a word in it’s present form into a noun.

Past Tense: nounification

Example: When you nounify “concretize” (to make solid) you get “concrete” (to be solid).

Concretize

Definition: To make concrete (the verbification of concrete).

Past Tense: concretized

Example: The design was concretized last month.

Pedanticness/Pedantcy

Definition: The amount of pedantry (how pedantic something is).

Example: The pedanticness/pedantcy of that comment was way over the top…

Assension

Definition: The act of assenting to a topic.

Example: We’re good with this plan, right? … Silence is assention, moving forward.

Read before you do Amazon Associates (affiliate link program)!

Summary

In short I got done wrong, in my opinion, by Amazon using their affiliate link program “Amazon Associates”.  This is partly my story of what happened and partly an explanation of how to prevent it yourself.  I do continue to use Amazon links in my blog and I fully believe that others should since it’s a great profit sharing tactic for advertising items you actually use and believe in.

Background – how it went right

As of this article I haven’t blogged much and I’m just getting everything on my new site up and going as well as work on my opensource project: http://www.naosproject.com/.  This means I don’t have a ton of posts up here but I’m adding as they come and time permits.  My first post was on standing desks here which was the same content that I routinely told people and the same pictures i routinely emailed people.  It’s something I really believe in and saved my from having to be on pain killers and/or have back surgery and/or give up computer work.   I wrote the post then posted it on HackerNews (this was my first blog post and my first HackerNews post).  I had over 500 simultaneous visitors and over 7000 unique page visits in the day (according to Google Analytics) and stayed at the #4 spot on the front page for about an hour.

HackerNewsNo4Clip2

This really exciting and I even made $20 USD from purchases through Amazon (mostly the Thera Cane which I still use and have hanging on my desk as I type this).  This was the greatest success story I could imagine and the fun of it all still fuels me typing posts.

Background – how it went wrong

I’m a big believer that information should be easy to get to, people that will work hard will make use of the information if available, so I want people to know the good because it’s there.  I also want people to know the bad because that’s there too.

Process in General

For anyone that’s dealt with this program it is really a pretty terrible sign up experience.  I messed up something in the application the first go around and got an email saying: “…Unfortunately, we arent able to review an application once its been rejected. If your website has been further developed and now contains appropriate content, youre welcome to submit another application by using the following URL:…”  There is no way to fix an error, but this was early and I simply did a new application correctly and updated all my links on the site to the new ID.

Termination of Account

After the success of my post I received another email that my account had been terminated due to lack of content.  This was a huge deflation, I was angry, confused, etc.  I called in and received nothing but a “you can reapply when you have more content” message from multiple phone calls.  After filling out two different surveys noting the terrible experience I was granting the concession that in sixty days they’ll send the balance that I was owed on an Amazon gift card.  Ultimately this was good enough for me to move on, more on that in conclusion.

How you can prevent it from happening to you

The Problem

The problem I found was that apparently your application isn’t really fully accepted until your first sale (regardless of any email confirmation you may receive).  At that moment someone in a call center will take a look and actually check some amount of guidelines (I was told that a blog needs at least five of six posts to be considered enough content).

The Solution

  • If you’re a blog have at least 5 or 6 posts before you sign up for an account
  • Sign up and add links
  • Get a friend to buy something from your blog to force the application review process
  • Sit back and watch Amazon share their profits

Conclusion

I’ve not met my quota so I’ve re-done all my links for a third time and if the money shows up then I’ll call this good enough and move on with my life.  Mainly I want people to be aware of this issue and know how to get around it without difficulty.

I’m always reminded of my friend that worked in payments at Amazon who told me about a ticket where a father got a gift card for the value of a car on AutoTrader that they were looking at.  What a cool way to give his sixteenth birthday present I thought.  Then he explained that Amazon lost the transaction and the guy not only ruined the birthday but lost the money as well (he probably got it back eventually but that guy didn’t work at payments by then so I don’t really know).

For the most part my packages show up in two days, I like the music selection, and they offer almost anything at a pretty good value.

Amazon is a lot like a river; if you are in the middle of it and going with the flow you can get somewhere quickly but when you end up on the edge of the river you will likely get beaten into rocks have your boat destroyed…would you call that “Earth’s most customercentric river”

Amazon gives customers what they want and they’re fantastic at it, but they don’t actually care about the customer…

Mobile kegerator – draft beer anywhere!

2015-08-13 09.43.35

History

This all started in college when a few engineers (myself, a Chem E, and a Mech E) decided to hack up a fridge and pour black and tans in our house.  It wasn’t a complicated setup but pushed all the edges of different taps (keg couplers), different gases (CO2 and N2), different faucets (standard and restrictive/stout).  Clearly we found out that pouring Guiness in your home is kind of a pain.  That said I was hooked and never went back.

This progressed into several kegerator competitions at work (all of which I or the team I was on won) and one for a charity auction.  This developed a bit of a name among people I knew for eccentric beer pouring options.  This led to my brother asked to pour Guiness at  his wedding, it was in a park and I had to fly to get there so my options were limited…

The Problem

Most kegerators include the refrigerator as a coupled component of the system.  Obviously you aren’t going to fly with a fridge but you don’t need to.  Most people don’t want to just have draft beer in their home or office where the fridge is important.  Most of the time it’s a wedding, a Halloween party, a release party, etc.  I do find the older I get it’s harder and harder to justify a whole keg of beer but there always seems to be a good excuse for one.

The Solution

Get back to the roots, in the early days of mobile kegerators we used recycling bins to be able to hold the ice/water and the keg, wheel it around, keep it discrete (we we’re professionals and this was for “lush” week at the office).  We added internal refrigeration just because we were sick of constantly running down for ice, this isn’t a problem for a one off party so ditch the fridge right out.

2015-08-13 09.50.42

All this picture needs is a keg in a bucket of ice…  Ultimately the only things you need something are the gas and regulator, the keg tap, the shank and faucet, and something to mount it on.  Let’s break it down:

Tank

Obviously I couldn’t fly with a tank full of allygal (N2/CO2 – 75/25 blend – used for Guiness) but that’s okay because this is easily rented full of gas from your local welding supply shop.

Regulator

I prefer one with a CGA-580 inlet (common on larger Nitrogen tanks) and use an adapter to CGA-320 (common on small tanks and almost all CO2 tanks).  If you never have need for the 580 then you can buy a CGA-320 regulator instead.  I personally think that Micromatic premium regulators are the best but there are several out there and I’m sure they all work well enough.  Make sure it’s a double gauge so you can see bottle pressure as well as line/keg pressure.

2015-08-13 09.50.48

Keg Tap/Coupler

Again I think Micromatic makes the best but just make sure you’re getting the right one for the beer you want to pour Guiness uses its own, Bass uses its own, most American beers use the American Sankey, there’s a Slider, a Euro Sankey, etc.  This isn’t fun when you have a keg and no coupler…

2015-08-13 09.50.55

Shank and Faucet

The shank is just the metal tube that you can bolt through something and connect a hose to one side and a faucet to the other.  There are several strange options out there but really there are two, the normal one and the stout/nitro beer one.  I prefer stainless because everything else seems to add a small aftertaste but the stainless is a little pricier and the other do work…

2015-08-13 09.51.04

NOTE: All the way open, all the way closed!! A half open faucet doesn’t have enough space for things to flow as designed and will burst the CO2 bubbles on the way out creating a ton of foam, this is the most common newbie mistake on pouring draft beer!

The Mount

Mine was made with scrap MDF and some left over spray paint on a balcony.  You can weld a trick metal one if you have the equipment or go down to your local maker spot and 3D print one (or upload to Amazon and have them mail it).2015-08-13 09.51.11You need something strong enough to handle the jerk open and closed of a proper pour and that’s about it…

The Tools

Regardless of how much I want it to be true this can’t be pre-assembled and there isn’t some magic pressure for the beer.  You will have to assemble this thing on site and tune it as well.  There are only a few tools necessary but it’s worth having them in your bag to make life easy.

2015-08-13 11.00.44

  • Screwdriver to connect hose clamps
  • Faucet wrench to attach the faucet to the shank
  • Wrench to connect hoses and regulator

Conclusion

Draft beer is a passion of mine and something I have a lot of fun with, if this is something you’re into then here’s the recipe, get out there and bring some life to your next party!

Notable Pictures of the Past

How it all started: Left to Right – IT Kegerator (most techincal one), Software Kegerator (winner of IT vs. Software Competition one), Charity Auction Kegerator (nicest one).

DSCN1141

 

How it ended: This was the culmination of kegerator building prowess funded by cash and creativity of a financial and intellectual powerhouse… – Yes that’s a touch screen with active level tracking – 5 kegs – 10 faucets – waterjet cut sign, ground effects – and it’s all on wheels!

MicrosoftAdvertisingKegerator

 

Where it is now: Since it’s not at Microsoft anymore it’s been scaled down a bit, but she’s still alive and kicking!

2014-09-05 13.24.46

 

 

 

How to start a business – easy steps to get off the ground quickly!

TrendLineUpBarGraph

Introduction

Many people have books/posts/etc. on this topic.  This is my $0.02 on things people often overlook or do incorrectly when trying to start a business.  That said, lets get going…

The Idea

First, you need to figure out the idea.  Are you creating a service or a product?  The idea can simply be great content with advertising.

Focus on the Business

Jump in to the business NOT what you do for a living – as a developer I want to jump into coding but really developers are problem solvers first and wizards that can talk to computers second…  Make sure you’re focus is on growing your business and not doing a hobby where no one tells you what to do.

Branding

Get a name

Don’t shirk this step as it’s an important step because branding matters whether we like it or not.  Think about the tone you’re conveying about your business.  This is your first impression with a prospective customer so make it count.

Get a logo

This is almost as important as the name.  This communicates tons of information about your company and the investment in it.  Mainly you want to look professional, anyone can spot a lame “I did this in MsPaint” logo.  There are many cheap ways to get a very professional logo online.  I recommend Suki at Adaptive Logo Design as he is very inexpensive ($60/logo at time of writing), easy to work with, and very creative.  He has a YouTube video here introducing himself.

Web Presence

Get a website

Don’t spend $3K on a site name for an unproven business, get a cheap enough one and remember that if you’re wildly successful you’ll just pay someone to go get the nice one and move everything over.

Get common, easy to use hosting

Don’t run it from your basement to save money.  Also don’t use some experimental or niche thing.  This is written on WordPress, and no I don’t like PHP either.  I chose it because it’s ubiquitous so solutions are easily found and user interface is pretty nice as it’s been refined several times.

Get Google Analytics

This is free and will let you see how your doing but also can be a great bargaining tool to show your traffic for businesses that might try to attract donations of products in exchange for reviews, etc.  Sometimes investors use this to assess value, it’s easy up front so you should just do it…

Get real email

If you email clients directly (which who doesn’t nowadays), don’t use your personal email and have it saved by everyone to bother you later.  Setup a real email address against your domain early because it will save you time later.  I use Google Apps for Business and pay for users.  Remember though that really only need to pay for your “real users”!  Things like “support@”, “sales@”, etc. can be done using Groups which are free for as many as you like and just put yourself as the single member of all of them.  This makes it easy to scale in the future if you hire people and need to delegate sections of the business, keeps you organized, and looks far more professional to the outside world.

Get a LinkedIn page

Create a LinkedIn Company page and fill out some information (and use your newly created logo so you can get that branding on your personal LinkedIn page).  Then list yourself as a founder/CEO/whatever on your LinkedIn page, this is easy and free advertising for your business and will possibly attract investors…

Get some social media

If you’re young and/or in a high touch market you should probably create a Facebook/G+/Twitter account(s) because people should find it really easy to trip over your business on the internet.  If you’re in a super high touch line of business then you should probably have a YouTube video introducing yourself because it will make people feel very uncomfortable outsourcing.  These things are free and can only help funnel business to you so there is really no excuse.

Get some advertising

Sure you “never” click on those ads at the side but many years in internet advertising taught me that millions of people do.  It can’t hurt to run a standard AdWords campaign and see if it helps, if it doesn’t then throw it away.  This is easy to figure out because you’re already using Google Analytics…  There are exceptions if you run some niche thing that the presence of any advertising out on the internet would actually alienate your potential customers but this rare, most of the time people are afraid it won’t help or just simply too cheap to invest in it.  People have to know about you and hitting all the angles is good, for example social media is just advertising that you’re out doing yourself.

Paper Presence

Get business cards

This is often overlooked in the world of the ubiquitous smart phone.  Smart phones are great and allow for quickly adding someone to LinkedIn and verifying that you’re getting the correct person with the sub-par search they offer.  Aside from being one more place to use your logo; business cards work when your battery is dead and when you’re without signal.  You don’t have to worry about bringing them in your pocket when you head to the beach and left your phone in the car.  It also helps avoid that awkward moment when you meet someone who hands you their card and you’re without one to hand back.  I use moo.com and love their product and the easy to use site but there are several out there and they are all probably fine…

Paperwork

Get the corporate side in order

Don’t start with some friends and assume that when there is a ton of money you’ll just figure out how to split it up correctly (this sadly ends many relationships in general…).  Go get a proper LLC (or S-corp) and become really good at setting them up and keeping organized.  I use a registered agent service (specifically BizFilings) but you can use yourself or someone you trust.  This will cost a little bit of money but if you don’t have a few hundred dollars to try to start a business then you’re not in a position to start a business and need to save up capital or seek an investor.  Make sure there is a contract with the founders that explicitly maps out how earnings from the company are to be shared and how decisions are made (especially tie breakers).  This is easily done, can be gotten online for free and will save a ton head and heart ache in the future.  If you know a lawyer locally they can usually draft this up for not a lot of money also.

Get you books in order

This is something that took me a long time to figure out…  I now keep everything separate and it’s much nicer.  If you’re spending money then get a business checking account and credit card.  This is easily done at your local bank and they will usually waive any fees if you’re already a personal account holder.  This will allow you to keep easy track of your expenses.  You can also plug this stuff into Wave, FreshBooks, Mint, etc. to get things ready for tax time.  I personally don’t care for Intuit so I use Wave because they are free and have been happy with them so far.

Get an accountant

Unless you really like to do taxes for some strange reason (in which case you should probably be an accountant) or have a close relative that is doing this for you then this is a no-brainer.  They will pay for themselves in savings of doing things incorrectly and will make it easy to start and end companies frequently which will promote failing fast and not waiting too long on the good ideas.

Get time tracking, expensing, and invoicing software

If you’re invoicing clients, don’t just keep invoices in Excel or hand write emails.  This will just create headaches for you later because; it’s difficult to keep track of, impossible to run analytics on, and just looks amateur.  Use some software that easily tracks hours against projects and makes nice invoices.  If you’re having to log expenses then find a good program for that too, this is best done by just having a business credit card but for some lines of business it’s unavoidable.  Whatever you use should be easy to interact with on your cell phone AND be backed up somewhere besides your cell phone.  You will inevitably need to update stuff on the go but also want to be safe if you fall in the fountain on the way home from a meeting.  I use Harvest which costs some money but has a nice clean interface and provides any feature I care about.  If you expense a LOT you may want to go ahead and get an Expensify account also but that’s only for certain lines of business in my opinion.

Final Thoughts

I’m not going to sugar coat this at all, this stuff takes a lot of time to get going, it’s not hard work but it is work (nothing is totally free in life).  The maintenance is actually pretty easy but getting going is hard so start early while you have a day job to afford you the time to do it.  I’ve heard the great analogy that it’s like there are dollar bills stuck to the ground everywhere BUT you gotta spend the time to go scrape them up…  It’s not that it’s easy, it’s just worth it in my opinion.

Don’t be afraid and be a pro at this stuff because the lower the viscosity for getting going correctly the more likely you’ll get out there and be successful!

Naos.FluentUri – Fluent interface for calling RESTful web services

Summary

Microsoft sort of recommends the HttpClient but I really just don’t like the interface on it.  I wanted something that sat on top of the .NET Uri object without having to new up anything else.  I also really like the fluent interface for work like this because its easy to see where the components came from rather than using format strings.  Naos.FluentUri was created to simply clean up the way I called RESTful services from .NET.

Project

Naos is an opensource project dedicated to providing infrastructure tools for free to aid in small companies having solid platforms to launch on, learn more at http://naosproject.com.

Source

The entire project is open sourced under the MIT license and available at: https://github.com/NaosFramework/Naos.FluentUri

Referencing

The entire implemenation is in a single file so it can be included without taking a dependency on the NuGet package if necessary preferred.

Use – Building up the URL

 

  • Adding segments to the URL
    • To get http://baseUrlOfService/subPath use new Uri("http://baseUrlOfService").AppendPathSegment("subPath");
    • Trailing slashes are handled… http://baseUrlOfService/subPath can also be done using new Uri("http://baseUrlOfService/").AppendPathSegment("subPath");
  • Adding query string parameters
    • To get http://url?myParam=aValue use new Uri(http://url).AppendQueryStringParam("myParam", "aValue");
    • Can also be done in batches by using .AppendQueryStringParams(/* IDictionary<string, string> */); or .AppendQueryStringParams(/* ICollection<KeyValuePair<string, string>> */);
    • Will work correctly out of order too… http://url/path?q=hello can be done using new Uri("http://url").AppendQueryStringParam("q", "hello").AppendPathSegment("path"); although this is not really recommended as it doesn’t read great…

Use – Calling the URL

 

 

  • Void Return vs. Typed Return
    • Void Return Usage:
      • new Uri("http://api/Objects/42/Setting").Put();
    • Typed Return Usage:
      • MyObject returnedData = net Uri("http://api/Objects/42").Get<MyObject>();
  • The four main verbs are currently supported as first class methods as well as a method to pass any verb as a string.
    • GET – new Uri("http://api/Objects/42").Get();
    • POST – new Uri("http://api/Objects/").Post();
    • PUT – new Uri("http://api/Objects/42/Setting").Put();
    • DELETE – new Uri("http://api/Objects/42").Delete();
    • “Custom Verb” – new Uri("http://api/Objects/42").CallWithVerb("Custom Verb");
  • There are additional decorators for the call for standard operations.
    • Add a body to the request:
      • new Uri("http://api/Objects/").WithBody(new MyObject()).Post();
    • Add a cookie to the request:
      • // Cookie can also be of type HttpCookie...
      • var cookie = new Cookie(".ASPXAUTH", "[AuthCookieValue]") { Expires = DateTime.Now.AddDays(30) };
      • var obj = new Uri("http://api/Objects/42").WithCookie(cookie).Get<MyObject>();
    • Add headers to the request:
      • // Headers can also be of type WebHeaderCollection or NameValueCollection..
      • var headers = new[] { new KeyValuePair<string, string>("Auth-Token", "[AuthTokenValue]") };
      • var obj = new Uri("http://api/Objects/42").WithHeaders(headers).Get<MyObject>();
    • Update the timeout of the request:
      • var obj = new Uri("http://api/Objects/42").WithTimeout(TimeSpan.FromHours(1)).Get<MyObject>();
    • Save response headers using a lambda:
      • KeyValuePair<string, string>[] responseHeadersFromCall;
      • new Uri("http://api/Auth/Login").WithResponseHeaderSaveAction(responseHeaders => responseHeadersFromCall = responseHeaders).Post();

Use – Combined

C# Example of making and authentication call.

var loginResponse = new Uri("http://auth.services.com")
                                     .AppendPathSegment("login")
                                     .WithBody(loginRequest)
                                     .Post();

 

C# Example of updating a users’ zip code.

new Uri("http://user.services.com")
            .AppendPathSegment("user")
            .AppendPathSegment(user.Id)
            .AppendPathSegment("zipCode")
            .AppendPathSegment(user.ZipCode)
            .WithCookie(authCookieToAllowThis)
            .Put();

 

Naos.WinRM – Windows Remote Management and file sending via .NET

Summary

This is a standard problem space that Microsoft, for whatever reason, has chosen not to solve.  The two problems are 1) you can’t run remote commands on a windows computer from .NET code 2) you can’t send or receive a file via the WinRM Protocol.  I wrote Naos.WinRM to solve both of these.

Project

Naos is an opensource project dedicated to providing infrastructure tools for free to aid in small companies having solid platforms to launch on, learn more at http://naosproject.com.

Source

The entire project is open sourced under the MIT license and available at: https://github.com/NaosFramework/Naos.WinRM

Referencing

The entire implemenation is in a single file so it can be included without taking a dependency on the NuGet package if that is necessary or preferred.

Use

Below is an example of usage in C#.

// this is the entrypoint to interact with the system (interfaced for testing).
var machineManager = new MachineManager(
    "10.0.0.1",
    "Administrator",
    MachineManager.ConvertStringToSecureString("xxx"),
    true);

// will perform a user initiated reboot.
machineManager.Reboot();

// can run random script blocks WITH parameters.
var fileObjects = machineManager.RunScript("{ param($path) ls $path }", new[] { @"C:\PathToList" });

// can transfer files to AND from the remote server (over WinRM's protocol!).
var localFilePath = @"D:\Temp\BigFileLocal.nupkg";
var fileBytes = File.ReadAllBytes(localFilePath);
var remoteFilePath = @"D:\Temp\BigFileRemote.nupkg";

machineManager.SendFile(remoteFilePath, fileBytes);
var downloadedBytes = machineManager.RetrieveFile(remoteFilePath);