11-11
Year
2018
2019
|
Contributors
|
About
People
2018 Fall
Christopher Merrill
Masthead
Leslie Carol Roberts, Editorial Director
Joseph Lease, Editor
Vanessa Kauffman Zimmerly, Editorial Manager
William Felker, Design Director


---
layout: post
title: "Key Facts"
description: "The 2 Minute Summary"
header-img: "img/banner.jpg"
---
Risk to water supply
The geological layers where oil might be located are beneath the aquifer which supplies drinking water to the local area. The oil speculator proposes to drill straight through the aquifer. Sutton and East Surrey Water have expressed ongoing concern about the "risk to the water supply" (BBC News).
35 metre high massive oil rig
Nearly twice the height of Leith Hill Tower, it is so tall it needs aircraft warning lights.
Risk of serious air pollution
Gas flaring will be used as part of the operations, and the bore hole will also require frequent venting during certain phases of the drill.
Traffic chaos and road safety
Over 1,100 HGV movements are planned from Dorking up Coldharbour Lane, including a massive self-propelled oil rig and 60 tonne crane.
Irreparable damage to the ancient sunken lane
Coldharbour Lane is hundreds of years old, near unique and only 3.8 metres wide in places. A recent survey shows landmark trees at risk.
Wired-off compound on public land
A 3 metre high security fence will be installed around one hectare of natural forest woodland supporting threatened species of flora and fauna. The area will be clear felled.
Desecrating your AONB and Green Belt
The proposed drill site is an Area of Outstanding Natural Beauty, a place of great landscape heritage in the Green Belt, and within contamination distance of an SSSI. The impacts of the development could not be wholly reversed. It’s estimated it would take 25 years to replicate just the appearance of the site.
Red List species on site
Birds that frequent the site are on the RSPB Red List as globally threatened with severe decline (up to 50%) in UK breeding population and loss of range in last 25 years.
Local democracy overruled
A sustained community campaign won a public inquiry in 2012 but was overthrown in 2014 by a High Court ruling in favour of drilling “in the national interest”.
Exploratory drilling or full scale production?
Planning permission to date is for exploratory drilling but the oil company refuse to rule out full scale production. Conventional drilling may give way to novel extraction methods through ‘acidisation’ – toxic chemicals pumped deep into the earth to loosen the so-called ‘tight’ oil.
Mass industrialization of the Weald
Referring to ‘tight oil’, Stephen Sanderson, CEO of UK Oil & Gas Investments (UKOG) says “This type of oil deposit very much depends on being able to drill your wells almost back to back so it becomes very much like an industrialised process.” Other sites in planning, preparation or production include Brockham, Horsehill, Albury, Broadford Bridge, Palmer’s Wood (Godstone), King’s Farm (South Godstone), and others.
“There is no compelling need for oil site in Surrey Hills” public inquiry told.
Paul White, a planner with the consultancy Atkins, said any oil found would represent a very small percentage of UK onshore hydrocarbons and would make only a small contribution to the UK economy. “There is no compelling need to exploit the Holmwood prospect”, he said. When asked what weight should be given to the need to drill for oil in the area, Mr White said “negligible”.


Preparation time
30 mins to 1 hour
Cooking time
10 to 30 mins
Serves
Serves 4-6
Creamy Jerusalem artichoke soup is served with a game patty and artichoke crisps.
For the Jerusalem artichoke soup, heat the vegetable oil in a large pan and gently fry the onion and a pinch of salt for 5-6 minutes, or until soft.
Meanwhile, cut the artichokes into roughly 2cm/1in cubes. Add them to the onions and fry for a further 3-4 minutes. Pour in the chicken stock and cream and cook over a medium heat until the vegetables are soft. Add the lemon juice and cook for five more minutes.
Transfer the cooked vegetables to food processor and blend to a smooth soup. If it is too thick, add a little more stock or water. Taste to check the seasoning and add salt and pepper as required. Keep warm until ready to serve.
For the game burger, heat a dash of the olive oil in a frying pan. Once hot, add the onion and gently fry until soft and translucent. Set aside to cool.
Put the livers, pork fat, throat (or belly), game and apricots through a mincer, or very finely chop them (alternatively, ask your butcher to do this for you). Add one egg, the cream and breadcrumbs and mix together. If the mixture doesn’t bind together add the other egg. Season with salt and pepper or, to test the seasoning of the burger, roll a small amount into a mini burger, fry and taste.
When satisfied with the seasoning, mould the meat into burgers and fry in a large frying pan with the olive oil for 2-3 minutes on each side.
For the Jerusalem crisps, fill a deep-fat fryer with vegetable oil and preheat to 180C/350F. (CAUTION: hot can be dangerous. Do not leave unattended.)
Dry the slices of artichokes with a clean tea towel and dust with flour. Fry for two minutes, or until crisp and golden-brown.
Serve the Jerusalem artichoke soup with the game burger in the centre of each of the bowls, garnished with the artichoke crisps, chives and a swirl of olive oil.


dhtmlxMenu 1.0. Samples
Featured Samples:
Building Context Menu with script
Use dhtmlxMenu as context menu, generating items on the fly with script
Context menu
Build context menu with XML
Samples Grouped by Category:
Context Menu
Initialization/Loading
Items properties
Layouts
Styles and skins
© DHTMLX LTD., 2004-2007


Home > Remaining Characters
Max limit: 20, warn when 5 or less remaining, disable button after max limit
Max limit: 10, warn when 2 or less remaining, block input after max limit
Max limit: 10, warn when 5 or less remaining, block input after max limit


Pin On Creative Arts Amateur Professional Artists Digital Drawings Paintings Illustrations Wallpapers
Free Download Download The 9 New Stock Wallpapers From Android 60 2819x2560 For Your Desktop Mobile Tablet Explore 81 Marshmello Wallpapers Hd Marshmello Wallpapers Hd Dj Marshmello Wallpapers Marshmello Dj Wallpapers
Android 9 Wallpapers Top Free Android 9 Backgrounds Wallpaperaccess
Download Black Wallpaper By Kabewr 3d Free On Zedge Now Browse Millions Of Popular Abstract Wallpaper Samsung Wallpaper Black Wallpaper Graphic Wallpaper
Download New Android 12 Wallpapers For Any Device Right Now
Download The Google Pixel 4a S New Eclipse Live Wallpaper On Any Device


| as_dribble | Coerce to a 'dribble' |
| as_id | Extract and/or mark as file id |
| as_shared_drive | Coerce to shared drive |
| confirm_dribble | Check facts about a dribble |
| confirm_single_file | Check facts about a dribble |
| confirm_some_files | Check facts about a dribble |
| do_paginated_request | Make a request for the Google Drive v3 API |
| do_request | Make a request for the Google Drive v3 API |
| dribble | dribble object |
| dribble-checks | Check facts about a dribble |
| drive_about | Get info on Drive capabilities |
| drive_api_key | Edit and view auth configuration |
| drive_auth | Authorize googledrive |
| drive_auth_configure | Edit and view auth configuration |
| drive_browse | Visit Drive file in browser |
| drive_cp | Copy a Drive file |
| drive_create | Create a new blank Drive file |
| drive_deauth | Suspend authorization |
| drive_download | Download a Drive file |
| drive_empty_trash | Empty Drive Trash |
| drive_endpoint | List Drive endpoints |
| drive_endpoints | List Drive endpoints |
| drive_examples | Example files |
| drive_examples_local | Example files |
| drive_examples_remote | Example files |
| drive_example_local | Example files |
| drive_example_remote | Example files |
| drive_extension | Lookup extension from MIME type |
| drive_fields | Request partial resources |
| drive_find | Find files on Google Drive |
| drive_get | Get Drive files by path or id |
| drive_has_token | Is there a token on hand? |
| drive_link | Retrieve Drive file links |
| drive_ls | List contents of a folder or shared drive |
| drive_mime_type | Lookup MIME type |
| drive_mkdir | Create a Drive folder |
| drive_mv | Move a Drive file |
| drive_oauth_app | Edit and view auth configuration |
| drive_publish | Publish native Google files |
| drive_put | PUT new media into a Drive file |
| drive_read_raw | Read the content of a Drive file |
| drive_read_string | Read the content of a Drive file |
| drive_rename | Rename a Drive file |
| drive_reveal | Add a new column of Drive file information |
| drive_rm | Delete files from Drive |
| drive_share | Share Drive files |
| drive_share_anyone | Share Drive files |
| drive_token | Produce configured token |
| drive_trash | Move Drive files to or from trash |
| drive_unpublish | Publish native Google files |
| drive_untrash | Move Drive files to or from trash |
| drive_update | Update an existing Drive file |
| drive_upload | Upload into a new Drive file |
| drive_user | Get info on current user |
| googledrive-configuration | googledrive configuration |
| is_dribble | Check facts about a dribble |
| is_folder | Check facts about a dribble |
| is_folder_shortcut | Check facts about a dribble |
| is_mine | Check facts about a dribble |
| is_native | Check facts about a dribble |
| is_parental | Check facts about a dribble |
| is_shared_drive | Check facts about a dribble |
| is_shortcut | Check facts about a dribble |
| local_drive_quiet | googledrive configuration |
| no_file | Check facts about a dribble |
| prep_fields | Request partial resources |
| request_generate | Build a request for the Google Drive API |
| request_make | Make a request for the Google Drive v3 API |
| shared_drives | Access shared drives |
| shared_drive_create | Create a new shared drive |
| shared_drive_find | Find shared drives |
| shared_drive_get | Get shared drives by name or id |
| shared_drive_rm | Delete shared drives |
| shared_drive_update | Update a shared drive |
| shortcut_create | Create a shortcut to a Drive file |
| shortcut_resolve | Resolve shortcuts to their targets |
| single_file | Check facts about a dribble |
| some_files | Check facts about a dribble |
| with_drive_quiet | googledrive configuration |


Operator |
Description |
$ |
The root element to query. This starts all path expressions. |
@ |
The current node being processed by a filter predicate. |
* |
Wildcard. Available anywhere a name or numeric are required. |
.. |
Deep scan. Available anywhere a name is required. |
.<name> |
Dot-notated child |
['<name>' (, '<name>')] |
Bracket-notated child or children |
[<number> (, <number>)] |
Array index or indexes |
[start:end] |
Array slice operator |
[?(<expression>)] |
Filter expression. Expression must evaluate to a boolean value. |
Functions can be invoked at the tail end of a path - the input to a function is the output of the path expression. The function output is dictated by the function itself.
Function |
Description |
Output |
min() |
Provides the min value of an array of numbers | Double |
max() |
Provides the max value of an array of numbers | Double |
avg() |
Provides the average value of an array of numbers | Double |
stddev() |
Provides the standard deviation value of an array of numbers | Double |
length() |
Provides the length of an array | Integer |
sum() |
Provides the sum value of an array of numbers | Double |
<EMAIL_ADDRESS>> 18)]where @ represents the current item being processed. More complex filters can be created with logical operators && and ||. String literals must be enclosed by single or double quotes
<EMAIL_ADDRESS>== 'blue')]or
<EMAIL_ADDRESS>== "blue")])
Operator |
Description |
== |
left is equal to right (note that 1 is not equal to '1') |
!= |
left is not equal to right |
< |
left is less than right |
<= |
left is less or equal to right |
> |
left is greater than right |
>= |
left is greater than or equal to right |
=~ |
left matches regular expression e.g<EMAIL_ADDRESS>=~ /foo.*?/i)] |
in |
left exists in right e.g<EMAIL_ADDRESS>in ['S', 'M'])] |
nin |
left does not exists in right |
subsetof |
left is a subset of right e.g<EMAIL_ADDRESS>subsetof ['S', 'M', 'L'])] |
anyof |
left has an intersection with right e.g<EMAIL_ADDRESS>anyof ['M', 'L'])] |
noneof |
left has no intersection with right e.g<EMAIL_ADDRESS>noneof ['M', 'L'])] |
size |
size of left (array or string) should match right |
empty |
left (array or string) should be empty |


