Book Review: Elon Musk Biography

I've done a few book reviews in the past here, but I admit I've been slacking a bit. Not on the reading, though. I've actually been reading even more. I've been slacking a lot in writing about my thoughts and notes on each of the books. It's time to change that.

 

 

For those who are a bit out of the loop and doesn't know who Elon Musk is, he's the CEO of both SpaceX and Tesla as well as a chairman of SolarCity. From those credentials alone you can definitely tell that this guy knows what he's doing! One thing I like to tell people when describing Elon Musk is that I do believe he's the biggest innovator of our generation. This book, Elon Musk: Tesla, SpaceX, and the Quest for a Fantastic Future, will definitely describe how that statement is true.

From the start you get a sense of Elon as he was as a young kid. The biggest thing to hit me was just how much he read at a young age. This is actually not very surprising as I've always heard that the best leaders and innovators are voracious readers. Of course, that's not the reason I like to read, but it is nice to know that you share this habit with people like Elon.

What is interesting is the story of Elon's earlier companies, Zip2 and X.Com. X.Com eventually did merge with PayPal and Elon was the largest shareholder in the company. These two companies gave Elon his first millions.

SpaceX

With the money from the previous companies, Elon started SpaceX. This was brought on by a life-long dream to go to Mars. The book details the innovations and early failures of the company that builds their own rockets right in the US.

The innovations being that all parts of the rocket were built in-house at the SpaceX factory which turns out to be much cheaper than buying them from other countries. They continue to innovate by building rockets that can be reused by coming back to earth and land by themselves.

They did have early failures when they tried to launch the first version of their Falcon rocket which almost brought the company into bankruptcy. Thankfully, they were able to get a successful launch and able to win a lot of bids from NASA to keep the company going.

Tesla

Tesla is definitely a company I've been following for a while. Ever since I got to test drive a Model S in Houston a year ago, I've been interested in them.

A bit of a detail of Elon and Tesla is that he's a co-founder because he was the first investor into the company. If he didn't do this, then the company would have gone bankrupt long ago and due to that, I would consider him a co-founder. With that said, Elon probably did do a lot for the company as its CEO. He helped get the initial Roadster out and had a lot of input into the Model S.

I'm definitely looking forward to what this company will bring, especially with them making their gigafactory that should help bring down the cost of the batteries and, overall, the cost of the car.

Conclusion

Overall, I thoroughly enjoyed this biography. I already thought Elon Musk is an interesting person and definitely someone I'd want to meet one day. This book gave a bit more insight into him as a CEO and innovator as well as the histories of SpaceX and Tesla.

I'm pretty sure there will be more to come from Elon and I'll be waiting anxiously for another book on the rest of Elon's innovative career.

Wintellect F# Blog Post Collection

I know it seems I've been MIA lately, but the truth is I've actually been blogging quite a bit on F# at my spot in Wintellect for a little while. Below is a collection of what's currently out there.

There will definitely be more in the future so keep an eye out there for more posts on F# and there may even be a few on Xamarin with F#.

Introduction to Paket

Paket has been quite the talk lately in the .NET community, and for very good reason. It is essentially another way to manage dependencies in your .NET projects.

But why replace NuGet?

Paket is basically a NuGet replacement so I'm sure you're wondering, "why would we need to replace NuGet?" Paket essentially just takes the functionality of NuGet and adds some extra nice features.

For one thing, Paket makes it able for you to control exactly what's happening with your package dependencies. No more conflict between different packages if those packages reference different versions of the same dependent package.

Another really cool thing Paket does is that it can reference a single file from GitHub. How many times have you needed that and just wound up downloading what you needed and using it that way? If a new version of that file comes along, you'll have to repeat that process.

But I'm already using NuGet

No problem at all! Paket has a nifty convert-from-nuget command to get you up and going.

I'm hooked...but how do I get started?

First, you need to include a .paket folder in the root of your solution. This will include paket.exe that will be used to install and restore packages.

Once that folder and its contents are there, you'll need to create a paket.dependencies file in the root directory of your solution. This file will be similar to the following:

source http://nuget.org/api/v2
nuget FSharp.Data
nuget FAKE

This file tells Paket what the sources are (NuGet or GitHub) and the package/file names so it can be downloaded.

You can then use a build.cmd file or manually call paket.exe like below.

\.paket\paket.exe install

This will create a packages folder that will include all the libraries.

From here you can always manually reference the libraries that you want, but Paket makes this easy as well. In each of the folders where you have a project file, create a paket.references file that contain the names of each library you want to be referenced, like below.

FSharp.Data

Note that FAKE isn't in the file since it won't get referenced. The paket.references file will only add to the project if the library is in a lib folder. FAKE is in a tools folder. This isn't a problem since it can be referenced manually in the build.fsx file.

