Tuesday, July 2, 2019

Updated our Motivational Quotes App to include "Night Mode" feature and to add Author Links.


I have released new version (versions 1.11) of our Motivational Quotes App  with below features.

  • Added Night Mode /Dark Mode Option.
  • Added Clickable Links to Author Names.
  • Optimized the Code to reduce file size.

A lot of people downloaded our Quotes App from Google play store. It is good to know that more than 20K people installed it in their mobile devices. But the DAU (Daily Active Users) and Active Installations are very low.
Based on the users' feedback, I thought adding Night Mode option can fix this user retention problem.


I had provided navigation buttons, shuffle button and Rate button at bottom of the screen for this App. Since there is no space available for adding any additional button, I decided to add Tool bar / Action bar menu for including Night Mode feature.

I added the Toolbar by including below piece of code in the layout xml file of the main activity.

<androidx.appcompat.widget.Toolbar
android:id="@+id/my_toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:layout_alignParentTop="true"
android:background="?attr/colorPrimary"
app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"

/>
Then changed the Apptheme as Theme.AppCompat.DayNight.NoActionBar


And, then called setSupportActionBar at the starting of the onCreate in the main activity.

//for showing Toolsbar/Action bar
Toolbar my_toolbar = findViewById(R.id.my_toolbar);
setSupportActionBar(my_toolbar);

Then I created, menu.xml to include the menu items.  I added few other menu items in addtion to the Night Mode menu.


<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">

<item
android:id="@+id/menuNightMode"
android:title="Change Night Mode" />

<item
android:id="@+id/menuBooks"
android:title="Quotes Books" />

<item
android:id="@+id/menuVideo"
android:title="Quotes Video" />
<item
android:id="@+id/menuPrivacy"
android:title="Privacy" />
</menu>

Added below function for creating the menu by populating the menu items.

//For showing Tool bar menu
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater menuInflater = getMenuInflater();
menuInflater.inflate(R.menu.menu, menu);
return true;
}

For implementing the menu action, I added below piece of code.

@Override
public boolean onOptionsItemSelected(MenuItem item) {

switch(item.getItemId()){
case R.id.menuNightMode:
if (AppCompatDelegate.getDefaultNightMode()==AppCompatDelegate.MODE_NIGHT_YES) {
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO);
}
else {
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES);

}
this.recreate();
break;

case R.id.menuBooks:
open_url("https://www.thequotes.net/motivational-ebook/");
break;

case R.id.menuVideo:
open_url("https://www.youtube.com/watch?v=7pfwBa9Ibvw");
break;
case R.id.menuPrivacy:
open_url("https://www.blog.qualitypointtech.com/p/android-app-privacy-policy.html");
break;


}
return true;
}

I used AppCompatDelegate for setting the Night Mode option. I came to know that the Night mode change will come into the effect only after restarting the Activity. I spent a lot of time in adding code for restarting the activity without losing the state.
Finally, I found that it can be done by just using recreate() method.

It was working properly. i-e The current page was brought back while restarting the activity. But I found a problem when using Shuffle button. It was not keeping the shuffled order after the restart. So, I included the suffled data into the savedInstanceState bundle by overriding onSaveInstanceState.

protected void onSaveInstanceState(Bundle savedInstanceState) {

super.onSaveInstanceState(savedInstanceState);
savedInstanceState.putStringArray("pagedata", pageData);

}
And, within onCreate(), I included below piece of code the load the shuffled quotes when restarting the Activity.

//Get the data to be swiped through
if (savedInstanceState != null) { //reload the quotes to keep the same order when restarting the activity
pageData=savedInstanceState.getStringArray("pagedata");
}
else //load data first time only
{
pageData = getResources().getStringArray(R.array.quotes);
}
Now I hope everthing is working fine. Let me know if you find any error.

As I explained in my previous post, I added clickable links to the Authors. It will help the App Users to know more about the Author of the Quote and read more Quotes of that Author.

I had to work really hard to add the Author links to around 900 Quotes. Let me know if you find any incorrect or broken links.

And, I optimized the code to reduce the file size as explained in my previous post. I replaced the Android support libraries with equivalent AndroidX libraries

You can install/update the app from Google Play Store here

Let me know if you have find any error when using this App. And, if you like this app, Review/Rate it and refer this to your Friends.

I am planning to add the Night Mode feature to my other apps also.

Read more ...

Friday, June 28, 2019

Released an Android App to show Famous English Proverbs


I had published this Proverbs Video many years back, and more than 40K People watched this video. But reading Proverbs on Video may not be convenient as everyone will be reading the text at a different speed.



