|
Fusion3D
Version 6.04
|
Creates an index for a group of DEM tiles and gets DEM and texture data for any given ROI. More...
#include <map3d_index_class.h>
Public Member Functions | |
| map3d_index_class (int nmax) | |
| Constructor. More... | |
| ~map3d_index_class () | |
| Destructor. More... | |
| int | register_dir (dir_class *dirin) |
| Register dir_class that stores file names and info for DEM filesets and Point clouds. More... | |
| int | register_map3d_lowres (map3d_lowres_class *map3d_lowres_in) |
| Register map3d_lowres_class to class. More... | |
| int | register_mask (unsigned char *mask, double north, double east, int ny, int nx) |
| Register a mask to the class to mask intensities. More... | |
| int | register_mask_dem (float *mask, double north, double east, int ny, int nx) |
| Register a mask to the class to mask DEM elevations. More... | |
| int | read_tagged (const char *filename) |
| Read file in tagged ascii format. More... | |
| int | make_index () |
| Make the index for the tiles. More... | |
| int | reset_map_parms () |
| Reset the map parameters in helper class tiles_rtv_class. More... | |
| int | calc_roi_intersections () |
| Calculate the intersection of the ROI with the map tiles. More... | |
| int | is_elev_intersection (double roi_cen_north, double roi_cen_east, float roi_size_y, float roi_size_x) |
| Returns 1 if there is an intersection of the ROI with the map tiles, 0 otherwise. More... | |
| int | apply_mask_amp (unsigned char *data_loc, float size_texture, float xres_texture, float yres_texture, int nx_texture, int ny_texture) |
| Apply mask to amplitude/colors of a texture image (used primarily by LOS to mark shadowed areas). More... | |
| int | write_parms (FILE *out_fd) override |
| Write parameters to the currently opened ASCII file – for saving all relevent parameters to an output Porject File. More... | |
| int | dealloc_elev2 () |
| Deallocate memory for A2-data – if ROI is large and array is not reallocated, may save a significant amount of memory. More... | |
| int | clear_all () override |
| Clear (reset) all variables for current dataset so that another dataset can be defined. More... | |
| int | elev_mutex_lock () |
| Lock mutex that protects getting a2-elevation. More... | |
| int | elev_mutex_unlock () |
| Unlock mutex that protects getting a2-elevation. More... | |
| int | tex_mutex_lock () |
| Lock mutex that protects getting textures mrg and int. More... | |
| int | tex_mutex_unlock () |
| Unlock mutex that protects getting textures mrg and int. More... | |
| int | set_roi_cen (double north, double east) |
| Set the center of the ROI for obtaining cropped data. More... | |
| int | set_roi_size (float dnorth, float deast) |
| Set the size of the ROI for obtaining cropped data. More... | |
| int | set_roi_pt_size_in_pixels (int nnorth, int neast) |
| Set the size of the ROI in pixels for finding the elevation of a point. More... | |
| int | set_smoothing_agressive () |
| Set the smoothing algorithm to smooth more agressively – may be used for mountainous terrain where bare ground has much larger slopes. More... | |
| int | set_diag_flag (int flag) |
| Set the level of output diagnosics – 0 for none, 1 for some, 2 for verbose. More... | |
| int | enable_mask () |
| Enable the mask – this mask enables some pixels to be marked, such as in LOS calculations. More... | |
| int | disable_mask () |
| Disable the mask – this mask enables some pixels to be marked, such as in LOS calculations. More... | |
| int | enable_mask_dem () |
| Enable mods to all masked DEM elevations. More... | |
| int | disable_mask_dem () |
| Disable mods to all masked DEM elevations. More... | |
| int | get_n_rows_roi () |
| Get the size of the ROI – the number of rows. More... | |
| int | get_n_cols_roi () |
| Get the size of the ROI – the number of cols. More... | |
| double | get_cen_north_roi () |
| Get the location of the center of the ROI. More... | |
| double | get_cen_east_roi () |
| Get the location of the center of the ROI. More... | |
| float | get_res_roi () |
| Get the resolution of the ROI (the underlying tiles). More... | |
| int | calc_roi_intersections_safe (double north, double east, int roi_nxt, int roi_nyt, int &enclosed, vector< int > &tile_no, vector< int > &tile_w1, vector< int > &tile_w2, vector< int > &tile_h1, vector< int > &tile_h2) |
| Calculate the intersection of the ROI with the map tiles. More... | |
| int | get_elev_to_given (double north, double east, int roi_nxt, int roi_nyt, int enclosed, vector< int > &tile_no, vector< int > &tile_w1, vector< int > &tile_w2, vector< int > &tile_h1, vector< int > &tile_h2, int which_flag, int exec_smoothing_flag, int lowres_flag, float *fdata, unsigned char *smooth_flags) |
| Get the array of elevations for the ROI-tile intersection. More... | |
| int | is_map_defined () |
| Return 1 if a map is currently defined, 0 otherwise. More... | |
| unsigned char * | get_mrg () |
| Get array of rgb values for the ROI-tile intersection. More... | |
| unsigned char * | get_int () |
| Get array of lidar intensities for the ROI-tile intersection. More... | |
| float * | get_elev (int which_flag, int exec_smoothing_flag, int lowres_flag) |
| Get the array of elevations for the ROI-tile intersection. More... | |
| unsigned char * | get_smooth_flags () |
| Get smooth flags for the map. More... | |
| int | get_elev_at_pt (double north, double east, float &elev_a2) |
| Get the elevation from the last-hit surface at the given point. More... | |
| float | get_elev_offmap () |
| Get the default elevation to be assigned to pixels off the map. More... | |
| int | get_ibrt_offmap () |
| Get the intensity to be assigned to pixels off the map. More... | |
| int | get_n_intersections () |
| Get the number of intersections of the Current ROI with indiviedual map tiles. More... | |
| int | get_crop_flag () |
| Get the crop flag for the current tile – 1 iff the intersection with the ROI does not take up the entire tile. More... | |
| int | get_crop_w1 () |
| Get the crop left index. More... | |
| int | get_crop_h1 () |
| Get the crop top index. More... | |
| int | get_crop_w2 () |
| Get the crop right index. More... | |
| int | get_crop_h2 () |
| Get the crop bottom index. More... | |
| tiles_rtv_class * | get_tiles_rtv_class () |
| Get a pointer to the tiles_rtv_class used to read the data. More... | |
| dir_class * | get_dir_class () |
| Get a pointer to the dir_class used to store filenames for all current tiles – a2, a1, .mrg, .int files for each tile. More... | |
| int | get_internal_tiles_nx () |
| Get the number of tiles in the map in the x-direction – internal (typically 128-pixel) tiles rather than lidar tiles. More... | |
| int | get_internal_tiles_ny () |
| Get the number of tiles in the map in the y-direction – internal (typically 128-pixel) tiles rather than lidar tiles. More... | |
| float | get_internal_tiles_dx () |
| Get the size in m of tiles in the map in the x-direction – internal (typically 128-pixel) tiles rather than lidar tiles. More... | |
| float | get_internal_tiles_dy () |
| Get the size in m of tiles in the map in the x-direction – internal (typically 128-pixel) tiles rather than lidar tiles. More... | |
| Public Member Functions inherited from base_jfd_class | |
| base_jfd_class () | |
| Constructor. More... | |
| virtual | ~base_jfd_class () |
| Destructor. More... | |
| int | set_diag_flag (int flag) |
| Set level of diagnostics. More... | |
| int | register_coord_system (gps_calc_class *gps_calc_in) |
| Register the common gps_calc_class for defining the current coordinate systems and transformations between them. More... | |
| const char * | get_type () |
| Get the name of the class. More... | |
| int | warning (int oiv_window_flag, const char *message) |
| Open dialog window with warning. More... | |
| int | warning_s (string cmessage, string smessage) |
| Open dialog window with 2-part warning message. More... | |
| int | exit_safe (int oiv_window_flag, const char *message) |
| Open dialog window with fatal error message. More... | |
| int | exit_safe_s (string message, string smessage) |
| Open dialog window with fatal error message. More... | |
| virtual int | read_file (string sfilename) |
| Read file: all functions including open, read header and data and close – Virtual. More... | |
| virtual int | read_file_open (string sfilename) |
| Read file: only the open part of the entire read-file – Virtual. More... | |
| virtual int | read_file_header () |
| Read file: only the read-header part of the entire read-file – Virtual. More... | |
| virtual int | read_file_data () |
| Read file: only the read-data part of the entire read-file – Virtual. More... | |
| virtual int | read_file_close () |
| Read file: only the close part of the entire read-file – Virtual. More... | |
| virtual int | write_file (string sfilename) |
| Write file: entire process of open, write header and data and close – Virtual. More... | |
Public Attributes | |
| double | map_e |
| Boundary of current map in meters in UTM. More... | |
| double | map_w |
| Boundary of current map in meters in UTM. More... | |
| double | map_n |
| Boundary of current map in meters in UTM. More... | |
| double | map_s |
| Boundary of current map in meters in UTM. More... | |
| float | map_minz |
| Estimated minimum elevation of map. More... | |
| float | map_maxz |
| Estimated maximum elevationof map. More... | |
Additional Inherited Members | |
| Protected Attributes inherited from base_jfd_class | |
| int | diag_flag |
| Diagnostic level – 0=none, 1=little, 2=moderate, 3=heavy. More... | |
| int | opsys_flag |
| Operating system – 0=unix, 1=windows, 2=linux. More... | |
| char * | class_type |
| Unique name for each child class. More... | |
| int | localCoordFlag |
| Coord systems – -1=unknown local coord system, 0=local same as global, Positive=EPSG where known local coord different from global. More... | |
| gps_calc_class * | gps_calc |
| Coord systems – Worker class to define global coordinate systems and transformations. More... | |
Creates an index for a group of DEM tiles and gets DEM and texture data for any given ROI.
This class uses helper image_tif_class classes to read DEM and associated texture data. It first reads the headers of all last-hit surface tiles in the given directory to get boundaries. Given a ROI, it finds which tiles intersect that ROI (up to 4) and gets the DEM and texture data for the ROI.
If very-high resolution texture is specified (higher than the elevation data), the class also uses a helper image_mrsid_class to read very-high resolution orthophoto data from a MrSID file. A single MrSID file is assumed to cover the entire map. The LizardTech Decode SDK is used to read a chip from the MrSID file associated with each tile.
This class was originally designed to read Buckeye lidar terrain elevation data and follows many Buckeye conventions. It expects to see 3 different kinds of lidar data. The first is a last-hit elevation surface from a GeoTiff file. This is the primary data file and the other types of lidar data must match it in format, size and area covered. At this time, the filenames for the other 2 types of lidar data are derived from this filename, so must follow Buckeye naming conventions.
The second is a first-hit elevation surface, also from a GeoTiff file. Where the elevations in this surface are sufficiently different from the last-hit surface, these elevations are added to the display.
The third is a texture file that gives color values to the map. This can be either rgb data from an orthophoto, the lidar intensity image or a false color image generated from the lidar intensity image. These textures are the same resolution as the elevation data and are contained in GeoTiff files. If very-high resolution texture is specified, as describe above, the texture is chipped from the MrSID file.
The class was extended to accomodate files for a single tile that dont follow Buckeye naming conventions. Required files are a primary DEM file (like the 'a2' Buckeye file) and a texture file (like the 'mrg' or 'int' Buckeye files). Optional files are a secondary DEM file (like the 'a1' Buckeye file) and a very high-res texture file in MrSID format.
The class employs a smoothing algorithm to visualize smooth parts of the data as smooth and rough parts of the data as discrete pixels.
This algorithm has 3 parameters that can be adjusted by a tag:
int smooth_th_n_lines – no. of lines out of 4 that must meet specs
float smooth_thresh_drange – Max delZ difference between line halves for 1-m pixels
float smooth_thresh_slope – Max slope delZ/delh for a line to meet specs
| map3d_index_class::map3d_index_class | ( | int | nmax | ) |
Constructor.
Allows for up to 50 maps to be defined in the Project File
| map3d_index_class::~map3d_index_class | ( | ) |
Destructor.
| int map3d_index_class::apply_mask_amp | ( | unsigned char * | data_loc, |
| float | size_texture, | ||
| float | xres_texture, | ||
| float | yres_texture, | ||
| int | nx_texture, | ||
| int | ny_texture | ||
| ) |
Apply mask to amplitude/colors of a texture image (used primarily by LOS to mark shadowed areas).
A mask image with 1 for shaded (color altered) pixels and 0 for unshaded (unaltered) pixels must be previously defined.
| data_loc | Input/output texture image to be masked |
| size_texture | Size of input texture image in m (assumed to be square – x and y dimensions are the same) |
| res_texture | Resolution of input texture image |
| nl_texture | Size of input texture image in pixels in both x and y directions (assumed square) |
| int map3d_index_class::calc_roi_intersections | ( | ) |
Calculate the intersection of the ROI with the map tiles.
Saves the ids of the tiles that intersect (up to 4) and sets a flag if the ROI is fully contained within a single tile.
| int map3d_index_class::calc_roi_intersections_safe | ( | double | north, |
| double | east, | ||
| int | roi_nxt, | ||
| int | roi_nyt, | ||
| int & | enclosed_tileno, | ||
| vector< int > & | tile_no, | ||
| vector< int > & | tilet_w1, | ||
| vector< int > & | tilet_w2, | ||
| vector< int > & | tilet_h1, | ||
| vector< int > & | tilet_h2 | ||
| ) |
Calculate the intersection of the ROI with the map tiles.
Saves the ids of the tiles that intersect (up to 4) and sets a flag if the ROI is fully contained within a single tile. Should be thread safe since it uses all passed/local variables instead of class variables.
| north | Center of roi |
| east | Center of roi |
| roi_nxt | Width in pixels of roi |
| roi_nyt | Height in pixels of roi |
| enclosed_tileno | Output tile number of tile that encloses the roi (<0 if no tile fully encloses the roi) |
| tile_no | Output list of tile numbers that intersect roi |
| tilet_w1 | Output list of crop first width index |
| tilet_w2 | Output list of crop last width index |
| tilet_h1 | Output list of crop first height index |
| tilet_h2 | Output list of crop last height index |
|
overridevirtual |
Clear (reset) all variables for current dataset so that another dataset can be defined.
Reimplemented from base_jfd_class.
| int map3d_index_class::dealloc_elev2 | ( | ) |
Deallocate memory for A2-data – if ROI is large and array is not reallocated, may save a significant amount of memory.
| int map3d_index_class::disable_mask | ( | ) |
Disable the mask – this mask enables some pixels to be marked, such as in LOS calculations.
| int map3d_index_class::disable_mask_dem | ( | ) |
Disable mods to all masked DEM elevations.
This has been used to deconflict a DEM with a CAD model, pushing all DEM pixels below the CAD model.
| int map3d_index_class::elev_mutex_lock | ( | ) |
Lock mutex that protects getting a2-elevation.
Worker thread uses a2-elevation to make tiles, main thread may use to do mensuration or LOS, etc.
| int map3d_index_class::elev_mutex_unlock | ( | ) |
Unlock mutex that protects getting a2-elevation.
Worker thread uses a2-elevation to make tiles, main thread may use to do mensuration or LOS, etc.
| int map3d_index_class::enable_mask | ( | ) |
Enable the mask – this mask enables some pixels to be marked, such as in LOS calculations.
| int map3d_index_class::enable_mask_dem | ( | ) |
Enable mods to all masked DEM elevations.
This has been used to deconflict a DEM with a CAD model, pushing all DEM pixels below the CAD model.
| double map3d_index_class::get_cen_east_roi | ( | ) |
Get the location of the center of the ROI.
| double map3d_index_class::get_cen_north_roi | ( | ) |
Get the location of the center of the ROI.
| int map3d_index_class::get_crop_flag | ( | ) |
Get the crop flag for the current tile – 1 iff the intersection with the ROI does not take up the entire tile.
| int map3d_index_class::get_crop_h1 | ( | ) |
Get the crop top index.
| int map3d_index_class::get_crop_h2 | ( | ) |
Get the crop bottom index.
| int map3d_index_class::get_crop_w1 | ( | ) |
Get the crop left index.
| int map3d_index_class::get_crop_w2 | ( | ) |
Get the crop right index.
| dir_class * map3d_index_class::get_dir_class | ( | ) |
Get a pointer to the dir_class used to store filenames for all current tiles – a2, a1, .mrg, .int files for each tile.
| float * map3d_index_class::get_elev | ( | int | which_flag, |
| int | exec_smoothing_flag, | ||
| int | lowres_flag | ||
| ) |
Get the array of elevations for the ROI-tile intersection.
Not entirely thread safe – method get_elev_safe is better.
| which_flag | 1 for first-hit surface, 2 for last-hit surface. |
| exec_smoothing_flag | 1 to turn on smoothing algorithm (typically done for a2 surface but not for a1 surface) |
| lowres_flag | 1 iff lowres-elevations have been calculated and can be used to set no-data areas, 0 if lowres not yet calc – use -9999. |
| int map3d_index_class::get_elev_at_pt | ( | double | north, |
| double | east, | ||
| float & | elev_a2 | ||
| ) |
Get the elevation from the last-hit surface at the given point.
Uses local storage to minimize potential multithreading problems with calls to map database – most requests handled locally. Uses internal mutex to insure thread safety.
| north | Northing in UTM coordinates (absolute) |
| east | Easting in UTM coordinates (absolute) |
| elev_a2 | output float a2 elevation at point |
| float map3d_index_class::get_elev_offmap | ( | ) |
Get the default elevation to be assigned to pixels off the map.
| int map3d_index_class::get_elev_to_given | ( | double | north, |
| double | east, | ||
| int | roi_nxt, | ||
| int | roi_nyt, | ||
| int | enclosed_tileno, | ||
| vector< int > & | tile_no, | ||
| vector< int > & | tilet_w1, | ||
| vector< int > & | tilet_w2, | ||
| vector< int > & | tilet_h1, | ||
| vector< int > & | tilet_h2, | ||
| int | which_flag, | ||
| int | exec_smoothing_flag, | ||
| int | lowres_flag, | ||
| float * | fdata, | ||
| unsigned char * | smooth_flagst | ||
| ) |
Get the array of elevations for the ROI-tile intersection.
Should be thread safe since it uses all passed/local variables instead of class variables.
| Center | of roi |
| Center | of roi |
| Width | in pixels of roi |
| Width | in pixels of roi |
| Input | tile number of tile that encloses the roi (<0 if no tile fully encloses the roi) |
| Input | list of tile numbers that intersect roi |
| Input | list of crop first width index |
| Input | list of crop last width index |
| Input | list of crop first height index |
| Input | list of crop last height index |
| which_flag | 1 for first-hit surface, 2 for last-hit surface. |
| exec_smoothing_flag | 1 to turn on smoothing algorithm (typically done for a2 surface but not for a1 surface) |
| lowres_flag | 1 iff lowres-elevations have been calculated and can be used to set no-data areas, 0 if lowres not yet calc – use -9999. |
| fdata | float output array for elevations |
| smooth_flagst | unsigned char output array for smooth flags |
| int map3d_index_class::get_ibrt_offmap | ( | ) |
Get the intensity to be assigned to pixels off the map.
| unsigned char * map3d_index_class::get_int | ( | ) |
Get array of lidar intensities for the ROI-tile intersection.
| float map3d_index_class::get_internal_tiles_dx | ( | ) |
Get the size in m of tiles in the map in the x-direction – internal (typically 128-pixel) tiles rather than lidar tiles.
| float map3d_index_class::get_internal_tiles_dy | ( | ) |
Get the size in m of tiles in the map in the x-direction – internal (typically 128-pixel) tiles rather than lidar tiles.
| int map3d_index_class::get_internal_tiles_nx | ( | ) |
Get the number of tiles in the map in the x-direction – internal (typically 128-pixel) tiles rather than lidar tiles.
| int map3d_index_class::get_internal_tiles_ny | ( | ) |
Get the number of tiles in the map in the y-direction – internal (typically 128-pixel) tiles rather than lidar tiles.
| unsigned char * map3d_index_class::get_mrg | ( | ) |
Get array of rgb values for the ROI-tile intersection.
rgb values may come from orthophotos or from false color images using lidar intensities and elevation-coded hues.
| int map3d_index_class::get_n_cols_roi | ( | ) |
Get the size of the ROI – the number of cols.
| int map3d_index_class::get_n_intersections | ( | ) |
Get the number of intersections of the Current ROI with indiviedual map tiles.
| int map3d_index_class::get_n_rows_roi | ( | ) |
Get the size of the ROI – the number of rows.
| float map3d_index_class::get_res_roi | ( | ) |
Get the resolution of the ROI (the underlying tiles).
| unsigned char * map3d_index_class::get_smooth_flags | ( | ) |
Get smooth flags for the map.
| tiles_rtv_class * map3d_index_class::get_tiles_rtv_class | ( | ) |
Get a pointer to the tiles_rtv_class used to read the data.
| int map3d_index_class::is_elev_intersection | ( | double | roi_cen_north, |
| double | roi_cen_east, | ||
| float | roi_size_y, | ||
| float | roi_size_x | ||
| ) |
Returns 1 if there is an intersection of the ROI with the map tiles, 0 otherwise.
This method is thread safe since it uses local variables.
| int map3d_index_class::is_map_defined | ( | ) |
Return 1 if a map is currently defined, 0 otherwise.
| int map3d_index_class::make_index | ( | ) |
Make the index for the tiles.
Finds all the a2 files, reads their their headers. It stores the extent of each tile and the total extent of the map. It does all other initialization chores including making or getting the low-res elevations. It initializes smoothing algorithm parameters.
| int map3d_index_class::read_tagged | ( | const char * | filename | ) |
Read file in tagged ascii format.
Read in operational parameters from the standard tagged ascii format.
| int map3d_index_class::register_dir | ( | dir_class * | dirin | ) |
| int map3d_index_class::register_map3d_lowres | ( | map3d_lowres_class * | map3d_lowres_in | ) |
Register map3d_lowres_class to class.
Register a pointer to the map3d_lowres_class that does lowres DEM calculations.
| int map3d_index_class::register_mask | ( | unsigned char * | mask_in, |
| double | north, | ||
| double | east, | ||
| int | ny, | ||
| int | nx | ||
| ) |
Register a mask to the class to mask intensities.
| mask_in | Pointer to the mask |
| north | Center of the mask Northing |
| east | Center of the mask Easting |
| ny | Size of the mask |
| nx | Size of the mask |
| int map3d_index_class::register_mask_dem | ( | float * | mask_in, |
| double | north, | ||
| double | east, | ||
| int | ny, | ||
| int | nx | ||
| ) |
Register a mask to the class to mask DEM elevations.
This is used to deconflict the DEM with a CAD model by pushing the DEM below the model.
| mask_in | Pointer to the mask |
| north | Center of the mask Northing |
| east | Center of the mask Easting |
| ny | Size of the mask |
| nx | Size of the mask |
| elev | DEM is pushed down to this elevation. |
| int map3d_index_class::reset_map_parms | ( | ) |
Reset the map parameters in helper class tiles_rtv_class.
Currently implemented to change the size of the map by changing the number of low-res, medium-res and hi-res tile.
| int map3d_index_class::set_diag_flag | ( | int | flag | ) |
Set the level of output diagnosics – 0 for none, 1 for some, 2 for verbose.
| int map3d_index_class::set_roi_cen | ( | double | north, |
| double | east | ||
| ) |
Set the center of the ROI for obtaining cropped data.
| int map3d_index_class::set_roi_pt_size_in_pixels | ( | int | nnorth, |
| int | neast | ||
| ) |
Set the size of the ROI in pixels for finding the elevation of a point.
Default is 128 – good for small number of queries since it reads fast and does not take much memory. Should be increased if many queries (such as culling point clouds near DSMs) since it causes many rereads.
| nnorth | No of pixels in y (default 128) |
| neast | No of pixels in x (default 128) |
| int map3d_index_class::set_roi_size | ( | float | dnorth, |
| float | deast | ||
| ) |
Set the size of the ROI for obtaining cropped data.
| int map3d_index_class::set_smoothing_agressive | ( | ) |
Set the smoothing algorithm to smooth more agressively – may be used for mountainous terrain where bare ground has much larger slopes.
Only adjusts default value; does not adjust when user has overridden default from Parm file.
| int map3d_index_class::tex_mutex_lock | ( | ) |
Lock mutex that protects getting textures mrg and int.
Worker thread uses mrg/int to make tiles, main thread may use to do registration.
| int map3d_index_class::tex_mutex_unlock | ( | ) |
Unlock mutex that protects getting textures mrg and int.
Worker thread uses mrg/int to make tiles, main thread may use to do registration.
|
overridevirtual |
Write parameters to the currently opened ASCII file – for saving all relevent parameters to an output Porject File.
Assumes that the file has already been opened and will be closed outside this class.
Reimplemented from base_jfd_class.
| double map3d_index_class::map_e |
Boundary of current map in meters in UTM.
| float map3d_index_class::map_maxz |
Estimated maximum elevationof map.
| float map3d_index_class::map_minz |
Estimated minimum elevation of map.
| double map3d_index_class::map_n |
Boundary of current map in meters in UTM.
| double map3d_index_class::map_s |
Boundary of current map in meters in UTM.
| double map3d_index_class::map_w |
Boundary of current map in meters in UTM.


