Tuesday, May 26, 2020

New Blog on "Motivation Alone is Not Enough"

Hi Network Automation Nerds, 

The Memorial Day long weekend (in the US) gave me an opportunity to reflect on some of the projects I have worked on. Mainly I wanted to focus on what made the projects work, and if it did not work out, what happened? 

The two main takeaways from my own reflections are: 

1. I almost ALWAYS started with high motivation for each project. 
2. The projects that work did not depend on motivation alone

If you are interested, read on to see what actually helped me. This includes me taking a trip down the memory lane of my first all-hands meeting at Amazon:  


I hope it can help you in your own projects. Leave me a comment on what you think! 

Best wishes, 

Eric





Tuesday, May 19, 2020

Announcing the Launch of NetworkAutomaiton.Ninja

Hi Network Automation Nerds, 

First, I hope we are all staying healthy and safe. This is not normal times and I sincerely hope we are all coping with to the best of our abilities. Of course, special thanks to the healthcare professionals and essential workers during the COVID-19 pandemic. 

Second, has it really been two years since I wrote my last post here? Wow, time really flies. Of course, I still enjoy writing and creating, as evident by the publication of the third edition of 'Mastering Python Networking' and many other guest blogs across many other sites. 

So why have I not been writing on this blog? Mainly because I hate the outdated style and the lack of control on the Blogger site. I mean, the site looks ok, the publishing tools are ok, and if you hack it the right way you can make it look acceptable. After all, I have been doing this for many years. But that is precisely the problem, the longer I have been writing using the default Blogger tool, the more unsatisfied I became. 

I also want more engagements from the readers, the readers deserves to have a better interface and deeper engagement. There are also contents that I feel more comfortable behind a registration wall. 

Well, today I am very happy to announce the launch of my site https://networkautomation.ninja/


https://networkautomation.ninja/
https://networkautomation.ninja/


I also prepared a little FAQ on the purpose of the site and some other things that I think might be interesting to the readers, https://networkautomation.ninja/p/site-links/faq/


https://networkautomation.ninja/p/site-links/faq/
https://networkautomation.ninja/p/site-links/faq/


Feel free to poke around and let me know what you think. This is the first step of what I would hope to be many more to come. Make sure to sign up for the newsletter if you have not done so on this blog site, https://networkautomation.ninja/newsletter/

If you'd like, you can also register for the site and take a look at the membership area, there is not much there now but certainly more to come! 

I would like to thank you for your time and support, I always appreciate an honest feedback. Let me know what you think of the new site. 

Happy coding! 

Eric






Monday, January 22, 2018

Network Automation Nerds Shoes

Hi Network Automation Nerds, yep, you read that title right, I am writing about shoes in this blog post. For the impatient, just click here on AliveShoes.com to see the pair for yourself. (Full disclosure: I get $15 royalty from every shoe purchase, which I am happy to donate to a charity).



 


"Why?" well, let me tell you:

  • I am kind of a sneaker head. Here is the Urban Dictionary of what a sneaker head is. I don't believe I am a die-hard shoe collector (my wife might disagree), but I do like them. I have about 13 pairs of retro Jordan shoes up to Jordan 14 (his last championship year with the Chicago Bulls). Growing up not able to afford them in the 90's gave me kind of a weak spot when I spot the retro shoes. Being blessed with working in the high tech industry where we can wear whatever we want to work, the Jordan's has been my "work" shoes for the last 17 years. 
  • It is kind of fun to see your logo on a physical product. That is why people like to customize so much and T-Shirt swags are prevalent at almost every single start-up's out there. Shoes are about 13x more expensive than a T-Shirt to buy, but hay they are about 20x more durable. At least I hope they last 20x longer anyways. 
  • Prepare and practice for future events. If my company ever goes IPO, one can certainly hope, I already know how to make a pair of IPO-bound shoes for the event! Or at the very least, I can wear this pair at Meet Up's and be a conversation starter. 
I can't wait to see them in person (15-20 wordays and ship from Italy). 

Eric





Tuesday, December 26, 2017

Getting a [Late] Report Card for My Book

