Google Fi – Cellular and Data for the World Traveler

[Updated: June 07,2022]
OK, they’re on to us. Google Fi’s Terms of Service state that Fi is intended for residents on the US. Before 2022, they seemed not to intent on enforcing this section of their terms. But since I had been using Fi outside of the US for several consecutive months without connecting to a US cell tower, they discontinued my data access, although I can still make calls, and send and receive SMS messages while abroad. While Fi may be a good option for people who often travel internationally from the United States, it is a less attractive option for permanent overseas residents.

The following is my original post from like 2017:

Google Fi service costs $20/month and $10 per GB of data (after the first 6GB data – the next 9GB are free). International calls cost an additional $0.20/minute, but I just use Skype, Messenger, WhatsApp or Hangouts and call for free using data. Add another line for an additional $15/month (in this case the free data doesn’t kick in until 10GB). You can also add a data-only SIM card for a tablet or compatible phone for free; just pay $10 for each GB of data it uses.

Google Fi works in most countries and there’s no need to switch settings or cards when traveling. Land in another country, turn off airplane mode and you’re online within a few minutes. Anyone calling your US number reaches you regardless of what country you’re in.

Fi also allows you to suspend service for up to three months at a time. Some people get the service just for travelling. They use a local cellular contract, suspending the Fi service when they’re at home and re-enabling it  when they travel. In this case, many couples also use just one line and get an additional data-only SIM card for the other spouse.

There are a few downsides. First, using Project Fi means I have a US number and not a local Korean number. This isn’t a big problem for me as virtually all of my communication is via messaging services.  Second, when I do make a phone call from outside the US, it costs $0.20/minute. But, if I need to make a lengthy call, I’ll usually use Skype or Hangouts and use data or Wi-Fi instead. Third, many Korean institutions expect users to have a Korean cell phone number to receive SMS messages. I finally relented and got a super cheap prepaid Korean SIM just for this purpose.

Crunching the numbers, I find that I’m paying a little more on average while in Korea than I would with a locally available plan (about $70/month vs. approx. $55). But in the summer, I’m no longer paying $120 for 2 months of AT&T’s prepaid plan while still paying for my $55/month Korean plan. I’m also not paying $20-50 to get a prepaid card every time I land in another country. I just keep paying about $70/month to burn through an average of 5GB of data through Google Fi. Due to the 6GB cap on data cost, my bill is never over $80 (plus tax).

If you’re interested in using the service, just head over to https://fi.google.com and feel free to use this referral code https://g.co/fi/r/9CV9YJ to get a $20 credit on your account.

Non-Fi Countries as of May, 2019

Roughneck Totes as Checked Baggage

Rubbermaid’s 25 gallon Roughneck Tote is the best container to use as checked baggage when transporting a lot of stuff via intercontinental flights. The length + width + height dimensions are the maximum allowed by airlines, maximizing the volume per piece of baggage, they stack nicely on airport carts and the handles make loading and unloading convenient. I have used this method since 2008, moving back and forth from the U.S. to Kuwait, Nigeria and South Korea, taking a couple dozen of these totes on several dozen flights. I’ve never had a problem and never lost a tote or lid.

They’re available at most Ace Hardware stores. On Amazon.com, the shipping charges are prohibitive. But if you visit my favorite hometown Blain’s Farm and Fleet, you can get 4 of them shipped just about anywhere in the US for around $20 each. While you’re there, throw in your 14″ zip ties, colored duct tape, packing tape, and Sharpie.

The only challenge is closing them up to remain sealed during travel. But, there is an easy way of handling this. I use a 5/16″ drill bit (8mm) to put 12 holes strategically placed around the lid which accept plastic zip-ties or 16 gauge solid-core copper wire to keep the tote sealed.

It’s important to put the holes in the right place so that if you use several totes, any lid will be able to be used on any tote with the lid and tote holes lining up perfectly. Check out my video for the details:

Shady – for super granular control of your Macbook screen brightness

On a recent trans-Pacific flight, I was doing some work on my Macbook. All was fine with the in-flight WiFi working pretty well. But when they turned off the lights after dinner, my screen was painfully bright-even on it’s lowest setting.

You can use shift-option-F1/F2 to gain some fine-tuning control over your screen’s brightness, but if you need more, there’s Shady – a tiny li’l utility that basically writes a variably transparent grey layer over your screen. That’s all. It’s great. Get it.

Shady - screen shader

Next Year’s Course Lists for Students and Course Rosters for Teachers from PowerSchool

I use a MacBook to do most of my work. This should work on a PC too, though navigating in Terminal might be a little different. Feel free to leave a message below to let me know if you run into problems and I'll see if I can help.

This spring, our principals want to give students their course lists for next school year with courses listed in alphabetical order. This is so that students can confirm their course enrollments without knowing what period or teacher they are assigned to. This is to help preclude students requesting changes to be with a particular teacher or friend.

I wrote a Python script to do this. <– Note: Change .txt to .py before running

We also wanted to provide teachers with class rosters so that they could look for any potential issues including gender balance.

Another Python script handles this. <– Note: Change .txt to .py before running

To get the data, use DDE to select records from the ScheduleCC table for the next school year. In my case, I set TermID >= 2700 since TermIDs for next year (2017-2018) are 2700, 2701 and 2702

Then I export the data using the fields below. The first 5 come from the ScheduleCC table. Other tables are: 2 Courses, 1 Students, 183 CustomText, 5 Teachers and 3 Sections. Note that for your PowerSchool setup, the Student_Email record may be located elsewhere.

