Polyglot Conf 2015 Highlights & High Level Notes

A few highlights from Polyglot Conf 2015

JavaScript State of the Union

I didn’t actually plan to record this session, but whipped out the iPhone 6 and figured I’d give it a go. I ended up just recording the entire session. This is basically a level set and review of where and what’s up with the voluminous amount of JavaScript Frameworks, but everybody delves into a number of other things too. The sound is a little rough, but crank it up and you’ll be able to hear everybody speaking just fine.

https://vimeo.com/128691785

Type Providers – Type Systems – Haskell and Conversations

I had more than one conversation, and listened in on more than a few. There was a LOT of hard core knowledge getting discussed and ideas for the future of languages. Everything from F# Type Providers (read more) to Haskell’s Type Safety and the lack there of. Also a few tidbits about building type providers. There was also some pretty big conversations around monolithic and micro-services.

https://twitter.com/senorprogrammer/status/606142130222825472

Check out Martin Fowler’s write up on Monolith First.

I also got to chat with Elana Popovici about her workshop on Science Driven Decision Making, which delved into decision making around statistical analysis and related topics. The other workshop that I wish I’d been able to attend, but at least got to catch up with @BrianDorsey and @tavisrudd for a short time and discussed their Docker & Kubernetes workshop.

To be prepared for next years conference, follow the @PolyglotConf twitter account and be sure to get your tickets early, it tends to sell out.

Vancouver Itself

Polyglot Conference is held yearly in beautiful Vancouver BC. I don’t say Vancouver BC is beautiful just because I’m writing filler junk, this is, without question one of the most beautiful cities on earth along with being one of the most organized and well designed cities on Earth. It is, simply, impressive on a number of fronts. So if you know anything about cities, this is definitely one to visit and admire.

Even if beautiful cities aren’t your thing, Vancouver has an ever increasing array of great breweries, places to explore (in the city and outside), and a host of other places to check out that just add to the atmosphere of the conference itself.

Other benefits of being in Vancouver early for Polyglot conf.

OpenStack Conference

This year, the OpenStack 2015 had a stop in Vancouver, and this year that was great for me too. Even though I didn’t actually go attend the conference I got to meet a number of people in town for that conference since I came into town a few days early for Polyglot Conference.

Now, the OpenStack space is all fine and dandy, but it’s also a political field of landmines. So I’m always glad to just reap the benefits and not go wandering around in that space. I’m perfectly happy sitting above the OpenStack layer and working on applications and systems level operations that are a bit higher in the stack. So, thanks to all those that fight their way through all of that for us DevOps Coders that tend to stay higher in the stack. Kudos to all of you fighting that battle to make OpenStack awesome!

For some background on the war stories, check out

Rabbit MQ

Speaking of happenstance and such I got to meet @michaelklishin thanks to @lenadroid. Thanks for that introduction!

Michael and I dove into topics ranging from Cloud Foundry to Rabbit MQ, both things you may know of as Pivotal efforts these days. It just so happened I’ve got a little Cloud Foundry history and am working on using or implementing both on a current contract job I’m doing.

It was good conversation and if you’re into similar things definitely give Michael a follow on twitter and github. He’s also pretty involved in a bunch of OSS work (including of course Rabbit MQ and related) so dive in and introduce yourself.

Summary: I’m already aiming to be there, looking forward to more solid discussion and prospectively putting together a workshop myself and prospectively getting a little hacking festival going on pre- or post- conference.

Want to Go To the Progressive .NET Conference in London?

…but you just need a ticket? Well here’s the deal. I’ve got a ticket, it fell from the tree of random tickets and I shall make it free to one who might want to go. Here’s the smallest catch that I have…

I want to have some extra demo code to show during my presentation on Visual Studio & .NET on OS–X, Linux, and Windows, and I’d love to talk somebody’s demo code up during my presentation. So throw together some demo code in C# or F# that shows something cool, mathematically crazy, or something else that’s interesting to you. This is up to you, so get some code committed to github and ping me with the repo. I’ll hook you up with a ticket to the Progressive .NET Conference in London the 1st, 2nd AND 3rd of July. The way to submit the code is super easy, this really shouldn’t take more than about 20-30 minutes for a ticket that is worth £395, which is over $600 bucks in US dollars – just sayin’, weak US dollar to the British pound and all!

