Sunday, May 5, 2024

From where have you come? and where are you going? - A reality check that can transform your life

Been a while since I made my personal post.

The digital world has become so much more formal and every word that goes on the internet becomes an identity that is tagged to a person - both in personal and professional life.

May be this has been one of the reasons that a professional blogger like me (who has blogged since 2007) has stayed away from using blogger! But, now I think - why should I not blog? Especially in an age where videos are being made on every topic under the sun, why should I not pen down my personal life stories, or stories of those inspirational human beings around me? If it could be of use to someone reading my blog, then it's worth penning them down.

It's a common world after all, and my experience tells me that despite the different communities, races, or parts of the world that each of us may belong - we all have the same kind of problems, challenges, happiness, success stories, and goals, after all!

So here I go: with the story of Hagar and being let down in life.


"From where have you come? and where are you going?"


Words that made my dear best friend cry profusely when my mom once prayed over her made it to my heart gates today!

This verse from Genesis 16:8, recited by Ms. Francis Swaray made me take stock of what am I doing with my life? And where am I heading towards?

Recently, I have been trying to aggressively pursue career goals, wanting to recoup all the years lost in studying Ph.D. I should be best on my job, and be financially independent unlike the last 10 years – those were my two motivational drivers. This meant taking up a job role that would require me to travel and stay away from my beloved family. A few months would not hurt, I thought, and pursued it!

Blessed with a good manager (unbiased and with a lot of humanitarian values), some decent pay, and an awesome work-life balance, everything was good with the opportunity I received. Except that it was a lonely road; As with Hagar in the desert, I was in a strange land and place.

I was wanting to leave the job in less than a month or two – but, a bad reputation caused due to toxicity of my fellow colleague made me stick-on.

I wanted to leave only after my boss sees my work quality and personal integrity – I thought.

And as a good, un-biased soul as my boss was, he gave it time before he could fire me. Though the work dynamics was not in my favour, back-then, I was able to stick-on by God’s divine grace. It’s going to be a year now – And now things are much better and positive for me at workplace. But, as from the begining, I was starting to wonder why am I doing what I’m doing?

Why did I take the lonely flight, at first place?
I did not want to get back to where I was, nor did I want to stay away from my two beloved children.
Caught in-between I felt I belonged nowhere!

"From where have you come? and where are you going?"
Yes, those words represent my current state of life! - I thought.
And as Ms. Francis Swaray gave context to the words from the pulpit today, I understood the reason why I was doing what I was doing in my life.

Hagar, you see was an innocent slave who was caught-up between Abraham and Sarah. She was made to bear a Child for Abraham, but when she conceived the ‘family dynamics’ between the trio became sour. She had to flee from her master Sarah, and also her beloved husband Abraham. Abraham did not stand by Hagar. He stood by Sarah! Am not here to judge or opine who was right or who was wrong, but the incidents put Hagar in a position that she had to stray in the desert while she was yet carrying her ‘unborn’ son in her womb.

She was let down by the ones she could possibly trust.

She had no one to call her own.

She had no place to go.

She was pregnant, and yet was wandering in the desert wondering if she will have any future atall?

That was Hagar – lonely, let down, and futureless.

And yet while she was straying like a nomad in the desert God saw her!

Ms. Francis Swaray mentioned that her identity in Abraham’s house was ‘slave-girl.’ She was called a 'slave' in her master's house-hold. But, God, meets her in the desert and calls her by name “Hagar,….” God lovingly and gently nudges her to go back to where she came from by speaking the words of Genesis 16:8.

And this context of the words hit me like a double-edge sword!
I was and am not a career-driven women. Yes, I like to be financially independent, but am not someone who is filled with greed for more. Why am I not spending time with my kids, cooking, or caring for my aging parents, and more importantly why am I pursuing career goals at this point in my life - It was because I was running away from rejection, like Hagar!

