text:
The early run-up to the Republican primary has shown the breadth of conservatives in America. But there are two things this disparate group of politicians can agree upon: George W. Bush did a bad job as steward of the American economy, and Obama is doing even worse.
Under Bush, taxes were slashed and expenses ran wild — causing our already ugly national debt to skyrocket. George W. Bush's administration also presided over some of the lax regulations that led to the 2008 financial crisis and resulting recession.
Obama has failed to gain control of the mess, they continue. The unemployment rate is above 9%, consumer and investor confidence is flagging, especially after the August market mayhem. Disagreement over how to reduce the nation's deficit has many worried that the United States will be up to its eyeballs in debt for generations.
There's plenty of reasons to criticize Obama, and Republican candidates have wasted no time. But amid all the posturing, would the front-runners really bring anything different to the White House? How would the members of this group actually make a difference in economic policy and put the nation back on track?
Let's take a look:


text:
RESIDENTS are being encouraged to take pride in their area and get involved in the latest community-clean up in the borough.
Basingstoke and Deane Borough Council started the latest two week community clean-up in the Popley Poets area on January 20 and will tackle issues previously highlighted by the council's community services operations team and feedback from local residents.
Work during the two week clean-up will include:
• A mechanical sweep of all roads along with a sweep from operative teams for less accessible areas
• Cleaning and re-painting of Chineham play park
• Hedge cutting
• Shrub bed maintenance
In addition to support from the council's operations team and Sentinel Housing Association, the waste and recycling team is also supporting the event by providing additional glass recycling boxes, recycling bags and more information on how to recycle as much as possible to the community.
Cabinet member for environment and climate change, Councillor Robert Donnell said: "Alongside our normal grounds maintenance and cleansing operations we have involved local people and partners in enhanced tidy ups where they are most needed in the borough.
"By helping the community led clean-ups we are able to really support the excellent work done by the community in the area and encourage residents to take a real pride in where they live."
Sentinel Housing Association's neighbourhood manager for the area, Alison Bone added: "We're really pleased to be supporting Basingstoke and Deane Borough Council with their community clean-up of the Poets area of Popley.
"We'll be helping out by litter picking and generally tidying up the area. Members of our HomeTeam will be on hand to carry out repairs and maintenance, along with caretakers."
For more information on the clean-ups planned in the borough or to get involved in Popley, contact the council on 01256 844844 or go along to the Spotlight Centre in Shakespeare Road, between 9am and 12pm or 2pm and 4pm to speak to the team.

subset: commoncrawl


text:
6 Fall Nail Art Trends
Key ingredients:
Why we like it: The antioxidant-rich rare pine mushroom and green tea ingredients defend against solar radiation, pollution, and free radicals, which can spur on the aging process. Meanwhile, an added 12 potent Asian botanicals like ginger, soybean, and iris work to repair skin of damage including hyper-pigmentation and the breakdown of collagen and elastin. We particularly love its lusciously thick and concentrated texture—only a pea-sized amount is needed to coat the entire face.
AmorePacific Future Response Age Defense Creme, $195; sephora.com
Key ingredients:
Polyphenols, resveratrol-oley, viniferine, ceramides, and vinolevure
Why we like it: This cream practically uses the entire (patented) kitchen sink to combat nearly every sign of aging: Grape seed polyphenols harness their antioxidant power to disable skin-damaging free radicals, resveratrol-oley smoothes out wrinkles, viniferine brightens dark spots, ceramide 2 firms the skin, and vinolevure imparts serious hydration. The rich texture glides over the face and melts beautifully into skin, leaving zero filmy residue in its wake.
Caudalie Premier Cru the Cream, $155; sephora.com
On Trend: Undercuts


text:
Eggplant Loofah Scrubber
This all natural loofah scrubber is the most resilient and pliable natural cleaner on the market. The fine textured fibers resist wear & tear. Contrary to popular belief loofah is not a sponge but a gourd-like vegetable! Cultivated and grown by a collective of over 11,000 farmers in various Asian countries, a percentage of all proceeds received from the sale of each loofah goes back to the countryside to provide funding to build new schools, much needed medical care and decent living conditions. This loofah scrubber is gentle enough to scrub fruits and vegetables, tough enough to clean dirty dishes and stubborn pots and pans, safe enough to use on delicate non-stick and other sensitive surfaces, and made using 100% natural loofah and 100% natural vegetable dye coloring. Eco-Friendly and completely biodegradable


text:
Chop chop!
I love everything from this company, particularly this cutting board/strainer in beautiful green that is totally brilliant.Tags: cooking, baking, green, strainers, cutting boards, kitchen accessories, chopping boards, dish, foldingAdded 6 Years Ago from Josephjoseph
This modern salad bowl is easy to use. It as elegant serving spoon cutouts. The bowl makes a stylish centerpiece for the indoor or outdoor table.Added 8 Years Ago from Josephjoseph
Storage container has useful measurements that are easy to read. When closed, the container is sealed air-tight.Added 8 Years Ago from Josephjoseph
This colander is stylish and designed for easy storage. Pull the two handles, and the colander fold flat. Simple and elegant.Added 8 Years Ago from Josephjoseph
The square colander is ergonomically designed for ease and convenience. It's square shape fits easily in the sink. It also stands upright, and so frees your hands while draining.Added 8 Years Ago from Josephjoseph
This unique board grips to your countertop and makes for easy chopping and food handling. The stylish color combinations add for a unique edge to your table.Added 8 Years Ago from Josephjoseph
A chopping board with a rim. Makes cutting and carving easier and cleaner. A simple idea, with great style.Added 8 Years Ago from Josephjoseph
The original Chop 2 Pot cutting board uses 'living hinges' to make chopping and preparing food easier and faster.Added 8 Years Ago from Josephjoseph
The Index chopping boards and storage system makes preparing your food safer and cleaner. The labels are color-coated and indicate the type of food so that each board is always used for similar food types.Added 8 Years Ago from Josephjoseph
Traditional-looking cheese grater folds flat for easy storage. Made with side-grip handles for ease and comfort.Added 8 Years Ago from Josephjoseph
A stylish way to keep your carbs --and calories -- in check. The adjustable rings provide for spaghetti portion control.Tags: diet, cooking, baking, kitchen accessories, dish, spaghetti, Calories, pasta measure, countertop accessoriesAdded 8 Years Ago from Josephjoseph
A smart rolling pin! The interchangeable disks create a variety of thicknesses, while the measuring tool lets you easily keep track of the width.Added 8 Years Ago from Josephjoseph
Made to make mashing easier. Press down, then turn the handle. Also works for pureeing other types of food.Added 8 Years Ago from Josephjoseph


text:
Bob-BQN wrote:
David, I have a T.V. card in my computer at the house that works a lot like Tivo and I am able to burn shows to DVD. I recorded the BK griller commercial on the P.C. and did a little editing for my own amusement. The wife wants to transfer all our home movies to DVD. You would need a video capture card for your computer to transfer the shows.
This could get off topic REAL fast here.
If you don't mind email me off list at dave at pobox dot com. I have a couple of questions in regards to the above.


text:
club calendar
Concert Calendar for Wild Buffalo House of Music (Bellingham)Wild Buffalo House of Music (Bellingham)
208 W. Holly St.
Bellingham WA 98225
KEXP currently has no listings for this club.
For calendar submissions contact us here.Submissions should be received two weeks before publication on our site and mention on the air. The calendar is read on-air Mon-Fri at 9am, 1pm, 4pm, 7pm and 10pm and Sat-Sun at 10am, 1pm, 4pm, 7pm and 10pm. Information about coming events may be submitted for consideration by email.