So, I released an Android app to read these Proverbs conveniently. You can freely download it from the Google Play store.

This Proverbs app provides a lot of Famous English Proverbs. We can read them simply by swiping them or by tapping the Right/Left arrow buttons. And, read a Random Proverb by pressing the "Shuffle" button.

It is a very simple App. So, the download Size will be less. And, it won't occupy more space on your device, and it will work offline.


Download it now and if you like this app, add your Rating and Review comments at the Play Store page.
Read more ...

Monday, June 24, 2019

Updated our Business Quotes Android App


Recently I released an Android App for showing Motivational Quotes for Business People.
The aspiring Entrepreneurs can freely download it from play store and share your review comments.

After publishing this App, I have noticed a small issue. When sharing the quotes to social media using the Share button, the app was showing the HTML code of the link. It was not looking good and occupying more space.

I fixed this issue by striping the HTML using below code as suggested here.
public String stripHtml(String html) {
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.N) {
return Html.fromHtml(html, Html.FROM_HTML_MODE_LEGACY).toString();
} else {
return Html.fromHtml(html).toString();
}
}


And, Google play console suggested me to set the Android Target API version 28 i-e Android 9 (Pie).
So, I updated the target version and updated the related dependencies.

Read more ...

Friday, June 21, 2019

Released Free Android App for showing Business Motivational Quotes


A few years back, I had published an Android App for showing Motivational Quotes. I am not having much experience with Android App development. So, I developed this App with simple features as an attempt to start learning Android App development.

Surprisingly this App was downloaded by many People and it is getting good review comments and ratings. So, I realized that many people like simple Apps though a lot of apps with many amazing features available in the play store.

It made me to release Bible Quotes App based on the same code. This one is also performing well.

https://play.google.com/store/apps/details?id=com.qualitypointtech.businessquotes

So, recently I decided to publish an App for showing Business Quotes as I thought this App will be useful to tell about our Timesheet Offer to the potential customers easily.

I created this Business Quotes App similar to my previous App except adding a clickable hyperlink to the author name.

Initially, I thought adding clickable hyperlink will be easy. But I had to refer various articles to know the way for doing it. Finally I found this page helpful for completing this.

As suggested in that page, I had to do below things.

First I had to use the HTML entity encoding while specifying the link and text in the String Resource.



And, I had to set the below option in the TextView.

android:linksClickable="true"

Apart from doing these two things, I had to use setMovementMethod before using the setText.

((TextView) findViewById(R.id.your_text_view)).setMovementMethod(LinkMovementMethod.getInstance());
((TextView) findViewById(R.id.your_text_view)).setText(Html.fromHtml(getResources().getString(R.string.string_with_links)));

It is working properly during my testing. But I am not sure if it will work for all devices. Let me (rajamanickam.a@gmail.com) know if you find any issue when using this Business Quotes App.

If everything is going smoothly, I am planning to do the same thing for my previous Motivational Quotes App also.

Read more ...

Friday, June 14, 2019

Future technology that will shape higher education in India


This Article is a Guest Post.

One of the most significant factors in defining a country’s future is education. India - a country famous for its many educational institutions - is facing a change in this sector due to evolution in technology. We are rapidly shifting towards test apps, online learning platforms, and other resources available on the internet.

Preparation of IAS exam has not been untouched from this paradigm shift. Hi-tech classrooms for preparation, digital books, apps and online learning platforms are taking the IAS preparation to the next level. Candidates can also make use of study materials available on websites and other online communities.

Here are some of the trends that indicate how technology is going to be a significant factor in higher education in India:
Read more ...

Saturday, June 8, 2019

Replacing MySQL Connection with MySQLi connection in many of our Web Applications


A few months back, I had published a post about updating our Timesheet script to make it work with the latest PHP version by replacing MySQL connection with MySQLi connection.

 Past few days, I was working on implementing this change in our other applications also. Because I was forced to change the PHP version in our servers for updating our websites with the latest WordPress.

I did these MySQL connection changes for our quiz app   and for various apps (e.g Gallery, Facebook Covers, Greetings) of our TheQuotes.Net website.

While doing these changes I tried to improve the page loading performance.
All these changes might have introduced any new error. Let me know if you find any error when going through our websites.

Most of the old php/mysql applications will require this change. So, contact me if you want me to make your ph/mysql application work with the latest php version.  I can do it by charging affordable Hourly charges.
Read more ...

Monday, June 3, 2019

6 Awesome Ways to market your Co-Working Space


This Article is a Guest Post.


In the current world, startups appear one day and disappear the next day. Thus under such circumstance, it's profitable to have coworking spaces. These are one of the best investments that entrepreneurs can make.

