Feel Good Friday: SMART Goals

The holidays are a time of celebration and carefree living. We all tend to let go and let loose with the personal promise that we will make it up to our bodies with the arrival of the new year. The problem is, loosing 10 Kg is easier said than done and those who have tried it know the pain, difficulty, and frustration that comes with it. As such, most New Year's resolutions are given up on with the same speed that we mentally set them up.

To make these goals less elusive one simply needs to be SMART. I've come across this several times whenever the topic of personal development is brought up and there is no better time to echo it.

SMART is an acronym that stands for the following.

Specific, Measurable, Action-based, Realistic, and Time-bound.

Instead of saying I want to work out more, set specific dates and times with a way that fits your lifestyle and with milestones that are reasonable. Ex: Hit the gym Monday, Wednesday, and Friday at 7PM for 40 minutes.

Tackling these will slowly build up confidence and develop habits and before you know it you've achieved your goals and more.

Beirut Developers Meetup 29 September 2016

Come join us in Microsoft Lebanon on Thursday 29 September 2016 for a developer meetup. The community is managed on Meetup.com and updates will be posted there.

Hope to see everyone!

Update: Event created - https://www.meetup.com/Beirut-Developers-Meetup/events/234436302/


Microsoft Lebanon SARL

Berytus Park Building, BLOC B, 4th floor

Corner of Park Avenue & Avenue Francaise

Minet El Hosn

Beirut, Lebanon

Phone: 00961 1 98 33 44


Open Live Writer

Several bloggers recommended Windows Live Writer for writing blogs. The second, and now open source, iteration of that software has been released dubbed Open Live Writer. You can get started with it here.

Microsoft’s Standard Level Definitions (100 to 400)

