Azure Automation of A-to-Z, Part I (dbakevlar) - This is a great post very instructive, that explains how and why we should structure our scripts.
Azure Policies (Gregor Suttie) - One of the best tools to he lp us with the governance in Azure is the policies. This post is a nice introduction to how it could help.
Moving your ASP.NET applications to the Microsoft Cloud (Premier Developer) - If you are thinking to migrate to the cloud, it's important to plan your migration. This post is the perfect point to get started, it contains references to deeper books and documents.
The Rise of Microsoft Visual Studio Code (Lyn Levenick) - Cool statistics about editor usage. Not sure of the real correlation with the editor used and the skill level, but it's still an interesting coincidence.
Stream Deck Tricks for Streamers… and Muggles too! (Jeff) - Fantastic post that explains so much why that little thing can save you so much pain. As THE day when I'm starting to stream get closer and closer... This is gold.
Windows Virtual Desktop (null) - This week Microsoft announced what looks like a very simple way to get powerful environments without all the trouble to maintain them. More to come.
Take a Break with Azure Functions (Justin Clareburt (MSFT)) (Justin Clareburt) - I know the Holidays are passed, but it's always time to learn Azure Function. Do yourself a favor the next rainy or super cold weekend... Follow this "program".
What part of your job can you automate? (Kevin Bah) - With time, all developers accumulate "tools" and these days with all those scripts and API capabilities... It's not a question of how can we do something, but more: where to do it...
How to handle BLANK in DAX measures (Marco Russo) - This great post will helps us to think about if blanks could by part of our data and how to manage them.
Is jQuery still relevant? (Remy Sharp) - I've really appreciated this post that brings numbers to sustain his answer.
Detecting threats with Azure Security Center (Tomer Teller) - Interesting post that explains fundamental difference between servers and individual attack and introduces briefly Azure security center.
Visual Studio Code and Docker (Chris Dias [MSFT], Mark Rendle, DvdBrink Sean McBreen [MSFT]) - Nice post, I am happy to see that great plugin are coming.
Source Code Control with Git and Mercurial -- Visual Studio Magazine (Terrence Dorsey) - This post is really complete. It is the post to get started with distributes source control. Reference to other sources of information, tools, and online repository are 0also presented.
Why Katana should be on your radar (AnhPhan, Tom Dykstra - MSFT, Joost de Nijs, Yatajga, Ralph Rick_Anderson) - If you never eared about Katana, this post is for you.
Backing Up WordPress? Don’t Make These 9 Mistakes - If you are a developer, you probably backup your machine and your code. That's good. Do you do the same for your blog? You should, here is how to do it the good way.
iPad, Surface, Ultrabook: Are we there yet? (Scott Hanselman) - The comparison we were all waiting for. A MUST READ post. I’m a little sad that no Android device has been included. I think the Asus transformer could be confederates. a bit sad that any Android device was included. I think the Asus Transformer could be ferly confederated.
[…]APIs exposed for developing applications are consistent with those of the public cloud service, making it easy to develop applications for either and switch between the two. […]
The Undercover Interview Technique (Jeff Haden) - Interesting point of view but I prefer the coffee meeting, where you meet few co-worker in a relax context.
Cloudy Thoughts by SyntaxC4 - Nice post that demonstrate where are the environment variables base on different languages.
Windows 8 and the Cloud: Better Together (David Pallmann) - Good post that told how and why it a good thing to use Windows Azure to leverage your Windows 8 applications.
[…]Read this getting started tutorial to walkthrough how you can build (in less than 5 minutes) a simple Windows 8 “To-do List” app that is cloud enabled using Windows Azure Mobile Services. Or watch this video of me showing how to do it step by step.[…]
Blob Storage and Shared Access Signatures (Stephen Kaufman Stephen Kaufman Microsoft MSFT 6,797 Points 1 2 1 Recent Achievements Blogger III Blog Conversation Starter Blogger II View Profile) - Useful tutorial that explain how to setup a shared access signatures in c#.
Stored procedures DO NOT increase performance (Shivprasad koirala) - Interesting post that hi-light the difference between inline code and store procedure. I agree with the conclusion. Sprocs are better to facilitate the maintainability.
We Need a Good Developer Cloud (Andrew Binstock) - Interesting thoughts, a bit dark, of what really the cloud situation today and what it should be. Even if I don't agree with everything in this post, I should say that I agree with the fact that user shouldn’t have to care about redundancy. It make sense that it could be done be the provider.
The AWS outage reveals bigger issue - Short post that says that if you planned and architected correctly you application, even big outage should affect you.
Considerations when Sharding - When having hard time to find how to shard your data, this alternative could give you ideas.
The Caching Application Block - This post is the starting point for any developer that wants to do caching. Great references.
[...]When Should I Use the Caching Application Block? This topic will help you to decide if the block is suitable for your requirements. It explains the benefits of using the block, and any alternative techniques you may consider. It also provides details of any limitations of the block that may affect your decision to use it.[...]
Getting Started with Lucene.net (Ricci Gian Maria) - Nice tutorial that explain with a simple case how to get started with the great library Lucene.net.
New Series for Beginner Game Masters. (The Chatty DM) - A fantastic idea! That exactly what I was looking for. And just before the big vacations it's perfect!
In this post, I'm sharing my last (and first) Ruby script. The script is available on bitbicket here, and you can see the output result on any Reading Notes posts on my blog here: Reading Notes. I’m still learning Ruby, so feel free to leave me a comment. I will continue to update the script as I’m getting more comfortable with my new skill.
Starting Idea
If you are reading this post there is a good chance you already know that I’m posting every weeks a post about my weekly reading notes. I use Instapaper to bookmark all my reading stuff and send it to my Kindle. So order to make my weekly post I need to pass-through the “My Clippings.txt” file on my kindle, than go back on Instapaper, found the link to this article then put all this information together in a nice readable format.
So the idea was to speedup this process.
Kindle part
First thing first I need to retrieve all my notes in the “My Clippings.txt” file. I start trying to do it my self and the result was… not good. Then I found the really nice gem kindleclippings that was doing exactly what I want: parsing the file and give a array of all the notes with all the information about this note well organize with properties. So my job was to use it correctly… not to bad.
require 'kindleclippings'
parser = KindleClippings::Parser.new
clippings = parser.parse_file('My Clippings.txt')
#== Build the Html list ==
resume = "<ul>"
clippings.notes.each do |note|
resume << "\n<li>\n<b><a href=\"#\">#{note.book_title}</a></b> - #{note.content}\n"
resume << "#{GetBookHightlight(clippings.by_book(note.book_title))}\n</li>"
end
resume << "\n</ul>"
puts resume
As you can see nothing complicated, looping in the notes building a unsorted list (UL).
Instapaper part
Getting the reference link of the article is a little need more work. I need to login into Instapaper with my account, then found the matching bookmark. Once the good bookmark is found I need to extract url to the full article. In the same time I will move this bookmark to another folder to keep my “Unread” list short.
I'm using Watir to do my web scraping. This nice gem is very well done and can be use for testing user interfaces, but this will be in another post.
So first thing first I need to login. Here again nothing complexes get username and password and using it to login.
def InstapaperOpen()
browser = Watir::Browser.new
browser.goto 'http://www.instapaper.com/user/login'
puts "What is your Username? "
username ||= gets.chomp
puts "What is your Password? "
password ||= gets.chomp
browser.text_field(:name => 'username').set(username)
browser.text_field(:name => 'password').set(password)
browser.button(:type => 'submit').click
abort("Cannot login in Instapaper.") unless browser.link(:text => "Log out").exist?
return browser
end
def InstaPaperClose(browser)
browser.link(:text => "Log out").click
browser.close
end
Next, I need a method to search and return the bookmark matching my Kindle note.
So in SearchTitle method using regex I’m looking for an anchor <a> matching the title. If I didn’t found it I check if I found the “Older items >>” button to search deeper. I doing this calling recursively the method, until I found the matching bookmark or that no more “Older items >>” is present.
In MovePaperTo I click on the Move link in the context menu of the bookmark.
Finally putting all this together (with some improvements) and I got my final script! Nice way to practice the basic rules of Ruby. Of course it could be more clean more "rubist", but at least it works and I now I have something to practice my refactoring skill…
Feel free to leave me your comments or suggestions here on this blog or on Bitbuket.