text:
Wednesday, January 09. 2008
SQL Math IdiosyncraciesPrinter Friendly
Question: What is the answer to SELECT 3/2?
Answer: In integer math, it is 1. A lot of people especially those coming from MySQL or MS Access backgrounds are surprised to find out that in PostgreSQL
In actuality, the fact that 3/2 = 1 and 1/3 = 0 is part of the ANSI/ISO-SQL standard that states mathematical operations between two values must be of the same data type of one of the values (not necessarily the same scale and precision though). This is not some idiosyncracy specific to PostgreSQL. If you try the same operation in SQL Server, SQLite,FireBird, and some other ANSI/ISO SQL compliant databases, you will get the same results. So it seems MySQL and MS Access are the odd-balls in this arena, but arguably more practical.
Continue reading "SQL Math Idiosyncracies"
Posted by Leo Hsu and Regina Obe in beginner, firebird, ms access, mysql, q&a, sql server, sqlite at 22:22 | Comments (3) | Trackback (1)
Saturday, January 05. 2008
PostgreSQL 8.3 Cheat Sheet OverviewPrinter Friendly
Below is a Thumbnail view of a PostgreSQL 8.3 Cheat Sheet that covers prior PostgreSQL constructs plus new 8.3 features. PDF version of this cheat sheet is available at PostgreSQL 8.3 Cheat sheet in PDF 8/12 by 11", PostgreSQL 8.3 Cheat sheet in PDF A4 and the PostgreSQL 8.3 Cheat sheet in HTML.
We apologize for the small size of the fonts. We tried to keep it to a minimum but had trouble deciding what to leave out to keep it to a one page sheet. So perhaps it would have been better as a 2 part cheatsheet. Anyrate we hope people find it useful.
For people who love cheat sheets, here are two other PostgreSQL cheat sheets on the web which we have found useful and cover slightly different set of things than we do in ours.
Posted by Leo Hsu and Regina Obe in cheatsheet, special feature at 00:07 | Comments (9) | Trackbacks (2)
Wednesday, January 02. 2008
Happy New YearPrinter Friendly
Welcome to the January 2008 Issue of Postgres OnLine Journal Magazine. In this issue we will have a special feature PostgreSQL 8.3 Cheatsheet to commemorate the upcoming PostgreSQL 8.3 release and the new year. This cheat sheet will look similar in format to the Postgis Cheatsheet and will cover standard PostgreSQL features as well as new features added to the 8.3 release.
In future issues we hope to provide similar cheatsheets that highlight certain PostgreSQL advanced and specialty features. Any thoughts on what topics people would like to see in a cheatsheet are welcome.
Other interesting topics that will be covered in this issue to name a few
On another note - check out Andrew Dunstan's, minimum update Trigger. It will be nice to see this make it into the PostgreSQL 8.4 release. Granted we haven't had much of a need of this feature, but when you need it, it comes in very handy as demonstrated in Hubert Lubaczewski's related article Avoiding Empty Updates. We remember the first time we started working on MySQL a long long time ago - MySQL had this built in, but you couldn't turn it off. In certain situations such as when you have triggers this feature is often a misfeature. Granted I guess there are only a few cases where having this automatically on could be annoying especially when all the other Databases you work with don't do this and there is probably some overhead involved with checking which may not always outweigh the update/logging cost. Any rate as far as check-off lists goes for people who consider this a feature, it will be nice to cross this off the list as one reason why one would choose MySQL over PostgreSQL and better yet in PostgreSQL it is optional.
Posted by Leo Hsu and Regina Obe in editor note at 07:00 | Comments (2) | Trackbacks (0)
Monday, December 31. 2007
Trojan SQL Function Hack - A PL Lemma in DisguisePrinter Friendly
Have you ever noticed that in PostgreSQL you can put set returning functions in the SELECT part of an sql statement if the function is written in language SQL or C. Try the same trick for PL written functions such as plpgsql, plperl, plr etc, and you get a slap on the wrist of the form ERROR: set-valued function called in context that cannot accept a set. For Plpgsql and other PL languages you must put the set returning function in the FROM clause.
Below is a simple example:
So it appears that PostgreSQL is not quite as democratic as we would like.
All interesting, but so what? you may ask. It is bad practice to put set returning functions in a SELECT clause. Such things are commonly mistakes and should be avoided.
Functional Row Expansion
It turns out that there are a whole class of problems in SQL where the simplest way to achieve the desired result is via a technique we shall call Functional Row Expansion. By that, we mean that for each record in a given set, we want to return another set of records that can not be expressed as a constant join expression. Basically the join expression is different for each record or the function we want to apply is too complicated to be expressed as a static join statement or join at all.
Taking the above example. Lets say for each record in test, you want to return the 4 records preceding including the current one. So basically you want to explode each row into 5 or fewer rows. Your general gut reaction would be do something as follows:
these give error: ERROR: function expression in FROM cannot refer to other relations of same query level
--But this does what you want
Keep in mind what makes the above tricky is that you want to return at most 4 of the preceding plus current. If you want to return all the preceding plus current, then you can do a trivial self join as follows:
So as you can see - its sometimes tricky to tell when you need to use this technique and when you don't.
For this trivial example, writing the function as an SQL only function works fine and is the best to use. SQL functions unfortunately lack the ability to define dynamic sql statements, among other deficiencies so resorting to using a pl language is often easier which means you lose this useful feature of sql functions. Stuffing a pl function in an SQL function just might do the trick. We haven't tried this on other pl languages except plpgsql, but we suspect it should work the same.
Posted by Leo Hsu and Regina Obe in advanced, pl programming, plpgsql, sql functions at 17:33 | Comments (2) | Trackbacks (0)
Friday, December 28. 2007
Stored Procedures in PostgreSQLPrinter Friendly
Recommended Books: Fundamentals of Database Design
Question: Does PostgreSQL support stored procedures?
Short Answer: Sort Of as Stored functions.
Longer Answer:
For all intents and purposes, PostgreSQL has less of a need for CREATE PROCEDURE than other databases aside from looking more like other databases. For example in SQL Server -> 2005 - although you can write functions that return tables and so forth, you have to resort to writing CLR functions marked as unsafe to actually update data in a stored function. This gets pretty messy and has its own limitations so you have no choice but to use a stored procedures, which can not be called from within an SQL query. In MySQL 5.1 the abilities of functions are even more limiting - they can't even return a dataset. In PostgreSQL, you can write a function marked as VOLATILE that updates data and that can do all sorts of wacky things that are useful but considered by some to be perverse such as the following:
Another thing stored procedures can usually do that functions can not is to return multiple result sets. PostgreSQL can simulate such behavior by creating a function that returns a set of refcursors. See this .NET example Getting full results in a DataSet object: Using refcursors way down the page, that demonstrates creating a postgresql function that returns a set of refcursors to return multiple result sets using the Npgsql driver.
Prior to PostgreSQL 8.1, people could yell and scream, but PostgreSQL doesn't support Output Parameters. As weird as it is for a function to support such a thing, PostgreSQL 8.1+ do support output parameters and ODBC drivers and such can even use the standard CALL interface to grab those values.
At a glance it appears that PostgreSQL functions do all that stored procedures do plus more. So the question is, is there any reason for PostgreSQL to support bonafide stored procedures aside from the obvious To be more compatible with other databases and not have to answer the philosophical question, But you really don't support stored procedures?.
There must be some efficiency benefits to declaring something as a store procedure and having it called in that way. Not quite sure if anyone has done benchmarks on that. So for the time being PostgreSQL functions have the uncanny role of having a beak like a duck and the flexibility of a beaver, but having the makeup of a Platypus.
Posted by Leo Hsu and Regina Obe in intermediate, mysql, oracle, q&a, sql server at 07:48 | Comments (19) | Trackbacks (0)
Thursday, December 27. 2007
CrossTab Queries in PostgreSQL using tablefunc contribPrinter Friendly
Recommended Books: PostgreSQL 8.4 Internals and Appendixes (contribs) SQL Queries for Mere Mortals SQL Visual Quick Start
The generic way of doing cross tabs (sometimes called PIVOT queries) in an ANSI-SQL database such as PostgreSQL is to use CASE statements which we have documented in the article What is a crosstab query and how do you create one using a relational database?.
In this particular issue, we will introduce creating crosstab queries using PostgreSQL tablefunc contrib.
Installing Tablefunc
Tablefunc is a contrib that comes packaged with all PostgreSQL installations - we believe from versions 7.4.1 up (possibly earlier). We will be assuming the one that comes with 8.2 for this exercise. Note in prior versions, tablefunc was not documented in the standard postgresql docs, but the new 8.3 seems to have it documented at http://www.postgresql.org/docs/8.3/static/tablefunc.html.
Often when you create crosstab queries, you do it in conjunction with GROUP BY and so forth. While the astute reader may conclude this from the docs, none of the examples in the docs specifically demonstrate that and the more useful example of crosstab(source_sql,category_sql) is left till the end of the documentation.
To install tablefunc simply open up the share\contrib\tablefunc.sql in pgadmin and run the sql file. Keep in mind that the functions are installed by default in the public schema.
If you want to install in a different schema - change the first line that reads
Alternatively you can use psql to install tablefunc using something like the following command:
We will be covering the following functions
There are a couple of key points to keep in mind which apply to both crosstab functions.
Setting up our test data
For our test data, we will be using our familiar inventory, inventory flow example. Code to generate structure and test data is shown below.
Using crosstab(source_sql, category_sql)
For this example we want to show the monthly usage of each inventory item for the year 2007 regardless of project. The crosstab we wish to achieve would have columns as follows: item_name, jan, feb, mar, apr, may, jun, jul, aug, sep, oct, nov, dec
--Resulting crosstab query
--Note: For this we don't need the order by month since the order of the columns is determined by the category_sql row order
The output of the above crosstab looks as follows:
Using crosstab(source_sql)
crosstab(source_sql) is much trickier to understand and use than the crosstab(source_sql, category_sql) variant, but in certain situations and certain cases is faster and just as effective. The reason why is that crosstab(source_sql) is not guaranteed to put same named buckets in the same columns especially for sparsely populated data. For example - lets say you have data for CSCL for Jan Mar Apr and data for Phenol for Apr. Then Phenols Apr bucket will be in the same column as CSCL Jan's bucket. This in most cases is not terribly useful and is confusing.
To skirt around this inconvenience one can write an SQL statement that guarantees you have a row for each permutation of Item, Month by doing a cross join. Below is the above written so item month usage fall in the appropriate buckets.
In actuality the above query if you have an index on action_date is probably more efficient for larger datasets than the crosstab(source, category) example since it utilizes a date range condition for each month match.
There are a couple of situations that come to mind where the standard behavior of crosstab of not putting like items in same column is useful. One example is when its not necessary to distiguish bucket names, but order of cell buckets is important such as when doing column rank reports. For example if you wanted to know for each item, which projects has it been used most in and you want the column order of projects to be based on highest usage. You would have simple labels like item_name, project_rank_1, project_rank_2, project_rank_3 and the actual project names would be displayed in project_rank_1, project_rank_2, project_rank_3 columns.
Output of the above looks like:
Tricking crosstab to give you more than one row header column
Recall we said that crosstab requires exactly 3 columns output in the sql source statement. No more and No less. So what do you do when you want your month crosstab by Item, Project, and months columns. One approach is to stuff more than one Item in the item slot by either using a delimeter or using an Array. We shall show the array approach below.
Result of the above looks as follows:
Building your own custom crosstab function
If month tabulations are something you do often, you will quickly become tired of writing out all the months. One way to get around this inconvenience - is to define a type and crosstab alias that returns the well-defined type something like below:
Then you can write the above query as
Adding a Total column to the crosstab query
Adding a total column to a crosstab query using crosstab function is a bit tricky. Recall we said the source sql should have exactly
3 columns (row header, bucket, bucketvalue). Well that wasn't entirely accurate. The crosstab(source_sql, category_sql) variant of the function
allows for a source that has columns row_header, extraneous columns, bucket, bucketvalue.
Don't get extraneous columns confused with row headers. They are not the same and if you try to use it as we did for creating multi row columns, you will
be leaving out data. For simplicity here is a fast rule to remember.
Resulting output of our cross tabulation with total column looks like this:
If per chance you wanted to have a total row as well you could do it with a union query in your source sql. Unfotunately PostgreSQL does not support windowing functions that would make the row total not require a union. We'll leave that one as an exercise to figure out.
Another not so obvious observation. You can define a type that say returns 20 bucket columns, but your actual crosstab need not return up to 20 buckets. It can return less and whatever buckets that are not specified will be left blank. With that in mind, you can create a generic type that returns generic names and then in your application code - set the heading based on the category source. Also if you have fewer buckets in your type definition than what is returned, the right most buckets are just left off. This allows you to do things like list the top 5 colors of a garment etc.
Posted by Leo Hsu and Regina Obe in contrib spotlight, intermediate, tablefunc at 03:57 | Comments (12) | Trackbacks (0)
Tuesday, December 18. 2007
Using OpenOffice Base 2.3.1 with PostgreSQLPrinter Friendly
Recommended Books: Getting Started with OpenOffice.org 3 written by OO.org group Database Programming with OO Base
For those who are not familiar with OpenOffice Base. OpenOffice Base is the equivalent of Microsoft Access in the OpenOffice Open source suite. While it is not as feature rich as Microsoft Access, it has been getting increasingly better and has some unique features that even Microsoft Access lacks. Unfortuantely you can't just convert an access mdb to its format like you can with other Open office suite products - Word to Writer Writer to Word etc. However you can open MS Access databases in OOBase, but you can't take advantage of the forms and reports in an MS Access Database.
One thing I always liked about Microsoft Access was the ease with which you could link to various different kinds of datasources and generate rapid queries and so forth. Microsoft Access has a particular feature called Access Projects which ties it very closely with Microsoft SQL Server. What an MS Access Project does is connect you with a specific SQL Server database and allow you to browse all the objects, create forms and reports etc against the objects etc. Unfortunately MS Access Project only works with SQL Server. For other datasources you need to use linked tables and can't make design changes and browse a database as you can with Access Projects.
We had looked at Openoffice Base a while ago and thought they are making progress, but still not quite good enough to put to daily use. When we revisited Open Office Base recently, we were surprised to find a couple of neat nuggets.
In the next couple of sections we'll lay out how to quickly setup OpenOffice, install the native PostgreSQL driver and JDBC PostgreSQL driver and connect to a PostgreSQL database in OpenOffice Base. Please forgive us for using Windows paths in this. We figured it would be easier for people to follow since most users coming to this site are windows users and a lot of Linux users already use OO and paths are too different from Linux/Mac OSX installs.
Continue reading "Using OpenOffice Base 2.3.1 with PostgreSQL"
Posted by Leo Hsu and Regina Obe in beginner, ms access, oobase, product showcase at 07:05 | Comments (15) | Trackback (1)
Saturday, December 15. 2007
PostGIS for geospatial analysis and mappingPrinter Friendly
Recommended Books: PostGIS In Action PostgreSQL 8.4 Official The SQL Language PostgreSQL 8.4 Server Administration
In later issues we'll be covering other PostgreSQL contribs. We would like to start our first issue with introducing, PostGIS, one of our favorite PostgreSQL contribs. PostGIS spatially enables PostgreSQL in an OpenGeospatial Consortium (OGC) compliant way. PostGIS was one reason we started using PostgreSQL way back in 2001 when Refractions released the first version of PostGIS with the objective of providing affordable basic OGC Compliant spatial functionality to rival the very expensive commercial offerings. There is perhaps nothing more powerful in the geospatial world than the succinct expressiveness of SQL married with spatial operators and functions. Together they allow you to manipulate and analyze space with a single sentence. For details on using Postgis and why you would want to, check out the following links
Just as PostgreSQL has grown over the years, so too has PostGIS and the whole FOSS4G ecosystem. PostGIS has benefited from both the FOSS4G and PostgreSQL growths. On the PostgreSQL, improvements such as improved GIST indexing, bitmap indexes etc and on the FOSS4G side dependency projects such as Geos and Proj4, and JTS, as well as more tools and applications being built on top of it.
In 2001 only UMN Mapserver was available to display PostGIS spatial data. As time has passed, UMN Mapserver has grown, and other Mapping software both Commercial and Open Source have come on board that can utilize PostGIS spatial data directly. On the FOSS side there are many, some being UMN Mapserver, GRASS, uDig, QGIS, GDAL/OGR, FeatureServer, GeoServer, SharpMap, ZigGIS for ArcGIS integration, and on the commercial side you have CadCorp SIS, Manifold, MapDotNet, Safe FME Data Interoperability and ETL tools.
In terms of spatial databases, PostGIS is the most capable open source spatial database extender. While MySQL does have some spatial capabilities, its spatial capabilities are extremely limited particularly in the selectivity of the spatial relational functions which are all MBR only, ability to create spatial indexes on non-MyISAM stores, and lack a lot of the OGC compliant functions such as Intersection, Buffering even in its 5.1 product. For details on this check the MySQL 5.1 docs - Spatial Extensions.
When compared with commercial spatial databases, PostGIS has most of the core functions you will see in the commercial databases such as Oracle Spatial, DB2 Spatial Blade, Informix Spatial Blade, has comparable speed, fewer deployment headaches, but lacks some of the advanced add-ons you will find, such as Oracle Spatial network topology model, Raster Support and Geodetic support. Often times the advanced spatial features are add-ons on top of the standard price of the database software.
Some will argue that for example Oracle provides Locator free of charge in their standard and XE versions, Oracle Locator has a limited set of spatial functions. Oracle's Locator is missing most of the core spatial analysis and geometric manipulation functions like centroid, buffering, intersection and spatial aggregate functions; granted it does sport geodetic functionality that PostGIS is currently lacking. To use those non-locator features requires Oracle Spatial and Oracle Enterprise which would cost upwards of $60,000 per processor. Many have heard of SQL Server 2008 coming out and the new spatial features it will sport which will be available in both the express and the full version. One feature that SQL Server 2008 will have that PostGIS currently lacks is Geodetic support (the round world model so to speak). Aside from that SQL Server 2008 has a glarying omission from a current GIS perspective - and that is the ability to transform from one spatial reference system to another directly in the database and is Windows bound so not an option for anyone who needs or is thinking of cross-platform or in a Unix environment. SQL Server 2008 will probably come closest to PostGIS in terms of price / functionality. The express versions of the commercial offerings have many limitations in terms of size of database and usually limited to one processor use. For any reasonably sized deployment in terms of database size, processor utilization, replication, or ISP/Service Provider/Integrator this is not adequate and for any reasonably large deployment that is not receiving manna from heaven, some of the commercial offerings like Oracle Spatial, are not cost-sensible.
Note that in near future versions PostGIS is planning to have geodetic support and does provide basic network topology support via the PgRouting project and there are plans to incorporate network topology as part of PostGIS.
There is a rise in the use of mapping and geospatial analysis in the world and it is moving out of its GIS comfort zone to mingle more with other IT Infrastructure, General Sciences, and Engineering. Mapping and the whole Geospatial industry is not just a tool for GIS specialists anymore. A lot of this rise is driven by the rise of mapping mashups - things like Google Maps, Microsoft Virtual Earth, and Open data initiatives that are introducing new avenues of map sharing and spatial awareness. This new rise is what many refer to as NeoGeography. NeoGeography is still in its infancy; people are just getting over the excitement of seeing dots in their hometown, and are quickly moving into the next level - where more detailed questions are being asked about those dots and dots are no longer sufficient. We want to draw trails such as trail of hurricane destruction, avian bird flu, track our movement with GPS, draw boundaries and measure the densities of these based on some socio-ecological factor and we need to store all that user generated or tool generated information, and have all that transactional goodness, security and ability to query in an easy way that a relational database offers. This is the level where PostGIS and other spatial databases are most useful.
Posted by Leo Hsu and Regina Obe in contrib spotlight, gis, intermediate, mysql, oracle, postgis, sql server at 02:18 | Comments (19) | Trackbacks (0)
Monday, December 10. 2007
Serendipity Blogging SoftwarePrinter Friendly
Recommended Books: Blogging for Dummies Smarty PHP Template Programming And Applications Blogging Heroes - Interview with top 30 bloggers
Choosing Blogging Software
When we started blogging, we had several criteria for the blogging software we would use.
We immediately dismissed wordpress because it was MySQL centric, Blogger etc services were out the door as well. There were not that many blogging applications in .NET and most were very SQL Server centric.
We noticed other PostgreSQL bloggers use predominantly Serendipity, so we thought we'd give it a try.
Serendipity met all our requirements except for the PHP ADODB part. It has a database abstraction layer, but it appears to be a custom one. This we could live with. Below are the features we really liked about it.
Choosing Plugins
There are some plugins enabled by default, but can't remember which ones. For the most part they are the common ones people would choose if they chose them. These get you pretty far at least to use the software before you realize hey there is other stuff you can turn on or off. Below are some of the ones we found as must haves or things that should think about changing.
Serendipity has plugins broken up into event plugins and side bar plugins. Side bar plugins can be drag and dropped between the left right middle areas, which is a nice convenience. Event plugins are triggered based on Serendipity system events such as blog posts or comment posts and some aren't really events so to speak but aren't side bar plugins either so they show under events.
Event Plug-ins
Sidebar Plugins
We haven't played with these too much. The standard default calendar, category, and search were pretty much what we needed starting off. We liked the Wiki Finder and the links to publish to social bookmarking sites as a nice convenience.
We also tried this on a virgin install of PostgreSQL 8.3 Beta 3 and it didn't work. Seems to be some logic in the DB layer of serendipity that uses LIKE instead of = against ids and the fact that PostgreSQL 8.3 has taken out a lot of the default CASTS. I think the serendipity code should be changed in this case since from a cursory glance, doesn't quite look right or efficient, but I'm sure there is a good reason they chose to do things that way.
Posted by Leo Hsu and Regina Obe in adodb, mysql, product showcase, serendipity, smarty, sqlite at 04:58 | Comments (6) | Trackback (1)
Friday, December 07. 2007
Database Abstraction with Updateable ViewsPrinter Friendly
Recommended Books: Beginning PHP and PostgreSQL E-Commerce PostgreSQL Essential Reference
One of the annoying things about PostgreSQL unlike some other databases we have worked with is that simple views are not automatically updateable. There is some work involved to make views updateable. For simple views, this is annoying, but for more complex views it is a benefit to be able to control how things are updated. In a later version of PostgreSQL perhaps 8.4 or 8.5 this will be ratified and PostgreSQL will enjoy the same simplicity of creating simple updateable views currently offered by MySQL and SQL Server and other DBMSs, but still allow for defining how things should be updated for more complex views. For this exercise we are using PostgreSQL 8.2.5, but most of it should work for lower versions with slight modification.
For this exercise, we shall create a fairly complex updateable view to demonstrate how one goes about doing this.
Here is a scenario where being able to control how a view is updated comes in very handy.
We all know relational databases are great because they give you great mobility on how you slice and dice information. At times for data entry purposes, the good old simple flat file is just more user-friendly.
Problem: You are developing an inventory application for a molecular biology lab and they have the following requirements:
They have 2 projects going on. One on Multiple Sclerosis Research (MS) and one on Alzheimer's. Each is funded by different grants and for grant cost allocation purposes, they need to keep track of the supplies they use on each project.
In our system we have 2 tables for simplicity. inventory and inventory_flow. I know we should have a project lookup table or in 8.3 possibly use an ENUM, but to make this short, we are skipping that.
Now look at what happens when we insert and update our view
The slick thing about this is if you were to create a linked table in something like say Microsoft Access and designated item_id as the primary key, then the user could simply open up the table and update as normally and behind the scenes the rules would be working to do the right thing.
Posted by Leo Hsu and Regina Obe in advanced, application development at 02:26 | Comments (0) | Trackbacks (2)
Thursday, December 06. 2007
PostgreSQL 8.3 is just around the CornerPrinter Friendly
PostgreSQL 8.3 is currently in Beta 4 and promises to offer some whoppingly neat features. First before we go over the new features we are excited about in this upcoming release, we'd like to briefly cover what was added in past releases.
The big 8.0 Highlights
8.1 Highlights
8.2 Highlights
8.3 upcoming Highlights
8.3 has numerous highlights just as previous versions, but we shall focus on our favorite ones.
Posted by Leo Hsu and Regina Obe in mysql, new in postgresql, sql server at 00:00 | Comment (1) | Trackbacks (0)
Wednesday, December 05. 2007
How does CLUSTER ON improve index performancePrinter Friendly
CLUSTER Basics
One of the features in PostgreSQL designed to enhance index performance is the use of a clustered index. For people coming from MS SQL Server shops, this may look familiar to you and actually serves the same purpose, but is implemented differently and this implementation distinction is very important to understand and be aware of. In PostgreSQL 8.3 the preferred syntax of how you cluster has changed. For details check out 8.3 CLUSTER 8.2 CLUSTER 8.0 CLUSTER. A lot of what I'm going to say is somewhat of a regurgitation of the docs, but in slightly different words.
First in short - clustering on an index forces the physical ordering of the data to be the same as the index order of the index chosen. Since you can have only one physical order of a table, you can have only one clustered index per table and should carefully pick which index you will use to cluster on or if you even want to cluster. Unlike Microsoft SQL Server, clustering on an index in PostgreSQL does not maintain that order. You have to reapply the CLUSTER process to maintain the order. Clustering helps by reducing page seeks. Once an index search is done and found, pulling out the data on the same page is vastly faster since once you find the start point all successive data nearby is easy picking.
As a corrollary to the above, it doesn't help too much for non-range queries. E.g. if you have dummy ids for records and you are just doing single record select queries, clustering is fairly useless to you. It is only really useful if you are doing range queries like between date ranges or spatial ranges or queries where the neighboring data to an index match is likely to be pulled. For example if you have an order items table, then clustering on a compound index such as order_id,order_item_id may prove useful since neighboring data is something you likely want to pull for range and summations.
Now lets see how we create a clustered index and then talk about the pros and gotchas
Once a clustered index is created to force a recluster, you simply do this
To force a cluster on all tables that have clustered indexes, you do this
What is FillFactor and how does it affect clustering?
Again those coming from Microsoft SQL Server will recognize FILLFACTOR syntax. IBM Informix also has a FILLFACTOR syntax that serves the same purpose as the SQL Server and PostgreSQL ones. For more details here PostgreSQL docs: Create Index. FillFactor basically creates page gaps in an index page. So a Fill Factor of 80 means leave 20% of an index page empty for updates and inserts to the index so minimal reshuffering of existing data needs to happen as new records are added or indexed fields are updated in the system. This is incorporated into the index creation statement.
After an index is created on a table, this information is then used in several scenarios
Why should you care?
First for fairly static tables such as large lookup tables, that rarely change or when they change are bulk changes, there is little point in leaving blank space in pages. It takes up disk space and causes Postgres to scan thru useless air. In these cases - you basically want to set your FillFactor high to like 99.
Then there are issues of how data is inserted, if you have only one index and new data usually resides at the end of the index and the indexed field are rarely updated, again having a low fill factor is probably not terribly useful even if the data is updated often. You'll never be using that free space so why have it.
For fairly updated data that changes such that you are randomly adding 10% new data per week or so in middle of page, then a fill factor of say 90 is the general rule of thumb.
Cluster approach benefits and Gotchas
The approach PostgreSQL has taken to cluster means that unlike the SQL Server approach, there is no additional penalty during transactions of having a clustered index. It is simply used to physically order the data and all new data goes to the end of the table. In the SQL Server approach all non-clustered indexes are keyed by the clustered index, which means any change to a clustered field requires rebuilding of the index records for the other indexes and also any insert or update may require some amount of physical shuffling. There are also other consequences with how the planner uses this information that are too detailed to get into.
The Bad and the Ugly
The bad is that since there is no additional overhead aside from the usual index key creation during table inserts and updates, you need to schedule reclustering to maintain your fine order and the clustering causes a table lock. The annoying locking hopefully will be improved in later versions. Scheduling a cluster can be done with a Cron Job or the more OS agnostic PgAgent approach. In another issue, we'll cover how to use PgAgent for backup and other scheduling maintenance tasks such as this.
Posted by Leo Hsu and Regina Obe in basics, intermediate, sql server at 04:55 | Comments (3) | Trackbacks (0)
How to create an index based on a functionPrinter Friendly
It is often handy to create indexes that are based on calculations of a function. One reason is that instead of storing the calculated value in the table along with the actual value, you save a bit on table scan speed since your row is thinner and also saves some disk space. It helps search speed if its a common function search.
Case in point, PostgreSQL is case sensitive so in order to do a simple search you will often resort to using upper or ILIKE. In those cases its useful to have an index on upper or lower cased text. Here is an example.
Here is another example taken from PostGIS land. Often times you provide your data in various transformation, but for space savings and row seek reasons, you want to only transform your data to the less used projections as needed. One way to do this is to create functional indexes on the commonly used transformations and create views or just write raw SQL that uses these alternative transformations.
So now when I do a select like this that lists all buildings within 100 meters of my NAD 83 MA Meter State Plane point of interest:
it will use indexes
Posted by Leo Hsu and Regina Obe in intermediate, q&a at 03:34 | Comments (0) | Trackbacks (0)
Friday, November 30. 2007
Language Architecture in PostgreSQLPrinter Friendly
Perhaps one of the most unique and exciting things that makes PostgreSQL stand out from other database systems, are the numerous choices of languages one can use to create database functions, triggers and define new aggregate functions with. Not only can you use various languages to write your database stored functions with, but often times the code you write lives right in the database. You have no idea how cool this is until you see it in action.
The other interesting thing about the PostgreSQL language architecture is the relative ease with which new languages can be incorporated in the system.
Native Languages of PostgreSQL
There are 3 languages that come packaged with PostgreSQL (2 non-PL ones are installed automatically and not even listed as languages (C and SQL) in the languages section of a db). The defacto PL/PgSQL procedural language is available for install in all PostgreSQL distributions, but need not be installed in a db by default .
The PL languages
Aside from PL/pgSQL there are numerous other procedural languages that one can use to create database stored functions and triggers. Some of these languages are fairly stable and even more are experimental. Some are only supported on Unix/Linux, but many are supported on Unix/Linux/MacOS/windows. In any case there are 3 key components needed before you can start using a new language:
Registering a language in a Database
For pl/pgsql items 1 and 2 are already done if you have a working PostgreSQL install. In order to accomplish item 3, you may need to do the following from psql or PgAdmin III query window.
Alternatively you can run createlang plpgsql somedb from commandline. Note createlang is a command line program that is located in the bin folder of your PostgreSQL install.
To see a list of procedural languages that you already have call handlers registered for in PostgreSQL. These are the languages you can register in your specific database - do a
SELECT * FROM pg_catalog.pg_pltemplate
A Flavor of the Procedural Languages (PLs)
In this section, we'll show a brief sampling of what functions look like written in various PLs. These are not to suggest they are the only ones that exist. For these examples, I'm going to use the $ quoting syntax introduced in PostgreSQL 8.0 which allows for not having to escape out single quotes.
SQL - the not PL language
For basic CRUD stuff,selects and simple functions, nothing hits the spot like just plain old SQL. Since this is such a common choice and often the best choice - here are 3 examples.
For details on using out parameters, check out Robert Treat's out parameter sql & plpgsql examples
PLPGSQL - a real PL Language
For more complex logic and massaging of results before sending back. You need something more powerful than standard SQL. Below are some examples using PLPGSQL.
Using PL/Perl
Using PL/R a language and environment for statistics
One of my favorite PL languages to program is PL/R. The reason for this is that the R statistical environment is such a rich environment for doing statistical processing. It now is also supported on windows as well as Mac and Linux.
To learn more about R and installing PL/R. Check out our Boston GIS article PLR Part 1: Up and Running with PL/R (PLR) in PostgreSQL: An almost Idiot's Guide
Below is the classic median aggregate function in R. It uses the native median function in the R environment to create a PostgreSQL aggregate median function
We will be covering PLR in greater detail in another article.
Posted by Leo Hsu and Regina Obe in intermediate, pl programming, plpgsql, PLR, sql functions at 00:00 | Comments (4) | Trackbacks (3)
Friday, November 23. 2007
The Anatomy of a PostgreSQL - Part 1Printer Friendly
In the next couple of sections we will outline the various things one will find in a PostgreSQL database. Many of these exist in other DBMS systems, but some of these are quite unique to PostgreSQL.
Exploring PostgreSQL with PgAdmin III
PgAdmin III is the Administrative console that comes packaged with PostgreSQL. It works equally well on most OSes - Linux, Unix, Windows, MacOS and any OS supported by WsWidgets. It is an extremely nice and capable management tool. PostgreSQL server comes packaged with this, but if you want to install this on a computer that doesn't have PostgreSQL server installed or you want the bleeding edge version or latest version, I suggest downloading from PgAdmin Site: http://www.pgadmin.org/download/. We will be exploring PostgreSQL with the newest stable releaseof PgAdmin III - 1.8.
When you first launch PgAdmin III and register your postgres server, you may be amazed at the number of things shown. In fact what is shown may not be all the objects that exist in PostgreSQL. PgAdmin III 1.8 and above hides a lot of things by default. For this exercise we will turn these settings on so we can see these objects and explore them.
To do so do the following
The Anatomy Lesson Begins
When you expand the Server tree, you will be first confronted with 4 groups of objects. As outlined below:
In the next couple of sections, we will explore these areas a little deeper.
The first thing you will notice is that there are 3 system databases (databases you did not create) and they are postgres, template0, template1. These are outlined below
Question: Why the heck are their 2 template databases?
template1 is the default template used for new databases. Most people will use template1 as a template for their databases or create more derivative templates. template0 is basically a pristine template unadulterated by any thing except the core postgres stuff. In fact you can not change template0, but you can change template1.
Tablespaces as I mentioned, represent physical locations on disk where things reside. There are 2 tablespaces installed by default:
If you look at the location property of these 2 tablespaces, you will see nothing there. That is because these are always stored in the same location as where you initialized your PostgreSQL database cluster. Tablespaces that are user created on the other hand, can be stored anywhere on any disk and these you will see location information for.
In general there is rarely a reason to create new tablespaces and such unless you are creating a system with massive numbers of users, databases, and intensive queries. Tablespaces gives you the flexibility to leverage OS space in interesting ways - e.g. fast disks for commonly used tables, ability to have multiple disks in different RAID configurations for maximum seek performance, recoverability, or stability etc. Finding Optimum tables placement in 2 tablespace situation by Hubert Lubaczewski is particularly interesting. Also check out Robert Treat's tablespace configuration variable tweaking tips.
There are a couple of facts I would like to close with on the topic of tablespaces.
Group Roles and Login Roles
Prior to PostgreSQL 8.1, there existed Users and Groups, in 8.1 these were deprecated and replaced with Roles in order to be more ANSI compliant. This is actually a simplification of the security model. For more details check out the Chapter 18. Database Roles and Privileges.
I'll summarize a few key facts about Group Roles and Login Roles
Coming Next Database Objects
In the next issue of this journal, we will go over database objects. In fact there are tons of these. I will leave you with a snapshot to wet your appetite.
Posted by Leo Hsu and Regina Obe in basics, beginner, pgadmin at 00:00 | Comments (2) | Trackbacks (0)
« previous page (Page 24 of 25, totaling 363 entries) » next page
Blog Administration


