Posts Tagged ‘Astronomy

Another small linux astronomy software review

with one comment

This is a newer version of my post regarding linux astronomy software. Most of the programs mentioned in my previous article are updated constantly so there’s no need to re-dig these. Some new (or maybe unknown to most) apps could be of great assistance to your collection. I still believe that the best software for you is the one that you know to use best but sometimes we need more features or more automation to possible calculations or planning for our observations. For example i really like xephem but its so feature-complete that sometimes its scary!So, here we go..

For those with windows background i’m sure you had Virtual Moon Atlas installed for these bright full moon nights. Maybe justmoon is a bit old (but still kickin) so VMA has now a linux port with an installer to make our life easier. I found it a bit buggy or maybe it was my faulty configuration but anyhow its an atlas and its very usable. The search tool is very practical and i found especially nice the option to use a *very* high resolution texture for moon. You get very nice and detailed views and feels pretty much like moonwalking πŸ˜‰

For all you aavso explorers fear not! Xvarstar is here to make your difficult task less cumbersome. Its main task is to search the GCVS catalogue for entries with criteria such as star name, magnitude, type, constellation, amplitude and of course a combo of all the above.

Another very interesting tool is ORSA. Its an interactive app used for computation and simulation of celestial mechanics. Asteroids, comets, artificial satellites, Solar and extra-Solar planetary systems can be accurately reproduced in your screen. It’s very nice to know how all this greatness works..

Where is M13? is a nice reference tool for dso. Every amateur astronomer should have this installed, because its another digital atlas for deep sky objects with many physical and positioning information. Knowing where an object is, in galactic terms (galactic coordinates) makes you understand where it actually is from a way different point of view.

Now, some apps for amateur telescope making. Most of these if not all, are for windows but have been tested with wine and dosbox and they seem to work flawlessly.

Aberrator is a freeware utility that creates planetary and star images that will be shown by your telescope along with possible distortions that me be produced. In the home page you will find some info about 3 optical design apps written by advanced amateur telescope makers.

Newt has been mentioned in my previous post. Just wanted to add that version 2.0 can be used with dosbox. A trully awesome application.

Last but not least, we have PLOP. It shows you how you may build an optimal mirror cell for your mirror, by providing you with info about possible errors in your build, an automatically generated mesh so you may be able to visualize your cell’s properties and show the graphical thermal distribution on your mirror. A must for any amateur telescope maker.

Written by aperturefever

July 21, 2010 at 11:37 pm

Updating stumpwmrc

leave a comment »

Posting the stumpwm configuration that I’m using for about a year now. It’s located also in the downloads section. My only task now is to find a way to use the conky configuration i have in musca along with the modeline to get rid some of its weird bugs.

;;Aperturefever/gammalyrae stump config
;;  Misc  ;;

(in-package :stumpwm)

(setf *default-package* :stumpwm)

;(set-font "-xos4-terminus-medium-r-normal--14-140-72-72-c-80-iso8859-7")
(set-font "-xos4-terminus-medium-r-normal--0-0-72-72-c-0-iso8859-7")
;(set-font "-*-dina-medium-r-normal-*-*-*-*-*-*-*-*-*")
;(set-font "-lispm-fixed-medium-r-normal-*-13-*-*-*-*-*-*-*")
;(set-font "-artwiz-smoothansi-medium-r-normal--13-130-75-75-m-60-iso8859-1")

;; Set up X cursor and colors.
(stumpwm:run-shell-command "xsetroot -cursor_name left_ptr -fg  white  -bg black")
;(stumpwm:run-shell-command "setxkbmap dvorak && xmodmap -e \'keycode 115 = F20\'")
;(stumpwm:run-shell-command "stumpbar")

;;   Lisp monitoring Scripts   ;;

(load "/home/shevek/progs/stumpwm/contrib/battery.lisp")
(load "/home/shevek/progs/stumpwm/contrib/cpu.lisp")
(load "/home/shevek/progs/stumpwm/contrib/net.lisp")
(load "/home/shevek/progs/stumpwm/contrib/mem.lisp")
;(load "/home/shevek/progs/stumpwm/contrib/wifi.lisp")

;;        Eye Candy         ;;


(setf *startup-message* nil)
(setf *startup-message* " ^2 ^b Hello George!^B Welcome to Stumpwm!^b ~& ^n Don't forget to check your ^8* TODO ^n list!!")


