text:
Unhosted remoteStorage server app for django
Project description
Unhosted remoteStorage server implementation
This app is a server (storage) implementation for an earlier remoteStorage API version, specified here:
Some parts of it (especially webfinger, oauth2, since I've used newer specs that were available at the time) might be compatible with the current API:
But since remoteStorage.js 0.7.0 for experimental API was still under heavy development at the time, I haven't tested whether it works with current implementation.
Package (and django app) was called django-unhosted in the past and was eventually renamed. If you're using django-unhosted package, please read the notes on migration under Installation section.
Idea is that you can have storage account (with whatever policies and authentication) on host1 and some webapp (say, some visual editor, think MS Word) on host2.
To edit document in a webapp, generally host2 would have to implement some sort of user registration, storage (like docs.google.com) for edited docs, etc.
With remoteStorage, this storage don't have to be on host2, so you don't have to implement some complex policies and authenticated storage there to launch a full-featured webapp - it can open and save docs to any remote host which supports the protocol (which is basically GET/PUT from WebDAV with OAuth2 on top).
host1 can be your VPS, client machine itself (especially easy with direct IPv6, or IPv4 provided via some service like pagekite), some reliable cloud provider or whatever.
To fully understand how it all works, I recommend looking at OAuth2, WebDAV, CORS and Webfinger, which are basically all the technologies used to implement the protocol.
This django app fully implements web-facing storage for host1, complete with user registration forms (optional, users can be added by other django apps or via django admin interface otherwise), client access management interfaces and a simple demo client.
Since applicaton is a public-internet-facing interface to your (possibly important) data and I'm in no way security expert or specialist, I recommend to pentest or validate the code before storing any sensitive data in it.
Data loss or corruption is much easier to prevent (and backups go a long way here, btw) than security exploits, so, again, please look at the code yourself and find issues there which I have a blind spot (not to mention lack of skills) for, thus won't be able to find on my own.
Example of obvious (to an outsider analysis) security flaws in another storage-server implementation can be found here, learn the lession there.
- Python 2.7 (not 3.X)
- Django
- Django OAuth 2.0 Server App (oauth2app)
- (optional, recommended) South - for automated database schema updates
oauth2app is not on PyPI at the moment, but pip can install it from github directly.
Various interfaces of the app use some external resources, like Twitter Bootstrap CSS file (served from bootstrapcdn.com) and remoteStorage.js, which can be served - and should be, if you're using https for interfaces - from local URLs, if available in STATIC_ROOT. See "Customization / Interfaces" for details.
Migration from django-unhosted
Package was called django-unhosted in the past, but it was decided to rename it before it was way too late.
Unfortunately, there's no easy way to rename django app and python package, especially if it's undesirable to keep older package names around for eternity, so some manual steps have to be taken in order to migrate to the new (django-remotestorage) app/package.
- Uninstall django-unhosted python package (either through pip uninstall django-unhosted, OS tools, or remove module path manually).
- Rename all database tables with "django_unhosted" in name to be starting with "django_remotestorage" instead. Lots of easy-to-use GUI tools (such as pgadmin, phpPgAdmin, phpMyAdmin, phpSQLiteAdmin, etc) or native CLI interfaces (sqlite3 /path/to/db.sqlite, psql, mysql, etc) can be used for that.
- Update settings.py and urlconf to import stuff from "django_remotestorage" module instead of "django_unhosted". Replace all "UNHOSTED_" in variable names to "REMOTESTORAGE_", if used in settings.py.
- If you have a custom urlconf and/or templates, replace references to "unhosted" namespace with "remotestorage".
It should fairly straightforward, but feel free to open Issue or contact developers if the described process doesn't work for you.
Deployment / configuration
Django apps are deployed as a part of "django project", which is - at it's minimum - just a few configuration files, specifying which database to use, and which apps should handle which URLs.
Simple installation/setup from scratch may look like this.
Install the app itself (or not, it can be just checked-out into a project dir):
pip install django-remotestorage
…or, to install directly from git master branch:
pip install 'git+https://github.com/RemoteStorage/django-remotestorage.git#egg=django-remotestorage'
…or you can do it manually:
git clone https://github.com/RemoteStorage/django-remotestorage.git cd django-remotestorage python setup.py install pip install -r requirements.txt # or download/install each by hand as well
"pip" tool, mentioned above, should usually come with OS of choice, otherwise see pip installation docs. Don't use "easy_install" for anything except installing the pip itself.
Install oauth2app in a similar fashion:
pip install 'git+https://github.com/hiidef/oauth2app.git#egg=oauth2app'
Then create and configure a django project:
cd django-admin.py startproject myproject cd myproject # Update settings.py (sqlite3 is used as db here) and urls.py sed -i \ -e 's/'\''ENGINE'\''.*/"ENGINE": "django.db.backends.sqlite3",/' \ -e 's/'\''NAME'\''.*/"NAME": "db.sqlite",/' \ -e 's/STATIC_ROOT *=/STATIC_ROOT="./static"/' \ myproject/settings.py echo -e >>myproject/settings.py \ 'from django_remotestorage.settings_base import update_settings' \ '\nupdate_settings(__name__)' sed -i \ -e '1afrom django_remotestorage.urls import remotestorage_patterns' \ -e 's/# Examples:.*/("", include(remotestorage_patterns)),\n\n\0/' \ myproject/urls.py # Create database schema and link app static files to STATIC_ROOT ./manage.py syncdb --noinput ./manage.py migrate django_remotestorage ./manage.py collectstatic --noinput --link # Run simple dev server ./manage.py runserver
(since webfinger protocol requires some sort of XRD authentication, like https, it won't work properly on such a simple setup)
More detailed explaination of configuration process follows.
Django project configuration
Main idea is that two config files (in django project) need to be updated - settings.py and urls.py.
There are several ways to update django settings.py to use the app:
If it's the only app in a django project and there's no custom settings.py already, options from django_remotestorage.settings_base module can be imported into it directly.
To do that, add the following lines to the end of "{your_app_name}/settings.py" (or wherever DJANGO_SETTINGS_MODULE is used) file:
from django_remotestorage.settings_base import *
That will import all the options there (bare minimum that has to be changed) over those defined above in the original file.
Note that list of overidden options include INSTALLED_APPS, MIDDLEWARE_CLASSES and such, which are not only often customized, but are usually specific to the django version installed, so you may alternatively insert that import line at the beginning of the settings.py, so everything defined after it will override the imported options.
If there's already some custom settings.py file available, there's django_remotestorage.settings_base.update_settings helper function available to update configuration without blindly overriding any options.
It can be used at the end of settings.py file like this:
from django_remotestorage.settings_base import update_settings update_settings(__name__)
Full list of changes it'll make can be found in "updates" dict at the beginning of django_remotestorage.settings_base module.
"update_settings" function also takes an optional "only" and "ignore" keywords (expecting an iterable of option names), which can be used to control which parameters should be updated or explicitly left untouched.
This should be more safe, flexible and future-proof way of merging necessary option updates with existing (site-specific) configuration.
Update the file by hand.
Default values for the most settings can be found in django documentation.
For the class-listing type options, duplicate values may be omitted. Note that order of MIDDLEWARE_CLASSES is significant.
OAUTH2_CLIENT_KEY_LENGTH = 1024 OAUTH2_SCOPE_LENGTH = 2048 TEMPLATE_CONTEXT_PROCESSORS = ( ...whatever is already there... 'django.core.context_processors.csrf', 'django.core.context_processors.request', 'django.contrib.messages.context_processors.messages', 'django_remotestorage.utils.external_resources_context', ) TEMPLATE_LOADERS = ( ...whatever is already there... 'django_remotestorage.apps.webfinger.xrd_gen.Loader', ) MIDDLEWARE_CLASSES = ( ...whatever is already there... <remove 'django.middleware.csrf.CsrfViewMiddleware', if it's there> ...whatever is already there, except for ConditionalGet / FetchFromCache... 'django.contrib.messages.middleware.MessageMiddleware', ...ConditionalGetMiddleware and FetchFromCacheMiddleware (and such), if used... ) INSTALLED_APPS = ( ...whatever is already there... 'django.contrib.messages', 'django_remotestorage', 'oauth2app', 'south', )
"south" should be omitted from INSTALLED_APPS, if not used.
In any case, if you've just created django project (with "django-admin.py startproject" or whatever), make sure to look through it's settings.py file and edit at least DATABASES, MEDIA_* and STATIC_* options. You might also want to set other (optonal) settings there - TIME_ZONE, ADMINS, LOGGING, etc.
As for urls.py, just add the following line to url patterns (importing remotestorage_patterns from django_remotestorage.urls module beforehand):
('', include(remotestorage_patterns)),
So it'd look like this:
... from django_remotestorage.urls import remotestorage_patterns ... urlpatterns = patterns('', ('', include(remotestorage_patterns)), ...
That will add all the app urls to the root-path (for the complete list of these paths, see the module code). To selectively disable some of the components, see "Customization" section.
Database schema
Then the usual drill is to create the necessary database schema for the app (if you get "Settings cannot be imported" error, make sure you run that from the same path as "settings.py" file):
django-admin.py syncdb
If South app is installed (and specified in the INSTALLED_APPS), you should also use it's migrations to create tables for which they are available:
django-admin.py migrate django_remotestorage
That command can (and should) also be run after django-remotestorage app updates to apply any possible changes to db schema.
Pretty much anything that supports WSGI protocol can be used with django - there's nothing app-specific here, just plain django, which is (usually) used as a backend with some httpd via wsgi.
See django docs on deployment process for generic instructions.
The app consists of several independent components (sub-apps, bound to url paths via django_remotestorage.urls):
- Webfinger (name: webfinger, URL: {include_prefix}/.well-known/host-meta, {include_prefix}/webfinger; see django_remotestorage.apps.webfinger.urls, there are similar urlconf-files for other subapps).
- OAuth2 (name: oauth2, URL: {include_prefix}/oauth2).
- Storage API (name: api, URL: {include_prefix}/api).
- Account/client management (name: "account", URL: {include_prefix}/account). Can also be enabled partially with the following names: "account_auth" (login/logout forms/links), "account_auth_management" (signup form), "account_client_management" (client/app access management interface for logged-in users). "account" is an alias for all of these interfaces.
- Demo client (name: demo, URL: {include_prefix}/)
Some components provide links to each other (for example, webfinger provides links to OAuth2 and API in served XRD/JSON data), resolved as "remotestorage:{app}:{view_name}", so you can rebind these apps to any URLs, as long as you provide the same namespace/view_name for django "reverse()" function and "url" template tags.
When including "django_remotestorage.urls.remotestorage_patterns" directly (not the urlconfs from individual components), "REMOTESTORAGE_COMPONENTS" settings.py option can be set to an iterable of components which should be enabled, for example:
REMOTESTORAGE_COMPONENTS = 'webfinger', 'oauth2', 'api'
…will enable just Storage API, OAuth2 and Webfinger subapps - bare minimum for functional remoteStorage node. Unless some other means to authenticate django user (like django.contrib.auth.views.login or django.contrib.admin) are enabled, it might also be necessary to enable "account_auth" interface to pass OAuth2 authorization.
If "account" (or it's parts) and "demo" apps are omitted from urlconf entirely (if not needed), there won't be any links to them in OAuth2 access confirmation interface. Their interface pages and functionality won't be accessible.
"api" and "oauth2" sub-apps are not linked to any other components either, so may be used separately from others and from each other as well (e.g. if authorization server and storage are on a different hosts), but they must share a database in order for api to be able to validate auth tokens.
It's highly recommended to raise database field lengths (using oauth2app settings) before running syncdb for the first time:
- OAUTH2_CLIENT_KEY_LENGTH = 1024 (default: 30)
- OAUTH2_SCOPE_LENGTH = 2048 (default: 255)
See "Known Issues / OAuth2" section for more detailed explaination on why it should be done.
Another important tunable is OAUTH2_ACCESS_TOKEN_EXPIRATION (default: 3600 = 1 hour), which - at least with remoteStorage.js 0.6.9 ("stable" at the moment of writing) - essentially sets a maximal interval between the need to visit OAuth2 interface and get new access token, because remoteStorage.js doesn't seem to be able to refresh these.
If webfinger and host-meta requests for the domain should carry more data than just for remoteStorage, they can be extended either by replacing webfinger app entirely or adding custom templates for it.
Webfinger app is using "webfinger/host_meta.{xml,json}" and "webfinger/webfinger.{xml,json}" templates, provided by django_remotestorage.apps.webfinger.xrd_gen.Loader or generated dynamically (in case of json, if template provide can't be found).
See example xml templates in django_remotestorage/templates/webfinger/{host_meta,webfinger}.xml.example.
Storage / WebDAV
Provided remoteStorage is backed by (configurable) Django Storage API.
By default, DEFAULT_FILE_STORAGE storage class is used. Different storage class can be specified by "REMOTESTORAGE_DAV_STORAGE" parameter (passed to get_storage_class).
Examples of Storage API implementation might include:
- django-storages (S3, CouchDB, SQL, FTP, MongoDB, CloudFiles, etc)
- django-dropbox (Dropbox)
- django-riak-engine (Riak)
- django-tahoestorage (Tahoe-LAFS)
But basically there's a client for pretty much any data storage technology - just google it, install and set REMOTESTORAGE_DAV_STORAGE (or DEFAULT_FILE_STORAGE) to it.
Default Storage (FileStorage) parameters can be configured with MEDIA_URL and MEDIA_ROOT settings, see "Managing files" django docs section for details.
There are also some optimization parameters:
REMOTESTORAGE_DAV_SENDFILE (bool, default: False)
Pass Storage.path (if supported by backend) to httpd frontend via "X-Sendfile" header instead of the actual contents upon request, so that response can be served by frontend daemon directly without backend app involved.
REMOTESTORAGE_DAV_ACCEL (string, default: None)
Return empty HttpResponse with "X-Accel-Redirect" header set to specified prefix (can be an empty string) plus the requested path, so the actual response can be served by apache mod_accel.
REMOTESTORAGE_DAV_REDIRECT (bool, default: False)
Return redirect to MEDIA_URL (produced by Storage.url method). Used only if MEDIA_URL is set to non-empty string.
Serve these urls only after checking oauth2app-generated bearer tokens in http "Authorization" header either with django (or custom python code) or some smart httpd.
Do not configure httpd to serve paths from MEDIA_URL without authorization, because everyone will be able to bypass OAuth2 and gain access to anything in remoteStorage just by guessing file paths or getting/reusing them from js, which is really easy to exploit.
Mostly usual drill - put your own templates to loaders, specified in settings.py.
External resources that are served on these pages can be put to STATIC_ROOT to be served by local httpd instead. See django_remotestorage.utils.external_resources_context context processor for details.
Take special care to make resources local if you serve these interfaces over https - there's just no security gain if MitM can place any javascript (loaded over plain http) to a page.
Note that any/all of the UIs can be disabled, if they're not needed, just use REMOTESTORAGE_COMPONENTS option (described in "Components" section) or don't include them in the urlconf, cherry-picking whichever ones are actually needed.
One common case of customization is the need to put whole app into some subpath ("/remotestorage" in the example) can be addressed by putting this into the project's root urls.py:
from django.conf.urls import patterns, include, url from django_remotestorage.apps.webfinger.urls import host_meta_patterns from django_remotestorage.urls import remotestorage_patterns urlpatterns = patterns('', url(r'', include(host_meta_patterns)), url(r'^remotestorage/', include(remotestorage_patterns)), )
That way, demo client will be available at "/remotestorage" url and all the links will include that prefix (for example authorization link from webfinger will point to "/remotestorage/oauth2/authorize").
Make sure, however, that host_meta view of webfinger app is available at a well-known url "/.well-known/host-meta", hence the "host_meta_patterns" special-case link from root.
access_token_cleanup [options] [ username … ]
Remove expired OAuth access tokens (just for username(s), if specified) from the database.
Can be occasionally run from cron (use –verbosity=0 to supress activity reports) to keep token number from growing indefinitely, removing non-refreshed or about-to-expire (with negative –grace-period) ones.
Usage example:
% ./manage.py access_token_cleanup -v2 -n -t 3600 test Removing token: id=1, user=test, client_name=localhost, expired=2012-07-31 03:24:30+06:00. 1 access token(s) removed.
Known issues
These are implementation-related issues, not the issues with the protocols themselves (which doesn't imply there's none of the latter, just that it's not a place for them).
- No easy support for signed XRD at the moment. Signed static xml "templates" (or just files, served from httpd) can be used as a workaround if TLS is not an option.
Stored object path (think "public/myphoto.jpg") is used as OAuth2 "scope" by remoteStorage. oauth2app basically keeps a single table of these (treating them as a finite up-front set of capabilities).
Problems here:
- oauth2app stores "scope" as a 255-char key, while paths / collection_names can potentially be longer. Upstream pull request to specify field length was merged (as of 19.07.2012), so use any newer version with the large-enough OAUTH2_SCOPE_LENGTH parameter in settings.py (it doesn't really affect performance of modern databases, just making your life a bit harder).
- Currently, oauth2app checks existance of AccessRange (scope) models as they are specified in the request, even though access to some of them might not be authorized by user, requiring temporary creation of this clutter. Upstream pull request: https://github.com/hiidef/oauth2app/pull/32
- There's some extra code/db overhead involved in maintaining the (pointless in this case) table.
remoteStorage.js 0.6.9 ("stable" version at the moment) has a known issue of passing legacy "path1,path2" as a "scope", further complicating things for oauth2app (which would think that it's a single capability, as per spec) if several paths are passed.
Workaround used is to detect the old format by lack of ":rw" suffixes and update "scope" in the address by issuing a redirect.
Note that since paths may contain commas, "path1,path2" can be ambiguous (because of this issue) and can be treated either as "path1:rw" and "path2:rw" or "path1,path2:rw". Current implementation chooses the former interpretation if there's no colon-delimeted suffix.
remoteStorage.js 0.6.9 ("stable" version at the moment) uses hostname of the app site as OAuth2 client_id, which, in oauth2app corresponds to the "key" field, which is just 32-chars long by default, which might not be enough for some hostnames, but can (and should!) be configured by OAUTH2_CLIENT_KEY_LENGTH parameter in django project's settings.py. Remember to do that before syncdb, or update the table column later.
Possible workaround might be to use hashes as the client_id's internally and redirect remoteStorage requests with "client_id=hostname.com" to something like "client_id=sha1:bbc21f0ccb5dfbf81f5043d78aa".
I can't see why client_id should be random or non-meaningful at the moment, if there's a reason for that, please report an issue, some automatic migration to hashes can probably be deployed at any time.
oauth2app is not on PyPI at the moment, but pip can install it from github directly.
CSRF middleware (django.middleware.csrf.CsrfViewMiddleware) must be disabled, because remoteStorage.js doesn't pass django csrf tokens along with PUT (and similar) requests. It's selectively enabled via decorator for app forms though.
Data is currently stored in the Django Storage, while path metadata is stored through the Django Database API, which introduces two points of failure (and the possibility of sync loss between the two), because one data is useless without the other.
There don't seem to be any easy way around it - storing path data in Storage keys won't work with any driver, pushing that to the content won't work when this content will be served by anything but python (say, httpd) and storing files in a db only works well for relatively small files.
So make sure to backup db as well as the actual storage, or write some storage-specific kludge to store metadata there as well. Example would be to add a hook to post-save django signal, which would get storage path from StorageObject.data.name and store some "{name}.meta" file alongside with serialized model data.
Client (app, requesting access) deception - returning fake "authorized scopes" to it, but storing them somewhere to deny the actual access or provide random garbage instead.
Idea is to prevent situation, common on twitter and android platforms, when apps always ask for everything and user is presented with "all or nothing" choice.
Add ability to inspect stored/accessed resources to the client management interface.
Contacts / Support
Feel free to drop by to #unhosted or #remotestorage channels on freenode IRC, you can always find authors and people (developers included) willing to help understand, setup and resolve any issues there.
Mailing lists, twitter and other channels of indirect communication can also be found on Unhosted movement site.
And of course, open Issues for github repository.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
|Filename, size & hash SHA256 hash help
|File type
|Python version
|Upload date
|django-remotestorage-13.08.0.tar.gz (57.0 kB) Copy SHA256 hash SHA256


text:
Review Group Week 200 - INVINCIBLE IRON MAN #21
Hey you! Reader! Want to be a part of the GREATEST COMIC BOOK AND GEEK COMMUNITY on the web?! Well, they're not accepting new members, but we'll take anyone here, so why not sign up for a free acount? It's fast and it's easy, like your mom! Sign up today! Membership spots are limited!*
*Membership spots not really limited!
Hey you! Reader! Want to be a part of the GREATEST COMIC BOOK AND GEEK COMMUNITY on the web?! Well, they're not accepting new members, but we'll take anyone here, so why not sign up for a free acount? It's fast and it's easy, like your mom! Sign up today! Membership spots are limited!*
*Membership spots not really limited!
by ****** » Tue Dec 15, 2009 11:38 am
by thefourthman » Tue Dec 15, 2009 11:38 am
I really like my capes and tights books to feel more episodic. The fact that the Most Wanted storyline takes more than one trade to complete is a problem in and of itself.
This issue was a little drawn out but felt 100% less decompressed then that storyline and to be honest I stopped reading it about half way through. There are times I wish floppies would go away, Amlah and I have talked about Locke and Key in the Awards threads, JMS's Thor and Fraction's Iron Man would also fall under working better in a longer format to me. It is just the nature of a style shift, I guess.
by Old Man » Tue Dec 15, 2009 12:23 pm
And that's the hard part about ordering comics. Sell 40 copies a month for years, then suddenly sell only 30. Reduce orders by 8, leaving a couple copies for the shelf, and just as suddenly sell out with customers asking for more.
FOC has to have helped immensely in making this easier to handle.
by Old Man » Tue Dec 15, 2009 12:25 pm
The Review Group threads are the most important threads here, because of all that discussion.
by thefourthman » Tue Dec 15, 2009 12:28 pmYup FOC is an invaluable tool. That and cycle counts. I don't mind one or two copies of a book for the back issue bins, but the knuckle head who orders and the boss man often conspire to destroy us. I try to keep four or five issues of a book on the new shelf anything older needs to be back issued, so if a book from 6 months ago still has thirty or more copies in bulk packs, I am like what the fuck are you doing? I have to fight to keep some books on the shelves but have CASES of Cap #600 still. It is a never ending battle of fighting cash flow and the secondary mentality of those two buttheads.
by Old Man » Tue Dec 15, 2009 7:10 pm
Wow. No profit to be made on those.
by Eric Ratcliffe » Tue Dec 15, 2009 11:20 pm
It's a good issue but if I remember correctly the marketing destroyed the buzz completely.
by john lewis hawk » Wed Dec 16, 2009 1:40 am
World's Most Wanted was not slow but the Mr. Fear arc was.
The part that really annoyed me in Bru's Mr. Fear story was the part after Milla, who I've never cared for, pushing Lily into that guy killing him and mr. Fear is shown telling DD thst he knows his wife. That part was just so cliche and lame.
by SuperginraiX » Wed Dec 16, 2009 6:22 amQuick review to show I'm still alive. No really. Still here. Probably not quick, though. I know myself too well.
We discussed this on the podcast on sunday and the only bone I had to pick over this issue was that Cap's shield somehow can carry an electric charge. Yes, even a mystical electric charge doesn't make sense for me (but, apparently, I'm fine with the capes and masks and other crazy stuff I put up with on a weekly basis). You can't tell me Cap hasn't deflected some sort of mystic lightning before. I'm certain someone on here could give you an issue and panel if given enough motivation.
But other than that, this issue is pretty damn awesome. World's Most Wanted was a fun story to play with during the Darkest of Reigns and now that we're getting ready for Marvel's version of Brightest Day (or whatever they call the reunion of the Avengers Trinity), jumpstarting Tony back into the driver's seat of his own title is fun to watch.
Salvador is hitting a stride on this book. I love long term creative teams so I'm digging the fact that the writer and artist have not missed an issue yet. Hell, have they missed a month yet? I seem to recall some issues coming two weeks apart at times. Here's hoping that Larroca at least makes it to issue 25 before they pull him to do other work (I'm guessing an Avengers title is in his future).
Storywise, this issue continues the symbolism from the previous issues. Thor and Cap are both integral in bringing Tony back to the land of the living. Old friends show up looking much less cyborg-like (thanks War Machine #12!). Long standing plot points show up but are explained so that new readers won't have too many question marks over their heads. Pepper loses the glowy ring. Tony gets it. In a surprising twist, Tony doesn't even need it for his four thousandth heart condition, either. This time it's there to help his body heal and do what any other person (who didn't erase his brain) could automatically do.
Oh yeah, there was one last gripe that had little to do with the story itself and is more about timing. As happy as I am about Iron Man coming out regularly (us Iron Man fans suffered the most post Disassembled with the crawling release of Extremis), would it have KILLED them to release this book THIS week and not given yet another spoiler for Cap Reborn? I mean, sure, we could all have guessed this ending but it's the principle of the matter. Maybe I wanted to suspend my belief and think that Red Skull had a chance of keeping Steve's body (if it turns out that that's actually the Red Skull still, I will be... intrigued, actually... they should do that). Third book in two weeks to spoil the ending to Cap Reborn. Bad Marvel, BAD.
But, all in all, The Invincible Iron Man #21, I give you a solid 9. What can I say. I'm an Iron Man fan.
by thefourthman » Wed Dec 16, 2009 10:19 amThis week's pick has 38 pages of new story for only 2.99. Take that Old Man Logan!
by Punchy » Wed Dec 16, 2009 11:10 am
Doesn't mean shit if the story is bad.
by thefourthman » Wed Dec 16, 2009 11:12 am
nice to see everyone is going into this one with no preconceptions. Should be a fun week.
Having a story would make it better than GSWOML.
by Punchy » Wed Dec 16, 2009 11:15 am
Hey, it doesn't matter to me, since I don't have to buy a copy this week, and I don't think it will be shit, it might be, but the price is, as always irrelevant.
by thefourthman » Wed Dec 16, 2009 11:16 am
price is never irrelevant in a shit economy in a niche market.
by john lewis hawk » Wed Dec 16, 2009 2:13 pmSolid issue.
leave a comment with facebook
Who is online
Users browsing this forum: Google [Bot] and 41 guests

subset: commoncrawl


text: What's the Future for This Year's Calf Crop? August 27, 2012 02:59 AM Tweet TAGS: Marketing, Overseas December 18, 2014 By Kim Watson Potts Drovers Email Following the typical supply and demand economics model, many people expected this year to be the one when the U.S. cattle herd would start rebuilding, as cattle prices move higher and heifers are retained. Producers were looking forward to weaning and marketing those higher-priced calves this fall. Mother Nature turned the tables, however, as widespread drought in the Midwest, Plains and Western states limited pasture availability and wilted the U.S. corn crop to almost devastating numbers. "The drought cuts two ways for the cattle industry, and they both have to do with feed prices—for forages and for feed to grow out steers and heifers for beef," explains Chris Hurt, an agricultural economist at Purdue University. Retaining heifers or expanding a herd appears to be the furthest thought from the minds of farmers impacted by drought. Many are just hoping to make it through a while longer, and will sell calves for cash flow rather than wait for market highs. For cattle producers like Ed Greiman, a cow–calf and feedlot operator in Garner, Iowa, it is likely that a revision of their budgets will be needed for their banker. "We reduced our budgets for the bank, and we see the cow–calf side getting hurt. It will take $100 per cow more in feed for the next 12 months compared to last year," he says. Greiman also feeds 2,500 head in monoslope facilities, but says that he plans to keep the feeding pens full. "We only had one bad turn before corn went up. We'll find a way to get through and buy extra cornstalks and other alternative feeds to finish cattle out," he adds. Other producers are also encountering challenges in maintaining or extending financing to keep livestock. With banks unwilling to take risks on livestock loans, some are not even considering them. Lynette and Steve Beiser run a large family farm in Butler County, Ohio, with more than 3,000 acres of grain and 1,000 head of cattle. Lynette says that the banks this year are being uncooperative. "This is the first year we have noticed reluctance to loan money for raising livestock. We will be forced to sell our cattle month to month for cash flow [due to grain deficit] and eventually get out of the cattle business," she predicts. If feeders continue to have limited funds to purchase cattle, producers may want to expand their selling options for calves this fall. Consider direct marketing to feedyards or other buyers, through sale barns, directly to an order buyer or selling cattle online. Early fall run. For those who can hold on, there may be a silver lining this fall. With the drought, this year's typical fall calf run actually occurred in the summer, says Derrell Peel, Oklahoma State University livestock economist. Fall calf prices may trend up since the glut of movement occurred earlier. "Short pastures meant that calves headed to feedlots sooner than normal. It also meant that the cowherd was culled more than normal and heifer retention declined," says Ron Plain, University of Missouri agricultural economist. Increased cow slaughter and reduced heifer retention will mean a smaller calf crop in 2013, and consequently tighter beef supplies and higher beef prices. "Overall, the economics of cattle prices are good," Plain says. "If the drought weren't so widespread, I'm sure we would be saving heifers. However, a very large share of the nation's pastures are in bad shape." With the liquidation this summer, market reports suggest that cow prices dropped from 80¢ a pound to closer to 50¢, due to the rush of cows coming to market in late July, Hurt adds. "The drought is so widespread that those cows are going to slaughter rather than finding other farmers or ranchers who want to take them home. Liquidation of some cows will eventually reduce the meat supply by late 2013. So cattle prices and retail beef prices will probably set new record highs each year in 2013, 2014 and 2015." Sell or keep? For those who still have calves to sell this fall, the question of retained ownership may come to mind. With the current feed price situation, however, 2012 may not be a good year to do this. "Retained ownership worked well last year, but not so well this year," says Shane Ellis, an Iowa State University livestock economist. "You have to ask yourself if it is better to risk it yourself or give that risk to someone who can get a better cost of gain." Typically, those retained calves graze longer to put cheaper gains on before heading to the feedyard. But with short pastures, those calves would need to go to the feedyard earlier in order to be efficient. High corn and soybean meal prices will sharply drive up the cost of finishing cattle in the feedlots. When feed prices are high, feedlot managers automatically bid less for younger calves coming into the feedlot. Those lower calf prices mean that the owners of the brood cows (mother cows) get lower prices—forcing losses on them that will further encourage liquidation of the cowherd. For now, Greiman says, he'll continue to "play small ball" just to get through this year. He hopes that next year's forage and grain situation will improve for livestock producers, giving them a chance to make some bigger plays. Back to news


text:
Need help in some reports and documentation that are related to tourism in Venezuela
Бюджет $10-100 USD
I need help in some reports and documentation that are related to tourism in Venezuela. please bid if you are living in Venezuela.
Thank you
12 фрілансерів(-и) у середньому готові виконати цю роботу за $48
Hi there - My name is Jhalak. I've read your [login to view URL] team has 4 years experience designing and developing mobile apps and Websites.I would approach your project by starting with wireframes and getting the site complet Більше
Hi .yes. I am living in Caracas. Venezuela. ..I enjoy traveling and know many places here .I am sure I can help you .please contact ... Puede contactarme .Vivo en Venezuela y conozco mi país ..puedo ayudarle con ese pr Більше
Hi. I would like to participate in your project I am from Venezuela. Exactly in Barquisimeto. regards.
I am a seasoned writer with experience or writings a number of articles related to technology, business and medical topics. Samples and links to the published articles can be provided. I deliver plagiarism free and ste Більше
Hello how are you? I hope you are fine, It is a pleasure to greet you . I am from Venezuela, and my native language is Spanish and my second one is English, so I can do it for sure, Please let me know more info abou Більше
Hello, I'm a native Spanish speaker with an excellent English. I'm from Venezuela and live in Venezuela right now. Please contact me to clear all the details of the project
Hello! I´m a certified translator and I am from Venezuela. I can perfectly manage English and Spanish and I´m sure and I can help you achieve what you need. Contact me so we can discuss further details!! Kind reg Більше
Hello my name is Sam. I would be glad to work with you on this project, I am Venezuelan. I'm available full time so i can get started right away, please feel free to contact me if interested. I guarantee seriousness Більше
Good afternoon. I am Venezuelan and I am interested in participating in this project. Sincerely Militza
First of all i live in Venezuela, i'm a professional person who know everything about Venezuela, i will give all the information that you need and make a good job for sure.


text:
cgtn smart ceiling
monitors elderly - can be set to alarm if no movement detected- also linked to elederly hottline help system
INDUSTRIAL REVOLUTION 4 : special china thanks: BRI Belt Road IQ -need custom guide rsvp firstname.lastname@example.com DC hot-text 240 316 8157
Main reason for optimism is leapfrogging - thats when a society/place that was excluded from industrial age networks leapfrogs an old system to a new one thanks to 1000 times more COMstech than 1946; about a third of the world never had wired telephone lines, now almost all have mobile (text version); more than a quarter of the world never had electricity grids, now microsolar is linking in;. Prior to 2017 only Jim Kim open spaced this debated in DC: let's hope all parents and youth do now from usa to china to Rome, from Scotland to Argentina, from Bangalore to Haiti. from . G1 G2. Join Valuetrue.com and QBG -does your place have a JYK to celebrate global youth? futures of Liberty 1 & education 1
|1:08 #2030now 3.19
0:39 0.31 1:40 1:02 1.21...joy jk search 1........ co
|Which is your top 100 jim kim video vote for end-poverty tedx wcg
|..Jim Kim2030nowjimkim.doc, where world demands women manage poverty why not development?
http://www.tedxwbg.com/ Sources for millennials Happy 2015 dialogues of pih on 1 Ebola 2 how to leverage technology to radically engage patients on health care; UN is 2015 year of all change to sustainability goals... support economistmooc.blogspot.com
Friday, August 4, 2017
invention korean smart ceiling lamp -huge value elderly health markket
Subscribe to: Post Comments (Atom)


text:
DUCKS at CALGARY
Faceoff: 7 p.m., Wednesday, Scotiabank Saddledome
TV/Radio: FSW, 830-AM
Update: The Ducks could have clinched a playoff berth Tuesday without lifting a finger. A loss by either the Phoenix Coyotes to the Pittsburgh Penguins or the Dallas Stars to the Chicago Blackhawks would have sent the Ducks to the postseason. The Ducks (46-18-7, second in the Pacific Division) want to deliver a payback to the Flames (30-35-7, seventh) for a 7-2 loss March 12 in Calgary, a game that spiraled out of control after they gave up four goals in the first period. The Flames slipped from playoff contention some time ago but have won two in a row and six of their last 10. They also are a credible 17-17-3 at home, including a shootout victory Monday over the Pacific-leading San Jose Sharks. Ducks center Ryan Getzlaf has 79 points (30 goals, 49 assists), second in the NHL.


text:
Amherst, Mass. – Despite setting four pool records, the MIT men's swimming program suffered its first defeat of the season on Saturday afternoon, falling to Amherst College 167-131. Ryan Terbush, Michael Liao, Colby Dunn and Wyatt Ubellacker started off the meet by winning the 200 yard medley relay and setting a pool record with a time of 1:33.75. Liao set the pool mark in the 100 yard breaststroke in event #10, winning in 58.34 and would later win the 200 yard breaststroke in 2:08.73.
The other two pool records came in the 100 yard butterfly, which Ubellacker took in a time of 49.72, also good for an NCAA B cut. Dunn, Ubellacker, Tony Chen and Brendan Deveney set a new pool record in the final event, the 400 yard freestyle relay (3:07.15).
Amherst took three events in a row, starting with the sixth event, the 1000 yard free, in which they took the top three spots. The Lord Jeffs also grabbed the top three places in the 100 yard backstroke after Amherst junior Ryan Lichtenfels made an NCAA B cut by winning the 200 yard free in 1:41.04. They did likewise in the 500 yard free, in which Lichtenfels made another B cut (4:35.54) and in the penultimate event, the 200 yard IM.
Dunn won the 100 yard free in 46.24 and sophomore Brendan Liu took the 200 yard backstroke in a time of 1:54.66. Toomas Sepp won the 200 yard fly in 1:53.97 and Ubellacker won the 50 yard freestyle sprint in a tidy 21.31.
MIT was hurt by having only 1 diver in competition. He Chao took fourth in both the 1 meter and 3 meter board, allowing the Lord Jeffs to pick up important points.
The Engineers will travel to Wheaton College on Saturday afternoon, where they will take part in the Wheaton Invitational. The swimming will start at 12 PM.


text:
I'm the older sibling, as is my wife, so to be honest I don't know a ton about the so-called "middle child syndrome." But this week the Huffington Post had a short post with a photo of three siblings. The oldest is lovingly looking into the youngest's eyes while the middle child, who was the baby of the family until about a five minutes ago, zones out.
The picture is very familiar to me. Well, minus the middle child. We have one of our kids and it is one of my favorite pics. Maren is holding Brant, who is probably about 4 days old. It was taken moments after we brought him home for the first time.
Everydayfamily.com has a story on middle child syndrome which "helps explain how birth order affects every aspect of a child's life. Wondering what your middle child may be experiencing, or how to possibly counteract any negativity caused from being a middle child?"
It's a neat story, talking about how the middle child can sometimes feel left out, yet can also be the most outgoing at the same time. It can also lead to some rebelliousness. It's a cool read.
I do find it fascinating how different kids, raised by the same people in same house and with the same values can be so different. It really is all about personality and that is completely a person-to-person deal (I guess the reason it's 'person' ality and not 'everbody' ality) In our house we see the big boy/girl difference and to be honest it is very shocking. We have plenty of friends who told us if they had a boy first they would not have had a second child. Brant is more difficult to deal with than Maren, sure. He's a bit more hot-headed and stubborn. Brant is a bit sensitive – he did run and hide under the table this weekend when I was going to put him in timeout after he smashed his sister in the head with a toy drill – but he's not the same sensitive as Maren.
Maren has some bounce-backability, but if she doesn't get her way there will be two outcomes: Someone is getting an earful (me) or someone is going to slam a door while crying on the other side (her). Where this comes from, I don't know. (Actually, I do, but I will not discuss it further)
But I guess it depends on what the situation is. Brant will cry if Maren takes a toy from him. Maren will let Brant play with Barbies until he's blue in the face, but if he touches one of her books, it's on.
So all I know is my kids are different from each other, but they are also very similar. I'm cool with that.


text:
Two-Tone Shirt
Added Jun 19, 2012
By burdastyle
New York, New Yo...
We wanted to see the Men's Summer Shirt pattern in a short sleeved version and when we found this fun cotton fabric we got right to work!
The fabric has two sides that are good so we decided to alternate the two sides on the shirt. We sewed the sleeves so the inside of the fabric is folded up and is visible on the front, we did the same with the button placket. Instead of folding it to the inside we folded it to the outside, making the backside of the fabric visible.
We only made one pocket skipped the pocket flap and made a similar detail on the pocket as with the sleeve and button placket. We also skipped the collar and used only the collar stand, which we narrowed down a bit.
For the back, we added 2" all along the center back to get a slightly looser fit with a pleat.
The pattern is really good and has a great fit!
Material Notes
Shirt fabric in cotton.
4 Comments Sign in to add a post
Oct 5, 2015, 05.09 PMby Katarina Bally
What a masterpiece! Very stylish!
Jun 26, 2012, 07.13 AMby optical0character0recognition
It will high light your presence around the public.. nice
Jun 24, 2012, 04.49 AMby Welanie
Looks sweet. He looks happy and comfortable.
Jun 19, 2012, 07.59 PMby infinite-plus-one
Looks great!
Add to Favorites 28 people added it
This project is based on
5/2011 Men's Summer ShirtMake it


text:
HerPregnancy is a new London-based group that provides antenatal classes for expectant mothers and those planning a pregnancy.
Fully understanding the course of pregnancy and labour is integral for mothers to make sound choices and receive the best form of care. Misinformation and anticipatory fears are major barriers to these goals.
HerPregnancy provides extra support to those receiving either private or NHS care. We offer a full program of classes for all stages of pregnancy. There are also early pregnancy classes to support those who suffered a miscarriage or those who required assisted conception (in vitro fertilisation IVF) treatment to be pregnant
Early pregnancy ultrasound scan or a scan at any stage of pregnancy is provided as part of this approach. It is included in the full programme as a compliment. Extra pregnancy scans can be provided upon request.
Our groups are of no more than seven. The classes will be provided in a relaxed and practical environment.
Helping pregnant and non-pregnant women to expand their knowledge allows them to achieve their expectations.


text:
Law School Admissions / Re: Trying to improve LSAT score to 160's.« on: July 05, 2011, 08:24:44 PM »
Even if you do get a 160, most law schools will average the two scores.
Oops, sorry. The last time I researched was before they had changed the rules, but it was ignorant of me to assume nothing had changed in so many years. It appears as if most do take the highest score nowadays, except for a handful of exceptions that still average.


text:
Toby Keith, "Drinks After Work", (Show Dog/Universal), ***
Apparently nobody ever told Toby Keith he can't have it both ways. In his 20 years of recording, the country titan has deftly hopped from high-spirited rabble-rousing to poignant heart-wringing and has made each sound like an easy fit. And along the way his writing has only taken on greater depth and resonance, with more sharply drawn characters and deeply expressed emotions. "Drinks After Work," Keith's 17th studio album overall — with songwriting help from regular collaborators Bobby Pinson, Rivers Rutherford and Scotty Emerick — continues the trend, starting off on a grinning note with the twang and crunch of the weekend party song "Shut Up and Hold On" and the quittin' time celebration of the title track. Keith's in sentimental territory with the urgent "Before They Knew They Were Good," however, while "The Other Side of Him" ruminates loss and lessons learned. This album leans toward the upbeat, though, whether it's the jibes of "Little Miss Tear Stain," the heartfelt salute of the Western swing-flavored "Last Living Cowboy," the gritty honky tonk of "Show Me What You're Workin' With" or the loose, Caribbean flavor of "I'll Probably Be Fishin'." As per usual the bonus tracks on the Deluxe Edition are worth hearing, too — particularly "Chuckie's Gone," a warm, three-hanky tribute to Keith's late bandleader and bass player Chuck Goff, which will leave more than a few tears in your beer even if his duet with Sammy Hagar on Jimmy Buffett's "Margaritaville" brings back a little bit of a smile.
Robert Glasper Experiment, "Black Radio 2" (Blue Note) **1/2
Jazz pianist Robert Glasper's Grammy Award-winning 2012 "Black Radio" set was such a revelatory, groundbreaking mash-up of jazz, soul and hip-hop conventions that a sequel seems like a seriously daunting ambition. But Glasper and his group of musical compadres largely pull it off on this largely static-free celebration of high-minded musicality and lyricism, turning in a 12-song set that doesn't quite hit its predecessor's heights but comes pretty darn close. The shortcoming is that his own playing seems to take an unnecessary back seat to the vocalics provided by Jill Scott, Norah Jones, Detroit's Dwele, Common, Marsha Ambrosius, Fall Out Boy's Patrick Stump and others; it isn't until late, on "Persevere" (with Snoop Dogg, Lupe Fiasco and Luke James) that Glasper lets himself cut loose a bit. But "Black Radio 2" is still worth tuning into.
New & Noteworthy:
American Authors, "American Authors" (10 Spot/Mercury): The debut EP from the Brooklyn-based indie rock troupe whose "Best Day of My Life" has enjoyed plenty of TV and movie time.
Arcade Fire, "Reflektor" (Merge): The Canadian group's follow-up to 2010's Grammy Award-winning "The Suburbs" was co-produced by LCD Soundsystem's James Murphy and features David Bowie as a guest on the title track.
Autechre, "L-Event" (Warp): The British electronic duo follows its album "Exai," with this 26-minute EP.
Dead Letter Circus, "The Catalyst Fire" (The End): The Australian alt rockers take their story worldwide after the homeland success of its debut, "This is the Warning."
Sky Ferreira, "Night Time, My Time" (Capitol): The singer/actress follows two EPs with her first full-length set of synthpop — as well as a provocative, topless cover.
Steve Hackett, "Genesis Revisited: Live at Hammersmith" (Inside Out): The former Genesis guitarist offers up plenty of the group's favorites on this CD/DVD combo set.
Mick Hucknall, "American Soul" (Razor & Tie): The Simply Red frontman's first proper solo album features covers of classics by Otis Redding, Ray Charles, Etta James and even Perry Como.
Kill Devil Hill, "Revolution Rise" (Century Media): Sophomore album from the heavy rock supergroup featuring alumni of Pantera, Black Sabbath, Dio, Down and more.
Ed Kowalczyk, "The Flood and the Mercy" (Soul Whisper/Harbour/Caroline): The former Live frontman gets help from R.E.M.'s Peter Buck and Rachael Yamagata on his second solo album.
Lily & Madeleine, "Lily & Madeleine" (Asthmatic Kitty): The debut full-length from this Americana sister duo follows their attention-getting "The Weight of the Globe" EP.
Linkin Park, "Recharged" (Machine Shop/Warner Bros.): A remix album that features the group's collaboration with Steve Aoki, "A Light That Never Comes," as well as new versions of tracks from its "Living Things" album.
Los Lobos, "Disconnected in New York City" (429): The long-lived Mexican-American group celebrates its 40th anniversary with this live set from 11 months ago.
Protest the Hero, "Volition" (Razor & Tie): The Canadian metal group's Indiegogo-financed fourth album features a guest appearance by Lamb of God drummer Chris Adler.
Thomas Rhett, "It Goes Like This" (Valory Music Group): The son of Rhett Atkins and hitmaking country songwriter makes his debut with this spirited 12-song set.
Sepultura, "Mediator Betwen Head & Hands Must Be the Heart" (Nuclear Blast): The Brazilian metal group's 13th album returns to producer Ross Robinson, who helmed 1996's landmark "Roots."
Skeletonwitch, "Serpents Unleashed" (Prosthetic): The fifth full-length effort by the thrash metal group from Athens, Ohio.
Southern Culture on the Skids, "Dig This" (Kudzu): The North Carolina psychedelic rock group celebrates its 30th anniversary by re-recording its 1993 album with its same lineup.
Testament, "Dark Roots of Thrash" (Nuclear Blast): A two CD/DVD set capturing the headbangers' February concert in Huntington, N.Y.
Up The Chain, "Seeds & Thorns" (self-released): A sophomore set of acoustic soul from Philadelphia-based singer-songwriter Reed Kendall.
Leslie West, "Still Climbing" (Provogue): The Mountain man returns with a heavy-hitting set that features guest appearances by Johnny Winter, Jonny Lang, Mark Tremonti of Creed and Alter Bridge, and Twisted Sister's Dee Snider.
From The Vaults:
The Eagles, "The Studio Albums 1972-1979" (Elektra/Asylum); Humble Pie, "Performance: Rockin' the Fillmore — The Complete Recordings" (Omnivore); Jethro Tull, "Benefit (Deluxe Edition)" (WEA); Boz Scaggs, "The Essential …" (Columbia/Legacy); Seether, "Seether: 2002-2013" (Wind-Up); Lindsey Stirling, "Lindsey Stirling" (self-released)
New Holiday Albums:
Trace Adkins, "King's Gift" (Caliburn); Bad Religion, "Christmas Songs" (Epitaph); Susan Boyle, "Home For Christmas" (Columbia); Celtic Woman, "Home For Christmas" (Manhattan); Kelly Clarkson, "Wrapped in Red" (RCA); Nick Lowe, "Quality Street: A Seasonal Selection" (Yep Roc); Johnny Mathis, "Sending You a Little Christmas" (Columbia); New Christy Minstrels, "Merry Christmas! The Complete Columbia Christmas Recordings 1963-1966" (Real Gone); The Robertsons, "Duck The Halls: A Robertson Family Christmas" (Capitol Nashville); Mindy Smith, "Snowed In" (Giant Leap/TVX); Straight No Chaser, "Under the Influence: Holiday Edition" (Atlantic); Andy Williams, "The Complete Christmas Recordings" (Real Gone)
New Music DVDs:
Joe Bonamassa, "Tour De Force: Live in London — The Borderline" (J&R Adventures); Celtic Woman, "Home For Christmas: Live From Dublin" (Manhattan); "Springsteen & I" (Eagle Rock); Various Artists, "Move Me Brightly: Celebrating Jerry Garcia's 70th Birthday" (Eagle Rock)


text:
Hey, I've got a really good idea for all the kite companies.
Make a kite that flies great and don't get crazy with prices and you will sell a ton of kites.
I don't care if Slingshot or Cabrinha makes good kites if their prices are crazy high.
I don't care if the very cheapest kites are cheap if they fly like crap.
Some of the lower priced kite brands are gaining market share every year, because their kites fly great.
Make great kites and let the chips fall where they will.


text:
A mountain lifts a heavy heart
On a recent Saturday, with a heart heavy as concrete, I headed north, leaving my house in Portland, Ore., as rain pounded the windshield. The remnants of a recent breakup cast the world in dull hues.
Mount St. Helens was busy spitting ash into the sky, and I figured, what else cheers the soul like a good case of natural fireworks? I grabbed a good friend, a camera and picnic fixings, and drove an hour and a half to join the throngs of people at Mount St. Helens' Coldwater Ridge Visitor Center.
Mount St. Helens has been grumbling recently with the most fervor it's shown in 24 years. On Oct. 1, the volcano erupted with a 24-minute flow of steam and ash. After two weeks of intermittent bursts, a relatively small amount of lava finally reached the surface. Now, the volcano is back to venting hot gas and water, and scientists don't know when another eruption could occur.
With all that commotion, the crowds have erupted. On a typical day, about 900 people visit this national volcanic monument. In the last few weeks, that number has nearly tripled. On one Sunday, an estimated 7,000 people came to pay homage to the volcano. Cars have lined up nose to tail for nearly five miles. People have flown in from New York, Florida and North Carolina. Vacationers on road trips to Canada or California have diverged off I-5 and headed east.
Like spectators at a tailgate party, waiting for nature's big game, people bring porch chairs and beach umbrellas; they set up barbecue grills in the back of pickup trucks. On a day without any noticeable action, a group of sixth-graders tried to rally the mountain, counting down from 40 to one. Then, jumping with arms raised, they shouted at the molar-shaped mountain, "ERUPT!"
When I arrived at the visitors' center, perched seven and a half miles from the mountain, the observation deck was thick with tourists. Kids in parkas raced around, a busload of Japanese tourists took pictures, an older woman with layers of dark pancake makeup leaned over the edge of the wall and stared out toward the mountain, saying simply that she'd come here from Pennsylvania, "to be a part of history."
There was one small glitch: We couldn't see anything. A thick blanket of gray clouds shrouded St. Helens and the terrain below. The landscape was obscured by the prevailing gloom.
When Mount St. Helens last erupted in May of 1980, I was a 4-year-old, in Seattle. But I remember the Time of the Volcano. My Mom, breast-feeding my newborn brother and, worried about ash-contaminated water, filled our 10-gallon camping jugs and even the bathtub for our personal reservoir.
After the eruption, I carried a film canister full of ash around for weeks. It was the coolest thing, better than Legos or Barbies. I would sit in my very pink bedroom and pour that ash out on to my small palm, to smell the Earth's insides and feel the soft gray dust.
When the volcano exploded sideways that May, it blew south, killing 57 people. It blasted over 230 miles of forest in just three minutes. Old-growth trees shattered like glass. Portland, Ore., and Vancouver, Wash., were a mess of closed roads and ash-damaged cars.
Scientists predict any explosion in the near future will probably be puny compared to the explosion of 1980, but you never know. I wonder why we are drawn here, voluntarily putting ourselves in danger. Maybe it's the rare opportunity to observe the Earth's soul, to witness what's buried deep inside. Most of us have the opportunity to touch the rough bark of a broad tree, to taste the sea's salt or to wonder at the way low light and shadow obscure perspective. Yet the domain of lava and ash is a mysterious frontier.
As for me, on that cold dreary day, I needed to be reminded how small and insignificant ordinary life is, compared to the long arc of ecological change. I never even saw the volcano that day. But my friend and I had a picnic, we listened to a ranger talk about volcanoes, we stood among the crowd, staring and straining our eyes at the spitting rain, searching for a glimpse of that hulking, living mountain.
As I looked into that gray abyss, trusting that on the other side, geology was working its slow, steady magic, my heart lifted.
Rebecca Clarren is a contributor to Writers on the Range, a service of High Country News (hcn.org). She writes in Portland, Oregon.


text:
Finding a right domain name is vital as it provides your company an identification that helps you to reach to your valuable customers. After choosing a right host, you need to give your precious time on finding a right domain name. Your domain name should be distinct from your competitors so that your clients can find you easily. But selecting a right domain name from a plethora of domain names is little bit difficult. However, a little bit creativity and a little bit knowledge can help you find a great name for your website. Here are some helpful tips that definitely help you a great deal in this respect.
Unique Domain Name
Choose a domain name that is unique and at the same time it must be easy to spell. It must leave a mark on your customers. It should be such that attracts your clients at once. To make it expressive you need to add words related to your business and products to your domain name. For instance, if you are associated with local business and products, incorporate words like city name to your domain. It helps you getting the local customers. Your domain name should be easy so that the online visitors can type it without any difficulty. They often lose concentration and feel agitated if they need lot of time in typing a single website name. Try to keep the name as short as possible as it allows them to remember it easily.
Choose the Right Extensions
Your domain name is basically consisted of two parts: one part contains the "unique name" and the other one is the "Top Level Domain" (TLD) or a "dot extension". A domain name having different TLD extensions appears as a new domain name registration to several different web addresses. Most business people use the most general domain extensions such as .com, .net and .org. All these extensions are unable to provide you an unique domain name as these are mostly used almost by all. You can take the help of several other domain name extensions that will prove apt to your website such as .tv, .info, .mobi, .biz and so on. Regional domain name extensions are also available including .co.uk (United Kingdom), .ca (Canada), .us (USA) and lots more. You can choose any of these local extensions based on your business location. The .us.com extension can also be used other than .com. It enables the customers to know that your business mainly focuses on the United States customers.
Spelling Rectification
Confusion and misspellings must be ignored. Your domain name spelling should be such so that your customers can easily remember. If you add hyphens and something that is hard to remember, your customers will end up with failures. He/she will type your website and end up with opening an entirely different website. Though adding hyphens to your domain name helps tempting the online visitors but avoidance of it will be fruitful as they are tend to forget that.
Shortlist the Domain Names
Make a list of some domain names that you find suitable for your company. Once you are done with it, now is a time for testing. Notice the responses of your clients, friends and relatives. Check whether you can pronounce it easily. If you get positive responses then stick to it. If not try another one. You can take some expert's aid if you are in confusion. Search the internet to find out that the domain name you have chosen for your company website, somebody else is having the same domain name with different extension. If so change it at once because it can affect your company and customers.
Domain Name Registration must be Done as Quick as Possible
Register the domain name as fast as possible if you are ready with your domain name. Millions of domain names get registered every day. The name that you discover tomorrow might not be there the next day. This implies that internet business is growing at rapid speed and so as the online business competition.
Have a Domain Name with Several Extensions and Variations
Registering a domain name with various extensions and misspellings of it will be very effective as it enables the online users to visit your website even when they mistype your web address on their browser.
Your Domain Name should Talk for your Company
A domain name should be such so that it reflects the content of your company. The visitors can easily guess what your website is all about. For example, CareerBuilder.com is a website that helps you building your career.
Domain Selection Tool
Websites like Domjax and AJAXWhois are free tools that enable you to get domain names for your business.
If all the above mentioned points fail to work for your company then you can obtain a domain name from a web hosting company. But to get the best possible results you should do a lot of research and a little bit caution is needed before choosing a web hosting company. Choosing a right domain name from a trustworthy company is very essential as the most integral part of your website business depends on the domain name of your company. Purchasing a domain name from an illegitimate company may harm your company to a great extent. Get in to a deal with a company who you trust for your domain name registration so that you can get its services when you need most.
Feel free to share your thoughts and opinions.
I would say that always go with top extension, shorter is better try to have keywords in domain as well, these are main things if you are going to register a domain name, I would say.
When you first begin your domain name search, it helps to have 5 terms or phrases in mind that best describe the domain you're seeking. Once you have this list, you can start to pair them or add prefixes & suffixes to create good domain ideas.


text:
The official Heathfield & Waldron RFC app
Venue and time tbc
Hardy Roberts Recreational Ground Cross-in-Hand Heathfield East Sussex TN21 0QZ View with Google Maps
This website is part of the Pitchero Rugby Union network. Create your own free Rugby Union club website with Pitchero.
© Pitch Hero Ltd 2008-2019


text:
Win32::Sound - An extension to play with Windows sounds
use Win32::Sound;
# ...and read on for more fun ;-)
Plays the specified sound: SOUND can the be name of a WAV file or one of the following predefined sound names:
Additionally, if the named sound could not be found, the function plays the system default sound (unless you specify the
SND_NODEFAULT flag). If no parameters are given, this function stops the sound actually playing (see also Win32::Sound::Stop).
FLAGS can be a combination of the following constants:
The sound is played asynchronously and the function returns immediately after beginning the sound (if this flag is not specified, the sound is played synchronously and the function returns when the sound ends).
The sound plays repeatedly until it is stopped. You must also specify
SND_ASYNC flag.
No default sound is used. If the specified sound cannot be found, the function returns without playing anything.
If a sound is already playing, the function fails. By default, any new call to the function will stop previously playing sounds.
Stops the sound currently playing.
Returns the wave device volume; if called in an array context, returns left and right values. Otherwise, returns a single 32 bit value (left in the low word, right in the high word). In case of error, returns
undef and sets $!.
($L, $R) = Win32::Sound::Volume();
if( not defined Win32::Sound::Volume() ) {
die "Can't get volume: $!";
Sets the wave device volume; if two arguments are given, sets left and right channels independently, otherwise sets them both to LEFT (eg. RIGHT=LEFT). Values range from 0 to 65535 (0xFFFF), but they can also be given as percentage (use a string containing a number followed by a percent sign).
undef and sets $! in case of error, a true value if successful.
Win32::Sound::Volume(0xFFFF, 0x7FFF);
Win32::Sound::Volume('100%', '50%');
Returns information about the specified WAV file format; the array contains:
sample rate (in Hz)
bits per sample (8 or 16)
channels (1 for mono, 2 for stereo)
($hz, $bits, $channels)
= Win32::Sound::Format("file.wav");
Returns all the available sound devices; their names contain the type of the device (WAVEOUT, WAVEIN, MIDIOUT, MIDIIN, AUX or MIXER) and a zero-based ID number: valid devices names are for example:
There are also two special device names,
WAVE_MAPPER and
MIDI_MAPPER (the default devices for wave output and midi output).
@devices = Win32::Sound::Devices();
Returns an associative array of information about the sound device named DEVICE (the same format of Win32::Sound::Devices).
The content of the array depends on the device type queried. Each device type returns at least the following information:
For additional data refer to the following table:
WAVEIN..... formats
WAVEOUT.... formats
MIDIOUT.... technology
AUX........ technology
MIXER...... destinations
The meaning of the fields, where not obvious, can be evinced from the Microsoft SDK documentation (too long to report here, maybe one day... :-).
%info = Win32::Sound::DeviceInfo('WAVE_MAPPER');
print "$info{name} version $info{driver_version}\n";
Win32::Sound also provides a different, more powerful approach to wave audio data with its
WaveOut package. It has methods to load and then play WAV files, with the additional feature of specifying the start and end range, so you can play only a portion of an audio file.
Furthermore, it is possible to load arbitrary binary data to the soundcard to let it play and save them back into WAV files; in a few words, you can do some sound synthesis work.
This function creates a
WaveOut object; the first form opens the specified wave file (see also
Open() ), so you can directly
Play() it.
The second (and third) form opens the wave output device with the format given (or if none given, defaults to 44.1kHz, 16 bits, stereo); to produce something audible you can either
Open() a wave file or
Load() binary data to the soundcard and then
Write() it.
Note that by default Win32::Sound::WaveOut will use the first soundcard (eg. WAVEOUT0). If you want to use a different one, you have to do the following:
my $WAV = Win32::WaveOut->new();
$WAV->OpenDevice(1); # open WAVEOUT1
Closes the wave file currently opened.
Closes the wave output device; you can change format and reopen it with
Returns the error text associated with the specified ERROR number; note it only works for wave-output-specific errors.
Loads the DATA buffer in the soundcard. The format of the data buffer depends on the format used; for example, with 8 bit mono each sample is one character, while with 16 bit stereo each sample is four characters long (two 16 bit values for left and right channels). The sample rate defines how much samples are in one second of sound. For example, to fit one second at 44.1kHz 16 bit stereo your buffer must contain 176400 bytes (44100 * 4).
Opens the specified wave FILE.
Opens the wave output device with the current sound format (not needed unless you used
By default it will open the first device (eg. WAVEOUT0). If you have multiple soundcards, you can specify which one to use by adding the numeric ID of the (WAVEOUT) device.
$WAV->OpenDevice(1); # opens WAVEOUT1
See also Win32::Sound::Devices() to list the currently available soundcards.
Pauses the sound currently playing; use
Restart() to continue playing.
Plays the opened wave file. You can optionally specify a FROM - TO range, where FROM and TO are expressed in samples (or use FROM=0 for the first sample and TO=-1 for the last sample). Playback happens always asynchronously, eg. in the background.
Returns the sample number currently playing; note that the play position is not zeroed when the sound ends, so you have to call a
Reset() between plays to receive the correct position in the current sound.
Stops playing and resets the play position (see
Continues playing the sound paused by
Writes the DATA buffer (if not given, uses the buffer currently loaded in the soundcard) to the specified wave FILE.
Returns 0 if the soundcard is currently playing, 1 if it's free, or
undef on errors.
Frees the soundcard from the loaded data.
Gets or sets the volume for the wave output device. It works the same way as Win32::Sound::Volume.
Plays the data currently loaded in the soundcard; playback happens always asynchronously, eg. in the background.
The sound format is stored in three properties of the
WaveOut object:
bits and
channels. If you need to change them without creating a new object, you should close before and reopen afterwards the device.
$WAV->{samplerate} = 44100; # 44.1kHz
$WAV->{bits} = 8; # 8 bit
$WAV->{channels} = 1; # mono
You can also use the properties to query the sound format currently used.
This small example produces a 1 second sinusoidal wave at 440Hz and saves it in sinus.wav:
use Win32::Sound;
# Create the object
my $WAV = new Win32::Sound::WaveOut(44100, 8, 2);
my $data = "";
my $counter = 0;
my $increment = 440/44100;
# Generate 44100 samples ( = 1 second)
for my $i (1..44100) {
# Calculate the pitch
# (range 0..255 for 8 bits)
my $v = sin($counter*2*3.14) * 127 + 128;
# "pack" it twice for left and right
$data .= pack("CC", $v, $v);
$counter += $increment;
$WAV->Load($data); # get it
$WAV->Write(); # hear it
1 until $WAV->Status(); # wait for completion
$WAV->Save("sinus.wav"); # write to disk
$WAV->Unload(); # drop it
Win32::Sound version 0.52, 18 Dec 2013.
Aldo Calpini,
Parts of the code provided and/or suggested by Dave Roth.
Additional fixes and module maintenance kindly provided by Jan Dubois,


text:
New Leader Training/Position Specific – Just getting started in Boy Scouting? To begin your training to be a Boy Scout Adult Leader, begin with these courses that are developed, not only for the new leader, but also for the protection of the youth and to help you to understand the basics of Boy Scouting. These courses are required, along with the appropriate Position Specific training, to be considered completely Trained in your registered position.
Council OLS Training - Outdoor Leader Specifics Training provided by the Council Training Committee
This training is for Second Year Webelos Leaders about to cross over into Boy Scouting, all Troop leaders who camp with youth, Venturing (depending on Crew's declared area of emphasis) and Varsity Leaders. It is required for Scoutmasters, Assistant Scoutmasters, Varsity Coaches, and Assistant Varsity Scout Coaches.
Council Map – Find your District
Training Schedule - Locate scheduled training courses
Training Chairs – Locate your District's Training Chair for more information


text:
Sept. 14, 2005
CAMBRIDGE, Mass. - MIT battled NEWMAC foe Wellesley College in a 5-4 loss on Tuesday. The outcome of the match was decided by the No. 2 and No. 6 singles matches, which both went to three sets. In the No. 6 spot, Joanna MacKay came back from losing the first set, 6-1, to take the win, 6-3, 6-4, and tie up the team scoring at 4-4. Elaine Ni won the first set of her match, 6-3, but despite playing well she could not pull off a three-set win, falling, 6-4, 6-0.
Mariah Hoover and Jill Konowich posted convincing wins in their singles matches. In the No. 3 position, Hoover defeated Hali Walther, 6-2, 6-0. Konowich notched a 6-1, 6-2 win over Jenny Kendall in the No. 5 slot. Serena Lin and Yi Wang both lost their matches by scores of 6-3, 6-3, in the No. 1 and No. 4 spots.
The NEWMAC Doubles Team of the Week, Joanna MacKay and Elaine Ni defeated Trish Devine and Jen Schwartzkopf, 8-3, for the Engineers (1-1, 1-1 NEWMAC) lone doubles victory. Hoover and Lin fell in the top position by a score of 8-4 while Konowich and Yang lost, 8-2, in the No. 3 slot.
In exhibition play, Jane Booth-Tobin and Alex Ording defeated Lisa Shank and Jusleen Karve, 8-5. Karve also fell to Alex Lucas in singles action, 6-2, 6-0. Shank posted a 6-1, 6-0 win over Debby Dowlin while Karina Pikhart recorded an 8-6 victory.
MIT vs. Wellesley College
Final Team Score: Wellesley 5, MIT 4
1. Jenna Mezin/Hali Walther (W) def. Mariah Hoover/Serena Lin (M), 8-4
2. Joanna MacKay/Elaine Ni (M) def. Trish Devine/Jen Schwartkopf (W), 8-3
3. Katelyn Ching/Alex Lucas (W) def. Jill Konowich/Yi Wang (M), 8-2
4. Jane Booth-Tobin/Alex Ording (W) def. Lisa Shank/Jusleen Karve (M), 8-5
1. Jenna Mezin (W) def. Serena Lin (M), 6-3, 6-3
2. Trish Devine (W) def. Elaine Ni (M), 3-6, 6-4, 6-0
3. Mariah Hoover (M) def. Hali Walther (W), 6-2, 6-0
4. Jen Schwartzkopf (W) def. Yi Wang (M), 6-3, 6-3
5. Jill Konowich (M) def. Jenny Kendall (W), 6-1, 6-2
6. Joanna MacKay (M) def. Katelyn Ching (W), 1-6, 6-3, 6-4
7. Alex Lucas (W) def. Jusleen Karve (M), 6-2, 6-0
8. Lisa Shank (M) def. Debby Dowlin (W), 6-1, 6-0
9. Karina Pikhart (M) def. Shine Chen (W), 8-6


text:
Eat'n Park has been in business for almost 60 years, and we've come to realize that the natural resources we've been relying on all these years may not be around for future generations. So, we've been looking closely at how we are using these resources, and we continue to find ways in which we can reduce or change what we are using. In 2008, we formed a green committee that was made up of our CEO, VP of Operations, VP of Purchasing, VP of Marketing, VP of Facilities, and me. We spent a lot of time brainstorming areas of focus, to determine where we could make real and lasting changes.
Over the course of this year, we will be taking the following steps toward sustainability.
- Light bulbs – the majority of light bulbs used in our restaurants have been switched over to compact fluorescent light bulbs (CFL).
CFL's emit the same light as classic incandescent bulbs but use 75% or 80% less electricity. To illustrate the impact of this, if every one of the 110 million American households bought just one CFL for their house and used it in the place of an ordinary 60-watt bulb, the energy saved would be enough to power a city of 1.5 million people.
- Fryer oil – We use trans-fat-free canola oil in all of our locations, which is the preferred oil to be recycled into biodiesel fuel. We are working with bio-fuel producers in an effort to convert 100% of our spent oil to biodiesel fuel.
Biodiesel is a vegetable oil-based fuel that runs in unmodified diesel engines - cars, buses, trucks, construction equipment, boats, generators, and oil home heating units. Biodiesel is usually made from soy or canola oil, and can also be made from recycled fryer oil. The Environmental Protection Agency (EPA) reports that Bio-diesel can reduce carbon emissions by 50%.
- Placemats – While being an important tool for marketing, we have eliminated placemats, which will save a tremendous amount of paper as well as the landfill space they occupy once they've been used.
Producing placemats required more than 325,000 pounds of paper every year, the equivalent of more than 250 trees. To make sure our tables are extra clean, we've enhanced our cleaning procedures to make our tables are spotless.
- Paper Towels – We have been testing high-speed hand dryers in our restaurants to reduce the amount of paper towels that are used.
Paper towels cannot be recycled. Once used, they must go to the landfill; therefore, hand dryers help reduce the need for landfill space, and they reduce the number of trees being cut to process paper towels.
- Remodeling Materials – During renovations or new construction, we use recycled raw materials, including table laminates, carpet, ceiling tiles and wallpaper.
- Local Sourcing – We developed our FarmSource program in 2002 to help reduce the miles food travels. Click here to read my other postings about some of the local farms we've partnered with.
In the United States, food now travels between 1,500 and 2,500 miles from farm to table, as much as 25 percent farther than two decades ago.
Until next time,
Update: Thanks to the steps mentioned above, we were just recognized by Pittsburgh Magazine for having the "Best Green Operations". Check it out here: Pittsburgh's Best of Green Share


text:
Students who have completed one year of J.D. studies and who are in good standing at an ABA-accredited law school may apply to be visiting students at the Columbus School of Law for up to one academic year, earning credits for transfer back to their degree-granting school. Visiting student enrollment is on a space-available basis. Students should contact their degree-granting school for information on financial aid eligibility, and the financial aid application process and deadline.
To be considered for admission as a visitor, please submit the following information:
→ Completed visiting student application and a statement explaining why you are applying to visit (300 words or less)
→ $30.00 Application Fee (check or money order payable to CUA)
→ An official letter from your law school dean (or designate) stating that you are currently in good academic standing and unconditionally eligible to return to your present law school. The letter of good standing should indicate that you have permission to visit, specify which semester(s) you can visit, and that you will receive credit for course work successfully completed at The Catholic University of America, Columbus School of Law.
→ Official Law School Transcript
If you have any questions, please contact the Office of Admissions at firstname.lastname@example.com or at (202)319-5151.
At the Columbus School of Law our goal is to create a community of learning rich in multicultural diversity. Soliciting applicants from differing racial, religious, social, and ethnic backgrounds cultivates an educational environment where free thought in the marketplace of ideas is not only accepted, but is the norm.
Phone: 202-319-5151
Email: firstname.lastname@example.com School of Law Office of Admissions Suite 340 3600 John McCormack Rd., NE
Washington, DC 20064
Washington, DC 20064


text:
Electronics Retailer Charging 6.8% Tax To Customers Who Shop Using Internet Explorer 7
While most of you are surely using the latest customized version of Firefox or Chrome to read this post, there are still a handful of people who not only continue to browse the Internet with Microsoft's Internet Explorer, but with outdated versions of IE. Thus, one Australian electronics retailer Kogan has decided to impose a tax on customers who apparently refuse to upgrade their browsers.
"We've implemented the world's first 'Internet Explorer 7 Tax'," reads an announcement on the Kogan website from earlier this week. "The new 6.8% tax comes into effect today on all products purchased from Kogan.com by anyone still insistent on using the antique browser."
The company says customers' insistence on using the outdated browser is holding it back from providing the best service for everyone:
One of the things stopping that is our web team having to spend a lot of time making our new website look normal on IE7. This is an extremely old browser, so from today, anyone buying from the site who uses IE7 will be lumped with a 6.8% surcharge – that's 0.1% for each month IE7 has been on the market.
Customers can avoid the tax by simply upgrading to something that wasn't released when people still watched Desperate Housewives.
"As Internet citizens, we all have a responsibility to make the Internet a better place," explains Kogan. "By taking these measures, we are doing our bit."
Out of curiosity, I took a look at how many Consumerist readers are using IE7. Turns out only about 16% of our visitors use any version of IE and only 12% of those visitors are using version 7. So fewer than two out of every 100 of you would be impacted by this "tax."
[via RetailCustomerExperience.com]
Want more consumer news? Visit our parent organization, Consumer Reports, for the latest on scams, recalls, and other consumer issues.


text:
WASHINGTON (MarketWatch) – Now that Republicans have conceded two of their most cherished economic ideals, the path is open for them to reach a deal with President Barack Obama to avoid going over the so-called fiscal cliff in early January.
The only thing that stands in the way of a deal now is for the Republicans to recognize that they've already given up on their core principles.
Foremost, they've now agreed to raise taxes on the wealthy, thus abandoning their No. 1 talking point that taxes can never go up. Read Republicans offer tax revenue in cliff plan.
And, just by acknowledging that the fiscal cliff has to be avoided because of the damage that austerity would inflict on the economy, they've rotated 180 degrees to become Keynesians in their economics, thus abandoning their main gripe about Barack Obama's efforts to stimulate the economy over the past four years. Read John Boehner describe "the threat to our economy" from the fiscal cliff.
It could take some time for Republicans to realize what they've done, and it could require some tricky negotiations to allow both parties to save some face in a final bargain. It is by no means certain that a deal can be struck by Dec. 31. But the biggest hurdle to a deal has now been overcome.
Republicans insist that they are still standing by their principles. But that's just political posturing.
The key concession by the Republicans was when House Speaker John Boehner agreed to $800 billion in new revenues, rather than $0. We don't know the details of the Republican proposal; all we know is that the money would come from reducing various tax breaks for families making over $250,000, but we don't know which ones would be capped or eliminated.
Obama is on board with reducing some of these tax breaks, but he says that it wouldn't raise enough money. Obama insists that marginal rates must rise, while Republicans insist that they must not.
There doesn't appear to be much common ground in those two positions, and neither side has budged an inch on that particular demand.
Of course, there are plenty of other issues that also must be resolved in the fiscal cliff negotiations, including how much to trim spending on Medicare and Medicaid and other government programs. However, both sides have some negotiating room on spending; they haven't drawn too many lines in the sand. The intractable issue is what to do about marginal rates. Solve that, and everything else will fall into place.
There is less than meets the eye in the disagreement over marginal tax rates. In terms of economic impact, it won't make that much difference how the extra revenue is raised, whether by raising marginal tax rates or through broadening the tax base by eliminating some tax deductions and exclusions.
In either case, the money will come from the very few who make more than $250,000 a year. That's what Obama campaigned on and it looks like he'll get what he wanted.
Broadening the base
Conservatives and liberals alike argue that "broadening the tax base" is theoretically the best way to raise more revenue. These tax breaks — also known as tax expenditures — distort economic decisions. They give people incentives, for instance, to invest more in housing or spend more on health care than they would otherwise.
We could improve the economy's efficiency (thus creating jobs and raising output) if we got rid of the distortions, economic theory suggests. The problem is that these tax breaks exist because they have powerful constituencies and powerful political friends. Limiting or abolishing tax breaks isn't easy, or it would have been done already.
We shouldn't overestimate how much economic boost we'd get from broadening the tax base, particularly from one that is designed to raise revenue. The 1986 tax reform, a much more comprehensive reform than anything currently being contemplated, had almost no discernible impact on long-term economic growth, employment or productivity, economists have found. Read a review of the Tax Reform Act of 1986 from Bruce Bartlett.
Marginal rates
On the other hand, conservatives often argue that an increase in the marginal rate (the tax paid on the last dollar earned) can have a large impact on the incentives to work or to save.
For instance, someone in the top bracket may decide not to put in extra hours of work if they can only keep 60 cents out of each additional dollar of income, rather than 65 cents under the old tax rates. They may refuse to save and invest if the interest, dividends and other income from those savings are taxed too much.
At least, that's the theory. Empirical studies have found that the economic disincentives from higher marginal rates are actually relatively small; most people don't reduce their work hours or savings very much in response to an increase in the marginal rate. What they do in response is to shield more of their income from the taxman, for instance, by converting ordinary income into forms that are lightly taxed, such as capital gains or dividends. Read an overview of the research on marginal tax rates.
The nonpartisan Congressional Budget Office concluded that raising the marginal rate on the top 2% of earners wouldn't have much impact on the economy over the next year; it would reduce gross domestic product by just 0.1%. By contrast, ending the payroll tax holiday and letting extended unemployment benefits expire would cut GDP by 0.7% and would hit the pocketbook of most American families. Read the CBO's report on the fiscal cliff.
The economic evidence suggests that it won't matter very much to the economy which way the politicians choose to raise more revenue, as long as they get a deal done early in the year.
The political impact of their choices will be a different matter. One side or the other still must swallow something very bitter.


text:
Farmingdale State - 83, Sage - 79
Farmingdale, N.Y. - Senior forward Curtis Williams (Stony Brook, N.Y.) forced a steal with five seconds remaining and converted a pair at the free-throw line as Farmingdale State earned an 83-79 victory over Sage this afternoon. Williams, Jonathan Annan (Staten Island, N.Y.), Samson Lawal (Queens, N.Y.), Donald Lawes (Queens, N.Y.) and Timothy Johnson (Queens, N.Y.) were each honored for senior day.
The Rams (16-6, 12-3) jumped out to a 10-0 lead, before a 12-2 Gators (14-9, 10-6) run tied the game at 12-12.
Trailing 27-25 with 5:48 remaining in the first half, Annan connected on a 3-pointer to put Farmingdale State ahead by one.
The Rams used four straight points by Annan late in the half to take a 40-38 lead, but Sage scored the final two points to send the game to halftime tied 40-40. Annan led the way with 18 points on 7-of-10 shooting, while senior guard Jeff Stopera (Scotia, N.Y.) tallied 16 points in the first half for Sage.
Tied 56-56 midway through the second half, an 8-0 Farmingdale State run capped off by a Johnson jump shot, gave the Rams a 64-56 advantage.
After the Gators cut the deficit to 71-66 with 3:25 left on the clock, Williams hit a 3 to bring the lead back to eight.
Farmingdale State led 80-73 before a 6-1 run with Stopera scoring every point, pulled Sage within two with 45 seconds remaining.
Williams forced a steal on Sage's next possession to lead Farmingdale State to a senior day victory.
Lawes blocked Sage's first shot of the game to pass AJ Matthews' single season school record for blocks of 99. He finished the game with 14 points on 7-of-10 shooting, seven rebounds and seven blocks. Annan tallied a team-high 22 points, had nine boards and five assists, while Williams scored 14 points. Johnson finished the game with nine and Lawal added four points for the Rams.
Stopera recorded a double-double with 32 points and 10 assists, while junior forward Kai Deans (Miami, Fla.) had 17 points and 11 boards.
Farmingdale State next will travel to Mount Saint Vincent for a conference game on Monday, February 17th at 7:00 p.m.


text:
It (Of Vh1), Fresh Off His Kung Fu Training, Responds To Soulja Boy! "You Talking Gangsta. Im A Comedian Baby. We Got The Chain From China Town" + Drops An Apology Music Video "Find Your Love" Freestyle
Soulja Boy Apology Video Song by IT From Vh1
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:
CAMBRIDGE, Mass. – Members of the MIT men's and women's cross country teams took some time away from the trails and volunteered with the Charles River Conservancy (CRC). With the help of the Student-Athlete Advisory Committee (SAAC) at MIT, the Engineers spent the afternoon improving the Charles River bike path by pulling vines, picking up trash, cutting back growth on cherry trees and painting benches.
Senior Alexandra Taylor (Harbor Springs, Mich.), one of the captains of the women's cross country team and a member of SAAC, said "volunteering with the Charles River Conservancy was a great way to give back, especially because many members of our team frequently use the paths along the Charles River."
The Charles River Conservancy is a nonprofit organization dedicated to the renewal of the Charles River Parklands. Founded in 2000, the Conservancy organizes volunteers to help beautify the 400 acres of public land along the Charles.
Danielle Stehlik, the Volunteer and Outreach Coordinator for the CRC, said "I want to send out a big thank you for the MIT cross country teams' hard work and efforts. They all did a fantastic job … it was such a productive volunteer effort. Their efforts go a long way for parkland aesthetics in an area that is enjoyed by many people daily!"


text:
For many students, right after the holidays is a difficult time to begin taking college courses. That's why Lone Star College-Tomball also has second start courses that allow students to start later in the semester when it fits into their schedule. Beginning now through mid-March, LSC-Tomball is offering a large variety of eight- to 12-week late start courses including:
- Accounting
- Art
- Business
- College Success
- Computers
- Drama
- Economics
- Electrical
- English
- Government
- History
- Human Resources
- Humanities
- Information Technology
- Mathematics
- Marketing
- Music
- Philosophy
- Psychology
- Sociology
- Speech
- Wind Power
Students can register up until the first day of each course. For a complete listing of the late start courses available, students can visit https://campus.lonestar.edu/classsearch.htm and select "Late Start" under the "Session" pulldown menu.
To meet with an advisor at LSC-Tomball, students may contact the Advising and Counseling Office in-person in room C100, at 281.351.3310 or at email@example.com. LSC-Tomball is located at 30555 Tomball Parkway in Tomball, TX.
# # #
With 75,000 students in credit classes, and a total enrollment of more than 90,000, Lone Star College System is the largest institution of higher education in the Houston area, and the fastest-growing community college system in Texas. Dr. Richard Carpenter is the chancellor of LSCS, which consists of six colleges including LSC-CyFair, LSC-Kingwood, LSC-Montgomery, LSC-North Harris, LSC-Tomball and LSC-University Park, five centers, LSC-University Center at Montgomery, LSC-University Center at University Park, Lone Star Corporate College, and LSC-Online. To learn more visit LoneStar.edu.


text:
General Contact Information
Corporate Info
306 N. Washington Street
Falls Church, VA, 22046
Phone: (800) 949-9440
Local: (703) 536-1600
General Questions
Email: firstname.lastname@example.com
Phone: (800) 949-9440 x1
Customer Support
Email: firstname.lastname@example.com
Phone: (800) 949-9440 x2
Billing Inquiries
Email: firstname.lastname@example.com
Phone: (800) 949-9440 x3
Demosphere's Headquarters is located in Northern Virginia, just minutes from downtown Washington, DC.
- From the beltway (I-495), take the exit for I-66 East to Washington.
- Take Exit 69 from I-66 to US 29 Lee Hwy.
- At the end of the ramp, turn right at the light. This is Lee Highway.
- Please park in the lot — Demosphere House is adjacent to the lot and directly on the main road, North Washington Street. The address is 306 N. Washington Street.
- Enter through the downstairs entrance and say hello!


text:
Bearing-related problems are among the most common causes of motor failures. Solving those problems will reduce motor failures.
Did you know bearing-related problems cause more than half of all motor failures? Because of this, you must pay special attention to bearings, bearing housings, and shafts when carrying out inspections of and maintenance procedures for motors.
When a motor fails, you should check its bearings - even if the motor windings are blackened and still smoking! Yes, it's possible the motor malfunction was due to a voltage problem, or an excessively hot, moist, or otherwise bad environment. But most of the time, a bearing-related problem is the root cause. For example, a bearing that is beginning to gall can place an extra load on the motor. That extra load would then, in turn, cause the motor to draw excessive current.
How do you determine the root cause of a motor failure? First, you should carefully inspect bearings and housings for dirt or contamination, damage, dents, scratches, out-of-round balls or races, or distortion of any kind. Next, check the shaft and end "bells" for wear or damage. If the shaft is worn or damaged in any way, arrange for repairs. Many motor repair shops can apply new metal to the shaft by flame-spray metallizing and turn it down to its original specifications - resulting in a shaft that's as good as new.
After you complete all motor repairs, be sure the service firm checks all components for proper size and fit, per a manufacturer's specification sheet or other authoritative documentation. Tolerances must permit all components to expand during operation of the motor and yet maintain proper "freewheeling" with no binding that could cause overheating and eventual failure.
When the motor is reassembled, check it for freedom of rotation. You should also perform tests when you place it back in operation. This includes voltage and current checks, insulation resistance tests, and a complete vibration analysis check and alignment tests. Another important step many people forget is to check that sleeve bearings are properly insulated from housing metal. If you omit this protection, circulating currents could cause pits or other damage on the shaft, bearings, and housing.
Watch out for bearing endplay. The proper amount of endplay is critical because as the shaft expands during operation of the motor, enough room must be available to avoid binding of any sort that would shorten bearing life.
All motors will have some amount of endplay in the range of 1/32 in. to 1/16 in. However, some designs have a locked bearing at one end, which results in the rotor not moving in an axial direction. Therefore, the opposing bearing must be able to move or "float" to provide the required freedom. Only people trained in dealing with arrangements of this type should check these.
Primary causes of excessive, damaging endplay include worn bearings or bearing housings, a worn or bent shaft, or contamination that could cause binding, wear, and excessive endplay - in that order. Usually, excessive endplay is hard to detect during normal operation and inspection unless it is extreme. Excess vibration is one symptom that might alert you. So is excess heat at the shaft. If you have either of these problems, suspect endplay, and have a motor-repair expert perform further diagnostics.