September 6, 2017

using Google Sheets with Google Finance

One assignment for a class I teach is having students create a stock portfolio. To track the class portfolio's performance, I used Google Sheets so I could share it with  students (I couldn't for the life of me figure out how to share a portfolio created in Google Finance). Lucky for me, Google Sheets can easily work with Google Finance to pull data about stocks. I am very indebted to this post for helping me create the portfolio: https://business.tutsplus.com/tutorials/how-to-track-stock-data-in-google-sheets-with-googlefinance-function--cms-28182

And then I decided I wanted to track daily record of the value of the portfolio and decided to automate the process. To do that, I am indebted to this post: http://www.gadgetsappshacks.com/2013/08/how-to-automatically-record-daily.html

Just some notes on the process since I was a little confused (and I view this blog out as a kind of code-help for REALLY, REALLY non-coders :) ) This is the script that automates the recording of a daily value of the stock portfolio. Here's the script:


1
2
3
4
5
6
7
8
function recordHistory() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName("History");
  var source = sheet.getRange("A1:B1");
  var values = source.getValues();
  values[0][0] = Utilities.formatDate(new Date(), "GMT", "MM/dd/yyyy");
  sheet.appendRow(values[0]);
};

Notice that the script references only one worksheet-- the "History" worksheet (line 3). For some reason, I didn't pay enough attention that, but what that means is that any cells you reference must be in the same worksheet. In my case, the total value for the portfolio is calculated in the main worksheet so I also need to create cells that in the History worksheet that pull the values from the original worksheet.
  • Create a new document in Google Sheets
  • Create two worksheets in the document
  • Worksheet 1 should contain all the data (using Google Finance)
    • one cell in this worksheet should be designated "=Today" to pull the current date, and 
    • another cell is the day's portfolio total value
  • Worksheet 2 will contain the daily record (in the code above, worksheet 2 is the "History" sheet)
    • set up one cell in worksheet 2 so that it references Sheet 1's "= today" cell (this is the reference A1)
    • another cell should reference Worksheet 1's portfolio total (this is the reference to B1)
Don't forget that after you run the script and it works, you'll also want to create triggers to automatically record the date.

I'll post a template for the entire thing later, but I hope this helps someone.

April 3, 2017

more pen refills

If you've visited here before, you know my obsession with pens. Since the last pens post, I've added a few pens to my collection and fallen in love with another pen. My favorite ink is usually a Pilot G2. But almost by accident, I found myself writing with Pentel's Energel pen in 0.7mm because in my search for a clickable all metal body for the G2, I accidentally hacked a Pentel Energel into the Pilot Axiom. That mistake led me to realize that I love the Pentel Energel pens. Here are the colors for this refill:
from JetPens
Compare the Energel colors to the Pilot G2 refills:

February 27, 2017

the wonder of offset in Google Sheets and Excel

Every once in awhile, you want to grab every 3rd row of a set of data. After a bit of searching online and trial and error, I got it to work!