Page Not Found
Page not found. Your pixels are in another canvas.
A list of all the posts and pages found on the site. For you robots out there is an XML version available for digesting as well.
Page not found. Your pixels are in another canvas.
Neutrino is a website for neutrino physics.
I will miss you.
Neutrino is a website for neutrino physics.
Hamiltonian
Slides
Slides
Slides
Random notes for Section 14.1 of Halzen & Martin.
The authors consider collision less neutrino propagation. The convention for Hamiltonian is
The phenomenon is very familiar to everyone now. I am re-reading this paper to find out how the continuous spectrum case is done, i.e., section 4 in this pap...


The interleukin-5 /receptor interaction activates Lyn and Jak2 tyrosine kinases and propagates signals via the Ras-Raf-1-MAP kinase and the Jak -STAT pathways in eosinophils.
Abstract
We have shown that the interaction of interleukin (IL) -5 with the receptor activates Lyn tyrosine kinase within 1 min and Jak2 tyrosine kinase within 1-3 min. IL-5 also stimulates GTP binding to p21ras. The signal is subsequently propagated through the activation of Raf-1, MEK, and MAP kinases as shown by their increased autophosphorylation in vitro and phosphorylation in situ. Jak2 kinase has been shown to phosphorylate STAT nuclear proteins. The activation of STAT nuclear factors was studied by electrophoretic mobility shift assay using a gamma activation site (GAS) probe. We found that IL-5 induces two GAS-binding proteins in eosinophils, one of which is STAT1. We conclude that IL-5 induced signals are propagated through two distinct pathways: (1) Lyn -- > Ras -- > Raf-1 -- > MEK -- > MAP kinase and (2) Jak2 -- > STAT1.


To sorry worldbiting acTo sorry world an at do spoil along. Incommode he depending do frankness remainder to. Edward day almost active him friend thirty piqued. People as period twenty my extent as. Set was better abroad ham plenty secure had horses. Admiration has sir decisively excellence say everything inhabiting acceptance. Sooner settle.


Data quality simulation can be used to check the robustness of data analysis findings and learn about the impact of data quality contaminations on classification. This package helps to add contaminations (noise, missing values, outliers, low variance, irrelevant features, class swap (inconsistency), class imbalance and decrease in data volume) to data and then evaluate the simulated data sets for classification accuracy. As a lightweight solution simulation runs can be set up with no or minimal up-front effort.
| Version: | 0.2.0 |
| Imports: | DMwR, reshape2, ggplot2, methods, stats, caret, doParallel, foreach, e1071 |
| Suggests: | gbm, preprocomb, preproviz, knitr, rmarkdown |
| Published: | 2016-07-26 |
| Author: | Markus Vattulainen [aut, cre] |
| Maintainer: | Markus Vattulainen <markus.vattulainen at gmail.com> |
| BugReports: | https://github.com/mvattulainen/preprosim/issues |
| License: | GPL-2 |
| URL: | https://github.com/mvattulainen/preprosim |
| NeedsCompilation: | no |
| CRAN checks: | preprosim results |
| Reference manual: | preprosim.pdf |
| Vignettes: |
Preprosim |
| Package source: | preprosim_0.2.0.tar.gz |
| Windows binaries: | r-devel: preprosim_0.2.0.zip, r-release: preprosim_0.2.0.zip, r-oldrel: preprosim_0.2.0.zip |
| OS X binaries: | r-release: preprosim_0.2.0.tgz, r-oldrel: preprosim_0.2.0.tgz |
| Old sources: | preprosim archive |
Please use the canonical form https://CRAN.R-project.org/package=preprosim to link to this page.


Team TASEWA's Expense Tracker
Dashboard
Welcome!
Log Out
Current Income: $
Current Balance: $
Current Expense: $
User Profile
Income List
Expense List
View Graph


Todo List
- Class CrowdedChess
- Currently this script finds a solution. Instead, it should find the maximum number of knights for a given size.
- Class Gecode::Int::Arithmetic::Mult< View >
- Currently this propagator only works for View being IntView. This will change when integer views are available in fully generic form.
- Member Gecode::producer_consumer (Space *home, const IntVarArgs &produce_date, const IntArgs &produce_amount, const IntVarArgs &consume_date, const IntArgs &consume_amount, int initial, IntConLevel icl=ICL_DEF)
- Make amounts variable, requires changes to cumulatives.


Collage Generator uses machine learning techniques, such as K-Means Clustering, to determine which images should be used to draw the message and which to use as the background.
A simple interactive square lattice gas simulation.


{% extends "layout.html" %}
{% from "macro/render-list-of-posts.html" import render_posts %}
{% block title %}{{ user.username }}'s submissions{% endblock %}
{# we need to reverse user.post, so that recently added posts goes first #}
{% block content %}{{ render_posts(user.posts|reverse) }}{% endblock %}


My Name is Estonkaranja,over the years my dream has been of positive energy in technology contribution,
nation building and making a generation of tech concious beings.Born and raised in the highlands of kisii,
Kenya,studied my primary,highschool to join Jkuat univeristy and now currently at Moringa School doing
what I love. In the past I have done project on wordpress, such as palaiseleganza.com,in Moringa I look forward
to be a full stack developer .I prefer watching movies,series especially those that surround tech,fiction and drama
,my favourite being Triple frontier.
please view this site on git-hub pages at github page
Acuatlly my first and for most help came from google and also had helped me acqurie more from technology
Click the words in bold blue To acquire goole on your laptop and browse swiftly
and faster while it is very securec you according to the data bundles second website(Youtube.com) To be able to acquire alot of funky and favorite videos in the whole Universe.
that while actully help in in the day to day hustle and reduse stress.


1 Samuel 28:6
And when Saul inquired of the LORD, the LORD answered him not, neither by dreams, nor by Urim, nor by prophets.


|
CD Project: CDs
of important click here. (Your
computer must be connected to the Internet for this hyperlink to work.) |
*
(Complete
Record Book Indices)
Photographs and Index prepared by
One of the
most useful sources of information for historical and genealogical research is
the collection of legal records maintained in the office of the Clerk of
Courts. Many citizens required the
services of the court system sometime in their lifetime. Each interaction was duly recorded by the
system and provides insight into some aspect of the life of that person. The challenge for the researcher is to find
the needed material within the volumes in the archives.
There are
over 80 Complete Record Books that provide complete details of each case. These Complete Record Books are found in the
record room of the Monroe County, Ohio Clerk of Courts. Many of the Complete Record Books have been
photographed and put on CDs. Copies of
each of the Complete Record Books that are on CDs can be purchased from the
Beginning
in the late 1860s each Complete Record Book has its own index in the front of
each book. But prior to 1866 only two of
the books included an index. There are,
however, two separate books of indices for these Complete Record Books. The first is the Direct Index which is
organized by the surname of the plaintiff, the person(s) or organization(s)
initiating the suit. The second index is
the Reverse Index to Judgments Court of Common Pleas. The Reverse Index to
Judgments is an index of legal cases in
To access
the Reverse Index to Judgments on this website, click here
or go to http://www.rootsweb.com/~ohmchs/IndexA.htm. To purchase a CD of the Reverse Index to
Judgments, go to http://freepages.history.rootsweb.com/~harringtonfamilies/CD-Status.htm
and print out the order form listed at the end of the page and follow the
instructions on the order form.
The Direct
Index of cases found in the Complete Record Books is in the process of being
prepared and will appear on this website soon.
Below is a
list of the available indices found in the first 37 volumes of the Complete
Record Books.
By clicking on the title of Complete Record Books that are hyperlinked
(these appear as blue or maroon hyperlinks) you are taken to the index of that
book.
Happy
hunting!
Complete Record Book Indices
1822 - 1906
|
Name of Complete Record
Book |
Years Included in this Book |
Index Available |
|
|
|
|
|
Record
Book #1 |
This book is missing 1815 1822 |
No |
|
Record Book #2* |
1822 1833 |
No |
|
Record Book #3* |
1832 1837 |
No |
|
Record Book #4* |
1838 1840 |
No |
|
1840 1842 |
Yes |
|
|
1842 1844 |
Yes |
|
|
Record Book #7* |
1844 1846 |
No |
|
Record Book #8* |
1846 1848 |
No |
|
Record Book #9* |
1848 1850 |
No |
|
Record Book #10* |
1850 1853 |
No |
|
Record Book #11* |
1853 1854 |
No |
|
Record Book #12* |
1854 1856 |
No |
|
Record Book #13* |
1857 1858 |
No |
|
Record Book #14* |
1859 1860 |
No |
|
Record Book #15* |
1861 1866 |
No |
|
1866 1868 |
Yes |
|
|
1868 1870 |
Yes |
|
|
1870 1872 |
Yes |
|
|
1872 1874 |
Yes |
|
|
1874 1876 |
Yes |
|
|
1876 1877 |
Yes |
|
|
1877 1878 |
Yes |
|
|
1879 1880 |
Yes |
|
|
1880 1882 |
Yes |
|
|
1882 1884 |
Yes |
|
|
1884 1886 |
Yes |
|
|
1886 1887 |
Yes |
|
|
1887 1888 |
Yes |
|
|
1889 1890 |
Yes |
|
|
1890 1892 |
Yes |
|
|
1892 1894 |
Yes |
|
|
1894 1896 |
Yes |
|
|
1895 1897 |
Yes |
|
|
1897 1899 |
Yes |
|
|
1899 1900 |
Yes |
|
|
1900 1902 |
Yes |
|
|
1902 1904 |
Yes |
|
|
1904 1906 |
Yes |
* There are no indices within these books. Consult the Direct Index when it becomes
available on this site, soon.
CDs
of the Complete Record Books #2 through #21 can be purchased from the
Go
to the following website for more information and a printable CD order form.
http://freepages.history.rootsweb.com/~harringtonfamilies/CD-Status.htm
The author of CDs found on this website can be contacted at: Richard Harrington, 9517
The address of the
Last modified April 15, 2012 by reh


--- layout: post title: "From Bitter To Better" subtitle: "A Reflection Before Ending 2020" date: 2020-12-30 20:45:13 -0400 background: '/img/posts/better.jpeg' category: General tags: [covid-19,corona virus,hope,life,pandemic,survive,Strong, new year, reflection, 2020, Be Better] ---
“He has filled me with bitterness; he has sated me with wormwood. He has made my teeth grind on gravel, and made me cower in ashes; my soul is bereft of peace; I have forgotten what happiness is.” Lamentations 3:15-17 (ESV)
Jeremiah’s words in Lamentations 3:15-17, captured my ached in my heart. That word, “wormwood,” it’s a shrubby plant — la’anah in Hebrew — and most noted for its intense bitterness. The Greeks used the word absinthion, which means “undrinkable.”
And just like its bitter taste, wormwood appears frequently in the Bible to symbolize unpalatable bitterness and sorrow in life. In this season of my own life, especially this year, I felt much like Jeremiah — chowing down of wormwood every day.
I did not expect that this pandemic would last so long. It is almost the end of the year, but COVID-19 is still spreading here in my country.
Living in the middle of pandemic it’s really difficult and I experienced compounding feelings of bitterness. Yep I feel bitter about what’s happening and I don’t even know if it can be better. The most difficult thing is to live with uncertainty. Because of this pandemic I couldn’t do many things I have planned before.
For me it’s extremely difficult. Because I am a kind of person who like everything be well organized. I like to make plan for everything, make sure that everything will be organized. But when the pandemic came, it ruined everything. And we don’t even know when this pandemic will be end. Day by day, I live my life with anger, worry about future, doubt, frustate because of this uncertainty.
Also I was really sad when my fiance and I decided to puspone our wedding day, because there is no way to do that while this pandemic is still happening. I felt disappointed, mad and it put more bitterness in my heart. When my heart felt bitter, I became so negative, couldn’t see any good thing or grateful and even to be happy for other people’s happiness it’s really difficult. It really need times to finnaly accept the condition and decided to move from bitter to a better life. I didn’t want to stay in this bitterness because bitterness and holiness cannot dwell in the same heart.
Thank you for reading and visiting this blog :) Let me know if you have questions, comments or input. Don't hesitate to write down your comments. Also I would like to hear your story.


