Codeforgeek Version 5

I have started working on Codeforgeek version 5. This would be biggest update in the existence of the site. I am focusing on making the Codeforgeek as a platform to learn, consume, teach and grow various topics such as Coding, technology, blogging, How to guides etc.

So far Codeforgeek has been my personal journal of programming. I used to jot down the problems I solved in a presentable manner so that others around the globe may find it useful.

This strategy worked out great and Codeforgeek stands out in the very crowded space of coding and technology sites as authentic and useful website.

In this upgrade, I am going to extend the portfolio or niche of the website. From personal coding notes to technology (includes coding) platform.

Here is my proposed feature and plan:

  • Expanding the niche.
  • Main categories would be Code, technology, blogging, productivity, soft skills.
  • In Code, we will cover tutorials, blogs as it is going with more topics such as Server technology, blockchain, basics of various programming languages etc.
  • In technology part, we will cover tips and tricks, new devices and their review, futuristic tech and so on.
  • In blogging category, we will cover about how to blog and make your own brand which I recommend to every working professional.
  • In productivity, we will cover tips and tricks and tools to be more productive version of yourself.
  • In soft skills, we will cover various skills other than tech which are as important (or may be more in some cases) as coding or other skills.

I am also going to re-design the site and make it more dynamic to suit the needs.

We are also going to start four major things in Codeforgeek:

  • Courses – in detail courses on various topics.
  • Podcast – about coding, tech and future tech.
  • Job – Companies can post a job for free.
  • Contributor platform – Anyone with right skills can contribute to the platform.

The whole re-design and deployment of site may take about a month or so. I will keep you updated.

Month Review: January 2019

A new year and a new month. Started off January of the year 2019 by being as productive as I can.

Work on Codeforgeek

Like I said in my earlier post about goals I wanna achieve in the year 2019, one of them is building Codeforgeek as a platform and I have done tons of work in that part.

In month of January, I published 6 in depth articles of about various topics.

My goal is to publish 10 articles a month by myself and few guest/sponsored posts here and there. On average I wanna make sure I do more than 150 posts this year on Codeforgeek.

Other than posts, I have taken Podcasting seriously and made a purchase of the Mic and other equipment I need to make the podcasts.

Codeforgeek Stats and Earning Report

In the month of January Codeforgeek grabs 150K page views and 1540+ email subscribers.

From various sources Codeforgeek made around 1100 USD in the month of January.

Books I read

I read three books this month, they are as following:

See you next month.

Goals for 2019

I posted the review of year 2018 and like I mentioned in the article, it was a year of change. For 2019, I have listed down few goals which I wanna achieve and sharing it here:

  • Building Codeforgeek from Scratch and making it a platform.
  • 50K views per day on Codeforgeek.
  • Starting a podcast.
  • Starting a course of video + text.
  • Publish a paper on Distributed workflow architecture.
  • Starting a weekly newsletter for the developer community.
  • Self publish a book.
  • Bike ride to the destination of more than 1000km.
  • Ladakh bike trip.
  • Visiting Istanbul (Turkey).
  • Visiting Jerusalem (Palestine).

and few more goals but I am not yet comfortable publishing it online ūüėČ Let’s see how many goals I cross check this year.

Keep hustling.

2018 In Review – Year of Change

This is the first entry of what I hope to be many review posts in the coming year. This year has been a roller coaster. From professional life to personal, things changed a lot. This post aims to document my year and goals and list of new goals for 2019.

Professional life

Day job

My professional life, fortunately, went exactly the way I planned. I wanted to work on product based companies in Mumbai. I left my job at Accion technologies limited as a technology leader and joined Zebpay as Senior Blockchain engineer.

As you all know, 2018 was the year of cryptocurrency and blockchain is the core technology behind it. I am not much interested in the money part but blockchain technology is something which catches my eye. Joining Zebpay gave me access to learn this technology plus I gained experience of handling backend application with millions of users.

Books

I published another book on Cosmos Database by Microsoft Azure. This is my third book in association with Packt. If you haven’t checked it yet, click here to read the sample.

Blog

I was planning to start the personal blog for so long and I am so glad I did this in 2018. As for Codeforgeek I have published 17 articles and launched Codeforgeek Pro version which is a membership plan for serious readers and followers.

17 articles is not good, I planned to write one article per week which should sum up to 48 articles a year + guest posts.

Products