text:
Need a quote?
Save time and we'll contact 5 reputable Garment fabrics companies for you
Click here!
Titex House , Unit 8 Common Bank Industrial Estate, Ackhurst Road, Chorley, Lancashire, PR7 1NH , United Kingdom
Talon Textiles Ltd stock an extensive and varied range of fabrics of various types and qualities. We are a sole distributor for the Titex range of coated fabrics as well as our own range of breathable fabrics. We provide fabrics to meet all your sepcific needs.
Bee Hive Industrial Estate, Crescent Rd, Lostock, Bolton, Lancashire, BL6 4BU, United Kingdom
The name Carrington Fabrics has long been associated with high quality textiles since it's formation in 1970, from this rich heritage the Carrington Fabrics brand has evolved.
Crescent Rd, Lostock, Bolton, Lancashire, BL6 4BU, United Kingdom
The UK's premier brand and wholesaler of exquisite fashion and bridal fabrics.
42 London Street, Leicester, Leicestershire, LE5 3RU, United Kingdom
Manufacturers of quality elastics – Importers of Lace & Trimmings / Accessories for the fashion garment trade and manufacturers.
23 Cooneen Road, Fivemiletown, BT75 0NE, United Kingdom
largest and most diversified garment manufacturers in Europe
52 Lord Street, Manchester, Greater Manchester, m3 1hn, United Kingdom
Quality fabrics to the workwear trade