Exported fields:
[1]Student_Number
[2]Course_Name
[1]first_name
[1]middle_name
[1]last_name
[1]Sched_NextYearGrade
TermID
[183]Student_EMail
Course_Number
SectionID
Expression
[5]First_Name
[5]Last_Name
[5]Email_Addr
[1]Gender
[1]Father_Email
[1]Mother_Email

Sorting of the data file is essential!


For student course lists, sort the data in this order: Sched_NextYearGrade, StudentID, Course_Name. If you just want to print course lists for just MS or HS,  remove the excess lines or refine your export from DDE. Save the file with the name sched_data.csv in the same folder as this script. Save this file as a csv file named sched_data.csv in the same folder as the shed_alpha.py script.

For teacher rosters, sort the data in this order: [5]Last_Name, [5]First_Name, TermID, Expression, SectionID, [1]Last_Name, [1]First_Name. Save the file as a csv file with the name roster_data.csv in the same folder as the class_rosters.py script.

To run the script, open Terminal and navigate to the folder containing the script and data file. For instance, if you saved them in a file called rosters in your Documents folder,

cd ~/Documents/rosters

and then run the script:

python class_rosters.py

The python scripts create an .rtf file for each student or teacher. Note that if you open the rtf file in preview, it may not show or print the page breaks that are in the documents. If you open them in MS Word, you should see them properly.

The scripts also create a handy Terminal command to bulk convert the rtf files to pdf format. This command requires LibreOffice available here. After running the the python script to create the rtf files, assuming all went well, you’ll see a folder with the current date and time in its name. Open the folder and find the file named convert_to_pdf.txt. Open this file, copy its contents, paste it into Terminal and hit Enter. In several seconds you’ll have your rtf files converted to pdfs. If you get an error message, Terminal probably isn’t in the correct folder. cd to the folder holding the rtf files and try again.

Oh, another little bonus is a file that gets created called 1mail_merge_info.csv. This has the three columns needed to use Amit Agarwal’s Mail Merge with Attachments to send them out to students and staff.

 

 

Creating individual corporate email signatures for staff

Our staff email signatures are a varied mix of good and bad. When I need to respond to someone who has just emailed me, I’d like to be able to look at the signature to see his or her position/title, room/office number and phone extension. For external email recipients, additional contact information should be included including a link to our website and to our Twitter feed. Personal badges and other clutter should be avoided for a clean, professional looking email. I want it to look like this:

Email Signature
Sample of desired email signature

Google Apps Manager or GAM (https://github.com/jay0lee/GAM/wiki) allows a Google Admin to set signatures for accounts in the domain. So, I use a Python script to create an html signature for each staff person as well as a batch file that tells GAM which signature file to upload to each account.

It all starts with a spreadsheet. The one I use is the Form Responses sheet from a Google Form I use to collect the necessary data from staff. I do this so that individuals are able to decide on how their names show and to ensure that we have accurate information about room numbers and phone extensions. This also allows the individual to decide whether or not to include a personal cell phone number in the signature.

The column headers in the spreadsheet are:
Timestamp, email, Name, Position, Room, Extension, Mobile, Include_Mobile

The script then processes the data in the spreadsheet to create a signature file for each row and staff member as well as a batch file that I run in terminal with the command:

python gam.py batch batchfile.txt

This creates the individualized email signature seen above. KIS social media links like official KIS Twitter feeds, Facebook and Instagram links will be added in the fall of 2017.

 

SQLDeveloper and Java 1.7.0_80.jdk

SQLDeveloper needs to run under a Java version greater than 7 and less than 8. Installing the most up-to-date JDK gets you at least version 1.8.0_131 (as of 26 April, 2017). You can find older versions of Java from their Download Archives where I was able to find version 1.7.0_80.

Alas, even after installing this version, SQLDeveloper “sees” the newer version that I also have installed on my Macbook Pro and not the required JDK.  Luckily one Paulo Pedroso on the stackOverflow posted a solution which was to edit the file
/Applications/SQLDeveloper.app/Contents/MacOS/sqldeveloper.sh
(I used nano) to the line that reads
export JAVA_HOME-‘/use/libexec/java_home -v 1.7’
and simply change the 1.7 to 1.7.0_80.

Yup, that’s it.

Enable PowerTeacher Pro for individual sections

Using DDA with the Sections table, filter the course and sections you want to change – making sure you select the current year so that you do not convert previous years’ gradebooks. In DDA, Click “Modify Records”. In the drop-down menu, choose “Gradebook Type”=2 to change all the selected sections to the new PowerTeacher Pro Gradebook.

For future reference, to enable PTP for all courses, from PowerSource:
Enable PowerTeacher Pro: PowerTeacher Pro is enabled at a section level by setting the gradebook type. You can set this individually by section or en-masse using DDA or Quick Import. You can also set the default gradebook type of newly created sections to PowerTeacher Pro in PowerSchool from the District > PowerTeacher Pro Settings > Default Gradebook Type page . Setting a section to PowerTeacher Pro will cause it to become read-only in PowerTeacher Gradebook.

Changing Extensions in Finder – Disable Verification

When you change a file extension in Mac OS, you are asked to confirm that you actually want to do so. This can be annoying to those who routinely change say, .txt extensions to .csv. Thanks to KirkMC’s post in MacWorld, a simple Terminal command will disable that confirmation popup:

defaults write com.apple.finder FXEnableExtensionChangeWarning -bool false

Then just relaunch Finder for the change to take effect:

killall Finder

Turning PowerSchool’s Parent/Student Portal On and Off

It’s the simps: In the District, under Setup select District. On the next page, under District Information, select Miscellaneous. At the very bottom of the page, find the checkbox for Disable Student and Parent Portals/Mobile Apps and check/uncheck as appropriate.
If turning the portal off, be sure to edit the message just below the checkbox.