Hi Nework Automation Nerds, happy holidays! As we are close to the end of 2017, it is literally the last Tuesday of the year as I am writing this post, I thought it would be a good idea to look back at the biggest project I took on in the year, writing a technical book Mastering Python Networking.

By now, you might be tired of hearing about me talking about the book. I dont blame you, I know I am a bit tired writing about them. The process was such a big part of my year there was no way to separate one from the other and whenever somebody asks me "Eric, what are you up to?", the subject of book writing inevitably come up. So I ended up talking / thinking / promoting / reflecting about the book for most of 2017.

I will always look back at 2017 fontly as the year I became a published author, but saved for some occational update and reflections, this is probably one of the last post I will write about the book. I will continue to update the Book Q&A Post and Donation Tracking as new updates become available but they will be contained to the parameters of the two posts.

Don't get me wrong, I am super proud of the work and treasure the work I put in, but I am ready to move on.

There are plenty of posts about author's experiences of writing techincal books, two of the more interesting ones are here and here. I have my own experience, of course, but I don't feel like I am ready to write about it just yet, particularly because I am still wrapping up with my second writing project with O'Reilly that is due out in Febuary 2018.

So what would be an interesting subject about the book to sum up the experience for 2017? How about let's take a look at how many copies the book has sold so far? I know I would be interested in knowing the post-proudction process if I were a reader of the blog.

As fate would have it, I received my Q3 2017 report the Friday before Christmas:


A few things that stood out for me:

1. It is kind of late. 

Noticed that on December 22, 2017 I just received the royalty report from July to September 2017. Essentially the report took 1 whole quarter to generate. If you have read some of the other post by authors, you know this is normal. But it still struct me as odd that it took so long to produce a report. Perhaps this is just Packt Publishing, but I doubt it.

2. More eBooks than Print books were sold, more than 3:1 ratio.

I guess this does not come with a surprise that at a 3+:1 ratio people were preferring ebooks than their printed counter parts. The royalty on ebooks is about 1/3 of the printed book, so on the money front the printed book is more lucrative. But I can certainly understand the prefence.

For me, I know most of my technical books are not only in digital form, a large chunk were in subscription services, such as Safaribooks Online.

3. It exceeded my personal expectations for units sold. 

My wife can back me up on this. When I initially sign on to write the book in January 2017, I told my wife that I think it would be awesome if the book can sell more than 100 copies. In fact, when Packt reached out, I emailed them back and ask them to confirm because I thought the market was so small. I mean, in my mind network engineers are a pretty narrow set of folks compare to systems engineers and developers. If you take that number and estimated that 10% of them will be interested in the book, then you arrive at a pretty small number. Truth be told, I was a bit worried that Packt will loss money for giving me a chance despite my best effor in writing the book.

However, I am pleasantly surprised at the number that it posted in the first three months of the book's existence. 101 print copies, 101 subscriptions, and 375 ebooks is small compare to Harry Potter or Hunger Games, but it is good enough for me. Not to mention it is being translated to Korean by Packt's Korean publishing partner, Acorn Pub. :)

4. I still have not earned out my royalty advancements.

Sadly, even with the number it posted I still have not earned out my royalty advancements. To clarify, Packt gave me a set amount of money for completing the book, but they count toward future royalty payments. It is somewhat of a bet on the publisher's part, as if the book sells for less than they anticipated, they would loss money on the deal. On the other hand, if the book sells well, they will recoup their cost plus more. For the author, well, let's not talk about the money vs. the time they spent on writing the book because it is depressing... :)

Well, that was my quick update on the book. Happy 2017 and look forward to a productive 2018!

Eric









Monday, December 18, 2017

Ansible 2.5 on the Horizon

Greetings Network Automation Nerds!

Just attended the Ansible 2.5 webcast for Network Partners. It seems to me that the changes in 2.4 were more behind the scenes, i.e. persistent SSH connections, while Ansible 2.5 will have more visible changes for network engineers who are writing Playbooks.

Ansible Networking Partner Webinar (December 18, 2017) Recording
Ansible 2.5 Porting Guide
Network Core Roadmap for 2.5