If you are an entrepreneur owning a coworking space, you can understand how quickly it can earn you some money. However, marketing them is a challenge which you must take up in order to be a success.

The popularity of coworking spaces is surely on the rise, especially in times like these when startup and freelance economy is looming large. Very often entrepreneurs and startups are stuck in houses, small apartments, coffee shops or a small room to host a meeting.

A fresh break in this regard is offered by the coworking spaces and by the community made of likeminded people who help others grow and develop. Such things are great for startups, small to medium business owners, developers, and such other people. They require a dedicated workstation within the budget and that is exactly what is on the offer.


Coworking places are great if you wish to get away from the distractions at home and work in peace. This also provides you with a  professional setting where you can talk to your clients. But the best part is, such a setup will help you build your confidence since you will be talking to a lot of professionals and like-minded individuals.

Read more ...

Friday, May 24, 2019

The Need and Importance of Content Marketing for Your Business


This Article is a Guest Post.

Today it is very important for all the organizations to keep holding their customers and attracts the new one so that they can smoothly run their business and keep progressing day by day. Digital marketing and content are the heart and backbone of the business industry. The brand, product, and services which you are offering in the market to the customers, your competitors are also offering the same kind of products and services. So, to attract and divert them towards your company you should use the strategies of social media marketing and try posting high relevant content so to engage the customers and attract the audiences. The type of content which you will post on your website will connect you and your company with the audiences.


Content marketing is one of the best strategies to set yourself from your competitors. The customers are always looking for something new and stylish. And, so they keep buying the products and services from those business or organizations on which they can rely to get something different.

This is the reason why content marketing important is so vital and why the big, as well as the small business owners, are making use of posting high quality of content and making use of social media marketing to success their business. Thus, to get a better knowledge as to why content has become the king in the business sector and help you to understand about the importance of content marketing, you should look at the points which are mentioned below.
Read more ...

Tuesday, May 21, 2019

Promoting my Amazon Books again


A few months back I was actively promoting my Amazon Books (Quotes Book and YouTube earning Book) using various ad Campaigns including Amazon's AMS ads, Google Ad Words, Reddit Ads, Facebook Ads, Goodreads Giveaway, LinkedIn Ads and Bookbub ads. But they are not much useful for my Books.  So, I stopped promoting my Books. Among all these Ad platforms, Amazon's AMS was performing better than others. But still, it was not making a profit.

A few days back, I have decided to promote my Book again.  Instead of spending all my time and money in many ad platforms, I have decided to stick with one particular advertising platform still I start making a profit from Book Sales.

As Amazon's AMS was performing better than others, I decided to start with AMS ads. I noticed that Amazon renamed AMS into "Amazon Advertising", and my previous campaigns were there. I just created new campaigns by copying the existing campaigns and started running with a small budget. I am planning to carefully tweak the ads continuously to make them profitable, and once after start earning money from Book Sales, I am planning to increase the Ad budget step by step.

 And, I have noticed that Amazon's new Advertising interface having many new useful features comparing to the previous AMS. Especially I like the option to see the reports for the date range. But still, the ACOS metric is not much useful. Because it is calculated based on sales price instead of the royalty amount.

I am exploring various options to improve Ad performance. If you have tried Amazon Advertising for promoting your Book, share your suggestions based on your experience through the comments.
Read more ...

Sunday, February 10, 2019

Relaunching RtoZ.Org as Emerging Technology News Website.


Around 8 years back, I have started a website RtoZ.Org to publish Social Media News.

And then I realized that there were a lot of Social Media News sites available and they were supported with huge funding and a lot of resources. It made me think that competing with them won't be a good idea. So, I switched my focus to develop my YouTube Channel which was growing very fast.

But a few months back, ads were disabled on my YouTube Channel. When I was looking for alternative earning ways, I have decided to make use of the domain name RtoZ.Org which is easy to remember and type.

While running my YouTube Channel, I have noticed that there is a huge demand for publishing news about Emerging Technologies nanotechnology, 3D printing, Robots, AI and CRISPR Gene Editing. Because these things are growing very fast and they are going to entirely change our Life in the coming years. But comparatively, there were only a few websites available to report news about them. i-e It is having huge demand and low competition. Apart from that, it is having huge earning potential.

https://www.rtoz.org/


And therefore, I made the decision of using RtoZ.Org as a News Website giving news about Emerging Technologies.

Read more ...

Wednesday, January 30, 2019

Get Free Kindle copy of Book useful for earning from YouTube. This Free offer will End in few days (i-e on February 3rd)


