Friday, 13 October 2017

Headless boot of RasPi 3 B

First things first, the micro sd card can be removed/inserted without having to disassemble the Raspberry Pi official enclosure box unlike what is maintained in many online posts!

It is so important that I thought it best to mention it ahead of any technical steps because so winding are the many forum documentation on how to start up your Raspberry Pi, without a monitor/screen/keyboard via wifi/lan.

I used Windows 7 laptop so all instructions are based on Windows.

Other Assumptions - DHCP client service running, ethernet enabled.

Early footnote - There is a 'w' version (wireless and bluetooth) of Raspberry Pi Zero that is lesser to the Pi 3 B in RAM, some processing power and about Rs. 2k less in cost.

To get on with the Pi 3 B, first,

the Dont's

1. Don't use Noobs!

2. Don't buy the pre-installed SD Card from CrazyPI (Not being mean here (anyway, CrazyPI is getting free reach here!) but the sheer waste of a day because of the SD card is simply a no-no) that says you would get a Pidora, too. It does not even boot!

3. I bought the one, a 16 GB card, and after a day of tussle with online forums and the SD card, I finally went and bought a Micro SD Card adapter, deleted all the files (made a copy of the files, of course, just for good measure!), downloaded/installed Etcher, ran it and selected the Rasbian Stretch image that I had downloaded from the official RasPi website and flashed it onto the SD Card. 

4. It took 4 hours to burn the image (and an additional hour or so to validate the burned image)! Probably, a 8 GB micro SD card (Class 10) should burn faster. Size matters, in this context!

the Do's

1. Open Notepad and simply save the open (empty) file as is, naming the file as "ssh" to the root of the sd card that you just created. This is to enable ssh in the RasPi.

2. Safely remove the SD card and insert the SD Card into the RasPi slot, power it on and plug in the LAN cable.

3. Open your Wireless connection from the Network and sharing center 

4. Click Properties and switch to the Sharing tab. Check the two values as in the below screenshot:

5. A prompt to associate a private connection to share will appear. Select "Local area connection" from the Select Private connection drop-down menu. Click Ok.

6. Open the LAN connection properties. It should show something like this:

7. Download Putty and RealVNC and install them.

8. Open Putty and type "" in the hostname field under the Session menu item to the left pane in Putty. Note: Once you change the name, however, use the ip address of the pi to connect (applicable only with DHCP usage because upon reboot, the IP, to which the name points, may not remain the same).

Click Open.

9. Enter login as "pi" and password as "raspberry"

10. Type "sudo raspi-config". The below screen will help in starting the VNC server. Scroll to the "Interfacing options" with the help of the down arrow key as below:

 Press Enter.

11. Scroll down to "VNC" as below, press Enter and select Enable in the subsequent dialog box. Navigate to finish using the arrow keys and press Enter to return to the shell.

12. Start RealVNC from your Windows laptop and enter the hostname as before and you will have the VNC viewer displaying your RasPi desktop.

13. Most likely, a warning to change password will appear and the text may overflow beyond the screen.

14. You can set the Raspi configuration now using the GUI, as below!

15. Select Raspberry configuration and modify the screen resolution. A prompt to reboot the Pi may appear. Click Ok. The VNC server would shut down so close the VNC viewer in your Windows laptop and reopen it.

16. The new resolution may enable you to view the wifi information

17. Start the "node-red" server from the programs. Note the IP address with the port number. Type the address with the port number from your Windows browser and the speed with which node-red connects will surely make you straight away buy a led and fiddle with the GPIOs to set up your first IoT thing!

Happy IoT-ing!

Monday, 19 June 2017

Docker EE for AWS

Somehow, I struggled through Docker. I will outline my steps so that you don't have to follow the tedious path.

First I tried to install Docker on Windows.

Pitfalls: OS version. If you don't have the Windows 10 Pro edition, you can use the Docker toolbox only.

So, okay. Download the Docker toolbox.

And I checked the VirtualBox option for good measure and it did stand me in good stead because - believe this - the Windows Server image on the EC2 instance cannot have its Hyper-V/AMD something started because you can set the setting only in BIOS and on the EC2 instance, running on Remote Desktop (RDP), there is no way of accessing the BIOS, even if it made sense!

