Boost New Year Success with Bite-Sized Resolutions

Featured Article By Wendy Betterini , Freelance Writer

A new year can be an exciting and motivating time to set new goals, but most people tend to bite off more than they can chew by vowing to tackle every dissatisfying area of their lives at once – which inevitably leads to frustration when they realize that old habits aren’t so easy to change.

If the thought of setting traditional “too big to imagine” New Year resolutions overwhelms you, you may be more comfortable with a miniature version to start. If so, read on for a much easier, simpler version of New Year resolutions that practically guarantees your success.

1) Setting Smaller Goals
The first thing to acknowledge is that you can’t take on every area of your life simultaneously and magically transform it into the dream life you desire. Forget trying to quit smoking, lose 50 lbs., meet your soulmate, start a new business, and add $100 a week to your savings account all at once. It’s perfectly acceptable to have such goals in mind for the long-term, but first you have to start taking smaller steps.

Take a few minutes to think about the most important goals you have for the new year (try tackling just one or two at a time), and then consider ways to break them down into smaller goals. For example, a goal to lose 50 lbs. of excess weight can seem like a daunting challenge – but what if you broke it down into a smaller goal of losing 10 lbs. in January, 10 lbs. in February, and so on until you reach your goal weight? It seems much less intense, doesn’t it?

2) Focus on the Action Steps
Rather than basing your perception of success or failure on the RESULTS you achieve each day, instead try focusing on the action steps themselves. If your goal to lose weight involves cutting back on refined and processed foods, drinking more water, and exercising for 20-30 minutes each day, you can tell at a glance whether you are sticking to your plan or not. If you are, you are making progress. If not, you may need to adjust your plan to better fit your lifestyle. Set an appointment with yourself for a weekly review and pay special attention to old habits of self-sabotage that might get in the way of your goal.

3) Expand Over Time
After a few weeks have passed and you are consistently working on your new bite-sized resolutions, you may feel ready to start expanding your original plan. You may decide to increase the length or intensity of your workouts, add in a few daily action steps on other goals, or otherwise shift gears and broaden your horizons. Simply follow the same bite-sized process above and avoid taking on more than you can reasonably handle. A good rule of thumb is to consider what you know for sure you can handle each day, and then make a list of “extra credit” actions you can take if you have time and energy left over.

Resolutions Are Not Just for the New Year As you may have guessed by now, you don’t have to wait for a new year to begin setting goals and improving your life. Try setting new goals every month, or mini-goals every week. Consider what you would like to accomplish during the next week or month, create a plan for doing so, and get moving on it with consistent effort. Before long you’ll be feeling so empowered from all the progress you’re making that transforming every area of your life will seem much more possible – as long as you do it one step at a time.



Adding Stock Market Data to a Google Spreadsheet with a Perl Script

In the previous post it was shown how to download stock data data prices into Google spreadsheet using perl script.
This post will extend this script by considering situation when we just want to add the latest data to the existing spreadsheet with the data downloaded previously. For example first time we can download data for the last 3 month and then going forward in the future each day we will need only to add data for the previous day or days that are not loaded yet. This will significantly save time on upgrading process.

Below is segment of code that is used for adding new data to the existing spreadsheet with previously downloaded data. We call this mode = “ad”. In this mode we find blank row and then put values for the record that is matching to blank row number.

For this to work we need always have the same start date for our downloading data set.
if ($mode eq “ad”)
{ for($i=2; $icell({col => 1, row > $i});
$v=$cell->input_value;
if ($v eq “”)
{ for($j=1; $jcell({col => $j, row => $i});
$cell->input_value($data[$i-2][$j-1]);
} } }
exit; }
# end of if $mode = “ad”