subset: commoncrawl


text:
American Expat living in Istanbul - working, exploring, and eating all the mezes she can get her hands on.
A take on a traditional Turkish restaurant in a simultaneously grungy and elegant neighborhood (Karaköy) near the Istanbul Modern Museum. Reportedly Orhan Pamuk's favorite restaurant.
Directly next door to Karaköy Lokantası and some of the most sophisticated modern Turkish cooking I've tried in the city. That said, for a New Yorker, this almost might feel too familiar for a short trip...
Deli-style Turkish classics and one of the best brunches in the city. The line usually moves pretty fast, but get there early if possible.
Everything you want in a coffee shop – laid-back vibe, great espresso, no rush – in the middle of Karakoy.
A high-end version of the Turkish meyhane in Galatasaray where you can get interesting mezes and main dishes. The design of the restaurant is swanky, and it becomes quite a scene on the weekend.
A traditional meyhane in Tunel, where the standard meal is mezes, then fish, all washed down with raki (like Greek ouzo, but don't tell them that).
A "home cooking" restaurant, the size of a shoebox in Tunel. You point at the things you want from a case (and as many as you want), they heat up the plate and bring it to your seat. No alcohol served there and typically a quick meal, but we hear from Turks the food is just like Mom's (incidentally, "Mom" is "Anne" in Turkish).
In Pera, across from the Pera Palace hotel. Interesting mezes in a small, boisterous room. They are known for their banana / chili / nut / cream / honey dessert. I am simultaneously hungry and disgusted with myself just thinking about it.
The café of a cooking school in Istanbul, this restaurant features Turkish and international food in a casual but modern room. In Pera, near the Pera Palace Hotel, where Agatha Christie reportedly wrote Murder on the Orient Express.
Few of my favorite restaurants have a view, so I often recommend to visitors that they go for a drink before (or after) dinner at a rooftop bar nearby, where the views are sensational, but the food is expensive, and typically not as good as those recommended. Here are a few options for rooftop swilling:
Note there are two of these restaurant / bars - I think the one on Kumbaraci has a better space.
Delicatessen has continental cuisine and a laid-back atmosphere for breakfast, lunch, drinks or dinner.
There are lots of these around the city, including 2 in Nişantaşı alone, but I like the one on Atiye Sokak, a pedestrian-only street, because of the atmosphere and spacious back garden.
Sur is probably our favorite fish restaurant in Istanbul, even though it can attract some tourists (they are sent by the Four Seasons, which is nearby). It's a traditional spot, in a lovely renovated townhouse in Arnavutkoy, a charming restaurant on the Bosphorus, north of the first bridge. There is another location in Sultanahmet (near the major sites), though if you're in that neighborhood the fish restaurant locals will tell you to go to is Balik Sabahattin. If you go up to Sur in Arnavutkoy for dinner, it's worth stopping in Bebek nearby and having a drink at Lucca. It's technically an international restaurant, but it's really the epicenter of Turkish business / yuppie networking, fueled by satsuma cocktails.
In Kuruçesme, a perfect brunch or drinks spot on the water, and behind a grocery store, oddly enough. The dinner food is not worth it.
In Bebek, a 4th-floor restaurant with a white-painted floors, shabby chic-meets Scandinavian decor, and casual café food. Nice view and much more local than tourist.
This sushi restaurant has other locations, including in London and Miami. The branch in Istanbul is in an ideal location on the water in Ortaköy, on the way up the Bosphorus. It's very pricy but probably the best sushi in Istanbul. Afterward you could stop at the Istanbul Jazz Center next door: http://www.istanbuljazz.com/eng/.
For the best tattoo parlors in Istanbul, check out the spots below, in both Europe and Asia. Foursquare list with map available here. See-Also : What are the best tattoo parlors in Istanbul? | Part 2 ... read more
by Emily Von Kohorn | Viewed 30440 times.
Eurasia Marathon is the one you are asking for. It is organized every 3rd Sunday of Octobers. It has both half and full marathon format if I'm not wrong. I did the 8km fun run once crossing ... read more
by Emily Von Kohorn | Viewed 4701 times.
Cihangir Yoga in Fındıklı hosts an English speaking yoga community but you may find English speaking staff or yogis in some other quality yoga studios as well. Some of those are Yogasala in Nisantasi and Planet Health Club ... read more
by Emily Von Kohorn | Viewed 9800 times.
Turkce bilmiyorum [turk-che bill-me-your-um] means I don't know Turkish or Turkce konusmuyorum [turk-che co-noosh-moo-your-um] I don't speak Turkish See this post for the Turkish language basics. ... read more
by Emily Von Kohorn | Viewed 68 times.
Everyone will tell you this isn't close to enough time to explore one of the most storied cities in the world. And they're right. But you might as well try. One of the keys to understanding ... read more
by Emily Von Kohorn | Viewed 6555 times.
First of all, well done. Four days in Istanbul is a good amount of time to get to know the city and perhaps still have time for ogling Cappadocia's moonscape or walking the marble streets of ... read more
by Emily Von Kohorn | Viewed 87866 times.


text:
Werder Bremen got the better of VfL Wolfsburg in a five-goal thriller on Saturday afternoon, notching up a vital 3-2 win.
Claudio Pizarro scored a landmark goal to open the scoring for Bremen, but they were quickly pegged back by Joshua Guilavogui's strike.
Fin Bartels and Sambou Yatabaré then pushed the hosts into a 3-1 lead, meaning Bas Dost's late reply remained a consolation.
Level at the break
There were excellent chances for both sides to open the scoring within the first 20 minutes. Dost thought he had given his side the lead after spectacularly converting Maxi Arnold's cross from deep, though his effort was correctly ruled out for offside. Florian Grillitsch managed to break the offisde trap at the other end, only to see Diego Benaglio deny him with a smart save.
Bremen kicked on from there and had two great opportunities to get on the scoresheet, only to pass up both. Bartels collected Yatabaré's cross before cutting inside, only to see his effort rattle the post. The rebound fell to Pizarro, but he blazed over. The Peruvian was only one goal away from becoming the hosts' all-time leading goalscorer, surpassing Marco Bode's record. It was no surprise, then, that he stepped up to the spot when Zlatko Junuzovic was brought down; he duly dispatched to move to 102 club goals.
The Wolves didn't have to wait long until they were back on level terms, as Guilavogui netted from close range. Vieirinha's header was flicked towards the back post by Dost, who was looking lively on his return from injury. The French midfielder was able to run in, unmarked, and crash home. The Werder defence immediately turned to each other, questioning who was meant to be picking up Guilavogui.
Werder steal an invaluable win
Late first half pressure didn't prevail, but that didn't stop the hosts from coming forward again and Clemens Fritz had a header easily held by Benaglio after the restart. Before that, though, there was an incident on the sidelines. Klaus Allofs was sent to the stands after a confrontation with the fourth official. Allofs knew he had made a mistake, and went peacefully as a result.
The hosts continued to pile forward and eventually got their second goal. Bartels, who had come close on two occasions in the first half, exchanged passes with Junuzovic and collected the return ball behind the Wolfsburg defence. The centre-backs had pushed up too far, and the midfielder was able to coolly slot past the oncoming Benaglio.
Wolfsburg's response was limited, though Naldo's free-kick brought a top stop from Felix Wiedwald. Bremen then went further ahead with a fantastic team goal. Bartels and Junuzovic played some delightful one-touch football to get round the Wolves' defenders, before the latter slid across goal for Yatabaré to tap in on the line.
Dost finally got his goal in the dying minutes, connecting with a Ricardo Rodriguez cross to nod past Wiedwald. The damage had been done, however, and Werder kept pace with the teams above them. The Northerners occupy the relegation play-off spot, while Wolfsburg's challenge for a European spot looks dead in the water.


text:
This guy I started dating is really sweet and nice and he had a crush on me so I decided to give him a shot even though I don't really know him. When we started texting he already started talking about kissing me and how he loves me and coming over to my house it started to creep me out and I kept saying I would prefer to take things slow because we don't really know each other. He told me his story and it was really sad and I felt so bad for him it is terrible what has happened in his family and now he keeps on saying how much he loves me and that he doesn't want me to leave him and he is saying it over and over and over again and I'm really creeped out and scared. Is this bad should? I break it off?
I dont know what to do with my boy friend?
Have an opinion?
What Guys Said 0
Be the first guy to share an opinion
and earn 1 more Xper point!
What Girls Said 1
By what you are saying, even though I am not an expert break it off... No matter the story. Just say that you are kind of creeped out or even get the message across by maybe leaving your phone talking to your friend like "I am sort of creeped out" For him to see and he will see? Hope I helped!00|00|0
Click "Show More" for your mentions
Most Helpful Opinion(mho) Rate.
Learn more
Learn more
Select as Most Helpful Opinion?
You cannot undo this action. The opinion owner is going to be notified and earn 7 XPER points.


text:
Last week I established that I am, on occasion, a liar.
Unfortunately, I am also a hypocrite. My current long distance relationship with benefits (as Johnny Id has characterized it) is open, which we both agreed to. But I am learning that theory is much different from practice.
Johnny's marriage with his wife was actually open, whereas mine was fully don't-ask-don't-tell-and-nothing-had-better-change. Although in hindsight I recognize my husband may have been with others, at the time, I faced no jealousy or possessiveness because nothing was obvious to me, or even suspected.
Here's the thing; I love the idea of an open relationship / marriage. I worry I will not ever be satisfied by one man – given my sex drive and predilection to become bored. I am intrigued by being with one dedicated and committed partner, and together we find others to play with. It would allow me to explore my desires to be with multiple men at the same time, and potentially a woman as well. Now, my current situation isn't about sharing partners, but it made sense to me when Johnny said he didn't care who had my body once in a while, since he knew he had my mind (he has my heart too, even if he doesn't know it).
If anything, my current experience of dating multiple people at the same time, especially after having met Johnny, proves to me that my heart is capable of affection and desire for many. The intense feelings for Johnny have not pushed out the feelings for others – for example, my being with NIM (as I have a couple of times in the last several weeks) does not change how I feel for Johnny at all.
He completely understands this. Love is not zero sum, it is additive.
We had talked last week about not seeking out new partners prior to seeing each other in August. For me, that means there are a few guys who I may see every once in a while. They include NIM, Sochi the crazy Russian, and Jason. None of them are real potentials for relationships, they can barely make time to see me, and Johnny knows that. All of my dating profiles are currently down (so yeah, no new opening line fails coming to this blog for the next little while). All existing dudes are "grandfathered" in, and no new applicants are being accepted.
Johnny told me what mattered to him most of all was that I be honest with him. That alone has been tough, because it feels so strange to tell him "oh hey babe, by the way I'm seeing NIM tonight". He's promised me time and time again that it won't change how he feels about me, so last week I committed to him that I would tell him all the dude-related stuff.
However, Johnny didn't have anyone he was already seeing.
Imbalanced? Yes, absolutely… in my favor. He has reminded me on multiple occasions that openness goes both ways. Intellectually, I know this. But yet, I have been tested and found wanting.
Johnny and I were texting last night. He mentioned he'd heard from a woman he met online and asked if I minded if he went out with her. Mainly because he was bored.
Did I mind? FUCK YES.
I hadn't really been tested until the moment he asked me that question. For all of his reassurances, and as much as I trust him, I instantly that awful feeling in the pit of my stomach.
Jealousy, anxiety, possessiveness.
Anger. We'd just had a text exchange about how fantastic we thought each other were. I thought "what the fuck are you trying to do…warm me up with compliments then – bam! – tell me about another woman?"
All this at the sheer notion of him going on a date – what if he liked her? God, what if he fucked her? The thoughts started swirling around in my head and all of these very powerful emotions came to the surface – of abandonment, fear, and rejection.
He says nothing will change between us, even if something did happen with her. That there is no potential with anyone he might see. Why can't I believe him? Why can't I know in my heart this is true? If I reverse the roles I believe it – as far as I know. Yet with each lover, I give a little piece of me. But I don't seem to run out of pieces. Why can't I trust?
Perhaps it has to do with a history of abandonment, of heartache. Of infidelity in key relationships – between my parents, my high school sweetheart, my second high school sweetheart. My heart broken by my husband. Men who do not say what they mean and mean what they say. Who use lines like "it won't affect us, baby" as a ploy to get what they want. This is my history. The anxiety and possessiveness come from such a deep place within me.
He says he will prove to me he won't hurt me.
I so want to believe. But I am so scared. I end up bawling on my couch, phone in hand, unable to respond to his text for several minutes until I compose myself. I'm not crying out of anger, out of hurt for him wanting some in-person companionship, but from other hurts, long ago.
This is the leap of faith I must take if I'm going to learn and grow. I may discover I can't do this – can't share a love – but I do need to try.


