text:
(UPDATE 9/1/2008) : I'm still in the process of getting all the
'networking' side of things in order, but i reformatted everything and
have this blog up and running on a VM right now. Once I get the
networking side of things working 100%, i'll begin the process of
moving all my blog entries over to SharePoint. Which brings up a good
point, I should probably make a tool for the conversion process and
post it out on codeplex. I'm sure I'm not the only one that wants or
has been meaning to move everything over to SharePoint, i might as well
make my time worthwhile.
Since it is a nice long weekend I
figured it was about time that I redo my server since it desperately
needs it. If you've noticed, roughly every week and a half or so my
server locks up, stops server pages and needs to be rebooted. The
server is still running windows server 2000 and hasn't really been
reformated since I got it, roughly 4 years ago. I figured it's finally
time to get up to speed and put windows server 2003 R2 on it (yes, I
know, windows server 2008 is out but I'm just not that daring yet)
My goal is to reformat the whole server, have the base OS clean and
secure as can be and run everything off virtuals. The server use to
have all sorts of crap that I installed on it for testing purposes so
by using the virtuals I can keep the base OS clean and then just delete
the testing virtual. Hopefully in the end of all of this I won't have
to restart my server every week and a half.
In addition, I plan on moving this blog finally over to sharepoint.
Its about time that I put my sharepoint blog on a sharepoint server and
practice what i preach. I am all about using the best tools for the
job and blogengine and dasBlog have done me well over the years but
moving my blog to sharepoint will also help me learn new things about
If all goes as planned, my blog should be back up by the end of the
day. If something goes horribly wrong, you won't see my blog for
awhile and you'll know why.
I ran across this link and thought I would share it with everyone. I recall a ways back when I was just coming up to speed with SharePoint 2007, I really couldn't figure out which is the "best practice", .dwp web part files or .webpart files. If you look in the web part gallery, you'll see a mix of both which made it even more difficult to figure it out. Over at DotNetMafia, Corey Roth was nice enough to write a post telling you what each one does, and how .webpart is the latest version and is the one you should be using.
Check out the post here
Updated 01/29/2008
Why Another SubSonic Introduction Blog Posting?:
In my ever growing quest for programming godliness, I've feel that its important to equip myself with all the tools that I can to get the job done. SubSonic is one of those ORM tools that can help save me/you A LOT of initial setup time when it comes to the DAL of the application. 3 tools come to mind when I think of DAL, NHibernate, SubSonic, and LINQ. I've tried NHibernate and frankly I wasn't impressed. I've read about LINQ but haven't had a chance to experiment with it. SubSonic was next on my list of "tools" to experiment with.
Roughly a year ago a co-worker of mine (Dani Diaz) and I both stumbled upon SubSonic. We had recently been using just CodeSmith and Object/Collection template to generate our DAL for our app's. This was certainly fine and worked for our immediate needs but it was merely an attempt at creating a solid DAL. It worked off of SProcs generated by the CodeSmith templates. Any database change required a rebuild of both the object classes and the sprocs. Nothing out of the ordinary there, pretty much any DAL, generator, etc. requires some manual effort when the DB changes. At the time, since what we had been using worked fine, I overlooked SubSonic and what it had to offer. Now that I have had an extra year or so under my belt, and also played with some other ORM's, I've come to realize that SubSonic wasn't something to be overlooked.
In case you're not aware of what SubSonic is, according to the website, SubSonic is a "A Super High-fidelity Batman Utility Belt. SubSonic works up your DAL for you, throws in some much-needed utility functions, and generally speeds along your dev cycle". It is certainly a hefty claim, but after using it and messing around, a claim that I think is WELL backed up.
I'm aware that there are quite a few SubSonic introductions/tutorials out there on the web, just do a Google search and you'll find quite a few. After using NHibernate on a current client project, I figured it was time to give SubSonic another shot. I frankly wasn't too happy with the setup/configuration of NHibernate or the complexity of using in our project and hoped that SubSonic was easier to use. I'll leave my conclusion till the end.
What is required/need to download:
As of time of this posting, SubSonic is at version 2.0.3, you can download it here.
In my sample/example code, I used the AdventureWorksLT database. The full AdventureWorks database is rather large so they offer a "Limited" version which is much smaller and has enough to make decent samples out of. The AdventureWorks database is now on CodePlex and can be found here, download the "LT" version for your specific architecture.
The examples (can be downloaded from the bottom of this posting) are built using Visual Studio 2005 SP1.
Install both SubSonic and the AdventureWorksLT database before continuing.
What is SubSonic?
Like the website says, "SubSonic works up your DAL for you". SubSonic can be used basically 2 ways, as a straight up ORM tool, or as a "zero code" ORM tool.
If your going to use it as a straight up ORM tool, you can use SubSonic to generate objects for you based off your database. You can do this by using the bundle tool called "SubCommander". SubCommander interrogates your database and generates objects off of the tables. What you end up with is basically 2 classes per table. The first is a basic object which represents your table structure. The second object is a "collection" object which represents the "rows" in your database table (a collection of objects). SubCommander is a command line tool, no fancy GUI here. I won't go into all that SubCommander can do, but just open a command line window and goto the "SubCommander" directory. Then type "sonic /?" and look through the list of commands at your disposal.
The second way to use SubSonic is to use it as a "BuildProvider" resulting in a "zero code" DAL. This is a web app only feature, so I haven't messed around with it too much. I encourage you to watch Rob Connery's screencast demonstrating this and how easy it is. Since I work with both web and desktop applications, I personally want to play with the code and move it into separate projects, so this isn't a feature I personally use.
In addition to handling the "manual labor" of the DAL, SubSonic also comes with a few pre-built user controls to help speed development.
SubSonic comes building with the following user controls (I describe the basics, check the SubSonic documentation for more options/details):
Project Setup
I setup the project pretty simply but broken out enough to represent a more tiered approach.
As you can see I broke out the project into 2 separate projects. One is the "persistence" layer, which houses our objects and collections which I generated using SubCommander. The other project is our front-end UI project which has a few examples using SubSonic calling on the Persistence project. I broke the projects out hoping to separate the layers, but unfortunately I wasn't able to do so fully with SubSonic. Even though the UI project should ONLY reference the Persistence project, I still had to add a reference to the SubSonic dll (Update: This is because the persistence layer is a class library and the only way to read from a "config" file is through the executing application(in this case the Web App project), hence why I had to add the SubSonic setup info into the Web.Config). This is because the web.config contains sections which SubSonic needs to run. (As a side note, I've had to do the same thing with NHibernate)
In a web application we put all our "setup" information into the web.config (in a desktop app, this would be put into the app.config). Below is an example of my web.config file.
<!-- configSections isn't a "subsonic" specific section, but the "<section>" definition is -->
<section name="SubSonicService" type="SubSonic.SubSonicSection, SubSonic" requirePermission="false"/>
<SubSonicService defaultProvider="Default">
<!-- Referencing a connection string setup in the connectionStrings section -->
<!-- Also Supports MySQL, Oracle, SQL2000, SQL2005, SQLCE, SQLLite at the time of writing -->
<add name="Default" type="SubSonic.SqlDataProvider, SubSonic" connectionStringName="advWorks" generatedNamespace="Persistence"/>
<add name="advWorks" connectionString="Data Source=coreduo;Initial Catalog=AdventureWorksLT;User ID=sa;Password=password"/>
There are 3 things needed to setup SubSonic.
1) In the <configSections> element, tell the web.config how to read the SubSonic section.
2) Instruct SubSonic how to operate. Tell SubSonic which DataProvider to use and which connection string to use for that provider.
3) Add a connection string.
Enough is enough, lets see some code!
Basic GridView List
To follow along here be sure to download the code samples. I've already generated the DAL and put it into a separate project from the UI.
The first example is just your basic table dump of data in a GridView control, "List.aspx". On the page, I load the ProductCollection and bind it to my GridView and set the GridView to auto generate columns.
protected void Page_Load(object sender, EventArgs e)
//load up all the products from our table and bind it to our datagrid. could also use the SubSonic QuickTable
//and avoid the "manual labor" of loading the table ourselves. Check out the "ProductQuickTable.aspx" example
ProductCollection products = new ProductCollection().Load();
productGridView.AutoGenerateColumns = true;
productGridView.DataSource = products;
There isn't anything too fancy going on here, I get a collection of Products and then bind them to the GridView.
Basic GridView List With Where Clause
In this example I build upon the previous example by adding a dropdown of Product Categories and allow the user to view all the products of a selected category.
//add event handler so that when the user selects a different dropdown item the event fires
categoriesDropDown.SelectedIndexChanged += new EventHandler(categoriesDropDown_SelectedIndexChanged);
public void categoriesDropDown_SelectedIndexChanged(object sender, EventArgs e)
if (!string.IsNullOrEmpty(categoriesDropDown.SelectedValue))
//get all the products that match the selected product category.
ProductCollection products = new ProductCollection().Where("ProductCategoryID", categoriesDropDown.SelectedValue).Load();
productsGridView.AutoGenerateColumns = true;
productsGridView.DataSource = products;
//user selected an invalid item, so clear out the datagrid
productsGridView.DataSource = null;
This time when the user select a category from the dropdown I pass that ProductCategoryID value in our Where clause to filter our data and then bind the returned Product Collection to the GridView. Much like NHibernate, you filter and query your collections by specify "expressions". With SubSonic you can do Where, Order By's, Between's, etc., the same "expressions" you'd use if you were writing SQL.
Add A Product
As with displaying data, adding data is just as easy with SubSonic. Since objects are generated for you, you can instantiate an object, set its required fields and then persist the data to the database.
As you can see in the image, I've created a few textbox's and dropdowns to make a simple add product page with only the required fields. Here is the code that gets executed on the Save button click event.
protected void saveProductButton_Click(object sender, EventArgs e)
//create a new product and set the "necessary" fields based on the users input to the screen.
Product productToAdd = new Product();
productToAdd.Name = nameTextBox.Text;
productToAdd.ProductNumber = productNumberTextBox.Text;
productToAdd.StandardCost = Convert.ToDecimal(stdCostTextBox.Text);
productToAdd.ListPrice = Convert.ToDecimal(listPriceTextBox.Text);
productToAdd.ProductCategoryID = Convert.ToInt32(prodCategoriesDropDown.SelectedValue);
productToAdd.ProductModelID = Convert.ToInt32(prodModelDropDown.SelectedValue);
productToAdd.SellStartDate = DateTime.Parse(sellStartDateTextBox.Text);
productToAdd.Rowguid = Guid.NewGuid();
productToAdd.ModifiedDate = DateTime.Now;
//persist our new proudct
//pull up our new product and display it in the grid for user verification
ProductCollection products = new ProductCollection().Where("ProductID", productToAdd.ProductID).Load();
catch (Exception ex)
//display any errors here
Once we create the Product object and set the required fields, we persist the object and then pull it up and bind it to our GridView so that the user knows the object was successfully added.
Delete A Product
Again, deleting a object with SubSonic is easy. Tell SubSonic which object based on the ID value, and SubSonic takes care of the rest. This example has a GridView that I add a Delete command button do and then handle the row deleting event to delete the object.
productsGridView.RowDeleting += new GridViewDeleteEventHandler(productsGridView_RowDeleting);
if (!IsPostBack)
//if we're not a postback, load our datagrid with a delete "command", and load up all the products
productsGridView.AutoGenerateDeleteButton = true;
productsGridView.DataSource = LoadProducts();
productsGridView.DataKeyNames = new string[] { "ProductID" };
public void productsGridView_RowDeleting(object sender, GridViewDeleteEventArgs e)
//get the product id of the selected row
int productID = Convert.ToInt32(((GridView)sender).DataKeys[e.RowIndex]["ProductID"]);
//delete the selected product
//rebind the updated data to the grid
productsGridView.DataSource = LoadProducts();
//get back a list of ALL products
private ProductCollection LoadProducts()
//return back a listing of all the products in our table
return new ProductCollection().Load();
All we need to do to delete the Product from the database is pass the Product ID to the Delete method of our Product Object class, simple as that. Once again SubSonic does the heavy lifting for me.
Update A Product
Seeing a reoccurring theme here? SubSonic makes your CRUD tasks easy and painless. In the update example, I added the same textbox's and dropdowns as I did for the Add Product example. I also have a GridView on the page which I added a hyperlink column so that when it's clicked we pass a query string variable to the page and change it into "edit" mode. Once updated we display the specific Product in the GridView.
//set the ProductID property to the request variable ID
ProductID = Request["id"];
if (!IsPostBack && ProductID == null)
//if we're NOT a postback and no ID was specified, then load EVERY thing from the product table and allow user to select
//which one they want to edit.
//add a link so that we can post to ourselves, but with an ID of a record to update
HyperLinkField grdLink = new HyperLinkField();
grdLink.Text = "Update";
grdLink.DataNavigateUrlFields = new string[] { "ProductID" };
grdLink.DataNavigateUrlFormatString = "UpdateProduct.aspx?id={0}";
productsGridView.DataSource = LoadProducts(null); //load all the products
else if (!IsPostBack && ProductID != null)
//if we're NOT a postback, but the ID variable isn't null, then load the record matching that ID for update
//rebind the datagrid
productsGridView.DataSource = LoadProducts(ProductID);
//fetch the product specified by the request variable
Product prod = Product.FetchByID(ProductID);
if (prod != null)
//set the fields so that we can update the record.
ltProductID.Text = prod.ProductID.ToString();
nameTextBox.Text = prod.Name;
productNumberTextBox.Text = prod.ProductNumber;
stdCostTextBox.Text = prod.StandardCost.ToString("F");
listPriceTextBox.Text = prod.ListPrice.ToString("F");
sellStartDateTextBox.Text = prod.SellStartDate.ToShortDateString();
//load the dropdowns, which are basically foreign key columns
#region Load DropDowns and Products
// code omitted from posting but is in source zip
//update our record based on the product id
Product prodToUpdate = Product.FetchByID(ProductID);
prodToUpdate.Name = nameTextBox.Text;
prodToUpdate.ProductNumber = productNumberTextBox.Text;
prodToUpdate.StandardCost = Convert.ToDecimal(stdCostTextBox.Text);
prodToUpdate.ListPrice = Convert.ToDecimal(listPriceTextBox.Text);
prodToUpdate.ProductCategoryID = Convert.ToInt32(prodCategoriesDropDown.SelectedValue);
prodToUpdate.ProductModelID = Convert.ToInt32(prodModelDropDown.SelectedValue);
prodToUpdate.SellStartDate = DateTime.Parse(sellStartDateTextBox.Text);
prodToUpdate.ModifiedDate = DateTime.Now;
//persist our updated proudct
//pull up our updated product and display it in the grid
//disply error here
When the user hits the Save button, we fetch the product we want to update based on the Query String Product ID. Then, we update the Product objects properties and call its Save() method to persist it to the database. SubSonic is smart enough to know whether it needs to update or insert a record.
SubSonic QuickTable Example
As mentioned earlier in this post, SubSonic comes with a barebones, low-overhead Quick Table control and all you have to do is tell it the table or "object" to display. This gets rid of the hassle of a GridView and the best part is you don't have to write a single line of "data binding" code.
I'd show you the code behind, but there isn't any. Here's the html source.
<!-- use subsonic quicktable to quickly display all table data, also add a LinkToPage for edits -->
runat="server" />
SubSonic AutoScaffold Example
I saved the best for last here. The AutoScaffold control does basically everything I demo'd above, but with basically ZERO effort on your part. Add the SubSonic user control to your page and that is it, you've got all your CRUD operations taken care of and you didn't have to write any code.
Again, no code behind to show, but here is how the html source looks.
<!-- use subsonic auto scaffold to quickly get a page for your tables CRUD (Create, Read, Update, Delete) operations -->
The AutoScaffold does all our work for us. In addition, it adds paging and sorting by default to the list view. It does everything we need to perform our CRUD operations.
Everything wasn't 100% easy, I'll admit that. I probably spent about 3 hours of banging my head getting SubSonic to work in a multiple project solution (Update: as mentioned above, this is because of the way .NET is designed, SubSonic can only read a config file from the executing application, in our case here, the Web application project, hence the web.config file needs to have the SubSonic config info). Every tutorial and example I found, including the ones on the SubSonic site, always used SubSonic in just 1 project. Other than that initial hurdle, SubSonic made coding a breeze. I personally found SubSonic easier to use and setup than NHibernate, and no need for messing "mapping" files. I didn't get a chance to play with stored procedures with SubSonic, but from everything I've read and the screencasts I watched, SubSonic handles your sprocs with easy (these guys thought of everything!). I also didn't play around with the custom "query" code that you can write with SubSonic, again, it appears to be pretty damn easy to use. I am looking forward to using SubSonic on a client project and see if it stands up to the real test.
Source Code
SubSonicTest.zip (71 kb)