Here’s the rules:

  1. You must submit the code to me before June 26th so I can get it thoroughly tested, because YES I will demo with it and give you a shout out.
  2. It must be in a simple C# or F# project that is either a console app or just a library that has tests for it that shows or describes what it is doing. (If you do this, I might even throw in another $100 bucks just because you wrote tests!)
  3. Put the code in a git repo, and push it up to github. I’ll check it out and declare a winner on the 27th of June.
  4. Ping me on twitter @Adron.

See you at Prog Net Conf 2015!

I’ll be Speaking @ Progressive .NET Tutorials in July

Why

Recently Microsoft has really gotten it’s act together, at least for those of us that really love some of the Microsoft tools, but really don’t want to touch Windows. I’m perfectly happy not dealing with Windows, so this has been great news for me.

With the recent Build event Microsoft released Visual Studio Code, which is a fully cross-system compatible IDE that is lean, fast, and allows for building software with multiple languages. Of course, it works with several .NET languages such as F# and C#, and even will let you dive heavily in JavaScript Node.js based applications. I wrote a quick “Notes From the Front: 5 Minutes With Visual Studio #Code” a short while ago. Along with that I wrote “OS-X and F# [Clone It, Build It, Install It, Hack It]” and “Why F#, and Why Not Windows” as a follow up to this new growing world of Microsoft options.

Now, don’t get me wrong, Windows definitely has some plusses. It just isn’t the system I’d prefer these days, as it doesn’t hack it in the startup lands of Silicon Valley, Portland, Seattle, Vancouver BC, or other such places. In these lands, people speak and work with the *nix landscape first, and everything else is secondary. But that doesn’t remove the desire I have for applications, devices, and other tooling that enables compatibility across all of these systems.

With those thoughts, I sat down and started putting together some presentations on what’s possible with this new freedom around Microsoft tooling. Already I’d worked pretty extensively with Node.js and the tooling Microsoft has added to Visual Studio, Azure, and all those related things. Now I’m looking forward to checking out some of the other capabilities around F#, and the respective API options and other new OSS technologies like Akka .NET, and even M-brace. So here’s the gist of my presentation so far, and as I give this talk I’ll provide other related information on the page I’ve setup for the talk here.

Presentation Title: Visual Studio & .NET on OS–X, Linux, and Windows

“From the inception of Mono on through to today’s Omnisharp and the introduction of Visual Studio Code at Build 2015. I’ll take a look at where cross-platform compatible solutions have been and where we are now with code samples along the way with some discussion on mobile topics too.”

I’ll be adding a bit more to this also, and will have the demos and related code samples located here.

Who, What, When, Where

So where am I giving this presentation? Check out Progressive .NET Tutorials 2015 for more information. The conference is in London and I’m officially on the program page (so obviously I’m going eh!). They haven’t released the exact time of each talk, but what you should do is just come attend the whole conference! I’ll be speaking on the 3rd. The location of the conference is in the grand city of London, located specifically at this fine establishment.

I’ll have more about the conference and other technical tidbits in the near future. Very soon I will also be announcing a chance to win a ticket to Prog .NET Tutorials, so stay tuned, subscribe, and follow me on Twitter @adron for more info.

Simplifying bash & repl Use With F#

That prompt… let’s get F# so that we can compile and run a file in about a zillionth of a second from the repl.

First I setup a bash script that would be used to compile and then run the file. I created the file and simply named it “fs”. Inside the file I wrote the following script.

echo "Compiling F#" + $1
fsharpc "$1.fs"
mono "$1.exe"
echo "Running Executable" + $1

I put that in my scripts folder that I have added to my path in my ~/.bash_profile (or bashrc depending on what you’re rolling with).

export PATH="$PATH:~/Codez/scripts"

So now I have the ability to type in the following command and filename and the compile and the executable will be run. It makes for much easier repl usage.

fs theFileNameGoesHere

Got any tips or tricks to running F# somewhere besides Windows? Let me know and I’ll be sure to give you a shout out on Twitter and whenever I’m giving a presentation on hacking F# without Windows.

Why F#, and Why Not Windows