Here is the whole script. To run it first time you need disable the line $mode=”ad”; by putting # in front of $ sign.
Then remove # so it will run in the addition of data mode.
Don’t forget also put your email, password and document / spreadsheet title names.
use Finance::QuoteHist;
#if first time download data into empty sheet $mode =””;
#if adding data to the sheet with previously downloaded data $mode=”ad”;
#disable this line if first time download data
$q = Finance::QuoteHist->
new ( symbols => [qw(IBM UPS AMZN)], start_date => ‘8/18/2013’, end_date => ‘today’, );
$count=0;
foreach $row ($q->quotes()) { ($symbol, $date, $open, $high, $low, $close, $volume) = @$row;
$date =~ s/\//-/g;
print “$symbol, $date, $open, $high, $low, $close, $volume \n”; $data[$count][0]=$symbol;
$data[$count][1]=$date;
$data[$count][2]=$open;
$data[$count][3]=$high;
$data[$count][4]=$low;
$data[$count][5]=$close;
$data[$count][6]=$volume;
$count=$count+1; }
use Net::Google::Spreadsheets;
my $service = Net::Google::Spreadsheets->new( username => ‘youremail@company.com’, password => ‘xxxxxxx’ );
my @spreadsheets = $service->spreadsheets();
my $spreadsheet = $service->spreadsheet( { title => ‘titlename’ } );
my $worksheet1 = $spreadsheet->worksheet( { title => ‘Sheet_name’ } );
if ($mode eq “ad”) { for($i=2; $icell({col => 1, row => $i}); $v=$cell->input_value;
if ($v eq “”) { for($j=1; $jcell({col => $j, row => $i}); $cell->
input_value($data[$i-2][$j-1]); } } }
exit; }
# if $mode = “ad”
$cell = $worksheet1->
cell({col => 1, row => 1});
$cell->input_value(“symbol”);
$cell = $worksheet1->cell({col => 2, row => 1});
$cell->input_value(“date”);
$cell = $worksheet1->cell({col => 3, row => 1});
$cell->input_value(“open”);
$cell = $worksheet1->
cell({col =>4, row => 1});
$cell->input_value(“high”);
$cell = $worksheet1->cell({col => 5, row => 1});
$cell->input_value(“low”);
$cell = $worksheet1->
cell({col => 6, row => 1});
$cell->input_value(“close”);
$cell = $worksheet1->cell({col =>7, row =>; 1});
$cell->input_value(“volume”);
for($i=2; $i { for($j=1; $jcell({col => $j, row => $i});
$cell->
input_value($data[$i-2][$j-1]);
} }
Now we can use this script for downloading and updating data on regular basis.



Downloading Stock Market Data to a Google Spreadsheet with a Perl Script

In this post will be shown how to download stock market with perl script into Google spreadsheet. Once the data is loaded in Google spreadsheet you can do trend or forecasting analysis and build charts using Google Docs functionality.

Perl script helps to automate downloading process, to replace manual downloading process with just one command to run script. The proposed perl script is using perl module Finance::QuoteHist.

Here is the example how you can get stock data using this module: use Finance::QuoteHist;
$q = Finance::QuoteHist->new ( symbols => [qw(IBM UPS AMZN)], start_date => ‘8/18/2013’, end_date => ‘today’, );

Now you just iterate through each row and do what you need to do with the data:

foreach $row ($q->quotes()) { ($symbol, $date, $open, $high, $low, $close, $volume) = @$row; }

In this example you will get data for 3 companies with the stock symbols IBM, UPS, AMZN. Below is the full code example showing how to download and save data to Google spreadsheets. To use it you need replace stock symbols and Google spreadsheet names with the actual names.
Also you need to put actual Google account username and password. The script is assuming that spreadsheet document is already created on Google Drive and has enough columns and rows to put data. In other words before running perl script add enough rows and columns to spreadsheet where the data will be saved.

Here is the link for free financial data from Chart Oasis in case you need more data Download free market data of stocks, indices, commodities and forex

use Finance::QuoteHist;
$q = Finance::QuoteHist->new ( symbols => [qw(IBM UPS AMZN)], start_date => ‘8/18/2013’, end_date => ‘today’, );
$count=0;
foreach $row ($q->quotes()) { ($symbol, $date, $open, $high, $low, $close, $volume) = @$row; print “$symbol, $date, $open, $high, $low, $close, $volume \n”;
$data[$count][0]=$symbol;
$data[$count][1]=$date;
$data[$count][2]=$open;
$data[$count][3]=$high;
$data[$count][4]=$low;
$data[$count][5]=$close;
$data[$count][6]=$volume;
$count=$count+1; }

use Net::Google::Spreadsheets;
my $service = Net::Google::Spreadsheets->new( username => ‘xxxxxxx’, password => ‘xxxxxxx’ );
my @spreadsheets = $service->spreadsheets();
my $spreadsheet = $service->spreadsheet( { title => ‘put_actual_title_here’ } );
my $worksheet1 = $spreadsheet->worksheet( { title => ‘put_actual_title_here’ } );
$cell = $worksheet1->cell({col => 1, row => 1}); $cell->input_value(“symbol”);
$cell = $worksheet1->cell({col => 2, row => 1}); $cell->input_value(“date”);
$cell = $worksheet1->cell({col => 3, row => 1}); $cell->input_value(“open”);
$cell = $worksheet1->cell({col => 4, row => 1}); $cell->input_value(“high”);
$cell = $worksheet1->cell({col => 5, row => 1}); $cell->input_value(“low”);
$cell = $worksheet1->cell({col => 6, row => 1}); $cell->input_value(“close”);
$cell = $worksheet1->cell({col => 7, row => 1}); $cell->input_value(“volume”);
for($i=2; $i<$count+2; $i++) { for($j=1; $j<8; $j++) { $cell = $worksheet1->cell({col => $j, row => $i}); $cell->input_value($data[$i-2][$j-1]); } }



5 Ways of Web User Modeling

Web user modeling can be done in many different ways. Below will be described some of them and will be provided the links to the resources.

One of the way of modeling web user behavior is to use Markov chains. This theory allows us to find the probability of clicking available links if we know the transition matrix. Elements of this matrix are the probabilities of moving from page i to page j

Clustering is the assignment of group of objects into subgroups (clusters) based on some metric. This can be also used to cluster users into some subgroups and then we can compare new user path with the cluster which is the most close to this user. More detailed description of clustering is provided at [1]

Vector space models use similarity to compare user data. Each user can be represented by visited pages, by some keywords from visited pages or some other data. With this model the user is represented as the vector in the vector space. Some perl code and examples for vector space modeling can be found at [2]

Soft computing like neural networks, genetic algorithm, swarm intelligence and many other heuristic or AI methods also can be used for web user modeling. [3] provides taxonomy for personalization of web-based systems by CI models. Collaborative filtering is a method of making automatic predictions (filtering) about the interests of a user by collecting taste information from many users (collaborating). [4]

Different types and many algorithms are described on Wikipedia site. Thus there are many ways to do web user modeling. This post provides some ideas and links to resources that can be used as the starting point.

References

1.Cluster Analysis, From Wikipedia, the free encyclopedia http://en.wikipedia.org/wiki/Cluster_analysis

2. http://www.lwebzem.com/cgi-bin/res/user_modeling_1.cgi Website User Modeling with Perl

3. RECENT ADVANCES in COMPUTER ENGINEERING and APPLICATIONS Personalization of Web-Based Systems based on Computational Intelligence Modeling TRICIA RAMBHAROSE, ALEXANDER NIKOV

4 Collaborative filtering, From Wikipedia, the free encyclopedia http://en.wikipedia.org/wiki/Collaborative_filtering



Cloud Computing

Cloud computing is the use of computing resources (hardware and software) that are delivered as a service over a network (typically the Internet). The name comes from the use of a cloud-shaped symbol as an abstraction for the complex infrastructure it contains in system diagrams.

Cloud computing entrusts remote services with a user’s data, software and computation.[1]

Example of cloud service is Google Cloud Storage which allows store, access and manage your data on Google’s storage infrastructure. The good description of the cloud computing is posted on Technology Cloud Blog [2]. It has also a list of some cloud services.

There are also cloud services that provide ability to develop programming applications. For example dotcloud.com allows to build your ideal application stack by combining powerful cloud services. You do need to pay for development. You start to pay only when you deploy your application. Developers can use PHP, PERL, Python, Ruby, MYSQL and other applications. Artificial Intelligence services in the cloud also can be found: Google provides prediction API which is cloud-based set of machine-learning tools that can help you analyze the data.

Another cloud service is Data Applied, a web based data mining environment. As stated on their site “Data Applied revolutionizes data-driven decision making by integrating rich analytics, data mining, and information visualization capabilities”

References

1.Cloud computing From Wikipedia, the free encyclopedia

2.What is in the Cloud ?

3.dotCloud

4.Cloud Computing

5.Turn on Google’s Prediction API for simple, AI in the cloud

6.Data Applied