Sunday, January 23, 2022

MacOS: Pulling Battery Data from IOReg to CSV File using Python and LaunchAgents

 I wanted to track battery data over time and have not found a reasonable approach using the current apps to store the information in a database. I decided the first step was to figure out how to pull the information and store in a CSV file. Next steps include either pushing to PostgresSQL and to Google Sheets.

First I found the ioreg command which enabled me to pull the data. I could have used a shell script but preferred to use Python 3 since it would give me more options in the future.

I used the command 

                            ioreg -rd1 -c AppleSmartBattery

Which enabled me to pull just the battery information I was interested in. I was able to use python to pull specific items and push to a csv file. I'm not sure I got everything I wanted but it is a start. Once the program worked I created a plist file to run it every 60 minutes via LaunchAgent. The cool part of LaunchAgents is the ability to run after coming out of sleep mode.

I did install pyinstaller to create an "executable" which I placed in the bin directory and it writes to a data directory. Below find the program and plist I used. 


local.batteryinfo.plist

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">

<plist version="1.0">

<dict>

<key>Label</key>

<string>com.username.personal.batteryinfo</string>

<key>Program</key>

<string>/Users/username/bin/battery-info</string>

<key>RunAtLoad</key>

<true/>

<key>StandardErrorPath</key>

<string>/dev/null</string>

<key>StandardOutPath</key>

<string>/Users/username/data/batteryinfo.out</string>

<key>StartInterval</key>

<integer>3600</integer>

<key>WorkingDirectory</key>

<string>/Users/username/data</string>

</dict>

</plist>


battery-info.py

!/opt/homebrew/bin/python3

import subprocess
from csv import DictWriter
from datetime import datetime

# datetime object containing current date and time
now = datetime.now()
nowDate = now.strftime("%Y%m%d")
nowTime = now.strftime("%H%M%S")
fileName = "/Users/username/data/batteryinfo.csv"

batteryRawInfo = {}
batteryInfo = {}
excludeList = ['+-o', '{', '}', "\r"]
headersCSV = [
'Date',
'Time',
'DeviceName',
'AtCriticalLevel',
'ExternalConnected',
'AppleRawCurrentCapacity',
'Serial',
'NominalChargeCapacity',
'FullyCharged',
'DesignCycleCount9C',
'MaxCapacity',
'DesignCapacity',
'IsCharging',
'CycleCount',
'AppleRawMaxCapacity',
'TimeRemaining',
'Temperature',
'VirtualTemperature',
'AtCriticalLevel',
]

def exist_and_not_empty(filepath):
try:
import pathlib as p
path = p.Path(filepath)
if '~' in filepath:
path = path.expanduser()
if not path.exists() and path.stat().st_size > 0:
return False
return True
except FileNotFoundError:
return False


def writeCSVFile(fileName, headers, batDict):
with open(fileName, 'a', newline='') as f_object:
# Pass the CSV file object to the Dictwriter() function
# Result - a DictWriter object
dictwriter_object = DictWriter(f_object, fieldnames=headers)
# Pass the data in the dictionary as an argument into the writerow() function
dictwriter_object.writerow(batDict)
# Close the file object
f_object.close()


def main():

with subprocess.Popen(['ioreg', '-rd1', '-c', 'AppleSmartBattery'], stdout=subprocess.PIPE, text=True) as proc:
# print(proc.__dict__)
# with proc.stdout.read() as stdoutString:,
# print(stdoutString)
batteryLines = proc.stdout.readlines()

for line in batteryLines:
if [ele for ele in excludeList if (ele in line)]:
continue

# print("Line: [{}]".format(line.strip().replace(' ','').replace('"','')))
if "=" in line:
(k, v) = line.strip().replace(' ', '').replace('"', '').split("=")
batteryRawInfo[k] = v

# print("Dictionary ........................... ")
# print(batteryRawInfo)

for key, value in batteryRawInfo.items():
# print(f'Key: {key}, Value: {value}')
if key in headersCSV:
batteryInfo[key] = value