text:
New Railroad Tankers Will Create New Jobs
The Burlington Northern Santa Fe (BNSF) Railroad announced in mid-February 2014 that it will move to acquire 5,000 new, enhanced rail tankers for transporting crude oil. Contradicting some of the more tenuous claims from anti-fracking zealots, the move demonstrates that companies involved with the oil and gas industry are potentially more concerned about public safety than even the U.S. government is. Why? Because BNSF's announcement comes along with the indication that the freight rail company does not wish to wait for the U.S. Department of Transportation to finish up with approvals on pending regulations on new and safer rail cars. Construction of the new railroad tankers will create new jobs once BNSF receives bids from rail car manufacturers to complete the project. The new rail tankers will feature thicker walls, better safety valves, improved relief valves, and additional safety features that exceed those implemented in rail tankers as recently as 2011. BNSF announced that it will actually own the new tanker cars, making the announcement unusual in that railroad freight companies generally lease the cars they use, while owning the locomotives and actual rail lines. While BNSF did not name specific rail car manufacturers that it expects to carry out the work, the major manufacturers of rail cars in the U.S. include Trinity Industries, American Railcar Industries, and Greenbrier Companies. In 2013, crude oil shipments by rail increased over 70% compared to shipments that took place in 2012. It is expected that this incredible growth in crude oil shipments will only continue as oil extraction continues its phenomenal growth throughout the United States. BNSF is the largest rail shipper of crude oil from the Bakken region in North Dakota. The crude that is recovered in the Bakken region is considered to be a more flammable type of crude compared to the heavier types of crude like that recovered in Canada's oil sands regions. Bakken crude tends to be lighter than other types of crude, and contains propane and butane making it more hazardous to transport. Such volatility prompted the BNSF announcement, combined with recent tanker car derailments and explosions, the most recent one occurring in December of 2013. BNSF's concerns about public safety are certainly welcome, of course, but these same concerns should give a new boost to the arguments for moving forward with Keystone XL pipeline expansion. As crude extraction in the Bakken (and other shale plays) continues to grow, the need for transporting it safely increases as well. Let's hope politicians in both the U.S. and Canada embrace the calls for new pipeline construction along with new railcar manufacturing. Find a job in the Bakken region by checking out the Montana Fracking Jobs and North Dakota Fracking Jobs...Read More »


