Top 10 Apps for Android that saves you money

There are a lot of Apps available for Android (and iPhone) that actually saves you money. If you were to buy these devices individually, they would cost you money and another inconvenience, you have to carry that with you where ever you go. Android app, most of which are free, some could really save you money. I will not talk about games here but really useful apps that would otherwise cost you money. I would list their dollar amount as well.

GPS Status and Toolbox – $75

GPS is an important device to find your location. You are on the place and you want to find where exactly you are. You are hiking somewhere and you are lost, turn on your GPS and it will tell you where you are. GPS status and toolbox give you the same features (and more) that gives you a cheap handheld GPS. At amazon they are prices at $75-$300. I would make it worth 75$ plus the additional advantage that you dont have to carry an extra gps unit around.

Digital Compass – $15

Digital compasses are ranged $20+ on Amazon and their reviews are
t’ that great. Android phone (and iphone) comes built in with Digital compass but they need a software to read data from them. There are a number of them available. I would just mention my very first app here as well, which also provides direction, East-West-North-South. It is probably more sophisticated that the compass you can get at Amazon. I would price it at $15.

Chess Clock for Android -$20

For some reason chess clocks are expensive. You can can find the cheapest on Amazon.com for $20+. I would certainly would expect cheaper clocks but they are just not available. Well you can download free chess clock on Android Market that works pretty well, just like a chess clock. Their only drawback is…. they are free. Chess Clock for Android is simply awesome. It is free. There is another free one which is good too with larger button, call “Game Clock Deluxe”.

Cardio Trainer (Pedometer) – $15

Cardio Trainer is a work out programme which does more than simply a pedometer. But one of its task is that it measure your step, distance and the entire map of your work out, if you were walking. It is really kool. If such a device was sold by itself, it would probably be worth 50$ or so. Here I have listed it for $15.

Weather Bug (weather forecast) – $15

Weather stations are available in Walmart and at Amazon from $25 and up. They give you max, min and current temperate. They also give you forecast for the city you live in. Weather Bug is App which does exactly that. It give you current temperature, maxiumum tempreture, precepitation (humidity), forecost and even more as it gives you the option to add more city. You can also see rador maps and full forecost for a week + All this in a small App that you can carry with you everywhere you go. This App also give you weather alerts!

MetroFax Mobile (Fax) – $25

Faxes are not free service. You have to get a subscription and pay for it monthly basis. Based on that I am listing this application as Fax Machine. You can send Faxes, you can receive faxes for about $7 a month. Everything is on the go. You take a pick or choose one from your photo and send it. It is that simple. You get a free phone number. You can’t beat it if you need a fax machine. Any time you don’t want it, cancel the subscription and the fax is gone. No need to throw the old fax away (if you were not using it).

Ageo Graphic Calculator (Graphic Calculator) – $10

Graphic calculators are not cheap. They are usually much bigger than your android phone. They are mostly in mono color though. If you want to experiment with lines, sin, tan etc, this will do the job. This is quite limited to what a graphic calculator can do. It does not solve quadratic equation, it works only in one variable. One nice feature is you can draw 3 different graphs and it can generate a table which is nice. Valuing it for $10 for what it is offering. You do get a hang of a graphic calculator though. There is probably not a best App in this area. There is certainly a room to come up with a nice graphic calculator and solver.

Instant Heart Rate

I am listing this for fun. “Instant Heart Rate” give you your heart beat. You put the index finger on the back camera and wait for about 10 sec. You get your heart beat rate. Quite kool.

Variometer ($100)

Variometer is a kool App, $1.41 that lets you track different parameters in your flight. It shows ascend, descent, ground speed, north south, GPS accuracy. While I have not tried it in an Aeroplane, it looks kool and promising. The real Variometer are in $300+ range and they are not even available everywhere.

Stud Finder

This may not work on all phones but when it works, it works. You can locate metal studs in the wall. Note that wooden studs are not detected which is use mostly in the home.

TuneIn Radio (Radio) – $15

If you would like to listen to the radio, your android phone is your radio, you just have to download the App. TuneIn Radio is among the best, while there are a number of them available. Note that in this case you need a wifi connection or a data plane but the advantage is your can listen to radios across the country with no distortion and clear sound. You can easily store them as your favorite channel.

EMF Detector (Ghost Hunting and others ) –

Remote

Advertisements
Posted in Uncategorized | Leave a comment

SQL column with default date and time

The following shows how to specify default datetime field for a field in MSSQL and MYSQL. You do not have to specify it in the query. It is automatically filled when a record is inserted.

MSSQL

In MSSQL the function used to get default date and time is GetDate(), there for this must be used when specifying the default value.

create table test_tbl (
id int not null primary key identity,
test_name varchar(25),
datecreated smalldatetime default  GETDATE()
)

Now insert a value

insert into test_tbl (fname) values (‘test user’)

This will populate the value for datecreated as = 2011-11-07 08:53:00, which is the current date and time.

MYSQL

In my sql, the function used to get current datetime is NOW(). Hence the following query will be used to accomplish the same

create table test_tbl (
id int not null primary key identity,
test_name varchar(25),
datecreated smalldatetime default  NOW()
)

Then insert a value

insert into test_tbl (fname) values (‘test user 2’)

*Note that MYSQL query has not  been test*

Posted in Uncategorized | Leave a comment

Restoring SQL Database from Remote Computer

You have backed up your database on your remote server into .bak file. You moved the .bak file to your local system and want to restore the database and it does not work!

Well here are some of the things you need to be aware of.

  • You can back up a database and restored as a different database name on one computer
  • You can not back a database on one computer and restore it on another using a different name.