"x" "1" "CERNA,M, LEPSI,P, ROSSNER,P AND POHLOVA,H, MUTAGENICITY OF SOMESUBSTITUTED 1-PHENYL-3,3-DIMETHYLTRIAZENES. I. THE SALMONELLA/MAMMALIANMICROSOME ASSAY AND REPAIR TEST, MUTAT. RES. 190(3):177-182, 1987"


bookshelf.js
Bookshelf is a JavaScript ORM for Node.js, built on the Knex SQL query builder. It features both Promise-based and traditional callback interfaces, transaction support, eager/nested-eager relation loading, polymorphic associations, and support for one-to-one, one-to-many, and many-to-many relations.
It is designed to work with PostgreSQL, MySQL, and SQLite3.
Website and documentation. The project is hosted on GitHub, and has a comprehensive test suite.
Introduction
Bookshelf aims to provide a simple library for common tasks when querying databases in JavaScript, and forming relations between these objects, taking a lot of ideas from the the Data Mapper Pattern.
With a concise, literate codebase, Bookshelf is simple to read, understand, and extend. It doesn't force you to use any specific validation scheme, and provides flexible, efficient relation/nested-relation loading and first-class transaction support.
It's a lean object-relational mapper, allowing you to drop down to the raw Knex interface whenever you need a custom query that doesn't quite fit with the stock conventions.
Installation
You'll need to install a copy of Knex, and either mysql
, pg
, or sqlite3
from npm.
$ npm install knex --save
$ npm install bookshelf --save
# Then add one of the following:
$ npm install pg
$ npm install mysql
$ npm install mariasql
$ npm install sqlite3
The Bookshelf library is initialized by passing an initialized Knex client instance. The Knex documentation provides a number of examples for different databases.
var knex = require('knex')({
client: 'mysql',
connection: {
host : '<IP_ADDRESS>',
user : 'your_database_user',
password : 'your_database_password',
database : 'myapp_test',
charset : 'utf8'
}
});
var bookshelf = require('bookshelf')(knex);
var User = bookshelf.Model.extend({
tableName: 'users'
});
This initialization should likely only ever happen once in your application. As it creates a connection pool for the current database, you should use the bookshelf
instance returned throughout your library. You'll need to store this instance created by the initialize somewhere in the application so you can reference it. A common pattern to follow is to initialize the client in a module so you can easily reference it later:
// In a file named something like bookshelf.js
var knex = require('knex')(dbConfig);
module.exports = require('bookshelf')(knex);
// elsewhere, to use the bookshelf client:
var bookshelf = require('./bookshelf');
var Post = bookshelf.Model.extend({
// ...
});
Examples
Here is an example to get you started:
var knex = require('knex')({
client: 'mysql',
connection: process.env.MYSQL_DATABASE_CONNECTION
});
var bookshelf = require('bookshelf')(knex);
var User = bookshelf.Model.extend({
tableName: 'users',
posts: function() {
return this.hasMany(Posts);
}
});
var Posts = bookshelf.Model.extend({
tableName: 'messages',
tags: function() {
return this.belongsToMany(Tag);
}
});
var Tag = bookshelf.Model.extend({
tableName: 'tags'
})
User.where('id', 1).fetch({withRelated: ['posts.tags']}).then(function(user) {
console.log(user.related('posts').toJSON());
}).catch(function(err) {
console.error(err);
});
Plugins
- Registry: Register models in a central location so that you can refer to them using a string in relations instead of having to require it every time. Helps deal with the challenges of circular module dependencies in Node.
- Virtuals: Define virtual properties on your model to compute new values.
- Visibility: Specify a whitelist/blacklist of model attributes when serialized toJSON.
- Pagination: Adds
fetchPage
methods to use for pagination in place offetch
andfetchAll
. - Case Converter: Handles the conversion between the database's snake_cased and a model's camelCased properties automatically.
- Processor: Allows defining custom processor functions that handle transformation of values whenever they are
.set()
on a model.
Community plugins
- bookshelf-cascade-delete - Cascade delete related models on destroy.
- bookshelf-json-columns - Parse and stringify JSON columns on save and fetch instead of manually define hooks for each model (PostgreSQL and SQLite).
- bookshelf-mask - Similar to Visibility but supporting multiple scopes, masking models and collections using the json-mask API.
- bookshelf-schema - A plugin for handling fields, relations, scopes and more.
- bookshelf-signals - A plugin that translates Bookshelf events to a central hub.
- bookshelf-paranoia - Protect your database from data loss by soft deleting your rows.
- bookshelf-uuid - Automatically generates UUIDs for your models.
- bookshelf-modelbase - An alternative to extend
Model
, adding timestamps, attribute validation and some native CRUD methods. - bookshelf-advanced-serialization - A more powerful visibility plugin, supporting serializing models and collections according to access permissions, application context, and after ensuring relations have been loaded.
- bookshelf-plugin-mode - Plugin inspired by Visibility plugin, providing functionality to specify different modes with corresponding visible/hidden fields of model.
- bookshelf-secure-password - A plugin for easily securing passwords using bcrypt.
- bookshelf-default-select - Enables default column selection for models. Inspired by Visibility, but operates on the database level.
- bookshelf-ez-fetch - Convenient fetching methods which allow for compact filtering, relation selection and error handling.
- bookshelf-manager - Model & Collection manager to make it easy to create & save deep, nested JSON structures from API requests.
Support
Have questions about the library? Come join us in the #bookshelf freenode IRC channel for support on knex.js and bookshelf.js, or post an issue on Stack Overflow or in the GitHub issue tracker.
Contributing
If you want to contribute to Bookshelf you'll usually want to report an issue or submit a pull-request. For this purpose the online repository is available on GitHub.
For further help setting up your local development environment or learning how you can contribute to Bookshelf you should read the Contributing document available on GitHub.
F.A.Q.
Can I use standard node.js style callbacks?
Yes - you can call .asCallback(function(err, resp) {
on any "sync" method and use the standard (err, result)
style callback interface if you prefer.
My relations don't seem to be loading, what's up?
Make sure you check that the type is correct for the initial parameters passed to the initial model being fetched. For example new Model({id: '1'}).load([relations...])
will not return the same as Model({id: 1}).load([relations...])
- notice that the id is a string in one case and a number in the other. This can be a common mistake if retrieving the id from a url parameter.
This is only an issue if you're eager loading data with load without first fetching the original model. Model({id: '1'}).fetch({withRelated: [relations...]})
should work just fine.
My process won't exit after my script is finished, why?
The issue here is that Knex, the database abstraction layer used by Bookshelf, uses connection pooling and thus keeps the database connection open. If you want your process to exit after your script has finished, you will have to call .destroy(cb)
on the knex
property of your Bookshelf
instance or on the Knex
instance passed during initialization. More information about connection pooling can be found over at the Knex docs.
How do I debug?
If you pass {debug: true}
as one of the options in your initialize settings, you can see all of the query calls being made. Sometimes you need to dive a bit further into the various calls and see what all is going on behind the scenes. I'd recommend node-inspector, which allows you to debug code with debugger
statements like you would in the browser.
Bookshelf uses its own copy of the "bluebird" promise library, you can read up here for more on debugging these promises... but in short, adding:
process.stderr.on('data', function(data) {
console.log(data);
});
At the start of your application code will catch any errors not otherwise caught in the normal promise chain handlers, which is very helpful in debugging.
How do I run the test suite?
See the CONTRIBUTING document on GitHub.
Can I use Bookshelf outside of Node.js?
While it primarily targets Node.js, all dependencies are browser compatible, and it could be adapted to work with other javascript environments supporting a sqlite3 database, by providing a custom Knex adapter.
Which open-source projects are using Bookshelf?
We found the following projects using Bookshelf, but there can be more:
- Ghost (A blogging platform) uses bookshelf. [Link]
- Soapee (Soap Making Community and Resources) uses bookshelf. [Link]
- NodeZA (Node.js social platform for developers in South Africa) uses bookshelf. [Link]
- Sunday Cook (A social cooking event platform) uses bookshelf. [Link]
- FlyptoX (Open-source Node.js cryptocurrency exchange) uses bookshelf. [Link]
- And of course, everything on here use bookshelf too.
Change Log
0.15.1 Jun 13, 2019 - Diff
0.15.0 Jun 13, 2019 - Diff
Breaking changes
- This version requires Node.js 6+
- Remove code that has been deprecated for a long time: #1956
Bug fixes
once
removes all events after it has been triggered: #1972- Pagination details are wrong when selecting distinct values of a column: #1950
- Fix missing attributes in some events: #1934
Test Suite
Documentation
Dependencies
- Update mocha to version 6.1.1: #1968
- Update eslint-config-prettier to 4.1.0: #1957
- Update sinon to version 7.2.4: #1947
- Update eslint to version 5.1.0: #1930
0.14.2 Dec 17, 2018 - Diff
Bug fixes
- Fix crash when using
groupBy
with table qualifier in pagination plugin: #1928 - Fix
undefined
transaction object with Knex 0.15+: #1926
Refactoring
- Refactor logic behind
.timestamp()
's decision for when to update theupdated_at
column: #1892
0.14.1 Dec 09, 2018 - Diff
Enhancements
- Allow passing custom options to the pagination plugin's internal count method. This is useful for better interoperability with other plugins: #1914
Bug fixes
- Fix
withRelated
fetch option not always grouping properly when using binary primary keys: #1918
Documentation
- Add a basic Events guide and fix some issues with the events doclets: #1917
0.14.0 Dec 09, 2018 - Diff
Breaking changes
- The
previous()
andpreviousAttributes()
methods were changed so that whenever a model is saved or destroyed the previous attributes are no longer reset to the current attributes. Since the old behavior wasn't very useful it's likely this won't cause issues for many people. There's a migration guide in case you are affected by this change. #1848 - Fix incorrect results in collection when models have duplicate ids. Checkout the migration guide in case you are affected by this. #1846
- Empty
hasOne
relation will now returnnull
instead of{}
when serialized: #1839. There's a migration guide in the rare event this causes you problems. - Add more helpful error messages on bad or insufficient
morphTo
data: #1824. There's a migration guide in case you are affected by this. - Changed the existing functionality so that saving a model that hasn't changed will not update its
updated_at
attribute: #1798. Checkout the migration guide in case you are affected by this.
Enhancements
Bug fixes
- Return clones of nested objects in
previousAttributes()
: #1876 - Fix incorrect
rowCount
value when usinggroupBy
withfetchPage()
: #1852 - Fix eager loading of relations when using
parse
/format
: #1838 - Fix inability to install bookshelf from git commit: #1835
- Fix
timestamp()
setting a key named"null"
in some cases: #1820 - Fix performance of including relationships: #1800
Test Suite
- Add test to check for adding
withRelated
inside events: #1853 - Add Node.js 10 to the Travis config: #1829
- Fix incorrect output ordering in tests in some cases: #1825
Documentation
- Change the JSDoc theme to add a Guides section (this was already released): #1909
- Fix
hasOne
's doc: #1890 - Fix many-to-many tutorial code: #1888
- Add code syntax highlighting for tutorials: #1850
- Fix a few issues with the collection documentation: #1836
- Fix
Model.load()
relations param: #1834 - Fix incorrect docs for collection:fetching event: #1831
- Add note on needing the Pagination plugin to use
fetchPage()
: #1803 - Fix incorrect data types and undocumented Model property: #1797
Dependencies
- Replace turbocolor with colorette: #1904
- Use prettier to format all
js
andjson
files: #1883 - Replace chalk with turbocolor: #1878
- Update some insecure dependencies: #1841
- Replace Babel with Node 4 compatible JavaScript: #1835
- Update sinon to the latest version: #1833
0.13.3 Mar 26, 2018 - Diff
Potentially breaking changes
- Saving a model that hasn't changed will not update its
updated_at
attribute. This was included in a patch release because the chances of any applications depending on this behavior are very small: #1798
Bug fixes
- Clean up automatic timestamps feature: #1798
Documentation
- Expand documentation of the automatic timestamps feature: #1798
0.13.2 Mar 23, 2018 - Diff
Bug fixes
- Fix timestamps set with Invalid Date in some cases: #1796
Documentation
- Fix incorrect data types and undocumented Model#defaults property: #1797
0.13.0 Mar 18, 2018 - Diff
Breaking changes
- Make
require: true
the default when deleting models: #1779 - Remove the second argument to the model's destroyed event handler: #1777
- Events are now triggered sequentially even when the handlers execute asynchronous code: #1768
- Drop support for Node versions older than 4: #1696
- Reorder
saving
andcreating
events to reflect the documentation: #1142
Enhancements
- Only request
returning
attribute if client supportsreturning
: #1770 - Throw error if user doesn't pass a valid Knex instance on initialize: #1756
- Add parameterized virtual properties to virtuals plugin: #1755
- Add individual attribute processor plugin to core: #1741
- Format
idAttribute
on save and delete: #1680 - Add
withSchema
option to all database operations: #1638 - Add a case converter plugin to core: #1093
Bug fixes
- Fix inconsistent timestamp values between save and fetch: #1784
- Set
model.id
if attributes being.set()
contain a parsed version ofidAttribute
: #1760 - Fix pagination plugin's
fetchPage()
ignoring or hanging with transactions: #1625 - Fix
fetchPage()
from pagination plugin not working for relation collections: #1561 - Don't try to update
idAttribute
if it hasn't changed: #1260
Test suite
- Increase timeout of the large arrays test: #1778
- Add test to verify that
parentId
is not undefined when usingfetchAll
with relations: #1769 - Fixes and general improvements to the test suite: #1753
- Remove OracleDB tests: #1744
- Fix invalid test related to dirty attributes: #1312
Documentation
- Improve docs about running tests: #1761
- Fix typo on parse-and-format tutorial: #1748
- Add Bookshelf Manager to list of community plugins: #1747
Dependencies
0.12.1 Jan 8, 2018 - Diff
Documentation
- Fix incorrect value of second argument to model event handlers: #1723
- Fix incorrect return value from
.detach()
: #1720 - Fix incorrect return value from
model.has()
: #1712 - Fix
fetching:collection
andfetched:collection
not being generated or visible on the navigation bar: #1114 - Update contributing document and issue templates: #1736
- Add more information and links to Parse and Format docs: #1727
- Add bookshelf-ez-fetch to Community Plugins: #1708
- Add bookshelf-default-select to Community Plugins: #1706
- Add information and examples about calling
super()
on model'sinitialize()
: #1529 - Add npm version badge to readme: f4dd792
Bug fixes
- Fix inability to attach belongsToMany relation to models fetched with
fetchAll()
: #1716 - Fix foreign key = 0 not fetching related object: #1639
- Fix unparsed
previousAttributes
for related models: #1457
Dependencies
0.12.0 Nov 27, 2017 - Diff
- Skip visibility-plugin
hidden
andvisible
attributes #1699.- Used w/
<model>.toJSON({ visibility: false })
- Used w/
- Updated knex peer dependency version to 0.14.x #1694.
- Documentation typo fixes #1693.
- Now caching
node_modules
to speed up travis-ci builds #1695. - Use Docker containers for test runs #1674.
- Make
postpublish
work regardless of git remote config #1697.
0.11.1 Nov 15, 2017 — Diff
- Fixed regression #1691: File missing on
postinstall
- npm
postinstall
script can be run as a part of npmprepublish
script.
- npm
0.11.0 Nov 15, 2017 — Diff
- Moved
.babelrc
->src/.babelrc
#1470 - Timestamp on save now utilizes a date option for timestamp updates on insert and update. #1592
- Used in options on save like so:
m.save({item: 'test'}, { date: dateInThePast })
- Used in options on save like so:
- Added
morphValues
formorphTo
relation. #1326 - Added ability to also set timestamps as model attributes in save.
- Removed non-production files from packaging / added them to .npmignore #1679
- Development Facing:
- Oracle tests only run when oracle is installed.
- Refactoring on the registry plugin.
- Updated a lot of documents related to repo organization.
0.10.4 - Jul 17, 2017 — Diff
- Allow knex 0.13.x.
- Use uuid instead of node-uuid.
- Test Bookshelf with Node v7.
- Updated Author info in
package.json
. - Remove lodash from build script.
- Add OracleDB integration tests.
- Add opportunity to override
visible
andhidden
behavior for toJSON function. - Do not load
belongsTo
ifforeignKey
isnull
. - Optimise
timestamp
function: respect updated_at/created_at being part of the query. - Fix
fetchPage
on Collection (pagination plugin). - Fixing virtuals when
omitNew=true
. - Lot's of typo fixes and documentation updates.
0.10.3 - Jan 21, 2017 — Diff
- Drop Node support for 0.10 and 0.12.
- Trigger creating event for attached models.
- Add support for uninstantiated models relations.
- Add
foreignKeyTarget
to relation methods.
0.10.2 - Sept 22, 2016 — Diff
- Fixes memory leak introduced in 0.10.0 caused by binding
this.listeners
intriggerThen
. - Fixes Bluebird warning when a Promise was internally rejected with a non-error.
0.10.1 - Sept 14, 2016 — Diff
- Allows using knex 0.12 as a peerDependency.
- knex instance used by bookshelf may be swapped out.
0.10.0 — Jun 29, 2016 — Diff
Breaking Changes
- Removal/renaming of certain lodash functions from Model and Collection that were removed in lodash 4:
- Collection Methods
- removed
CollectionBase#collect
=> useCollectionBase#map
instead - removed
CollectionBase#foldl
=> useCollectionBase#reduce
instead - removed
CollectionBase#inject
=> useCollectionBase#reduce
instead - removed
CollectionBase#foldr
=> useCollectionBase#reduceRight
instead - removed
CollectionBase#detect
=> useCollectionBase#find
instead - removed
CollectionBase#select
=> useCollectionBase#filter
instead - removed
CollectionBase#all
=> useCollectionBase#every
instead - removed
CollectionBase#any
=> useCollectionBase#some
instead - removed
CollectionBase#include
=> useCollectionBase#includes
instead - removed
CollectionBase#contains
=> useCollectionBase#includes
instead - removed
CollectionBase#rest
=> useCollectionBase#tail instead
- renamed
CollectionBase#invoke
=>CollectionBase#invokeMap
- split
CollectionBase#max
intoCollectionBase#maxBy
- see the lodash docs for more explanation - split
CollectionBase#min
intoCollectionBase#minBy
- see the lodash docs for more explanation
- removed
- Model Methods
- renamed
ModelBase#pairs
=>ModelBase#toPairs
- renamed
- Collection Methods
Other changes
- Update to Lodash 4. #1287
- Registry plugin: Better support for custom relations. #1294
0.9.5 — May 15, 2016 — Diff
- Add pagination plugin. #1183
- Fire
Model#event:fetched
on eagerly loaded relations. #1206 - Correct cloning of
Model#belongsToMany
decorated relations. #1222 - Update Knex to 0.11.x. #1227
- Update minimum lodash version. #1230
0.9.4 — April 3, 2016 — Diff
- Include
babel-runtime
as a dependency. #1188
0.9.3 — April 3, 2016 — Diff
- Bugfix: Restore support for
camelCase
andcolon:separated
event names. #1184
0.9.2 — February 17, 2016 — Diff
- Permit up to Knex 0.11.0 via
peerDependencies
. Model.forge
works for ES6 classes. #924- Fix
Collection#count
forhasMany
relations. #1115
0.9.1 — November 4, 2015 — Diff
Events#off
can now unregister multiple methods at once. #983- Permit Knex 0.10.0 via
peerDependencies
. #998
0.9.0 — November 1, 2015 — Diff
- Repo no longer includes built source or generated documentation. Release script updated to include these only in the tagged release commit. #950.
Model#previous
returnedundefined
instead ofnull
for non-existent attributes.- Update tests and documentation to confirm that
null
(rather thanundefined
) is returned fromModel#fetch
andCollection#fetchOne
. - Fix error in virtuals plugin - #936
- Correct error updating parsed/formatted
Model#idAttribute
after successfulinsert
operation. #955 - Many documentation fixes.
0.8.2 — August 20, 2015 — Diff
- ES6/7: Move code base to
/src
— code is now compiled into/lib
via Babel. - Add
collection.count
,model.count
andModel.count
. - Add
model.refresh
. #796 - Prevent
fetch
andrefresh
from trying to add JSON attributes to awhere
clause. #550 #778 - Virtuals plugin now supports
{patch: true}
argument tomodel.save
. #542 - Restored
model.clone
andcollection.clone
, which were not previously working. #744 - Allow
bookshelf.Collection
to be modified and extended by plugins (so that relations andfetchAll
operations will return the extended instance). #681 #688 - Fix
model.timestamps
behavior which deviated from documentation. Also ensure thatcreatedAt
is set when{method: "insert"}
is passed explicitly. #787 - Calling
create
on athrough
relationship no longer tries to make a pivot object. Previously this would attempt to create an object with invalid foreign keys. #768 - Parse foreign keys set during
create
in a relation. #770
0.8.1 — May 12, 2015 — Diff
- Fix for regression in
initialize
not being called in Collection constructor, #737. - Fix for regression, removing
omitPivot
in 0.8 #721 - Added
serialize
, a method which contains toJSON logic for easier customization.
0.8.0 — May 1, 2015 — Diff
- Dropped Backbone dependency.
- More specific errors throughout, #522
- Support
{require: true}
for model.destroy #617 - Add lifecycle events on pivot models for
belongsToMany
,.through
#578 - Allows for select/column calls in the query builder closure, #633.
- Added per-constructor error classes #694 (note: this will not work in CoffeeScript).
Breaking Changes
- Removed the
__super__
internal property on the constructor, this shouldn't have been something you were relying on anyway.
0.7.9 — Oct 28, 2014 — Diff
- Fix for regression in columns / eager fetch query constraints, (#510).
0.7.8 — Oct 28, 2014 — Diff
- Timestamp
created_at
is now saved with any insert. - Fix for regression created by #429.
- New events,
attaching
,attached
,detaching
,detached
#452. - Ability to specify custom column names in morphTo, #454
- Fix for stack overflow with model list as arguments, #482
- Modified location of eager fetch query constraints internally.
0.7.7 — July 23, 2014 — Diff
- Fix for formatting on polymorphic keys, (#429).
- Added a resolve method for specifying a custom resolver function for the registry plugin.
0.7.6 — June 29, 2014 — Diff
- Add
omitPivot
flag on toJSON options for omitting the_pivot_
keys inthrough
andbelongsToMany
relations (#404).
0.7.5 — June 23, 2014 — Diff
- Fix missing
NotFoundError
&EmptyError
on Model & Collection, respectively (#389, #399).
0.7.4 — June 18, 2014 — Diff
- Added
bookshelf.model(name, protoProps, [staticProps])
syntax for registry plugin.
0.7.3 — June 17, 2014 — Diff
- Fix for collection dropping models early in set, #376.
0.7.2 — June 12, 2014 — Diff
- Pass a cloned copy of the model's attributes to
format
rather than the original, related to #315.
0.7.1 — June 10, 2014 — Diff
- Ensure the knex version >= 0.6.10, where a major regression affecting column names was fixed.
0.7.0 — June 9, 2014
- Added
Model#fetchAll
, for fetching a collection of models from a model. - Added
Model#where
, as a shortcut for the most commonly used query method. - Initializing via a plain options object is deprecated, you must now pass in an initialized knex instance.
- Adding typed errors (#221).
- Upgrade to support knex 0.6.x
0.6.12 — June 5, 2014 — Diff
- Fix for eager loaded
belongsTo
relation bug with custom parse/format (#377).
0.6.11 — June 4, 2014 — Diff
- Temporarily add knex to
peerDependencies
until 0.7 is released to support knex 0.6 and there exists a better internal method of doing a semver check. - Fix for
belongsTo
relation bug (#353).
0.6.10 — April 3, 2014 — Diff
- Bumping dependencies, including upgrading to Bluebird 1.2, trigger-then 0.3, fixing an erroneous "unhandledRejection" (#310).
fetchOne
properly resets the query on the collection, (#300).
0.6.9 — April 3, 2014 — Diff
- Only prefix model fields with the "tableName" after format has been called, (#308).
0.6.8 — March 6, 2014 — Diff
- Virtuals plugin may now accept a hash of attributes to set.
- Properly fix issue addressed in 0.6.7.
0.6.7 — March 2, 2014 — Diff
- Bugfix for edge case for eager loaded relations and
relatedData
settings.
0.6.6 — March 1, 2014 — Diff
- Bugfix for registry plugin, resolving correct models for "through" relations. (#260)
0.6.5 — February 28, 2014 — Diff
- Added
Collection#reduceThen
as a passthrough to Bluebird's "reduce" method with models. - Options are now passed to "plugin" method. (#254)
- Bugfix for registry plugin. (#259)
0.6.4 — February 11, 2014 — Diff
- Adds static method
Model.collection()
as a shortcut for creating a collection with the current model.
0.6.3 — February 9, 2014 — Diff
- Added an
Relation#updatePivot
method for updating tables on a "belongsToMany" relation. (#134, #230) - Allow mutating the options for passing constraints to eager loaded relations. (#151)
- All keys of an object passed into sync are properly prefixed before sync. (#177)
- Clearer error messages for debugging. (#204, #197)
- Fixed error message for updates that don't affect rows. (#228)
- Group by the correct key on "belongsTo.through" relations. (#214)
- Ability to only use
created_at
orupdated_at
as timestamp properties. (#158) - Numerous documentation corrections, clarifications, enhancements.
- Bumped Bluebird dependency to ~1.0.0.
Plugins:
- Added the
registry
plugin for registering models as strings, helping with the circular dependency problem. - Added the
virtuals
plugin for getting/setting virtual (computed) properties on the model. - Added the
visibility
plugin for specifying a whitelist/blacklist of keys when a model is serialized with toJSON.
0.6.2 — December 18, 2013 — Diff
- Debug may now be passed as an option in any sync method, to log queries, including relations.
- Save now triggers an error in updates with no affected rows. (#119)
- The
model.id
attribute is only set on insert if it's empty. (#130) - Ensure eager loaded relations can use attach/detach. (#120)
0.6.1 — November 26, 2013 — Diff
- Fixes bug with promise code and saving event firing, where promises are not properly resolved with ".all" during saving events.
0.6.0 — November 25, 2013 — Diff
- Updating dependency to knex.js 0.5.x.
- Switched from when.js to bluebird for promise implementation, with shim for backward compatibility.
- Switched from underscore to lodash, for semver reliability.
0.5.8 — November 24, 2013 — Diff
- Parse models after all relations have been eager loaded, for appropriate column name matching (thanks @benesch) (#97)
- Specify table for
withRelated
fetches to prevent column naming conflicts (#96). - Fix for polymorphic relation loading (#95).
- Other documentation tweaks and other internal code cleanup.
0.5.7 — October 11, 2013 — Diff
- The "fetching" event is now fired on eager loaded relation fetches.
0.5.6 — October 10, 2013 — Diff
- The
options.query
now contains the appropriateknex
instance during the "fetching" event handler.
0.5.5 — October 1, 2013 — Diff
- An eager loaded morphTo relation may now have child relations nested beneath it that are properly eager loaded, depending on the parent.
0.5.4 — October 1, 2013 — Diff
- Fix issue where the
relatedData
context was not appropriately maintained for subsequentCollection#create
calls after an eager load (#77). - Documentation improvements, encouraging the use of
Model#related
rather than calling a relation method directly, to keep association with the parent model'srelations
hash.
0.5.3 — September 26, 2013 — Diff
- The
columns
explicitly specified in a fetch are no-longer passed along when eager loading relations, fixes (#70).
0.5.2 — September 22, 2013 — Diff
- Fixed incorrect eager loading in
belongsTo
relations (#65).
0.5.1 — September 21, 2013 — Diff
- Fixed incorrect eager loading in
hasOne
relations (#63).
0.5.0 — September 20, 2013 — Diff
Major Breaking Changes
- Global state is no longer stored in the library, an instance is returned from
Bookshelf.initialize
, so you will need to call this once and then reference thisBookshelf
client elsewhere in your application. - Lowercasing of
bookshelf.initialize
,bookshelf.knex
,bookshelf.transaction
. - During the lifecycle events, such as "fetching", "saving", or "destroying", the model no-longer contains the active query builder instance at the time it is saved. If you need to modify the query builder chain inside of an event handler, you may now use
options.query
inside the event handlers.
Other changes
- Added
tableName
for all queries, so joins use the correct id (#61). - The
attach
&detach
now remove models from the associated collection, as appropriate (#59). - A
withPivot
no longer accepts an object to specify the keys for the returned pivot items, if you wish to specify how these pivot objects are defined on the object, a custom toJSON is your best bet. - Added
Collection#invokeThen
andCollection#mapThen
as convenience helpers forPromise.all(collection.invoke(method, args*))
andPromise.all(collection.map(method, iterator, [context]))
, respectively. - Added a
Bookshelf.plugin
method, for a standard way to extend Bookshelf instances. - A re-written modular architecture, to move the library toward becoming a database agnostic "data mapper" foundation, with the ablitiy to form relations between different data stores and types, not just SQL (although SQL is the primary focus for now). Also, support for AMD, for eventual use outside of Node.js runtime (with webSQL and likewise).
0.3.1 — August 29, 2013 - Diff
- Docs
- Fixed regression in
belongsToMany
custom column name order.
0.3.0 — August 28, 2013
- Support for a
Model#through
clause on various model relations. - Creating a model from a related collection maintains the appropriate relation data (#35).
- Support for a
{patch: true}
flag on save, to only update specific saved attributes. - Added a
fetchOne
method, for pulling out a single model from a collection, mostly useful for related collection instances. - Updated to Knex "0.2.x" syntax for insert / returning.
- Ability to specify a
morphValue
onModel#morphOne
orModel#morphMany
relations. - Internal refactor of relations for more consistent behavior.
0.2.8 — August 26, 2013
- Some minor fixes to make the
Sync
methods more consistent in their behavior when called directly, (#53).
0.2.7 — August 21, 2013
- Timestamp for
created_at
is not set during an "update" query, and the update where clause does not include theidAttribute
if it isn't present (#51).
0.2.6 — August 21, 2013
- Fixes bug with query function feature added in
0.2.5
, mentioned in (#51).
0.2.5 — August 19, 2013
- The
Model#query
method may now accept a function, for even more dynamic query building (#45). - Fix for relations not allowing
0
as a valid foreign key value (#49).
0.2.4 — July 30, 2013
- More consistent query resetting, fixing query issues on post-query event handlers.
- The
toJSON
is only called on a related model if the method exists, allowing for objects or arrays to be manually specified on therelations
hash and serialized properly on the parent'stoJSON
.
0.2.3 — July 7, 2013
- Fixing bug where
triggerThen
wasn't actually being used for several of the events as noted in 0.2.1 release.
0.2.2 — July 2, 2013
- The Model's
related
method is now a no-op if the model doesn't have the related method. - Any
withPivot
columns on many-to-many relations are now prefixed with_pivot
rather thanpivot
unless named otherwise, for consistency. - The
_reset
is not called until after all triggered events so thathasChanged
can be used on the current model state in the "created", "updated", "saved", and "destroyed" events. - Eager queries may be specified as an object with a function, to constrain the eager queries:
user.fetch({withRelated: ['accounts', {
'accounts.settings': function(qb) { qb.where('status', 'enabled'); }
}, 'other_data']}).then(...
0.2.1 — June 26, 2013
- Using
triggerThen
instead oftrigger
for "created", "updated", "saved", "destroyed", and "fetched" events - if any async operations are needed after the model is created but before resolving the original promise.
0.2.0 — June 24, 2013
- Resolve Model's
fetch
promise withnull
rather thanundefined
. - An object of
query
constraints (e.g.{where: {...}, orWhere: {...}}
may be passed to the query method (#30). - Fix for empty eager relation responses not providing an empty model or collection instance on the
model.relations
object.
0.1.9 — June 19, 2013
- Resolve Model's
fetch
promise withundefined
if no model was returned. - An array of "created at" and "updated at" values may be used for
hasTimestamps
. - Format is called on the
Model#fetch
method. - Added an
exec
plugin to provide a node callback style interface for any of the promise methods.
0.1.8 — June 18, 2013
- Added support for polymorphic associations, with
morphOne
,morphMany
, andmorphTo
model methods.
0.1.7 — June 15, 2013
- Bugfix where
detach
may be used with no parameters to detach all related items (#19).
0.1.6 — June 15, 2013
- Fixing bug allowing custom
idAttribute
values to be used in eager loaded many-to-many relations (#18).
0.1.5 — June 11, 2013
- Ensuring each of the
_previousAttribute
andchanged
values are properly reset on related models after sync actions.
0.1.4 — June 10, 2013
- Fixing issue with
idAttribute
not being assigned after database inserts. - Removing various aliases
Events
methods for clarity.
0.1.3 — June 10, 2013
- Added
Model#hasChanged
,Model#previous
, andModel#previousAttributes
methods, for getting the previous value of the model since the last sync. - Using
Object.create(null)
for various internal model objects dealing with user values. - Calling
Model#related
on a model will now create an empty related object if one is not present on therelations
object. - Removed the
{patch: true}
option on save, instead only applying defaults if the objectisNew
, or if{defaults: true}
is passed. - Fix for
model.clone
's relation responses.
0.1.2 — May 17, 2013
- Added
triggerThen
andemitThen
for promise based events, used internally in the "creating", "updating", "saving", and "destroying" events. - Docs updates, fixing
{patch: true}
onupdate
to have intended functionality. - A model's
toJSON
is now correctly called on any related properties.
0.1.1 — May 16, 2013
- Fixed bug with eager loaded
belongsTo
relations (#14).
0.1.0 — May 13, 2013
- Initial Bookshelf release.


Hello
Table of Contents
## Table of Contents
- [Introduction](#Introduction)
- [How to Enter](#How_to_Enter)
- [Categories](#Categories)
- [Microsoft Azure](#MicrosoftAzure)
- [BizTalk](#BizTalk)
- [Forefront Identity Manager](#Forefront_Identity_Manager)
- [SharePoint 2010 / 2013](#SharePoint_twentyten_twentythirteen)
- [Small Basic](#Small_Basic)
- [SQL BI & Power BI](#SQL_BI_amp_Power_BI)
- [SQL Server General & Database Engine](#SQL_Server_General_amp_Database_Engine)
- [System Center](#System_Center)
- [Transact-SQL](#Transact-SQL)
- [Visual Basic](#Visual_Basic)
- [Visual C#](#Visual_C)
- [Windows Phone and Windows Store Apps](#Windows_Phone_and_Windows_Store_Apps)
- [Windows PowerShell](#Windows_PowerShell)
- [Windows Presentation Foundation (WPF)](#Windows_Presentation_Foundation_WPF)
- [Windows Server](#Windows_Server)
- [Wiki and Portals](#Wiki_and_Portals)
- [Miscellaneous](#Miscellaneous)
- [See Also](#See_Also)
- [This Month's Forum Announcements](#Forum_Announcements)
# Introduction
[![ ](http://social.technet.microsoft.com/wiki/resized-image.ashx/__size/200x0/__key/communityserver-wikis-components-files/00-00-00-00-05/2352.closed.png)](http://social.technet.microsoft.com/wiki/cfs-file.ashx/__key/communityserver-wikis-components-files/00-00-00-00-05/2352.closed.png)
**March's competition has now closed.**
Winners are announced [
here](http://blogs.technet.com/b/wikininjas/archive/2015/03/19/technet-guru-february-2015.aspx).
April's competition is here: [**TechNet
Guru Contributions - April 2015**](http://social.technet.microsoft.com/wiki/contents/articles/30574.technet-guru-contributions-april-2015.aspx)
If you contribute any new code, or solutions to problems in the following categories, please add your content (that you write for a Forum or Blog) to TechNet Wiki, and then add a link to your TechNet Wiki article below, to let us know.
**This is a TechNet Wiki awards program, so we only want
WIKI LINKS for articles created in MARCH, not old, external forum or gallery links.** If you have already made a contribution on the forums or gallery, simply copy it into the wiki and reference the original
article, like shown here.
One winner in each category will be selected each month for glory and adoration by the MSDN/TechNet Ninjas and community as a whole. This includes a dedicated blog post in the Wiki Ninjas blog, a tweet from the Wiki Ninjas Twitter
account, an announcement on your forum, and other acknowledgement from the community.
Winners will be voted on by five judges. The judges consist of 3 TechNet Wiki Community Council members and 2 Microsoft Employee SMEs (Subject Matter Experts -usually the people making the technologies). The judges will be looking for articles that are thorough,
technically accurate, visually clear (images might help, but aren't necessary), and well written. (Any community member can help with the "technically accurate" part by reviewing the articles below and either fixing inaccuracies in the article or commenting
on them--asking questions or suggesting fixes.)
**The articles must be written in March 2015 and must be in English.** However, the original blog or forum content can be from before March. Make sure you aren't taking credit for someone else's content (you have to be the author of the original
content and of the Wiki article). The categories listed are targeted to the most popular forums/technologies and ones that we are able to support. We will add more categories as we go (please don't add more categories, instead, leave a comment at the bottom
to suggest a new category).
# How to Enter
**1) Create a new TechNet article**YOU CAN COPY YOUR CONTRIBUTION FROM MSDN/TECHNET FORUMS OVER TO TECHNET WIKI (**IN MARCH**) TO QUALIFY FOR THESE AWARDS. You can also create a new article not related to your forums contributions.
A) Log into TechNet/MSDN with your Microsoft credentials
B) Add your content as an article to TechNet Wiki: [
http://social.technet.microsoft.com/wiki/contents/articles/add.aspx](http://social.technet.microsoft.com/wiki/contents/articles/add.aspx)
If you are copying and pasting your MSDN/TechNet forum solutions over to TechNet Wiki, please give some introduction to the problem, make sure your steps are clear, and then link to the original forum post. You can also paste in your blog posts (rather than
forum content).
**2) Tell us about it** To add a link to your article:
A) Log into TechNet with your Microsoft credentials
B) Click the "Edit" tab, above this article title, and copy in the URL to your TechNet Wiki article into the appropriate section.
[![ ](http://social.technet.microsoft.com/wiki/resized-image.ashx/__size/550x0/__key/communityserver-wikis-components-files/00-00-00-00-05/7608.TechNet_2D00_Guru.gif)](http://social.technet.microsoft.com/wiki/cfs-file.ashx/__key/communityserver-wikis-components-files/00-00-00-00-05/7608.TechNet_2D00_Guru.gif)
# Categories
Add Your Contributions for MARCH in the Sections Below...
**NOTE**: These **MUST**be TechNet Wiki articles, and they
**MUST**be written in MARCH 2015.
## Microsoft Azure
The TechNet Guru competition is announced in the forums, links are listed below.
Post a link to the **TechNet Wiki page** of your Azure contribution here:
- Replace with "Article Name" by "Profile Name" (each hyperlinked to the article and the author profile urls)
- [Azure: MVC application to refer js from blob](http://social.technet.microsoft.com/wiki/contents/articles/30319.azure-mvc-application-to-refer-js-from-blob.aspx) by
[
Prashant Mahajan](https://social.technet.microsoft.com/profile/prashant%20mahajan,%20pune/)
- [The Way to Migrate to Hyper-v/Azure](http://social.technet.microsoft.com/wiki/contents/articles/30218.the-way-to-migrate-to-hyper-v-azure-introduction.aspx) by
[Samir Farhat](https://social.technet.microsoft.com/profile/samir%20farhat/)
- [Avoid
Nightmares Using EF First Migration in Azure Mobile Services](http://social.technet.microsoft.com/wiki/contents/articles/30272.avoid-nightmares-using-ef-first-migration-in-azure-mobile-services.aspx) by [saramgsilva](http://social.technet.microsoft.com/wiki/284372/ProfileUrlRedirect.ashx)
- [Creating an Microsoft Application Insights resource](http://social.technet.microsoft.com/wiki/contents/articles/30264.creating-an-microsoft-application-insights-resource.aspx) by
[Ken Cenerelli](https://social.technet.microsoft.com/profile/ken%20cenerelli/)
## BizTalk
The TechNet Guru competition is announced in the forums, links are listed below.
Post a link to the **TechNet Wiki page** of your BizTalk contribution here:
- [BizTalk Server 2013 R2 Instrumenting an orchestration with ETW](http://social.technet.microsoft.com/wiki/contents/articles/30523.biztalk-server-2013-r2-instrumenting-an-orchestration-with-etw.aspx) by
[Steef-Jan Wiggers](http://social.technet.microsoft.com/wiki/9078/ProfileUrlRedirect.ashx)
- [View BizTalk Send Port Subcriptions](http://social.technet.microsoft.com/wiki/contents/articles/30560.view-biztalk-send-port-subcriptions.aspx) by
[Steef-Jan Wiggers](http://social.technet.microsoft.com/wiki/9078/ProfileUrlRedirect.ashx)
- Replace with "Article Name" by "Profile Name" (each hyperlinked to the article and the author profile urls)
## Forefront Identity Manager
The TechNet Guru competition is announced in the forums links available below.
Post a link to the **TechNet Wiki page** of your FIM contribution here:
- Replace with "Article Name" by "Profile Name" (each hyperlinked to the article and the author profile urls)
- [FIM2010: Protect passwords in configuration files](http://social.technet.microsoft.com/wiki/contents/articles/30245.fim2010-protect-passwords-in-configuration-files.aspx) by
[Wim Beck](https://social.technet.microsoft.com/profile/wim%20beck/)
- [The Ultimate Tools to work ith RCDC in FIM](http://social.technet.microsoft.com/wiki/contents/articles/30266.the-ultimate-tools-to-work-with-rcdc-in-fim.aspx) by
[
Tracy Yu-MSFT](https://social.technet.microsoft.com/profile/tracy%20yu-msft/)
## SharePoint 2010 / 2013
The TechNet Guru competition is announced in the forums, links are listed below.
Post a link to the **TechNet Wiki page** of SharePoint contribution here
- Replace with "Article Name" by "Profile Name" (each hyperlinked to the article and the author profile urls)
- [Expandable/Collapsible
Headers Solution for SharePoint Pages](http://social.technet.microsoft.com/wiki/contents/articles/30145.expandablecollapsible-headers-solution-for-sharepoint-pages.aspx) by [
Michaelle de las Alas](https://social.msdn.microsoft.com/Profile/michaelle%20de%20las%20alas)
- [Simple understanding on SharePoint Provider Hosted App Model](http://social.technet.microsoft.com/wiki/contents/articles/30201.simple-understanding-on-sharepoint-provider-hosted-app-model.aspx) by
[Murugesa Pandian](https://social.technet.microsoft.com/profile/murugesa%20pandian/)
- [THE PROVIDED APP DIFFERS FROM ANOTHER APP WITH THE SAME VERSION
AND PRODUCT ID in SharePoint 2013 App Development](http://social.technet.microsoft.com/wiki/contents/articles/30302.the-provided-app-differs-from-another-app-with-the-same-version-and-product-id-in-sharepoint-2013-app-development.aspx) by [
Melick](https://social.technet.microsoft.com/profile/melick/)
- [JSOM List Operations in SharePoint Apps in a proper way (Provider Hosted and
SharePoint Hosted)–CRUD](http://social.technet.microsoft.com/wiki/contents/articles/30403.jsom-list-operations-in-sharepoint-apps-in-a-proper-way-provider-hosted-and-sharepoint-hosted-crud.aspx) by [
Melick](https://social.technet.microsoft.com/profile/melick/)
- [JSOM List Operations in SharePoint Apps in a proper way (Provider Hosted
and SharePoint Hosted) – Search (Part2)](http://social.technet.microsoft.com/wiki/contents/articles/30445.jsom-list-operations-in-sharepoint-apps-in-a-proper-way-provider-hosted-and-sharepoint-hosted-search.aspx) by [
Melick](https://social.technet.microsoft.com/profile/melick/)
- [SharePoint Online: How to change primary administrator
for all site collections using Powershell](http://social.technet.microsoft.com/wiki/contents/articles/30299.sharepoint-online-how-to-change-primary-administrator-for-all-site-collections-using-powershell.aspx) by [Arleta Wanat](https://social.technet.microsoft.com/Profile/arleta%20wanat)
- [SharePoint Hosted Apps - Create Enterprise WIKI page using REST API](http://social.technet.microsoft.com/wiki/contents/articles/30315.sharepoint-hosted-apps-create-enterprise-wiki-page-using-rest-api.aspx) by
[Kashif Pervaiz Butt](https://social.technet.microsoft.com/Profile/kpbutt)
- [SharePoint
2013 : Displaying sum for calculated column in a list view using JSLink](http://social.technet.microsoft.com/wiki/contents/articles/30317.sharepoint-2013-displaying-sum-for-calculated-column-in-a-list-view-using-jslink.aspx "SharePoint 2013 : Displaying sum for calculated column in a list view using JSLink") by [Jaydeep Mungalpara](https://social.msdn.microsoft.com/Profile/jaydeep%20mungalpara "Jaydeep Mungalpara")
- [SharePoint 2010 : Batch
Updates on List Items using SharePoint Designer Workflow](http://social.technet.microsoft.com/wiki/contents/articles/30434.batch-updates-on-list-items-using-sharepoint-designer-workflow.aspx "SharePoint Designer Workflow Batch Updates through Designer workflow") by [
Murugesa Pandian](https://social.technet.microsoft.com/Profile/murugesa%20pandian/)
- [Configure a SharePoint server in non domain(Workgroup) environment](http://social.technet.microsoft.com/wiki/contents/articles/30446.configure-a-sharepoint-server-in-non-domain-workgroup-environment.aspx) by [Inderjeet
Singh Jaggi](http://social.technet.microsoft.com/wiki/638599/ProfileUrlRedirect.ashx)
- [Access SQL server database of any version of SharePoint Standalone farm](http://social.technet.microsoft.com/wiki/contents/articles/30450.access-sql-server-database-of-any-version-of-sharepoint-standalone-farm.aspx)by [Inderjeet
Singh Jaggi](http://social.technet.microsoft.com/wiki/638599/ProfileUrlRedirect.ashx)
- [SharePoint 2013: Deleting Orphaned SharePoint Databases](http://social.technet.microsoft.com/wiki/contents/articles/30558.sharepoint-2013-deleting-orphaned-sharepoint-databases.aspx) by
[
Matthew Yarlett](https://social.technet.microsoft.com/profile/matthew%20yarlett/)
- [ADFS signout issue for SharePoint site in IE browser due to FedAuth Cookie](http://social.technet.microsoft.com/wiki/contents/articles/30573.adfs-signout-issue-for-sharepoint-site-in-ie-browser-due-to-fedauth-cookie.aspx)by [Inderjeet
Singh Jaggi](http://social.technet.microsoft.com/wiki/638599/ProfileUrlRedirect.ashx)
## Small Basic
The TechNet Guru competition is announced in the forums, links are listed below.
Post a link to the **TechNet Wiki page** of your Small Basic contribution here:
- Replace with "Article Name" by "Profile Name" (each hyperlinked to the article and the author profile urls)
- [Small Basic and the Raspberry Pi](http://social.technet.microsoft.com/wiki/contents/articles/30188.small-basic-and-the-raspberry-pi.aspx) by [Philip Munts](https://social.technet.microsoft.com/profile/philip%20munts/)
- [Small
Basic on TechNet Gallery](http://social.technet.microsoft.com/wiki/contents/articles/30259.small-basic-on-technet-gallery.aspx) by [Ed
Price - MSFT](http://social.technet.microsoft.com/wiki/2179/ProfileUrlRedirect.ashx)
- [Small Basic on Mac](http://social.technet.microsoft.com/wiki/contents/articles/30415.small-basic-on-mac.aspx) by
[Nonki Takahashi](https://social.technet.microsoft.com/profile/nonki%20takahashi/)
- [Small Basic: Timeline for the games](http://social.technet.microsoft.com/wiki/contents/articles/30260.small-basic-timeline-for-the-games.aspx) by
[
Yan Grenier](http://social.technet.microsoft.com/wiki/599904/ProfileUrlRedirect.ashx)
- [Download
Microsoft Small Basi](http://social.technet.microsoft.com/wiki/contents/articles/30513.download-microsoft-small-basic.aspx)[c](http://social.technet.microsoft.com/wiki/contents/articles/30513.download-microsoft-small-basic.aspx) by [Ed
Price - MSFT](http://social.technet.microsoft.com/wiki/2179/ProfileUrlRedirect.ashx)
- [Microsoft
Small Basic 1.1 Release Notes](http://social.technet.microsoft.com/wiki/contents/articles/30514.microsoft-small-basic-1-1-release-notes.aspx) by [Ed
Price - MSFT](http://social.technet.microsoft.com/wiki/2179/ProfileUrlRedirect.ashx)
## SQL BI & Power BI
The TechNet Guru competition is announced in the forums, links are listed below.
Post a link to the **TechNet Wiki page** of your BI contribution here:
- Replace with "Article Name" by "Profile Name" (each hyperlinked to the article and the author profile urls)
- [SSIS Script Task and Proxy Auto Configuration (PAC) Script](http://social.technet.microsoft.com/wiki/contents/articles/30336.ssis-script-task-and-proxy-auto-configuration-pac-script.aspx) by [Jens
Vestergaard](http://social.technet.microsoft.com/wiki/60152/ProfileUrlRedirect.ashx)
- [SSIS: Data maintenance with Microsoft Azure SQL Database](http://social.technet.microsoft.com/wiki/contents/articles/30471.ssis-data-maintenance-with-microsoft-azure-sql-database.aspx "SSIS: Data maintenance with Microsoft Azure SQL Database")
by [
Ricardo Lacerda](https://social.technet.microsoft.com/profile/ricardo%20lacerda/ "Ricardo Lacerda")
## SQL Server General & Database Engine
The TechNet Guru competition is announced in the forums, links are listed below.
Post a link to the**TechNet Wiki page** of your SQL Server contribution here:
- Replace with "Article Name" by "Profile Name" (each hyperlinked to the article and the author profile urls)
- [Parsing Out Data From Flat File With Inconsistent Delimiters in SQL Server](http://social.technet.microsoft.com/wiki/contents/articles/30178.parsing-out-data-from-flat-file-with-inconsistent-delimiters-in-sql-server.aspx) by [Visakh16](https://social.msdn.microsoft.com/profile/visakh16/)
## System Center
The TechNet Guru competition is announced in the forums, links are listed below.
Post a link to the**TechNet Wiki page** of your System Center contribution here:
- Replace with "Article Name" by "Profile Name" (each hyperlinked to the article and the author profile urls)
- [Make System Center Orchestrator Text Faster than a Teenager using PowerShell
and Twilio](http://social.technet.microsoft.com/wiki/contents/articles/30247.make-system-center-orchestrator-text-faster-than-a-teenager-using-powershell-and-twilio.aspx) by [
Noah Stahl](https://social.technet.microsoft.com/profile/noah%20stahl/)
- [How to educate your users to regularly reboot their Windows computers](http://social.technet.microsoft.com/wiki/contents/articles/30572.how-to-educate-your-users-to-regularly-reboot-their-windows-computers.aspx) by
[Mr X](https://social.technet.microsoft.com/profile/mr%20%20x/)
## Transact-SQL
The TechNet Guru competition is announced in the forums, links are listed below.
Post a link to the **TechNet Wiki page** of your T-SQL contribution here:
- [T-SQL: SQL Server Agent Job Execution Status](http://social.technet.microsoft.com/wiki/contents/articles/30468.t-sql-sql-server-agent-job-execution-status.aspx) by
[sql-pro](https://social.technet.microsoft.com/profile/sql-pro/)
- [T-SQL:
How to Sort a Column that Contains Character-Separated Numbers](http://social.technet.microsoft.com/wiki/contents/articles/30527.t-sql-how-to-sort-a-column-that-contains-character-separated-numbers.aspx) by [Saeid
Hasani](http://social.technet.microsoft.com/wiki/302812/ProfileUrlRedirect.ashx)
- [T-SQL:
Troubleshooting When a Column Alias that Created in the SELECT Clause Cannot be Used in the ORDER BY Clause](http://social.technet.microsoft.com/wiki/contents/articles/30569.t-sql-troubleshooting-when-a-column-alias-that-created-in-the-select-clause-cannot-be-used-in-the-order-by-clause.aspx) by [Saeid
Hasani](http://social.technet.microsoft.com/wiki/302812/ProfileUrlRedirect.ashx)
## Visual Basic
The TechNet Guru competition is announced in the forums, links are listed below.
Post a link to the**TechNet Wiki page** of your VB contribution here:
- [Simple Multi-User TCP/IP Client & Server using TAP](http://social.technet.microsoft.com/wiki/contents/articles/30394.simple-multi-user-tcpip-client-server-using-tap.aspx) by
[
Reed Kimble](https://social.msdn.microsoft.com/profile/reed%20kimble/)
- [Factorizing Quadratic Equations (practice and solver)](http://social.technet.microsoft.com/wiki/contents/articles/30396.factorizing-quadratic-equations-practice-and-solver.aspx) by
[.paul.](https://social.msdn.microsoft.com/Profile/.paul.%20_)
## Visual C#
The TechNet Guru competition is announced in the forums, links are listed below.
Post a link to the **TechNet Wiki page** of your C# contribution here:
- [Exchange: Error when using the latest version of exchange from user setting response](http://social.technet.microsoft.com/wiki/contents/articles/30320.exchange-error-when-using-the-latest-version-of-exchange-from-user-setting-response.aspx)
by [
Prashant Mahajan](https://social.technet.microsoft.com/profile/prashant%20mahajan,%20pune/)
- [Implementing equality comparison, what is the best approach?](http://social.technet.microsoft.com/wiki/contents/articles/30268.implementing-equality-comparison-what-is-the-best-approach.aspx) by
[Mansoor-Omrani](https://social.msdn.microsoft.com/profile/mansoor%20omrani/)
- [Visual C#: RSA encryption using certificate](http://social.technet.microsoft.com/wiki/contents/articles/30291.visual-c-rsa-encryption-using-certificate.aspx) by
[Wim Beck](https://social.technet.microsoft.com/profile/wim%20beck/)
- [Render Same Page With Multiple URLs Using Route Engine in ASP.Net MVC 5](http://social.technet.microsoft.com/wiki/contents/articles/30439.render-same-page-with-multiple-urls-using-route-engine-in-asp-net-mvc-5.aspx) by
[Tom Mohan](https://social.technet.microsoft.com/profile/tom%20mohan/)
- [Introduction to Asp.net Ajax and Ajax Control Toolkit](http://social.technet.microsoft.com/wiki/contents/articles/30311.introduction-to-asp-net-ajax-and-ajax-control-toolkit.aspx) by
[Vithal Wadje](https://social.technet.microsoft.com/Profile/vithal%20wadje/activity)
- [Setting custom Messages in user defined Exceptions](http://social.technet.microsoft.com/wiki/contents/articles/30509.setting-custom-messages-in-user-defined-exceptions.aspx) by
[Isham Mohamed](https://social.technet.microsoft.com/profile/ishammohamed/)
- [.NET: Equality Features](http://social.technet.microsoft.com/wiki/contents/articles/30508.net-equality-features.aspx) by
[Tom Mohan](https://social.technet.microsoft.com/profile/tom%20mohan/)
- [Constructors and Its Types in C#](http://social.technet.microsoft.com/wiki/contents/articles/30544.constructors-and-its-types-in-c-with-examples.aspx) by
[Vithal Wadje](https://social.msdn.microsoft.com/Profile/vithal%20wadje)
## Windows Phone and Windows Store Apps
The TechNet Guru competition is announced in the forums, links are listed below.
Post a link to the **TechNet Wiki page** of your Windows Phone contribution here:
- [Make a Styled Button in XAML for Windows Universal Apps](http://social.technet.microsoft.com/wiki/contents/articles/30199.make-a-styled-button-in-xaml-for-universal-windows-apps.aspx)by [Damien Allan](https://social.technet.microsoft.com/profile/pumpkinszwan/)
- [Part four: The control Maps on Windows Phone 8.](http://social.technet.microsoft.com/wiki/contents/articles/30519.part-four-the-control-maps-on-windows-phone-8.aspx)by [Carmelo La Monica](https://social.technet.microsoft.com/profile/carmelo%20la%20monica/)
## Windows PowerShell
The TechNet Guru competition is announced in the forums, links are listed below.
Post a link to the **TechNet Wiki page** of your PowerShell contribution here:
- Replace with "Article Name" by "Profile Name" (each hyperlinked to the article and the author profile urls)
- [Make System Center Orchestrator Text
Faster than a Teenager using PowerShell and Twilio](http://social.technet.microsoft.com/wiki/contents/articles/30247.make-system-center-orchestrator-text-faster-than-a-teenager-using-powershell-and-twilio.aspx) by [Noah Stahl](https://social.technet.microsoft.com/profile/noah%20stahl/)
- [Add MSG file metadata to a SharePoint list using PowerShell](http://social.technet.microsoft.com/wiki/contents/articles/30257.add-msg-file-metadata-to-a-sharepoint-list-using-powershell.aspx) by
[
Dan Christian](http://social.technet.microsoft.com/wiki/contents/articles/25484.user-page-dan-christian.aspx)
- [PowerShell Script to Search Active Directory](http://social.technet.microsoft.com/wiki/contents/articles/30522.powershell-script-to-search-active-directory.aspx) by
[
Richard Mueller](https://social.technet.microsoft.com/profile/richard%20mueller/ "Go to Richard Mueller's profile")
## Windows Presentation Foundation (WPF)
The TechNet Guru competition is announced in the forums, links are listed below.
Post a link to the **TechNet Wiki page** of your WPF contribution here:
- Replace with "Article Name" by "Profile Name" (each hyperlinked to the article and the author profile urls)
- [Asynchronous data binding using IsAsync and Delay](http://social.technet.microsoft.com/wiki/contents/articles/30203.asynchronous-data-binding-using-isasync-and-delay-in-wpf.aspx) by [Tom
Mohan](https://social.technet.microsoft.com/profile/tom%20mohan/)
- [RadioButton Alignment
](http://social.technet.microsoft.com/wiki/contents/articles/30173.wpf-tips-radiobutton-alignment.aspx)by [Andy ONeill](https://social.technet.microsoft.com/profile/andy%20oneill/)
- [Uneventful MVVM](http://social.technet.microsoft.com/wiki/contents/articles/30564.wpf-uneventful-mvvm.aspx) by
[Andy ONeill](https://social.msdn.microsoft.com/profile/andy%20oneill/activity)
- [WPF: Implementing Global Hot Keys](http://social.technet.microsoft.com/wiki/contents/articles/30568.wpf-implementing-global-hot-keys.aspx) by [Magnus (MM8)](http://social.technet.microsoft.com/profile/magnus%20%28mm8%29/)
## Windows Server
The TechNet Guru competition is announced in the forums, links are listed below.
Post a link to the**TechNet Wiki page** of your contribution here:
- Replace with "Article Name" by "Profile Name" (each hyperlinked to the article and the author profile urls)
- [Active Directory - Clone a Domain Controller in Windows Server 2012 with Hyper-V
(VM-GenerationID)](http://social.technet.microsoft.com/wiki/contents/articles/30237.active-directory-clone-a-domain-controller-in-windows-server-2012-with-hyper-v-vm-generationid.aspx) by [
Pierre-Alexandre Braeken](http://social.technet.microsoft.com/wiki/343989/ProfileUrlRedirect.ashx)
- [Set up a virtual infrastructure at home with Windows 8 + Hyper-V Manager and a Synology
DS412j](http://social.technet.microsoft.com/wiki/contents/articles/30521.set-up-a-virtual-infrastructure-at-home-with-windows-8-hyper-v-manager-and-a-synology-ds412j.aspx) by [Pierre-Alexandre Braeken](http://social.technet.microsoft.com/wiki/343989/ProfileUrlRedirect.ashx)
- [Bitlocker Drive Encryption](http://social.technet.microsoft.com/wiki/contents/articles/30380.bitlocker-drive-encryption-in-server-20122012r2-not-completed-need-to-do-the-alignments.aspx) By
[Darshana Jayathilake](https://social.technet.microsoft.com/profile/darshana%20jayathilake/)
- [Netstat for Beginners](http://social.technet.microsoft.com/wiki/contents/articles/30571.netstat-for-beginners.aspx) by
[Mr X](https://social.technet.microsoft.com/profile/mr%20%20x/)
## Wiki and Portals
The TechNet Guru competition is announced in the forums, links are listed below.
Post a link to the TechNet Wiki page of your contribution here:
- Replace with "Article Name" by "Profile Name" (each hyperlinked to the article and the author profile urls)
- [TechNet Wiki - Images and Logos 2015](http://social.technet.microsoft.com/wiki/contents/articles/30429.technet-wiki-images-and-logos-2015.aspx) by
[
Alan do Nascimento Carlos](https://social.technet.microsoft.com/profile/alan%20nascimento%20carlos/)
- [Turkish
Ninjas Team Council Center](http://social.technet.microsoft.com/wiki/contents/articles/30442.turkish-ninjas-team-council-center.aspx) by [Davut EREN](http://social.technet.microsoft.com/wiki/550971/ProfileUrlRedirect.ashx)
## Miscellaneous
The TechNet Guru competition is announced in the forums, links are listed below.
Post a link to the TechNet Wiki page of your contribution here:
- Replace with "Article Name" by "Profile Name" (each hyperlinked to the article and the author profile urls)
- [Zen coding with Visual Studio](http://social.technet.microsoft.com/wiki/contents/articles/30288.zen-coding-with-visual-studio.aspx) by [Tom Mohan](https://social.technet.microsoft.com/profile/tom%20mohan/)
- [Convert and Edit Microsoft Office Live Meeting Recordings](http://social.technet.microsoft.com/wiki/contents/articles/30328.convert-and-edit-microsoft-office-live-meeting-recordings.aspx) by
[
XAML guy](http://social.technet.microsoft.com/wiki/149154/ProfileUrlRedirect.ashx)
- [Silverlight: Trouble Shooting Installs](http://social.technet.microsoft.com/wiki/contents/articles/30387.silverlight-trouble-shooting-installs.aspx) by
[Andy ONeill](https://social.msdn.microsoft.com/profile/andy%20oneill/)
# See Also
- [TechNet Guru Contributions](http://social.technet.microsoft.com/wiki/contents/articles/17641.technet-guru-contributions.aspx)
- [List of Award Winning TechNet Guru Articles](http://social.technet.microsoft.com/wiki/contents/articles/19679.list-of-award-winning-technet-guru-articles.aspx)
# This Month's Forum Announcements
1. [SharePoint 2010](https://social.msdn.microsoft.com/Forums/sharepoint/en-US/fb210a5f-f9af-4013-ad95-ae4e8da76be4/be-our-next-spring-sharepoint-2010-guru?forum=sharepointdevelopmentprevious)
2. [Small Basic](https://social.msdn.microsoft.com/Forums/en-US/adb08b97-18e4-4377-9ed9-02a5f6f9a8ab/be-our-next-spring-small-basic-guru?forum=smallbasic)
3. [SSAS](https://social.technet.microsoft.com/Forums/sqlserver/en-US/efa56fd9-fa5c-4e5f-a293-335f8d3ae21e/be-our-next-spring-ssas-guru?forum=sqlanalysisservices)
4. [Power Pivot](https://social.technet.microsoft.com/Forums/sqlserver/en-US/d2101228-f68c-4f99-a578-a4c8f68b4ab7/be-our-next-spring-power-pivot-guru?forum=sqlkjpowerpivotforexcel)
5. [SS DBE](https://social.technet.microsoft.com/Forums/sqlserver/en-US/acf9c66b-23b8-4f48-9778-92a694c1882f/be-our-next-spring-ss-dbe-guru?forum=sqldatabaseengine)
6. [SSRS](https://social.technet.microsoft.com/Forums/sqlserver/en-US/5c69bdde-0523-47ad-813a-96b209b925e2/be-our-next-spring-ssrs-guru?forum=sqlreportingservices)
7. [SSIS](https://social.technet.microsoft.com/Forums/sqlserver/en-US/3340ee74-c8d9-461b-bd2b-84b88e800a5b/be-our-next-spring-ssis-guru?forum=sqlintegrationservices)
8. [T-SQL](https://social.msdn.microsoft.com/Forums/sqlserver/en-US/9a825ec9-cb0d-40ab-8d3e-ecc3a4e1d6bf/be-our-next-spring-tsql-guru?forum=transactsql)
9. [C#](https://social.msdn.microsoft.com/Forums/vstudio/en-US/e05afbf4-b3c0-4b91-8153-ae15c1867e18/be-our-next-spring-c-guru?forum=csharpgeneral)
10. [Store App](https://social.msdn.microsoft.com/Forums/windowsapps/en-US/730d32e4-551f-4a27-9bcc-25a8a7e7c18e/be-our-next-spring-store-app-guru?forum=winappswithcsharp)
11. [WPF](https://social.msdn.microsoft.com/Forums/vstudio/en-US/0ab5283d-5eb5-46bb-a60f-fc4d28668515/be-our-next-spring-wpf-guru?forum=wpf)
12. [Windows Server](https://social.msdn.microsoft.com/Forums/windowsserver/en-US/09871d3c-7945-4879-954e-1add9662a0da/be-our-next-spring-windows-server-guru?forum=windowsserversolutionssdk)
13. [Windows Server](https://social.technet.microsoft.com/Forums/en-US/1254c8bb-8b3d-4a43-b4be-363b0b6988d7/be-our-next-spring-windows-server-guru?forum=winserver8gen)
14. [Windows Server](https://social.technet.microsoft.com/Forums/en-US/52552de9-b6cf-483c-b87a-f9e2c5d39b19/be-our-next-spring-windows-server-guru?forum=winservergen)
15. [SQL Server](https://social.technet.microsoft.com/Forums/sqlserver/en-US/970601a5-da59-47eb-8e4a-69379c579db9/be-our-next-spring-sql-server-guru?forum=sqlgetstarted)
16. [Windows Server](https://social.technet.microsoft.com/Forums/en-US/930887b8-03ff-4314-94ee-700d73214563/be-our-next-spring-windows-server-guru?forum=winserverDS)
17. [System Center](https://social.technet.microsoft.com/Forums/systemcenter/en-US/b8c74d24-941c-4a56-8785-c9db8e8f9156/be-our-next-spring-system-center-guru?forum=configmgrgeneral)
18. [System Center](https://social.technet.microsoft.com/Forums/en-US/730e5698-3839-479f-b2bb-ca6e9db3cc1c/be-our-next-spring-system-center-guru?forum=configmanagergeneral)
19. [System Center](https://social.technet.microsoft.com/Forums/systemcenter/en-US/5665192e-1fc6-4be9-8aea-659e0d1a6532/be-our-next-spring-system-center-guru?forum=operationsmanagergeneral)
20. [System Center](https://social.technet.microsoft.com/Forums/en-US/ded4df45-b1a6-492b-ac63-7380c0f878de/be-our-next-spring-system-center-guru?forum=dataprotectionmanager)
21. [System Center](https://social.technet.microsoft.com/Forums/en-US/c8b8dffc-81dd-4e6d-906a-a9bbd8be3292/be-our-next-spring-system-center-guru?forum=scogeneral)
22. [System Center](https://social.technet.microsoft.com/Forums/systemcenter/en-US/66f87f65-b61b-475c-b563-b06b996f06ed/be-our-next-spring-system-center-guru?forum=systemcenterservicemanager)
23. [System Center](https://social.technet.microsoft.com/Forums/systemcenter/en-US/e5b045e0-2fee-4f10-a5e1-a3ecfd6617cc/be-our-next-spring-system-center-guru?forum=virtualmachinemanager)
24. [System Center](https://social.technet.microsoft.com/Forums/en-US/726871c8-08b9-4795-8218-39738b398c1b/be-our-next-spring-system-center-guru?forum=appcontroller)
25. [TN Wiki](https://social.technet.microsoft.com/Forums/en-US/997e4c19-82e3-4393-aff6-f989d11f4d6d/be-our-next-spring-tn-wiki-guru?forum=tnwiki)
26. [Visio](https://social.technet.microsoft.com/Forums/office/en-US/ca08069f-d7ba-477e-840a-15cd776b591b/be-our-next-spring-visio-guru?forum=visiogeneral)
27. [Azure](https://social.msdn.microsoft.com/Forums/azure/en-US/993e67b1-d31e-4516-9f58-0e26eae2bdce/be-our-next-spring-azure-guru?forum=windowsazuredevelopment)
28. [VB](https://social.msdn.microsoft.com/Forums/vstudio/en-US/c31822df-4c9e-427c-8d63-625d7dc7dbab/be-our-next-spring-vb-guru?forum=vbgeneral)
29. [FIM](https://social.technet.microsoft.com/Forums/en-US/5344bea9-40ca-4046-bd00-a97b12ea0f99/be-our-next-spring-fim-guru?forum=ilm2)
30. [Windows Phone](https://social.msdn.microsoft.com/Forums/windowsapps/en-US/16cdd68f-d8a9-43a8-86f2-8f90f6aa8d7f/be-our-next-spring-windows-phone-guru?forum=wpdevelop)
31. [Azure](https://social.msdn.microsoft.com/Forums/azure/en-US/042a3db9-a448-47f3-b5d0-8583d7226031/be-our-next-spring-azure-guru?forum=WAVirtualMachinesforWindows)
32. [Azure](https://social.technet.microsoft.com/Forums/en-US/1f21e8cd-e8bd-422b-abac-def330014bc1/be-our-next-spring-azure-guru?forum=ssdsgetstarted)
33. [BizTalk](https://social.msdn.microsoft.com/Forums/en-US/1a9fabf4-0f1e-4b36-ae7c-17876b0b5a6b/be-our-next-spring-biztalk-guru?forum=biztalkgeneral)
34. [BizTalk](https://social.msdn.microsoft.com/Forums/azure/en-US/13debd03-7d62-45e2-a183-1c93a2b789a0/be-our-next-spring-biztalk-guru?forum=azurebiztalksvcs)
35. [PowerShell](https://social.technet.microsoft.com/Forums/windowsserver/en-US/1c625c99-a41c-4f31-b5ff-ec57f45bd491/be-our-next-spring-powershell-guru?forum=winserverpowershell)


{# Copyright (c) 2019 The Pycroft Authors. See the AUTHORS file. This file is part of the Pycroft project and licensed under the terms of the Apache License, Version 2.0. See the LICENSE file for details. #} {% extends "layout.html" %} {% import "macros/forms.html" as forms %} {% set page_title = "Bankkontobewegungen manuell importieren" %} {% import "macros/forms.html" as forms %} {% block single_row_content %}


Most of the functionality of the website is completed. Added: Functioning Sidebar Inquiries system Building Homepage Laundry system