Here are a few of the takeaways for me, all welcome changes:

  • Network automation continues to be more similar to other modules. For example, instead of specifying connection as local and use the provider method for network cli connections, in 2.5, you can specify network_cli or netconf as the connection. This allows the two connection methods to be used directly in shell. 
  • More emphasis on Testing for network modules. "If it is not tested, it is broken", right? 
  • More community building, such as https://github.com/network-automation


Here are some of the screenshots from the webcast on the connection method, testing, and community:










Happy Coding!

Eric



Thursday, December 14, 2017

Packet Pusher Priority Queue #135 Book Drawing

Hello, fellow network automation engineers! It has been a while since I last wrote about my blog, my apologies. Rest assured that I have not been slacking off, I have been busy working on another book project on Distributed Denial of Service (DDoS) with my good friend Rich Groves that should be out early next year. I am very excited about the project and hope it brings value to you if you are interested in learning more about the topic. 

Many of you have listened or at least aware of the episode on Packet Pusher Priority Queue #135 where I discussed my book and the subsequent offering of a free autographed copy if you sign up on this link a month after the airing of the show on November 9th, 2017. 

I am a few days late, but I have not forgotten about it. In total, there were 271 people who signed up (Thanks!). I exported the list into Excel sorted by the time they were signed up from: 


And I used the following Python script to randomly generate a number between 2 to 272 (since the first row is the header) 10 times: 

  1 #!/usr/bin/env python
  2
  3 import random, time
  4
  5
  6 def rand_int(start_num, stop_num, num_range):
  7     for i in range(start_num, stop_num):
  8         number = random.randint(1, num_range)
  9         print("Run: " + str(i) + " Number: " + str(number))
 10         time.sleep(0.1)
 11         print("----")
 12     return number
 13
 14
 15 if __name__ == "__main__":
 16     result = rand_int(2, 11, 272)
 17     print("Congratulations to the person with Number: " + str(result))
 18

The result was below: 

$ python book_drawing.py
Run: 2 Number: 11
----
Run: 3 Number: 234
----
Run: 4 Number: 253
----
Run: 5 Number: 207
----
Run: 6 Number: 203
----
Run: 7 Number: 264
----
Run: 8 Number: 20
----
Run: 9 Number: 41
----
Run: 10 Number: 106
----
Congratulations to the person with Number: 106

I will notify the 106th person on the spreadsheet and arrange for shipping of the book. Thanks again for your support! I hope the blog and book have brought value to you. 

If you have a celebrated holiday at the end of the calendar year, I want to wish you happy holidays! If not, happy coding! 

Best, 

Eric 









Tuesday, November 7, 2017

Fun Alexa Skill for Mastering Python Networking

I recently created an Amazon Alexa Skill called "Mastering Python Networking Facts". It went live yesterday. You can check it out here: https://www.amazon.com/dp/B0775562VH/ref=sr_1_1?s=digital-skills&ie=UTF8&qid=1510067801&sr=1-1&keywords=Mastering+Python+Networking. It will give you a fun fact about the book Mastering Python Networking (Packt Publishing, June 2017) that was published earlier in the year.


Although it is more fun to use this on an Alexa-enabled device, such as Echo Dot or Echo, You can test the skill, and any other skills, without such device. You can use:

1. Web-based EchoSim, https://echosim.io/. Remember to sign in with the same Amazon account with the Skill enabled and allow the browser permission to use the microphone. Press the space bar to speak to the instruction and let go to hear the result.
2. Mobile App Reverb, https://reverb.ai/. Use the link on the page to choose the appropriate iOS or Android app. Remember to sign in with the same Amazon account.

After enabling, an example of the usage would be:
[User] Alexa, open Mastering Python Networking Facts.
[Alexa] The book has a total of 426 pages, more than 100 pages than originally estimated.  
It is a variation of the Alexa Skills Fact Template with two important differentiation:

1. The backend Lambda function is written in Python instead of Node.js. Only seems fitting that a skill on Python book should be written in Python, right?
2. The 'facts' were populated in DynamoDB table so the content is decoupled from the Skill itself.

In a later post, I will show you how to write the skill.

Leave me a comment of how you think the Skill can be improved.

Happy Python Hacking!

Eric