text:
Return to site home page
WASHINGTON - The American Society of Interior Designers (ASID), in partnership with Interiors & Sources magazine, announces the inaugural year of the Bloom Awards and is calling for entries by September 15, 2008. An award dedicated to recognizing the achievements of sustainable products in interior commercial design, the new program will choose a product winner in five different categories: furniture, flooring, textiles, lighting, and innovative materials.
"ASID is constantly looking for new ways to become involved in the sustainable movement and this new program with Interiors & Sources is another venture I'm proud of," says Michael Alin, Hon. FASID, ASID executive director. "Green design is not a fad for our members, it's part of practicing responsible design. All of our members, whether it's students, designers or manufacturers, are in need of green materials and products and we're pleased to recognize the companies that are leading the way and allowing our members to create sustainable spaces."
Bloom Award submissions will be judged upon:
"We are thrilled to partner with ASID on this exciting, new awards program because interior designers have been clamoring for more information on how to identify and select green products, and the Bloom Awards will distinguish the products that best exemplify sustainability, innovation and performance," says Robert Nieminen, editor of Interiors & Sources.A distinguished panel of industry professionals made up of ASID professional members and Interiors & Sources editors will judge the entries. All entries must be submitted electronically by September 15, 2008. Product samples may be sent to:
ASID Headquarters Attn. Korenna Cline 608 Massachusetts Ave. NE Washington, D.C. 20002
The entry fee is $395 for the first product submitted; each additional product is $145 and the product must have been introduced to the marketplace after Dec. 31, 2006, to be eligible. Product concepts will not be accepted. Third-party sustainability certifications of product entries are not required, but will be taken into consideration during the judging process.
Visit www.interiorsandsources.com/bloomawards/rules.aspx for the complete list of entry criteria, eligibility and guidelines. For specific questions, please contact Allison Kundel at firstname.lastname@example.com.
About ASID The American Society of Interior Designers (ASID) is a community of people-designers, industry representatives, educators and students-committed to interior design. Through education, knowledge sharing, advocacy, community building and outreach, the Society strives to advance the interior design profession and, in the process, to demonstrate and celebrate the power of design to positively change people's lives. Its more than 40,000 members engage in a variety of professional programs and activities through a network of 48 Chapters throughout the United States and Canada. For more information, go to www.asid.org.


text:
Adana CRT TV, September 30- 2008
Adnan Oktar:Turkey is walking on the right path, which is indeed beneficial and very much favored. Gradually, it cleans up, calms down, and becomes hale and healthy… Insha'Allah, Turkey will be the leader of the Middle East and Balkans, the entire Islamic and Turkic World. Turkic and Islamic World will get united to form a great Turkic – Islamic Union. Turkey will take the lead and be the elder brother.Thus, Turkey will make up the third superpower and become a factor of equilibrium apart from United States and Russia. This will bring the age of peace and safety throughout the whole world Insha'Allah…
Azerbaycan Novoye Vremya, October 6- 2008
Adnan Oktar: Balkan soils belong to the Ottoman Empire. It goes to Italy. The soils around Italy belong to Ottoman.Everywhere bears the traces of Ottoman, involves the beauty of it. Under Turkish – Islamic Union, these places will become the cities of peace and regions of tranquility…Turkish – Islamic Union will bring welfare, abundance, and peace to these places. Insha'Allah, Turkish Islamic union will bring peace and happiness to Bosnia, Armenia and everywhere else.
Haberturk, July 11- 2010
With its active policy of foreign affairs, Turkey, who deserves to attract the attention of the entire world, starts to receive positive results regarding the top level consultancy mechanisms established between Bosnia and Herzegovina and Serbia. Haris Silajdzic, the president of Bosnia and Herzegovina will today host the 15th annual commemorative ceremony of Srebrenica martyr of the year 1995, while Boris Tadic, President of Serbia, is expected to participate at this event. Thus, for the very first time, a Serbian political leader will participate in a commemorative ceremony thanks to the peace driven efforts of Turkey.


text:
Hi there
Basicly we should use new HTML5 elements in development for new projects. However, what about accessibility when it comes to new elements and outline. Is it also ready now? Read that JAWS tries to understand new outline but it doesn't do it correctly yet. Rest software of that kind don't get it at all.
I recently started working on project which has quite big user base. I don't have any data about JAWS or other software that is used by the users for the site but I assume there is a chance that it is. What is your recommendation? Should I care and use divs and appropriate <hx /> elements order per page or should I start using header, footer, section, article... and stick to new html5 outline which is many h1 and h2 per page grouped within section content elements?
What do you think? Is new html5 approach really that painful for JAWS and similar software?
Currently it's still recommended to assume that- new HTML5 elements' native roles are not mapped (and so when appropriate, use the aria landmark and other roles as a continued stopgap)- the HTML5 outline is not seen (or not seen correctly) by the browsers (also, there is talk of maybe just scrapping outline altogether, but I dunno how serious that was)- that headings still get manually-set levels
In other words, if you try to rely on the outline to translate <h1> everywhere to the appropriate levels, you should assume most users of AT will simply see nothing more than lots and lots of h1's, rather than the appropriate levels you intend.
Since navigation by headings (and heading levels) is an important type of navigation for users of AT, manually using the correct levels is still recommended. For now.
The real intended benefit of the HTML5 outline was, mostly, for syndication. Is your system going to be incorporating random chunks of user-created data which may have its own complete document-like structure? (For example, complete <articles> or <sections> complete with their own <headers> and <footers> and whatnot?)
Another thing to keep in mind is, while you can get data for "how does the latest JAWS/whomever deal with [some HTML5 thing]", keep in mind that the commercial AT software out there is expensive, and you can probably assume you'll have users with older versions.Users of free/open source versions may be more up to date, of course. But there are more than screen readers: for speech-control programs I only really know of Dragon Naturally Speaking/Dictate/other products, and I don't know of any free version of those. There are also screen magnifiers which may or may not be used with a screen reader... and if used with a screen reader may affect what the screen reader reads out.
I had missed this part.
I'm cautious with <article> and <section>, especially with recent issues in JAWS/IE. In fact I generally avoid them unless I have a really nice, short document that really reads nicely as a university paper, where bad AT incorrectly announcing each section isn't necessarily too annoying.
I personally feel mostly safe using the elements who aren't section and article, but this would be decided per project. Since these are wrapping elements, it's still generally more important to get the stuff inside right. If you thought your userbase was really going to have a really high concentration of folks using things like older browsers or in enterprise (office with old Windows) environments, then it may still be safer to stick to divs, which I am doing for our e-commerce packages (too many IE7 on Windows XP right now).
These are the sorts of decisions we don't want and shouldn't have to make when building accessible web pages, but they are a reality that we unfortunately get used to. On the other hand, screen reader and browser development is moving very quickly these days, so this particular problem may not exist for long.


text:
|Authors :
|Byrd, William, 1674-1744., Wynne, Thos. H. (Thomas Hicks), 1820-1875., Virginia. Commissioners to lay out the bounds of the northern neck, 1736., Virginia. Commissioners on North Carolina Boundary, 1728-1729., Keith, William, Sir, 1680-1749., Gooch, William, Sir, 1681-1751.
|History of the dividing line, and other tracts / v. 1
|Print source:
History of the dividing line, and other tracts / from the papers of William Byrd, of Westover, in Virginia, Esquire. v. 1
Byrd, William, 1674-1744.Wynne, Thos. H. (Thomas Hicks), 1820-1875.Virginia. Commissioners to lay out the bounds of the northern neck, 1736.Virginia. Commissioners on North Carolina Boundary, 1728-1729.Keith, William, Sir, 1680-1749.Gooch, William, Sir, 1681-1751.
Richmond, Va.: [s.n.], 1866.
|Publication Info:
|Pittsburgh: University of Pittsburgh, Digital Research Library
These pages may be freely searched and displayed. Permission must be received for subsequent distribution in print or electronically.
|Subject terms:
Tobacco--Early works to 1800.
Iroquois Indians--Early works to 1800.
Virginia--Boundaries--North Carolina--Early works to 1800.
North Carolina--Boundaries--Virginia--Early works to 1800.
Virginia--Description and travel--Early works to 1800.
North Carolina--Description and travel--Early works to 1800.
Great Britain--Colonies--America--Early works to 1800.
North Carolina--Boundaries.