text:
July 26
Psalms 47-49
Book #2: 42-72
Psalm 47
This Psalm anticipates and celebrates the reign of Christ during the Millennium.
Psalm 47:1-4-The clapping of hands is a way to show that we recognize and honor God. God is in control of all the earth and He chooses whom He will bless and honor.
Psalm 47:5-9-To Christians and Jews, who are both monotheistic (believe that is only one God)…this Psalm is beautiful and inspiring…but we miss much of its intent. During the lifetime of this psalmist, virtually all other nations were polytheistic (believing that there were many gods). Sometimes a nation would worship a single god or several gods, but they believed that other nations had gods of their own. In times of war…a victory identified which nation worshipped the most powerful god. Here, the Psalmist is saying that the God of the Jews was supreme. He wasn't agreeing that there were other gods…but was making the statement that the God of the Jews was sovereign and ruled over all of creation.
Psalm 48
Psalm 48:1-3-God is to be praised in Jerusalem. It is variously referred to here as "the city of our God", "His holy mountain", "Mount Zion", and "The city of the great King". In the religious teachings of the heathen (non-Jews) it was taught that their gods lived "in the far north". So here, the author is using a term that they would recognize as the dwelling place of God and saying that it is the Jewish God Who lives there.
Psalm 48:4-10-All the kings of the earth recognize the power of the King of Jerusalem. His fame extends to the very ends of the earth.
Psalm 48:11-14-The beauty of Jerusalem is a testament to God's rule.
Psalm 49
Psalm 49:1-4-The author tells the people to listen closely because he is about to impart wisdom to them.
This psalm is a sermon, and so is the next. In most of the psalms we have the penman praying or praising; in these we have him preaching; and it is our duty, in singing psalms, to teach and admonish ourselves and one another. The scope and design of this discourse is to convince the men of this world of their sin and folly in setting their hearts upon the things of this world, and so to persuade them to seek the things of a better world; as also to comfort the people of God, in reference to their own troubles and the grief that arises from the prosperity of the wicked.
Matthew Henry :: Commentary on Psalms 49, https://www.blueletterbible.org/Comm/mhc/Psa/Psa_049.cfm?a=527005
Psalm 49:5-20-The psalmist poses a question. Why should he (the righteous man) be afraid "in days of adversity" (meaning when he is old)…when "the iniquity of my foes surround me" (the harmful attitudes of his enemies surround him)? In the end, when they die, they are no better off than he is because though they are rich they cannot buy their way out of judgment (:8-9). This is not only true of the rich but it is also true of the wise and the stupid (:10). People look at this world and all they possess and they tend to think that this is all that there is (:11). They forget that the things of this world will come to an end (:12). This is the way that foolish people think (:13). Their desire for worldly possessions leads them to death and Hell like sheep being led by a shepherd (:14a). Eventually, the tables will be turned and the righteous man will be in charge (:14b). The Psalmist is confident that God will redeem him from death (:15). So, don't envy those who have riches now because those riches cannot redeem them (:16-17). He may trust in his riches during this life and take pleasure in the good things that others say about him. But ultimately, he will die and those riches will do him no good. In that sense, he is no better off than an animal (:20).
Prayer: God, You alone are God…and there is no other. Everything that exists is the result of Your creation. Help me to always give You praise that is worthy of You and that expresses the glory due to Your nature.