batteryInfo["Date"] = nowDate
batteryInfo["Time"] = nowTime

# print(batteryInfo)
writeCSVFile(fileName, headersCSV, batteryInfo)

if __name__ == '__main__':
main()


I did have some issues loading the launch agent and finally download an application called LaunchControl. Helped with a permissions issue and fixed my issue.

Enjoy.

Saturday, February 6, 2021

Installing Python 3.9.1 and psycopg2 on Big Sur 11.1 - Apple M1

 I recently purchased my first Mac.  It is a MacBook Pro 13" M1, great little machine with lots of power.  The work I do is Python, ansible, and other miscellaneous development projects connecting to databases, lately PostgreSQL. I do use a laptop for photography work as well.  The first steps were getting the development environment up and running.  Microsoft VS Code went in smoothly and synced everything once connected to my Microsoft account.

Next was installing Python.  This was interesting as I wanted at least Python 3.8+ and for the M1 it seemed that 3.9.1 was the first real supported release.  The M1 with Big Sur comes with Python 2.7 and you do not want to replace it.

I found two ways to install Python 3.9, one using pyenv and one using brew. I did find that you do not want to mix the two.  I removed both and tired just pyenv by itself and got lots of errors with matplotlib, pandas, and psycopg2.  Most of the solutions I found did not seem to help and maybe I did not do the right things.  So I removed the pyenv install and went the brew install of Python 3.9.1 and here are the steps I used to get them the modules I wanted installed and working.


First installing Python 3.9.1

First thing I noticed with this installation is that everything ends up in /opt/homebrew and you will need to add directories to your path.

In my case homebrew was installed in /opt/homebrew by default. I followed the instructions on the Brew Homepage. Update your .zshrc to update the PATH on terminal startup.

export PATH="/opt/homebrew/bin:$PATH" 
Next install openssl and Python 3.9

$ brew install openssl
$ brew install python@3.9

I had number of modules that had issues getting installed, particularly dependencies for matplotlib and the next steps got numpy, pandas, and matplotlib installed without issues.

$ brew install openblas

$ OPENBLAS="$(brew --prefix openblas)" MACOSX_DEPLOYMENT_TARGET=11.1 python3 -m pip install cython --no-use-pep517

$ OPENBLAS="$(brew --prefix openblas)" MACOSX_DEPLOYMENT_TARGET=11.1 python3 -m pip install numpy --no-use-pep517

$ OPENBLAS="$(brew --prefix openblas)" MACOSX_DEPLOYMENT_TARGET=11.1 python3 -m pip install pandas --no-use-pep517

$ OPENBLAS="$(brew --prefix openblas)" MACOSX_DEPLOYMENT_TARGET=11.1 python3 -m pip install pybind11 --no-use-pep517

$ OPENBLAS="$(brew --prefix openblas)" MACOSX_DEPLOYMENT_TARGET=11.1 python3 -m pip install scipy --no-use-pep517

$ brew install libjpeg zlib

$ python3 -m pip install pillow

$ python3 -m pip install matplotlib

Next I installed PostgreSQL 12.5
   
$ brew install postgresql@12
export PATH="/opt/homebrew/opt/postgresql@12/bin:$PATH" 


Validate pip3 is being used from /opt/homebrew/bin/pip3
   
$ which pip3
Next set the following flags to install psycopg2-binary
   
export LDFLAGS="-L/opt/homebrew/opt/openssl/lib"
export CPPFLAGS="-L/opt/homebrew/opt/openssl/include"

Install psycopg2-binary using pip3
   
$ pip3 install psycopg2-binary

I found that I needed to ensure the python script has at the top a call to use python3
   
#!/usr/bin/env python3

Monday, February 22, 2016

Ham Radio: Digital Mode JT-65 and JT-9

Amateur Radio is another one of my hobbies.  In January I found this new Digital Mode called JT-65, so far I have used it on 10 meters through 40 meters and listened on 6 meters and 80 meters.  What is really neat about this mode is less power is more.  10 watts on 20 meters I worked Reunion Island from Longview, Washington and based on the signal report I could have probably used even less.