text:
THE SQL Server Blog Spot on the Web
Calling an SSIS package from another SSIS package is, on the surface, a simple task. You just use the Execute Package Task and point it to a package on a SQL Server or somewhere in the file system, as shown below.
It is pretty simply right? But what if you need the parent package to pass information to the child package? That is accomplished by using variables in the parent package and package configurations in the child package. Let's look at an example. I have created two packages, one named Parent and one named Child. In the parent package I have added a variable call MessageToChild as shown.
Then I added the execute package task we looked at earlier to call the child package. Within the child package, I added a variable called Message as shown below.
Okay, the next step is to get the Parent variable value into my child variable; this is where package configurations come into play. In the child package, I added a Parent Package Variable package configuration which uses the MessageoChild variable to populate the child's Message variable.
When the Parent package calls the Child package, the variable value is passed. Now for a quick test, I added a script to the child package with the following code:
MsgBox(Dts.Variables.Item("Message").Value.ToString, MsgBoxStyle.OkOnly, "Message From Parent")
This will pop the following message box when the parent package is run and subsequently calls the child package.
Any values that you want to pass have to be stored in variables in the parent package. The child package on the other hand can use those values to set any property with a compatible data type. You can set file paths, expression values, connection strings, and, as we saw, variable values. Obviously there are other ways to get packages to "talk" to one another, like writing data to a table or file, but this is a quick and efficient way to get a parent package to send simple bits of information to child packages.
I have two online classes starting on November 1st that I recorded on the SSWUG.org vClass platform.
The first is "Introduction to SQL Server Replication" and is a 12 session class on all things replication. Cost is $199……for more information or to register, click here: http://www.vconferenceonline.com/event/home.aspx?id=107
The second class is "SQL Server Integration Services" and is also 12 sessions. This class covers basic to advanced topics on SSIS. Cost is $199……for more information or to register, click here: http://www.vconferenceonline.com/event/home.aspx?id=106
I hope you find these valuable. If you can't make it in November, the class will start again on December 1st.
The Pivot transformation is one of the most useful transformations in SSIS, and also the biggest pain to configure. It comes with one editor, the Advanced Editor, so no pretty GUI here. Let's walk though an example and hopefully it will help you learn how to use pivot. First off, let's define the source data and the destination of our pivoted data. We will worked from a small set of survey data where each person was asked four questions, see the table below.
Favorite Color
Josh Jones
Eric Beehler
As you can see, there are 3 surveys, each with four questions. We want to pivot this data so that there is one row of data for each survey and the answers are in columns, like the table below.
This is where our Pivot Transformation comes into play. Each source column needs to have a PivotUsage assigned to it in order to tell SSIS how to handle the column during the pivot. The valid values are as follows.
Now that we have the PivotUsage values, we can configure the Pivot Transformation. When you open the Pivot transformation, the first thing you need to do is define the input columns that you want to work with. This is doen on the Input Columns tabs, as shown. As you can see, we have selected to work with Question, Answer, and SurveyID. We are ignoring the id column as it is a tracking column in the source table and not needed in our destination.
Next we switch to the Input and Output Properties tab. Here we need to expand Pivot Default Input and then Input Columns. Now we need to set the PivotUsage value for each column as we previously discussed. Question will be a 2, Answer will be 3 (as shown), and SurveyID will be 1.
Now here is where it gets a little weird. We have to add columns to output for each column that will exist AFTER the pivot. In our case, we will have the five columns we saw earlier in our example destination. To add the columns, expand Pivot Default Output and select Output Columns. Next, click the Add Column button 5 times. Then you will need to go through each column and set up a more logical name than the default of Column, Column 1, etc… Select each column and change the Name property so you end up with five columns named SurveyID, Name, Height, FavColor, and Age, as shown below (Note that I called the Favorite Color column FavColor to save space).
So now we have an input and an output, now we need to connect the two. This is done by setting the SourceColumn property on each output column to the LineageID property of the correct input column. This tells the transformation where each output columns will get its data. Obviously, the first output column, SurveyID, comes from SurveyID. The value for the other four output columns all come from Answer input column. So for SurveyID, we fine the input column LineageID on the property page here:
Now you will need to write down that value or remember it and then manually enter it into the SourceColumn property of the SurveyID output column here:
Repeat this step and enter the LineageID from the Answer input column into each of the other output column's SourceColumn property.
We are almost there, but we have one more step. For each of our new output columns, Name, Age, FavColor, and Height we need to tell them which values in the Question column signify that the data belongs in each column. This is done by setting the PivotKeyValue for each of these columns to the actual text in the Answer column that's means this answers is for the question contained in this column. So for the Name column, we enter "Name" into the PivotKeyValue, as shown. This tells the transformation to take the value from the Answer input column and place it in our Name output column anytime it encounters the text "Name" in the Question column.
That's it, now we can work with the pivoted data in our SSIS package just like any other data set. I know that's a lot and it is very confusing, but if you play with it a few times you will get it. Good luck and happy coding.
Transact-SQL is a great language for data manipulation, but it has its weaknesses. Unlike "real programming languages" T-SQL is confined to procedural code. Sure, you can build "modules" by using stored procedures and functions, but for the most part, all of the work will be procedural. It has in the past also lacked error handling syntax leaving you with the need to write GOTO statements and labels to control the flow. Well, if you hadn't noticed, SQL Server 2005 introduced TRY…CATCH blocks to T-SQL. While the implementation in T-SQL is not as robust as that in the object-oriented languages, it's a good start and its better than GOTO statements. Let's take a look at how Try...Catch works. Basically, you wrap some portion of your T-SQL code in a TRY block and handle any errors that occur in a CATCH block as shown below.
SELECT * FROM dbo.SALES
SELECT * FROM dbo.SALES
In the example, we have two select statements in our TRY block, and if either of these encounter an error, control will be passed to our CATCH block. In this case, the SELECT 1/0 should cause a Divide by Zero error and pass control to our CATCH block. Once in the CATCH block, you have access to several functions which will provide details of the error.
These functions can be used to log details of the error that occurred or simply return information to the user that executed the code. If your TRY block completes without error, then control will be passed to the first line after your CATCH block.
That's pretty much it. There is some nesting ability with TRY…CATCH but you won't see any other control flow options like RESUME or THROW like you would in the other programming languages. It's certainly not a perfect solution, but it is a start.
A common source for SSIS packages is the flat file. These are just plain text files that are delimited by some character such as a comma, pipe, or tab. The problem is when you connect SSIS to a flat file it assumes a few things about the file, specifically the data types of all the columns. Flat files do not contain metadata so SSIS has no good way to know the data type. Further, SSIS does not look at the data and attempt to make an educated guess. What you end up with is all the columns configured with a string data type of length 50. This can cause conversion issues if your data is not a sting or truncation errors if you have more than 50 characters. Luckily, there is a solution. Once you have set up your flat file connection, select the Advanced page in the properties dialog box as shown below.
From here you can select each column and then change the data type and its associated properties such as length, precision, and scale. You can also change the column's name which comes in handy when it is not included in the first row of your file. Once you have made all the appropriate changes, SSIS will know what type of data you have and the names of all the columns. It is much easier to make these changes in the connection than to try and use data conversion transformations later in your package. So do yourself a favor and spend a few minutes cleaning up your text data sources, you will be much happier and see fewer data problems later on.
When it comes to converting data from one type to another in SSIS, you have a few choices of methods. We are going to look at a few options and discuss the differences. With all of these, we are assuming that the input data type is compatible with the new output data type. In other words, we are not converting the word "one" to the number 1, this would require fancier logic. So first up, there is the appropriately named Data Conversion tranformation. This task will take one or more input columns and create new columns with the desired data type. It is simple to use, just select your input column or columns, name your output column and chose the new data type, as shown.
You can also use the Derived Column transformation to convert data. This transformation is also pretty simple, you select an input column and then chose whether to replace this column or create a new output column. Then you need to apply an expression in order to come up with the new data for the output column. This expression can be a cast statement as shown.
As you can see, we have created a new column with a new data type, functionally the same as the Data Conversion transformation. Once thing to note, you can also choose to replace a column but when you do this, SSIS wants the new column to maintain the original data type. As you can see in the next screen shot, even though we have applied to DT_I8 cast, the data is still a four-byte signed integer. This is just something to be aware of.
So why use one over the other? Well the Data Conversion transformation will just take an input, convert the type and provide a new output column. If you use the Derived Column transformation you get to apply an expression to the data, which allows you to do more complex conversions or perform additional manipulations on the data. In fact, using IF...THEN logic in an expression, you could convert the word "one" to the number 1 with a Derived Column transformation.
By no means, are these the only two methods for conversion, but they are the two most common transformations used to convert data. You can also build custom script transformations or even use CAST or CONVERT statements in your source T-SQL if you so want. In the end, the method you chose will depend on your specific requirements, but it is good practice to understand all the options before making a call on which one is the best.
I recorded a Virtual SSIS Class with the good folks over at SSWUG and the first airing of the class will by May 15th. This is 100% online so you can do it on your own time and from anywhere. The class will run monthly and I will be available for questions through out. You get the following 12 sessions on SSIS, each about an hour.
Session 1: The SSIS Basics Session 2: Control Flow Basics Session 3: Data Flow - Sources and Destinations Session 4: Data Flow - Transformations Session 5: Advanced Transformations Session 6: Advanced Data Sources and Destinations Session 7: Using Scripts and Variables in SSIS Session 8: Expressions Session 9: Package Configurations Session 10: Performing Database Maintenance Session 11: Debugging and Troubleshooting Session 12: Deploying, Transactions, and More I start at the beginning for those of you that have never used SSIS and move quickly into some more advanced topics. I feel its a great informative class. For more details, to register or to purchase the DVD version, visit http://www.vconferenceonline.com/shows/vclass/ssis.asp. As I said it will run monthly, so if you can't make it in May the June class is just around the corner.
Also, there is a discount code to listeners of my Podcast, I won't make it too easy, but if you watch one of the latest episodes you should be able to find a discount code worth $10 off.
When you start working with SQL Server and SSIS, it isn't long before you find yourself wishing you could change bits of SQL queries dynamically. Most commonly, I see people that want to change the date portion of a query so that you can limit your query to the last 30 days, for example. This can be done using a combination of expressions and variables. I will do this in two parts, first I will build a variable that will always contain the 1st day of the previous month and then I will dynamically append this date to query and use it in my source.
So let's add a variable to a package called QueryDate to hold our 1st day of last month variable. First, set the EvaluateAsExpression property to True. Next we will edit the expression to build our date. We are going to do this by using some date functions to rip a date apart and then concatenate them back together to get the 1st day. First we need to figure out what last month was and return just the month's number. We do that by using DATEPART and DATEADD as shown below.
DATEPART("mm",DATEADD("mm", -1, getdate()))
This starts with DATEADD to subtract a month from today and then DATEPART to extract the month number. So if this runs in March, this portion of our expression returns 2. We also need to do a similar thing to get the year for last month, as shown.
DATEPART("yyyy",DATEADD("mm", -1, getdate()))
In DATEADD we still only subtract one month, but now in DATEPART we grab the year. Both of these pieces of code return an integer value, but we need to build a string that can be converted back into a date. So we need to add a cast statement to each of these snippets of code to make them string compatible. This is pretty simple; just prepend the code as shown below to both date pieces we have already built.
Okay, the hard part is over because we want the 1st of last month so that part we will hard code. Now all we need to do is concatenate some pieces together to get our final date, as shown.
(DT_STR, 50,1252)DATEPART("mm",DATEADD("mm", -1, getdate())) + "\\1\\" + (DT_STR, 50,1252)DATEPART("yyyy",DATEADD("mm", -1, getdate()))
The backslash is a string literal character in SSIS expressions telling it that the next character has some meaning, such as "\n" which means new line. That is why we have to use "\\" in our code to tell the expression we really want a single backslash in our output. Below is a screen shot of this expression in SSIS and the value you get from clicking Evaluate Expression.
I ran this in March so the date returned was what I expected. Now all we have to do is put this into a T-SQL query. Just create a second variable (I called mine Query) and build a dynamic string to concatenate your new date variable into your T-SQL code. Here is an example that does just that.
"select * from dbo.Employee where active_date > '" + @[User::QueryDate] + "'"
As you can see, we have the T-SQL syntax with the QueryDate variable concatenated in the middle. Once again, here is a screenshot of the expression built with the expression evaluated on the bottom.
There is one last step to use the query you built. Open your source in the Date Flow and set the Data Access Mode to SQL Command From Variable and then select your query variable in the dropdown. If you did everything correctly, you should see your select statement in the Variable Value window, as shown below. If you don't see your query, make sure both variables have the EvaluateAsExpression property set to True.
Just a couple quick notes: This only works with sources that allow you to write a query to retrieve data, SQL Server Oracle, Access, and even Excel. This will not work with sources like text files that don't allow you to query their contents. If you want to do something similar with text files, you could BCP the data to a SQL Server staging table first and use that as your source, you just need to be creative. Also, this whole process could be done in one variable; I just like separating the two for maintainability. This allows me to focus on getting the date correct in one variable and getting the query correct in the other. The sky is the limit in how you build dynamic queries, so use your imagination.
In my most recent posts I have looked at a few of the new features offered in T-SQL in SQL Server 2008. In this post, I want to take a closer look at some of the smaller additions, but additions that are likely to pack a big punch in terms of efficiency. First let's talk a little about compound operators. This is a concept that has been around in programming languages for a long time, but has just now found its way into T-SQL. For example, the += operator will add the values to the current variable and then assign the new value to the variable. In other words, SET @ctr += 1 is functionally the same as SET @ctr = @ctr + 1. This shorthand is a little quicker to type and offers a cleaner piece of finished code. The complete list of compound operators is below.
+= Add EQUALS -= Subtract EQUALS *= Multiply EQUALS /= Divide EQUALS %= Modulo EQUALS &= Bitwise AND EQUALS ^= Bitwise Exclusive OR EQUALS |= Bitwise OR EQUALS
Stating in SQL Server 2008, you can now set a variable's value at the same time you declare it. For example the following line of code will declare a variable named @ctr of type int and set its value to 100. This was previously only possible with parameters, but now it works with all variable declarations.
DECLARE @ctr int = 100
Last, but certainly not least, the INSERT statement will accept multiple row predicates on the VALUES clause. In other words, I can insert multiple rows with a single INSERT statement. The following example shows the old syntax and the new multi-row INSERT syntax.
Pre-SQL Server 2008
INSERT SALES (customer_id, year, sales_amt) VALUES (1,2007,25000)
INSERT SALES (customer_id, year, sales_amt) VALUES (1,2008,22000)
INSERT SALES (customer_id, year, sales_amt) VALUES (1,2009,15000)
INSERT SALES (customer_id, year, sales_amt) VALUES (2,2007,35500)
INSERT SALES (customer_id, year, sales_amt) VALUES (2,2008,56800)
INSERT SALES (customer_id, year, sales_amt) VALUES (2,2009,65600)
SQL Server 2008 Multi-Row INSERT
INSERT SALES (customer_id, year, sales_amt)
We certainly havn't covered everything that has been added to T-SQL in SQL Server 2008, but these a are few of the more useful little additions.
Here is a feature that I have been waiting for since I started working with SQL Server 6.5; the ability to script the data from a table. When you deploy a SQL Server database, you often need to include data in several tables. This can be for lookup values, configuration tables, or just seed data. In the past, you had to manually write a script to insert the data. You could also write a creative SELECT statement that would include hard coded text to append the 'INSERT INTO……' logic into a string and then concatenate the data values. Both of these methods are a bit of a pain. With SQL Server 2008, the Generate Script functionality in SSMS allows us to script the data out of a table into a batch of INSERT statements. Let's walk through this in detail.
You need to Right-Click a database and select Tasks | Generate Scripts. This opens the script wizard, as shown, that you use have used for all your SQL Server schema scripting needs. Click Next to get rolling.
Select the database that you want to script the data from and click Next. This brings you to the Script Option page and this is where the magic happens. If you scroll down to Table/View Options, as shown, you will see all the script options. Among these options is Script Data. Set that to True and specify any of the other options you want for your script. When you are ready, click Next.
From here, the wizard is the same as if you're not scripting data. You select the object types (tables, views, stored procedures) you want to script followed by screens that let you choose all the specific objects. When you complete the wizard, your script will now include INSERT statements based on the data in the table. Here is an example for the table I scripted.
INSERT [dbo].[Employee] ([employeeid], [firstname], [lastname], [birthdate], [gender], [managerid], [departmentid], [active_date], [inactive_date]) VALUES (5, N'Kevin', N'Brown', CAST(0xD0030B00 AS Date), N'M', 20, 2, CAST(0x52320B00 AS Date), NULL)
INSERT [dbo].[Employee] ([employeeid], [firstname], [lastname], [birthdate], [gender], [managerid], [departmentid], [active_date], [inactive_date]) VALUES (8, N'Rob', N'Walters', CAST(0x2EF20A00 AS Date), N'M', 5, 2, CAST(0x52320B00 AS Date), NULL)
Hopefully this saves you some work the next time you need to include insert statements in a deployment script.
SQL Server 2008 provided us with some new T-SQL syntax; one of those that I am most excited about is the new MERGE statement. Gone are the days of IF....THEN logic to decide whether a row needs to be inserted, updated, or deleted. The MERGE allows you to take care of the logic and the insert all in one shot. What's more, you can compare an entire record set all at once instead of going row by row. Here's is a quick example of using MERGE.
MERGE tbl_address AS current_addresses USING( SELECT customer_objid = address_label, addressline1, addressline2, city, region, country, zipcode, is_deleted FROM @addresses) AS source_addresses(address_label, addressline1, addressline2, city, region, country, zipcode, is_deleted) ON (current_addresses.address_label = source_addresses.address_label) WHEN NOT MATCHED THEN INSERT (address_label, addressline1, addressline2, city, region, country, zipcode) VALUES (source_addresses.address_label, source_addresses.addressline1, source_addresses.addressline2, source_addresses.city, source_addresses.region, source_addresses.country, source_addresses.zipcode)
WHEN MATCHED AND source_addresses.is_deleted = 1 THEN DELETE
WHEN MATCHED THEN UPDATE SET address_label=source_addresses.address_label, addressline1=source_addresses.addressline1, addressline2=source_addresses.addressline2, city=source_addresses.city, region=source_addresses.region, country=source_addresses.country, zipcode=source_addresses.zipcode;
The USING section defines the "new" data, in this case a table variable. The ON section defines the join between the new and the existing data. Finally you can have a series of MATCHED statements that do things like insert WHEN NOT MATCHED, update WHEN MATCHED, or delete WHEN MATCHED and some other values indicates delete. The possibilities are endless and the syntax is pretty clean. So take the time and experiment with MERGE, it will save you a little effort when conditionally updating and inserting data.
SQL Server 2008 shipped with several enhancements to the T-SQL language. In a recent blog, we looked at the new MERGE syntax; today we are going to look at the new EXCEPT and INTERSECT syntax. Both of these operators allow you to compare results of two queries. Using EXCEPT, you can find all the rows that exist in one query but not the other. Using INTERSECT, you can find all the rows that are the same in both tables. This makes more sense with an example so let's take a look. I took a copy of the HumanResources.Employee table from AdventureWorks and made two copies called Employee1 and Employee2. Then to give us different results, I ran the following delete statement.
DELETE FROM Employee1 WHERE EmployeeID < 10
DELETE FROM Employee2 WHERE EmployeeID > 300
This gives us two tables that have matching records as well as unique records that the other table doesn't have. Now we can explore the statements. First let's run an EXCEPT comparison.
SELECT * FROM Employee1
SELECT * FROM Employee2
This will return the rows in Employee1 that are not also found in Employee2, in this case all the records with an EmployeeID that is greater than 300. Reversing the location of the SELECT statements would return all the rows in Employee2 that were not also found in Employee1, all rows with an EmployeeID less than 10.
Next let's use INTERSECT . The following statement will retun all the records that are contained in both queries, in our case all records with an EmployeeID between 10 and 300.
These are great little additions to T-SQL that allow you to do some quick comparision work on your result sets. With a few twists, you could even write a query that returns all rows from both tables with no match in the other table. Next time you find yourself with data to compare, give EXCEPT and INTERSECT a shot.
Many SSIS transformations, such as the Pivot and the Data Profiling Tasks, require that the data being fed into them be sorted. Without first sorting, some transformations will throw an error and not run, while others will run but the results will not be as expected. The answer is to sort the data before it is fed into the transformation; the problem is that this isn't as simple as you may think. The obvious and simple way to accomplish this is to use the Sort Transformation in SSIS. The Sort Transformation will complete the objective of sorting the data, but the performance might not be exactly what you would expect. The Sort Transformation does all its work in memory; SSIS packages do things in individual sets. This means your data may need to be sorted and resorted again. If you try to work with large data sets, this sorting will take a long time and use a lot of memory. The solution is to sort the data from the source using an ORDER BY clause. That alone, however, won't get it done. You also have to tell SSIS that the data is sorted and how it is sorted. This is done in the Advanced Editor of your data source. First, set the IsSorted property of the source's output to true. Next, set the SortKeyPosition property of each column you specified in your ORDER BY clause; 1 for first, 2 for second, and so on. A SortKeyPosition value of 0 is the default and means that the column is not used in the sort. That's all there is to it, using this method you will be able to sort your data so the SSIS transformations are happy, and can work without hours of waiting and memory hogging.
One property of all SSIS packages that you must understand is the ProtectionLevel. This property tells SSIS how to handle sensitive information stored within your packages. Most commonly this is a password stored in a connection string. Why is this information important? If you don't set the ProtectionLevel correctly, the package may become unusable. Other developers may be unable to open the package or the package may fail when you go to execute it. Understanding these options lets you get out in front of possible problems and will help you to fix an issue if a problem crops up. In a perfect world, you would not need to store sensitive data, but each and every environment is different. Let's look at each of the ProtectionLevel options.
When the package is saved, sensitive values will be removed. This will result in passwords needing to be supplied to the package, through a configuration file or by the user.
This will encrypt all sensitive data on the package with a key based on the current user profile. This sensitive data can only be opened by the user that saved it. It another user opens the package, all sensitive information will be replaced with blanks. This is often a problem when a package is sent to another user to work on.
Sensitive data will be saved in the package and encrypted with a supplied password. Every time the package is opened in the designer, you will need to supply the password in order to retrieve the sensitive information. If you cancel the password prompt, you will be able to open the package but all sensitive data will be replaced with blanks. This works well if a package will be edited by multiple users.
This works the same as EncryptSensitiveWithPassword except that the whole package will be encrypted with the supplied password. When opening the package in the designer, you will need to specify the password or you won't be able to view any part of the package.
This works the same as EncryptSensitiveWithUserKey except that the whole package will be encrypted. Only the user that created the package will be allowed to open the package.
This option will use SQL Server database roles to encrypt information. This will only work if the package is saved to an SSIS server for execution.
So that's it. This option is pretty basic but it is important to understand so that you can be spared unnecessary frustration.
I recently ran into an odd little problem with a Maintenance Plan that I wanted to share. I had a plan that was running the Check Database Integrity Task that suddenly started failing. Nothing about the databases had changed and if you ran a manually DBCC CHECKDB all the databases came back clean. The job history showed a meaningless, truncated message:
Executing query "DECLARE @Guid UNIQUEIDENTIFIER EXECUTE msdb..sp...".: 100% complete End Progress DTExec: The package execution returned DTSER_FAILURE (1). Started: 10:14:30 AM Finished: 10:14:31 AM Elapsed: 1.185 seconds. The package execution failed. The step failed.
Executing query "DECLARE @Guid UNIQUEIDENTIFIER EXECUTE msdb..sp...".: 100% complete End Progress DTExec: The package execution returned DTSER_FAILURE (1). Started: 10:14:30 AM Finished: 10:14:31 AM Elapsed: 1.185 seconds. The package execution failed. The step failed.
When looking at the Maintenance Plan history directly, I had an error that stated: Alter failed for Server 'ejohnsonmobile'. Really nothing at this point has provided any details into a possible fix. Next step was to run a Profiler trace to see what was really going on. When setting up a trace to look for errors, be sure to include the User Error Message and Exception events. Since this is a Maintenance Plan, which is just an SSIS Package, the trace will show you that there is a lot more going on than just the CHECKDB. When looking for errors in the trace I noticed an exception just after the following query was run:
EXEC sys.sp_configure N'user options', 0 RECONFIGURE
EXEC sys.sp_configure N'user options', 0 RECONFIGURE
The exception this caused was:
Error: 5808, Severity: 16, State: 1 Ad hoc update to system catalogs is not supported.
Error: 5808, Severity: 16, State: 1 Ad hoc update to system catalogs is not supported.
That's a little odd, the query was modifying the User Options configuration value, why would we see an error about Ad Hocs updates? Here is where the problem becomes clear. At some point, the Allow Updates configuration option was set to 1. In SQL Server 2000 and older, this option allowed users to make updates directly to the system tables. In SQL Server 2005 and newer, the system tables are gone, replaced with the Resource Database and system views. This option is no longer supported in SQL Server 2005 and beyond, and though you can set Allow Updates to 1 with no error, as soon as you run RECONFIGURE, you will receive the error that ad hoc updates are not supported. Because Allow Updates had been set to 1 and my Maintenance Plan runs the RECONGIFURE statement, this error was thrown and the Maintenance Plan failed.
All I had to do was run "sp_configure 'Allow Updates', 0" to set Allow Updates back to 0 and then everything started working again.