Below is the roadmap of the 1st attempt

Initially, I thought like this:                                                          Then, I thought like this:


2nd attempt

I went into the VM using the RDP and started the VirtualBox and gave Ubuntu as the image. Great! It started the VirtualBox but the EC2 instance had only 1 GB RAM and the VirtualBox script wanted 2 GB, by default!

Okay! Let me check if an EC2 instance with a Linux Ubuntu image (AMI) was available. It was but I did not want to get into the Linux OS shell.

So, what is the alternative?

Docker EE for AWS

A native AWS stack that could host a Docker container on a kernel all its own, with a set of Docker engines. No underlying OS but on top of the AWS IaaS services!

Sounds great but you really cannot see it working because when you try to access the public DNS via a browser, an Apache server message will greet you that the url you are looking for cannot be reached although the server is okay!

Docker EE for AWS is a one click template to quickly deploy Docker on Amazon EC2, says the Docker EE Store. And it is, if only the template stayed put in its AWS region. It seems that the tricky part has not been documented.
The KeyPair that the template requires must be an EC2 generated Keypair from the same region in which your EC2 instance is!

Finally, the aws CloudFormation Stack gets created.

You can use this in your Docker EE deployment to AWS

Friday, 16 June 2017

Bitnami, WordPress and the AWS - a good rack

I just had to blog this - it is about my new blog on WordPress.

I had moved to Azure from AWS in 2013-14 not because I had anything against AWS or for Azure but simply because clients who wanted to use Microsoft ASP.Net and SQL Server made Azure the natural choice.

But it seems that the instances of Windows Server on AWS are more than that in Azure. The AWS has expanded like the Elastic Beanstalk with DevOps and Big Data capabilities and IoT.

At an estimated monthly cost of $5-6, AWS does offer some cool stuf.

One thing though. Why are the regions active in this menu

when an instance created in a specific region cannot be moved by the selection of a different region from the drop-down menu?

Bitnami on the Cloud with a Launchpad for WordPress is a revelation. Cool integration with aws and it even offers WAMP and other xamp stacks.

And yes, my WordPress blog on the cloud, not yet there, content-wise but it is seo enabled etc!

Thursday, 18 May 2017

There is something about Scrum - 3

...that makes me often think if there is no way that you can avoid corruption in the professional world because so bound is everything together that the more you try to resolve dependencies, the more they crop up in another form, in another aspect or place.


Velocity, that you often hear trumpeted in Scrum, can be quite misleading.

Velocity, in common terms, means distance traveled over time. But the distance needs point A from where the calculation of speed begins, and point B,

where the calculation ends.

Velocity, in Scrum, is calculated by the number of features/tasks/stories/bugs completed/delivered/fixed by a Sprint member over a given period of time.

More specifically, in the Scrum context, the points associated with a Story - in Agile parlance, a User Story can have some points associated with it as an estimate of effort - are added up for each successfully delivered story and the sum is the velocity achieved for a sprint or a timebox. Velocity is a paraphrase, or an euphemism, for Productivity.

Productivity needs two parameters, too - one, time (usually called planned or scheduled) and two, money (usually called budgeted or allocated) - and as in matters of relativity (!), needs a surface ie., resources (usually called resources allocated).

The below image depicts all the data that is needed to measure productivity.

But, the picture although tells a lot still does not bring to light the need to measure productivity ie., a platform from which future planning, additional productivity improvements steps can be taken.

And, we also have the assignment of the resource - two resources are assigned to a task at 60 and 50% respectively and the formula (G12+G13) that has calculated shows (in the top left of the below image) that both the values have been taken into account to calculate the planned date.

Productivity is a dangerous metric to use or measure unless it is done in a mature environment and around maturer sets of people. Discussed or analyzed, especially on the internet where the amalgamation is made of disparities and varied cultures, the metric will fail to convince due also to relative application of local work culture and employee engagement parameters.

In conclusion, productivity in Scrum can be measured if the following is true:

1. All Scrum members do not take any leave during sprint (s)
2. All Sprint members are equally skilled and experienced (difficult to achieve)
3. All Sprint members are co-located.