I won't go into what JT-65 is, but since you can read tons about it here.  WSJT stands for "Weak Signal Communication by K1JT."  The mode is used for EME (Earth-Moon-Earth) communications, meteor scatter and HF/LF communications.  
The JT-65 QSO is very short but very long.  You can only send 13 characters, uppercase A-Z, 0-9, slash(/), hyphen(-) and the space character.  Each side of the QSO takes 1 minute.  Yes! 1 minute so a standard QSO, from QSO to sign-off is 6 minutes.  Typically you will see something like:

CQ N7DQ CN86             <-- basic call for a QSO with grid square
N7DQ KG7EYC CN86    <-- Please talk to me
KG7EYC N7DQ -01        <-- Signal report for KG7EYC from N7DQ
N7DQ KG7EYC R-01      <-- Acknowledge signal report and send a signal report
KG7EYC N7DQ 73          <-- Thank you for the QSO
N7DQ KG7EYC 73          <-- Thank you for the QSO 

Remember this is one minute for each phase of the QSO, well actually, 47 seconds sending the transmission and 13 seconds of listening, deciding what to do next. Look at the list of stations, decide which one you want to talk with, and click on the call and ensure you have transmit enabled.

You can hear JT-65 on multiple HF and even VHF frequencies.  The sound reminds me of music from a child's music box.  This link provides a list of those frequencies and recommendations on Good Operating Procedures.  

Now your are thinking how do I try this mode out.  First I am assuming you already are doing some form of digital communication from your computer through your radio such as RTTY or PSK31.  If not, you will want to get a link between your computer and radio using something like a SignaLink USB or checkout and see if your radio can connect directly to your computer via a cable and do digital modes.  You should need a simple cable that you should be able to purchase from your radio manufacture or the place you bought the radio.

One other connection you might want to setup is Rig Control, this way you can use your computer to control your radio.  Again, the cable should be available via your radio manufacture or your radio vendor.  Search on Google for your radio and rig control or CAT, for example,  "Yaesu FT-897 CAT" or "Kenwood TS-850 Rig Control" and you should find something to point you in the right direction.

Now for the process to set things up. Your computer clock must be accurate to within a second or two.  From my experience with Windows 7, 8, and 10, Windows only updates the clock about once a day and for some laptops the time drift can be big.  First download Dimension4.  It is a basic install, accept the defaults, once installed start it up and configure it to start on Windows startup.  I have found that if you put your computer to sleep, having this running will help with time drift issues.

Next, download WSJT-x (1.6). During the install it will ask some basic questions.  There is a question about using hamspots.net, I recommend you take the default. While you run WSJT-x, it will report what stations you hear and the signal report you would give them.  You can later change this to pskreporter.info if you want and if you want to see a map of connection  go here. What is cool about this is you will see how far your signal can go around the world.








Image from hamspots.net spots:



Image from pskreporter.info spots on a map:


Finally, download JT Alert  - make sure you get the supporting applications as well. Install in the order downloaded.  JT Alert provides an interface to some logs and helps you track needed contacts for state, country or grid.

Basic quick start:
Start WSJT-x, go to File->Settings. Fill out the first tab with your information.  




Next if you have a rig control cable, go to the rig tab and configure it for your radio, 



next go to the audio tab and setup the connection to your sound card interface. 



There are some other options that are beyond this simple article and you will some good setup directions out there.  Read some of the docs for WSJT-x on setting things up, basically about 15 minutes, maybe 30 minutes or if you don't skim an hour.  This mode and setup is easy, follow the quick guides and get on the air.

Now make sure you started Dimension4, ensure it syncs your computer clock and is set to startup on booting the computer. Start WSJT-x followed by JT Alert. Set your radio to the recommended frequencies in WSJT-x and listen, let the program decode.

