March 19, 2011

Lunar Perigee Tonight! [Space]

Just a quick reminder, the lunar perigee is tonight (closest moon in 18 years). Some tips if you are planning on watching it...

  1. The moon will *appear* largest around sunset and the setting sun will provide enough light to make foreground objects (trees, power lines, buildings, etc) visible without a flash. This should provide some nice/interesting photographs of the moon peeking over the horizon (or just a stunning view if you only plan on watching it).
  2. Use a tripod, long lens, and shutter remote on your camera. Even though the moon looks so close that you could touch it, it is still 220,000 miles away. The longer lens you have, the bigger the moon will appear in your photographs. Tripods and shutter release will keep your images from streaking or becoming blurry due to camera shake. I will be using my 300mm manual focus lens which is a pain for getting the perfect focus, but when it's all you have available, it will do.
  3. Prepare to take lots of photos. The moon will be bright and different camera settings can lead to really different photos. Have too much exposure and the moon will appear as a white dot on a black canvas. Have too little exposure the moon will be a dim shadowy dot on a black canvas. In both cases, you will lose the detail of moons craters. You should use the Sunny 16 rule. I will probably start off shooting at f/16 with ISO and shutter speed the same. However, last year I got pretty good results with ISO 200 and shutter at 1/640 at f/5.6... I will probably try ISO 100, 1/1000, and f/5.6 as well.

I found this at NASA and it explains perigee a little better than I did last week.

Windows Snap Hotkeys for XP using AutoHotKey [Programming]

So now that I have a nice big 23" monitor, I found that I have a lot more usable space. So what I wanted to be able to do is tile my application windows on the screen so I can make the most of that space. Unfortunately, the company I work for still uses XP. So I don't have the Windows 7 snap feature available when working on programming projects.

So here is an AutoHotKey script that allows you to use keyboard shortcuts to arrange windows using WIN + NumberPad key... so for example, WIN + 9 will put the active window in the top-right corner of the screen or WIN + 4 will put the active window in on the left half of the screen. Learn more about AutoHotKey.


#NoEnv
#Persistent
#SingleInstance force


;############################################################################################
; Window Snap - Use WIN + NumPad to snap windows to fill part of the screen


GetTop(Top, Bottom) {
Return Top + Ceil((Bottom - Top) / 2)
}
GetLeft(Left, Right) {
If (Left < 0) {
Return Left + Ceil((Abs(Right) - Left) / 2)
} else {
Return Left + Ceil((Right - Left) / 2)
}
}
GetWidth(Left, Right) {
If (Left < 0) {
Return Ceil((Abs(Right) - Left) / 2)
} else {
Return Ceil((Right - Left) / 2)
}
}
GetHeight(Top, Bottom) {
Return Ceil((Bottom - Top) / 2)
}


#NumPadIns::
#NumPad0::
#0::
SysGet, Count, MonitorCount
SysGet, Primary, MonitorPrimary
MsgBox, Monitor Count:`t%Count%`nPrimary Monitor:`t%Primary%
Loop, %Count%
{
SysGet, Name, MonitorName, %A_Index%
SysGet, Monitor, Monitor, %A_Index%
SysGet, Area, MonitorWorkArea, %A_Index%
MsgBox, Monitor:`t#%A_Index%`nName:`t%Name%`nLeft:`t%MonitorLeft% (%AreaLeft% work)`nTop:`t%MonitorTop% (%AreaTop% work)`nRight:`t%MonitorRight% (%AreaRight% work)`nBottom:`t%MonitorBottom% (%AreaBottom% work)
}
Return


#NumPadPgUp::
#NumPad9::
#9::
WinGetTitle, WinA, A
WinRestore, %WinA%
SysGet, M1, MonitorWorkArea, 1
WinMove, %WinA%,, GetLeft(M1Left, M1Right), M1Top, GetWidth(M1Left, M1Right), GetHeight(M1Top, M1Bottom)
Return


#NumPadUp::
#NumPad8::
#8::
WinGetTitle, WinA, A
WinRestore, %WinA%
SysGet, M1, MonitorWorkArea, 1
WinMove, %WinA%,, M1Left, M1Top, (M1Right - M1Left), GetHeight(M1Top, M1Bottom)
Return


#NumPadHome::
#NumPad7::
#7::
WinGetTitle, WinA, A
WinRestore, %WinA%
SysGet, M1, MonitorWorkArea, 1
WinMove, %WinA%,, M1Left, M1Top, GetWidth(M1Left, M1Right), GetHeight(M1Top, M1Bottom)
Return