text:
This position is under the administrative direction of the Mayor. The employee is responsible for administration and supervision of the code enforcement compliance programs relative to the construction, alteration and repair of buildings and enforcement of current zoning regulations. Work includes supervision of code inspection activities, review of subdivision and other development plans and providing appropriate recommendations to the Smyrna Planning Commission. The employee performs inspections of subdivisions and other development work, coordinates performance bonds and/or letters of credit and prepares the Smyrna Planning Commission agenda. The employee performs various engineering tasks including surveying and traffic control. Instructions to the employee are general and the employee must routinely use independent judgement when performing tasks.
The employee will operate a computer, fax machine, copier and other modern office equipment.
The employee will operate an automobile with radio transmitting and receiving capabilities for constant communication access.
The employee typically works indoors in an office environment and may be exposed to tobacco smoke, however sometimes work is performed outdoors regardless of the weather.
The employee may be required to lift heavy objects weighing more than 25 pounds.
The employee's work may expose him/her to high places, dangerous machinery and its moving parts, sharp tools, fumes, chemicals and/or toxic substances.
Plans, designs, makes cost estimates and supervises construction and maintenance of street lighting, traffic signals, asphalt paving, pavement marking and other projects and/or activities.
Prepares and obtains right-of-way easements and/or acquisitions.
Reviews subdivision and other development plans, prepares comments and recommendations to the Smyrna Planning Commission.
Inspects subdivision and other developments and approves or disapproves the acceptance of roads, utilities and other facilities by the town.
Performs tests on all water and sewer lines to accepted by the city and assures quality of materials and construction.
Submits plans, permit applications and other documentation to the State Department of Transportation, the State Health Department and the Corp. of Engineers when required.
Administers and supervises underground storage tank compliance.
Represents the Town of Smyrna on the Regional Transportation Authority.
Coordinates performance bonds and/or letters of credit by developers held by the city to assure proper completion of developments.
Prepares legal descriptions, files plats, researches deeds and other land records.
Administration and supervision of the code enforcement compliance programs relative to the construction, alteration and repair of buildings and enforcement of current zoning regulations.
Prepares Smyrna Planning Commission agenda.
Approves plans, specifications and final completion of city construction contracts, such as sewer rehabilitation and expansion, water and gas system expansion.
Investigates and responds to stormwater drainage complaints.
Performs other related duties and special projects as assigned.
Knowledge of modern management and office administration practices and techniques.
Knowledge of the principles and practices of construction and maintenance supervision.
Knowledge of Southern Building Code Congress residential and commercial building codes and accepted construction principles and practices.
Knowledge of local zoning and subdivision rules and regulations.
Knowledge of the principles and practices of inspection of roads, utilities and other facilities in land development.
Knowledge of the occupational hazards of work to be accomplished and supervised and the necessary safety precautions needed.
Knowledge of laws and regulations regarding employee health, safety and employment practices.
Knowledge of state and federal laws governing traffic control, water and sewer extensions and stream maintenance.
Knowledge of principles and practices of civil engineering, particularly as applied to municipal utility and public works.
Ability to plan, organize, assign, supervise and inspect the work of subordinates.
Ability to maintain inventory control and administer appropriate purchasing policies and procedures.
Ability to implement innovative methods to provide more efficient and effective operations.
Ability to keep routine operational and personnel records and make reports.
Ability to express ideas and information clearly, concisely and effectively in writing and orally.
Ability to assist in the development of sound plans for the future development of public utilities systems and other public facilities in relation to community needs.
Ability to establish and maintain an effective relationship with the public and other employees.
Graduation from a four year college or university majoring in the field of civil engineering or civil engineering technology.
At least 5 years experience in the field of civil engineering and construction inspection in a supervisory capacity.