The formula turns out to be =OFFSET('sheet name'!$A2, 0, (Column()-2*n) where n stands for whatever number of columns you want to offset.

Here's what the formula means:

Make sure you include that (Column()-2 part; notice that in my case, I wanted every 3rd column.

January 20, 2017

reset the toner on your Brother printer!

This is brilliant and worked like a charm! I was tired of the Replace Toner message on my Brother HL2340DW printer. A little Google and this is what came up:
  1. Open the front cover and leave it open while completing the following steps.
  2. Turn the printer off.
  3. Hold the ‘go’ button while turning the printer on.
  4. After 3 seconds release the ‘go’ button.
  5. (USER MODE) will appear.
  6. Press the ‘go’ button NINE times.
  7. The Wifi led will flash once. (my wifi button flashed each time)
  8. Press the ‘go’ button 5 times.
  9. Close the cover. Your toner is now reset
  10. Press OK 3 times to print a status page and this will show that the toner has reset back to 100%
This solution came from the the good folks at easyink.

January 6, 2017

Blogger tweaks for new blogs

Here are some of the main tweaks I do for every Blogger blog.

- Create a TOC/Archives page
- Change the way search results are displayed (with only titles)
- Get rid of the "Showing all posts with labels message..."
- install a good search box
- create a Labels page
- remove Title of pages
center blog title (also listed immediately below)
- center page tabs

Here's the code for the centering the blog title and page tabs (put in the Advanced -> Add CSS section when customizing the template.
#header-inner {text-align:center !important;} #header-inner img {margin: 0 auto !important;} 

.PageList {text-align:center !important;}
.PageList li {display:inline !important; float:none !important;}

Optional, but good ones:
- Create a landing page (well I don't really do this for all blogs)
- Add more than one page widget Blogger

December 28, 2016

a comfy reading chair

For about as long as I can remember, I've wanted a comfy, dedicated reading chair- a place where I could really snuggle in and read to my hearts content. I'm sure this desire comes from a longing to recapture some feeling that always seems to be just out of reach. There are memories and feelings that stay with you; over time, they morph into a deep aching, happiness, joy, sadness, and even physical sensations are intimately bound to something that's not quite a memory, more like an impression or the left-behind ghost of a memory-- Proust's famous madeleines. For me, it's a moment or series of moments from childhood. At that age, we lived in an apartment with west-facing windows and I'm reading by them; I've spent hours reading and the sunlight is fading, dusk is settling into the what's left of the day. If my mother was home, I was allowed to sit on the porch or under the tree to read and in those memories I can almost feel the warmth of the fading light on my arms and face; I see myself looking up from my book, staring at the train tracks that ran in front the apartment, the weakening light glinting off the tracks-- and I'm wondering where the tracks go; they must lead to some adventure. Then I return to my book, back to the warmth, the fading light; it's as if I know even at that age that this memory would be special.The picture above comes close to capturing these feelings and below are some additional artworks of reading by windows.

setting up a subdomain for blogger

Creating a subdomain redirect for blogger is slightly different from doing the same for Google Sites. This post is specific to eNom since I had so many problems figuring this out. First here's the deal. I have a domain name: www.MyDomain.com. But I created several Blogger blogs and I want to create subdomains for them. For example, I wanted:
  • www.blog1.MyDomain.com
  • www.blog2.MyDomain.com
  • www.blog3.MyDomain.com
But I also wanted the naked subdomains to point to the same blogs. For example if someone typed in "blog1.MyDomain.com", (without the www), it should still go to "www.blog1.MyDomain.com".

It was easy enough to create the correct subdomain redirect in Blogger using any number of tutorials including Google's own directions, but I had a devil of a time setting up the second address correctly. After tons of searching and trial and error, it turns out that the solution is relatively straightforward-- I actually need to do two things:
  1. set up a custom domain as per the tons of tutorials and then
  2. set up a url redirect. 
So here's how I did it with Blogger and eNom.

December 2, 2016

tmobile's Gold rewards

I can't believe I just realized this. I'm sure I knew at some point, but somehow forgot but here's this post to remind me. In order to get calls for 10 cents/min on tmobile's grandfathered prepaid plan, we have to refill with a $100 card each time. Otherwise, the cost is pretty high.

$10 refill = $10/35 = $0.29/min or txt
$25 refill = $25/150 = $0.17/min or txt
$50 refill = $50/460 = $0.11/min or txt
$100 refill = $100/1000 = $0.10/min or txt

In other words, Gold Rewards gives you two benefits: 1) ensures that the minutes won't expire for a year and 2) gives an extra 15% worth of mins, but it does not bring the cost down to $0.10 per min/txts.

So in future, remember to refill with $100 cards!


Spend $100 in refills, and get instant Gold Rewards status.
Refill valueWhenever Minutes® / Minutes Expire
$1030 min / 90 days35 min / 1 year
$25130 min / 90 days150 min / 1 year
$50400 min / 90 days460 min / 1 year
$1001000 min / 1 year*

November 28, 2016

UPDATED - adding Google Play Store to Fire HD 8

UPDATE - 10/27/2017
So once again, I bought the 2017 Fire HD8 (7th generation for those keeping count). There was an amazing deal (now expired) where if you purchased a tablet with an American Express card and pts, you could get a $30 discount, so the price dropped to something like $27 ($79-$30 (Amex promotion) - $25 (Amazon sale for Prime members)! Again, I went searching to see how to install Google Play and it seems easier than ever to install Google Play! Just visit How to Install Google Play on 2017 Fire Tablets in 5 Minutes (Video) or the Liliputing site, follow the instructions, and you're good!

So from start to finish, this is what to do after your Fire HD arrives.

  1. unbox
  2. plug in to charge
  3. turn on Fire tablet  (you need to plug it in to turn on the tablet, but it should be partially charged already)
  4. choose language
  5. choose WiFi and log in
  6. tablet will search for software update and update
  7. confirm your identity
  8. choose to restore or do not restore your data
  9. Fire Options: Enable Location Services, Save WiFi to Amazon, etc.
  10. open the Silk browser
  11. in the Silk browser browse to one of the pages above
  12. shut down and restart the tablet and you're all set
++++++++++++++++++++++++++++


I wanted to make this post because the process wasn't as straightforward as I remembered. You see, about a year ago, I bought the very basic Amazon Fire 7" 8GB for about $30 when there was some kind of deal. It was a very mediocre tablet. This year, I'd read tons of good reviews about the Fire HD 8" 16GB and I had recently given my 8" tablet to my mom so I decided to buy it during Black Friday for about $59.

Last year, I was able to successfully install the Google Play Store on the Fire 7" so I was hoping to do the same on my new Fire HD 8", but as I said, I quickly realized that I didn't remember the steps and the online tutorials weren't all that straightforward. Basically you'll be doing 4 things: 1) installing a driver to correctly recognize the Fire tablet, 2) enabling the Fire tablet to allow debugging, 3) installing the Google Play Store, and 4) setting up the Google Play Store.

August 19, 2016

standalone html link for multiple Google calendars

I teach several classes and I create individual Google calendars for each class. Google makes it pretty easy to embed multiple calendars into a single webpage- in fact, there are tools right in Google calendar to generate the appropriate embed codes. But I also wanted a standalone url for that same embedded calendar and getting that takes a little tweaking. To be clear, it's easy enough embed multiple Google calendars into a single webpage (follow the link above or these instructions), but I'm interested in getting a a standalone url such as this one.