#NumPadRight::
#NumPad6::
#6::
WinGetTitle, WinA, A
WinRestore, %WinA%
SysGet, M1, MonitorWorkArea, 1
WinMove, %WinA%,, GetLeft(M1Left, M1Right), M1Top, GetWidth(M1Left, M1Right), (M1Bottom - M1Top)
Return


#NumPadClear::
#NumPad5::
#5::
WinGetTitle, WinA, A
WinRestore, %WinA%
SysGet, M1, MonitorWorkArea, 1
WinMove, %WinA%,, M1Left, M1Top
WinMaximize, %WinA%
Return


#NumPadLeft::
#NumPad4::
#4::
WinGetTitle, WinA, A
WinRestore, %WinA%
SysGet, M1, MonitorWorkArea, 1
WinMove, %WinA%,, M1Left, M1Top, GetWidth(M1Left, M1Right), (M1Bottom - M1Top)
Return


#NumPadPgDn::
#NumPad3::
#3::
WinGetTitle, WinA, A
WinRestore, %WinA%
SysGet, M1, MonitorWorkArea, 1
WinMove, %WinA%,, GetLeft(M1Left, M1Right), GetTop(M1Top, M1Bottom), GetWidth(M1Left, M1Right), GetHeight(M1Top, M1Bottom)
Return


#NumPadDown::
#NumPad2::
#2::
WinGetTitle, WinA, A
WinRestore, %WinA%
SysGet, M1, MonitorWorkArea, 1
WinMove, %WinA%,, M1Left, GetTop(M1Top, M1Bottom), (M1Right - M1Left), GetHeight(M1Top, M1Bottom)
Return


#NumPadEnd::
#NumPad1::
#1::
WinGetTitle, WinA, A
WinRestore, %WinA%
SysGet, M1, MonitorWorkArea, 1
WinMove, %WinA%,, M1Left, GetTop(M1Top, M1Bottom), GetWidth(M1Left, M1Right), GetHeight(M1Top, M1Bottom)
Return


!#NumPadPgUp::
!#NumPad9::
!#9::
WinGetTitle, WinA, A
WinRestore, %WinA%
SysGet, M, MonitorWorkArea, 2
WinMove, %WinA%,, GetLeft(MLeft, MRight), MTop, GetWidth(MLeft, MRight), GetHeight(MTop, MBottom)
Return


!#NumPadUp::
!#NumPad8::
!#8::
WinGetTitle, WinA, A
WinRestore, %WinA%
SysGet, M, MonitorWorkArea, 2
WinMove, %WinA%,, MLeft, MTop, (MRight - MLeft), GetHeight(MTop, MBottom)
Return


!#NumPadHome::
!#NumPad7::
!#7::
WinGetTitle, WinA, A
WinRestore, %WinA%
SysGet, M, MonitorWorkArea, 2
WinMove, %WinA%,, MLeft, MTop, GetWidth(MLeft, MRight), GetHeight(MTop, MBottom)
Return


!#NumPadRight::
!#NumPad6::
!#6::
WinGetTitle, WinA, A
WinRestore, %WinA%
SysGet, M, MonitorWorkArea, 2
WinMove, %WinA%,, GetLeft(MLeft, MRight), MTop, GetWidth(MLeft, MRight), (MBottom - MTop)
Return


!#NumPadClear::
!#NumPad5::
!#5::
WinGetTitle, WinA, A
WinRestore, %WinA%
SysGet, M, MonitorWorkArea, 2
WinMove, %WinA%,, MLeft, MTop
WinMaximize, %WinA%
Return


!#NumPadLeft::
!#NumPad4::
!#4::
WinGetTitle, WinA, A
WinRestore, %WinA%
SysGet, M, MonitorWorkArea, 2
WinMove, %WinA%,, MLeft, MTop, GetWidth(MLeft, MRight), (MBottom - MTop)
Return


!#NumPadPgDn::
!#NumPad3::
!#3::
WinGetTitle, WinA, A
WinRestore, %WinA%
SysGet, M, MonitorWorkArea, 2
WinMove, %WinA%,, GetLeft(MLeft, MRight), GetTop(MTop, MBottom), GetWidth(MLeft, MRight), GetHeight(MTop, MBottom)
Return


!#NumPadDown::
!#NumPad2::
!#2::
WinGetTitle, WinA, A
WinRestore, %WinA%
SysGet, M, MonitorWorkArea, 2
WinMove, %WinA%,, MLeft, GetTop(MTop, MBottom), (MRight - MLeft), GetHeight(MTop, MBottom)
Return