Family dynamics is complicated. When an extended family member(s) are having too much say or control in a woman’s life, she unconsciously hits her tipping point. Too many judgements, complaints, sarcastic comments, domestic marginalization (as I would call all the oblivion or apathy thrown at her), all stemming from hatred, takes a toll on a married woman.

From the day I wanted to take a mid-career shift, study my masters, to me doing research, and professional work, I was mocked, scolded and laughed at... I got little support from my aging parents ( who had their own challenges), and responsibilities of being a mother gave me very little time to seek help from friends. I need to balance it out, and adjust, I thought. And over the years, the more I adjusted, the more I was unable to bear all the hate that was thrown at me. In wanting to be diplomatic, no one stood by me – And I felt it was a lonely battle!

And the tipping point emerged.

When no one stands by you, you will eventually start standing up for yourself!

Wanting distract myself from the awkward realities of life, I began to focus on studies and research. Whatever, professional work I did, I gave it my best! I found satisfaction and belonging at work, because personally I felt a sense of pride through my work. Though I did not even have a decent pay, that fellows of my age were making at that time, I worked very very hard on my research and studies. And I was getting quite successful at it. Today, it had helped me reach the place where I’m today – But, is this the place I need to be? Like Hagar, was I running away from problems and challenges thrown at me! I’ve been literally hiding behind career pursuits, despite career not being my mojo factor, ever!

Despite, the rejection, and hate, God wanted Hagar to go back to where she was - in her Master’s house!

She was given a purpose in life and God wanted her to have a blessed future! It was revelational: I need to go back where I belong and more importantly cherish my time with my beloved two children! Despite, all odds, I need to be there for my children. Maybe it could be me uniting with them or them uniting with me. But I need to do this, for God’s sake – for this is His life purpose for me.
For I know I will have peace and contentment only when I live in alignment with God’s purpose.
This post not meant to be an auto-biography or a testimony, but as a reader are you in a similar life situation – Cluelessly wandering around in Life, and not knowing why you are doing what you are doing?

Are you not at peace with yourself?

Maybe you need to take a step-back, think deeply, and ask yourself:

"From where have you come? and where are you going?"

Wednesday, December 8, 2021

Free LIDAR Data Sources for India

 Indian researchers can use the following providers to download LIDAR Data for India.


1. GEDI: https://gedi.umd.edu/data/products/

2.ICESAT:  https://icesat-2.gsfc.nasa.gov/icesat-2-data


At the moment these organizations have made their historical archives freely available for public.

 

Tuesday, September 21, 2021

How to get current location in android ?

 

Android location API’s are highly metamorphotic.

From their humble beginnings using locationManager widget, today there are a range of options including google fused location, locationServices, GPSwidgets, and NetworkWidgets.

But, as of September 2021, the best stands out to be Geocoder widget. I really found it simple, easy to implement and quit straight-forward, unlike other libraries.


| Geocoder does not use GPS or Networks. It uses Maps Services to reverse geocode information.


 Through this code sample, you will get to call the android device location coordinates and also the street name, location details and pincode.


The example assumes that you have already created an xml layout resource file with textView of EditText placeholders for latitude and longitude. Let us assume the editText android:id for both placeholders as et_lat and et_lon, respectively. Also have a button, that can handle eventListeners, for getting location with android:id btn_getlocation.

 In this code I have implemented View.OnClickListener. However, you can replace this geocoder code within your .setOnClickListener, too.

 Now, here is the Java  code:


public class Your_Activity extends AppCompatActivity implements
       