Microsoft uses standard level definitions to indicate the difficulty level of a course or material they publish. Each is explained below for reference (taken from ieitpro's TechNet Blog).

Level 100 Description:

Introductory and overview material. Assumes little or no expertise with topic and covers topic concepts, functions, features, and benefits.


Level 200 Description:

Intermediate material. Assumes 100-level knowledge and provides specific details about the topic.


Level 300 Description:

Advanced material. Assumes 200-level knowledge, in-depth understanding of features in a real-world environment, and strong coding skills. Provides a detailed technical overview of a subset of product/technology features, covering architecture, performance, migration, deployment, and development.


Level 400 Description:

Expert material. Assumes a deep level of technical knowledge and experience and a detailed, thorough understanding of topic. Provides expert-to-expert interaction and coverage of specialized topics.

How I got started: Step by step deployment Quickstart

The most important step when you want to start blogging is to actually get something up and running and just start writing. This may not be the best approach for everyone but I wanted to self-host and learn some code along with having the blog running. So here's how I got started:

  1. Get project from GitHub
  2. Unzip and open in Visual Studio
  3. Go to BlogEngine.NET>Web.Config
  4. Do these steps in Web.Config to set SQL Server as data source
  5. Go to Azure and create a new Db under the databases blade
  6. Go to Web Apps and create a new Web App. Don’t pick any templates, just a blank Web App
  7. Go to the properties of the Web App and find Data Connections
  8. In Data Connections add a connection to the database you created in step 5. When you get to pick a name for the connection string call it BlogEngine. If you followed the steps in 4 correctly, that’s what the project will be configured to find.
  9. Go to where you unzipped your project in 2 and go to BlogEngine.NET-master\BlogEngine.NET-master\BlogEngine\BlogEngine.NET\setup\SQLServer
  10. Open Setup.sql in Notepad and copy all the SQL statements
  11. Go to Server explorer pane in Visual Studio and login to your Azure account then go to your Db and right-click select open in SQL Server Object Explorer
  12. Alternatively you can get the connection string to your db from Azure and connect to it from SQL Server Management Studio(installed as separate software)
  13. Right click the Db and select New Query
  14. Paste all the SQL copied from 10 and Run them
  15. Go back to Visual Studio and right click the solution then select Rebuild Solution
  16. Right Click BlogEngine.NET in the projects and select Publish
  17. Select Microsoft Azure App Service
  18. In the prompt select the website you created in 6
  19. Keep all the defaults and just click Next through all the wizard till you get to the Publish selection
  20. Click Publish and wait for it to finish. When it completes it will automatically navigate to the published web page in your default browser and you should see the home screen with 1 post called Welcome to BlogEngine.NET using Microsoft SQL Server
  21. Login from the top right using Username: admin and Password: admin
  22. Go to Profile(which is the person icon in the top of the menu) and change your password
  23. Go to Custom and pick a theme you like and apply that
  24. Go to Settings and under Basic put your info to make the blog yours


Microsoft Azure 70-532 Skills Measured

This list will be the revision master list where every point below will link to resources and study notes. It will be created and updated as I go.
Design and implement Web Apps (15‒20%)
  • Deploy Web Apps
    • Define deployment slots; roll back deployments; implement pre and post deployment actions
    • Create, configure and deploy a package
    • Create App Service plan
    • Migrate Web Apps between App Service plan
    • Create a Web App within an App Service plan
  • Configure Web Apps
    • Define and use app settings, connection strings, handlers, and virtual directories
    • Configure certificates and custom domains
    • Configure SSL bindings and runtime configurations
    • Manage Web Apps by using the API, Azure PowerShell, and Xplat-CLI
  • Configure diagnostics, monitoring, and analytics
    • Retrieve diagnostics data, view streaming logs
    • Configure endpoint monitoring, configure alerts, configure diagnostics,
    • Use remote debugging
    • Monitor Web App resources
  • Implement web jobs
    • Write web jobs using the SDK
    • Package and deploy web jobs
    • Schedule web jobs
  • Configure Web Apps for scale and resilience
    • Configure auto-scale using built-in and custom schedules, configure by metric
    • Change the size of an instance
    • Configure Traffic Manager
  • Design and implement applications for scale and resilience
    • Select a pattern
    • Implement transient fault handling for services
    • Respond to throttling
    • Disable Application Request Routing (ARR) affinity
Create and manage virtual machines (20‒25%)
  • Deploy workloads on Azure Virtual Machines (VMs)
    • Identify workloads that can and cannot be deployed, run workloads including Microsoft and Linux, create VMs
  • Create and manage a VM image or virtual hard disk
    • Create specialized and reusable images, prepare images using SysPrep and Windows Agent (Linux), copy images between storage accounts and subscriptions, upload VMs
  • Perform configuration management
    • Automate configuration management by using PowerShell Desired State Configuration and VM Agent (custom script extensions); configure VMs using a configuration management tool, such as Puppet or Chef; enable remote debugging
  • Configure VM networking
    • Configure reserved IP addresses, Network Security Groups (NSG), DNS at the virtual network level, load balancing endpoints, HTTP and TCP health probes, public IPs, firewall rules, direct server return, and keep-alive
  • Scale VMs
    • Scale up and scale down VM sizes, configure auto-scale and availability sets
  • Design and implement VM storage
    • Configure disk caching, plan for storage capacity, configure shared storage using Azure File service, configure geo-replication
  • Monitor VMs
    • Configure endpoint monitoring, configure alerts, configure diagnostic and monitoring storage location
Design and implement cloud services (20‒25%)
  • Design and develop a cloud service
    • Install SDKs, install emulators, develop a web role or worker role, design and implement resiliency including transient fault handling, develop startup tasks
  • Configure cloud services and roles
    • Configure HTTPS endpoint and upload an SSL certificate, and instance count and size; configure network access rules, local storage, multiple Web Apps, custom domains, and dedicated and co-located caching; scale up and scale down role sizes; configure auto-scale
  • Deploy a cloud service
    • Upgrade an automatic, manual, or simultaneous deployment; VIP swap a deployment; package a deployment; implement continuous deployment from Visual Studio Online (VSO); implement runtime configuration changes using the portal; configure regions and affinity groups
  • Monitor and debug a cloud service
    • Configure diagnostics using the SDK or configuration file, profile resource consumption, enable remote debugging, establish a connection using Remote Desktop CmdLets in Azure PowerShell, debug using IntelliTrace or the emulator
Design and implement a storage strategy (20‒25%)
  • Implement Azure Storage blobs and Azure files
    • Read data, change data, set metadata on a container, store data using block and page blobs, stream data using blobs, access blobs securely, implement async blob copy, configure Content Delivery Network (CDN), design blob hierarchies, configure custom domains, scale blob storage, implement Azure Premium storage
  • Implement Azure storage tables
    • Implement CRUD with and without transactions, design and manage partitions, query using OData; scale tables and partitions
  • Implement Azure storage queues
    • Add and process messages, retrieve a batch of messages, scale queues
  • Manage access
    • Generate shared access signatures, including client renewal and data validation; create stored access policies; regenerate storage account keys; configure and use Cross-Origin Resource Sharing (CORS)
  • Monitor storage
    • Set retention policies and logging levels, analyze logs
  • Implement SQL databases
    • Choose the appropriate database tier and performance level, configure and perform point in time recovery, enable geo-replication, import and export data and schema, scale SQL databases
Manage application and network services (15‒20%)
  • Integrate an app with Azure Active Directory
    • Develop apps that use WS-federation, OAuth, and SAML-P endpoints; query the directory using graph API
  • Configure a virtual network
    • Deploy a VM into a virtual network, deploy a cloud service into a virtual network
  • Modify network configuration
    • Modify a subnet, import and export network configuration
  • Design and implement a communication strategy
    • Develop messaging solutions using service bus queues, topics, relays, and notification hubs; create service bus namespaces and choose a tier; scale service bus
  • Monitor communication
    • Monitor service bus queues, topics, relays, and notification hubs
  • Implement caching
    • Implement Redis caching, migrate solutions from Azure Cache Service to use Redis caching

Microsoft Azure Certification 70-532 Resources

I've decided to document my progress towards getting my 70-532 certification. My thought process is as follows:

"That which is measured improves. That which is measured and reported improves exponentially." - Karl Pearson

Through this blog I will be holding myself accountable for taking and reporting these steps towards getting the certification. I'll blog about the things I completed, what resources I used, and post any examples I build if the resources I used were insufficient on the topic.

When learning anything the first obvious step is to gather the learning resources. All the blog posts and videos I've seen recommended doing 2 things to get ready. First they recommended getting the list of things I will be tested on and putting them down as a checklist, then going through the items 1 by 1 and learning them. The second recommendation was to use more than one resource as a reference per topic.

First and foremost, the list I need to go through is here: https://www.microsoft.com/learning/en-us/exam-70-532.aspx under Skills Measured. This list also has a recommended resources section which is also a good place to get started on every topic. I've put this list on OneNote to tackle bit by bit and keep track of what I've finished.

Free resources I will be using:




Blog Posts

Official Documentation

The official documentation is a fantastic resource that also lists more resources so definitely worth going to when one gets stuck.


Instead of going for a long About section I thought I'd go for an About post and update periodically as my life and interests change. This blog is not dedicated to one thing but rather this will be my personal but public space and will be about anything and everything I am interested in. I'll probably throw in a couple of thoughts and rants. Everything, however, will be meticulously tagged so that as promised this will be a source of learning if you want to filter out just one topic of interest.

My wife is 8 months pregnant with our first baby. I also recently got into Forex as a hobby. My interest is in approaching the Forex problem as a commercial trader but with technical tools and as much automation as possible. I also collect motivational proverbs and images from things like reddit.com/r/GetMotivated and other random sources.

Basically now you can find posts about:

  • Microsoft Azure
  • Fatherhood tips and experiences
  • Motivational posts
  • Forex Algorithmic Trading - When I have some time to spare

Disclaimer: The content posted in this blog is my personal opinion and does not represent the thoughts, intentions, plans, or strategies of my employer. Products and services featured are things I use for myself and are not mentioned for advertisement purposes. Inappropriate comments will be deleted at my discretion