text:
Hotel Furian, St Wolfgang
Hotel Furian Reviews
Add a review
11 June 2011
Great time in Austria.
Janice Lee, Kendal
A quiet hotel but only 5 minutes walk from the centre of the village, the lake, the Schaffsberg railway and the ferries. Very comfortable rooms and good food. The owners and staff are lovely people and could not have been more helpful or knowledgeable about the area. The little lido on the lake was a great place to spend a warm afternoon.
The best thing about my stay was ...
The people and the view from our balcony.

subset: commoncrawl


text:
Qureshi, Memon, Wiil (2010): EWAS: Modeling Application for Early Detection of Terrorist Threats Memon, Nasrullah; Alhajj, Reda (Eds.), From Sociology to Computing in Social Networks, Lecture Notes in Social Networks, Vol. 1, 135-156, 978-3-7091-0293-0, Springer-Verlag/Wien 2010
Fragments from the documentation of suspected plagiarism found in the thesis of Nasrullah Memon are listed below if they also show parallels to Memon's publication given above. In order to see exactly what parallel exists between the source text of the fragment and the publication, one can follow these steps:
- Open the online text comparison tool
- Copy the full text of the publication into the right box of the tool
- Click on a fragment listed below and copy the source text (right hand side of the fragment) into the left box of the tool
- Press "Texte vergleichen", text parallels between Memon's publication and the source text are now marked in colour.
Note that while great care has been taken to avoid mistakes, this documentation does not comply with the standards that are routinely applied in the VroniPlag Wiki for the documentation of plagiarism in doctoral theses. In particular, these findings have not been double-checked.
|Fragments Dissertation
|Pages Publication
|198 03
|three consecutive sentences are taken from the source. For the first, Nm's PhD thesis is referenced, for the second, the correct source is referenced, and the third is not referenced at all.