View.OnClickListener  {

   
private static final int REQUEST_LOCATION = 1;
    FusedLocationProviderClient
fusedLocationProviderClient;


   
@Override
   
protected void onCreate(Bundle savedInstanceState) {
       
super.onCreate(savedInstanceState);
        setContentView(R.layout.
youractivity);
        ActivityCompat.requestPermissions(
this,
               
new String[] {Manifest.permission.ACCESS_FINE_LOCATION}, REQUEST_LOCATION);


       
//Enter Location
      
btn_location = (Button) findViewById(R.id.btn_location);

       btn_location.setOnClickListener(this);


       
et_lat = (EditText) findViewById(R.id.location);
       
et_lon = (EditText) findViewById(R.id.address);

       
fusedLocationProviderClient = LocationServices.getFusedLocationProviderClient(Your_Activity.this);

    }

   
@RequiresApi(api = Build.VERSION_CODES.M)
   
@Override
   
public void onClick(View view) {
if (view == btn_location) {


if (ActivityCompat.checkSelfPermission(Contribute_BO.this, Manifest.permission.ACCESS_FINE_LOCATION)== PackageManager.PERMISSION_GRANTED) {
    showLocation();
}
else{
 ActivityCompat.requestPermissions(Your_Activity.
this, new String [] {Manifest.permission.ACCESS_FINE_LOCATION},REQUEST_LOCATION);
            }
    }
    }

   
private void showLocation() {
       
fusedLocationProviderClient.getLastLocation().addOnCompleteListener(new OnCompleteListener<Location>() {
           
@Override
           
public void onComplete(@NonNull Task<Location> task) {
                Location location = task.getResult();
               
if (location != null){
                    Geocoder geocoder =
new Geocoder(Your_Activity.this, Locale.getDefault());
                   
try {
                        List<Address> addressList = geocoder.getFromLocation(location.getLatitude(),location.getLongitude(),
1);
                       
et_location.setText("Lat: "+addressList.get(0).getLatitude());
                       
et_address.setText("Lon: "+addressList.get(0).getLongitude());
                    } 
catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }
        });
    }
}

You can further drill down the Location details like:

Street Name = addresses.get(0).getAddressLine(0);

City Name = addressList.get(0).getLocality() ;

State Name = addressList.get(0).getAdminArea();

Country Name = addressList.get(0). getCountryName ();
Postal Code = addressList.get(0). getPostalCode();

 

To know more about Geocoder API refer the official documentation here.


At the moment, as of 2021, there are no usage limits for this Geocoder API. However, as with any other android widget, the Google's Geocoder API could be subject to change! So, try to use Android Studio's Location API's with discretion. 


Monday, September 20, 2021

Steps to create Menu on Activity Android (Navigation Drawer)


 Adding Menu on your Activity in Android can be a simple three step process:

Step 1: Create your Menu Resource Files

Step 2: Create your android activity’s layout resource file. drawerlayout.widget should be your parent element for your menu resources to be rendered on the app.

Step 3: Create your Java Class file and activate your menu widget programmatically,

 Here is the code:

Step 1: Start out by creating two menu resource file under menu tab:

First File:  menu_main.xml

 <menu xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:app="http://schemas.android.com/apk/res-auto"
   
xmlns:tools="http://schemas.android.com/tools"
   
tools:context="com.example.epbr.Second_Activity">
    <
item
       
android:id="@+id/action_settings"
       
android:orderInCategory="100"
       
android:title="@string/action_settings"
       
app:showAsAction="never" />
</
menu>

 

SeSecond File: navigation_menu

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
   
xmlns:tools="http://schemas.android.com/tools"
   
tools:ignore="HardcodedText"
>
    <item
       
android:id="@+id/nav_account"
      
android:title="My Account"
/>
    <item
       
android:id="@+id/nav_custom"
       
android:title="My Contribution"
       
/>
    <item
      
android:id="@+id/nav_settings"
      
android:title="Settings"
/>
    <item
       
android:id="@+id/nav_logout"
       
android:title="Logout"
/>
</menu>
String Resources: Set Open/Close navigation drawer in String Resource File. 
Add the following code to string.xml:
<!--to toggle the open close button of the navigation drawer-->
<string name="nav_open">Open</string>
<string name="nav_close">Close</string>
 
Step 2: Adding menu on your android activity
 
<?xml version="1.0" encoding="utf-8"?>
<!--the root view must be the DrawerLayout-->
<androidx.drawerlayout.widget.DrawerLayout
   
xmlns:android="http://schemas.android.com/apk/res/android"
   
xmlns:app="http://schemas.android.com/apk/res-auto"
   
xmlns:tools="http://schemas.android.com/tools"
   
android:id="@+id/my_drawer_layout"
   
android:layout_width="match_parent"
   
android:layout_height="match_parent"
   
tools:context=".Second_Activity"
   
tools:ignore="HardcodedText"
>
    <com.google.android.material.navigation.NavigationView
       
android:layout_width="wrap_content"
       
android:layout_height="match_parent"
       
android:layout_gravity="start"
      
app:menu="@menu/navigation_menu"
/>

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
       
xmlns:app="http://schemas.android.com/apk/res-auto"
      
xmlns:tools="http://schemas.android.com/tools"
      
android:layout_width="match_parent"
       
android:layout_height="match_parent"
       
android:orientation="vertical"
       
tools:context=".YOUR_Activity"
>
        //YOUR LAYOUT ELEMENTS WILL GO HERE
    </LinearLayout>
</androidx.drawerlayout.widget.DrawerLayout>

Step 3: Activate the Menu elements on Java Class file.

public class YOUR_Activity extends AppCompatActivity {
    public DrawerLayout drawerLayout;
    public ActionBarDrawerToggle actionBarDrawerToggle;
     @Override
   
protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.your_activity);
        if(savedInstanceState == null) {
               // If you are using fragments you can call them here
         }
        // drawer layout instance to toggle the menu icon to open
        
drawerLayout = findViewById(R.id.my_drawer_layout);
        actionBarDrawerToggle = new ActionBarDrawerToggle(this, drawerLayout,
                                          R.string.nav_open, R.string.nav_close);
        // pass the Open and Close toggle for the drawer layout listener
       
drawerLayout.addDrawerListener(actionBarDrawerToggle);
        actionBarDrawerToggle.syncState();
        // to make the Navigation drawer icon always appear on the action bar
       
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}
 