To get Paket to use the references file, simply rerun the install command with the --hard switch.

\.paket\paket.exe install --hard

This will look at the paket.references file and use that to automatically reference the project with the appropriate libraries.

After that, you're good to get started on your project.

Conclusion

Hopefully this walkthrough will help you get started with using Paket to make your package management easier than before. This is still a young and very active project so I wouldn't be surprised if there are tons of things that this can do for all of our .NET projects.

Xamarin Evolve - Recap

I wanted to get a day two recap out Thursday night like I did the day before with day one but, and I'll be honest with you, day two was just so much fun and action packed that as soon as I got back to the room I went straight to bed to try to get enough rest for the final day. So in this post, I'll go over day two and the final day of the conference.

Day Two

Day two of the conference was all about the sessions. Here are a few of the ones I attended.

Sketches

This was one of the secret sessions they had listed on the schedule and I'm glad I went to it to find out more. Mostly this was just an expansion of what they shown in the keynote but with a bit more of an elaborate demo. The cool thing, for me, is that Sketches will support F# as well soon. That'll be good for just having a sandbox to learn more about the language.

Xamarin Studio

One of the more interesting sessions was this one on how to master Xamarin Studio itself. What impressed me most about Xamarin Studio was that there is a setting in the preferences (Text Editor -> Source Analysis) that has a very similar analysis that ReSharper has for Visual Studio...and before Visual Studio even incorporated it!

Cross-platform Apps in F

I admit, one of the main reasons I wanted to come to Xamarin Evolve was to go to these F# sessions and they certainly didn't disappoint. This was the first one where Rachel Reese gave her talk on running iOS and Android apps using F# with a bit of a nice F# introduction mainly concerning with why we would want to use it.

Closing

The final day was just a few more sessions in the morning then the closing announcements.

Awesome Apps in F

This fun talk was mainly with why use F# (or basically any functional language) and showed how much more concise and readable refactoring from an object oriented way to a functional way can be.


Conclusion

The best way to describe this experience was that it was nothing short of amazing! Big thanks to Xamarin and all of their employees for making this happen and being awesome! I really look forward to next year and I've gotten the thought in my head to even try to present at the next one.

Xamarin Evolve - Day 1 Summary

Considering this is my first time going to an actual conference, especially one at this size, I believe I could be easily impressed by anything done at Xamarin Evolve. And indeed, I was impressed! From all the the quality of the presentations to just how well this event is being run, this is definitely an event I'll remember and will want to come back to next year.

I admit, I haven't done much with Xamarin and their tools other than getting excited over this conference and some small playing around with Xamarin Studio. After this first day, though, I'm excited to play around with it a lot more and utilize it for mobile apps.

Keynote

Things started off with the co-founders on stage giving a keynote that contained quite a few surprises.

Profiler

First thing announced was a profiler for Android and iOS apps to help developers dig deeper into performance issues. This is apparently helpful since there isn't really an alternate solution for profiling mobile apps. Especially one as nice as they have made.

Mobile UI Tests

This one really got me excited the more I saw demos of it in use. The Xamarin team has created a library to create unit tests that can launch the app and perform actions within the app. If certain items on the screen can't be found or an action can't be performed, it will fail the test.

Now this by itself can be useful for an integration test suite, but what's really exciting is this is integrated into the Xamarin Test Cloud so the tests can be run on all devices that it needs to be run on!

Android Player

I'm sure that if you ask any Android developer what the biggest pain point is in developing an Android app is that the emulator take a really long time to start up when debugging/running an application. Really...you can probably go on a 30 minute walk and it may be finished loading the OS and start your app.

What Xamarin has done was to create a way better experience for this. During the demos the Android Player took way over half the time to launch, start the OS, and launch the app than with the emulator. This by itself definitely got most people excited.

Sketches

Another interesting thing they announced is Sketches which is a live coding environment that executes the code as you type. The interesting thing with this, though, is that they've integrated an analysis pane. Xamarin has allowed graphing within Sketches. If prototyping a small UI, you can even use Android or iOS components right within Sketches.

Xamarin Insights

Xamarin also announced a way to monitor apps when they have been published and out for the public to use.

Xamarin Insights looks like it has a lot to offer than the other services that do this. Just by adding only a few lines of code in your app you can get real time notifications of errors that includes stack traces and even show how users will interact with your app.

This and the UI tests together will make a world of a difference in the quality of your mobile apps.

Day One Conclusion

Just after day one I'm glad I decided to come to this conference. I've already learned a ton and got back some excitement from coding that I used to have. I can't wait for what's in store for day two.