text:
CarlyCarmel Model
Steve Scott ThompsonPhotographer Male Santa Cruz, California, US
My MM URL: http://www.modelmayhem.com/StevenScottThompson1975
Mayhem # 3026141
About MeHello M.M. ,
I fell in love with photography during high school in 1993. Ever since I've been seeking out beauty to photograph with my own artistic flair. In college I was trained as an artist, and consequently I think as one now. Photographing models has been one of my favorite things to do since I began my journey down that road. I hope to have a lot of fun and lucrative times ahead with the models on Model Mayhem.
Have you worked with Steve Scott Thompson? Add Credits for Steve Scott Thompson! >>
CarlyCarmel Model
PatrickTho... Photographer
Susan Diane Rogan Model
Elaina Meyers Model
Elyse Nicole Craft Model
HollySearson Model
Loading Content


text:
Once upon a time, there was this husband and wife.
Over the years this couple has three kids, and every time a new baby is born, they'd reach into this bin at the local hardware store and pull out a random seed then go bury it in the woods so they could watch a plant grow up alongside their child.
For the oldest son, the seed turned out to be a cherry tree and he always loved stepping on its pink petals as they'd drop in the fall.
For their second child, a daughter, the plant became bamboo and they laughed at how quick it shot up and how straight it dug down.
But for their third child, a boy, his seed grew into something strange – a solid wooden plank that rose only about three feet out of the ground, but was covered on all sides in smooth bark, and had no branches or leaves to speak of.
This couple, alarmed by what they saw, decided not to tell the young son about his plant and instead told him that the seed of his birth was accidentally planted in bad soil, and therefore, was never able to grow anything at all.
Many years passed, and the husband and wife soon forgot about the strange plant hidden in the woods.
Until one summer, when the third child was twelve, he stumbled on that living upright board and amazed by its strange shape, he'd often return to lean his back against this grown seed, unaware that it was his birthright and as he grew up, whenever he felt lonely or unhappy, he'd return to that spot just to rest against its smooth, steady hands.
But one night, when the boy was eighteen and grown, he wandered into those woods, pissed and drunk, determined to tear that plant down. He pulled at it, but his yanking proved useless.
He kicked at it hard with the heel of his boot, but it wouldn't budge.
So finally he stuck a rusted shovel in the dirt and decided to rip its roots out. Hours passed, as he swung foot after foot of soft earth into the air, trying to find the end of the plant's long, solitary leg. He had blisters on his hands by the time he found the lowest point.
Where the undergrowth ended looked like a grey tennis ball or a fist made out of smooth rock, or a granite pomegranate.
But when he reached out to touch it, it opened along a hidden seam revealing a row of sharp teeth with which it snapped two of his fingers off like carrots. Angry and bleeding, he punched it.
First once, then again and again and again until its teeth fell out across the floor of his dirt hole.
He stood in silence, watching the round mouth frown and wince, then finally shut. The plant's root that stretched up to the surface started to twitch so violently that it shook the ground itself.
And the dirt the boy had piled up all around started to rain down then came crashing, like an avalanche on top of him until the ground on the surface once more lay flat... and the only thing left to mark where the boy had fallen was a thin smooth wooden board all alone, left looking like a tombstone.