// drawer when the icon is clicked
@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
    if (actionBarDrawerToggle.onOptionsItemSelected(item)) {
        return true;
    }
    return super.onOptionsItemSelected(item);
}
}
 
 

Tuesday, August 31, 2021

How to make curved layout in Android

 

Creating a linear layout with curved or rounded bottom is pretty simple.  While it is possible to play around with layer-lists or card-view, I’m going to show you a way to get this done, purely through XML.

 

Step 1: Create my_shape.xml drawable resource file under res->drawable.

Define an oval shape and give it some solid colors.

 

Drawable Code: 
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape android:shape="oval">
            <solid android:color="#00b300"/>
        </shape>
   </item>
</selector>
 
Step 2: tag the drawable resource file just created to your imageview element.
Give it some Linear and Relative Layout containers. 
Your res->layout file will look like:

Layout code:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   
android:orientation="vertical" android:layout_width="match_parent"
   
android:layout_height="match_parent" android:gravity="center"
>
    <RelativeLayout
       
android:layout_width="match_parent"
       
android:background="#fefefe"
       
android:layout_height="match_parent"
>
        <RelativeLayout
           
android:layout_width="match_parent"
           
android:background="#00b300"
           
android:layout_height="150dp"
>
        </RelativeLayout>

        <ImageView
           
android:layout_width="match_parent"
           
android:layout_height="120dp"
           
android:layout_marginTop="85dp"
            
android:src="@drawable/my_shape"
/>
    </RelativeLayout>
</LinearLayout>

Play around with the Relativelayout and ImageView heights to test your results….




 

Tuesday, March 9, 2021

Published with Outlook India (November, 2020)

 My travel article published with  


A more detailed article (Raw Draft) can also be viewed from: https://spiritofchennai.com/travel/best-places-to-see-in-ooty/


All publications can be viewed from label #MediaPublications





Published with an Asia's leading technology Magazine (October, 2020)

 My Article published with one of Asia's leading Technology Magazine @opensourceforyou August 2020 issue.

Thrilled about this piece making it to print, in spite of the hectic lockdown woes!

Full Article from the link below: