text:
Topics covered in this tutorial:
- Glade
- PyGTK
- gtk.FileChooserDialog
- gtk.FileFilter
- gtk.TextView
- gtk.TextBuffer
- gtk.TextMark
- gtk.MessageDialog
You can download the full source for this tutorial here.
One of the things that I found the other day while I was surfing the web looking for information on Python was this WordPress Python library. Since I use WordPress for this site I thought that I'd play with it a bit. The result is this tutorial about using the WordPress library, PyGTK, and Glade.
The first think to do is download the library, extract it form the archive, and install it. Enter the following on the command line in the directory you downloaded the library to in order to install it:
python setup.py install
Now you have the library installed. The next step is to create the GUI that we will use to interact with the library. The GUI will be created using Glade, if you are new to Glade or PyGTK you might want to read over my two turorials on the subject: Creating a GUI using PyGTK and Glade and Building an Application with PyGTK and Glade.
The GUI
The first thing that we want to do is create the main GUI, here are the steps for that:
Note: These steps are very general if you have trouble following them post a question or read the two initial PyGTK/Glade tutorials in order to become familiar with Glade.
- Add a window to the project. Set it's name to be: '"wndMain" and its title to be: "WordPy". Set it's default height to be 350 and it's default width to be 400.
- Add a vertical box with five rows
- In the first row add horizontal box with two columns, set it's "Expand" option on the Packing tab to No. Then add a label that says "Title:" in the first column set it's width to be 44, and in the second column add a Text Entry. Call the text entry: "enTitle". Set the Text Entries padding to be 3.
- In the second rod add a horizontal box with 13 items. make the first item A label, make it's "Text:", make it's width 44, and make it's X Align 0.00. Then make the next twelve items Buttons. The buttons will be used to mimic the buttons available when writing a wordpress post:
Name each button using the following pattern: btnBold, btnItalic, etc, and add a clicked handler to each button.
- In the forth row add a Text View. On the Widget tab set the Text View's (not the Scrolled Window) name to be "txtPost" and its wrapping option to be "Word".
- Now add another Horizontal Button box to the final row. Set it's layout to be "End" and its spacing to be 3. On the Packing tab set the padding to be 2 and Expand to No. Set the left-most buttons name to be btnSettings, its label to be "Settings", and it's icon to be the "Properties" icon. Set the other buttons name to be btnPost, it's label to be "Post" and it's icon to be the Up icon.
- Add a handler for the "clicked" signal for each button. We will use this signal to perform actions when the user clicks on the button.
- Add a handler for the wndMain destroy signal (not the destroy_event signal, the destroy signal)
That's it for the main window, once you have completed all of those steps you should be left with something like this:
Note that I used icons for my buttons instead of using text. The icons are taken from the latest version of the gnome-icon-theme.
The next GUI element that we are going to create is the Settings dialog that will come up when you press the settings button:
- Create a new dialog by pressing the dialog button. Select the Standard Button Layout with Cancel and Ok as your buttons. Set the dialogs name to be "dlgSettings" and its title to be "Settings"
- Add a new table with three rows and two columns.
- In the first row add a Label in the first column and set its label to be "URL:". In the second column add a Text Entry and set it's name to be "enURL". On the packing tab set the Text Entries H Padding and V padding to both be 2
- Replicate step three in row two, except set the Label's label to be "Username" and the name of the Text Entry to be "enUsername".
- Replicate step three in row three, except set the Label's label to be "Password" and the name of the Text Entry to be "enPassword". Set the Text Visible option to No, this will display the invisible char instead of the actual text, making this function like a normal password entry.
After following those steps you should be left with something that resembles the following:
Finally we need to create the dialog that will be used when the user wants to insert a link into their post:
- Add another dialog with Ok and Cancel buttons. Set the dialogs name to be dlgLink and it's title to be "Insert Link".
- Add a vertical box with two rows, in the first row add a Label, set it's label to be: "Enter the URL" and it's X Allign to be 0.00. In the second row add an Text Entry and set it's name to be enURL.
- On the Widget tab of dlgLink dialog's properties set the resizable property to No, and on the Common tab set the width to be 300.
your dlgLink should look something like this:
The Code – Connecting Glade with PyGTK
Here is the basic code that we use to start up our little WordPy Application and connect it with out glade file (it is the basic code that I used in my two other tutorials):
[code lang="python"]
#!/usr/bin/env python
import sys
import pygtk
import gtk
import gtk.glade
class WordPy:
"""This is the Wordpy application. It is a simple PyGTK
application that interacts with the WorPress Python library."""
def __init__(self):
#Set the Glade file
self.gladefile = "wordpy.glade"
self.wTree = gtk.glade.XML(self.gladefile, "wndMain")
"""Create our dictionary and connect it, you may notice
that I have gone with the default function names this time"""
dic = {"on_wndMain_destroy" : self.quit
, "on_btnBold_clicked" : self.on_btnBold_clicked
, "on_btnItalic_clicked" : self.on_btnItalic_clicked
, "on_btnLink_clicked" : self.on_btnLink_clicked
, "on_btnBlockQuote_clicked" : self.on_btnBlockQuote_clicked
, "on_btnDel_clicked" : self.on_btnDel_clicked
, "on_btnIns_clicked" : self.on_btnIns_clicked
, "on_btnImage_clicked" : self.on_btnImage_clicked
, "on_btnUnorderedList_clicked" : self.on_btnUnorderedList_clicked
, "on_btnOrderedList_clicked" : self.on_btnOrderedList_clicked
, "on_btnListItem_clicked" : self.on_btnListItem_clicked
, "on_btnCode_clicked" : self.on_btnCode_clicked
, "on_btnMore_clicked" : self.on_btnMore_clicked
, "on_btnSettings_clicked" : self.on_btnSettings_clicked
, "on_btnpost_clicked" : self.on_btnpost_clicked}
def quit(self, widget):
"""Quit yourself"""
def on_btnBold_clicked(self, widget):
"""Called when the bold button is clicked"""
def on_btnItalic_clicked(self, widget):
"""Called when the italic button is clicked"""
def on_btnLink_clicked(self, widget):
"""Called when the link button is clicked"""
def on_btnBlockQuote_clicked(self, widget):
"""Called when the Block Quote button is clicked"""
def on_btnDel_clicked(self, widget):
"""Called when the Del button is clicked"""
def on_btnIns_clicked(self, widget):
"""Called when the Ins button is clicked"""
def on_btnImage_clicked(self, widget):
"""Called when the Image button is clicked"""
def on_btnUnorderedList_clicked(self, widget):
"""Called when the Unordered List button is clicked"""
def on_btnOrderedList_clicked(self, widget):
"""Called when the Ordered List button is clicked"""
def on_btnListItem_clicked(self, widget):
"""Called when the List Item button is clicked"""
def on_btnMore_clicked(self, widget):
"""Called when the bold button is clicked"""
def on_btnCode_clicked(self, widget):
"""Called when the Code button is clicked"""
def on_btnSettings_clicked(self, widget):
"""Called when the settings button is clicked. It will
show the dlgSettings dialog and let the user set the WordPress
blog settings."""
def on_btnpost_clicked(self, widget):
"""Called when the post button is clicked, this will
post the post to the blog."""
if __name__ == "__main__":
word = WordPy()
This code simply shows our wndMain and connects all of our signals with internal functions. The next bit of code that I'm going to show is a simple holder class to hold our WordPressBlogSettings, the settings will be pickled into and from a file just to make using this easier. However the file is text readable so if you are concerned about your wordpress password you might not want to use this:
[code lang="python"]
class WordPressBlogSettings:
"""This class holds the necessary wordpress blog settings
URL – The URL of the blog
Username – The username posting
Password – The password for the username
def __init__(self, File="", URL="", Username="", Password=""):
self.URL = URL
self.Username = Username
self.Password = Password
if (File != ""):
# Load from file
file = open(File, 'rb')
self.URL = cPickle.load(file)
self.Username = cPickle.load(file)
self.Password = cPickle.load(file)
def save(self, File):
"""cPickle the information into the file"""
save_file = open(File, 'wb')
cPickle.dump(self.URL, save_file)
cPickle.dump(self.Username, save_file)
cPickle.dump(self.Password, save_file)
print "Error saving blog settings."
Now that we have that class done, we'll add a WordPressBlogSettings member variable to our WordPy class in the __init__ function:
[code lang="python"]
"""Get the name of the blog data file, sys.path[0] is the
path where the script is located"""
self.dat_file = os.path.join(sys.path[0], "Blog.dat")
self.BlogSettings = WordPressBlogSettings(self.dat_file)
Then change the quit function to look like the following:
[code lang="python"]
def quit(self, widget):
"""Quit yourself"""
The Code – Settings Dialog
In my Building an Application with PyGTK and Glade example I created a separate class to handle the properties dialog. In this example I'm just going to use a member function of the WordPy class:
[code lang="python"]
def show_dlgSettings(self, BlogSettings):
"""This function will show the BlogSettings dialog
It will return the result code from running the dlg.
BlogSettings – An instance of WordPressBlogSettings. Its
values will only be updated if the user presses the OK button
returns – The result from running the dlg"""
#init to cancel
result = gtk.RESPONSE_CANCEL
#load the dialog from the glade file
wTree = gtk.glade.XML(self.gladefile, "dlgSettings")
#Get the actual dialog widget
dlg = wTree.get_widget("dlgSettings")
#Get all of the Entry Widgets and set their text
enURL = wTree.get_widget("enURL")
enUsername = wTree.get_widget("enUsername")
enPassword = wTree.get_widget("enPassword")
#run the dialog and store the response
result = dlg.run()
if (result==gtk.RESPONSE_OK):
#get the value of the entry fields
BlogSettings.URL = enURL.get_text()
BlogSettings.Username = enUsername.get_text()
BlogSettings.Password = enPassword.get_text()
#we are done with the dialog, destroy it
#return the result
return result
Basically this function takes a WordPressBlogSettings object as a parameter and uses those settings to set the default text on the dialog. The dlgSettings is shown, and if the user clicks the Ok button then the WordPressSettings are updated.
To show the dialog and update the BlogSettings the following code is used:
[code lang="python"]
def on_btnSettings_clicked(self, widget):
"""Called when the settings button is clicked. It will
show the dlgSettings dialog and let the user set the WordPress
blog settings."""
Error Dialog
A quick helper function that I wrote for this project was a quick and easy way to show an error dialog:
[code lang="python"]
def show_error_dlg(self, error_string):
"""This Function is used to show an error dialog when
an error occurs.
error_string – The error string that will be displayed
on the dialog.
error_dlg = gtk.MessageDialog(type=gtk.MESSAGE_ERROR
, message_format=error_string
, buttons=gtk.BUTTONS_OK)
It's a simple function that accepts and error string as a parameter and then uses a gtk.MessageDialog to show the error.
Working with the gtk.TextView
I found working with the gtk.TextView object to be quite difficult, it uses an approach to Text controls that I really had not encountered before. Mainly the gtk.TextView gtk.TextBuffer relationship. For a full understanding of the gtk.TextView/gtk.TextBuffer relationship you might want to read the GTK+ reference guide. Here is a brief excerpt that may explain how they two are related:
GTK+ has an extremely powerful framework for multiline text editing. The primary objects involved in the process are GtkTextBuffer, which represents the text being edited, and GtkTextView, a widget which can display a GtkTextBuffer. Each buffer can be displayed by any number of views…
Most text manipulation is accomplished with iterators, represented by a GtkTextIter. An iterator represents a position between two characters in the text buffer. GtkTextIter is a struct designed to be allocated on the stack; it's guaranteed to be copiable by value and never contain any heap-allocated data. Iterators are not valid indefinitely; whenever the buffer is modified in a way that affects the number of characters in the buffer, all outstanding iterators become invalid. (Note that deleting 5 characters and then reinserting 5 still invalidates iterators, though you end up with the same number of characters you pass through a state with a different number).
Because of this, iterators can't be used to preserve positions across buffer modifications. To preserve a position, the GtkTextMark object is ideal. You can think of a mark as an invisible cursor or insertion point; it floats in the buffer, saving a position. If the text surrounding the mark is deleted, the mark remains in the position the text once occupied; if text is inserted at the mark, the mark ends up either to the left or to the right of the new text, depending on its gravity. The standard text cursor in left-to-right languages is a mark with right gravity, because it stays to the right of inserted text.
So, a gtk.TextBuffer is the actual text, and it can be displayed in more then one gtkTextView objects which decide how the text will look. gtk.TextIter objects are used to iterate through the text, but they will not be valid forever since the text might change. To keep track of a position in the text "forever" gtk.TextMarks must be used. You can also use tags and things to format text in a gtk.TextView but we won't be using them at all in this tutorial.
Because of the complicated relationship between all of these pyGTK objects I decided to write some helper functions to make working with the text easier.
The first thing we needed to do was get the gtk.TextView and gtk.TextBuffers that we will be working with. In order to do this we add the following code to the __init__ function:
[code lang="python"]
#Get the text view
self.txtPost = self.wTree.get_widget("txtPost")
#Get the buffer associated with the text view
self.txtBuffer = self.txtPost.get_buffer()
Now that we have the gtk.TextView and the gtk.TextBuffer we can start creating the helper functions. The first function will get the start and end gtk.TextIter objects that represent the selection:
[code lang="python"]
def get_selection_iters(self):
"""This function gets the start and end selection
iters from the text view. If there is no selection
the current position of the cursor will be returned.
Returns – start,end – gtk.TextIter objects"""
start = None
end = None
#First check to see that the text buffer is valid
if (not self.txtBuffer):
self.show_error_dlg("Text buffer not available")
return start,end
#Get the selection bounds
bounds = self.txtBuffer.get_selection_bounds();
if (bounds):
#If there is a selection we are done
start,end = bounds
#There is no selection so just get the cursor mark
cursor_mark = self.txtBuffer.get_insert()
"""Set start and end to be gtk.TextIter objects at the
position of the cursor mark"""
start = self.txtBuffer.get_iter_at_mark(cursor_mark)
end = self.txtBuffer.get_iter_at_mark(cursor_mark)
return start, end
The first thing this function does is initialize our returns values (start and end) to None, just so that the caller function can tell whether the function succeeded or not. The next thing we do is attempt to get the current selection using gtk.TextBuffer.get_selection_bounds() function. If there is no selection then we use the gtk.TextBuffer.get_insert() function to get the gtk.TextMark that is at the current position of the cursor. Then we use that gtk.TextMark to set the start and end gtk.TextIter object and we're done.
The next two helper functions make use of the get_selection_iters() function. The first is used to insert text into the gtk.TextView, and the second is used to wrap the currently selected text in the gtk.TextView with a start tag and an end tag. First the insert_text() function:
[code lang="python"]
def insert_text(self, text):
"""This function inserts text into the text buffer
self.txtBuffer at the current selection. If text is
selected it will be overwritten, otherwise it will simply be
inserted at the cursor position
text – The text to be inserted in the buffer
start, end = self.get_selection_iters();
if ((not start)or(not end)):
self.show_error_dlg("Error inserting text")
#Delete the selected text (start and end will be equal after)
#Save a mark at the start position since after we insert
#the text start will be invalid
start_mark = self.txtBuffer.create_mark(None, start, True)
#Insert, end will be set to the end insert position
start = self.txtBuffer.get_iter_at_mark(start_mark)
#select the text, use end as the first param so that
#it will be the cursor position
#delete the start mark
The comments in the code should help explain what is happening in this function, but I will explain it briefly. First we get the start and end gtk.TextIter objects representing the current selection. Then we delete that selection and create a gtk.TextMark at the start location. The gtk.TextMark is created with left gravity, which means that when text is inserted at it's position it will stay to the left of the text rather then being pushed to the right.
Then we insert the text at the end position, which will insert the text and update the position of the end gtk.TextIter to point at the end of the inserted text. Next we get the start gtk.TextIter based off of our start_mark and select all of the text that we just inserted. Finally we delete the gtk.TextMark that we created and the function is done.
The next text helper function that we will need is a function to wrap text, it's similar to the insert_text() function except this function will wrap any selected text with two tags. If no text is selected then the two tags will be inserted at the cursors position.
[code lang="python"]
def wrap_selection(self, start_tag, end_tag):
"""This fucntion is used to wrap the currently selected
text in the gtk.TextView with start_tag and end_tag. If
there is no selection start_tag and end_tag will be
inserted at the cursor position
start_tag – The text that will go at the start of the
end_tag – The text that will go at the end of the
start, end = self.get_selection_iters();
if ((not start)or(not end)):
self.show_error_dlg("Error inserting text")
#Create a mark at the start and end
start_mark = self.txtBuffer.create_mark(None,start, True)
end_mark = self.txtBuffer.create_mark(None, end, False)
#Insert the start_tag
self.txtBuffer.insert(start, start_tag)
#Get the end iter again
end = self.txtBuffer.get_iter_at_mark(end_mark)
#Insert the end tag
self.txtBuffer.insert(end, end_tag)
#Get the start and end iters
start = self.txtBuffer.get_iter_at_mark(start_mark)
end = self.txtBuffer.get_iter_at_mark(end_mark)
#Select the text
#Delete the gtk.TextMark objects
If you understood the insert_text() function then you will probably understand the wrap_selection() function as they use very similar techniques. The first thing is to get the start and end selection gtk.TextIters, then create gtk.TextMark objects at both locations. We create the gtk.TextMark objects at both locations and with different orientations so that when we insert the text we will still know where the original positions were (relative to the text we inserted) are so that we can select everything once we are done.
Then we insert the start_tag, re-get the end gtk.TextIter (since our original is no longer valid after we inserted the text) and insert the end_tag. After that we simply re-get both the start and end gtk.TextIter objects and then select all the text in between the start_tag and end_tag inclusively.
The Code – The easy buttons
After we have the two text helper functions you can see how easy it is to populate most of the on_clicked() handlers for our buttons. Except for on_btnImage_clicked() and on_btnLink_clicked() here are all of the button clicked handlers.
[code lang="python"]
def on_btnBold_clicked(self, widget):
"""Called when the bold button is clicked"""
def on_btnItalic_clicked(self, widget):
"""Called when the italic button is clicked"""
def on_btnBlockQuote_clicked(self, widget):
"""Called when the Block Quote button is clicked"""
def on_btnDel_clicked(self, widget):
"""Called when the Del button is clicked"""
today = datetime.date.today()
def on_btnIns_clicked(self, widget):
"""Called when the Ins button is clicked"""
today = datetime.date.today()
def on_btnUnorderedList_clicked(self, widget):
"""Called when the Unordered List button is clicked"""
- ","
def on_btnOrderedList_clicked(self, widget):
"""Called when the Ordered List button is clicked"""
- ","
def on_btnListItem_clicked(self, widget):
"""Called when the List Item button is clicked"""
def on_btnMore_clicked(self, widget):
"""Called when the bold button is clicked"""
def on_btnCode_clicked(self, widget):
"""Called when the Code button is clicked"""
Pretty straight forward except for maybe the on_btnIns_clicked() and on_btnDel_clicked() functions which make use of the built-in datetime module and the strftime function to format the current date in the correct manner (YYYYMMDD). The following line needs to be added to the start of the code:
[code lang="python"]
import datetime
The Code – Link Button, Image button, and gtk.FileChooserDialog
Now we need to get the on_btnLink_clicked() and the on_btnImage_clicked() functions working. First off I'll show you the on_btnLink_clicked() since it's the simplest of the two:
[code lang="python"]
def on_btnLink_clicked(self, widget):
"""Called when the link button is clicked"""
#load the dialog from the glade file
wTree = gtk.glade.XML(self.gladefile, "dlgLink")
#Get the actual dialog widget
dlg = wTree.get_widget("dlgLink")
enURL = wTree.get_widget("enURL")
"""Get the selection not and reselect becuase somethimes
the dialog will remove the selection"""
start, end = self.get_selection_iters()
#run the dialog
if (dlg.run()==gtk.RESPONSE_OK):
#Reset the selection
if ((start)and(end)):
#Select the text
#Wrap the selection with the value of the entry fields
self.wrap_selection("" % enURL.get_text(),"")
If you've read my Building an Application with python and PyGTK tutorial and made it this far in this tutorial then nothing in this code should be that surprising. First we get the dlgLink's widget tree from the glade file, and then we get the actual dialog widget.
Next we get the URL text entry widget and set it's default text to be "HTTP:\\". After that we get the current selection, the reason that we do this is because sometimes I noticed that showing the dialog caused the selection to be removed from the gtk.TextView. So the quick and easy way to get around this (since the helper function was already written) was to simply get the selection before the dialog is visible for any length of time, and then reset the selection once the used has exited the dialog.
Then we have to run the dialog and wait to see if the used clicks the Ok or Cancel button. If they click Cancel nothing happens, we destroy the dialog and the function is over. If, however, they click Ok we will then reset the selection, and wrap it with the link tags.
The next thing we are going to do is work on letting the user add an image to their blog post. To do this we will respond to the on_btnImage_clicked function. The first thing we need to do is let the user browse for an image. We will use a gtk.FileChooserDialog, for more information on using a gtk.FileChooserDialog see section 16.6 in the PyGTK Tutorial, where much of the following code is taken:
[code lang="python"]
def browse_for_image(self):
"""This function is used to browse for an image.
The path to the image will be returned if the user
selects one, however a blank string will be returned
if they cancel or do not select one."""
file_open = gtk.FileChooserDialog(title="Select Image"
, action=gtk.FILE_CHOOSER_ACTION_OPEN
, buttons=(gtk.STOCK_CANCEL
, gtk.RESPONSE_CANCEL
, gtk.STOCK_OPEN
, gtk.RESPONSE_OK))
"""Create and add the Images filter"""
filter = gtk.FileFilter()
"""Create and add the 'all files' filter"""
filter = gtk.FileFilter()
filter.set_name("All files")
"""Init the return value"""
result = ""
if file_open.run() == gtk.RESPONSE_OK:
result = file_open.get_filename()
return result
The browse_for_image() function will show the following dialog:
The first thing we do in the function is create our gtk.FileChooserDialog. When constructing the gtk.FileChooseDialog we set it's title, the fact that it is a File Open dialog, and what buttons it will have (Ok and Cancel). Then we use two gtk.FileFilter's to control what sort of files the user will be allowed to browse for. The first file filter sets up the common image types that they will be allowed to browse for and the second filter lets them browse for any file type.
Then the gtk.FileChooserDialog is shown and if the user presses the Ok button the full path to the file that they selected is returned, otherwise an empty string ("") is returned.
We will also add another function to our WordPressBlogSettings class:
[code lang="python"]
def create_wordpress_client(self):
"""Quick helper routine used to create the wordpress
# prepare client object
wp = wordpresslib.WordPressClient(self.URL
, self.Username
, self.Password)
#Error creating Client, setting maybe wrong
return None
# select blog id
return wp
This function simply creates the wordpress client that we need when working with the wordpress library. It's important to note that the blog settings must be correct for the client to be created properly.
To include the wordpress library the follow code is added to the top of the program:
[code lang="python"]
import wordpresslib
print "wordpresslib required"
This will try to import the wordpress library and then exit if the library cannot be found.
Now we have all the pieces we need to create our on_btnImage_clicked() function:
[code lang="python"]
def on_btnImage_clicked(self, widget):
"""Called when the Image button is clicked"""
#Try to get the wordpress client
wp = self.BlogSettings.create_wordpress_client()
if (wp == None):
#Error creating Client, setting maybe wrong
self.show_error_dlg("Error creating Worpress client, please check settings.")
#Now get out of here
# browse for the image
image_file = self.browse_for_image()
if (image_file!=""):
#We have an image file
imageSrc = wp.newMediaObject(image_file)
if (imageSrc):
self.insert_text("" % imageSrc)
self.show_error_dlg("Error uploading image")
except wordpresslib.WordPressException, wpe:
#wordpress lib error
self.show_error_dlg("Error uploading image %s" % wpe )
With all the helpers created this function really isn't that difficult. First we try to get the wordpress client, if we cannot we let the user know that their settings are probably incorrect. If we get the client correctly we then browse for an image file.
If we get an image file returned we attempt to upload it to our blog, if that succeeds we insert image HTML code, if it fails in any way we inform the user.
Well we're almost done now, all we need to do is upload the post to the blog. We do this in the on_btnPost_clicked() function:
[code lang="python"]
def on_btnpost_clicked(self, widget):
"""Called when the post button is clicked, this will
post the post to the blog."""
#Try to get the wordpress client
wp = self.BlogSettings.create_wordpress_client()
if (wp == None):
#Error creating Client, setting maybe wrong
self.show_error_dlg("Error creating Worpress client, please check settings.")
#Now get out of here
post = wordpresslib.WordPressPost()
post.allowPings = True
post.allowComments = True
post.title = self.enTitle.get_text()
start, end = self.txtBuffer.get_bounds()
post.description = self.txtBuffer.get_text(start, end)
#Now post the post!
new_post_id = wp.newPost(post, True)
success_dlg = gtk.MessageDialog(type=gtk.MESSAGE_INFO
, message_format="Success! Post has been published!"
, buttons=gtk.BUTTONS_OK)
self.show_error_dlg("Error publishing post.");
So we start off by getting the wordpress cleint, and if that works we get the post's title and the post's text. Then we attempt to upload the post, if we get an exception then the post has failed and we let the user know using our show_error_dlg() function. If we do not get an exception then we show the user a success dialog.
The End
Well that's it for the WordPy tutorial, I hope to improve on WordPy and get it working as an actual application that can be installed and used by users. If anyone is interested in this please let me know.
You can download the full source for this tutorial here.
Let me know if you find any bugs, this is a longer tutorial so some might have slipped in.


text: The questions we have been asked is 'Why are most books printed in serif type?' and 'Which typeface is more readable?' Well, fonts come in many different styles, based around the serif and sans serif type. Serif fonts have a decorative feel to them, much like the 'Times' style fonts. Sans serif fonts have a modern feel to them, much like the 'Helvetica' style fonts. So which one seems best suited for printed books/novels? It all has to do with the readability. The readability depends on how letters work together in words and in lines of text. But before we test the readability of the font, we must consider the differences between printed and digital text. When displaying text on-screen/digital, a letter with fine diagonal features and curves will appear different depending on the range of dots on the screen. This is because each tiny part of a letter relies on a pixel to be filled with colour, i.e. Black. If you look closely at your screen you will see how the pixels make up each letter. In particular typefaces, the range of pixels that make up one letter sometimes make it hard to interpret what letter it is, this is why sans serif type more so than serif type is most common for on-screen use. The smaller the font size on-screen the harder the text will be to read due to the collaboration of pixels. The larger the font size on-screen the finer and more detailed the text will be, making it more readable. This problem doesn't arise when printing serif type as paper does not have pixels, which makes serif type on paper more readable than serif type on-screen. This may be one reason why most books are printed with serif type, because typographers feel that serif text is more readable. But I believe it has more to do with the traditional side. When printing first came about, type was set in more serif fonts than sans serif. And most books you see around today that may be very old, are set in serif type. Nowadays the majority of books are set in a serif type, because serif type flows as you read it, making it more readable than sans serif type. Serif fonts are used in traditional printed material such as books and newspapers. Many magazines use sans serif type as some editor's state that they are cleaner and more readable. Serif type may be considered as a display type face which should only be used for headings or titles. Although sans serif type may also be used for headings and titles. Whatever you use your typeface for, it all depends on whether it looks good and it's readable. There are many theories and debates suggesting sans serif type is more readable than serif type, and others suggesting the opposite. There have been ridiculous statements suggesting that 'serifs are used for body text because sans serif causes fatigue'. But I think it's just how you prefer the type, what you're use to reading and which typeface is more readable to you. In the end I think it all comes down to your own decision.

subset: commoncrawl


text: Close and Play Close and Play Group Bisex Like About Share Download complete video now! 0 views 0% 0 0 From: dsitc Date: December 4, 2018 Group group Leave a Reply Cancel reply Your email address will not be published. Required fields are marked *CommentName * Email * Website Notify me of follow-up comments by email. Notify me of new posts by email.


text:
Britain's Prince Charles is 64 today.
Today is Wednesday, Nov. 14, the 319th day of 2012. There are 47 days left in the year.
Today's Highlight in History:
•On Nov. 14, 1862, during the Civil War, President Abraham Lincoln gave the go-ahead for Maj. Gen. Ambrose Burnside's plan to capture the Confederate capital of Richmond; the resulting Battle of Fredericksburg proved a disaster for the Union.
On this date:
•In 1851, Herman Melville's novel "Moby-Dick; Or, The Whale" was first published in the United States.
•In 1922, the British Broadcasting Co. began its domestic radio service.
•In 1940, during World War II, German planes destroyed most of the English town of Coventry.
•In 1969, Apollo 12 blasted off for the moon.
•In 1970, a chartered Southern Airways DC-9 crashed while trying to land in Huntington, W.Va., killing all 75 people on board, including the Marshall University football team and its coaching staff.
•In 1986, the Securities and Exchange Commission imposed a $100 million penalty against inside-trader Ivan F. Boesky and barred him from working again in the securities industry.
•Ten years ago: Aimal Khan Kasi was executed by injection at a prison in Jarratt, Va., for the slayings of two CIA employees in 1993.
•Five years ago: Michael Mukasey took a ceremonial oath as the new U.S. attorney general, five days after he was privately sworn in.
•One year ago: A Russian spacecraft carrying NASA astronaut Dan Burbank and two Russians blasted off from the snow-covered Kazakh steppes, headed for the International Space Station.
•Today's Birthdays: Former U.N. Secretary-General Boutros Boutros-Ghali is 90. Baseball's Jimmy Piersall is 83. Zydeco singer-musician Buckwheat Zydeco is 65. Rock singer-musician James Young (Styx) is 63. Singer Stephen Bishop is 61. Pianist Yanni is 58. Former Secretary of State Condoleezza Rice is 58. Rapper Reverend Run (Run-DMC) is 48. All-Star pitcher Curt Schilling is 46. Actor Josh Duhamel is 40. Rock musician Travis Barker is 37. Actor Brian Dietzen (TV: "NCIS") is 35. Rapper Shyheim is 35. Rock musician Tobin Esperance (Papa Roach) is 33. Actress Olga Kurylenko is 33. Actor Graham Patrick Martin is 21.


text:
Item #1252
Annual. 85-100 days. A new selection of an heirloom
dent corn with an exceptional mix of
colors. Called "dent" corn because
fully mature kernels will have a dent
in the tip. Tall plants produce one or
two large, 8"-10" long ears filled with
multi-colored kernels in shades of gold,
orange, yellow, blue, green, pink, red
and brown. Lovely for fall ornamental
displays, or grind kernels into cornmeal
for a delicious cornbread.
This packet sows two 5-foot rows.
Seedling Image
Full Sun
85-100 days
3' - 10' tall
Days to Emerge:
Seed Depth:
Seed Spacing:
When to sow outside: RECOMMENDED.
1 to 2 weeks after average last frost and
when soil is warm
When to start inside: Not recommended. Corn seed does not transplant well.
Special germination instructions: Please review the cross-pollination prevention information inside this packet before planting.
Harvesting: Let the ears dry on the stalks. They are ready for harvest when the kernels are hard and you can no longer leave a mark on them with your fingernail. Before the first fall frost, give each ear a twist until it breaks off. Peel back the husks, then hang the ears in a cool, dark, dry place for 4-6 weeks to cure. This is important to prevent mold. To strip off cured kernels, twist the cobs back and forth to loosen them (gloves are recommended).
Artist: Carolyn Crawford
Item #1252
8.00 grams


text:
A lightning strike claimed the life of a Pennsylvania boy out for a dip in a local swimming hole over Labor Day Weekend.
The National Weather Service said that due to preliminary reports, they consider a boy's death in Lancaster County Sunday to be caused by lightning.
The unidentified boy and two friends were swimming in Conowingo Creek near Nottingham Road and Soapstone Hill Road in Fulton Township Sunday afternoon when the lightning struck, according to Lancaster Online.
U.S. & World
Crews used all-terrain vehicles to drive thorough a field to reach the creek, Robert Fulton Fire Chief Tracy Tomlinson told Lancaster Online. Crews then rushed two of the boys to Lancaster General Hospital. The boys were transferred to Hershey Medical Center.
The Dauphin County coroner's office said one boy was pronounced dead at the Hershey hospital Sunday evening. His name and age were not immediately known. The condition of the other boy hasn't been released. Officials said the third person was uninjured.
Authorities didn't release ages for the boys.
The death is the 21st deadly strike in the country this year – all but 18 taking the lives of males, according to numbers released by the National Weather Service.


text:
Procedures and Policies
Menu Guide
In the table below we provide greater detail to this list of menu options under the Procedures and Policies.
|Current Season Information
|Code of Conduct
|A quick review of the BAYS Code of Conduct and its history.
|The entire BAYS Constitution, in online book format.
|Current Rule Book
|The BAYS Game Play Rule Book.
|Electronic Rosters
|Details on how to submit an electronic roster.
|International Waivers
|Detailed review of BAYS International Participant Waiver Guidelines.
|Instructions on creating a US Youth Soccer Passcard.
|Player Priority List
|Guidelines for soccer players registered on multiple teams, to select the proper team to practice and play for, when conflicts arise.
|Religious Holiday Policy
|Summary review of BAYS Religious Holiday Policy.
|Seasonal Calendar
|A generic calendar reviewing standard activities for each month within a calendar year.
|Waiver Procedure
|A summary review of BAYS Waiver Procedure.


text:
Due to the COVID-19 pandemic, different schools are operating in different ways at the moment. If you are unsure about the current situation with your child's potential attendance at school, please contact the school direct for more information.
Admission policy for Joseph Norton Academy - Special School (44.8kb)
It looks like you're using an old, insecure browser that we no longer support.
In order to continue using secure areas of this website to do things like paying your council tax bill and searching for jobs
you'll need to do one of the following:


text:
With some well-placed wire, creative lighting and a provocative sense of visual puns, sculptor and photographer Terry Border has given life to everything from peanuts to pill bottles. His cleverly cartoonish scenes are often viral hits on the internet and they've brought his blog, Bent Objects, a global audience.
"I don't mean for everything to be funny," says Border, who lives in Indianapolis. "We all have different perspectives and my perspective happens to be kind of strange and twisted."
Originally, Border says, his bent-object sculptures and photo scenes came about almost by accident. He studied photography in school and initially made his living as a commercial photographer. When that grew old he tried cartooning, then landed in sculpture.
"I couldn't have planned it if I tried," says Border, who has published two books and is currently working on several new projects.
Border had always liked Alexander Calder, the artist who is credited with inventing the mobile, which inspired his initial figures to be made of just bent wire. But he quickly started adding things like wine corks to give them more mass.
"I'm not sure how conscious I was [about adding objects], it just kind of evolved," he says.
Eventually, Border noticed that some inanimate objects conjured images of animals or lent themselves to representing humans. He would make a bug out of a sharpened pencil, with the tip representing the stinger, for example, or he would use pears to represent male and female bodies.
"A lot of it is playing with our preconceived notions of shapes and objects," he says.
Instead of storyboarding or sketching his scenes out, Border said the best ones just come to him. Take Mail Order Bride, for example. He used to work as a baker in a grocery store and one day while leaving work he passed by a display of real lemons sitting next to a box of plastic lemons. As he walked by he thought, if those lemons were alive, "how would they associate with each other?" The plastic lemons appeared almost doll-like next to the real ones, prompting him to think about humans and their dolls. The final shot gives an idea of his thought process.
Initially, Border tried selling the sculptures, without much success. Then he started taking their photos and posting them on his blog.
The photos not only broadened his audience, they also allowed him to create a more sophisticated narrative. Different kinds of lighting could set the mood, and the occasional well-placed dollhouse prop could fill in the story. The perspective of the photographs also became important, where Border has to "control your eye to tell the story."
The first Bent Object photos were taken on a Canon PowerShot camera with a simple backdrop setup in his kitchen and lit by flashlights. He's since graduated to a Canon 5D and more elaborate lighting system that is set up in a spare bedroom of his house.
While a lot of his scenes rely on word play to complete the loop, Border actually tries to stay away from being too clever with his titles because he wants it to appeal to a broader audience. His more R-rated images are usually get published on a different blog called Really Bent.
"Some people think I'm silly for segregating it, especially the Europeans," he says. "But there are some people in this state who are very conservative and it makes me a little nervous."
Border says his next big thing is – video. He's already dabbled in stop-motion animation where his objects act out more elaborate scenes. He's working on a YouTube collaboration and wants to include a DVD with his next book.
He won't reveal all the details but says whatever comes next will still rely on his same sense of playfulness.
"Whatever I do, I just want to have a good time with it."


text:
The ABCs of School Bullying
Tips for Parents and Teachers
With the start of the school year fast approaching, students and parents are again becoming concerned with classes, notebooks and pencils. But a new school year often brings back a far greater concern: bullying.
Bullying Can Happen Anywhere
Today, bullying is as prevalent as ever, perhaps even more so. The reason behind this is that today's "anywhere" includes not only the playground at lunchtime, but also cyberspace. Before technology such as cell phones and instant messengers, students were able to leave bullies behind when they went home from school each afternoon. But now, bullies can send messages to their victims through text messages on cell phones and instant messages on computers.
Because bullying is so difficult to escape, now is the time to talk to your child about how to handle a bully if faced with one. It's also the time to talk with your child if you suspect he is a bully.
Five Ways to Handle a Bully
- Stay calm and alert. Consider the options and do nothing to escalate the situation.
- Walk away. Fighting isn't worth it. You do not have to prove yourself by fighting.
- Take a non-violent stand. Speak respectfully: "I don't want to fight you."
- Report it to authorities, but discuss with them how you will be protected from retaliation.
- Get away. Find safety or call for help.
Five Ways to Prevent Bullying
Conversely, parents often do not learn that their children are bullying other kids until they get a phone call from school or another child's parents. If you suspect that your child is picking on others, here are some ways to intervene:
- Notice if your child lacks empathy, dominates others, is selfish or refuses to accept responsibility. This could be a warning sign of bullying tendencies.
- If your child ever engages in bullying acts, he should apologize to the victims and undo any damage, such as replacing stolen or destroyed property.
- Make sure your child doesn't hang out with other bullies who may be influencing his behavior. If he does, encourage new friendships.
- Help your child understand that physical or emotional abuse is never acceptable.
- Talk to your child, other parents, and teachers about what is going on. The more you know about your child's everyday activities, the better you can prevent at-risk behavior.
When parents talk to their children about how to handle bullying, they are better equipping their children to handle volatile situations on their own. By discussing problems before they escalate, conflicts can be resolved and school life can work for everyone.
About the Authors
Ken Druck is author of How to Talk to Your Kids About School Violenceand founder of the "Families Helping Families" program. Jessica Malia writes on education and educational media. For more information on preventing violence -- some for free, some for sale -- see the publisher's Web site.
NEA's Bully Free: It Starts With Me
Take the Pledge: Stand Up For Bullied Students
One caring adult can make all the difference. NEA's Bully Free: It Starts With Me campaign asks you to fill out this pledge form so that you can be that one caring adult.


text:
212 VIP Men by Carolina Herrera 1.7 oz EDT for men
Item No.: 4326 UPC: 8411061723777
|Item No.: 4326
Stock Available in quantity212 VIP Men by Carolina Herrera 1.7 oz / 50 ml Eau De Toilette spray for men The perfume opens up with an explosive cocktail of vodka, passion fruit, frozen mint, ginger, black pepper, lime caviar, leather, spices, amber and king wood. This night life scent radiates your uber cool style and attitude of the new york party animal with subtle notes of gin and vodka. This Carolina Herrera perfume is a must-have in the wardrobe of men who likes fun and also wants to project lots of charisma.
Customers who bought this product also purchased


text:
Coaching Inn Hotel2
Warrington Road, Wigan, WN34NJ
Warrington Road, Wigan, WN34NJ
Friendly landlady.
David Tunstall
This family-run hotel is within easy reach of DW Stadium (formerly JJB), Robin Park Sports complex, Three Sisters race track, Haydock Racecourse and the Reebok Stadium. Situated on the A573 main road into Wigan, the Coaching Inn Hotel has a convenient location, whatever your reason for visiting the region. Just a mile (1.
6 km) from the town centre, the hotel's offers easy access to the region's major road network. There is a good, regular bus service to and from the town centre. Free, secure, private parking is available for guests' use. Built in 1895, this Victorian hotel is rich in individual character, with 18 clean and comfortable en suite rooms (no clean-cut lines like modern hotels). Each room provides an office desk and tea/coffee making facilities. Family owned and run for over 30 years, the hotel takes great pride in the relaxed, friendly atmosphere, informal surroundings and warm welcome it offers. The hotel has a small restaurant/bar area, offering home-cooked food in the evenings. A strict no-smoking policy operates throughout the hotel. To ensure a peaceful nights rest for guests, closed-circuit TV cameras operate both inside and outside the property. As a family run hotel, I David Murphy as the licensee will refuse entry to any intoxicated or rowdy person who tries to enter the premises either at check in or upon their return in the evening. The full charge for the reservation is applicable and no refunds will be given. Single sex, group bookings or split group bookings are not accepted. Charges from £40. 00 apply for and damage caused, smoking in rooms or loss of hotel property. As the hotel does not operate a 24 hour reception, we do have a 01:00 curfew. PLEASE NOTE: The Hotel is not VAT registered
Read MoreLess
Our reviews are from genuine LateRooms.com customers. We verify that the customer has stayed before leaving a review.
100% would recommend it to a friend
Customer service
Food quality
Room quality
The place was basic but value for money with comfortable bed.


text:
Harvey Hays stars as Chief Superintendent John Davidson, Custodian of The Black Museum. He is joined by an "all-British cast," including Horace Braham, Lester Fletcher, Pat O'Malley, Guy Spaull, Patricia Courtley, and more.
Includes a Program Guide by Karl Schadow.
Episodes Include: The Case of Thomas Appleby 03-16-52; The Case of the Black Gladstone Bag 03-23-52; The Murder of a Bloody Belgian 03-30-52; The Case of the Fatal Bath 04-13-52; The Case of Mrs. Minerva Bannerman 04-20-52; The Case of Francesca Nicholson 04-27-52; The Case of William George Greenlee 05-04-52; The Case of Margery Tate 05-11-52; The Case of Sydney Wolfe 05-18-52; The Case of Madgie Rowlandson 05-25-52; The Case of Winifred Hogg 06-01-52; The Case of the Strange Bonfire 06-08-52; The Case of the Homemade Handbag 06-15-52; The Murder of Mrs. Ann Battersby 06-22-52; The Case of the Weed Eradication 06-29-52; The Murder of Mr. Street 07-06-52


text:
The preparing pitch to keep Burnett
BALTIMORE — A source with knowledge of the negotiations confirmed on Saturday that the Blue Jays are preparing to offer pitcher A.J. Burnett two additional years at around $30 million on top of his current contract, which expires after 2010.
"I don't think a number has been put down yet," the source said. "That's probably as good a guess as anything, though. But, terms haven't really been discussed."
Jays general manager J.P. Ricciardi has repeatedly noted that he hasn't been in contact with Burnett's representative, but the pitcher said Saturday that his agent, Darek Braunecker, met with Ricciardi recently in Toronto.
Upon hearing that, Ricciardi altered his story.
"We talked, but it wasn't about money or anything like that," he said.
If the contract extension being offered is indeed four-years, $54 million through 2012, including the $24 million Burnett is owed over the next two seasons under his current deal, it will fall short of what the right-hander could command on the open market.
Another source indicated that Burnett could potentially fetch between $15-20 million annually over a long-term deal as a free agent. Burnett said he still hasn't decided whether or not he's going to opt out of his contract to test his value.
"I haven't decided that. I don't know," Burnett said. "It depends on what these guys offer and on what me and my family think and then we'll make that decision after that. But I'm not 100 percent going to opt out."
Toronto's best shot at signing Burnett is in October, before other teams can start talking to him.
"That's the only way," a source said. "If he declares the opt out, chances decrease tremendously."
Today's lineups:
TORONTO (85-75) at BALTIMORE (67-92)
at 7:05 p.m. ET at Camden Yards
MaJoe Inglett, 2B
Jose Bautista, 3B
Adam Lind, DH
Lyle Overbay, 1B
Brad Wilkerson, CF
Kevin Mench, LF
Travis Snider, RF
Gregg Zaun, C
John McDonald, SS
PITCHING: LHP John Parrish (1-0, 4.10)
Jay Payton, RF
Luis Montanez, LF
Melvin Mora, DH
Oscar Salazar, 3B
Adam Jones, CF
Ramon Hernandez, C
Kevin Millar, 1B
Alex Cintron, SS
Brandon Fahey, 2B
PITCHING: RHP Brian Bass (3-4, 5.08)
9 Comments
JP exposed again. He met with AJ's agent and didn't talk money or contract. I guess they just talked about the US presidential race, the wall street financial crisis and the cost of gasoline. Does JP not realize what an idiot he looks like every time he's caught in a lie and how much credibility he losses with the press and fans.? I guess he must not listen to the fan590 who ran this story today multiple times today.
$54 mill for 4 years of Burnett. To be fair, I think Burnett changed this year from a thrower to a pitcher. Halliday has had significant impact on AJ, and as a result, it would not surprise me at all if AJ decides to stay. It would also not surprise me if AJ's visits to the DL are limited in the future. He now longer goes out there and burns each pitch in at 98 mph and the wear and tear isn't anywhere near what it used to be.
BUT, is this is the start of a serious run at contending, because unless another 30-40 mill isn't thrown at it, it could be just a waste of money and another huge contract which will needed to be unloaded.
I have said over and over that AJ will not opt out and I will say it again.He learned how to pitch in Toronto,He will not leave Arnsberg or Halladay.
Garry while the thought is nice, I can't help but doubt what you believe. In the end money almost always talks, and AJ stands to make a lot of money if he opts-out of his contract. At the very least he re-ups with the jays for another 2 years, I mean he has enough leverage right now to easily guarantee at least 2 more years of big money.
On the bright side, I don't think the jays can lose in this scenario. If they re-sign AJ then great, they can try and bring in a big dh bat like a Jason Giambi (and yes his 30hrs would help our lineup devoid of power) or another player along those lines and try and compete next year.
If he doesn't re-sign we can take our 2 compensation picks, go into next year with a younger lineup, and try to prepare ourselves for a very competitive 2010 season. Whether people wanna admit it or not we paid AJ $31 million over the first 3 years, and we got a record of 34-26, which I would say is fairly solid production, considering all the pitchers that bust. We will also at the worst get 2 draft picks which always helps to build the farm system.
The report is the Jays have offerd Burnett two more years at 30 mil.and I belive he will take it.AJ learned something about himself in Toronto,And I think Halladay taught him something more than just how to pitch,I belive it was how to become a man.I will bet almost anything that he will stay in Toronto.By chance if he leaves by opt out I will print that I am an IDIOT ON THIS SITE,That is how sure I am.
Are you awake yet.
What a bummer the last game of the year and it's not on the tube.
It looks like Wells is on tract since comeing of the DL.
Look at DA-KID go.
Garry-new blog up
Garry I hope you are correct about AJ. If he takes that extension I will be happy, I don't think JP has it in him to attempt to rebuild this team again so we basically have to keep out best veterans and hope for the best somehow.


text: Champagne's golden bubbles are known world-wide as the symbol for celebration. However, the history of this effervescent luxury is riddled with widows, or Veuves in French. From the original Veuve Clicquot to Veuve Pommery, Veuve Bollinger and Veuve Laurent-Perrier, this cabaret musical will take you down into the Caves of Champagne where, despite war, discrimination and a slew of dead husbands, women pop the corks and come out on top. Your ticket includes a 4 course meal and the performance.


text:
Philip Gordon Wylie (May 12, 1902 – October 25, 1971) was a U.S. author.
Born in Beverly, Massachusetts, he was the son of Presbyterian minister Edmund Melville Wylie and the former Edna Edwards, a novelist, who died when he was five years old. His family moved to Montclair, New Jersey and he later attended Princeton University during 1920–1923. Some of his papers, writings, and other possessions… (more)


text:
Dame Dash Son Is A DJ Now (Damon Dash Jr. On Good Day)
Damon Dash Jr. has known entertainment- particularly the music industry- his entire life. With his dad -Damon Dash- one of the biggest names in the business and his godfather- Jay Z- it's no surprise he took a liking to music early on. Dash Jr. is spinning under the name DJ Boogie.
Please click the "Report" button below if the video on this page is not working properly.
Comments will only be displayed by verified emails. No Spamming or Racism.


text:
Enter your keyword search below
Enter your keyword search below
Find out how we are prepared for Coronavirus. Explore helpful online tools, entertainment options, and more »
We've made a pledge to our customers to put them first in everything we do. We are dedicated to going the extra mile to ensure our customers' experiences are great, every time. At RCN, we work to provide innovative customer experiences that deliver friendly and convenient services to you — we understand how busy your life is and work to find ways to make things faster and easier for you.
Hear directly from RCN associates on how they live the Customer Pledge each day!
Our technicians receive advanced training that makes them part of an elite technical team. Each RCN technician is SCTE, Society of Cable Telecommunications Engineers, certified to deliver expert technical experience to our customers.
When you schedule an appointment for an RCN technician to visit your home, you can confirm your technician's arrival with MyRCN. Please have your MyRCN user name and password ready.MyRCN Account Login
As a five time PC Magazine recognized internet service provider, RCN truly delivers superior customer service. Our customer pledge is a service standard each RCN associate lives by, every day. Don't take our word for it – try our services today and find out for yourself!
Save time with convenient options to view your statement online, sign up for paperless billing, set recurring bill payments, check your payment status, access RCN phone features, voicemail, call logs and more. Additionally, the MyRCN Mobile App allows you to manage your RCN account from iOS and Android mobile devices easily and securely using your MyRCN account.
Our customer service teams are locally based and our 24/7 customer support is in the US – ready to help anytime!
If you are not completely satisfied with your RCN services within 30 days of your installation date, we will refund your first month of charges*.
You'll know exactly what you are paying for and what to expect. We explain every item on your bill and make it easy to read. Click here for a detailed overview of your RCN bill.
Flexible appointment windows is another way RCN is committed to providing you the best customer service. RCN now offers convenient 2-hour windows, 7 days a week.
With RCN, you are never locked into a contract!
We value your time. If we are not on time, we will give you a $20 credit.
Personal service and putting you, the customer, first in everything we do.
We live by our customer pledge and we are proud of it!
*RCN customers must disconnect service and return all equipment in order to receive a refund on their first month of service. Please see equipment return details.
Service offerings are contingent upon RCN verification that the specific address covered by the service request is an RCN serviceable location. Prices do not include taxes, franchise fees, activation fees or surcharges. All photos used within rcn.com are intellectual properties of their respective owners. At the end of your promotional period, standard rates apply. Services are subject to terms and conditions of RCN's subscriber agreements, on-line policies, and other applicable terms and conditions. Other restrictions may apply.
With same-day installation, two-hour service windows and 24/7 customer support, switching to RCN has never been easier.Read Our Pledge


text:
Search for prescription and over-the-counter medications for all health conditions.
To improve your search results use quotation marks when searching for a specific phrase.
For example, if you search for substance use, a search WITHOUT quotation marks would find listings that include the words
"substance" OR "use." A search WITH quotation marks ("substance use") would find listings only with the whole phrase "substance use."
Are you sure you want to delete this item?


text:
Get a better feel for the vehicle. Push your limits safely. Experience the most famous racetracks in the world on the trail of the professionals. Where there is nothing in the way of you achieving your high-performance driving goals. With the
Fulfill your dream and prove your motorsports talent. Start your own personal racing career, with professional training and a comprehensive full service mentoring program which with three successive levels are perfectly custom tailored to your needs.Read more
Discover the most beautiful routes in the world – and a world of wonder along the way. With the exclusive journeys offered by the
Adventure, action, adrenaline. Three things that come guaranteed with our
The desire to drive a thoroughbred sports car. To experience a winter like those you remember from your childhood storybooks. Even after many years, those dreams can still be hugely important. And that is precisely why it is time to make them come true with the winter programmes of the
© 2020


text:
Arts and crafts chain Hobby Lobby may be entitled to an exemption from a requirement in President Barack Obama's 2010 healthcare overhaul to include free contraception coverage in its employee health insurance plans, a federal appeals court ruled this week.
The Denver-based 10th U.S. Circuit Court of Appeals reversed a lower-court ruling that had rejected the family-owned company's request for temporary protection from the regulation.
The chain operates 525 retail stores across the country and employs more than 13,000 full-time workers. The Green family, which owns the Oklahoma-based company, says having to provide coverage for the morning-after pill and similar contraceptives, which they regard as tantamount to abortion, violates their Christian beliefs.
A divided 10th Circuit found that Hobby Lobby and its smaller sister operation, Mardel, a Christian-oriented bookstore and educational supply company, have a right to religious freedom under federal law.
Five of the nine judges found that the company met at least some of the requirements needed to win temporary protection from the mandate while their lawsuit proceeds in court.
"Because the contraceptive-coverage requirement places substantial pressure on Hobby Lobby and Mardel to violate their sincere religious beliefs, their exercise of religion is substantially burdened," a majority of the judges concluded.
The appeals court sent the case back to the district court in Oklahoma to consider several additional factors that Hobby Lobby must prove to obtain temporary shelter from the mandate, including whether an exemption would serve the public interest.
Hobby Lobby's challenge is one of over 60 lawsuits filed against the contraception mandate, according to the Becket Fund, a non-profit law firm in Washington, D.C. that represents the company.
The case is Hobby Lobby Stores Inc et al v. Sebelius et al, 10th U.S. Circuit Court of Appeals, No. 12-6294.
(Reporting by Terry Baynes in New York; Editing by Richard Chang)
Was this article valuable?
Here are more articles you may enjoy.


text:
With more than 450,000 entries, the Genius Unabridged English-Japanese-English Package offers an unrivalled language learning tool. To be recommended for the accurate and extremely detailed translations, the numberless usage examples, semantic and spelling alternatives and local nuances and the grammatical do's and don'ts. With Genius you can ensure correct usage in both English and Japanese.
Human Voice - Japanese
Taishukan's Genius Japanese- English-Japanese


text:
You can join our Monero Mining Pool to earn some bitcoin ! (it is converted automatically from XMR to BTC)
It is one of the best rate and you can easily level up with the Command Miner. It is simple as : download and run ! No configuration needed.
You can check the best miners (daily, weekly, monthly and pool stats on the chat!). From time to time, there is extra rewards for the best miners !


text:
Southern Lord recently announced a deluxe reissue of one of the towering achievements in metal history, "Dopesmoker" by SLEEP.
For the 2012 reissue, there are some very notable changes. The original studio tapes have been remastered, presenting the album as the band had originally intended. The audio is clearer, louder, and at last brings a true representation of SLEEP's hour-plus Weedian chronicle. Exclusive to this Southern Lord edition is brand new artwork by longtime SLEEP artist Arik Roper, who crafted something truly special and consciousness-expanding for the album's rebirth. Additionally, this reborn version of "Dopesmoker" boasts an unreleased live recording of one of the band's best all-time performances: "Holy Mountain" from San Francisco's I-Beam in 1994.
This edition ensures that this mesmerizing, incredibly complex document remains unrivaled in the annals of stoner metal.
"Dopesmoker" track listing:
01. Dopesmoker (1:03:31)
02. Holy Mountain (Live @ the I-Beam SF, CA. 1994) (11:54)
In conjunction with the "Dopesmoker" reissue, SLEEP will headline the 2012 edition of the Roadburn festival in Tilburg, Netherlands before departing on a 24-city tour of Europe, commencing May 3 in Wroclaw, Poland.


text:
Turn on suggestions
Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.
Showing results for
Things to check out:
Join us for a Weekly Wellbeing: Gratitude photo challenge here!
We had a week long chat surrounding life transitions and fears about growing up. Click here to join the discussion!
We are sharing our personal stories about Body Image. Join in and share yours!
We had a chat with Dr Joe the Psychologist about how to cope with Life after Social Isolation. Check it out here!
Seen something fantastic on the forums?
Users Online
Currently online: 13 members 308 guests
Recent signins:
Please welcome our newest community members:


text:
New Details About Unrepentant 'Underwear' Bomber Released
Reported by Jason Ryan, Pierre Thomas and Jack Cloherty:
'Underwear' bomber Umar Farouk Abdulmutallab was obsessed with radical Yemeni-American cleric Anwar Awlaki, and embarked on a pilgrimage to Yemen to seek him out in 2009. During that time he met with senior al Qaeda leaders and became a hardened terrorist who went on a mission to kill 289 people during his attempted Christmas Day attack in 2009.
Court papers filed before Abdulmutallab's sentencing next Thursday reveal new details about his links to Awlaki, who had emerged as a key figure within Al Qaeda in the Arabian Peninsula. The report lays out in fascinating detail how Abdulmutallab came to his mission and why the Yemeni-American cleric was deemed so dangerous the U.S. government would hunt him down and kill him in a U.S. attack involving drones and military jets in September 2011.
For years, Abdulmutallab had been following the fiery radical's online teachings of Awlaki. A psychological evaluation by Dr. Simon Perry, also released on Friday noted that Abdulmutallab was familiar with all of Awlaki's lectures, saying, "They were an important motivator which led [Abdulmutallab] to decide to participate in jihad. He began listening to the lectures in 2005 and reading Aulaqi's writings, which motivated him to accept martyrdom."
In August 2009, Abdulmutallab left Dubai, where he had been taking graduate courses, and sought out Awlaki in Yemen. Abdulmutallab was not to be denied. "Defendant visited mosques and asked people he met if they knew how he could meet Awlaki. Eventually, defendant made contact with an individual who made contact for him."
"Thereafter, defendant received a text message from Awlaki telling defendant to call him, which defendant did," the government memo discloses.
During the phone call, Awlaki asked that Abdulmutallab provide in writing the reasons he wanted to participate in violent jihad. After working on his response over the next three days Abdulmutallab was finally granted a meeting with Awlaki.
"Defendant was picked up and driven through the Yemeni desert. He eventually arrived at Awlaki's house, and stayed there for three days. During that time, defendant met with Awlaki and the two men discussed martyrdom and jihad." The sentencing memo notes.
"Defendant left Awlaki's house, and was taken to another house, where he met AQAP bomb-maker Ibrahim Al Asiri. Defendant and Al Asiri discussed defendant's desire to commit an act of jihad. Thereafter, Al Asiri discussed a plan for a martyrdom mission with Awlaki, who gave it final approval, and instructed defendant Abdulmutallab on it." prosecutors noted.
The government filing also discloses that at an AQAP training camp Abdulmutallab met with Samir Khan a U.S. citizen who fled to Yemen and wrote the online English-language magazine Inspire dedicated to violent jihad and how-to ideas on terrorist attacks. Khan was also killed in the U.S. strike along with Awlaki.
Leading up to the attempted attack, the government's memo noted that the bomb-maker personally gave Abdulmutallab the underwear bomb, and that Awalki "arranged for a professional film crew to film the [martyrdom] video. Awlaki assisted defendant in writing his martyrdom statement, and it was filmed over a period of two to three days."
Noting his operational control over Abdulmutallab, the memo notes, "Although Awlaki gave defendant operational flexibility, Awlaki instructed defendant that the only requirements were that the attack be on a U.S. airliner, and that the attack take place over U.S. soil. Beyond that, Awlaki gave defendant discretion to choose the flight and date. "The government is requesting five life sentences for Abdulmutallab and is also asking that the judge release an FBI videotape showing a model of the underwear bomb and of an explosion with the same amount of explosive Abdulmutallab had in the bomb.
"Since [Abdulmutallab's] motivation to commit martyrdom appears to be great, I believe there is high probability that given the opportunity, he would try once again to commit an act of martyrdom, endangering his and other innocent lives." Dr. Perry's assessment noted.
Abdulmutallab traveled from Yemen to Africa via Ethiopia to Ghana to Nigeria before he flew to Amsterdam, where he boarded the flight bound for Detroit. FBI officials believe that Abdulmutallab was wearing the device for much of his travels, and that moisture or the explosives becoming loose prevented the device from fully exploding.
The sentencing hearing is set for 1 p.m. on Feb. 16, 2011.


text:
The Heat (Starring Sandra Bullock, Melissa McCarthy & Spoken Reasons) [Movie Trailer]
An FBI agent teams up with a Boston police officer to take down a Russian mobster.
Please click the "Report" button below if the video on this page is not working properly.
Comments will only be displayed by verified emails. No Spamming or Racism.


text:
First-year Yorktown girls basketball coach Dave Garrison spoke highly of Lindiwe Rennert's leadership qualities during an early season practice.
"She's a third coach," Garrison said. "She picks things up from the start. … We're really looking or her leadership and from day one she's shown that."
A coach appreciating leadership from a player is nothing new. But the primary reason Garrison expects Rennert to assume the role of responsibility is her place as the team's only senior. Rennert, honorable mention all-National District as a junior, will be relied on for low-post scoring and rebounding, while serving as the team's elder stateswoman.
"She leads by example," Garrison said. "I can look to her. If we need to make a correction, she'll communicate what needs to be taken care of sometimes before we do. She understands what it takes to win. She brings that to practice every day."
Rennert, who averaged 8.3 points per game last season, said she trusts her teammates and doesn't feel any pressure about being a leader.
"Particularly, with the returning players," she said, "there's a strong level of leadership throughout [and] I don't feel the need to take it upon myself."
What has Rennert noticed about her new coach?
"[He brings] a whole new level of intensity," she said, "that I think we're going to benefit from right away."
THE PATRIOTS will see how they're jelling during their season opener against Robinson at 7:45 p.m. on Dec. 2. Also returning from last season's team, which finished 14-10 and lost to Westfield in the opening round of regionals, are: juniors Lena Negri, Brooke Huffman, Peyton Lee and sophomore Emily Rebh.
Garrison said Negri, a second-team all-district selection and the team's top scorer last season, will be a strong rebounder. Along with Rennert and Negri, Huffman will be looked upon to make an impact inside.
Lee and juniors Tricia Leano and Kelly John are the team's top perimeter players on a team which Garrison said will look to play an up-tempo brand of basketball.
"We're going to get up and down the floor," he said, "really push the ball and try to create in transition."
Other Patriots on the roster are: junior forwards Julia Callan, Michelle Casteel and Ava Negri, junior guard Ashley Stephens, sophomore forwards Lauren Dresser and Michelle Schmidt, and sophomore guard Mya Barr.
Garrison takes over as Yorktown head varsity girls coach after coaching the school's freshman boys team for five years. His assistant is former Wakefield head girls basketball coach DeVaughn Drayton.


text:
Department of Religious Studies
Areas of Study
Undergraduate Program
The University of Denver's undergraduate religious studies program offers students the opportunity to study religion in ways not found at other universities. The religious studies BA is a thoroughly interdisciplinary liberal arts program providing graduates with an excellent basis from which to pursue careers requiring imagination, problem-solving, communication skills and an awareness of human diversity.
Students pursuing a BA in religious studies learn about many of the major religious traditions of the world and investigate how theories of religion can help interpret the religious phenomena that surround us. They focus on lived experience through observation of local religious communities, engage with local communities through service learning and prepare for a wide variety of careers through the development of excellent writing skills.
Master's Degree
Founded in 1979, the University of Denver's religious studies MA program prepares students for PhD work or for teaching, careers in journalism, government and nonprofit organizations in which cross-cultural analytical skills are important. The program emphasizes both breadth of knowledge in several religious traditions as well as room for specialization in select areas of faculty expertise.
Graduate certificate
Our 24-credit hour Graduate Certificate provides you graduate-level exposure to the academic study of religion and to several of the major world religious traditions. This certificate program allows you to:
- develop an introductory, graduate-level understanding of two major world religious traditions
- gain a grasp of pertinent theoretical approaches to the study of religion
- engage major issues in a particular religious tradition or aspect of religion
- Two 4-credit hour religious traditions courses (Judaism, Islam, Christian Classics, Hinduism Through Texts, etc.)
- One 4-credit hour theory course (Psychology of Religion, Globalization and Religion, Religion and Morality in the American Public Square, Religious Ethics, etc.)
- Three 4-credit hour electives (Dead Sea Scrolls, Islamic Fundamentalism, Buddhist Lives, Religion and Race in the United States, etc.)
DU-Iliff Joint PhD Program in the study of religion
Founded in 1981 through a joint partnership between the University of Denver and the Iliff School of Theology, the joint PhD program in the study of religion offers an intellectually rich, academically rigorous program of study for students pursuing doctorates in religious and theological studies.
The JDP is administered by the University of Denver on behalf of both schools, but is not housed in the Religious Studies Department. Admission to the joint PhD program requires a MA in religious studies or theological studies.
Students interested in applying should contact the program coordinator for further information.


text:
Action Anglaise
Mrs. Thatcher's Minister: The Private Diaries of Alan Clark
The Faber Book of Conservatism
Alan Clark, former defense and trade minister under Margaret Thatcher, son of the art historian Kenneth Clark, and man about town, is what the English call a toff. He lives in a medieval castle in Kent, with peacocks strutting around the gardens. He owns land in Scotland and a fleet of vintage cars. He has a dog named Eva—after Eva Braun. He also holds very right-wing opinions, which he expresses with great panache in private and in his diaries, published in London a year ago. Hailed as the best of its kind since the diaries of "Chips" Channon MP, chronicler of London society in the 1930s, Clark's book was at the top of the British best-seller lists for many months. Even people who could not possibly agree with Clark's political views selected his diaries as their favorite book of the year.
Clark's politics are probably beside the point. It is the waspish tone that appeals, the wicked sense of humor, the unashamed snobbery, the charm, the gossip. Evelyn Waugh's letters come to mind, or Flashman, the dashing bully in Tom Brown's Schooldays. It is an acquired and rather English schoolboyish taste.
Here he is, bored with his job as junior minister at the Department of Employment:
It is (naturally and heartbreakingly) a glorious summer morning, and I have drawn back to their maximum extent the sliding windows, thus buggering or—I trust—partially buggering the air conditioning system. There is a tiny balcon, a gutter really, with a very low parapet, below knee height. Certain death on the Victoria Street pavement eight floors below. Sometimes I get a wild urge to relieve my bladder over it, splattingly on the ant-like crowds. Would this get one the sack? Probably not. It would have to be hushed up.
The diaries are, as one might expect, longer on malicious gossip than political philosophy. But you get a good picture of the office politicking round the palace of Westminster, and the casual anti-Semitism of Tory grandees: "Too many jewboys in the Cabinet" was the conclusion at a former home secretary's dinner party, where Mrs. Thatcher's government was discussed. And there are numerous entries on Clark's various sexual enthusiasms: one secretary's hips, another's pouting lips, the braless breasts of a young woman met on a train, Mrs. Thatcher's "attractive—not boney—ankles," and so on.
Despite the snobbery and the cruelty, Clark is not shy to expose himself as a lustful, ambitious, even somewhat ridiculous homme moyen sensuel. He says what he thinks, and often what many people think, if they had the courage to say so. Clark is romantic but not sentimental, except perhaps about animals. When he tells you that a politician stays in power by "gratifying people's material aspirations," but that you must "dress it up a bit with intellectual pretension," you realize he is a man of few illusions.
Here is Clark, as the roguish fantaisiste, reveling…
This is exclusive content for subscribers only.
Get unlimited access to The New York Review for just $1 an issue!
Continue reading this article, and thousands more from our archive, for the low introductory rate of just $1 an issue. Choose a Print, Digital, or All Access subscription.
If you are already a subscriber, please be sure you are logged in to your nybooks.com account.


text:
Most coming from China, India, South Korea and Saudi Arabia
The Associated Press
An annual census of international students in the U.S. says their numbers on North Carolina campuses rose nine percent in the last academic year.
Story continues below advertisement
New figures out Monday from the Institute of International Education show international enrollment at North Carolina colleges and universities grew nearly nine percent last year to more than 15,000.
North Carolina State University leads with nearly 4,000 foreign students. Next is Duke University and its medical center, followed by University of North Carolina campuses in Chapel Hill, Charlotte and Greensboro. None are in the top 20 U.S. universities attended by foreign students.
Most of the foreign students in North Carolina come from China, followed by India, South Korea and Saudi Arabia.
About 4 percent of the 21 million students in U.S. higher education are from abroad.


text:
The ancient scriptures describe the source of our consciousness as pure bliss.
The ancient scriptures describe the transcendental source of life as a field of pure bliss and happiness. The mind is always in search of happiness because essentially it is trying to get home. When the mind is directed outward it can never find this pure unconditional state of happiness, only ups and downs. But when we direct the mind inwards we can use this instinctive desire for happiness for it to be drawn towards the experience of transcending. That is why the natural effortless technique of TM works.
Although the subjective experience will differ from one meditation to the next, objective measurements show that there are consistent objective changes in the brain when the mind transcends, such as a significant increases of the "happiness hormone" serotonin and decreases of the stress hormones cortisol and plasma lactate. [1], [2]
We can objectively measure happiness and peace through changes in happiness and stress hormones
The more we repeat the experience of transcending, the more the decreases of the stress hormones and increases of happiness hormones will become permanent, also outside the meditation. This is one of the reasons for some spectacular improvements that one sees see after the long-term practice of TM.
Stress Hormones have a function in the body. When we are under attack we need them to be able to react quickly, in a so called fight-or-flight response, but we were never designed to be under chronic stress. Chronically high levels of stress hormones harm the nervous system and will eventually lead to illness. A direct connection is established between for example the level of cortisol and insulin resistance (diabetes 2) or obesity, or between the blood lactate level and high blood pressure.
Serotonin, on the other hand, regulates many of our brain functions. A low level of serotonin is now brought into connection with a series of problems, including depression, anxiety, migraine, anger, Alzheimer's disease, sleep disorders, memory problems, compulsive acts, addictions etc. (Source WebMD). Medicines that regulate serotonin levels can temporarily ease the symptoms of these illnesses, but can not solve the real cause of the problem. Stress plays a major role in the reduced serotonin production in the brains.
The normal functioning of the human nervous system leads to health and happiness.
Essentially we can say that the normal functioning of the human nervous system leads to healthy and happy people. This is how we were designed to live, as that is our essential nature. Stress disturbs the normal functioning of the nervous system. Transcending is the opposite experience of stress, on one hand it is a state of deep inner peace and happiness, and this has a direct measurable effect on happiness and stress hormones, on the other hand it will activate the healing power of our bodies to remove the accumulated stresses, so that the body can again function normally again 24/7.
Scientific References
[1] JEVNING, R.; WILSON, A. F.; and DAVIDSON, J. M. Adrenocortical activity during meditation. Hormones and Behavior 10(1): 54–60, 1978. Reduction in Biochemical Index of Stress: Decreased Plasma Cortisol Levels.
[2] BUJATTI, M., and RIEDERER, P. in Transcendental Meditation technique. Journal of Neural Transmission 39: 257–267,1976.


text:
Milwaukee remembers Sept. 11
Flags ordered to half-staff
Milwaukee leaders marked the Sept. 11 anniversary with a ceremony at the Milwaukee County War Memorial.
The dozens of people who attended remembered the victims of the Sept. 11 terrorist attacks.
As wreaths were placed in the reflecting pool, Tim Kapczynski said he felt compelled to be there.
"It's just sad. I get a little emotional because all those people died," Kapczynski said.
Chris Combs is the acting special agent for the FBI in Wisconsin, but on Sept. 11, 2001, he was working on a counter terrorism team and got to the Pentagon six minutes after the plane hit.
"I remember standing there saying, 'Why is it so hot? I don't understand why this is so hot.' And I used to be a firefighter, but then very quickly as people were running out, were talking to us, it took about 15 minutes before we really had a good sense that it was an airplane a large airplane that had hit the Pentagon and that explained the heat because it was the jet fuel that was burning so bad," Combs said.
The New York City native said he lost family members who were firefighters that day and said it's hard to believe 12 years have passed.
An actual piece of a steel beam from the World Trade Center was also on display at the ceremony.
Students at Milwaukee's Alverno College created their own tribute to the victims of the Sept. 11 terror attacks.
Students started before dawn, planting 2,977 American flags on campus -- one for every person killed that day near the chapel.
"Everybody in America was affected by that day, so were really honored to be able to have this memorial at our college to do our part in remembering it," Alverno College student Rita Fadness said.
Students from four campus organizations participated in the flag planting.
Gov. Scott Walker ordered that flags to half-staff from sunrise to sunset Wednesday in remembrance of the victims.


text:
Crash investigations halt under government shutdown
- NTSB has suspended more than 1%2C000 investigation since shutdown began
- FAA unable to train more air-traffic controllers
Halted crash investigations. Delayed training for air-traffic controllers. No federal certification to ensure the safety of new aircraft before delivery.
These are a few results of the federal government shutdown, which the Senate Commerce, Science and Transportation Committee examined at a hearing Friday.
"The shutdown is doing enormous harm to our country, and it was totally avoidable," said Sen. Jay Rockefeller, D-W. Va., who heads the panel.
Lawmakers continued meeting Friday with President Obama, to resolve the spending disputes that prompted the shutdown Oct. 1 and still prevent an extension of the country's debt limit. But a solution remained elusive.
"No one is happy about the current shutdown," said Sen. Roger Wicker, R-Miss., who attended the hearing after meeting with Obama. "Regrettably this is a catastrophe of our own creation."
The National Transportation Safety Board furloughed 383 of its 405 workers during the shutdown, said Acting Chairman Deborah Hersman. Investigations can still be launched to collect perishable evidence at the scene, but more than 1,000 investigations have been suspended, she said.
"These delays slow our determinations of probable cause and issuance of safety recommendations," Hersman said.
Two investigative hearings have been postponed: one Nov. 6 and 7 into the Asiana Airlines crash that killed three in San Francisco and one Oct. 22 and 23 into two Washington subway crashes in May.
NTSB hasn't sent any investigators to a dozen accidents since the shutdown began. One was a bus crash Oct. 2 in Dandridge, Tenn., that killed eight people and injured 13 others. One was the crash of a Bombardier Dash-8 on Oct. 5 in Colombia near Panama, which killed four people and seriously injured two. One was a worker fatality Oct. 6 during construction on Washington's subway system.
"I urge you to take action to permit the NTSB to resume its critical safety mission," Hersman said.
Marion Blakey, CEO of the Aerospace Industries Association, said the shutdown has prevented the Federal Aviation Administration from training new air-traffic controllers and halted inspections that certify the safety of new aircraft so they can be delivered.
"While the impacts are tangible and harmful to our nation and industry, a much lengthier shutdown could lead to cascading and devastating consequences," Blakey said.
Her group wrote Transportation Secretary Anthony Foxx on behalf of 49 manufacturers, operators and trade groups urging him to reopen the portion of the FAA that certifies new aircraft for delivery.
Kenneth Quinn, a partner at Pillsbury, Winthrop, Shaw, Pittman LLP and a former FAA chief counsel, wrote the letter strongly urging the department to "exercise its discretion" to restore the office's operations.


text:
Research Overview
An important part of the department's mission is to engage in research programs that train graduate students and contribute to the development of fundamental knowledge in the field of chemical engineering. The department's diverse and aggressive research ensures that its faculty members remain at the technological forefront of their respective areas of specialization. Research areas include biomolecular engineering, nano-materials, environmental reaction engineering, energy engineering, engineering design, and transport & separation processes.


text:
Dean Francis J. Mootz III
"Changes in Legal Education and the Impact on Government Decision Making"
Sept. 24, 2012 from 5:30 p.m. to 7 p.m.
California State Capitol Building — Eureka Room, Basement
Dean Francis J. Mootz III joined McGeorge on June 1, 2012 as the school's ninth dean.
Previously, Dean Mootz served as Associate Dean for Faculty Development and Professor of Law at UNLV's William S. Boyd School of Law since 2008. Prior to that, he taught for 18 years in appointments at Penn State Dickinson School of Law, William & Mary Law School, and Western New England University School of Law. Dean Mootz has written and presented regularly on the topics of insurance law, contracts, sales law, and his interdisciplinary scholarship explores the relationship between law and philosophy.
The event was co-sponsored by the Witkin Legal Institute


text:
Peak Lists
Log In
Ascent of Borah Peak on 2006-07-09
Dennis Poulin
Sunday, July 9, 2006
Ascent Type:
Successful Summit Attained
Borah Peak
12662 ft / 3859 m
Ascent Trip Report
Borah Peak the highpoint of Idaho was to be my grand finale hike before heading home to Oregon and my long suffering lonely wife. During the previous 9 days I hiked 9 differenet P5k prominence peaks. Borah Peak wil be the 10th to join Hayford, Arc Dome , Pilot , North Schell , Ibapah , Deseret , Flat Top , Nebo , and Timpanogos .
After completing Mt. Timpanogos on July 8th, I drove the 300 miles to the trailhead (elevation 7,400 ft) for Borah Peak in central Idaho. I arrived at the trailhead just at sunset. The bugs were bugging me a little, so I crawled into the back of my truck and closed up the windows. I was tired. 10 days of dirtbag camping had taken their toll. I was ready for this odyssey to end. One more climb and then off to a hot shower, clean sheets, and hot meals at home.
I slept well and rose early. Borah Peak is unusual in that you can see the summit from the trailhead. It looked a long ways away. Another solo hiker went up the tail about 10 minutes before I was ready. I hit the trail not too long after first light. It seemed like it was already warm. I hadn't gone too far when a group of 3 young hikers passed me and were heading uphill in a hurry. Youth has its advantages. The trail is steep, so I took my time and worked my way steadily uphill. The trail is good without any obstacles and soon I reached the first ridge as I climbed out of a dry canyon.
The trail then continued steeply uphill following the ridgeline. At 10,000 feet I was out of the trees and the terrain was mainly composed just broken rocks. The trail was still good and I was making good time. AT about 10,600 ft I came around a rocky knob and I got my first good look at Chicken Out Ridge ahead. It didn't look intimidating from here, but I was still a long ways away.
The trail became steeper as it curved around to meet the southern ridge of Borah itself. The trail also became more braided here because climbers were trying to find better paths up this rocky area in before Chicken Out Ridge proper. I picked a route near the ridge top that seemed to work well for me.
Progress slowed as I reached the top of this rocky knob and I was on Chicken Out Ridge. It was difficult to determine which route was the best to take. In retrospect, I don't think one is any better than any other. I kept climbing up and down, left and right, over and around rocks. I heard someone yell ahead of me, I didn't know what that was about. Soon one of the young hikers who passed me near the trailhead was coming back down. He was spooked. He said this wasn't for him and he was hanging on with both hands, both feet, and both cheeks trying to make his way back off the ridge. Apparently the snow bridge ahead was his undoing. He seemed to be handling the situation, so I passed him and continued my hike.
I finally reached the snow bridge and knew why the young guy turned around. You have to walk across the apex of this ridge for about 70 ft with steep snow slides to rocks on either side of the ridge. I took my time and went across. No big deal here, it was fairly level and there were big footprints in the snow already.
Once across this snow bridge, the way was clear to get to the summit. I followed the most traveled route. The young guys hiking partners passed me as they were coming back from the summit. I also passed the solo hiker very near the summit as he was coming down. I had the summit to myself on another glorious day in the mountains. I signed the register and took a few pics.
Soon I headed down the same way I came up. I got back to my truck without any problem. The day had turned fairly warm, so it was hot coming down. The total hike is about 8 miles and took me 7.5 hours with about 5,200 ft of elevation gain.
This completed my 10 P5k hikes in 10 days. I hiked a total of 107 miles with over 44,000 ft of elevation gain. I also drove over 3,600 miles. I couldn't have done this without the help of fellow SPer Dean and the vision of SPer rfbolton who did 8 of these in 2005. Someday some youngster will be able to string together 20 of these P5k's, but it won't be me.
Summary Total Data
Total Elevation Gain:
5200 ft / 1584 m
Total Elevation Loss:
5200 ft / 1584 m
Round-Trip Distance:
8.2 mi / 13.2 km
Route Conditions:
Maintained Trail, Unmaintained Trail, Scramble
Ascent Statistics
Gain on way in:
5200 ft / 1584 m
4.1 mi / 6.6 km
Standard Trail
Start Trailhead:
7462 ft / 2274 m
Descent Statistics
Loss on way out:
5200 ft / 1584 m
4.1 mi / 6.6 km
End Trailhead:
7462 ft / 2274 m
This page has been served 1822 times since 2005-01-15.
Copyright © 1987-2020 by Peakbagger.com. All Rights Reserved.
Questions/Comments/Corrections? See the
Contact Page
Terms of Service


text:
stunning visuals! love the sunrise shots!
Posted on January 4, 2018 by MichelleMarie
I've always been a morning person. I love to get up early before the sun even thinks about rising and wait for it. It's very cold here now, but still I go out to peek. This morning I left as the sun was rising so I decided to stop several times and be thankful I get to see another sunrise. I really love them!
My drive is along Route 66. I love that highway!
I stopped to watch as the cloud looked to me that they were stopping in lines to take in this beautiful sun. Have a lovely day!
Category: Nikon | iPhone photography, tellmeaboutit Tags: ©MichelleMarie, Hope, Inspiration, Inspiration for your heart, Just sharing, Oklahoma sky, Oklahoma sunrise, photosbyMichelleMarie
I think I would stop for these pictures also, MM. Of course, first of all I would have to start, and I'm a night person so I don't really go down until after the sun comes up. Too many years working night shift probably. I just love my time alone at night, seeing the moon when it's clear outside, and having the laundry room all to myself,, which is where I really should be right now! ❤ 🙂 ❤
I was just thinking about you. I read that you had a birthday and what a blessings that is to see another birthday. I'm happy to see you out and visiting! I know what you mean about the moon. I love night time for that reason as well! I hope you are doing well and had a Merry Christmas and Happy New Year! xoxo ❤ Love to you Angel friend!
I had a wonderful Christmas and birthday — probably the best one ever, yet did absolutely nothing. A friend came by both days and we watched old movies on the classic movie channel, ate ice cream sundaes, drank root beer floats and just had a good time all day. I hope yours was as wonderful as mine was. My vision is getting worse but I'm making so many memories that hopefully if it goes forever I'll be able to handle it graciously. I really hope it doesn't go completely, but am preparing for whatever the future brings. ❤ to you, Pink Angel Friend.
I love your positivity. That is always inspiring to me. Much love to you 💕💕💕
Can you believe it was 31 degrees here this morning. ! That doesn't happen very often! Brr!😊❤
yes, my roses curled up and died! overnight! It's shocking for us here. I hope the little bird that has been sheltering in the eaves of my porch is going to be ok! ❤
It's Saturday. The sun is bright here. It's warming up. Should be near 80s by Monday. 😀
Woohoo for you! Wow that's wonderful even a little bit of sun here today too! It was 50 so I'm good! LOL xoxo
This site uses Akismet to reduce spam. Learn how your comment data is processed.


text:
This week Pastor Michael Newnham and I answer some mail from the listening audience and the look at how the essentials of Christianity can be found in the Apostles and Nicene Creeds.
To listen to the program from the site please click the link provided below. To save this program to your portable listening device please right click the link below and select "save as".