!#NumPadEnd::
!#NumPad1::
!#1::
WinGetTitle, WinA, A
WinRestore, %WinA%
SysGet, M, MonitorWorkArea, 2
WinMove, %WinA%,, MLeft, GetTop(MTop, MBottom), GetWidth(MLeft, MRight), GetHeight(MTop, MBottom)
Return

March 12, 2011

NewEgg and 23 inches [Things I Love]

Working as a programmer for a major corporation has been my dream job except for the last year or so. I had been putting in way too many hours, was not feeling appreciated, and had been under a ton of pressure to produce under constantly changing priorities. I am under a new manager now and things seem to be taking a turn for the better and getting back to the way it was before. As a result, I will be working from home more frequently in order to get programming projects completed in a less disruptive atmosphere. That is great, but not when your primary work computer is a 14.1" laptop.

Source: NewEgg.com
So about two weeks ago, my mom asked me to buy her a new computer to replace her dying laptop. Her laptop always sits on a table and she doesn't ever move it. So I decided to build her a desktop and bought all the parts through NewEgg. At the same time I figured I should buy a new monitor since I would be working from home more to give a little more screen space. I didn't want to pay a fortune, but I ended up buying a 23" Acer. I must have been living under a rock because damn, it's big and bright... and so pretty looking. I was planning to use it as dual monitor with my work laptop, but a 14" sitting next to a 23"... it just looks useless and pathetic. So over the last few days, I have been a programming mad man just loving all the extra space. Now I wish my laptop had two D-Sub ports so I could have 2x 23" monitors. Anyway, I ordered a second monitor for my mom because she was jealous.

NewEgg is amazing, I got all the parts for the computer fast and as cheap as I could have gotten from somewhere like MicroCenter. Even though I had to pay shipping, it was minimal considering going to MicroCenter is a drive for me and I have to spend the whole day shopping.

The Next Three Days [Movie Review]

Source: IMDB.com
During the winter, I rarely make it out to a theater to watch a new movie. I usually end up waiting until they come out to redbox and rent them. Last week I rented The Next Three Days. I will admit, I like Russell Crowe, but I generally don't like the movies he's in. So after not hearing any reviews about the movie, the plot looked pretty good and I decided to give it a shot. I thought it was a great movie! Russell Crowe plays a quiet husband and father who's wife is convicted of a murder and sent to prison. Believing his wife to be innocent, he tries everything to get her prison. After the appeal falls through and reality sets in that she will never get out of prison, he switches gears from working on legal battles to planning a prison break. Being new the criminal world, he new things like buying a gun and trying to find someone to make fake IDs. It is a mix of comedy and suspense as he doesn't know where bullets go in a gun, yet detectives that see him visiting his wife at the prison are growing suspicious. While many scenes were predictable, there were plenty of suspenseful twists that keep you engaged and entertained. Acting, cinematography, plot, and script were all spot on for a great movie. 5/5 stars.

Lunar Perigee March 19th [Space]

Source: Wikipedia.org, perigee/apogee size comparison.
If you are into astronomy, March 19th is a date to remember. The moon will be at perigee (closest to the earth) and it will also be a full moon that night. As long as the weather is decent, it should be bright and easily visible... great for taking pictures.
The moon orbits the earth on an elliptical path about once per month. At apogee, the moon is farthest from the earth. Then about two weeks later, at perigee, the moon is closest to the earth. While to the naked eye, it doesn't look any different in size, through photographs, you can tell it is slightly larger. At the monthly perigee, the moon is on average about 238,000 miles away, but on March 19th, it will pass at its closest point of 220,000 miles. The moon only passes that close about once every 18 years.

Full Moon Perigee 2010
A full moon occurs when the sun and the moon are on opposite sides of the earth, so at night, the earth is able to see the moon fully illuminated. If you are into taking photos, it will be slightly bigger than normal and fully bright, so it should result in some pretty amazing photos. Although, if you have a standard point-and-shoot camera, you will likely just end up with a white dot in a mostly black photo. I took this photo during a full moon perigee in January 2010. I only have a 300mm manual focus lens for my DSLR camera, but it is a decent picture considering. If you do take pictures, here is a guide on what settings to use.

March 5, 2011

Starting it up again

So as most everyone knows, it's been quite some time since I last blogged about anything. I keep finding all these things that would be great to publish if I had a blog, but alas, I didn't keep it updated. So I am going to start trying to get this bitch going again... if not for anyone else, as a creative outlet for myself. Mostly it will just be random crap that I want to share... I don't have any themes in mind, but some might develop along the journey. I do expect it to be mostly about my life, my hobbies (astronomy, aviation, and photography), and technology (programming, web design, etc).