text:
- Collection Overview
- ExhibitionsPast Exhibitions
- Close Up: Piermatteo D'Amelia's The Annunciation
- Journeys East
- The Triumph of Marriage
- Luxury For Export
- A Bronze Menagerie
- Gentile Bellini and the East
- Gondola Days
- Raphael, Cellini, and a Renaissance Banker
- Making of the Museum
- Cosmè Tura
- Off the Wall: Gardner and Her Masterpieces
- Ornament and Illusion: Carlo Crivelli of Venice
- Donatello, Michelangelo, Cellini: Sculptors' Drawings from Renaissance Italy
- The Inscrutable Eye: Watercolors by John Singer Sargent in Isabella Stewart Gardner's Collection
- Anders Zorn: A European Artist Seduces America
- Illuminating the Serenissima: Books of the Republic of Venice
- Modeling Devotion
- Conservation
- Browse RoomsView Room MapsFirst FloorSecond Floor
- Rembrandt
- Angelico, Fra
- Anguissola, Sofonisba
- Bakst, Léon
- Bandinelli, Baccio
- Beckhausen, Jakob
- Bellini, Gentile
- Bellini, Giovanni
- Bellini, Leonardo
- Bermejo, Bartolomé
- Bles, Herri met de
- Bordone, Paris
- Botticelli, Sandro
- Botticini, Francesco
- Boucher, François
- Bourdichon, Jean
- Bronzino, Agnolo
- Bulgarini, Bartolommeo
- Bunker, Denis Miller
- Cambodian: Unknown Artist
- Cellini, Benvenuto
- Chinese: Unknown Artist
- Chunosuke, Niiro
- Civitali, Matteo di Giovanni
- Crivelli, Carlo
- Comes, Francesc, the Younger
- Curtis, Ralph
- Daddi, Bernardo
- Degas, Edgar
- Dewing, Thomas Wilmer
- Dürer, Albrecht
- Dyck, Anthony van
- Eriksson, Christian
- Eurasian: Unknown Artist
- Falconetto, Giovanni Maria
- Fiesole, Mino da
- Flemish: Unknown Artist
- Flinck, Govaert
- Fondulis, Giovanni de
- Francesca, Piero della
- Francia, Francesco
- French: Unknown Artist
- French or German: Unknown Artist
- García de Benabarre, Pedro
- Giorgio, Francesco di
- Giambono, Michele
- German: Unknown Artist
- Geubels, Jacques
- Giotto
- Greek: Unknown Artist
- Hassam, Childe
- Helleu, Paul César
- Hidetsugu, Yosai
- Holbein, Hans, the Younger
- Indian: Unknown Artist
- Iranian: Unknown Artist
- Iranian or Central Asian: Unknown Artist
- Italian: Unknown Artist
- Italian or Spanish: Unknown Artist
- Japanese: Unknown Artist
- Javanese: Unknown Artist
- Ken'ya, Miura
- Kronberg, Louis
- Lippi, Filippino
- Macknight, Dodge
- Maiano, Benedetto da
- Mancini, Antonio
- Manet, Edouard
- Manship, Paul
- Mantegna, Andrea
- Martini, Simone
- Master T.° Ve.
- Matisse, Henri
- Mendoza Binder
- Mesopotamian: Unknown Artist
- Mexican: Unknown Artist
- Michelangelo
- Mor, Antonis
- Moroni, Giovanni Battista
- Mosca, Giovanni Maria
- Moyen, Jan van der
- Paolo, Giovanni di
- Pesellino, Francesco
- Piermatteo d'Amelia
- Pinturicchio, Bernardino
- Planche, Raphael de la
- Pollaiolo, Piero del
- Pourbus, Frans, the Younger
- Raphael
- Rembrandt
- Rimini, Giuliano da
- Robbia, Andrea della
- Robbia, Giovanni della
- Roman: Unknown Artist
- Rossetti, Dante Gabriel
- Rubens, Peter Paul
- Ruskin, John
- Ryonyu, Raku
- Sargent, John Singer
- Schongauer, Martin
- Seisai
- Spanish: Unknown Artist
- Taikan, Yokoyama
- Terilli, Francesco
- Tibetan: Unknown Artist
- Tiegen, Jan van
- Tiepolo, Giovanni Domenico
- Tintoretto, Domenico
- Titian
- Tsunenobu, Kano
- Tura, Cosmè
- Turkish: Unknown Artist
- Turner, J.M.W.
- Uccello, Paolo
- Vasari, Giorgio
- Velázquez, Diego
- Vermeer, Johannes
- Veronese, Paolo
- Voerman, Jan I
- Whistler, James McNeill
- Zorn, Anders
- Zurbarán, Francisco de
- Browse Genres
Self-Portrait, Age 23
Oil on oak panel, 89.7 x 73.5 cm (35 5/16 x 28 15/16 in.)
Genre: European Art, Paintings
Location: Dutch Room
Accession Number: P21n6
Rembrandt's self-portraits, made throughout his long career, served many different purposes, and in these explorations of his own face and personality remain elusive in many ways. This is one of his first painted self-portraits, and unlike most of the earlier ones, it is not a study of expression or emotion. Indeed, the face, though beautifully lit with evocative shadows, is almost expressionless. The painting is all about costume: the plumed cap, silk scarf, and jacket suggest that this might be an elegant sitter, perhaps even an historic personage. The painting is large and carefully finished, almost as though it were a demonstration piece. In 1629, Rembrandt had not yet received any portrait commissions, so this work might have been done to show off his talents.
On the other hand, by 1629, the twenty-three-year-old artist had already begun to attract critical attention. Self-portraits were a desirable collectible for sophisticated connoisseurs, especially since Rembrandt here wears a golden chain, which indicates the status or nobility of the painter's profession, although he had not received any such decoration.
Source: Alan Chong, "Self-Portrait, Aged 23," in Eye of the Beholder, edited by Alan Chong et al. (Boston: ISGM and Beacon Press, 2003): 143.
Collection of the 1st Marquess of Buckingham George Nugent-Temple-Grenville (1753-1813), Stowe House, England by 1788. (probably acquired after 1780)
Passed by descent to his paternal grandson the 2nd Duke of Buckingham and Chandos Richard Plantagenet Temple-Nugent-Brydges-Chandos-Grenville (1797-1861), Stowe House, England.
Purchased by an agent (a certain Wyatt (?), possibly acting on behalf of William Ward) at the auction of the Stowe collection by Christie and Manson, London for £54.12 on 31 August 1848, lot 421.
Collection the 1st Earl of Dudley William Ward (1817-1885), Dudley Castle, England. Collection of the Sawyer family, Somerset, England by 24 February 1890.
Purchased by the art dealers Arthur Tooth & Sons (active 1842-1941), London (for the art dealers Colnaghi & Co. (?), London) at the auction of the collection of Charles Edward Sawyer (1816-1891), Somerset by Christie, Manson & Woods for £1,100 (?) on 13 July 1895, lot 81.
Passed between Tooth and Colnaghi from 13 July 1895 to 6 February 1896.
Purchased by Isabella Stewart Gardner from the art dealers Colnaghi & Co., London for £3,000 by 16 February 1896, through the American art historian Bernard Berenson (1865-1959).
- B. Seeley. Stowe: A Description of the House and Gardens of the Most Noble and Puissant Prince, George Grenville Nugent Temple, Marquis of Buckingham... (Buckingham, 1788), p. 49. (entitled "Rembrandt's Head, when young"; as by Rembrandt)
- J. Seeley. Stowe: A Description of the House and Gardens of the Most Noble and Puissant Prince, George Grenville Nugent Temple, Marquis of Buckingham... (Buckingham, 1797), p. 57. (entitled "Rembrandt, when young"; as by Rembrandt)
- John Smith. A Catalogue Raisonné of the Works of the Most Eminent Dutch, Flemish, and French Painters, vol. 7 (London, 1836), pp. 143, 149, nos. 422 [?], 445. (perhaps catalogued twice accidentally; entitled "A Youth" and "A Young Gentleman" respectively; both as by Rembrandt, both described from prints by anonymous and by Robert Cooper respectively)
- Christie and Manson. Catalogue of the Contents of Stowe House... (London, 15 August-7 October 1848), p. 190, lot 421. (entitled "Portrait of the painter, when young, in a hat and feather"; as by Rembrandt)
- Henry Rumsey Forster. The Stowe Catalogue Priced and Annotated (London, 1848), p. 193, lot 421. (called "Portrait of the painter, when young, in a hat and feather"; as by Rembrandt)
- Gustav Friedrich Waagen. Treasures of Art in Great Britain..., vol. 2 (London, 1854), p. 237, no. 2. (called "A male portrait of considerable size"; as by Rembrandt)
- Catalogue of the Art Treasures of the United Kingdom Collected at Manchester in 1857. Exh. cat. (Manchester, 1857), p. 53, no. 679. (entitled "A Male Portrait"; as by Rembrandt)
- Théophile Thoré-Bürger [pseudonym: W. Bürger]. Trésors d'art exposés à Manchester en 1857 et Provenant des Collections Royals... (Paris, 1857), p. 247. (called "portrait of a man"; as by Rembrandt)
- Eugène Dutuit. Tableaux et dessins de Rembrandt: catalogue historique et descriptif... (supplément à l'oeuvre complet de Rembrandt), vol. 1 (Paris, 1885), p. 17. (as by Rembrandt)
- Christie, Manson & Woods. Catalogue of Pictures by Old Masters and of the Early English School... (London, 13 July 1895), p. 22, lot 81. (entitled "A Young Gentleman"; as by Rembrandt)
- "Sale of Properties." The Times (London, 15 July 1895). (called "a portrait of a young gentleman, represented in a three-quarter view")
- Wilhelm Bode et al. The Complete Work of Rembrandt: History, description and heliographic reproduction of all the master's pictures with a study of his life and art, vol. 1 (Paris, 1897), pp. 10-11, 70, no. 18 (as by Rembrandt, dated 1629; as perhaps commissioned by Constantijn Huygens)
- Art Exhibition: Mrs. John L. Gardner, 152 Beacon St., Boston. Exh. cat. (Boston, 1899), p. 7, no. 15. (as by Rembrandt, when he was 22 years of age)
- Catalogue. Fenway Court. (Boston, 1903), p. 16. (entitled "Portrait of Rembrandt at the Age of Twenty-Two"; as by Rembrandt)
- John Lafarge et al. (eds.). Noteworthy Paintings in American Private Collections, vol. 1 (London, 1907), pp. 62, 106-07, 203-05, ill. (entitled "Rembrandt in a Plumed Cap"; as by Rembrandt, when he was perhaps 22 or 23 years of age, an early work)
- Cornelis Hofstede de Groot. A Catalogue Raisonné of the Works of the Most Eminent Dutch Painters of the Seventeenth Century, vol. 6 (Esslingen, 1915; Translated, London, 1916), p. 263, no. 529. (as by Rembrandt, dated 1629)
- Morris Carter. Isabella Stewart Gardner and Fenway Court (Boston, 1925; Reprint, Boston, 1972), pp. 156-57. (as by Rembrandt, when he was 22 years of age)
- Kurt Bauch. Die Kunst des jungen Rembrandt (Heidelberg, 1933), p. 159, fig. 173. (as by Rembrandt)
- Philip Hendy. Catalogue of the Exhibited Paintings and Drawings (Boston, 1931), pp. 290-92, ill. (as by Rembrandt; as possibly a collaboration with Jan Lievens, 1629)
- Gilbert Wendel Longstreet and Morris Carter. General Catalogue (Boston, 1935), p. 177. (as by Rembrandt or Jan Lievens or both, 1629)
- Abraham Bredius. Rembrandt schilderijen: 630 Afbeeldingen (Utrecht, 1935; Translated, London, 1936), no. 8. (as by Rembrandt, 1629)
- Theun de Vries. In 't huis Rembrandt (Leiden, 1938), p. 11, ill. (as studio of Rembrandt)
- Stuart Preston. "Self-Portrait" in Alfred M. Frankfurter (ed.). The Gardner Collection (New York, 1946), p. 45, ill. (as by Rembrandt, when he was 23 years of age, 1629)
- Seymour Slive. "The Young Rembrandt." Allen Memorial Art Museum Bulletin, vol. 20 (1963), pp. 146, 148, fig. 28. (as by Rembrandt, 1629; in the character of a commissioned portrait)
- Geoffrey Agnew. "Portrait of a Man with a Plumed Hat." Painting of the Month (Oct.-Dec. 1964), p. 77, fig. 120. (as by Rembrandt, 1629)
- Peter Murray et al. Dictionary of Art and Artists (Suffolk, England, 1965), p. 335, fig. 446. (as by Rembrandt, 1629)
- Kurt Bauch. Rembrandt: Gemälde (Berlin, 1966), pl. 292. (as by Rembrandt, 1629)
- Horst Gerson. Rembrandt Paintings (Amsterdam, 1968), pp. 198-99, 490, no. 38. (as by Rembrandt, around 1629; "said to be signed and dated")
- Abraham Bredius et al. Rembrandt: The Complete Edition of the Paintings, ed. 3 (London, 1969), p. 547, no. 8. (as by Rembrandt, 1629)
- Giovanni Arpino et al. L'opera pittorica completa di Rembrandt (Milan, 1969), p. 94, no. 30. (entitled "Self Portrait with a beret"; as by Rembrandt, 1629?)
- Philip Hendy. European and American Paintings in the Isabella Stewart Gardner Museum (Boston, 1974), pp. 199-200, ill. (as by Rembrandt, when he was about 22 years of age, before 1631-1632)
- John Walsh Jr. "Paintings in the Dutch Room" in James Thomas Herbert Baily (ed.). The Connoisseur: An Illustrated Magazine for Collectors, "Isabella Stewart Gardner Museum" (London, 1978), pp. 51, 55, pl. C. (as by Rembrandt, about 1629)
- Ernest Samuels. Bernard Berenson: The Making of a Connoisseur (Cambridge, 1979), p. 244.
- Christopher Brown. Rembrandt: Every Painting, vol. 1 (Milan, 1980), p. 24, no. 29. (as by Rembrandt, about 1629)
- Rollin van N. Hadley. Museums Discovered: The Isabella Stewart Gardner Museum (Boston, 1981), pp. 80-81, ill. (as by Rembrandt, about 1629)
- Christopher Wright. Rembrandt: Self-Portraits (London, 1982), pp. 21, 40, fig. 20, no. 29. (as by Rembrandt, 1629)
- Josua Bruyn et al. A Corpus of Rembrandt Paintings, vol. 1(The Hague, 1982), pp. 218-224, no. A20, figs. 1-3. ("after some hesitation" attributed as an autograph work by Rembrandt, 1629)
- Gary Schwartz. Rembrandt, zijn leven, zijn schilderijen: een niuwe biograpfie met alle beschikbare schilderijen in kleur afgebeeld (Maarssen, 1984), p. 59, fig. 43. (as by Rembrandt, [162]9)
- Rollin van N. Hadley (ed.). The Letters of Bernard Berenson and Isabella Stewart Gardner 1887-1924 (Boston, 1987), pp. xv, xix, 47-50, 52, 120.
- H. Perry Chapman. Rembrandt's Self-Portraits: A Study in Seventeenth-Century Identity (Princeton, 1990), pp. 34, 46-48, 131, pl. 2. (as by Rembrandt, "almost certainly" 1629)
- Mieke Bal. Reading "Rembrandt": Beyond the Word-Image Opposition (Cambridge, 1991), p. 308-09, fig. 8.8. (as by Rembrandt, 1629)
- Claus Grimm. Rembrandt selbst: Eine Neubewertung seiner Porträtkunst (Stuttgart, 1991), p. 28, fig. 43. (as circle of Rembrandt)
- Leonard J. Slatkes. Rembrandt: Catalogo completo dei dipinti (Florence, 1992), no. 238. (as by Rembrandt, about 1629)
- Christian Tümpel. Rembrandt: All Paintings in Colour (Antwerp,1993), pp. 68, 411, no. 156. (as by Rembrandt, about 1629)
- Walter Liedtke. "Rembrandt's 'Man in a gorget and plumed cap' in the J. Paul Getty Museum." The Burlington Magazine for Connoisseurs (1995), pp. 458-62, fig. 54. (as by Rembrandt, 1629)
- Vernon Hyde Minor. Baroque & Rococo: Art & Culture (London, 1999), pp. 236-37, fig. 6.17. (as by Rembrandt, 1629)
- Claus Grimm. "Wege zu Rembrandt: Zum Charakter seiner Selbstbildnisse." Weltkunst (October 1, 1999), p. 1884. (as workshop of Rembrandt)
- Amel Elorche. "Op bezoek bij Rembrandt Thuis." Haagsche Courant (Sept. 1999-Jan. 2000), pp. 8-9, ill. (entitled "Self Portrait with a Plumed Beret"; as by Rembrandt, 1629)
- Christopher White et al. (eds.). Rembrandt by Himself. Exh. cat. (London: National Gallery, 1999), pp. 61, 104-06, figs. 2, 10c, no. 10. (entitled "Self Portrait with Plumed Beret"; as by Rembrandt, 1629)
- Christopher Wright. Rembrandt (Paris, 2000), pp. 319-20, fig. 324. (as by Rembrandt, dated [162]9)
- Hilliard Goldfarb and Alan Chong (eds.). Rembrandt Creates Rembrandt: Art and Ambition in Leiden, 1629–1631. Exh. cat. (Boston: Isabella Stewart Gardner Museum, 2001), pp. 12-13, 15-16, 79-80, 92-94, 97, 109, 117, 121, 123, 129, fig. 1, cat. 5. (as by Rembrandt, 1629)
- Catherine B. Scallen. "Rembrandt in the Nineties." Rethinking Rembrandt. Fenway Court, vol. 30 (Boston, 2002), pp. 194-96, fig. 104, 201-02. (as by Rembrandt, 1629)
- Alan Chong et al. (eds.) Eye of the Beholder: Masterpieces from the Isabella Stewart Gardner Museum (Boston, 2003), pp. 131, 142-43, ill. (as by Rembrandt, when he was 23 years of age, 1629)
- Clifford S. Ackley et al. Rembrandt's Journey: Painter, Draftsman, Etcher. Exh. cat. (Boston: Museum of Fine Arts, 2003), pp. 78081, 312, 334, no. 14, ill. cover. (as by Rembrandt, 1629)
- Melissa Percival. Fragonard and the Fantasy Figure: Painting the Imagination (Farnham, Surrey, 2011), pp. 60, 62, 129, fig. 4.6. (entitled "Self Portrait Aged 23"; as by Rembrandt, 1629)
- George S. Keyes (ed.). Rembrandt in America: Collecting and Connoisseurship. Exh. cat. (Cleveland: Cleveland Museum of Art, 2011), pp. 70-71, 113, fig. 34. (as by Rembrandt, 1629)
- Ernst Wetering et al. A Corpus of Rembrandt Paintings, vol. 6: Rembrandt's Paintings Revisited - A Complete Survey (The Hague, 2014), pp. 94, 494, no. 29. (entitled "Self-portrait with plumed beret"; as by Rembrandt, 1629)


text:
Pink Not a Boy Infant Bodysuit
Sometimes I cringe when I spy little babies with headbands seemingly taped to their bald little heads. Typically, if the kid's in pink, we know it's a girl. And in case that's not enough for you proud parents, slip her into this cheeky "Not a Boy" onesie.


text:
Choose a Page
Choose from a variety of sponsorship packages designed to build brand awareness and increase your
exhibition traffic. Many sponsorship opportunities include: exposure via web and electronic communication
before, during and after the event; onsite exposure through value-added exhibition opportunities, signage and
mentions in print materials. For more information or to secure your sponsorships, please contact
Gene Steinberg at firstname.lastname@example.com, +1-813-960-2105 Ext. 231
or John Phillips at firstname.lastname@example.com, +1-813-739-2292


text:
If you like compelling gritty mysteries, try the Walt Longmire series by Craig Johnson. These mysteries are set in Wyoming and feature sheriff Walt Longmire, his deputy Victoria Moretti, and friend Henry Standing Bear.
Here's how the Craig Johnson described the series in an interview with New Mystery Magazine:
"The series is about Walt Longmire, who has been the sheriff in a rural county in northern Wyoming for twenty-three years. Absaroka County is located alongside the Northern Cheyenne Reservation, where his closest and life-long friend, Henry Standing Bear, lives. Their friendship is based on a mutual trust and respect to which the society of the contemporary high plains should aspire, but to which it unfortunately doesn't always. Because of the strength of the men's friendship and since the books are told from Walt's perspective in first-person present tense, there is a propensity for the narrative to be overly masculine, so Walt's under-sheriff and chief counterbalance is Victoria Moretti, who is everything that Walt is not--female, young, urban, technologically advanced and profane. Actually, there are a lot of female characters who look after Walt, enough so that my wife calls the novels sneaky-women's-issues books cleverly disguised as masculine-adventure mysteries. I just try and make sure they're good and worth the price of admission. "
Click here to read the entire interview.
Start reading with Cold Dish.


text:
1 Riverine rabbit
This lovely rabbit, with its 'moustache' markings, is seldom seen because it is critically endangered, nocturnal and sticks to very specific habitats along dry rivercourses in the arid Karoo. It is South Africa's only true burrowing rabbit, and its population numbers are thought to be in the low hundreds. more
2 Blesbok and bontebok
The blesbok and its Western Cape cousin the bontebok are handsome antelope with white blazes down their faces, chocolate berry brown markings and a complete inability to jump. Nearly wiped out by hunting, fences saved them centuries ago. You'll find them in fynbos-rich parks and the arid interior. more
3 Black wildebeest
Often called the 'clown of the veld', the black wildebeest is a species of gnu that adapted to the Karoo's arid conditions. Its clownishness comes from its odd appearance – dark with a dirty white tail, meathook horns and strange facial hair – as well as a penchant for leaping and galloping around for no apparent reason. more
4 Grey rhebok
Although distributed throughout most of South Africa, the grey rhebok's constant state of hyper-alertness to danger makes it quite difficult to spot. Some think the grey rhebok, also called vaal rhebok or ribbok, is related to an ancient form of sheep or mouflon because it has such a fluffy coat. more
5 Cape mountain zebra
The smallest of all the zebra species, the Cape mountain zebra is immediately identifiable because of its chocolate orange muzzle, the wattle on its neck, and its exceptionally large, donkey-like ears. It is mostly found in the mountainous Karoo and was only saved from complete extinction in the 1930s. more
6 Blue crane
South Africa's national bird is exceptionally elegant, with trailing tail feathers and a tendency to dance. You'll find it wandering in the wheatfields of the Overberg near Cape Town and the eastern Karoo, as well as further afield. In winter, blue cranes can be seen in flocks of several dozen or even several hundred. more
7 African penguins
Only knee-high, in dapper black and white, with pink markings about the face, these are the only penguins found on the African continent. They are classified as endangered, but you can see them fairly easily, especially at Boulders Beach near Cape Town and Betty's Bay, only an hour's drive away. more
8 Augrabies flat lizard
South Africa has fascinating lizards, but few so colourful and charismatic as the Augrabies flat lizard. You can see them at Augrabies Falls National Park, where they live in colonies on the edge of the perilous river gorge and around the boardwalks. more
9 South African fynbos
There are several plant kingdoms in the world, but only one so compact that it is entirely confined within one country. Fynbos or the Cape Floral Kingdom, has 9000 species of plants, around two-thirds of which are found nowhere else. And all this in an area roughly the size of Portugal. The Cape Floral Kingdom is a Unesco World Heritage Site. more
10 Succulent Karoo
South Africa seems to specialise in succulent plants, and their flagship region is here in the Namaqualand, a hotspot of biological diversity in the arid western Karoo. Famed for its horizon-to-horizon floral displays in spring, the succulent Karoo is botanically unique. more


text:
Explorer Post 001
A law enforcement Explorer Post is a cadet program designed for students who are interested in any aspect of law enforcement, and allows individuals to learn about law enforcement careers. Exploring is charted by the Boy Scouts of America. The Explorer Post is also affiliated with the Florida Sheriff's Explorers Association. The program is designed to develop self-esteem, discipline, good citizenship, and leadership with the Post, and to strengthen the partnership between the Sheriff's Office and the youth of our communities.
Please contact the Office of Safe Schools, 863-519-8067, for more information on becoming a member of Explorer Post 001.