I posted my previous entry and got a few retweets and favorites. One reply came back and made me think, “ah, it might not be obvious why I’d like to have F# on something besides Windows.” Well, here’s a list of why I want to use F# on non-Windows platforms.

  1. F# is a good language. I can’t say the best, since I honestly don’t have enough experience with it or other functional languages to really declare a victory in my opinion. However I’ll be doing some work with Scala, Haskell, and Erlang in the next couple of weeks for testing and use with some upcoming projects.
  2. There are only two technology stacks that will let one spin up an actual application on all of these technologies: OS-X Cocoa, Windows, Linux, Android, and iOS. These two tech stacks are .NET and than the Node.js JavaScript stack – with the latter being purely web based. (Yes, some could argue Adobe’s tools or the Java stack, but I’m not going down that route right now, as both are somewhat bloated and convoluted in ways we can go into at some other time)
  3. With F# I get a clean functional language that I can build native mobile, tablet, or OS apps and all the web services that I want with two advantages over Node.js. The first is the performance edge and can likely be tuned more anyway. Being paired with SignalR one can even get some wicked simple and fast real-time capabilities with minimal code. The second is it takes less F# code to do similar JavaScript things and compute, let me tell you about compute with F#. F# can run things that JavaScript just really can’t measure up to when it comes to compute. But aside from these things, they’re both excellent tools and I wanted to have F# in my tool belt.
  4. There’s always the backup plan of just converting to JavaScript too, if I needed that sort of thing. Check out FunScript.
  5. The community around F# is actually pretty cool, there are good, solid, intelligent, and friendly people in that community. Having a good community of people always makes getting into a new language or related tech much better then when the community consists of asshats or jack ass savants.

Other great things that add to the usefulness of F# include WebSharper, .NET MVC 5 and Web API, Nancy API, Suave.io, and there are others.

So those are the reasons I decided to move forward with F#: solid language, provides a solid technical stack with options, it’s functional and clean with extra compute power, and a kick ass community. Of course F# came from the land of Windows and Softies (that’s short for Microsofties, and I didn’t make that up). But F# was handed over to the open source community and currently moves forward autonomously of Microsoft. By proxy of this event, and other culminating events of late, F# can easily run on operating systems besides Windows. I’m not a fan of Windows, and here’s a few snarky (yet very real) reasons why I don’t even want to mess with Windows (except in the situation where I really do want to or need to use Visual Studio).

  1. Windows is still slow. I could go into the reasons, but it tends to build slow, behave slow, be prone to the attention of spammers and such, only in the last X years has it managed security in a half ass decent way, which also leads to slowness, and … oh you get the idea. It’s a slow OS.
  2. It’s flippin’ humongous. Now is this really a problem? Not really, but it’s annoying to force fit it in when I’m doing DevOps work or actually attempting to load Windows related images with it. The OS itself is still a nightmare of gigantic proportions compared to spooling up other systems. If one wants to fight with it, that’s great, I don’t really feel a keen desire to fight with it.
  3. Linux == Smaller footprint, more features, let’s not bring up security, is actually used on major systems, large scale systems and super-computers. Windows has less than 2% market share in that space. Even Microsoft is decreasing their reliance on Windows, offering oodles of Linux options.
  4. Windows doesn’t tend to get, run, or have the bleeding edge tech options built for it. Go look at the open source massive distributed systems applications and other excellent leading platforms and tooling that are leading companies into the future. If Windows is involved at all, it’s often an afterthought. :-/
  5. Windows 8 interface. I’m just going to leave that one right there. I like a lot about it, but I’m with Microsoft, even with Windows 10 they’re not trying to push this UI/UX catastrophe any longer.
  6. SSH not built in. End of story.

Don’t get me wrong, the tooling on Windows for doing Windows specific development and even doing crud apps with lots of business rules is spectacular. I’d even bet that the .NET ecosystem does a better job, sometimes dramatically better, than the Java ecosystem when it comes to those types of applications. I however, haven’t built these style of applications in a long while. Whenever I do, Windows might be a prime option, but otherwise I’ll stick to the operating systems that get me into the coding faster, sooner, and with less resistance.

Outside of Windows there are a lot of great Microsoft tools and technologies that I’d love to have on non-Windows operating systems. One of those is F#. Another is Visual Studio, which I’m betting will continue to get better and better. I’d like to have C# (which I do with Xamarin and such) and a whole ton of other scaffolding and crud tools and other things that are available. I just prefer them without Windows.

As I often say, to each their own. Mine just isn’t Windows these days.