We launched Spark in 2017 and received amazing feedback from the users.

This led us to start working on another product which we wanted to use for our own purpose first. Hashmailer meant to the email marketing tool with the business analytics.


We did good work on this and wrote tons of code from scratch. However, we did not meet our deadlines and got stuck in personal life (more about that later). I am a finisher and I don’t leave anything unfinished, I will finish this soon with some iteration.

Personal life

I got married this year and majority of my focus after the first half of 2018 was focused on the marriage which led to delay in some projects and other commitments.

Travel

I travelled good amount this year. In January I went to Coorg, a hill station in State of Karnataka In India. It’s a beautiful hill station with amazing waterfalls and tea plants.


I also visited Ahmedabad which in the State of Gujarat in May for business purpose. I had a chance to see riverfront over there.

After May, I got really occupied and did’t visit any other destination, except few bike rides with my friend.

After marriage, I went Himachal (Shimla, Manali, Dharamshala and Chandigarh) and it was the most memorable trip ever. I visited these place back in college with friends and revisiting made it more special.

And in the end of the year, I travelled to Saudi Arabia for a Umrah Pilgrim.

Summary

All together 2018 was a year of change for me. I missed few important things but gained tons of experience and can’t wait to progress ahead in 2019.

Bike Ride to Malshej Ghat

I visited Malshej ghat on 25th August 2018. I went there by my bike РRoyal Enfield 350 classic. It was indeed one of the best motorable rides I have done so far.

In this blog, I just wanted to share a few memories of the ride to Malshej Ghat.

About Malshej Ghat

The “Ghat”¬†actually stands for the mountain pass and Malshej Ghat is located in Western Ghats of Maharashtra – the state of India also known as Sahyadri Ghats.

Malshej Ghat is on the altitude of 700m above the sea level and full of greeneries. It is also home to various animals such as tigers, leopards, peacocks etc.

How to reach

You can reach there by using the train or by road. The nearest stations are Kalyan and from there you need to either book a cab or take a bus.

From Mumbai, it’s about 150 KM.

I visited by bike because I heard about the place from lots of moto-vloggers in India especially Mumbai.

Here is the map, in case you need a reference.

My experience

I left around 8 AM in the morning and met my friend at a discussed location. We had a breakfast and fueled up our bike. It was easy for us to follow the road till Thane as it’s connected by fly-overs.

After Thane, there was a lot of traffic due to Metro construction.  Somehow we passed thane and took a right turn above the thane flyover. From there we reached Bhiwandi.

From Bhiwandi there is one right turn which will take you to Malshej Ghat. On the way at Kalyan we faced very bad roads, it was full of potholes and water logs. It took us almost an hour to just cross 5 KM distance.

After crossing Kalyan, we took a break and had some snacks. That 5 KM was the worst!

After that, National Highway 61 starts which is the main attraction for the trip. Best road, smooth turns, and responsible riders (Not all of them of course). NH 61 is a narrow road with no divider in between, so be alert and sure about the vehicle crossing or overtaking.

After about an hour riding, stopping at various gorgeous places to take pictures and just feel the fresh air, we reached Malshej Ghat. It was full of fog and rain and the view was just breathtaking.

We stayed at Ghat for about an hour and then started descending back from the Ghat. It was easy ride back home.

Picture time

Malshej Ghat

Malshej Ghat

Local cooking hot meals

Mountain ranges of Malshej Ghat

One of the waterfalls in Malshej ghat

Tip

If you are planning to visit Malshej ghat by bike in rainy seasons, make sure your tires edge is proper. There are tons of Z turns and in rain roads are just way too dangerous so take extra caution. Also, be waterproof and use good helmet. Ride safe.

Solving DisplayLink 3.0 Display Driver Dual Monitor Issue

I love using dual monitors. My current setup at work is one laptop and two extra high definition monitor. My laptop provides only one HDMI port and no VGA port. I connect one monitor using HDMI and a second one using USB 3.0 port.

I use DisplayLink USB 3.0 Video adaptor which lets us connect HDMI or DVI port to USB and share the screen.

This is my configuration of DisplayLink.

DisplayLink ADAPTER

Displaylink provides graphic drivers for Mac, Ubuntu and Windows. You can download them here.

I installed in my Ubuntu machine and disabled the secure boot which in turns allows Ubuntu to installed third party vendor drivers.

You need to disable secure boot to install the displaylink drivers in Ubuntu. Learn how to do it here.