A few months back I had published an eBook with Title "How to Earn from YouTube Videos?: My Experience with YouTube" to share my experience about earning Money by running YouTube Channel.

I have entrolled this Book with Amazon's "KDP Select" which allows me to give this Book for Free few days.

I scheduled to make it available for Free till  February 3rd, 2019.

So, if you are interested to earn from YouTube, you can get this Book Free before the offer ends. Share this post to your Social Media so that your Friends can make use of this Free offer.

 Find below the review comment made by a Buyer.

You may watch this long video or this short Video to know about earning money from YouTube Videos.

Read more ...

Tuesday, January 22, 2019

Basic SQL Questions and Answers


SQL plays an important role in the IT Industry. Learning SQL increases the Job opportunities.
People learn SQL for various reasons. For example, some people will learn it for writing SQL queries to be used in their web applications. Some learn it to become a Database Admin. And, there may be some differences based on the type of Database Server, i-e whether it is MySQL or Microsoft SQL, SQLite, etc.

This post is for telling about very basic things about SQL. So, it can be useful for anyone who is willing to learn SQL for any purpose.

What is DBMS?
A Database Management System (DBMS) is a program that controls creation, maintenance and use of a database. DBMS can be termed as File Manager that manages data in a database rather than saving it in file systems. Some DBMS examples include MySQL, PostgreSQL, Microsoft Access, SQL Server, FileMaker, Oracle, RDBMS, dBASE, Clipper, and FoxPro.
What is a Database?
Database is nothing but an organized form of data for easy access, storing, retrieval and managing of data. This is also known as structured form of data which can be accessed in many ways.
Sample Databases: School Management System, Bank Management System, Time Sheet Management System.
What are the Popular Database Management Systems in the IT Industry?
Oracle, MySQL, Microsoft SQL Server, PostgreSQL, SyBase, MongoDB, DB2, and Microsoft Access Etc...
MySQL is the widely used open source Database system which is available for Free.

What is SQL?
SQL stands for structured query language. It is a database language used for database creation, deletion, fetching rows and modifying rows etc. sometimes it is pronounced as se-qwell.
SQL is an ANSI (American National Standards Institute) standard.


When SQL appeared?
SQL appeared in 1974.
How much time it will take to learn SQL?
As far as time is concerned - in 2-3 weeks you can learn the basics and in a month's time (provided you are spending atleast 3-4 hours daily). you can learn to write basic SQL statements. In-depth SQL will need more time and practice.


Read more ...

Challenges in Developing and Testing PHP Script for Automatic Resume Submission


In this post I would like to share my experience of creating and testing a php/MySQL script for posting candidate resume automatically to a lot of U.S Job sites.

i-e If a job seeker enters his Resume details in one place, the script will automatically create User Accounts in many U.S job sites for him, and it will automatically post his Resume details in all of these Job Sites.

Actually we made this script many years back. Though we are successful in creating the script, we found difficulty in marketing it. So, we dropped that project.

If you want me to develop any similar challenging scripts, you can read this post and contact me rajamanickam.a@gmail.com


This Kind of Script development is NOT an easy task. It involves lot of complexities. And, we haven’t started doing it properly. Initially we did similar script for one particular customer as a custom development, and later we enhanced it further to bring this Automatic Resume posting script.



Since we were a small Team, we just did Adhoc Testing only.

The important Steps involved in this kind of script development are,
Read more ...

Saturday, January 19, 2019

Outsource Your Software Development and Testing Tasks to save Money


Running any kind of Small Business involves many tasks. Automating some tasks using Software systems can help the small business owner to focus on his core business. For example, timesheet software can help to study and improve the performance of the Employees and Projects without requiring the Business Owner to spend his own time much.

And, a lot of free open source tools are available to help the Small Businesses. But setting up them and customizing them to their own needs will require some experience in handling them. So, it is better to outsource that kind of tasks to save time.

It may be difficult to outsource all the tasks across countries, but you can easily outsource the IT related tasks to other Countries.



I am having around 20 years of experience in IT Industry. So, if you are interested to outsource any of your IT tasks like Web development and Software Testing, you can contact me (rajamanickam.a@gmail.com) and you can check my LinkedIn profile here.

Past few years, I was engaged with my own projects like, timesheet, Quotes Site, Apps, YouTube Channel, News Site, and Books.
Now I have decided to spend few Hours per Day for doing Client projects also.

Many years back I was doing Software Development Projects through Freelance websites. I stopped using them to avoid unnecessary fees and complexities introduced by them.

So, Now I will be working for the clients who are willing to pay directly to me through paypal instead of using any freelance sites. I plan to charge $12 USD per hour.