Focus on JT-65 not JT-9 at this time. Make sure you set your radio output power to no more than 10 watts, yes that is right 10 watts. More than that you will be splattering the band with noise and causing interference for other stations.  If you are getting lots of -01 reports, you might consider decreasing your power.  There is a site that will help you do a signal report and power comparison called dBCalc: Signal Power & dB Comparison.  One other reason to keep the power low is that this mode is full key down during the entire communication.  If you are using more than 50 watts or 100 watts, you could have some issues with your finals life span.

What I find interesting and cool is how well, WSJT-x pulls signals from the noise, here is an image of a station calling from Japan and for me is right in some noise either caused by propagation conditions, antenna issues, computer noise, radio noise or interference.  You can even have signals that are crossed over each other see both QSOs. Though if two transmitting signals are exactly on each other you may not decode either and the music is not good.

Go out to Youtube and do a search for WJST-x and find a couple of videos about operating in this mode -- probably should have told you this first but we are amateur radio operators and we try stuff before reading everything.

There are several other programs that do JT-65/JT-9 but I have found that I like the way WSJT-x works by keeping things simple.  I have downloaded and used the programs and they have some pretty neat features as well.  Here is a list of the other programs.  JT Alert will interface to each of them as well, so you may need to reinstall JT Alert to configure it to see these programs.

JT65-HF-Comfort by DL3VCO

JT65-HF HB9HQX Edition

JT65-HF by W6CQZ looks like it is no longer available and the project is abandoned.

Hope you give this mode a try and you should see me out on the air at some point.

73 de Mike - N7DQ

Sunday, April 7, 2013

So Consumer Beware!


 Early mid-week last week, I get a call about doing a survey out of Fort Collins, Colorado on energy efficiency.  Nice survey and took only 5 minutes like they said and had some good questions.  Well, if you give them your address, you are entered to win a gas card of anywhere from $25 to $100.  Guess what we won a $40 gas card.

Now hold on.  They deliver the gas card but ask that you give them an opinion on a piece of energy efficient equipment, and only an opinion nothing is being sold, and you then get your gas card after the person spends an hour getting your opinion.

Well, I say okay.  The guy shows up and first thing he says is out of these prizes which one would you take in addition to the gas card.  I say, "None."  They all looked cool but were all cheap, probably everything only about $50.

Next thing is he is trying to sell a air cleaner, a super special air filter and ultimately even a super cool vacuum cleaner.  Nothing about just asking our opinion, everything was for sell.  And supposedly the company only did surveys.    I did find out that if we did buy the special air filter we would have had to call a number to day we were getting it and they would send one of the prizes the guy mentioned at first.

Well we wasted one hour of time our time to get a $40 gas card and fortunately were smart enough not to buy anything.  We never asked the price of anything but we figured it would be expensive.  We did get the $40 gas card.

The gas card is ridiculous. You have to get your gas and receipt, send the receipt in with the card filled out and get back four $10 coupons that you can only use one a month over four months.  It takes at least 10 weeks to get the coupons back. I will see if we really get the coupons but I don't expect much for the effort.

From what I can tell the entire deal was a scam.  We were pretty careful not to buy anything and not to show the person around the house or leave anything expensive out.  Based on all this I think everyone they called won a gas card of some value.

So beware if you get a call for a survey and then an offer of a prize at the end of it and they tell you they will deliver it to you. Oh! And they just want an hour of your time for your opinion on a piece of equipment.  Run away, say NO! This is a total scam.    ----   Remember the old adage, if it is too good to be true it is probably a scam.

Monday, April 1, 2013

Camera Insurance, Do you have it?

If you don't have insurance for your camera gear, why not?  Yes, it costs money but your gear cost a lot more money and would cost even more to replace out of your own pocket.  If you are a professional photographer you probably have insurance and if you don't you need to consider it.  If you are an amateur, you should have insurance for your gear.

So after buying a Nikon D800 and several lenses along with a Nikon D90, I have several thousand dollars invested in this gear, to lose it, have it stolen or even broken would cost me even more.  I thought my home owners insurance would cover the gear and it did to a point, stolen or lost in a fire or tornado.  My home owners insurance did not cover the gear if it was in my car or if I dropped the gear in a lake.  Also, with my home owners insurance I have a $1,000 deductible and for some items the money would come out of my own pocket.