(defcommand my-shell-command (command) ((:string "sh$ "))
(check-type command string)
(shell-command command))

;;;; FRAMENUMBERING - check keybindings george---notifier

(setf *frame-number-map* "1234567890")


(set-bg-color "grey20")
;(set-fg-color "#97b26b")
;(set-fg-color "#20CBFE")
(set-fg-color "#a1b5cd")
;(set-fg-color "orange")
(set-border-color "grey10")
(set-msg-border-width 1)

(setf *message-window-gravity* :top-right
*timeout-wait*           6
*input-window-gravity*   :bottom-right)


(setf *colors* (append *colors*
(list "cyan" ;;"lightskyblue"
(update-color-map (current-screen))


(setf *mode-line-background-color* "grey20"
*mode-line-foreground-color* "#a1b5cd"
*mode-line-border-color*  "grey10"
*mode-line-border-width* 1
*mode-line-timeout*       5
*mode-line-position* :top
;*window-format* "< %n%s%m%30t >"
*window-format* "^B%m%n^b %15t"
*group-format*  "^8*%t%s  "

(list "^6*::^n  %g  ^6*::^n%w^6* :: ^8*CPU: ^n%f %C ^3*%t ^6*:: ^n^r%M ^6*:: ^n%b ^6*:: ^n %l ^6*::^8* - "
'(:eval (run-shell-command "date +\"%T %d-%m-%Y\" | tr -d '[:cntrl:]'" t))))

;; turn on/off the mode line for the current screen only.
(enable-mode-line (current-screen) (current-head) t)

(setf *maxsize-border-width* 3)
(set-frame-outline-width 1)
(set-focus-color   "dimgray")
(set-unfocus-color "grey10")
(set-normal-gravity :center)
(setf *normal-border-width* 3)
(setf *window-border-style* :thin)  ; thick,thin,none,tight

;;;; Display Keybinding - My version...

(defun key-press-hook (key key-seq cmd)
(declare (ignore key))
(unless (eq *top-map* *resize-map*)
(let ((*message-window-gravity* :bottom-right))
(message "Key sequence: ~A - "
(print-key-seq (reverse key-seq)) cmd))))

;; Give 'em time to read it.
(sleep 0.5)

(defmacro replace-hook (hook fn)
`(remove-hook ,hook ,fn)
`(add-hook ,hook ,fn))

(replace-hook *key-press-hook* 'key-press-hook)

;;;; Code by Male ---- Original...
;;;; Display the keysequence in progress
;;(defun key-press-hook (key key-seq cmd)
;;  (declare (ignore key))
;;  (unless (eq *top-map* *resize-map*)
;;    (let ((*message-window-gravity* :bottom-right))
;;      (message "Key sequence: ~A" (print-key-seq (reverse key-seq))))
;;    (when (stringp cmd)
;;      ;; Give 'em time to read it.
;;      (sleep 0.5))))

;;(defmacro replace-hook (hook fn)
;; `(remove-hook ,hook ,fn)
;; `(add-hook ,hook ,fn))

;;(replace-hook *key-press-hook* 'key-press-hook)
;;       Keybindings      ;;

;; change the prefix key to something else
(run-shell-command "xmodmap -e \'keycode 133 = F20\'" t)
(set-prefix-key (kbd "F20"))

(message "Loading stumpwmrc..")

(define-key *root-map* (kbd "Return") "exec urxvt")
(define-key *root-map* (kbd "b") "exec firefox")
(define-key *root-map* (kbd "a") "exec vup")
(define-key *root-map* (kbd "z") "exec vdown")
(define-key *root-map* (kbd "x") "exec vmute")
(define-key *root-map* (kbd "quoteleft") "gnext")
(define-key *root-map* (kbd "w") "windowlist")
(define-key *root-map* (kbd "M-g") "google")
(define-key *root-map* (kbd "M-w") "wikipedia")
(define-key *root-map* (kbd "M-i") "imdb")
;; Dirty ;(define-key *root-map*  (kbd "M-9") "exec setxkbmap us && xmodmap -e 'keycode 115 = F20' -e 'clear Lock'")
;; Dirty ;(define-key *root-map*  (kbd "M-0") "exec setxkbmap dvorak && xmodmap -e 'keycode 115 = F20' -e 'clear Lock'")
(define-key *root-map* (kbd "M-a") "exec qiv /mnt/mercury/dvorak.gif")
(define-key *root-map* (kbd "M-x") "exec ratmenu")
(define-key *root-map* (kbd "m") "fclear")

;(define-key *root-map* (kbd "1") "fselect 1")
;(define-key *root-map* (kbd "2") "fselect 2")
;(define-key *root-map* (kbd "3") "fselect 3")
;(define-key *root-map* (kbd "4") "fselect 4")
;(define-key *root-map* (kbd "5") "fselect 5")
;(define-key *root-map* (kbd "6") "fselect 6")
;(define-key *root-map* (kbd "7") "fselect 7")
;(define-key *root-map* (kbd "8") "fselect 8")
;(define-key *root-map* (kbd "9") "fselect 9")
;(define-key *root-map* (kbd "0") "fselect 0")

;;    Groups    ;;

;; Rename the first group to Main
(setf (group-name (first (screen-groups (current-screen)))) "Main")
;; Create the other groups.
(run-commands "gnewbg www" "gnewbg devel" "gnewbg media" "gnewbg chat")
;;  Custom Commands  ;;

(defun shell-command (command)
"Stumpwm might hang here :/"
(check-type command string)
(echo-string (current-screen) (run-shell-command command t)))

(defcommand weatherget () ()
"Display weather info in Greece."
(shell-command "weatherget -s GRXX0004 --metric"))

(defcommand dfh () ()
(shell-command "df -h"))

(defcommand moon () ()
"Moon Info"
(shell-command "less ~/sources/stumpwm/astroinfo/moon"))

(defcommand mocpinfo () ()
"MOC info"
(shell-command "mocpinfo"))

(defcommand mocosd () ()
"MOC info"
(shell-command "mocosd"))

(defcommand monitoroff () ()
"Monitor Off"
(shell-command "sleep 1 && xset dpms force off"))

(defcommand dmenu () ()
(run-shell-command "dmenu_run -nb grey20 -nf orange -fn '-windows-dina-medium-r-normal--13-80-96-96-c-70-microsoft-cp1252'"))
(define-key *root-map* (kbd "[") "dmenu")

;;    Web jump (works for Google, Wikipedia and Imdb)    ;;

(defmacro make-web-jump (name url-prefix)
`(defcommand ,name (search) ((:rest ,(string-capitalize (string-downcase (concatenate 'string (symbol-name name) ": ")))))
(run-shell-command (format nil "firefox '~A=~A'"
,url-prefix (substitute #\+ #\Space search)))))

(make-web-jump imdb "")
(make-web-jump google "")
(make-web-jump wikipedia "")

;;;  Qwerty - Dvorak  ;;;

;; keyboard layout
(defvar *keyboard-layout* :qwerty)
;(run-shell-command "setxkbmap us")
;(run-shell-command "xmodmap -e \'clear Lock\' && xmodmap -e \'keycode 66 = Tab\'")

(defcommand toggle-keyboard-layout () ()
(cond ((eq *keyboard-layout* :qwerty)
(setf *keyboard-layout* :dvorak)
(message "^7* Selected keyboard layout:^2* Dvorak")
(run-shell-command "xmodmap ~/.Xmodmap && setxkbmap dvorak"))
((eq *keyboard-layout* :dvorak)
(setf *keyboard-layout* :qwerty)
(message "^7* Selected keyboard layout:^3* Qwerty")
(run-shell-command "xmodmap ~/.Xmodmap && setxkbmap us"))))

(define-key *root-map* (kbd "F12") "toggle-keyboard-layout")

;;   Some mousey stuff    ;;

(setf *mouse-focus-policy* :click) ;; :click, :ignore, :sloppy

;;; Astro info and calculations ;;;

;;;   Some Startup progies   ;;;

(defcommand firefox () ()
"run firefox"
(run-or-raise "firefox" '(:class "Firefox")))

(defcommand dolphin () ()
"run firefox"
(run-or-raise "dolphin" '(:class "dolphin")))

(defcommand amarok () ()
"run firefox"
(run-or-raise "amarok" '(:class "Amarok")))

(defcommand pidgin () ()
"run firefox"
(run-or-raise "pidgin" '(:class "Pidgin")))

(defcommand Urxvt () ()
"run an urxvt instance"
(run-or-raise "xterm -name Urxvt" '(:instance "Urxvt")))

;;;  Window placement rules  ;;;

;; Clear rules

(define-frame-preference "Main"
;; frame raise lock (lock AND raise == jumpto)
(0 t   t :class "Urxvt"))

(define-frame-preference "media"
;; frame raise lock (lock AND raise == jumpto)
(0 t   t :class "dolphin"))

(define-frame-preference "media"
;; frame raise lock (lock AND raise == jumpto)
(0 t   t :class "Amarok"))

(define-frame-preference "www"
;; frame raise lock (lock AND raise == jumpto)
(0 t   t :class "Firefox"))

(define-frame-preference "chat"
;; frame raise lock (lock AND raise == jumpto)
(0 t   t :class "Pidgin"))

;;;   Random Background   ;;;

;(defvar *background-image-path* "/mnt/mercury/Images/EyeStrain")
;(defun select-random-background-image ()
;  "Select a random image"
;  (let ((file-list (directory (concatenate 'string *background-image-path* "*.jpg")))
;        (*random-state* (make-random-state t)))
;    (namestring (nth (random (length file-list)) file-list))))
;(run-shell-command (concatenate 'string "display -window root " (select-random-background-image)))

;;;  Show me Info  ;;;

(setf *debug-level* 10)

I will also post some calculations to be placed in it for quick reference(probably bind it in a command or sth). E.g. calculating how fast does a comet or an asteroid move using a formula like this: 2 * pi * sqrt(2/r – (1-e)/q) AU/year, maybe formulas to convert right ascension and declination to altitude and azimuth and a way to easily find my current longitude and latitude.

Written by aperturefever

May 10, 2010 at 10:55 am

Back to ol’ Xplanet

leave a comment »

One of my favorite eye candy programs from the past is xplanet (the other one is electricsheep :D). It works perfectly with almost all window managers and the final product is not only beautiful but also very informative. The documentation is pretty straight forward and easy to understand but i haven’t seen any configurations lying around in the web. Anyway i provide here my own along with a small (wannabe) guide for it. As of the images or scripts that were used for this, i’ll just provide the necessary links.

Lets assume that we got xplanet sources and have them installed and working. As the README suggests, i took the default configuration provided and xplanet and built upon it. The base configuration provides sth like this:


Very nice huh? The default image provided is very nice but if you want to move a step forward or want sth with a bit more resolution you can get one of the monthly versions of Nasa’s Visible Earth.

The first 3 things that are missing from the image are, the moon, clouds, and finally background stars.

Well by default, all celestial objects of our solar system are loaded so you ll probably see it if you have xplanet refreshing every (eg 10 minutes) the problem is that moon is small and you ll likely see it rarely. So to watch the moon more ofter i added to my conf

magnify 40
magnify 10

A little bit more magnification to moon and it will look like a twin planet πŸ˜›

Next step is the clouds, which are explained pretty much in the main page. There are 2 scripts that are used to fetch the cloud image. Both will do the job, i just altered them a bit to get the 4096 version of the clouds and save them to my .xplanet dir to keep things tidy. The cloud images are updated every 3 hours so i just added the script to a cronjob with

0 */03 * * * /path/to/script/

If you’ve created a .xplanet dir to store your configuration just throw the image in and add


to your xplanet.conf. If you prefer to store it in another folder eg. images in .xplanet just add


Finally you need a nice background to complete the picture. According to documentation all you must do is to start xplanet with xplanet -config xplanet.conf -starmap /usr/share/xplanet/stars/BSC. I even used the commands that are suggested by the FAQ but it wasnt very nice. I found out that the provided solution is very nice if you set the -fov(field of view) option to eg 50. If you prefer this solution its a good idea to use the constellations marker file and start it by adding


You can find it in /usr/share/xplanet/arcs/constellations.
This will draw all the constellations around and with brightStars you’ll get the names.
Personally i dont use the above method. I just got a nice star field from an image search, played a bit with its contrast and brightness and used it as a background with the -background option. I also changed the default earth and specular images with the ones found here and the result looks like this:


Take a closer look at the marker_file option. With default supplied marker files you can add borders, coastlines, hamradio stations, capital names etc. You can also add information about volcanoes, storms, satellites and quakes using the Totalmarker binary. For example in my setup i have set a cron job that connects every hour to Norad and gets the appropriate tle files to mark the position and path of the requested satellites on the xplanet image.

0 */01 * * *  /path/.xplanet/Totalmarker -Norad


Well all that info about earthquake and volcanoes and such its really nice but it gets pretty crowded so i prefer to keep track only of the satellites (ISS, HUBBLE, etc)

All the above is for earth alone. Its possible to view all planets of the solar system with the -body option and of course gather info for their artificial satellites and moons. In my setup i use the images provided by this site, which are very very nice and detailed. You can get my conf from the downloads page. To launch it and update it every 10minutes you can use the below command:
nice -n 19 xplanet -config ~/.xplanet/xplanet.conf -transparency -utclabel -background ~/.xplanet/starfield-1.jpg -wait 300 -hibernate 600

Another nice option here is -random πŸ˜‰



Written by aperturefever

May 8, 2009 at 5:59 pm

Isothermal clothing for winter observing

with one comment

Running usually, at night time on a cliff near my home has put me into consideration regarding clothing for night observations in winter time. Temperature drops each day so we have to take some precautions. Well ,while you run you’re pretty warm already, so cold is not a serious problem but sweat can be a bugger. To solve this, most runners use isothermal light clothing. Weights little andΒ  passes sweat in the outer layer so that skin remains dry and warm.

So what can we do if we stand still in the night on a hill/mountain at winter time with -3 or so celcius ? Most books suggest dressing like a bear or taking a portable alogon/gas heater and a portable electrical generator with you or even use chemicals on your skin to stay warm.. My opinion is that its highly impractical and a complete energy waster. This is why past generations have devastated nature..

When Im off to star watching for a whole night I usually dress lightly and with some tea in a thermos, I manage to stay warm and not end up with pneumonia in the morning. Lets imagine that human body is a 4 part machine. Feet, lower body part, upper body part and head. All must be protected from cold with feet being the most durable and head the most vunerable.

Feet: Mountain climber’s socks or even better hunter’s socks. Hunters socks are the best way protecting your feet from cold weather. The cost is ridiculous (about 3-10 Euros from Praktiker) and keeps the feet warm even in extreme weather. Remember that these socks are designed to keep warm (usually stationary) hunters. As for shoes climbing boots are light and sturdy but I find stability oriented athletic shoes more practical when there’s no snow.

Lower part: Jeans with lots of pockets, or woolen trousers and isothermal underwear are just fine. Isothermal underwear may cause itching but its natural i guess, except only if you’re allergic..a great percentage of its material is sheep wool.

Upper part: Isothermal light sweater and isothermal woolen gloves (or find a cheap pair and cut the finger covers to be able to hold your eyepieces/focuser), woolen sweater (sheep wool is the best – a constant reminder…), and a runner’s wind stopper jacket with inner woolen layer will do.

Head: Wool cap and scarf or buff in balaclava setup will do. Both in extreme conditions. Covering your mouth must be one of your first priorities since cold air will harm your lungs.

So the magic words are layers and wool. Most shepherds (at least in my country live on mountains) could bare cold because every piece of cloth on them was made from their primary resource, sheep wool.

The most technical in the above list is the thermal underwear, which can be found in various prices and qualities in extreme sports stores. Mine are able to withhold body heat at -9 Celcius tops and cost around 40 euros each (sweater and pants). There are others that are designed for -20 and -30 Celcius but are a bit expensive, starting at 70 euros each.

The whole idea is to be as light as possible or even better wear as less as possible, but manage to keep your body temperature stable. I believe that being lightweight, fit as possible and keep breathing from the nose, will help overcome sleep, cold and fatigue.

You might also consider doing some workout while you’re standing. Keeping the blood in constant flow will keep you warm enough. Walking around, a bit of stretching, moving arms in circular movements or even better some simple tai chi forms will help.

Also a Hobo stove is a very nice (ecological and fire safe) option if there’s not a house to stay. You can make one using an old small metal barrel or buy a commercial which might be more portable. Also the usage of the hobo stove does not greatly affect your night vision.
If you feel weird at any time or for whatever reason, stop. Killing oneself or losing your health is an unnecessary extremity for a hobby. If you want extremities start smashing light bulbs with police cars in view ;p

Written by aperturefever

November 30, 2008 at 9:43 am

Be right back!

with 2 comments

Been away away for a while but im working on some new astronomy and linux tweaks and completing the travel dob guide.Β  Im considering adding a new subject category about running with tips and tricks for powering up(ie breathing). As always comments always help adding correct and objective info. Also i ll change the layout and might add some features for easy calculations.

Imagine running 5k uphill with a camelback including pocket binoculars and a star chart. Groovy huh?! πŸ˜‰

Written by aperturefever

November 19, 2008 at 12:35 pm

Posted in Uncategorized

Tagged with , ,

A small linux astronomy software review

with 3 comments

UPDATE: Another updated post with some new apps is available here.

Using linux as a main operating system can still be tricky sometimes, especially when you want to combine your job with your hobbies. There are many astronomy programs for unix/linux. A good example is that most of Nasa’s servers run Solaris, so unix had always the upper hand in the exploration of universe and of course in variable astrophysics calculations. Recently i ve read that nasa, runs solely Fedora Core for timing servers and for some other jobs, Mandriva. By reading interviews and such is easy to understand that nasa’s engineers and programmers dont have any os wars to worry about. If it works we stick to it. No updates, only stability. I strongly agree with that philosophy. Im using Slackware for nearly 9 years and i havent changed os because it simply does what im asking to do.

Most of the programs below are open source. I have also included some DOS programs that can be used via dosbox simulation.

Xephem is an ephemeris and planetarium, astronomy software which is a bit difficult to use at the beginning but it becomes a necessity afterwards. Many features icluding a really huge catalogue of stars, deep sky objects and data from AAVSO, SOHO. You can use (after conversion) the tycho2 and hipparchos catalogues, connect it to Guide Star Catalog (with 998,402,801 objects) or view a sky view using Digitized Sky Survey. Eehh not enough words….

Predict rocks my socks.. Its a satellite tracking and orbital prediction program. Very useful for any kind of satellite tracking you wanna do. Just grab a small scope and on to the roof.

SkyChart / Cartes du Ciel. No introductions needed. An astronomy software that is used by many, even though its still in beta (for linux) its very usable and with the addition of extra images and catalogues it can be your celestial encyclopedia.

Stellarium. A very good planetarium program that is used by many amateur astronomers and even in commercial planetarium projectors for educational porpuses. Many claim that its strictly newbie application, but i really believe that thats rubbish. With a default catalogue of over 600.000 stars, scripting, realistic atmosphere, additional catalogues of over 200.000.000 stars, nebulae,etc i dont think that its newbie..

Partiview is not exactly an astronomy only related project. Its an interactive, stereoscopic and 3d viewer. Its pretty fast and has a ton of uses. One of the most famous is Digital Universe. Take some time and check the “Uses of Partiview” section in the main site, believe me, you will be surprised by the uses in astrophysics, global networks or even machine learning.

Just Moon An experimental but highly usable lunar atlas similar to Virtual moon atlas. Very nice and simple program. I hope for some updates in the future.
(Note: if you still want to use Virtual Moon atlas go for the light version (3.5c) with wine)

PP3. Latex finds astronomy. One of the best celestial charts generator with very high graphical quality and uses latex. According to the author, PP3 is used for the maps of all constellations on Wikipedia. A small example is here. Even though the syntax that you may use to generate charts is not latex code its very simple and really fast to learn.

Siril is an image processing linux software (IRIS clone) that is used
by many astrophotographers. Even though you can still use gimp for that, Siril just makes life easier by using the features that we need most.

Skycalc is a small console calculator made for many quantities that observational astronomers need. Its very practical and light.

Newt is a newtonian telescope design program. Many atms(if not all) use it for their projects for its rich features and high data accuracy. You can use it to check for vignetting, optimizations of the diagonal size, calculations of the baffle size and a lot more. I use it with wine and never had a single glitch. 2 thumps up!

If you dont use a computer a lot with your observations be sure to have a calculator with you all the time. Saved me countless times.

If you require more, you may check my links, but i think that most of the above fulfill most of your base needs.
Of course if you cant find nothing that matches your criteria, you may write something on your own and share it with others πŸ™‚ . A good example is scripting in any language or engine such as GnuOctave, Scilab and Matlab.

Written by aperturefever

July 20, 2008 at 12:49 pm