You can read below some feedback comments from the Clients for the Projects I worked many years back through Freelancing website.


And,find below the Linkedin Recommendation from one of my direct Clients.

Let me know if you have any questions. I prefer to work on PHP/MySQL and Software Testing Tasks though I can work on various IT tasks including SEO and SEM.
Especially, I can work on complex projects as I explained here.

Apart from helping Small Businesses in IT Tasks, I can guide  anyone to start any profitable small scale online business as I had explored a lot of things in the past 20 years.
If you are really interested you can mail me your requirements to rajamanickam.a@gmail.com




Read more ...

Thursday, January 17, 2019

PHP Code to have different number of rows in first page of PDF file generated by FPDF Library


A few years back, I had published this post to explain about resolving the Wrap text issue in FPDF table cell. At the end of the post, I had specified a sample code for adding new page using addPage() on every n-th row using modulo operator.
It was working fine without any issue. But this approach won't be useful if we need different number of rows in first page of PDF than other pages. For example, in our timesheet application, the PDF report will be having some summary information at the first page of file. So, obviously the first page can hold less number of rows comparing to other pages. So, just using Modulo operator won't help in this situation. Either we need to start writing the rows from the second page, or if we want to start from first page, we have unnecessarily waste some space in all other pages.

I thought of updating the code to handle this scenario. Initially I thought it can be done very easily. After making some attempts, I realized the complexity of this scenario. I tried various approaches. But every approach is failing with any one of various test scenarios. We can imagine a lot of test scenarios.
For example,
1. Total number of rows is 0
2. Total number of rows is 1.
3. Total number of rows is less than the desired First page row count.
4. Total number of rows is exactly equal to the addition of desired first page row count and desired other pages row count or multiples of it.
5. "Greater than" instead of "Equal to" in the 4th scenario.
6. "Less than" instead of "Equal to" in the 4th scenario.

Finally I came up with below code. Based on my testing, it is working fine in all test scenarios, except when the first page row count is greater than the row count of other pages. Practically this scenario won't happen. So, I can say that it is working fine in all practical situations. Please let me know if you find any issue with this code.

$j=1;
$firstpagerowcount=14;
$otherpagesrowcount=20; //should be greater than first page count
$m=1;
foreach ((array)$data as $row)
{
$pagedata[]=$row;


if($j==$firstpagerowcount || $m==$otherpagesrowcount || $j==count($data))
{

if ($j>$firstpagerowcount)
{
$pdf->AddPage();
}
$pdf->FancyTable($header,$pagedata);

$pagedata=null;
$m=0; //start fresh

}

$m++;
$j++;
}

$pdf->Output();
Read more ...

Saturday, January 12, 2019

The Danger of using Ad Blockers. Let us Stop using Ad Blockers to keep Free Internet.


The Internet is filled with a lot of useful information in various formats including Text, Audio, Video, Slideshows, eBooks and Mobile Apps. Most of these Contents are available Free for anyone to access them at any time from anywhere.

Apart from this Free Content, a lot of useful Tools are also available for Free on the Internet.

We refer Internet for learning any Technology or to know about any places or to communicate with others, even many people are getting their Jobs with the help of the Internet.

Online News Providers are giving news with deep analysis and quickly than traditional News Providers. All these things are possible because of the Hard work of a lot of Developers and Bloggers who are getting compensated from online Advertisements for their Work. This Ad-based Free Internet Model is giving benefits to everyone.


For Example, this blog is showing Google Adsense ads which will automatically show advertisements based on the content you read. So, obviously the ads will be relevant to you, and Google will mark the Advertisements with labels like "Ads by Google" so that you can easily separate it from the actual content. In summary, you as a Reader will be getting free content without any major inconvenience. And, I will be paid by Google for showing the Ads. And, the Advertisers will be getting relevant potential customers to their website by spending the Money effectively, and Google will get the commission for developing and running the ad delivery system.
Read more ...

Tuesday, January 1, 2019

Published Free Android App "Christian Calendar 2019"


A few weeks back, I have posted about our web application for generating Motivational Calendar with our own events.
For promoting this web application, I published an Android app "Motivational Quotes Calendar 2019" which is created with the help of our Calendar Generator.
Since our Bible Quotes Android App is downloaded by a significant number of People, I thought promoting any App related to Bible can be easily promoted with the help of Admob's free in-house ads.
https://play.google.com/store/apps/details?id=com.qualitypointtech.christiancalendar

At first, prepared the initial list of Christian Events for the Year 2019 by referring to various websites. And, improved the list by getting suggestions/feedback by sharing the initial list with relevant social media groups.

Read more ...

Follow By Email