We wanted to accomplish this task on the opening day of the Fall Hiking Spree, but had a prior engagement (family vacation) already scheduled, so we missed the first day. Without having a special day now in focus, we just picked one at random when we were feeling good. That day was October 7th.
Daleen is homeschooled, so I gave her a school assignment: look at all of the available trails to hike as well as the park locations, compute the most efficient route taking into account the park location, trail length and difficulty level. From that, she created an organized trip itinerary with no back and forth traveling and one we could get done in the least amount of time.
Our day started at 6am where we got into our hiking clothes, gathered snacks for the trip, and loaded the car. We were gone by 6:30am, arrived back home at 3:08pm and hiked 8 trails totaling 12.6 miles. Arriving back home, we were beat but already planning the next Fall Hiking Spree, which we think we can get done by lunch this next time around.
Deep Lock Quarry - Quarry (1.2 mi, 7:01am - 7:30am)
We had to leave in this first shot, Daleen really liked our shadows cast by the high beams on the car.
Furnace Run - Rock Creek (1.0 mi, 7:51am - 8:14am)
Nature Realm - Cherry Lane/Fernwood Loop (1.1mi, 8:41am - 9:00am)
We saw 18 deer total on this trip, mostly on our morning hikes. These three deer at Nature Realm gave us the best show. We got pretty close to them. Please bear in mind these are shots from a cell phone. Try to find all three deer in this photo.
Here are two different deer on either side of the path. Keeping our pace up we split the group of three into two.
Sand Run - Dogwood (1.8 mi, 9:12am - 9:56am)
Luck Shoes Detour
I had been out shopping for general shoes the prior day and really wanted to try on a few other shoes before I forgot what the other ones felt like. We were ahead of schedule, so here we detoured via Fairlawn to visit Lucky Shoes. That cost us about 50 minutes, but I got a nice pair of casual shoes!
Gorge - Highbridge (3.2 mi, 11:12am - 12:11pm)
Goodyear Heights - Piney Woods (2.0 mi, 12:53pm - 1:34pm)
Firestone - Redwing (1.1mi, 1:56pm - 2:19pm)
Silver Creek - Pheasant Run (1.2mi, 2:40pm - 3:03pm)
Silver Creek is our home park. With the new purchase there, we are actually now surrounded by Silver Creek park, so this is our final trek.
Home (3:08pm)
We very much enjoyed the Fall Hiking Spree this year. As a family (wife and 4 daughters) we have been hiking the Fall Hiking Spree aside from this. As a family, we have 5 of the 8 hikes done and will be finishing up in the coming weeks.
If you have not tried the Fall Hiking Spree put on by Summit County Metro Parks yet, please do, you will not be disappointed!
]]>~/Library/Application Support/MailMate/Resources/KeyBindings/filename.plist
Filename can of course be anything you would like.
I have broken my key bindings into several logical sections in the file to help me maintain it. You will notice that I use a scheme of lower case letters for common operations and then the same letter but capitalized for a similar “alternate” action.
Composition
Key | Purpose |
---|---|
c |
Compose a new message |
r |
Reply to All |
R |
Reply to Sender Only |
f |
Forward Message |
Early Example
The entire file will be included at the bottom of this post, but for an early example, if you were to have only the above four bindings, your Keybindings plist
file would look like:
{
// Email Creation
"c" = "newMessage:";
"r" = "replyAll:";
"R" = "replySender:";
"f" = "forwardMessage:";
}
These are simple bindings. Later, we will get into using multiple keys to perform an action and also a single key performing multiple actions.
Full information on the format of this file can be found in the MailMate Manual under the section “Custom Key Bindings.” You probably also want to look at the “Key Binding Selectors” section as well went developing your own key bindings, as it shows all the available selectors as given by MailMate. The “Selectors” are the commands to perform, such as “newMessage:
“, “replyAll:
“, etc…
Sending from the Composer
Key | Purpose |
---|---|
⌘+Return |
Send Message |
⌘+Enter |
Send Message |
⌘+\ |
Send Message and move to “Delegated” folder |
More on my “Delegated” folder is explained below.
Filtering
Now, right here is where most of my workflow is defined and how I am able to quickly work through email, spending as little time as possible with it, a good thing.
Key | Purpose |
---|---|
s |
Move to Junk |
h |
Train falsely marked spam as ham |
x |
Delete Message |
X |
Delete Thread |
m |
Move Message to Mailbox (will prompt) |
M |
Move Thread to Mailbox (will prompt) |
d |
Move Message to Deferred |
D |
Move Thread to Deferred |
e |
Move Message to Delegated |
E |
Move Thread to Delegated |
a |
Archive Message |
My email server has a few special boxes setup for handling Spam. I have a Spam folder which includes messages the server was reasonably sure was spam. I then
Occasionally, I will then go to my “Spam” folder (not TrainBad/TrainGood) and see if there are any false positives. If so, I can press the h
key which will copy the message to my INBOX and also move the one from “Spam” to “Spam.TrainGood”, thus teaching my server the message was good not bad.
I debated the e
and E
(“Delegated”) commands because typically one would reply to an email, with instructions to who person who the task has been delegated to, and then mark the original as delegated. When composing a new message, you can send with ⌘+\
to perform this exact action. I added the e
and E
commands in, though, because I also communicate with my co-workers via IM and sometimes many times a message includes multiple people in my department. Thus, I’ll say on IM, “Please handle email XYZ.” and mark it as delegated via e
or E
.
Navigation
Key | Purpose |
---|---|
. |
Goto the root message in a thread, the message that started it all |
, |
Goto the last message in the thread |
/ |
Search all messages |
j |
Goto the next message |
k |
Goto the previous message |
J |
Goto the next thread |
K |
Goto the previous thread |
Now, here I also have a command g
which is a key prefix for “Goto”. When pressing it, one must then press another key (that is then unique to this key sequence) to achieve a result.
Key | Purpose |
---|---|
gg |
Goto a mailbox (prompts) |
g |
Goto the INBOX (g SPACE) |
gi |
Goto the INBOX (duplicate, sometimes easier) |
gf |
Goto the FLAGGED mailbox |
ga |
Goto ALL MESSAGES |
gA |
Goto the ARCHIVE mailbox |
gd |
Goto the Deferred mailbox |
ge |
Goto the Delegated mailbox |
gw |
Goto the Waiting on Reply mailbox |
gs |
Goto the Spam mailbox |
Message State
Key | Purpose |
---|---|
! |
Toggle message Flag |
n |
Toggle the Read/New state |
- |
Toggle the Mute state |
Miscellaneous
Key | Purpose |
---|---|
u |
Undo |
z |
Redo |
o |
Show thread |
Comments on my Workflow
Basically I keep an INBOX that is clear of any messages. When processing my email, I’ll either handle it, defer it, delegate it, delete it or mark it as spam. That handles all of my incoming email situations and the keybindings enables me to accomplish that task very quickly. At my leisure, I can then browse my Deferred
, Delegated
or Waiting on Reply
folders looking for real work to be done. No other mail program I have used allows me to perform this so efficiently.
I have smart mailboxes setup that will look at each of my accounts (3) and include the proper mailbox from each account. For example, I have a Delegated folder in each of my accounts, and then a smart mailbox that simply includes All Messages from Account 1 > Delegated
, Account 2 > Delegated
, and Account 3 > Delegated
. The same for Deferred.
I then have a little more complex setup for messages Waiting on Reply, but you can read about that in my “Waiting on Reply“ blog post I did a few days ago.
Keybindings File
So, here is my entire keybindings file.
{
// Jeremy's person key bindings for MailMate
// Email Creation
"c" = "newMessage:";
"r" = "replyAll:";
"R" = "replySender:";
"f" = "forwardMessage:";
// Sending
"@\U000A" = "send:"; // ⌘+return
"@\U000D" = "send:"; // ⌘+enter
"@\\" = ( "sendAndMoveParentToMailbox:", "/Delegated" );
// Filtering
"s" = "moveToJunk:";
"h" = (
"copyToMailbox:", "/Spam.TrainGood",
"moveToMailbox:", "INBOX" );
"x" = "deleteMessage:";
"X" = ( "moveThreadToMailbox:", "trash" );
"m" = "moveToMailbox:";
"M" = "moveThreadToMailbox:";
"d" = ( "moveToMailbox:", "/Deferred" );
"D" = ( "moveThreadToMailbox:", "/Deferred" );
"e" = ( "moveToMailbox:", "/Delegated" );
"E" = ( "moveThreadToMailbox:", "/Delegated" );
"a" = "archive:";
// Navigation
"." = "rootOfThread:";
"," = "lastOfThread:";
"/" = "searchAllMessages:";
"j" = "nextMessage:";
"k" = "previousMessage:";
"J" = "nextThread:";
"K" = "previousThread:";
"g" = {
"g" = "goToMailbox:";
" " = ( "goToMailbox:", "INBOX");
"i" = ( "goToMailbox:", "INBOX" );
"f" = ( "goToMailbox:", "FLAGGED" );
"a" = ( "goToMailbox:", "ALL_MESSAGES" );
"A" = ( "goToMailbox:", "ARCHIVE" );
"d" = ( "goToMailbox:", "F5DEB018-5694-4805-AB01-6EF1E94CDAB8" ); // Deferred
"e" = ( "goToMailbox:", "016DB3A1-1BE6-4468-A04D-468A727D11FB" ); // Delegated
"w" = ( "goToMailbox:", "4BC9DBA9-ED59-4D90-A66F-5472477ED9D4" ); // Waiting on Reply
"s" = ( "goToMailbox:", "Spam" );
};
// Message State
"!" = "toggleFlag:";
"n" = "toggleReadState:";
"-" = "toggleMuteState:";
// Miscellaneous
"u" = "undo:";
"z" = "redo:";
"o" = "showThread:";
}
To make this file work, it must be placed into:
~/Library/Application Support/MailMate/Resources/KeyBindings/filename.plist
Where “filename” is any name you wish to give to this Keybinding. In MailMate preferences, General > Custom Key Bindings, you enable and fill in the name you gave to this set of key bindings, the name alone, not the path or extension.
For example, I named mine:
~/Library/Application Support/MailMate/Resources/KeyBindings/Jeremy.plist
and my General > Preferences screen looks like:
goToMailbox commands for Deferred, Delegated and Waiting on Reply
These mailboxes are not standard mailboxes and MailMate does not understand them by name. The reasoning being, I am guessing, is that which mailbox would you be referring to when you say “Delegated,” for example. I have a smart folder named “Delegated” as well as a “Delegated” folder in all three of my accounts. Thus, I had to get the UUID of the exact folder I wanted to access. Luckily, MailMate provides a quick and easy way of doing this. Simply click on the folder you want to get the UUID for, and press ⌘C
. This will place the UUID for the selected folder into the clipboard.
Conclusion
This is in a state of flux. I would be very happy to have comments on how I set rethings up, suggestions for improvement, etc… I’d also be interested in hearing how you have configured MailMate to do specific things for you that you find increases your productivity.
]]>This is how I accomplished that task.
Two smart folders are created, one named “Waiting on Reply” and the other “Has Answer.” When sending a new message that requires a reply, I add the tag “WaitingOnReply.” The smart folder “Waiting on Reply” searches the “Sent” folder for any such message. The “Has Answer” folder searches the “Inbox” folder for any message who’s thread id exists in the “Waiting on Reply” folder.
Thus, I wind up having a folder that shows me the emails I am waiting for a response of and a folder showing me responses to messages I wished to be alerted about.
Any
in the Sent Messages
folder. All
where the Tags/Keywords
include WaitingOnReply
Any
in the Inbox
folder. All
where the Thread-Id
is in the Waiting On Reply
smart folder. Note: To get the selector “Thread-Id” you must select Other
from the drop down box and choose it from the resulting combo box. You can quickly find it by typing “Thread” into the search box. NOTE: I believe I have chosen a bad name for this folder, I will probably change it to “Has Reply” to better match its sibling folder “Waiting on Reply.”
I did do one more thing… I changed the “Displayed Count” on both the “Waiting on Reply” and “Has Answers” folders to by “All.” This allows me to see how many messages are waiting on a reply and how responses I have to my very important messages.
With that change made, if all worked you should see a 1
by the “Waiting on Reply” folder. Clicking on it, you should see the message you just sent.
Now, if you sent that message to yourself for testing, go ahead and reply to it. Once the message is delivered and arrives in your Inbox, you should then see that the “Has Answer” folder has a 1
by it also.
When this happens, I view my “Has Answer” folder, double click on the subject which then shows me all the messages in this thread. I can handle it, delete it, archive it or what ever needs to be done.
You can edit the “Has Answers” folder and add a rule with an action. For example, you could play a sound when a new answer arrives in your mail or even run a script to do something more noticeable such as popup a dialog for those really important ones!
You have to do something with the message you sent to get it out of the “Waiting on Reply” folder. I have done this for a long time, so it is not a big issue to me, but I tend to move the messages to a Project folder or archive them. Another option would be to remove the “Waiting on Reply” tag, but that isn’t the most convenient.
Please let me know if you have any ideas about this workflow, improvements, etc… Always looking for better ways of accomplishing tasks!
]]>First, some background: I have been flying larger quads with brushless gimbals, GPS controllers, etc… I made the break into an FPV quad with the Flip FPV by Hover Things. I quickly learned that I had no idea how to really fly a quad copter, so I purchased the SimpleCopter V-Tail and began to learn how to fly. This was a great quad to teach quad flying LOS (I think) because it is very easy to determine front from rear. I painted mine a florescent green and pink, so it really stood out.
I wanted more, though. I wanted to do some close proximity flying. Thus, I began my search for a 250mm mini-quad. After searching for a while, I decided to get a relatively new 250mm quad, the BPQ-250 from BP Multirotors. BPQ stands for Bullet Proof Quad and is made of Polycarbonate. It is suppose to be indestructible. I first learned about the BPQ-250 from it’s creators post on RC Groups and soon after placed my order for 2. Why 2? I break things… a lot, even indestructible things… besides that it’s a great price!
The BPQ-250 is so easy to build, it doesn’t really warrant a build log per-se. I did take some pictures along the way that’ll I’ll share, but first… what did I put in my BPQ-250? In the order of RX signal out -> video signal back…
And now for some build pictures:
Legs mounted to the bottom plate
SunnySky 2204/2300’s mounted
Vibration dampening installed as well as the MultiWii Flip 2.5
ESC signal ground and signal power removed from three controllers. Later I trimmed the wires quite a bit on all 4 ESCs as they were pretty long.
My light weight, cheap power break out board. It’s a circular perf-board from Radio Shack. I soldered positive wires on the right, negative on the left. I then stripped a good deal off the main battery power wires to link them all together. The perf-board is just used as an anchoring point.
A little more detail on my perf-board distribution board. I have some liquid electric tape that I will paint on once I am sure I’m done.
All the gear just sitting on the quad, the top plate is not mounted down. I did this just basically to make sure everything fits as I envisioned and also to get some early idea of my AUW, which turned out to be 539g with a 1350mAh 20C battery.
I used 3M Extreme Mounting Tape on the ESCs, Power Filter, Battery Alarm and RC RX.
I label all my batteries. My system is the mAh rating - sequential number. So, I may have 1350-1, 1350-2 as you see here and also 3300-1, 3300-2, … I then keep a battery log as to the number of uses/charges, the cell resistance is periodically checked and logged as is balance charges.
I’m not entirely happy with my Mobius mounting. I really like that it is protected, but it is hard to swap from aircraft to aircraft and worse yet, in this configuration it is mounted upside down while all other aircraft I use it on (planes and my V-tail) it is mounted right-side up. Thus I have to reconfigure it when switching to other crafts.
This is a mess, but it is temporary. I only have one and I think I only need one, but that is the Bluetooth Adapter. I connect this and zip tie/velcro the wire out of the way somewhere only when configuring a new quad. I don’t like to plug it into the computer, change the PID settings, unplug, fly, plug it into the computer, …
Thus, I slap the bluetooth adapter on (works for my MultiWii and CC3D controllers) and can configure the controller on the fly. The only way to go.
Here it is in a completed state in all its glory. Yes, the antenna has seen better days. Oh, this is on my trampoline which I typically use for beginning hover tests (after a hand held test to make sure control directions are correct). The trampoline not only allows for a cushioned landing but also a slippery surface to scoot around on while testing initial sensitivities.
If you look close, you can see the battery alarm in the front of the quad and the LC Power Filter in the rear. Also notice the signal wires for the ESCs. I only use the BEC from the first ESC. The rest are all wired into a single servo connector. They all have a common ground via the connection to the battery.
I also only use a single servo connector from the RC RX to the flight controller. That one connector passes power to the RX (+ and ground) as well as the CPPM signal stream.
The other side of the quad.
First Flight
I left the configuration alone for the MultiWii Flip 2.5 to start with. I believe the P values are a smidgen too high, but after hovering around for the first pack, I decided it was good enough for a first FPV flight around the farm.
I didn’t do anything daring, stayed a good 10’ above the ground and just flew around the farm staying away from trees and other obstacles. I like to prove the craft and also gain a good feeling for it before doing anything too crazy, especially since I am just learning proximity flying.
Conclusion
I will be cleaning up the wires a bit more as well. The problem? It was getting toward the end of the day and I wanted to go fly! So, I didn’t really trim the RX -> FC servo connection, nor the Mobius -> VTX. Those wires look terrible in the quad. The Bluetooth wires also do, but I don’t worry about that since it is not a permanent member of the quadcopter.
I am very happy with the quad. I like it’s simplicity and strength. I know this isn’t much of a summary, but I only have 1 real flight on it thus far, and at that, the controller isn’t setup totally right. So, as time goes on you will be hearing more about the BPQ-250 for sure!
]]>Thus, I purchased the Easy Star 2 Kit Version. From that I built only the fuselage, but not after boring out compartments, testing weight and balance on my existing Easy Star, making nice wiring harnesses for the FPV gear, etc…
So, my new Easy Star 2 equipment:
This is fully what you get with the Dragon OSD. This, in my opinion, is not a bad
thing. I made a lot of wiring for my particular setup. With the EagleTree system
coming with all the wires, I used them instead of making custom cables. The EagleTree
system quickly became a rats nest of wiring, almost all of it from excess amount
of wires. Sure, I could have made my own wiring for the EagleTree (more connections)
but I gave into the temptation of a quicker build using supplied cables, as I think
many do.
I couldn’t wait until everything was built to see the DOSD on my LCD! I wired up
the bare minimums and took it outside for a go, and it’s first GPS fix.
Later I wound up cutting off the heat shrink tubing from the current sensor and
directly wiring the LC Filter and BEC to it, thus reducing the amount of connectors
and excess baggage of their wires.
The barometer is a standard BMP085. I did heat shrink the unit and cut a little
hole around the barometer sensor.
Everything going in my plane is here, wired and working with the exception of the
already mounted rudder, elevator and aileron servos.
I did, however, later change the way the LC Filter and BEC are wired, you will
see pictures of that a bit further down.
Now that everything is confirmed to be working, I shrink wrapped the DOSD. This will
make mounting easy, light and give some protection.
My plan on where everything should go. I put the components roughly in these
locations on the outside of my old Easy Star 2 fuselage for weight and balance
testing. I’m happy to say that with this configuration, I have quite a bit of
freedom on my CG simply by shifting my battery around. I can balance easily with a
2200mAH, 3300mAH and even a 5100mAH battery (which does fit in the main compartment
now that most of the other electronics is in the tail boom)!
I only removed one arch support and not all the way. I took only enough away, In
wanted as much to stay for structural support. However, later when building and
mounting the components, I wish I would have bored them out a bit larger to provide
some breathing room. The way it is now, the components have to suck in their guts,
be wiggled and jiggled into place and then they can relax but with some continuous
pressure from the sides and top.
Looking back at things, I will probably wire this a bit differently sometime in
the future. As it stands now with my wiring, the OSD, Camera and VTX do not show up
in the current draw, thus their power is not computed in the overall mAH used. For
some reason I didn’t catch this prior to mounting everything.
Here you can see the shielded wiring harness for the camera video/audio and video
transmitter video/audio. The shields are grounded only at the OSD.
I am working on a much nicer pod with at least pan support. I am unsure if I will
be adding tilt or not. I wish to keep weight as low as possible and so far flying
when I do have tilt (Penguin) I have not used it all that much.
This is the part I love! There are only 3 cables to deal with… Power to the
FPV pod, Video and Audio (to and from the OSD) and a Pan Servo wire. With the new
pod, I may make a single connector for these three wires, not yet decided.
I simply used Scotch Extreme Tape as a hing in the front, an old control horn laying
around as the handle and two tiny rare earth magnets on the tail end to keep it
closed.
This is one area with my build I am disappointed with. Everything is neat and clean
but it was much tighter than I was anticipating. I can remove the RX and DOSD without
unwiring anything, but they fit very snuggly in the compartment. I would have rather
had a bit of extra room in there, but not this time around.
This is something I can fix pretty easily (I believe) and will do on this
build once I get a bit more time on it. Maybe with more time I will find other
things I wish to change and can then do it at the same time.
Here is my FPV setup:
You can see a few videos of my FPV flying:
Various pictures of my setup:
Over the past 7 years or so I have used Vim on and off. I am not a newbie but far, far, far from an expert. To help reduce the amount of key wacking in a given day, I am moving back to Vim. These days I program mostly in Tcl, Python, HTML and JavaScript. Thus, I have found some plugins that really make things nice.
In alphabetical order:
My .vim files are sure to be changing quite a lot in the next few months, but they are available for all to see: github.com/jcowgar/dotvim
I’ll be writing more on Vim and my setup as time permits. I do not plan on spending much time talking about how to install or configure the plugins, there are plenty of places on the web that can help you there. I do, however, plan on writing how Vim is helping me type less with less strenuous key commands and how these plugins help in that venture.
]]>Why do I do this?
How do I do this?
I use one of many static site generators. The generator I chose to use is PieCrust. All it requires is the command line version of PHP installed on the computer you wish to do your work on. OSX has everything you need already installed.
Once I add a new blog post, or run my export observation reports, all I do is run chef bake --root=jeremy.cowgar.com
and all is done. For this blog, it takes my MacBook about 420ms (roughly 1/2 a second) to generate my blog from scratch. Normally I am only updating a page or adding a new post. It then takes less than 100ms (1/10th a second) to simply do an update.
How do I get my observation reports on my blog?
Finally, what you’ve come for! I use a program called AstroPlanner. It has the ability to be scripted. I simply wrote a script that loops through my observations creating static observation report files in the markdown format as if I would have typed it in myself. PieCrust then picks those files up and makes it a part of my blog.
I had thought of uploading my script to the nice user contribution section of AstroPlanner, but it is still in its infancy and I would like to see two things before I do this:
So, until I get the above two questions answered, I will simply include the code here. Please note, that to use it you should change three lines in the main
sub routine in the script. These lines define where the files should be written. Chances are you are not going to be writing your files to my home directory in a sub-directory named jeremy.cowgar.com
!
Please feel free to send me an email, comment on this post or contact me on the AstroPlanner users group with any questions about the script.
//- Export observation data to a blog run by PieCrust or a similar //- static site file generator capable of parsing Markdown. //- //- Each session will create a blog post that lists objects //- observed during that session along with all associated //- notes. An addition file will be created that will list //- all objects observed in order of its ID stating simply //- the last date it was observed. //# Author: Jeremy Cowgar //# E-Mail: (jeremy [AT] cowgar -DOT- com) //# Category: Category|Hierarchy|Here //# MinVersion: 2.0 //# Keywords: Blog, Observation, Export, Markdown //# URL: http://jeremy.cowgar.com function observationFilename(baseFilePath as string, d as Date) as string return baseFilePath + ":" + d.SQLDate + "_observation-session-" + _ Format(d.Hour, "00") + "-" + Format(d.Minute, "00") + "-" + Format(d.Second, "00") + _ ".html" end function function SplitID(o as APObservation) as Pair dim prefixIndex as integer = 0 dim chCode as integer = 0 do prefixIndex = prefixIndex + 1 chCode = Asc(Mid(o.ID, prefixIndex, prefixIndex)) if chCode >= 49 and chCode <= 57="" then="" return="" new="" pair(left(o.id,="" prefixindex="" -="" 1),="" val(mid(o.id,="" prefixindex)))="" end="" if="" loop until="" pair(o.type,="" o.id)="" function="" sub="" writeobjectidmarkup(fo="" as="" aptextfile,="" objectid="" string)="" '="" it="" would="" be="" nice="" to="" find="" other="" websites="" link="" for="" various="" catalogs="" such="" ngc.="" left(objectid,="" 1)="M" fo.write("["="" +="" "](http:="" en.wikipedia.org="" wiki="" messier_"="" mid(objectid,="" 2)="" ")")="" else="" fo.write(objectid)="" writeobjectdescriptionmarkup(fo="" obj="" apobservation)="" len(obj.type)=""> 0 then fo.Write(" a " + obj.Type) if Len(obj.Constellation) > 0 then dim constellation as Constellation = Constellation.GetConstellation(obj.Constellation) fo.Write(" in the " + constellation.Name + " constellation") end if end if if Len(obj.Name) > 0 then fo.Write(" (also named " + obj.Name + ")") end if end sub sub WriteObserved(fo as APTextFile, key as string, observedObjectSet as Set) dim i as integer dim observedObjects(-1) as APObservation dim observedObjectKeys(-1) as integer dim observedObjectKeyStrings(-1) as string redim observedObjectKeys(observedObjectSet.Count - 1) redim observedObjectKeyStrings(observedObjectSet.Count - 1) redim observedObjects(observedObjectSet.Count - 1) for i = 0 to observedObjectSet.Count - 1 dim oo as APObservation = observedObjectSet.Item(i) dim op as Pair = SplitID(oo) dim ok as integer = op.right observedObjects(i) = oo observedObjectKeys(i) = ok observedObjectKeyStrings(i) = oo.ID next if key = "Planet" then observedObjectKeyStrings.SortWith(observedObjects) else observedObjectKeys.SortWith(observedObjects) end if if key = "Planet" then key = "Planets" elseif key = "M" then key = "Messier Catalog" elseif key = "NGC" then key = "NGC Catalog" elseif key = "HR" then key = "Bright Star Catalog" end if fo.Write("### " + key + Chr(10)) for i = 0 to UBound(observedObjects) dim obj as APObservation = observedObjects(i) dim when as Date = new Date(obj.LocalDateTime) fo.Write(Str(i + 1) + ". **") WriteObjectIDMarkup(fo, obj.ID) fo.Write("**") WriteObjectDescriptionMarkup(fo, obj) fo.Write(" last observed at *" + when.ShortDate + "*") fo.Write(Chr(10)) next fo.Write(Chr(10)) end sub sub main() '############################################################################# '## USER CONFIGURATION '############################################################################# dim baseFilePath as string = "Macintosh HD:Users:jeremy:Projects:websites:jeremy.cowgar.com:_content" dim observedFilename as string = baseFilePath + ":pages:astronomy:observed-sky-objects.html" dim postPath as string = baseFilePath + ":posts" '############################################################################# '## NO MORE USER CONFIGURATION '############################################################################# dim observed as new Dictionary dim observedObjects as Set = new Set dim observedPlanets as Set = new Set for each session as APSession in APSession.Sessions() dim startedAt as Date = new Date(session.Start) dim finishedAt as Date = new Date(session.Finish) dim title as string = "Astronomy Observations of " + startedAt.ShortDate dim filename as string = observationFilename(postPath, startedAt) dim fo as APTextFile = APTextFile.WriteFileUsingPath(filename, true) fo.Write("---" + Chr(10)) fo.Write("title: " + title + Chr(10)) fo.Write("tags: astronomy, observation session " + Chr(10)) fo.Write("---" + Chr(10)) fo.Write("**Began:** " + startedAt.ShortDate + " " + startedAt.ShortTime + Chr(10)) fo.Write("**Finished:** " + finishedAt.ShortDate + " " + finishedAt.ShortTime + Chr(10)) fo.Write("**Seeing:** " + session.Seeing + Chr(10)) fo.Write("**Transparency:** " + session.Transparency + Chr(10)) fo.Write("**Site:** " + session.Site + Chr(10)) fo.Write(Chr(10)) if Len(session.Notes) > 0 then fo.Write(session.Notes + Chr(10) + Chr(10)) end if if session.Count > 0 then dim i as integer for i = 1 to session.nObservations dim obj as APObservation = session.Observation(i) dim when as Date = new Date(obj.LocalDateTime) dim idPair as Pair = SplitID(obj) dim s as Set = observed.Value(idPair.left) if s = nil then s = new Set observed.Value(idPair.left) = s end if s.Remove(idPair.right.StringValue) s.Add(obj, idPair.right.StringValue) fo.Write(Str(i) + ". **") WriteObjectIDMarkup(fo, obj.ID) fo.Write("**") WriteObjectDescriptionMarkup(fo, obj) fo.Write(" observed at *" + when.ShortTime + "*") if Len(obj.Notes) > 0 then fo.Write(" - " + obj.Notes) end if if obj.nResources > 0 then fo.Write(" - with my ") dim j as integer for j = 1 to obj.nResources if j > 1 then fo.Write(", ") end if fo.Write("*" + obj.Telescope(j) + "*") if Len(obj.Eyepiece(j)) > 0 then fo.Write(" (*" + obj.Eyepiece(j) + "*") if Len(obj.OpticalAid(j)) > 0 then fo.Write(" and a *" + obj.OpticalAid(j) + "*") end if fo.Write(")") end if next end if fo.Write(Chr(10)) next fo.Write(Chr(10)) end if fo.Close() next dim fo as APTextFile = APTextFile.WriteFileUsingPath(observedFilename, true) fo.Write("---" + Chr(10)) fo.Write("title: Observed Objects" + Chr(10)) fo.Write("tags: astronomy " + Chr(10)) fo.Write("---" + Chr(10)) // Write the planets first, then other catalogs call WriteObserved(fo, "Planet", observed.Value("Planet")) observed.Remove("Planet") dim keys(-1) as string for each k as string in observed.Keys() keys.Append(k) next keys.Sort for each k as string in keys call WriteObserved(fo, k, observed.Value(k)) next fo.Close() end sub =>]]>
Samantha and I went out and setup the scopes about 7p because the clouds were suppose to clear by 8p and it was looking that way. 8p came about and it had clouded over. We left them out until about 9p then brought them in not being able to view anything but a few whispy views of a 4 day old waxing crecent moon.
Around midnight I noticed a nice clear sky. Samantha had already went to bed and has a big day the next morning so I left her sleep and took the C8 out for a bit. The viewing session came to an end about 1:50am due to frost on the objective lens.
Once back home, I wanted to attempt to spot M13 in the binouclars to see if it could be done. While touring the night sky with my eyes, I saw Saturn and gave it a whirl as well.
Today/tonight was forecast (correctly) to be a good night for astronomy so I decided to pack up and head for green sky conditions leaving my orange sky behind. An hour and twenty minutes later I was in green sky teritory.
What fun! Constellations jumped out and grabed you, I could see all sorts of faint fuzzies that have been elluding me for a while now. Well worth the time and effort. I’ll be making this trip several more times. Next time, however, I think I will make it around 2am or so to observe during the morning hours instead of the evening hours, as I have already observed quite a bit of the early-mid evening Messier objects visible this time of the year.
I didn’t expect the trip to be this successful and was able to observe all but one of the objects on my list, so I started observing things I could find on my star charts. That morning was church and then a birthday party for one of my daughters, so when I exhausted my list, I decided to head home.
With this session complete, this places me at 50 of 110 Messier objects observed!
Thus, you will now see my latest astronomy observations here. Hope it doesn’t cause too much traffic but be prepared to see these posts as well as more astronomy based posts in the future!
]]>Learning my new Celestron AVX mount. Bryan was also over and was showing some things off to him.
This session was interupted for an hour or so by clouds moving through. I took that opportunity to drive a bit SW to a yellow sky zone that didn’t have clouds at the time to do a quick compare of the sky there vs. my house. A change, but not as much as I would have thought. I took my UltraView 10x50’s and observed Jupiter, Pleiades, Orion Nebula and the Andromeda Galaxy.
My mount worked great. I did learn very quickly, though, that I need something more than a planisphere to identify the stars that the AVX wants to align with. For my first alignment, pointed the best I could to Polaris, then just centered Polaris through the bore of the mount. I then did a 2-star align plus an additional 2 stars. Some of my GOTO objects were in the center, others were not exactly there but all were within the FOV of my 18mm Gary Russel 2” EP. I have on order an illuminated reticle EP by Celestron that I am sure will help out, in addition to doing a full 2+4. I was just too anxious to give GOTO a try, being my first GOTO mount/scope.
These first two are to give you an idea of the size. Mounted is a Celestron C8 with dew shield and me standing beside it. I am 5’11”.
The rest are simply random photos of the mount and tripod.
]]>My dad recently purchased the Orion BigView 20x80 binoculars. We played with them looking at ground based objects, but not until tonight did we see any stars. The observing was terrible conditions, just spot holes through the clouds here and there but we couldn’t resist looking up.
Wind is picking up, was forecast to be 18-25mph but was much less at the start of the evening. Viewing will allow more but the wind will not.
I had taken a screw out of my secondary mirror looking for a hand screw at the local hardware store (didn’t find any). After a quick collimation, I took my scope out to adjust to the WX. An hour later, I started viewing. Everything was dim and off color. I couldn’t quite figure it out. Bringing it back in I realized my quick collimation was pretty far out. Not sure how I did such a poor job. I also noticed moisture on the secondary and primary mirrors. I am not sure if that happened because of the warming when bringing it in the house or not. Anyway, collimating the scope, taking it outside and running the fan on it this time made everything work like a charm.
Clear Sky Chart said it was suppose to be clear with good seeing, civilian reports said cloudy. Turned out to be a mixture of the two. I got my new EPs from Garry Russell in that afternoon and spent time looking around at objects I knew where they were comparing things before starting to search for something new.