The second was the scenario that I was trying to do as I did not want to overrwite my existing database. This is probably a security issue when you import from one machine to the other. You can not change the database name.

Scenario

You are working on a development machine. You made some changes to the database. Meantime, the production machine got new data. You want to import the new data into the existing one.

If you simply import the database, you will loose all your changes (stored procedures, new column etc).  What you really want to do is import just one or two tables which has the new data.

To make things complex, you can not import individual table because the data in those table is somewhat corrupt (this was the case with me).

Solution

As earlier pointed out, it would be nice if we can import the .bak file into a new database on local system but we can’t. The only way to do it is update the current database by right clicking on the database->Task->Restore->Database. You can not change the name of the database, if you do you will get some error.

What you can do is backup you existing database and you can restored it with different database name. This is what you should do first. Back it up and restore it with a different name. That way the changes you made are their in a new database which you can always refer too.

Note that the database permission do not play a role when you import/export from remote computer. Also make sure you give everyone the permission to read/write and execute for this to work.

References

This tutorial is designed for Microsoft SQL Server 2005. It should be valid for SQL Server 2008.

Keywords

How to backup and restore database

How to restored database across servers

How to backup database across different machines

Posted in Uncategorized | Leave a comment

SQL DISTINCT usage

Note: SQL DISTINCT is available only in MS SQL not MySQL

Select Distinct * from table

removed duplicates rows not duplicate column. DISTINCT works on rows not column. If you join two tables lets say

Doctors                                                             Appointment (Patients)

doc_id | Doc_Name                             Patient Name, doc_id

If you left join on doc_id, it will produce a table with doctor name repeated more than once for each appointment he has. Using distinct will not solve the problem because the rows are already distinct different (Each doctor had a different appointment) so in each row the patient name is different in front of the same doctor.

Posted in Uncategorized | Leave a comment

Sort template field in gridView

If you add a template field to your gridview, you will find that the default sort function do not work to sort your gridview based on the template field. It is actually rather easier to implement by adding and event, writing some code and adding a little bit of markup. Here is how

1. First change the markup of your template field.

Inside your template field, add this markup. You can do that in Code Edit or Design Mode.

<HeaderTemplate>
<asp:LinkButton ID=”LinkButton2″ runat=”server”  CommandName=”Sort” CommandArgument=”myDBfield” >Image</asp:LinkButton>
</HeaderTemplate>

2. Add RowCommand event to the gridview

Select GridView, click properties (F4) and go to events tab and click on RowCommand event. This will add yourgridviewName_RowCommand event.

3. Put this code in the event handler.

protected void gvCustomerFind_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName.Equals(“Sort”))
{
if (ViewState[“SortExpression”] != null)
{
if (this.ViewState[“SortExpression”].ToString() == e.CommandArgument.ToString())
{
if (ViewState[“SortOrder”].ToString() == “ASC”)
ViewState[“SortOrder”] = “DESC”;
else
ViewState[“SortOrder”] = “ASC”;
}
else
{
ViewState[“SortOrder”] = “ASC”;
ViewState[“SortExpression”] = e.CommandArgument.ToString();
}
}
else
{
ViewState[“SortExpression”] = e.CommandArgument.ToString();
ViewState[“SortOrder”] = “ASC”;
}
}
gvCustomerFind.DataBind(); // Bind your gridview *important*
}

Posted in Uncategorized | Leave a comment

FindControl in Master Page

Accessing a control  can be a problem in codebehind in ASP.NET. However you will often need to access the control  because you want to change the text property of a textbox or changing certain value. If the control is directly laying in the page itself, then you can directly access it via mycontrolID But if the control is sitting inside a gridview or formview or panel, you can not access that control directly. In fact that control is invisible to codebehind file. To access that you have to use GridView.FindControl(controlname) to find the control and only then you can change its value, provided it did finds the control. If you do not know the exact structure of where the control is, you are at a disadvantage. In that case, there is a user define function that you have to use to find your control. One such method is this

private  Control FindControlIterative(Control root, string id)
{
Control ctl = root;

LinkedList<Control> ctls = new LinkedList<Control>();
while (ctl != null)
{
if (ctl.ID == id) return ctl;
foreach (Control child in ctl.Controls)
{
if (child.ID == id)
return child;

if (child.Controls.Count > 0)
ctls.AddLast(child);
}
if (ctls.Count > 0)
{
ctl = ctls.First.Value;
ctls.Remove(ctl);
}
else
ctl = null;
}
return null;
}

Copy this code the code behind at the bottom of the page and now this function will be available to all the functions in your codebehind.

To use the funcation, use this syntax

TextBox myTextBox = (TextBox)this.FindControlIterative (mygridview, “txtTextBox”);

Note here that mygridview is the top level control in the page that is recognized on the page. It will be in most case the container object that contains your particular control.  If your control is other than TextBox, you will have to typecast it as that type of control.

Caution

Caution need to be made

  • ASP:Textbox: It must be ASP.NET control. FindControl does not work with regular HTML controls
  • SPAN:Some html tags for example SPAN might have some trouble with it too. If a control is not supposed to have childeren, FindControlRecursive will probably not find it. span.innerthtml did not work in my case.
  • Table: I am not sure if it is suppose to work with table. It did not work for me even with <asp:table …> Link. TableRow, TableCell might be needed, not sure.
Posted in Uncategorized | Leave a comment

A transport-level error has occurred when sending the request to the server. (provider: Shared Memory Provider, error: 0 – No process is on the other end of the pipe.)

This error usually occurs if data is not fetched from the database after the connection was established but some error occured. Usually redoing the task what you were doing before clears this error.

Posted in Uncategorized | Leave a comment