So I called my insurance company +USAA and talked to a person about insuring my gear. It was pretty simple, I provided an inventory of gear and what it cost me with tax included.  I had receipts and serial numbers already in a file so that made life very easy (Take a look at +Evernote, as I had note with everything in it.)  So for about $100 a year, I can insure about $10,000 of gear or for about $50 a year I can insure about $5,000 of gear.  Depending on the gear and coverage the amount will vary. Each quarter I evaluate what gear I have and pretty much anything over $100 gets insured.  If the gear is stolen, dropped, lost in a lake or the ocean, etc, I am covered.  Yes, I'll have the loss to deal with and the hassle of buying new gear and dealing with the insurance company but I'll get gear at least.

So are you insured?  If not consider it.  You may loss the gear you have and the pictures on that gear but the cost won't be as bad as it would have been without insurance.

Note: I have a love/hate relationship with insurance companies.  My house was hit with a tornado in 2008 and the insurance company was there and made life easy.  Last year my truck was t-boned by a semi and having to deal with auto insurance (two of them at that) was a pain I don't want to go through again.  So choose the company you deal with wisely.

Sunday, March 31, 2013

Weight Watchers, It Works!

My wife and I started Weight Watchers on January 11, 2013. Obviously, the primary goal is to lose weight and it is working.  As of today, we each have lost about 20 pounds each, so about 2 pounds  a week, which is a healthy amount to lose each week.

Weight Watchers is not about watching calories but uses a points system to help with weight loss.  A male weighing about 255 pounds has a daily point target of 48 points, a set of weekly 49 points and finally when you exercise you get so many points to use later that week based on the amount of exercise you do. For instance, if you do 40 minutes of elliptical training you earned 4 points.  Your primary goal is to use your daily points and if need be dip into your weekly points.

With Weight Watchers, you track your points each day and your weight once-a-week.  In addition, you can track some body measurements since you may not just lose weight but you are probably losing inches as well.  In some cases, in a particular week you may not lose weight but you may gain weight and the only indicator that things are changing with your body are the different measurements.

For tracking, you use the Weight Watchers web site and if you have a smart phone you can use the Weight Watchers application.  There is even an application for doing bar code scans of products at the store to determine their point value.  Newer products are probably not in the scanner tool but you can enter the fat, carbohydrate, fiber and protein values to get a point value per serving.

The cool thing about the points plan, is that you look at serving size and later when on maintenance after losing the weight you want, it will help you remember what a is a reasonable serving size.

There are times when using all your points can be tough, since you want to lose weight and try to eat less then you should eat.  One thing that helps is if you have a partner and you are working together on the points.   My wife and I each have our own accounts and we do breakfast and lunch separately, but dinner we do together.  We usually end up with between 18 and 20 points for dinner and it can be tough to fill those at times.  We bounce ideas off each other and come up with a plan for dinner.

The one thing we have a tough time figuring out is pasta and other items that are based on dry uncooked servings and what you have to measure out is cooked.  Still working on this one but we work around it the best we can.

I started to workout on the elliptical trainer about three times a week and built up to 40 minutes until March when I had to have surgery.  Since the surgery I have not worked out but I am still losing weight and I find that I am not hungry and usually pretty full 95% of the time.  If I need something extra like chocolate or peeps on graham crackers, I can do it since there are weekly points.  You just have to watch that you don't over do it and stay within the points.

I was a little reluctant to try Weight Watchers but wanted to lose weight and support my wife in her weight loss goals.  It is working and easy to use.


Saturday, March 30, 2013

Backups, Who Needs Them!

Do you do backups of your data, of your photographs?  Do you do on-site or off-site backups or both?

Consider this: You have 10 years worth of +Quicken data for your home or business.  In addition, you have 25 years worth of family photos that you paid hundreds of dollars to digitize.  Your house gets hit by a tornado, lightning or even a fire destroying everything and you have no backups.  How do you get your data back?  You don't if you are not doing backups.  This loss is going to potentially cost money and the emotional lose is there as well.