text:
When a massive fire kills their parents, three children are delivered to the custody of cousin and stage actor Count Olaf, who is secretly plotting to steal their parents' vast fortune.
Three children – Violet, Klaus and Sunny Baudelaire – are left orphaned when their house burns down, with their parents in it, in mysterious circumstances. They are left in the custody of a distant relative, Count Olaf (played by Jim Carrey). It is soon apparent that Count Olaf only cares about the children for their large inheritance. Written by grantss
Download Lemony Snicket's A Series of Unfortunate Events
|Quality (Size)
|Download Links
|Sub Indo
|Eng Sub
|Lemony Snicket's A Series of Unfortunate Events
|BluRay (750 Mb)
|Kilk Disini
|Kilk Disini


text:
Determined to ensure that Medicare patients continue to receive care from doctors in Alaska and across the country, U.S. Senator Mark Begich today voted to prevent a 24 percent cut to Medicare providers scheduled to take effect Tuesday and introduced legislation designed to provide additional fixes to Medicare. The Protecting Access to Medicare Act passed the Senate with a vote of 64 to 35.
"Though I'm pleased a bipartisan bill passed today, I'm still determined to find a permanent fix to this problem in which elderly Americans are at risk of inadequate health care," Begich said. "This Congress cannot continue to kick the can down the road -- on this and other critical issues."
Due to the so-called sustainable growth rate (SGR), a reimbursement formula widely recognized as flawed, the reduction in payment to Medicare providers was schedule to go into effect tomorrow. While Begich supported the temporary patch offered today to address the immediate problem of physician compensation, he expressed frustration that the Senate failed to rally behind a permanent fix.
At the same time, Begich is building on efforts to improve Medicare by introducing two Medicare bills today: the Medicare Access Improvement Act and the Medicare Rural Community Hospital Demonstration Extension Act.
The Medicare Access Improvement Act will addresses the longstanding problem Medicare beneficiaries have in finding a primary care physician in Alaska. This bill will provide more generous reimbursement to primary care physicians by increasing Medicare rates to be in line with other primary care physician rates set by the state. This bill has received support from the American Academy of Family Physicians
The Medical Rural Community Hospital Demonstration Act will extend the current Rural Community Hospital (RCH) Demonstration Program. Currently, this program provides cost based reimbursement to rural hospitals that are too large to be Critical Access Hospitals. The bill helps address the unique challenges and financial uncertainty facing hospitals delivering health care in our rural communities. Three Alaska hospitals would benefit from the bill: Bartlett Regional Hospital in Juneau, Central Peninsula Hospital in Soldotna, and Mt. Edgecumbe Hospital in Sitka.
Source: http://www.begich.senate.gov/public/index.cfm/2014/3/begich-votes-to-ensure-medicare-patients-can-still-access-health-care