text:
Clothes On And Off The Stage
first edition
1928 · New York
by CHALMERS, Helena
New York: Appleton & Co, 1928. Very Good. First edition. Very good Clean aging text with illustrations in clean gold stamped cloth covers and light wear on corners and sunning spine. Please Note: This book has been transferred to Between the Covers from another database and might not be described to our usual standards. Please inquire for more detailed condition information. (Inventory #: 206642)


text:
Kevin Marks
Keith Teare
john borthwick
Gillmor Gang LIVE 11.18.16
Posted by Steve Gillmor (@stevegillmor)
Next Story
Pokémon Sun and Moon break 3DS records with 10M units shipped globally
This is a LIVE recording session of The Gillmor Gang – today with: Frank Radice, John Borthwick, Kevin Marks, Keith Teare, and Steve Gillmor. Today's LIVE recording starts at 10:00am PT.
Our live chat stream during the show broadcast
Gillmor Gang's Facebook page HERE
G3's Facebook page HERE
Frank Radice
- Bio Frank Radice is the Managing Partner of Vida F.R. Company in New York, and BadCatCo. Promotion, marketing, media, and production consulting in London. Radice serves as Expert-in-Residence at the global marketing agency, Definition 6/TheNewsMarket, where he advises leadership and clients on strategy and issues pertinent to the evolution and transformation of the broadcasting, cable, and digital industries. He …
- Full profile for Frank Radice
John Borthwick
- Bio John Borthwick is CEO and co-founder of betaworks. Betaworks is an internet studio that builds and invests in companies across the social, data-driven media internet. Companies that betaworks has built include Giphy, Dots, bitly and Chartbeat, betaworks acquired and re-launched Digg and Instapaper. Betaworks investments include: kickstarter, tumblr (acquired by Yahoo), Summize (acquired by Twitter …
- Full profile for John Borthwick
Keith Teare
- Bio Keith Teare is a Founder and Executive Chairman at Accelerated Digital Ventures Ltd - A UK based global investment company focused on startups at all stages. He was previously founder at the Palo Alto incubator, Archimedes Labs. Archimedes was the original incubator for TechCrunch and since 2011 has invested, accelerated or incubated many Silicon valley startups including Quixey; M.dot (sold to GoDaddy); …
- Full profile for Keith Teare
Kevin Marks
- Bio Kevin Marks is a software engineer. Kevin served as an evangelist for [OpenSocial](http://www.crunchbase.com/product/opensocial) and as a software engineer at [Google](http://www.crunchbase.com/organization/google). In June 2009 [he announced](http://epeus.blogspot.com/2009/06/farewell-to-google.html) his resignation. From September 2003 to January 2007 he was Principal Engineer at [Technorati](http://www.crunchbase.com/organization/technorati) …
- Full profile for Kevin Marks
Steve Gillmor
- Bio Steve Gillmor is a technology commentator, editor, and producer in the enterprise technology space. He is Head of Technical Media Strategy at salesforce.com and a TechCrunch contributing editor. Gillmor previously worked with leading musical artists including Paul Butterfield, David Sanborn, and members of The Band after an early career as a record producer and filmmaker with Columbia Records' Firesign …
- Full profile for Steve Gillmor
Gillmor Gang
- Founded 2007
- Overview Gillmor Gang is a podcast about what's hot in technology and social media.
- Location San Francisco, California
- Categories Podcast, Social Media, News, Information Technology
- Founders Steve Gillmor
- Website http://gillmorgang.techcrunch.com
- Full profile for Gillmor Gang


text:
- Explore Programs
- Get Started
- Academic Support
- Campus Life
- About SVC
A day that is set aside fall, winter and spring quarters for the campus clubs of Skagit Valley College to inform students about the opportunities, goals and activities of each club.
Clubs are encouraged to talk to as many students as possible that day. They are also encouraged to be as creative as possible to attract students to their tables. Clubs are a great way to meet fellow students and get involved on campus.
A detailed list of active Whidbey Island Campus Clubs and the Mount Vernon Campus Clubs can be found on the ASSVC website.


text:
Title: Project Gemini
Author: Ray Spangenburg & Kit Moser
Pages: 112
Recommended Ages: 9-14
Star Rating: ★★★★
In 1959, NASA began its human spaceflight program with Project Mercury, a series of spaceflights designed to provide the foundation for knowledge and exercises which would be need later during the Apollo Program which would actually place men on the moon. But between Mercury and Apollo came the pivotal program, Project Gemini.
While Project Mercury placed the first American in space, Project Gemini tested astronauts abilities to maneuver in space through rendezvous with other spacecraft, spacewalks, atmospheric reentry, and extended flights. Through a series of ten manned flights from 1965 through 1966, these goals were accomplished. This book provides a step-by-step, mission-by-mission account of these flights, replete with real life photographs on almost every page.
'Gosh darn' is used once.
Conclusion. An excellent study on the Gemini missions
Review © 2013 Laura Verret


text:
First Time Visitor?
Click here for more information.
Useful Links:
BNI Regional Office
P.O. Box 158529
Nashville, TN 37215
Phone: (615) 297-0076
Fax: (615) 297-5332
This site managed by:
Outback Solutions
Welcome to BNI! Our members become part of a marketing team for the other members of their chapter, with the aim of securing qualified business referrals for each other.
Use the map feature below to schedule your chapter visit in 2 Easy Steps!
Click on the map pins below to focus in your area. You can easily adjust the zoom and drag the map to locate chapters in your area. *Please note some chapters are listed on the same map pin as they meet at the same location.
Once you find a chapter to visit, follow the "Chapter Details" link. Here, you'll find a list of chapter members and a link to easily register yourself online to visit so our chapter leaders can help welcome you!
***In case you don't see the link, here's a handy link showing you how to pre-register to visit.***
Chapter Grouping Legend:


text:
I don't know if I would go as far as calling these animated cartoons–which is what one of the researchers did–but they are fascinating. They are stories in a format that we might call cartoons because of the simplified drawing style (it's not easy to draw in rock). Tales of bear hunts and other animals that ended up being eaten abound in over 1000 petroglyphs. The drawings are said to be approximately 5,000 to 6,000 years old and apparently no dinosaur hunts were recorded. I say that because the title of this particular article is "More than 1,000 rock carvings abound on Kanozero Island in Northern Russia. One of them beats The Flintstones by several millennia." And, of course, we know that humans lived with dinosaurs according to the creationist pop culture of The Flintstones cartoon series.
The researchers involved speculated the drawings could be be bragging rights (look what we killed) or more. I would say that humans love to see themselves in stories and let people know what happened at such and such time. These petroglyphs may not be cartoons so much as news for other travelers.


text: I have been reading this forum for years and I have finally decided to add my one cent worth. It used to two cents worth, but what the hell, they have cut just about everything else from us...lol I have been what I consider to be a very loyal employee of over 30 years. I have seen it all and had my share of joys and frustrations. But this present leadership is ruining our once great company. You all know whats taking place, so I am not going to rehash all the details. The one thing that is of great concern to me and many other long timer management people, it our lousy pension. Once I qualified with the years and age requirements, I started to look at it. It didnt take long to realize its going to be less than 50% of my present salary. In the old days (pre wall street), we could count on the BOD meeting every qtr and the stock would go up 3-4 $$ per share. Then it would split regularly and pay a nice dividend. Many of us took out hypo loans to help our portfolio grow (and it did). Under that scenario, folks built up a nice UPS stock packet worth over a million $ (for most one unit sups that held onto their stock). Then when they retired, UPS would (Maybe) by back up to 10% per year. So the pension didnt matter because the stock was still growing and paying a nice dividend and, they could sell about a 100K per year and live a very nice life. But thats all changed, and the biggest thing is, NOBODY IN ATLANTA CARES that the present pension program for management people STINKS !!


text:
Hey there :)
I am a chapter leader in Ottawa for an infertility support group. I just received information about the fall Adoption Resource Exchange that is held in Toronto twice a year. It is a two day event - usually the first day with speakers, etc. focusing on adoption topics. The second day, different workers from Children's Aid Societies across Ontario "showcase" (for lack of a better word) children that are waiting for homes that live in CAS. They have videos and blurbs describing the children. If there are any children you are interested in, you can then visit that child's worker to inquire about applying to adopt / providing your home study. Anyway, here is the info for those interested...
Oct. 20, 2007, Toronto -- "Empowerment and Diversity in Adoption", Ontario Adoption Conference, by Adoption Council of Ontario. Held in conjunction with the Adoption Resource Exchange on Oct. 21. 8-5, Metro Toronto Convention Centre, 225 Front St. W. For adoptive and pre-adoptive parents, professionals and others. Choice of workshops; panel discussion and refreshments. Adoption agency displays and books for sale; display table by Family Helper: meet Robin and Heather. Pat Fenton, ACO, 416-482-0021,www.adoption.on.ca
Oct. 21, 2007, Toronto -- Adoption Resource Exchange (A.R.E.): videos and agency displays of Ontario children waiting for adoption, by Ontario Children's Aid Societies and Ontario Ministry of Children and Youth Services. Also at Metro Toronto Convention Centre, 9-5. Free.
All the best!
Thanks so much for posting this info!!
Hey, girl! I know you from Jan DDC! Thanks for the info! :cheer:
|All times are GMT -7. The time now is 09:17 PM.
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Search Engine Optimization by vBSEO 3.6.0
Copyright © 2003-2012 JustMommies.com, All Rights Reserved.


text:
As an intelligent man, he will have recognised that his first duty was to impose a sense of reality on his fellow Americans about what he could achieve. He succeeded.
Mr Obama has always during his public life been a magnificent public speaker. He has the right tone of voice, the right command of the language, the right fluency to make a great orator. Yesterday - having fluffed his taking of the oath - he proceeded to deliver his inaugural address with such studied smoothness that one found oneself believing it was an actor rather than a politician delivering the lines. Perhaps the mangling of the oath was a deliberate ploy to remind everyone, at the outset, that he is human after all.
Part of the massive expectation had been in assertions in the media around the world that he would need to compete with three other famous inaugural addresses: Lincoln's in 1861, Roosevelt's in 1933 and Kennedy's in 1961. The key comparison is with Roosevelt's, made in the depths of the Great Depression when the scenes recounted in The Grapes of Wrath were common currency all over America. Even today, watching Roosevelt's speech chills the blood. It is not merely his old-fashioned, tub-thumping oratorical style - learned in an age before amplification - but the obvious conviction with which he delivered his famous lines about having nothing to fear but fear itself. If anything was lacking from Mr Obama's effort yesterday, it was that sense of conviction as opposed to image management, which was there in abundance.
But then things are not so bad for Americans - yet - as they were in 1933. Nonetheless, Mr Obama's greatest achievement was to give no hostages to fortune. The memory one takes away from his words is more of his determination to restore America's place, authority and respect in the world than of his domestic policies. They are much more trammeled now by financial considerations than they would have been a year ago.
Where once we might have expected a commitment to deliver on his promise of a healthcare system, the new president instead confronted those exuberant at his success with hard reality. The other great message was that America is in serious trouble, and he could promise no quick fixes: only that he would do his best to try to sort it out.
And he put the burden for doing that, quite rightly, on the American people themselves. They would have to make sacrifices, and they would have to work, if they wished to turn their country round. In this, as in everything else Mr Obama said yesterday, he was articulating something entirely in keeping with American values. It was a mark of his seriousness - and seriousness was the abiding theme of his speech - that instead of seeking to scapegoat the financiers of Wall Street for America's plight he expressed his own commitment to the market economy, and castigated instead those specific individuals who had played recklessly with the banking system.
And it was another mark of his seriousness, and of his compliance with the values of his fellow countrymen, that he should have talked about the determination of America to be a friend to those in the world who wanted its friendship, and to fight its enemies unequivocally. Mr Obama knows that the country he now rules is a conservative one, whatever the other significances of his election. As with the administration he has composed, his speech suggested that he will be governing it in that fashion.
A great speech can rarely be judged on the day it is made. It is whether it resonates down the years and the decades that is its true test. In keeping with his determination to show his seriousness, Mr Obama eschewed yesterday the sort of theatricality that would have had his audience wowing. He preferred a more earnest, less spectacular mode of communication. In doing so he chose the right tone for the circumstances. His election is a moment for rejoicing in America, for various sociological and historic reasons: but it was also a measure of his seriousness that he judged this was not the moment to celebrate.
It was an auspicious start: but from now on actions will be more valued than words.


text:
This is regarding a query asked by a Digital Answers reader that whether we can get rid of the message that is shown while trying to save a document with Tracking changes. <Thanks Chris for asking this query>
Microsoft Word 2010 provides users with an option to turn off the warning message that is getting displayed for document with tracking changes. Click the File menu then the Options link
In the Word Options Window, click the Trust Center tab and then the Trust Center Settings button available under Microsoft Word Trust Center section.
In the Trust Center window, click the Privacy Options then navigate to Document-specific setting section.
Un mark the check box with label as Warn before printing, saving or sending a file that contains tracked changes or comments. This would turn off the warning message displayed while trying to save a document with tracking changes.


text:
If you're looking for some last minute gift ideas, here are a few suggestions! Now, I didnt just randomly pick these items, they are things I either own, or have used in a client's home. My pistachio Kitchenaid mixer, was one of my favorite birthday gifts. Yes, it's a spendy suggestion, but worth it. The rest of the items are under $75.
I'm obsessed with the new Versace Bright Crystal Absolut, it's my new go to. It's sexy and fruity and clean!
My favorite candle ever, is Volcano, by Capri Blue, it's most likely one of the scents you smell when you walk into Anthropologie. I also love giving and receiving ( giggle )...hanging flower baskets. Who doesnt love that?
The Revlon Colorburst sticks are serious business. Believe the hype ya'll. I have 3, and need more, there's a color for everyone and they are so easy to apply.
I'd also like to pimp out Real Techniques Brushes from Ulta. Chances are, your mom ( or you ) need updated brushes. I'll admit, it had been years since I bought new ones, and these feel luxurious without paying out the rear. In fact, they are buy 1 get 1 50% off right now, and dont forget your $3.50 off $10 coupon online.
A couple other home ideas for mom would be to gift her a jewelry box or shadow box to display her beauties. A great throw ( I love the one posted ) and a couple cloches to go on top of a dresser or entry table would be fun additions to her home. Fun soaps? A nude/tan bag? Go check them out!
Steph's Mother's Day Gift Ideas
2 comments:
GIVE ME THAT SOAP SET RIGHT NOW!!! Also, I should point out that I own the exact same Kitchen Aid mixer (same pistachio color as well) and it's my FAVE. Aaaaand I'll also go ahead and jump in on endorsing the Revlon balm sticks, the Real Technique brushes and the Versace fragrance. SO legit. Nice suggestions! (I'm stealing the hanging basket idea).ReplyDelete
Colleen | Let's Talk About Lipstick
Why thank you friend. Glad we're in the same boat :) ps.. Hanging baskets are the best at Tacoma Boys. No joke, they last til like Sept/OctReplyDelete
Subscribe to: Post Comments (Atom)


text:
Bonus code: HCTA4JAD7
Casino name: Grand Fortune Casino
80 free spins with Cash Bandits Slot
* If your last transaction was a no deposit bonus then you need to make a deposit before claiming this casino bonus or your winnings will be void and you will not be able to cash out.
35X Bonus play through requirements
$100 You can withdraw with this bonus
Valid for all players.
Expiration date: August 8, 2016


text:
Does blood make you grin? Then you have to watch the official trailer to 'The Evil Within.'
When we first watched it we couldn't help but think of two specific movies, '13 Ghosts' and 'Frankenstein.'
Watching a man with his tools in his underground workshop creating the most evil creatures known to man is a major step up from the single monster creation of the classic Dr. Frankenstein.
The box-headed freak of nature, the glass-impaled man-beast, and the bloody, four-armed mutant lady take the creepiness factor up more notches than 13 Ghosts ever could.
Waiting for this game to be released is one thing, praying for them to make it into a movie is something else.
So, while we stay optimistic of potential future movie projects for The Evil Within, we shall look forward to it's video game release date of October 21, 2014.


text:
Red Assed Lap Dancing 20 – Battering The BunsMonday, March 15, 2010
Red Assed Lap Dancing 20 – Battering The Buns
Stars: Nina, Ivy, Kristin
Don't let the petite frame or that sweet little face fool you – this girl's an up and coming porn star who's idea of punching the clock is unzipping her costar's trousers! The truth be told, Kristin is really quite good at what she does, or so we're told, and already she has become accustomed to star treatment both on and off the set. Imagine her dismay when first she saw our set, such as it is, and was then instructed to do that which she hadn't done in well over a year or more…a very ordinary striptease followed by a lap dance. What lil' Miss Hot Lips didn't realize, of course, was just what we meant by a lap dance!
File Name : 0173_Red_Assed_Lap_Dancing_20_-_Battering_The_Buns.wmv
File Size : 345.41 MB
Resolution : 320×240
Duration : 00:59:58
Tags: Ivy, Kristin, Nina


text:
Feb 12
Feb 12
Tags: Classic Rush Limbaugh, Drudge, Drudge Report, Elections 2012, Matt Drudge, obama, Obama Religion, Politics News, Records, Rick Santorum, Rick Santorum 2012, Rick Santorum Religion, Rush Limbaugh, Santorum, Santorum Satan, Satan, Satanic Message, Slim Whitman, video
This entry was posted on February 22, 2012 at 5:43 pm. You can follow any responses to this entry through the RSS 2.0 feed. Both comments and pings are currently closed.
Posted in Conservative Videos Daily Rushbo Political FunHouse by Dyno Rush Comments Off on Rush Revisits Satanic Messages In Slim Whitman Records
Comments are closed.


text:
That's right, today we celebrate the birthday of Theodor Seuss Geisel, better known as Dr Seuss. So today, I'm recapping some of my Dr Seuss posts and printables.
And I think it is amazing that 75 years after his first book was published {And to Think That I Saw it on Mulberry Street ~ in case you were wondering}, his books are still a staple on reading lists today.
So, in case you missed them:
- Birthday printable ~ Your Day of All Days
- Today you are you ~ a guest post on Kind Over Matter
- Oh! The Places You'll Go
- Be who you are quote from Blogtoberfest 2011 {get a large copy at flickr}
See also:
- Last year's birthday homage to Dr Seuss
- Top 5 Dr Seuss quotes
- And check out Seussville ~ the official site of Dr Seuss and The Cat in the Hat
Thank you, Dr Seuss!


text:
Wanted to get this up really quick- thank you's to those who completed the 5K with me. The video also should be titled "Skinny Emmie cries like a baby" but whatever. I'll put a total race recap, pictures and video up later!
Body positive fitness and plus size fashion blog
Huge CONGRATS!! I can't wait to read your race report but in the meantime, I know how you feel…I felt the same way after my first 5K. 🙂
Yay! Congratulations! You are so awesome and sweet. 🙂
Pingback: Recap: My first 5K — Skinny Emmie Weight Loss Blog()
Congratulations on finishing! I was at the BGSG too, completing my 12th 5K. I'm not fast, and probably never will be, but I'm having so much fun. It was a 5K that got me started on my journey (77 pounds gone so far!) I work for Girl Scouts in Lexington, and when it came time for our Thin Mint Sprint last spring, I knew I was going to end up with a race T-shirt. I decided that I didn't want a shirt I hadn't earned, so I set out to do the race. I couldn't even walk a half-mile at first, but kept at it. With the support of my co-workers and husband, I did it. I'll never forget how it felt to cross that finish line, laughing and crying at the same time. I don't cry now, but I still love that feeling when I see the chute and know I've done it again.
It was a great pleasure to meet you!
Pingback: What's the Alternative? — Skinny Emmie Weight Loss Blog()
Pingback: Action and Appreciate | #reverb10 — Skinny Emmie Weight Loss Blog()


text:
Want create site? Find Free WordPress Themes and plugins.
Sometimes I hit a stage where everything I see feels so boring, the same thing but a different day. Often Tumblr is the best place for me to find inspiration but lately I've been lacking blogs to follow. I don't know if any of you have a tumblr but if you do feel free to comment it or any of your favourites and I'll check it out. As for now, I'm on a hunt!
Did you find apk for android? You can find new Free Android Games and apps.


text:
Ad is not active - find similar ads in Decor, Garden & Accesories in Industrial Area.
Unique high Quality Kitchen Tops(Granite) for sale and fixing
Industrial Area, Nairobi Added at 14:25, 4 December 2016, Ad ID: 1002058644
Granites are smooth and attractive stones.They come in size of 8 by 2 fits. They come in different qualities, the cheapest going for KSH.15000. We sell and deliver them for those customers who are within a distance of 50km. An average kitchen will need around three full granites. We also fit for our customers at an affordable cost, see the photos of our work bellow.