Tomorrow March 31, 2013, is World Backup Day, http://www.worldbackupday.com/.  It is a reminder to look at what you are doing or not doing for backups.  Backups should be a multi-tiered approach a combination of on-site backups and off-site backups.  The backup plan should include a plan for daily, to weekly and even monthly backups along with regular testing of a recovery.  Backups without the ability to recover your data is only half the solution.

On-site backups include using a Network Access Storage (NAS) something like +Drobo 5N 5-Bay NAS Storage Array filled with disk or even a Drobo 5D 5-Bay Storage Array, Thunderbolt/USB 3.0.  You may consider in the long-term to get two of these devices and use one for off-site storage and swap the devices out every couple of weeks.

Currently, my plan includes getting one of the Drobo NAS devices filled to the brim along with the 3 TB USB backup device and the 1 TB USB backup device I am currently using.  The plan includes backing up to each and then ultimately to the Drobo.

One solution for off-site backups include the cloud.  To me the cloud was a very scary place but the technology and bandwidth considerations have improved a great deal.  Using +Comcast.com, you would originally have a 205 GB limit per month, but last year Comcast took that limitation away.  The part was the technology issue.  How to get a full initial backup done in a reasonable amount of time.  The backups needed in my office took up 650 GB and grows about 2 GB to 20 GB after each photo shoot along with all the other data within the office.

Two solutions possible solutions, +Carbonite and +CrashPlan.  Carbonite minimizes the use of bandwidth, is secure and has several reasonable options for one, two or more computers. Carbonite does not offer a SEEDing service at the time I tested it.  My testing lasted about 9 months and in that time I could not get a full initial backup completed especially with the weekly growth I was experiencing.

CrashPlan has multiple options for the home or business, is secure, options for one, two or more computers plus the ability to backup a friends computer or backup to a friends computer. CrashPlan even offers a SEEDing solution for a cost. CrashPlan backs up the most current files first then goes through to the older files.  CrashPlan did not seem to care about bandwidth usage other then what the ISP might limit.

I ended up on February 15, 2013, moving from Carbonite to CrashPlan.  The solution I select was the CrashPlan+ Family Unlimited Plan.  I did get a significant discount for moving from Carbonite to CrashPlan for the first year but the yearly rate was even better than Carbonite's.  I was concerned about how long my initial full backup would take since I was not planning on using the SEEDing solution.  Based on information from the CrashPlan site and my available bandwidth via Comcast, I was pretty sure the backup would take about a month.  I am please to say it took a month to the day.

Each month, I select a directory and do a test recovery to validate I can get the data back to my machine.  CrashPlan has some great FAQs about switching machines if you get a new or if the worse case happens and you lose your entire machine how do you get all your data back.  I recommend before doing any kind of recovery you read the FAQs and if you are uncertain about how to proceed reach out to CrashPlan support.

Now, backups occur daily or right after a photo shoot to my local devices and an on-going backup everyday to CrashPlan.  I still need a new NAS solution to buy as my old NAS device has given up the ghost.

Your backup plan should consider both multiple on-site backup solutions and an off-site solution.  For off-site it is as simple as taking a backup device to the office or putting one in a safety deposit box or backing up to the cloud.  If you have no plan in place, create a plan, start small and grow your plan to fit your needs.

One concern I have with the cloud is what happens if the service I use goes out of business?  This is a concern for any cloud service.  Ensure you have built into your plan a solution in event this scenario happens.

If you do not have a backup plan or you are not doing backups, consider getting started today and worse case start tomorrow.  Realize everyday you put of doing any kind of backups off, you risk of losing data goes up.

If you have any comments or ideas, please comment.

Thursday, March 28, 2013

Getting Fit and Losing Weight

On January 11th, 2013, my wife and I started on +Weight Watchers and have had some good success.  No we did not lose 100 pounds in 3 months but we have lost about 10% of our original body weight and that is great.  A 10% loss in 3 months is good from a health standpoint.  In addition, we are learning what a real portion size is and when we reach our goal weight, we should be able to maintain that weight.  I would recommend Weight Watchers for guys.