Seeing the World in New Ways
Playing with time and perspective
Brazilian Pygmy Gecko
Short videos seeing in a new way...
- sped up
- slowed down
- zoomed in
- zoomed out
- new perspective
Examples
- Body part (e.g. eye blink, pupil, skin, etc.)
- Material (e.g. fabric, desk surface)
- Movement (e.g. falling paper, static, etc.)
Thinking about how "environment" affects human behavior
Fun
+ things that change your attention
Making something in your "environment" which changes human behavior...
Examples of things you could design...
Session 1
Seeing with evolutionary goggles
Evolution
Seeing old things in new ways
What's your impression of evolution by natural selection?
Evolution By Natural Selection
Some of my favorite adaptations
Elephant ears


|
cds
1.2.0
|
Hazard Pointer singleton. More...
#include <cds/gc/hzp/hzp.h>
Data Structures | |
| struct | hplist_node |
| Internal list of cds::gc::hzp::details::HPRec. More... | |
| struct | InternalState |
| Internal GC statistics. More... | |
| struct | Statistics |
| Internal GC statistics. More... |
Public Types | |
|
typedef cds::atomicity::event_counter | event_counter |
| event counter type |
Public Member Functions | |
| CDS_DECLARE_EXCEPTION (HZPManagerEmpty,"Global Hazard Pointer GarbageCollector is NULL") | |
| No GarbageCollector object is created. | |
| CDS_DECLARE_EXCEPTION (HZPTooMany,"Not enough required Hazard Pointer count") | |
| Not enough required Hazard Pointer count. | |
| size_t | getHazardPointerCount () const |
| Returns max Hazard Pointer count defined in construction time. | |
| size_t | getMaxThreadCount () const |
| Returns max thread count defined in construction time. | |
| size_t | getMaxRetiredPtrCount () const |
| Returns max size of retired objects array. It is defined in construction time. | |
| InternalState & | getInternalState (InternalState &stat) const |
| Get internal statistics. | |
| bool | isStatisticsEnabled () const |
| Checks if internal statistics enabled. | |
| bool | enableStatistics (bool bEnable) |
| Enables/disables internal statistics. | |
| scan_type | getScanType () const |
| Get current scan strategy. | |
| void | setScanType (scan_type nScanType) |
| Set current scan strategy. | |
| details::HPRec * | AllocateHPRec () |
| Allocates Hazard Pointer GC record. For internal use only. | |
| void | RetireHPRec (details::HPRec *pRec) |
| Free HP record. For internal use only. | |
| void | Scan (details::HPRec *pRec) |
| The main garbage collecting function. | |
| void | HelpScan (details::HPRec *pThis) |
| Helper scan routine. |
Static Public Member Functions | |
| static void CDS_STDCALL | Construct (size_t nHazardPtrCount=0, size_t nMaxThreadCount=0, size_t nMaxRetiredPtrCount=0, scan_type nScanType=inplace) |
| Creates GarbageCollector singleton. | |
| static void CDS_STDCALL | Destruct (bool bDetachAll=false) |
| Destroys global instance of GarbageCollector. | |
| static GarbageCollector & | instance () |
| Returns pointer to GarbageCollector instance. | |
| static bool | isUsed () |
| Checks if global GC object is constructed and may be used. | |
| static void | checkHPCount (unsigned int nRequiredCount) |
Checks that required hazard pointer count nRequiredCount is less or equal then max hazard pointer count. |
Protected Member Functions | |
| void | classic_scan (details::HPRec *pRec) |
| Classic scan algorithm. | |
| void | inplace_scan (details::HPRec *pRec) |
| In-place scan algorithm. |
Private Member Functions | |
| GarbageCollector (size_t nHazardPtrCount=0, size_t nMaxThreadCount=0, size_t nMaxRetiredPtrCount=0, scan_type nScanType=inplace) | |
| Ctor. | |
| ~GarbageCollector () | |
| Dtor. | |
| hplist_node * | NewHPRec () |
| Allocate new HP record. | |
| void | DeleteHPRec (hplist_node *pNode) |
Permanently deletes HPrecord pNode . | |
| void | DeletePtr (details::retired_ptr &p) |
Permanently deletes retired pointer p . |
Private Attributes | |
| std::atomic< hplist_node * > | m_pListHead |
| Head of GC list. | |
| Statistics | m_Stat |
| Internal statistics. | |
| bool | m_bStatEnabled |
| true - statistics enabled | |
| const size_t | m_nHazardPointerCount |
| max count of thread's hazard pointer | |
| const size_t | m_nMaxThreadCount |
| max count of thread | |
| const size_t | m_nMaxRetiredPtrCount |
| max count of retired ptr per thread | |
| scan_type | m_nScanType |
| scan type (see scan_type enum) |
Static Private Attributes | |
| static GarbageCollector * | m_pHZPManager |
| GC instance pointer. |
Hazard Pointer singleton.
Safe memory reclamation schema by Michael "Hazard Pointers"
|
private |
Ctor.
| nHazardPtrCount | Hazard pointer count per thread |
| nMaxThreadCount | Max count of thread |
| nMaxRetiredPtrCount | Capacity of the array of retired objects |
| nScanType | Scan type (see scan_type enum) |
|
inlinestatic |
Checks that required hazard pointer count nRequiredCount
is less or equal then max hazard pointer count.
If nRequiredCount
> getHazardPointerCount() then the exception HZPTooMany is thrown
|
protected |
Classic scan algorithm.
Classical scan algorithm as described in Michael's paper.
A scan includes four stages. The first stage involves scanning the array HP for non-null values. Whenever a non-null value is encountered, it is inserted in a local list of currently protected pointer. Only stage 1 accesses shared variables. The following stages operate only on private variables.
The second stage of a scan involves sorting local list of protected pointers to allow binary search in the third stage.
The third stage of a scan involves checking each reclaimed node against the pointers in local list of protected pointers. If the binary search yields no match, the node is freed. Otherwise, it cannot be deleted now and must kept in thread's list of reclaimed pointers.
The forth stage prepares new thread's private list of reclaimed pointers that could not be freed during the current scan, where they remain until the next scan.
This algorithm allocates memory for internal HP array.
This function is called internally by ThreadGC object when upper bound of thread's list of reclaimed pointers is reached.
|
static |
Creates GarbageCollector singleton.
GC is the singleton. If GC instance is not exist then the function creates the instance. Otherwise it does nothing.
The Michael's HP reclamation schema depends of three parameters:
nHazardPtrCount
- HP pointer count per thread. Usually it is small number (2-4) depending from the data structure algorithms. By default, if nHazardPtrCount
= 0, the function uses maximum of HP count for CDS library.
nMaxThreadCount
- max count of thread with using HP GC in your application. Default is 100.
nMaxRetiredPtrCount
- capacity of array of retired pointers for each thread. Must be greater than nHazardPtrCount
* nMaxThreadCount
. Default is 2 * nHazardPtrCount
* nMaxThreadCount
.
| nHazardPtrCount | Hazard pointer count per thread |
| nMaxThreadCount | Max count of simultaneous working thread in your application |
| nMaxRetiredPtrCount | Capacity of the array of retired objects for the thread |
| nScanType | Scan type (see scan_type enum) |
|
private |
Permanently deletes HPrecord pNode
.
Caveat: for performance reason this function is defined as inline and cannot be called directly
|
private |
Permanently deletes retired pointer p
.
Caveat: for performance reason this function is defined as inline and cannot be called directly
|
static |
Destroys global instance of GarbageCollector.
The parameter bDetachAll
should be used carefully: if its value is true
, then the destroying GC automatically detaches all attached threads. This feature can be useful when you have no control over the thread termination, for example, when libcds
is injected into existing external thread.
| bDetachAll | Detach all threads |
| void cds::gc::hzp::GarbageCollector::HelpScan | ( | details::HPRec * | pThis | ) |
Helper scan routine.
The function guarantees that every node that is eligible for reuse is eventually freed, barring thread failures. To do so, after executing Scan, a thread executes a HelpScan, where it checks every HP record. If an HP record is inactive, the thread moves all "lost" reclaimed pointers to thread's list of reclaimed pointers.
The function is called internally by Scan.
|
protected |
In-place scan algorithm.
Unlike the classic_scan algorithm, inplace_scan
does not allocate any memory. All operations are performed in-place.
|
inline |
The main garbage collecting function.
This function is called internally by ThreadGC object when upper bound of thread's list of reclaimed pointers is reached.
There are the following scan algorithm:
Use setScanType function to setup appropriate scan algorithm.
|
inline |
Set current scan strategy.
Scan strategy changing is allowed on the fly.
| nScanType | new scan strategy |


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)
- [Microsoft Visio](#MicrosoftVisio)
- [Visual Basic](#Visual_Basic)
- [Visual C#](#Visual_C)
- [Windows Phone and Windows Store Apps](#Windows_Phone_and_Windows_Store_Apps)
- [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)
**October's competition has now closed.**
Winners will be announced around mid-December
December's competition is [
HERE](http://social.technet.microsoft.com/wiki/contents/articles/28664.technet-guru-contributions-december-2014.aspx).
------------------------------ 8< -----------------------------
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 NOVEMBER, 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 November 2014 and must be in English.** However, the original blog or forum content can be from before November. 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 NOVEMBER**) 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%20](http://social.technet.microsoft.com/wiki/contents/articles/add.aspx%20)
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 NOVEMBER in the Sections Below...
**NOTE**: These **MUST**be TechNet Wiki articles, and they
**MUST**be written in NOVEMBER 2014.
## 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:
- [Creating and Deploying Microsoft Azure WebJobs](http://social.technet.microsoft.com/wiki/contents/articles/28323.creating-and-deploying-microsoft-azure-webjobs.aspx) by
[Chervine](https://social.technet.microsoft.com/Profile/chervine)
- [Managing Multiple Azure Environments with Visual Studio Online Builds](http://social.technet.microsoft.com/wiki/contents/articles/28424.managing-multiple-azure-environments-with-visual-studio-online-builds.aspx) by
[Chilberto](https://social.technet.microsoft.com/profile/chilberto/)
## 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: Get your bindings sorted](http://social.technet.microsoft.com/wiki/contents/articles/28600.biztalk-get-your-bindings-sorted.aspx) by
[Peter Lindgren](https://social.technet.microsoft.com/Profile/peter_lindgren/)
- [Using XpathReader to access the content of Message in BizTalk to enhance
performance](http://social.technet.microsoft.com/wiki/contents/articles/28427.using-xpathreader-to-access-the-content-of-message-in-biztalk-to-enhance-performance.aspx) by [
AshishJain24](https://social.technet.microsoft.com/profile/ashishjain24/)
- [BizTalk Server: Support notification email on SendPort / ReceiveLocation
status change](http://social.technet.microsoft.com/wiki/contents/articles/28436.biztalk-server-support-notification-email-on-sendport-receivelocation-status-change.aspx) by [
Mohan Raj Aryal](https://social.technet.microsoft.com/profile/mohan%20raj%20aryal/)
- [BizTalk BAM Tables
](http://social.technet.microsoft.com/wiki/contents/articles/28430.biztalk-bam-tables.aspx)by [
Vignesh Sukumar](https://social.technet.microsoft.com/profile/vignesh%20sukumar/)
- [BizTalk Server 2013 - SQLExecute Oracle 11g XE using the BizTalk Adapter Pack](http://social.technet.microsoft.com/wiki/contents/articles/28634.biztalk-server-2013-sqlexecute-oracle-11g-xe-using-the-biztalk-adapter-pack.aspx)
by [
Steef-Jan Wiggers](https://social.technet.microsoft.com/profile/steef-jan%20wiggers/)
- 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:
- [How to extend FIM GALSync solution with additional contact sources](http://social.technet.microsoft.com/wiki/contents/articles/28650.how-to-extend-fim-galsync-solution-with-additional-contact-sources.aspx) by
[
Borys Majewski](http://social.technet.microsoft.com/wiki/47198/ProfileUrlRedirect.ashx)
## 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)
- [How
to get unique permissions for sites/lists/libraries for Office 365/SharePoint 2013 On-Prem](http://social.technet.microsoft.com/wiki/contents/articles/28322.how-to-get-unique-permissions-for-siteslistslibraries-for-office-365sharepoint-2013-on-prem.aspx "How to get unique permissions for sites/lists/libraries for Office 365/SharePoint 2013 On-Prem") by
[
Mokhtar Bepari](https://social.technet.microsoft.com/Profile/mokhtar%20bepari "Mokhtar Bepari")
- [Office 365 SharePoint Online BCS with Azure SQL database](http://social.technet.microsoft.com/wiki/contents/articles/28286.office-365-sharepoint-online-bcs-with-azure-sql-server-database.aspx) by
[
Dan Christian](http://social.technet.microsoft.com/wiki/contents/articles/25484.user-page-dan-christian.aspx)
- [SharePoint 2013 Table of Content: Seting display columns with Powershell](http://social.technet.microsoft.com/wiki/contents/articles/28429.table-of-content-web-part-slightly-different-in-sharepoint-2013-online.aspx) by
[Steven Andrews](http://social.technet.microsoft.com/wiki/6434/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: Capitalization Conventions](http://social.technet.microsoft.com/wiki/contents/articles/28242.small-basic-capitalization-conventions.aspx) by
[
Nonki Takahashi](http://social.technet.microsoft.com/wiki/187046/ProfileUrlRedirect.ashx)
- [Small Basic Known Issue: 28245 - Outlines of Shapes Rectangle and Ellipse are Smaller](http://social.technet.microsoft.com/wiki/contents/articles/28245.small-basic-known-issue-28245-outlines-of-shapes-rectangle-and-ellipse-are-smaller.aspx) by [Nonki
Takahashi](http://social.technet.microsoft.com/wiki/187046/ProfileUrlRedirect.ashx)
- [Small Basic: IntelliSense](http://social.technet.microsoft.com/wiki/contents/articles/28264.small-basic-intellisense.aspx) by [Nonki Takahashi](http://social.technet.microsoft.com/wiki/187046/ProfileUrlRedirect.ashx)
- [Small
Basic Student Testimonies](http://social.technet.microsoft.com/wiki/contents/articles/28561.small-basic-student-testimonies.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)
- [Random SSRS Musings 2 : Simulating NOT IN and NOT LIKE Functionality
In SSRS Filter Expressions](http://social.technet.microsoft.com/wiki/contents/articles/28321.random-ssrs-musings-2-simulating-not-in-and-not-like-functionality-in-ssrs-filter-expressions.aspx) by [Visakh16](https://social.msdn.microsoft.com/profile/visakh16/)
- [Passing Multi Value Parameter to SSRS Report Using URL](http://social.technet.microsoft.com/wiki/contents/articles/28428.passing-multi-value-parameter-to-ssrs-report-using-url.aspx) By
[
Anushka Weerakkodyge](https://social.technet.microsoft.com/profile/anushka%20weerakkodyge/)
## 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)
- [SQL Server Data Tools to Visual Studio 2013 - Database Reverse Engineering](http://social.technet.microsoft.com/wiki/contents/articles/28423.sql-server-data-tools-to-visual-studio-2013-database-reverse-engineering.aspx) by [João
Sousa](http://social.technet.microsoft.com/profile/jo%C3%A3o%20eduardo%20sousa/)
- [Capturing Database(s) and Table Usage stats – sp\_spaceused simulation using DMV’s](http://social.technet.microsoft.com/wiki/contents/articles/28509.capturing-all-db-s-dbtable-usage-stats-sp-spaceused-simulation-using-dmvs.aspx) by [Prashanth
Jayaram](https://social.technet.microsoft.com/Profile/prashanth%20jayaram/)
- [SQL Server Data Tools - Error SQL71501 Unresolved References - An Obscure Cause](http://social.technet.microsoft.com/wiki/contents/articles/28560.sql-server-data-tools-error-sql71501-unresolved-references-an-obscure-cause.aspx) by
[Kev Riley](https://social.technet.microsoft.com/profile/kev%20riley/)
- [SQL Server 2012 Memory changes :Do Not
Refer to Buffer Pool value in Dbcc Memorystatus and Counter SQL Server Buffer Manager: Target pages](http://social.technet.microsoft.com/wiki/contents/articles/28640.sql-server-2012-memory-changes-do-not-refer-to-buffer-pool-value-in-dbcc-memorystatus-and-counter-sql-server-buffer-manager-target-pages.aspx) By
[Shanky](https://social.technet.microsoft.com/profile/shanky_621/)
## 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)
- [Deploy Endpoint Protection Updates Offline Using SCCM 2012 R2](http://social.technet.microsoft.com/wiki/contents/articles/28626.deploying-endpoint-protection-updates-offline-using-sccm-2012-r2.aspx) by
[
Prajwal Desai](https://social.technet.microsoft.com/profile/prajwal%20desai/)
- [Deploy IE11 Using SCCM 2012 R2](http://social.technet.microsoft.com/wiki/contents/articles/28624.deploy-internet-explorer-11-using-sccm-2012-r2.aspx) by
[Prajwal Desai](mailto:)
- [Uninstall SCEP clients Using SCCM 2012 R2](http://social.technet.microsoft.com/wiki/contents/articles/28625.uninstall-scep-client-using-sccm-2012-r2.aspx) by
[
Prajwal Desai](https://social.technet.microsoft.com/profile/prajwal%20desai/)
- [Backup your unsealed Management Packs](http://social.technet.microsoft.com/wiki/contents/articles/28281.backup-your-unsealed-management-packs.aspx) by
[
Daniel Örneling](https://social.technet.microsoft.com/profile/daniel%20%C3%B6rneling/)
- [System Center - Monitoring Applications with System Center Reporting](http://social.technet.microsoft.com/wiki/contents/articles/28539.system-center-monitoring-applications-with-system-center-reporting.aspx) by
[
Alan Nascimento Carlos](https://social.technet.microsoft.com/profile/alan%20nascimento%20carlos/)
- [Protect OneDrive-data with DPM](http://social.technet.microsoft.com/wiki/contents/articles/28580.protect-onedrive-data-with-dpm.aspx) by
[Markus Eliasson](https://social.technet.microsoft.com/profile/markuseliasson/)
## 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:
- Replace with "Article Name" by "Profile Name" (each hyperlinked to the article and the author profile urls)
- [T-SQL: Safely Concatenate Values Into a Scalar Variable](http://social.technet.microsoft.com/wiki/contents/articles/28585.t-sql-safely-concatenate-values-into-a-scalar-variable.aspx) by
[Kev Riley](https://social.technet.microsoft.com/profile/kev%20riley/)
- [T-SQL Tips : Search and Replace String From Multiple Nodes Within a XML Document](http://social.technet.microsoft.com/wiki/contents/articles/28601.t-sql-tips-search-and-replace-string-from-multiple-nodes-within-a-xml-document.aspx) by [Visakh16](https://social.msdn.microsoft.com/profile/visakh16/)
- [T-SQL:
CHECK Constraints](http://social.technet.microsoft.com/wiki/contents/articles/28642.t-sql-check-constraints.aspx) by [Saeid
Hasani](http://social.technet.microsoft.com/wiki/302812/ProfileUrlRedirect.ashx)
## Microsoft Visio
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:
- [How to check the Activation Type and Status of Microsoft Visio 2013 installations](http://social.technet.microsoft.com/wiki/contents/articles/28649.how-to-check-the-activation-type-and-status-of-microsoft-visio-2013-installations.aspx) by [Mr
X](https://social.technet.microsoft.com/Profile/mr%20%20x/activity)
## 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:
- Replace with "Article Name" by "Profile Name" (each hyperlinked to the article and the author profile urls)
- [Create QR Codes with Google Web APIs](http://social.technet.microsoft.com/wiki/contents/articles/28320.create-qr-codes-with-google-web-apis.aspx) by
[
Emiliano Musso](https://social.technet.microsoft.com/profile/Emiliano%20Musso/)
## 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:
- Replace with "Article Name" by "Profile Name" (each hyperlinked to the article and the author profile urls)
- [ASP.NET
MVC - AngularJS, WebAPI and EntityFramework to build SPA](http://social.technet.microsoft.com/wiki/contents/articles/26711.asp-net-webapi-use-redis-as-cachemanager.aspx) by [
João Sousa](http://social.technet.microsoft.com/profile/jo%C3%A3o%20eduardo%20sousa/)
- [ASP.NET
MVC - AngularJS, Create PDF file using Microsoft Report](http://social.technet.microsoft.com/wiki/contents/articles/26711.asp-net-webapi-use-redis-as-cachemanager.aspx) by [João
Sousa](http://social.technet.microsoft.com/profile/jo%C3%A3o%20eduardo%20sousa/)
- [Code Reflection in C#](http://social.technet.microsoft.com/wiki/contents/articles/28639.code-reflection-in-c.aspx) by
[
Chervine](https://social.technet.microsoft.com/profile/chervine/)
## 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:
- Replace with "Article Name" by "Profile Name" (each hyperlinked to the article and the author profile urls)
- [WindowsPhone 8.1: Wow! now its very simple to make Navigation Drawer in Phone(C#-XAML)](http://social.technet.microsoft.com/wiki/contents/articles/28623.windowsphone-8-1-navigation-drawerlayout-c-xaml.aspx) by [SubramanyamRaju.B](http://social.technet.microsoft.com/wiki/623005/ProfileUrlRedirect.ashx)
- [WindowsPhone: Image crop with rectangle (C#-XAML)](http://social.technet.microsoft.com/wiki/contents/articles/28619.windowsphone-image-crop-with-rectangle-c-xaml.aspx)by [SubramanyamRaju.B](http://social.technet.microsoft.com/wiki/623005/ProfileUrlRedirect.ashx)
- [Draw
Text on Image Control in Windows Phone](http://social.technet.microsoft.com/wiki/contents/articles/28620.draw-text-on-image-control-in-windows-phone-c-xaml.aspx) by [SubramanyamRaju.B](http://social.technet.microsoft.com/wiki/623005/ProfileUrlRedirect.ashx)
- [Making
Nice Custom Loader in Windows Phone](http://social.technet.microsoft.com/wiki/contents/articles/28621.making-custom-loader-in-windows-phonebeginners-tutorial-c-xaml.aspx) by [SubramanyamRaju.B](http://social.technet.microsoft.com/wiki/623005/ProfileUrlRedirect.ashx)
- [Microsoft’s
Windows App Studio Beta: Submit Menu App in the Store](http://social.technet.microsoft.com/wiki/contents/articles/28393.microsofts-windows-app-studio-beta-submit-menu-app-in-the-store.aspx)by [saramgsilva](http://social.technet.microsoft.com/wiki/284372/ProfileUrlRedirect.ashx)
- [AutoCompleteBox
for Universal apps](http://social.technet.microsoft.com/wiki/contents/articles/28481.autocompletebox-for-universal-apps.aspx) by [saramgsilva](http://social.technet.microsoft.com/wiki/284372/ProfileUrlRedirect.ashx)
- [Part
one: the Nokia Maps on Windows Phone 8.](http://social.technet.microsoft.com/wiki/contents/articles/28572.part-one-the-nokia-maps-on-windows-phone-8.aspx) by [Carmelo La Monica](https://social.msdn.microsoft.com/profile/carmelo%20la%20monica/activity)
- [Using Prism for Windows Runtime](http://social.technet.microsoft.com/wiki/contents/articles/28616.using-prism-for-windows-runtime.aspx) by
[
Jaliya Udagedara](https://social.technet.microsoft.com/profile/jaliya%20udagedara/)
- [Windows 8.1 Universal App Hello World](http://social.technet.microsoft.com/wiki/contents/articles/28628.windows-8-1-universal-app-hello-world.aspx) by
[
Damien Allan](http://social.technet.microsoft.com/wiki/245558/ProfileUrlRedirect.ashx)
## 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)
- [Modern UI for WPF application by example
(handle navigation)](http://social.technet.microsoft.com/wiki/contents/articles/28390.modern-ui-for-wpf-application-by-example-handle-navigation.aspx) by [
saramgsilva](http://social.technet.microsoft.com/wiki/284372/ProfileUrlRedirect.ashx)
- [Modern
UI for WPF application by example ( NavigationMessageService - MVVM )](http://social.technet.microsoft.com/wiki/contents/articles/28391.modern-ui-for-wpf-application-by-example-navigationmessageservice-mvvm.aspx) by [saramgsilva](http://social.technet.microsoft.com/wiki/284372/ProfileUrlRedirect.ashx)
- [Modern
UI for WPF application by example ( NavigationService - MVVM )](http://social.technet.microsoft.com/wiki/contents/articles/28392.modern-ui-for-wpf-application-by-example-navigationservice-mvvm.aspx) by [saramgsilva](http://social.technet.microsoft.com/wiki/284372/ProfileUrlRedirect.ashx)
- [Basic Examples on WPF Data Binding](http://social.technet.microsoft.com/wiki/contents/articles/28426.basic-examples-on-wpf-data-binding.aspx) by [Emiliano Musso](https://social.technet.microsoft.com/profile/emiliano%20musso/)
- [WPF: Keeping your MVVM Views DRY](http://social.technet.microsoft.com/wiki/contents/articles/28597.wpf-keeping-your-mvvm-views-dry.aspx) by
[Andy ONeill](https://social.msdn.microsoft.com/profile/andy%20oneill/)
## 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:
- [How to Automatically Delete User Profiles older than a certain number of days
using Group Policy](http://social.technet.microsoft.com/wiki/contents/articles/28647.how-to-automatically-delete-user-profiles-older-than-a-certain-number-of-days-using-group-policy.aspx)by [
Mr X](https://social.technet.microsoft.com/Profile/mr%20%20x/activity)
- [AD Recycle Bin Feature In Windows Server 2012 R2](http://social.technet.microsoft.com/wiki/contents/articles/28629.ad-recycle-bin-feature-in-windows-server-2012-r2.aspx) by
[Prajwal Desai](https://social.technet.microsoft.com/profile/prajwal%20desai/)
- [Filters with PowerShell Active Directory Module Cmdlets](http://social.technet.microsoft.com/wiki/contents/articles/28485.filters-with-powershell-active-directory-module-cmdlets.aspx) by
[Richard Mueller](http://social.technet.microsoft.com/wiki/37268/ProfileUrlRedirect.ashx)
- [Controlling Object Visibility – Deny List Content](http://social.technet.microsoft.com/wiki/contents/articles/28241.controlling-object-visibility-deny-list-content.aspx) by
[Kelly Bush](https://social.technet.microsoft.com/profile/kelly%20bush/)
## 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:
- [Enhanced Mitigation Experience Toolkit (EMET) - Resource Portal](http://social.technet.microsoft.com/wiki/contents/articles/28583.enhanced-mitigation-experience-toolkit-emet-resource-portal.aspx) by
[Peter Geelen - MSFT](http://social.technet.microsoft.com/wiki/2659/ProfileUrlRedirect.ashx)
- [Artículos TechNet Wiki en Español (es-ES)](http://social.technet.microsoft.com/wiki/contents/articles/28435.articulos-technet-wiki-en-espanol-es-es.aspx) by [Julio
Iglesias Pérez](http://social.technet.microsoft.com/wiki/157636/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:
- [Troubleshooting "Access Denied" WMI Service](http://social.technet.microsoft.com/wiki/contents/articles/28460.troubleshooting-access-denied-wmi-service.aspx) by
[
Jared Hamilton](https://social.technet.microsoft.com/profile/jaredhamilton/)
- [DotNet: Reporting Options](http://social.technet.microsoft.com/wiki/contents/articles/28646.dotnet-reporting-options.aspx) by
[Andy ONeill](https://social.msdn.microsoft.com/profile/andy%20oneill/)
- [How to disable Browser Choice feature on Windows](http://social.technet.microsoft.com/wiki/contents/articles/28648.how-to-disable-browser-choice-feature-on-windows.aspx) by [Mr
X](https://social.technet.microsoft.com/Profile/mr%20%20x/activity)
- [How to Create and Use an Object Browser In PowerShell](http://social.technet.microsoft.com/wiki/contents/articles/28651.how-to-create-and-use-an-object-browser-in-powershell.aspx) by
[Brian Nadjiwon](https://social.technet.microsoft.com/profile/brian%20nadjiwon/)
# 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)
- [Wiki: User Experience Guidelines](http://social.technet.microsoft.com/wiki/contents/articles/1775.wiki-user-experience-guidelines.aspx?PageIndex=3)
# This Month's Forum Announcements
[https://social.msdn.microsoft.com/Forums/sharepoint/en-US/46c1df11-4f6d-4bdd-bca8-4725a5283dad/calling-all-sharepoint-2010-fans-your-chance-to-win-love-and-glory-be-our-november-technet-guru?forum=sharepointdevelopmentprevious](https://social.msdn.microsoft.com/Forums/sharepoint/en-US/46c1df11-4f6d-4bdd-bca8-4725a5283dad/calling-all-sharepoint-2010-fans-your-chance-to-win-love-and-glory-be-our-november-technet-guru?forum=sharepointdevelopmentprevious)
[https://social.msdn.microsoft.com/Forums/en-US/1c8a6133-7098-4abd-a460-43cde725ca1c/calling-all-small-basic-fans-your-chance-to-win-love-and-glory-be-our-november-technet-guru?forum=smallbasic](https://social.msdn.microsoft.com/Forums/en-US/1c8a6133-7098-4abd-a460-43cde725ca1c/calling-all-small-basic-fans-your-chance-to-win-love-and-glory-be-our-november-technet-guru?forum=smallbasic)
[https://social.technet.microsoft.com/Forums/sqlserver/en-US/bb4a89bf-555a-494a-a402-a04ca83278ee/calling-all-ssas-fans-your-chance-to-win-love-and-glory-be-our-november-technet-guru?forum=sqlanalysisservices](https://social.technet.microsoft.com/Forums/sqlserver/en-US/bb4a89bf-555a-494a-a402-a04ca83278ee/calling-all-ssas-fans-your-chance-to-win-love-and-glory-be-our-november-technet-guru?forum=sqlanalysisservices)
[https://social.technet.microsoft.com/Forums/sqlserver/en-US/415b9833-306e-4165-ae1f-996d8015aade/calling-all-power-pivot-fans-your-chance-to-win-love-and-glory-be-our-november-technet-guru?forum=sqlkjpowerpivotforexcel](https://social.technet.microsoft.com/Forums/sqlserver/en-US/415b9833-306e-4165-ae1f-996d8015aade/calling-all-power-pivot-fans-your-chance-to-win-love-and-glory-be-our-november-technet-guru?forum=sqlkjpowerpivotforexcel)
[https://social.technet.microsoft.com/Forums/sqlserver/en-US/467ed1c6-bcac-4bc2-bb86-205fe40247ab/calling-all-ss-dbe-fans-your-chance-to-win-love-and-glory-be-our-november-technet-guru?forum=sqldatabaseengine](https://social.technet.microsoft.com/Forums/sqlserver/en-US/467ed1c6-bcac-4bc2-bb86-205fe40247ab/calling-all-ss-dbe-fans-your-chance-to-win-love-and-glory-be-our-november-technet-guru?forum=sqldatabaseengine)
[https://social.technet.microsoft.com/Forums/sqlserver/en-US/a5d4c469-418b-4bb5-b935-33ad404567dd/calling-all-ssrs-fans-your-chance-to-win-love-and-glory-be-our-november-technet-guru?forum=sqlreportingservices](https://social.technet.microsoft.com/Forums/sqlserver/en-US/a5d4c469-418b-4bb5-b935-33ad404567dd/calling-all-ssrs-fans-your-chance-to-win-love-and-glory-be-our-november-technet-guru?forum=sqlreportingservices)
[https://social.technet.microsoft.com/Forums/sqlserver/en-US/299c7ca0-bbd6-4508-b316-69713f0ea733/calling-all-ssis-fans-your-chance-to-win-love-and-glory-be-our-november-technet-guru?forum=sqlintegrationservices](https://social.technet.microsoft.com/Forums/sqlserver/en-US/299c7ca0-bbd6-4508-b316-69713f0ea733/calling-all-ssis-fans-your-chance-to-win-love-and-glory-be-our-november-technet-guru?forum=sqlintegrationservices)
[https://social.msdn.microsoft.com/Forums/sqlserver/en-US/d33dc632-4118-471e-86f7-ebe7e990c77d/calling-all-tsql-fans-your-chance-to-win-love-and-glory-be-our-november-technet-guru?forum=transactsql](https://social.msdn.microsoft.com/Forums/sqlserver/en-US/d33dc632-4118-471e-86f7-ebe7e990c77d/calling-all-tsql-fans-your-chance-to-win-love-and-glory-be-our-november-technet-guru?forum=transactsql)
[https://social.msdn.microsoft.com/Forums/vstudio/en-US/ffb03b17-1e1c-42af-b51a-9d4da351ed27/calling-all-c-fans-your-chance-to-win-love-and-glory-be-our-november-technet-guru?forum=csharpgeneral](https://social.msdn.microsoft.com/Forums/vstudio/en-US/ffb03b17-1e1c-42af-b51a-9d4da351ed27/calling-all-c-fans-your-chance-to-win-love-and-glory-be-our-november-technet-guru?forum=csharpgeneral)
[https://social.msdn.microsoft.com/Forums/windowsapps/en-US/f11d4ac9-f2f8-4c45-a5fa-9fd882a3cb58/calling-all-store-app-fans-your-chance-to-win-love-and-glory-be-our-november-technet-guru?forum=winappswithcsharp](https://social.msdn.microsoft.com/Forums/windowsapps/en-US/f11d4ac9-f2f8-4c45-a5fa-9fd882a3cb58/calling-all-store-app-fans-your-chance-to-win-love-and-glory-be-our-november-technet-guru?forum=winappswithcsharp)
[https://social.msdn.microsoft.com/Forums/vstudio/en-US/51eae30a-e67b-4ecb-91fc-7ddef5f7fd25/calling-all-wpf-fans-your-chance-to-win-love-and-glory-be-our-november-technet-guru?forum=wpf](https://social.msdn.microsoft.com/Forums/vstudio/en-US/51eae30a-e67b-4ecb-91fc-7ddef5f7fd25/calling-all-wpf-fans-your-chance-to-win-love-and-glory-be-our-november-technet-guru?forum=wpf)
[https://social.msdn.microsoft.com/Forums/windowsserver/en-US/a28480ac-eeda-4261-84f2-36d24c651a26/calling-all-windows-server-fans-your-chance-to-win-love-and-glory-be-our-november-technet-guru?forum=windowsserversolutionssdk](https://social.msdn.microsoft.com/Forums/windowsserver/en-US/a28480ac-eeda-4261-84f2-36d24c651a26/calling-all-windows-server-fans-your-chance-to-win-love-and-glory-be-our-november-technet-guru?forum=windowsserversolutionssdk)
[https://social.technet.microsoft.com/Forums/en-US/eb385328-f8b7-4423-95f3-2b55d90942fb/calling-all-windows-server-fans-your-chance-to-win-love-and-glory-be-our-november-technet-guru?forum=winserver8gen](https://social.technet.microsoft.com/Forums/en-US/eb385328-f8b7-4423-95f3-2b55d90942fb/calling-all-windows-server-fans-your-chance-to-win-love-and-glory-be-our-november-technet-guru?forum=winserver8gen)
[https://social.technet.microsoft.com/Forums/en-US/85af3624-e3c5-4350-b27f-2541603e8702/calling-all-windows-server-fans-your-chance-to-win-love-and-glory-be-our-november-technet-guru?forum=winservergen](https://social.technet.microsoft.com/Forums/en-US/85af3624-e3c5-4350-b27f-2541603e8702/calling-all-windows-server-fans-your-chance-to-win-love-and-glory-be-our-november-technet-guru?forum=winservergen)
[https://social.technet.microsoft.com/Forums/sqlserver/en-US/95a5e805-5a77-4b0f-9e13-ccca7cfdee1a/calling-all-sql-server-fans-your-chance-to-win-love-and-glory-be-our-november-technet-guru?forum=sqlgetstarted](https://social.technet.microsoft.com/Forums/sqlserver/en-US/95a5e805-5a77-4b0f-9e13-ccca7cfdee1a/calling-all-sql-server-fans-your-chance-to-win-love-and-glory-be-our-november-technet-guru?forum=sqlgetstarted)
[https://social.technet.microsoft.com/Forums/en-US/0f1afff2-1a1f-4431-ac1d-743ed1f13675/calling-all-windows-server-fans-your-chance-to-win-love-and-glory-be-our-november-technet-guru?forum=winserverDS](https://social.technet.microsoft.com/Forums/en-US/0f1afff2-1a1f-4431-ac1d-743ed1f13675/calling-all-windows-server-fans-your-chance-to-win-love-and-glory-be-our-november-technet-guru?forum=winserverDS)
[https://social.technet.microsoft.com/Forums/systemcenter/en-US/67bc9abf-d0ea-48c3-8aa9-7ed7213f275f/calling-all-system-center-fans-your-chance-to-win-love-and-glory-be-our-november-technet-guru?forum=configmgrgeneral](https://social.technet.microsoft.com/Forums/systemcenter/en-US/67bc9abf-d0ea-48c3-8aa9-7ed7213f275f/calling-all-system-center-fans-your-chance-to-win-love-and-glory-be-our-november-technet-guru?forum=configmgrgeneral)
[https://social.technet.microsoft.com/Forums/en-US/6764f02c-1e7a-448b-9b9c-78a1baf5e3cc/calling-all-system-center-fans-your-chance-to-win-love-and-glory-be-our-november-technet-guru?forum=configmanagergeneral](https://social.technet.microsoft.com/Forums/en-US/6764f02c-1e7a-448b-9b9c-78a1baf5e3cc/calling-all-system-center-fans-your-chance-to-win-love-and-glory-be-our-november-technet-guru?forum=configmanagergeneral)
[https://social.technet.microsoft.com/Forums/systemcenter/en-US/38975ac4-bc06-45df-9b2d-7a612e1e237a/calling-all-system-center-fans-your-chance-to-win-love-and-glory-be-our-november-technet-guru?forum=operationsmanagergeneral](https://social.technet.microsoft.com/Forums/systemcenter/en-US/38975ac4-bc06-45df-9b2d-7a612e1e237a/calling-all-system-center-fans-your-chance-to-win-love-and-glory-be-our-november-technet-guru?forum=operationsmanagergeneral)
[https://social.technet.microsoft.com/Forums/en-US/71bcfc3d-207a-4719-8b79-c2e441b9c41a/calling-all-system-center-fans-your-chance-to-win-love-and-glory-be-our-november-technet-guru?forum=dataprotectionmanager](https://social.technet.microsoft.com/Forums/en-US/71bcfc3d-207a-4719-8b79-c2e441b9c41a/calling-all-system-center-fans-your-chance-to-win-love-and-glory-be-our-november-technet-guru?forum=dataprotectionmanager)
[https://social.technet.microsoft.com/Forums/en-US/063ebf73-85b1-4016-8c44-337730f7be2d/calling-all-system-center-fans-your-chance-to-win-love-and-glory-be-our-november-technet-guru?forum=scogeneral](https://social.technet.microsoft.com/Forums/en-US/063ebf73-85b1-4016-8c44-337730f7be2d/calling-all-system-center-fans-your-chance-to-win-love-and-glory-be-our-november-technet-guru?forum=scogeneral)
[https://social.technet.microsoft.com/Forums/systemcenter/en-US/780d5225-62e2-4187-b1fa-8848588d8fed/calling-all-system-center-fans-your-chance-to-win-love-and-glory-be-our-november-technet-guru?forum=systemcenterservicemanager](https://social.technet.microsoft.com/Forums/systemcenter/en-US/780d5225-62e2-4187-b1fa-8848588d8fed/calling-all-system-center-fans-your-chance-to-win-love-and-glory-be-our-november-technet-guru?forum=systemcenterservicemanager)
[https://social.technet.microsoft.com/Forums/systemcenter/en-US/8f00cf64-8e3f-4b2b-a5ba-81fb93bbbb35/calling-all-system-center-fans-your-chance-to-win-love-and-glory-be-our-november-technet-guru?forum=virtualmachinemanager](https://social.technet.microsoft.com/Forums/systemcenter/en-US/8f00cf64-8e3f-4b2b-a5ba-81fb93bbbb35/calling-all-system-center-fans-your-chance-to-win-love-and-glory-be-our-november-technet-guru?forum=virtualmachinemanager)
[https://social.technet.microsoft.com/Forums/en-US/e32a17d7-814d-4635-9e2f-8ab0b9b3e22e/calling-all-system-center-fans-your-chance-to-win-love-and-glory-be-our-november-technet-guru?forum=appcontroller](https://social.technet.microsoft.com/Forums/en-US/e32a17d7-814d-4635-9e2f-8ab0b9b3e22e/calling-all-system-center-fans-your-chance-to-win-love-and-glory-be-our-november-technet-guru?forum=appcontroller)
[https://social.technet.microsoft.com/Forums/en-US/c7195909-3750-4531-b3e1-7a5f32a4cd64/calling-all-tn-wiki-fans-your-chance-to-win-love-and-glory-be-our-november-technet-guru?forum=tnwiki](https://social.technet.microsoft.com/Forums/en-US/c7195909-3750-4531-b3e1-7a5f32a4cd64/calling-all-tn-wiki-fans-your-chance-to-win-love-and-glory-be-our-november-technet-guru?forum=tnwiki)
[https://social.technet.microsoft.com/Forums/office/en-US/e02a2458-0a95-4cc8-930a-736630749c4c/calling-all-visio-fans-your-chance-to-win-love-and-glory-be-our-november-technet-guru?forum=visiogeneral](https://social.technet.microsoft.com/Forums/office/en-US/e02a2458-0a95-4cc8-930a-736630749c4c/calling-all-visio-fans-your-chance-to-win-love-and-glory-be-our-november-technet-guru?forum=visiogeneral)
[https://social.msdn.microsoft.com/Forums/azure/en-US/63ca5ebb-9345-4c27-91ea-b1bbeb9b7e10/calling-all-azure-fans-your-chance-to-win-love-and-glory-be-our-november-technet-guru?forum=windowsazuredevelopment](https://social.msdn.microsoft.com/Forums/azure/en-US/63ca5ebb-9345-4c27-91ea-b1bbeb9b7e10/calling-all-azure-fans-your-chance-to-win-love-and-glory-be-our-november-technet-guru?forum=windowsazuredevelopment)
[https://social.msdn.microsoft.com/Forums/vstudio/en-US/7bc94d83-427a-48b2-a920-db33e30284a5/calling-all-vb-fans-your-chance-to-win-love-and-glory-be-our-november-technet-guru?forum=vbgeneral](https://social.msdn.microsoft.com/Forums/vstudio/en-US/7bc94d83-427a-48b2-a920-db33e30284a5/calling-all-vb-fans-your-chance-to-win-love-and-glory-be-our-november-technet-guru?forum=vbgeneral)
[https://social.technet.microsoft.com/Forums/en-US/63ff1c21-636b-46ef-a118-0211f699bce9/calling-all-fim-fans-your-chance-to-win-love-and-glory-be-our-november-technet-guru?forum=ilm2](https://social.technet.microsoft.com/Forums/en-US/63ff1c21-636b-46ef-a118-0211f699bce9/calling-all-fim-fans-your-chance-to-win-love-and-glory-be-our-november-technet-guru?forum=ilm2)
[https://social.msdn.microsoft.com/Forums/windowsapps/en-US/324de852-edda-41ff-9775-def00b103742/calling-all-windows-phone-fans-your-chance-to-win-love-and-glory-be-our-november-technet-guru?forum=wpdevelop](https://social.msdn.microsoft.com/Forums/windowsapps/en-US/324de852-edda-41ff-9775-def00b103742/calling-all-windows-phone-fans-your-chance-to-win-love-and-glory-be-our-november-technet-guru?forum=wpdevelop)


The first challange of this week was to Design an 3D ORIGINAL .stl file to use in the MDX404 and then mill the part using subtractive manufacturing using the MDX40A (in wax). I used rose file that I found on thingaverse. The hardest part of this was making sure the design was deep enough so that the chocoloate would come out solid enough. Also the milling of my design took like two days because it was so deteailed. Then after I had to crate a silcon casting. After that I was able to poor chocolate into and eat it!
The second challange of this week was to create a coaster using urethane and expoxy and then encapsulate an item in the middle of the coaster in the epoxy. This project was really cool. The item I used inside of the epoxy was a ring I found in my room. One thing I wish I did better for this project was using a photo maybe instead of a ring because a picture would have been cooler.


| read.msl | read MSL data files |
| read.mgf | |
| read.msp | |
| mgf.ion_peaks | this function ensure that the output result of the any input ion objects is peakms2 data type. |
| open.xml_seek | |
| seek | |
| scan_id | |
| load_index | |
| write.mgf | write spectra data in mgf file format. |
| file.index | get file index string of the given ms2 peak data. |
| mzxml.mgf | Convert mzxml file as mgf ions. |
| raw.scans | get raw scans data from the |
| polarity | get polarity data for each ms2 scans |
| ms1.scans | get all ms1 raw scans from the raw files |


Role: Lead Designer | When: 2017-2018 | Tools: Sketch/Invision App, Terminal/Github, SCSS/SASS, HTML/MD
It was decided that we would merge several different teams from various parts of Aol into a publishing suite to service all of our O&O brands (HuffPo, Engadget, TechCrunch, Autoblog, etc.). As part of this reorg, we needed a cohesive branding with which to build all of these products on.
We determined the following from the get go:
From here, it was fairly straight forward on creating everything else (buttons, form fields, search bars, nav bars, etc.). Although we had consolidated several teams, we did not consolidate enough front-end designers and our engineers were not willing (or ready) to make the jump to designers. Even with 3 designers on our team of nearly 100, we couldn’t generate mocks fast enough to keep development of all of our suite of products moving.
Build a living style guide as a GitHub repo that would allow engineers and developers to easily grab code snippets, paste it into their applications and have everything styled beautifully without them needing to write any CSS.
The basic repo (not updated) is still alive and well: athena-styleguide.aol.com
Throughout this process, I had the help of one other designer (with a background in front-end development) that helped to get the basics set up while I managed creating all of the elements and writing SCSS for the code snippets. Teamwork!
Lastly, we had a slew of documentation to manage and it was decided we would write everything in Markdown and contribute everything via Github. All of our Product Managers were going to contribute the documentation, the only problem: none of them knew how to contribute via Github.
With my ability to easily communicate with developers and designers, I took it upon myself to train each Product Manager in the basics of writing Markdown files, merging files, and making pull requests. Sure, there were several hiccups with conflicts and all, but overall, I was able to help explain Github in the simplest of terms to the PMs and get them up and running.


My name is Jennifer Cafiero and I am an aspiring web developer. Currently, I am working toward my Bachelor's Degree in Computer Science at Stevens Institute of Technology in Hoboken, NJ. Over these last three years, I have spent time learning a variety of topics from Discrete Math to Data Structures to complex Algorithms to Web Programming.
Personally, I feel like I always knew I wanted to go into computing on some level. Thirteen-year-old me even decided to apply to an Information Technology career academy, where I spent my high school years learning Project Management, Databasement Management, and Java Programming skills, while also taking the core requirement classes necessary for graduation. What also piqued my interest, was how broad the field of Computer Science is. This made me want to look for a school with a well-established Cooperative Education program, which would let me explore internships during my college career. This is what led me to Stevens.
During my time at Stevens, I have had the opportunity to have three internship cycles with two enriching employers. My first internship was at Movado Group, Inc. where I was on the IT team and supported the warehouse carousels and other hardware. My last two internships have been at AB Global where I have been a Front-End Developer for the Marketing Team.
I hope you enjoy exploring my resume through this site!
B.S. Computer Science
GPA: 3.246
Honors: Edwin A. Stevens Scholarship, Novo Nordisk Scholarship, Dean's List, Theta Phi Alpha Scholarship
Undergraduate Coursework:
Career Academy with a concentration in IT
Graduated Spring 2014
Coursework:
Peer Mentor(2017 - present)
New Member Educator (2017), Asst. Recruitment Chair (Fall 2016), Asst. New Member Educator (Spring 2016)
Member & Peer Mentor(2017 - present)
Member (2015 - present)
Member (2015 - present)
Member (2014 - present)
Layout Editor (2014 - 2015)
Venture Hacks 2016 (Entrepreneurship Award), Flawless Hacks 2016, HackPrinceton Fall 2016, Stevens IEEE Fall 2016 Hackathon


{% extends "layouts/_block_content.html" %} {% from "components/breadcrumbs/_macro.njk" import onsBreadcrumbs %} {% from "components/button/_macro.njk" import onsButton %} {% set breadcrumbsData = [ { "text": "Surveys", "url": "/surveys/todo", "id": "b-item-1" }, { "text": "Help", "url": "/surveys/surveys-help?survey_ref="~survey_ref~"&ru_ref="~ru_ref, "id": "b-item-2" }, { "text": "Information about this survey", "url": "/surveys/help/"~option, "id": "b-item-3" } ] %} {% block breadcrumbs %} {{ onsBreadcrumbs({ "ariaLabel": "Breadcrumbs", "id": "breadcrumbs", "itemsList": breadcrumbsData }) }} {% endblock breadcrumbs %} {% block main %}
We design each survey to answer a set of statistical requirements. The length and number of questions can vary.
How long it takes your business to complete a survey will depend on how easily you can get hold of the information we ask for.
See more information for businesses


Detail Information
'F2': Rename Folder/ Update a file
'Escape': Clear clipboard
'Control' + 'C': Copy file(s)/ Clone folder
'Control' + 'X': Move file(s)
'Control' + 'V': Paste file(s)
'Delete': Delete file(s)/ folder
'Pageup': Upload a file
'Insert': Upload batch
'Control' + 'ArrowUp': New Folder


Lorem Ipsum
Melee
| Placing |
Tournament |
Date |
Characters |
| 7th |
TBay Monthly #15 |
September 17th, 2016 |
|
| 3rd |
Kita-kon 2016 Tournament |
August 20th, 2016 |
|
| 5th |
TBay Monthly #14 |
July 16th, 2016 |
N/A |
| 495th |
Smash'n'Splash 2 |
June 5th, 2016 |
N/A |
| 5th |
TBay Monthly #13 |
May 21st, 2016 |
N/A |
| 7th |
TBay Monthly #12 |
April 16th, 2016 |
N/A |
| 7th |
TBay Monthly #11 |
March 19th, 2016 |
N/A |
| 9th |
TBay Monthly #10 |
February 20th, 2016 |
N/A |
| 5th |
TBay Monthly #9 |
January 16th, 2016 |
N/A |
Project M
| Placing |
Tournament |
Date |
Doubles Partner |
| 9th |
TBay Monthly #15 |
September 17th, 2016 |
N/A |
| 5th |
Kita-kon 2016 Tournament |
August 20th, 2016 |
N/A |
| 7th |
TBay Monthly #14 |
July 16th, 2016 |
N/A |
| 234th |
Smash'n'Splash 2 |
June 5th, 2016 |
N/A |
| 7th |
TBay Monthly #13 |
May 21st, 2016 |
N/A |
| 13th |
TBay Monthly #12 |
April 16th, 2016 |
N/A |
| 9th |
TBay Monthly #10 |
February 20th, 2016 |
N/A |
Smash 4
| Placing |
Tournament |
Date |
Doubles Partner |
| 7th |
Kita-kon 2016 Tournament |
August 20th, 2016 |
N/A |
| 5th |
TBay Monthly #13 |
May 21st, 2016 |
N/A |
| 7th |
TBay Monthly #11 |
March 19th, 2016 |
N/A |
| 4th |
TBay Monthly #10 |
February 20th, 2016 |
N/A |
Matthew "Tengu" Tallari
Melee
| Main |
Samus |
Sheik |
| Secondary |
Fox |
|
| Power Ranking |
13th |
|
Project M
| Main |
Samus |
Mewtwo |
| Secondary |
Snake |
Meta Knight |
| Power Ranking |
16th |
|
Smash 4
| Main |
Robin |
|
| Secondary |
Pit |
Dark Pit |
Power Ranking |
8th |
|


ASP MVC Validation
Config
In MVC 3+ it's on by default:
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
Model
Use Data Annotations (Required, StringLength, RegularExpression, Range). NB: [DataType] is just a UI hint, it won't enforce numbers etc.
View Layout
For client side validation, you need jquery.validate.min.js (github for localizations) and jquery.validate.unobtrusive.min.js. They are already installed (but update in Nuget).
<script src="@Url.Content("~/Scripts/jquery-1.7.2.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/modernizr-2.5.3.js")" type="text/javascript"></script>
You can't put the Html.BeginForm() and @Html.ValidationSummary() in the _Layout.cshtml.
It needs to be in the page view for unobtrusive validation to work.
Views
@using (Html.BeginForm()) {
@Html.ValidationSummary()
@Html.EditorForModel(Model)
<input type="submit" value="Save"/>
}
- @Html.ValidationSummary is just like the webforms validation summary.
There's an overload which doesn't show property annotations: @Html.ValidationSummary(excludePropertyErrors:true)Html.ValidationSummary must be inside the form (and NOT in the _Layout) - @Html.EditorForModel(Model) may be useful for simple models
- @Html.EditorFor (or @Html.TextBoxFor etc) render the inputs with data attributes, which the unobtrusive javascript uses
- @Html.ValidationMessageFor is just a placeholder for property validations (may duplicate @Html.ValidationSummary)
Controllers
[HttpPost]
public ActionResult Edit(CategoryModel category)
{
if (!ModelState.IsValid)
{
return View("Edit", category); //redisplay
}
_repository.Save(category); //save it
return RedirectToAction("Index");
}
You can add model errors with ModelState.AddModelError(key, string) (fully model-level errors have key: "")
ModelState.AddModelError(key:"", errorMessage:"Invalid");
Custom validators
- Brad Wilson MVC 3 intro
- Data Annotations: write a ValidationAttribute and override IsValid(value, context)
- Also implement IClientValidable GetClientValidationRules(modelMetadata, context).
You return (an enumerable of) ModelClientValidationRule, which has an ErrorMessage (use metadata.GetDisplayName()), ValidationParameters (inputs) and ValidationType (js method name) - Javascript adaptor (one of add, addBool, addSingleValue, addMinMax):
$.validator.unobtrusive.adapters.
addBool("validcreditcard"); - Add the javascript validator:
$.validator.addMethod("validcreditcard",
function (value, element) {
return !isNaN(parseInt(value, 10));
});


My name is Vinicius Marquet, I am a graphic-UX designer and author of diverse graphical and textual experiments. I hold a bachelors in Visual Communication and design by UNAM and a master course in Digital culture pathway interaction and game design by the University of the Arts Utrecht (HKU) in the Netherlands. My personal interest and research is about the mutation of the book and written language in Digital Media or in what the theorist Jhon Cayley calls the Network and programmable media, term that I prefer to use .
During my master course I did a working prototype app and poem named «The city is the text». Inspired on the concrete poetry manifesto and Ulises Carion artwork, «The city is the text» used the dutch traffic signs as a structure and Augmented Reality target to distribute the interactive and multimedia content of the poem.
The project dropped me more questions about the creative potential of geo locative narratives in digital storytelling. By instance, Imagine a book where pages are located in a tridimensional space like the street. This book has not pages weaved by the spine, but it is weaved by the text it self. Reading and writing is linked to the space and time where you are located: How does the space will affect the narration of the book? How would be the index of that book? How does the distribution of the stories can be affected as well ?
Early 2013, I started Cuéntanos un secreto project in Mexico city. It is a secret sharing project between communities, a visual communication workshop and a popular story telling archive.
Secrets beside of being a fantastic pedagogic tool,or excuse, to explore the broad subject of Visual communication. Secrets are a great example of the daily popular storytelling of each community. Secrets are deeply attached to their own community but, also, they have a repetitive story patterns between different communities and cultures.
As a premise,I would like to combine both projects: «The city is a text» as a geo locative narrative platform to explore narratives in the space and«Cuéntanos un secreto project» as the content of those explorations.
During the digital story telling master course I want to contribute with my experiences, knowledge and skills to other projects. As I expect to have critical feedback and technical contributions to my experiments.This master program of the course appeals to me because it seems to be a critical and practical approach to the subject and missing piece of my personal research.


First, navigate Chrome Canary to the AngularJS application that you want to debug. Open the Developer Tools. There should be an AngularJS icon. Click on it to open he AngularJS Batarang.
The Batarang has four tabs: Model, Performance, Options, and Help.
Starting at the top of this tab, there is the root selection. If the application has only one ng-app
declaration (as most applications do) then you will not see the option to change roots.
Below that is a tree showing how scopes are nested, and which models are attached to them. Clicking on a scope name will take you to the Elements tab, and show you the DOM element associated with that scope. Models and methods attached to each scope are listed with bullet points on the tree. Just the name of methods attached to a scope are shown. Models with a simple value and complex objects are shown as JSON. You can edit either, and the changes will be reflected in the application being debugged.
The performance tab must be enabled separately because it causes code to be injected into AngularJS to track and report performance metrics. There is also an option to output performance metrics to the console.
Below that is a tree of watched expressions, showing which expressions are attached to which scopes. Much like the model tree, you can collapse sections by clicking on "toggle" and you can inspect the element that a scope is attached to by clicking on the scope name.
Underneath that is a graph showing the relative performance of all of the application's expressions. This graph will update as you interact with the application.
Last, there is the options tab. The options tab has two checkboxes: one for "show scopes" and one for "show bindings." Each of these options, when enabled, highlights the respective feature of the application being debugged; scopes will have a red outline, and bindings will have a blue outline.
The Batarang also hooks into some of the existing features of the Chrome developer tools. For AngularJS applications, there is now a properties pane on in the Elements tab. Much like the model tree in the AngularJS tab, you can use this to inspect the models attached to a given element's scope.
The Batarang exposes some convenient features to the Chrome developer tools console. To access the scope of an element selected in the Elements tab of the developer tools, in console, you can type $scope
. If you change value of some model on $scope
and want to have this change reflected in the running application, you need to call $scope.$apply()
after making the change.


Where do you live?
Where do you work?
Find My Pickup Locaitons!
Pickup Locations
one
two
three
four
five
Make This My Pickup Locaiton!


A simple hello could lead to a million things. Don't hesitate to reach out with the contact information below. If you think, do send a message using the following plateform or you can direct email to me.


RUMBLE IN THE BRONX A film review by Mark R. Leeper Copyright 1996 Mark R. Leeper
Capsule: First-class acrobatics, second-class comedy, a third-class plot. This is a pleasant enough film for sitting back and watching some incredible physical feats, but there is little else of quality in the film. Rating: 0 (-4 to +4)
Take this review from whence it comes.  The skill to fight with agility just has never been one for which I have much appreciation. I suppose I am about equally impressed with a good martial artist and a good juggler. I can appreciate that each can perform with what appears to be a high degree of skill. I will watch each for the moment they are performing and then move on without envying or even being impressed too much by either. So perhaps I am the wrong person to see a Jackie Chan film, whose plot is little more than an excuse to string together fighting sequences.
Keung (Jackie Chan) is a prize-winning martial artist in Hong Kong who comes to the United States to attend his uncle's wedding. He quickly discovers that his uncle intends to sell the Asian grocery the uncle owns. Keung find himself attracted to the new owner and decides to stick around and set up the grocery. This means defending the woman from a gang of cartoonish bikers who prey on the grocery. When one of the bikers steals some loot from some apparent Mafia types, the fight becomes a three-way battle.
One of the problems of the script is that Keung's abilities seem inconsistent and seem to come and go. It is unclear why in some scenes he seems so easily defeated and in others he seems unbeatable. Nor is it clear why once the street gang has discovered a winning strategy for beating Keung, they never again use it against him. Also, we see early on that he has only limited ability to dodge flying objects, so presumably he has even less ability to dodge bullets. Yet while people threaten to shoot him, nobody actually tries it, even just to disable him. The appearance is that even Jackie Chan does not have moves for dodging a bullet that look convincing on camera and so the scriptwriter just does not let the situation arise.
Beyond the action scenes little attention was paid to production values. For just about every other aspect of the film the words that come to mind are "adequate" or "mediocre." There is little acting in the film and what is there is intended only to showcase Jackie Chan. Far more could be done with Chan, of course. The man has considerably more screen presence than either Steven Segal or Jean-Claude Van Damme. This film does what it can to capitalize off Chan's personality, but a larger budget, a more polished production, and above all a much better script are needed to make this a really professional product.
Ironically, the point of the film that generates the greatest emotions is the closing credits. Chan shows outtakes where stunts went wrong. It combines some of the best laughs of the film with some of its most poignant moments. We see two or three cases of actors performing stunts that go wrong and ending up being put in the back of an ambulance. One wonders if this practice does not frighten away prospective performers from appearing in so dangerous a film to shoot.
For those who, like me, have only a limited appreciation for Chan's athletic moves there is not much that this film offers. For people who have similar tastes to mine I rate RUMBLE IN THE BRONX a 0 on the -4 to +4 scale.
Mark R. Leeper<EMAIL_ADDRESS>The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


multiray.js
- JavaScript ray-tracing
Test Scene 1
Your browser does not support the HTML5 canvas1 tag.
Your browser does not support the HTML5 canvas1 tag.
Your browser does not support the HTML5 canvas1 tag.
Other tests
Randomized scene
Unit tests
References
GitHub project page
GitHub Pages project main page
Peter Shirley: Ray Tracing in One Weekend
Ray Tracing in One Weekend Kindle Edition
Ray Tracing in One Weekend blog
Ray Tracing in One Weekend GitHub
scratchapixel.com
Introduction to Ray Tracing: a Simple Method for Creating 3D Images
An Overview of the Ray-Tracing Rendering Technique
Ray-Tracing: Generating Camera Rays