The issue

I did everything right and my second monitor was working fine with high definition except there was a glitch after every 30 seconds or so and most of the time random glitch and mouse cursor flickers.

After searching on Google, I figured lots of people were facing this issue. Here is how I solved it.

The issue was with DRM devices that is created by Displaylink dynamically. This was causing issue with driver and existing graphics software.

To solve this, I need to increase the number of DRM devices. Here is how to do it.

Switch to sudo user.

sudo su

And add evdi to startup module so that when system reboots evdi starts as well.

echo evdi >> /etc/modules

Then increase the number of DRM using the following command.

echo "options evdi initial_device_count=2" > /etc/modprobe.d/evdi.conf

You can increase/decrease the number based on your need.

After rebooting the system, glitch was gone and it’s working smooth.

Here is my setup.

Dual monitor Setup Ubuntu

Let me know if it helps you as well.

Setting Up Bitcoin Full Node in Ubuntu

You can easily set up Bitcoin in Ubuntu using the commands below:

sudo add-apt-repository ppa:bitcoin/bitcoin
sudo apt-get update
sudo apt-get install bitcoind

Now before running the Bitcoin daemon program, you need to define the configuration file.

The default location of the configuration file is home location, however, you can always change it.

Switch to the home folder.

cd ~
mkdir .bitcoin
cd .bitcoin
vi bitcoin.conf

Then add the following lines in the configuration file.

server=1
testnet=1
txindex=1
rpcuser=UNIQUE_RPC_USER
rpcpassword=UNIQUE_RPC_PASSWORD

You can change the testnet=0 to connect to the main network of the Bitcoin. We have set it to 1 to connect to default network.

Save the file and run the bitcoin daemon program using the following command.

bitcoind -daemon

Now wait for few hours to sync all the blocks from Genesis and you should be good to go.

In order to check if the syncing is going on or not, run the following command.

bitcoin-cli getblockchaininfo

It will return JSON like this:

{
        "chain": "test",
        "blocks": 538777,
        "headers": 538777,
        "bestblockhash": "00000000000000000008dbf85fdd18172b5218bec32fb17caed08ebdfadbd070",
        "difficulty": 6727225469722.534,
        "mediantime": 1535397577,
        "verificationprogress": 0.999999554147431,
        "initialblockdownload": false,
        "chainwork": "000000000000000000000000000000000000000002eb7c1daac5a4c94a9b27f0",
        "size_on_disk": 205296701750,
        "pruned": false,
        "softforks": [
                 ............
        ],
        "bip9_softforks": {
            "csv": {
                          ............
            },
            "segwit": {
                          ...........
            }
        },
        "warnings": ""
    },
    "error": null,
    "id": null
}

Further links

  • Github: https://github.com/bitcoin/bitcoin/
  • Official website: https://bitcoincore.org/

Announcing My New Book – Learning Cosmos DB

Azure Cosmos DB is a Multi-model database as a service platform by Microsoft.¬† It’s the superset of Microsoft’s very famous¬†NoSQL database – Document DB.

Around five months ago, I decided to dig more into it and see how it can help developers and companies to reach their goals and I must say I am impressed with their offering.

Cosmos DB offers industry standard software license agreements for the latency and throughput which is the major concern in the database as a service platform.

By seeing these promising features I have decided to write a book on the same and Packt publishing agreed on same as well, so here I am writing a blog post about the announcement of the same.

What this book covers

In this book, we cover the brief introductions to all important concepts of the Azure Cosmos DB such as consistency levels, turnkey distribution system, failover, and security etc and then we jump right into the applied learning of those concepts by building a real-world application.

I am a big believer in practical and applied learning and that is reflected across on all of my books. I cover practical topics such as building some small software which targets specific problems and solving them using the Cosmos DB.

For example, in one of the chapter, I have explained how you can build the advanced email tracking system using Cosmos DB which is a great example to understand the need of NoSQL database along with the real-world application.

Who is the target readers

It’s targeted to the application developers of all experience. It doesn’t matter if you have past experience with NoSQL or multi-model databases.

Also, if you are into Microsoft stack, then I highly recommend it.

Where can I get this

You can download the book directly from the Packt official website or by Amazon.

Final words

I hope you like my work presented in this book. I am always open to critic and feedback and would love if you can provide some feedback on this book. Please reach me via comments or email (¬†[email protected]odeforgeek.com).