One thing I was missing was how I was doing fitness wise.  Last time I lost a lot of weight, I tracked steps each day and other exercise.  So I started looking for a pedometer that would track steps but more.  My ideal pedometer would track steps, heart rate, calories and help motivate me.

I looked at Jawbone Up band by +Jawbone and it looked cool, but I did not like the interface to download the data, it seemed a little clunky.  The one feature I liked was the silent alarm that buzzed you every hour you were sitting still and got you moving.  The ability to keep it on wrist was good but if I went swimming I would probably have to take it off.  The price was okay at about $129 but just a bit more then what I wanted to spend.

I looked at the  Nike+ Fuelband but between price and that it did not do as much as the Jawbone Up, I dismissed it. Also, Nike has a habit of interfaces that a clunky and just a pain to work with.  The Fuelband and its interface could be great but $149 is a bit overkill.

After some thought, I remember a friend who had a Fitbit One  by +Fitbit and was having success with it.  It was not a band but Fitbit was coming out with a band.  The Fitbit One tracks steps, stairs climbed, sleep, calories and gives you an activity score.  Priced at $99 from Amazon.com, though if you search on Amazon you can find one for around $95.  My thought was get the Fitbit One start tracking steps and I pre-ordered the Fitbit Flex and then compare the two. Based on the initial information provided by Fitbit, the Flex would provide all the same information as the Fitbit One but on my wrist so I would not have to worry about taking it off and losing it.  The one problem I have had with the Fitbit One was I forgot to put it on after a shower so I lost 4 hours worth of data.  Also, it would sync with the iPhone via Bluetooth and have the data on their website.

Still the feature missing is a heart monitor.  I did get a Polar H7 heart rate monitor that will sync with my iPhone and then I can transfer data to the Fitbit site manually.  It would be nice to have a heart rate monitor that works with the Fitbit and have all the data in one place without manual intervention.

Right now I think the best fitness tracking device is the Fitbit One and until I can try the Fitbit Flex, I'll stick with the Fitbit One.

One thing I would like to see happen would be if Fitbit and Weight Watchers partnered together and you could get all the food and exercise data in one place.


Wednesday, March 27, 2013

First Infrared Pictures with the D800

On March 02, I went up Pingree Park Road past the Jack's Gulch camp ground to take pictures with +Justin King.  I thought I would try some infrared photography with the D800 looking over the High Park Fire burn area.

The Gear

Camera: Nikon D800
Lens: Nikon 28-300mm F3.5-5.6
Filter: Hoya 77mm RM-72 Infrared Filter
Tripod
Remote shutter release

The Picture Details

Aperture: f8
Shutter Speed: 30 seconds
Lens: 28mm

The Shoot

I setup just off the road in a small valley with a creek running through it.  One of the things I wanted to happen with the picture was to get the wispy clouds that a long exposure would give as well as seeing what the burn area would look like in infrared as compared to trees not burned.  First goal was to get the focus right, so first I used the auto focus without the Hoya filter and then set the focus to manual and put the filter on.  In addition,  making sure the vibration reduction was turned off.

The picture below is the result and partially what I expected but also there is a oval of over exposure which was very disappointing. All of the pictures I took with the filter looked similar to this one.


After some research, a hypothesis was formed.  The D800 view finder has a switch to put a cover in place which I did not use.  It was an extremely bright day and the sun was off my right shoulder.  So I'll be doing some testing of this hypothesis over the next couple of weeks.  Closing the view finder will probably have an impact on my night time photography as well, so this will need to be tested out at night as well.

I was able to salvage the picture somewhat and experiment with Lightroom 4.3 and Photoshop CS6 setting to get the look of an actual infrared picture.


The cool part is I was able to validate that I got the clouds looking like I wanted and to try out the infrared filter under actual conditions in a setting where I was not rushed.

As I test out infrared in the future, I'll post more information about the post processing with Lightroom and Photoshop.

See update at Second Infrared Pictures with the D800.