2002-05-30 Assigned to MICROSOFT CORPORATION reassignment MICROSOFT CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: PLATT, JOHN C.
The present invention relates to systems and/or methods that generate playlist(s) for a library or collection of media items via selecting a plurality of seed items, at least one of which is an undesirable seed item. Some of the seed items are desirable indicating that a user prefers additional media items similar to the desirable seed items and others are undesirable indicating that the user prefers additional media items dissimilar to the undesirable seed items. Additionally, the seed items can be weighted to establish a relative importance of the seed items. The invention compares media items in the collection with the seed items and determines which media items are added into the playlist by computation of similarity metrics or values. The playlist can be regenerated by adding desirable seed items to the playlist and removing media items from the playlist (e.g., undesirable seed items).
FIG. 16 is a schematic block diagram of a sample-computing environment with which the present invention can interact.
Referring initially to FIG. 1, a system  100 that facilitates playlist generation is depicted in accordance with an aspect of the present invention. The system 100 includes a media analyzer 102, a playlist generator 104, a media database 106 and a media player 108. The system 100 receives seed media or items and generates a playlist according to the seed items and the media database 106 without requiring a user to manually create the playlist.
The media analyzer  102 receives seed media or seed item(s) and analyzes the seed item(s) to generate a preference function. Generally, the seed item(s) are media items from a collection of media stored and/or maintained in the media database 106. However, the seed item(s) can be media items that are not a part of the media collection. The seed item(s) can be media such as, but not limited to, audio (e.g., songs), movies (e.g., AVI or MPEG files), documents, electronic books, images and the like. Then, after receiving the seed item(s), the media analyzer 102 obtains metadata corresponding to and characterizing the seed item(s). The metadata includes information that characterizes the seed items and can include, for example, artist, song title, movie title, author, genre (e.g., folk, jazz, new wave, rock and the like), mood, rhythm and the like. In some situations, the seed item(s) include or incorporate metadata (e.g., via a tag or block of information at a specific location in a file) such as, for example, ID3 tags which include information characterizing digital audio files (e.g., mp3). Alternately, metadata can be generated for the seed item(s) by analyzing aspects of the seed items such as, tempo, volume, instruments, vocals, in order to determine appropriate metadata for the respective seed item(s). Furthermore, in an alternate aspect of the invention, metadata is entered (e.g., by a user) without receiving seed items in order to characterize desired content.
The weights (or target preferences) and metadata can be utilized by the media analyzer  102 to generate a preference function which generally indicates desired characteristics of which a playlist should be generated for. Additional description of generation of the preference function is described infra.
The playlist generator  104 receives the preference function from the media analyzer 102 and generates a playlist. The playlist generator 104 also receives metadata for media items in the media collection from the media database 106 in order to generate the playlist. The playlist generator 104 computes a preference for the media items using the preference function and inserts media items having more than a threshold amount of similarity into the playlist. After computing the preferences and inserting the most preferred media items, the playlist is sorted according to the estimated user preference such that most preferred media items are located at the top or early in the playlist and least preferred media items are located at the bottom or at the end of the playlist. Additionally, the desirable seed item(s) are inherently preferable and are generally placed at the beginning or top of the playlist.
The media player  108 receives the playlist from the playlist generator 104 and is operative to play media items identified in the playlist. The playlist contains a reference (e.g., filename or URL) for the items in the playlist, which the media player in turn employs to access the appropriate media items from the media database 106. The media player generally plays the media items in order (e.g., top to bottom) and can pause, skip forward, reverse and perform other suitable functions of media players.
Turning now to FIG. 2, an example of information associated with a media item  200 is illustrated. The exemplary information associated with the media item 200 includes a pointer 210 (e.g., universal resource locator, filename, . . . ) indicating the location of the to the media item 200 and permitting access to the media item. Alternately, the metadata can be included with media item 200 itself (e.g., by a 128 bit tag at the end of a file). Although the present invention is described primarily in relation to songs or audio, it is to be appreciated that the media items can include, but are not limited to, songs, movies, music videos, documents, books, poems, images (e.g., photographs), for example. The media item 200 is also associated with a unique track identifier 220 and a unique artist identifier 230. The media item 200 is also associated with identifying metadata 240. For a song, the identifying metadata 240 may include an artist name 250, an album name 260 and a track name 270. By way of illustration, the artist name 250 may be the name of a solo artist who performed a song or the name of a group that performed the song and an associated list of group members. By way of further illustration, the album name 260 may be the name of the album on which the song appeared and other information like the release date of the album. The track name 270 can include the name of the song, the length of the song, the amount of time between the first note of the song and the first lyric (if any) and the size (e.g., in kilobytes) of the song, for example. Such metadata (e.g., artist, album, track) can be employed to generate unique identifiers. Since the metadata can vary between metadata databases, inexact matching between items may be required. Furthermore, since the metadata may be incomplete, the present invention facilitates performing the inexact matching with such incomplete data. The purpose of the inexact matching employed in the item identification process is to read the identifying metadata from the media items and to create unique identifiers. The unique identifiers can refer, for example, to one or more rows in a reference metadata database. In the case of a song, the item identification process will attempt to assign a unique track identifier (e.g., 220) and a unique artist identifier (e.g., 230) to media items to facilitate, for example, accessing, storing and/or manipulating songs identified by the unique identifiers.
FIG. 3 illustrates an exemplary reference metadata database schema in accordance with one particular aspect of the present invention. The sample reference metadata database includes four tables, although it is to be appreciated that other reference metadata databases may employ a greater or lesser number of tables. Table  300 illustrates per track metadata for songs. Thus, table 300 includes a unique track identifier field, a unique artist identifier associated with the unique track, a track name, a genre, a subgenre, a style, a mood, a vocal code, a rhythm type and a rhythm description. Table 310 stores many-to-many relationships between tracks and albums, where each row is an occurrence of a track on an album. Table 320 represents an album, where the album is associated with a unique album identifier and an album name. Table 330 represents an artist, where an artist is associated with a unique artist identifier and an artist name. To speed database access associated with the tables 300, 310, 320 and 330, indices on the unique identifiers and full-text indexing of names can be employed. Although the tables 300, 310, 320 and 330 are illustrated in the sample reference metadata database schema, it is to be appreciated that in a different embodiment of the present invention, the item identification system does not employ such tables and rather interacts directly with artist and track metadata or utilizes a different schema, as in the case of movies, documents, or books.
Turning now to FIG. 4, a user interface  400 is depicted in accordance with an aspect of the present invention. The user interface 400 facilitates audio enjoyment of a library of media by automatically and dynamically generating playlists based on selected items. The user interface 400 includes two panes, a media library pane 410 and a playlist pane 420. The media library pane 410 illustrates information about a media collection or library (e.g., a particular user's media library). The media library pane 410 depicts information such as, but not limited to, artist name(s) 430, album name(s) 432 and track name(s) 435 and organizes the information hierarchically. The artists name(s) 430 are sorted alphabetically and open a list of album names for a particular artist when that artist's name is selected (e.g., clicked on). Similarly, the album name(s) 432 are alphabetically sorted and open a list of track names for a particular album when that particular album is selected. In alternate aspects, the album name(s) can be sorted in alternate methods such as, for example, by date. Likewise, the track name(s) 435 are also sorted alphabetically but can be sorted by other means such as, for example, their track number for a particular album. Other media types can be displayed hierarchically, also.
On selecting a track, a user can perform a number of actions on that selected track —the user can add it to the playlist by clicking on the add button  450. When the add button 450 is clicked, a playlist is then generated that fits or is similar to the selected song which is now referred to as a seed item and the selected song being added at the beginning of the playlist. The playlist is generated by estimating a user preference function based on characteristics of the selected track and identifying tracks in the media library that are likely to have high user preference. Various means for generating the playlist are described in detail elsewhere in this detailed description. The selected song can be distinguished from other items in the playlist by, for example, displaying the selected song in a different color and/or font. Additional tracks can be selected and added from the track name(s) 435 in the library pane 410 causing the playlist to be regenerated on so doing. The playlist can be regenerated by determining a new user preference function based on characteristics of all seed items and identifying tracks in the media library that are likely to have high user preference. Subsequently added tracks, also referred to as seed items, also can effect playlist regeneration. Another action that can be performed on the track name(s) 435 is a preview. By clicking on a preview button 440, a preview or short version of the selected track (e.g., playing 10 seconds of a song 30 seconds into the song) is played therein facilitating the user determining a preference or non-preference for the selected track name.
The playlist pane  420 displays the playlist that can be generated and regenerated. The playlist pane 420 permits viewing, manipulation and use of the automatically generated playlist. The playlist pane 420 contains a list of tracks 422 in the playlist. Once a track of the playlist is selected, several actions can be selectively performed on the playlist and the selected track. For example, once a track of the playlist is selected, the add button 450 is disabled and a remove button 455 is enabled. Then, the remove button 455 can be clicked causing the playlist to be regenerated whilst avoiding tracks similar to the track removed. The track removed is also a seed item but is utilized to identify undesirable characteristics. Additional tracks can be removed and other tracks added, therein causing the playlist to be regenerated, until the playlist is acceptable (e.g., a user is happy with it). The preference function is adaptively modified as a function of the removed tracks and the added tracks and employed to identify tracks in the media library that are similar to the desired characteristics (e.g., tracks added) and dissimilar to the undesired characteristics (e.g., tracks removed).
FIGS. 5, 6 and  7 illustrate graphical representation of exemplary preference functions. It is appreciated that the present invention is not limited to the preference functions illustrated in FIGS. 5-7. FIG. 5 depicts a preference function 500 obtained for a first desirable seed item 501. FIG. 6 depicts individual preference functions 601, 602, and 603 obtained for the first desirable seed item 501 along with a second desirable seed item 502 and an undesirable seed item 503. FIG. 7 illustrates a composite preference function 700 for a composite 504 of the first desirable seed item 501, the second desirable seed item 502 and the undesirable seed item 503. Such a composite preference function can be a linear blend of the three preference functions 601, 602, and 603. The preference function 700 can be employed, as discussed herein, to identify similar tracks.
Returning to FIG. 4, a play button  460 can be activated (e.g., by clicking) to cause the current playlist to be played or, alternately, a specific item in the playlist to be played. Generally, double clicking on a track of the playlist effects playing of the track. A clear button 465 can be employed to reset or clear (e.g., by removing the items from the playlist) the current playlist in the playlist pane 420 and to clear internal states of the playlist generation algorithm utilized. A save list button 470 can be activated to cause the current playlist to be saved in a standard format. This can be helpful in permitting a user to try various seed items (e.g., via removing or adding tracks) without losing a previously generated playlist. Consequently, an open button (not shown) can be utilized to load in previously stored playlists.
An instance of a media player  480 is also a component of the interface 400. The media player 480 is utilized to play the media identified in the playlist. The media player 480 is controllable to adjust volume, equalizer settings, fast forward (e.g., search), rewind, skip forward (e.g., to next item in playlist), skip backward (e.g., to previous item in playlist), balance and the like. Additionally, the media player 480 can display item information such as, title, file name, artist, album, genre and the like and can display playlist information such as, author (e.g., John), title (e.g., John's party mix), date generated.
FIG. 8 illustrates a system  800 that facilitates generating playlists by inputting seed item(s) and/or seed item identifier(s) (e.g., unique identifiers), the seed item(s) including positive seed item(s) (e.g., desired) and negative seed item(s) (e.g., undesired) and determining a degree of similarity and/or dissimilarity between the seed item(s) and one or more candidate media items. We assume that if two items are similar, then the user preference for those items will also be similar. Thus, all preference computations are similarity computations. The system 800 includes a user data store 830 that contains one or more media items (e.g., MEDIA ITEM1 832 through MEDIA ITEMM 834, M being an integer), also referred to as a collection or library. The media items can include items like songs, audio books, movies, music videos, documents, electronic books and the like. The system 800 includes a playlist generating system 820 that can have one or more subsystems (e.g., seed item input subsystem 822, similarity subsystem 826, playlist generating subsystem 828) that are employed to produce a playlist 850. The playlist 850 can include one or more media items and/or data sufficient to identify and/or retrieve one or more media items, where the media items are placed in the playlist 850 based on a similarity criterion between the media items and the seed item(s). By way of illustration, if a user desires to view a group of music videos that are from the same genre with a similar rhythm (e.g., punk, frenetic), then appropriate similarity criteria can be employed to produce a playlist 850 of such similar songs. By way of further illustration, if a user wishes to view a mixed group of music videos (e.g., pop, rock, country), other appropriate similarity criteria can be employed to produce the playlist 850 of such mixed songs.
The playlist generating system  820 can accept as input seed item(s) and/or seed item identifier(s) 810. By way of illustration and not limitation, a user can interact with the playlist generating system 820 by providing a song to the playlist generating system 820 and directing the playlist generating system 820 to select similar songs. By way of further illustration and not limitation, a user can alternatively, and/or additionally interact with the playlist generating system 820 by providing a unique seed song identifier. The seed item(s) 810 can be accepted by the seed item input subsystem 822 which can perform pre-processing on the seed item information 810 (e.g., validation, formatting) before passing it to the similarity subsystem 826, which can compare descriptive metadata associated with the seed item(s) 810 to descriptive metadata associated with the candidate media item to determine a degree of similarity that can be employed by the playlist generating subsystem 828 to determine whether the candidate media item should be included in the playlist 850. In one example of the present invention, the user data store 830 and the playlist generating system 820 reside on a client system. The similarity system 826 may access the user data store 830 and a reference metadata data store 840 to make the determination of similarity.
Turning now to FIG. 9, a similarity subsystem  900 is depicted that computes a similarity value 960 in accordance with an aspect of the present invention. N seed items are compared to a candidate item from a collection or library by comparing each seed item individually to the candidate item by similarity metric(s) 902 to obtain a similarity value(s) 904. The similarity value 904 is a value that indicates similarities between the candidate item and a respective seed item. A suitable scheme, such as is described in further detail with respect to FIG. 10, is utilized to obtain the similarity metric(s) 902. The similarity value(s) 904 computed for each seed item is then multiplied by N weights 920; alpha1, alpha2, . . . alphaN and then summed together to produce a final similarity value 960 which can then be employed with system 100 of FIG. 1, system 500 of FIG. 5 and/or other suitable systems for generating playlists in accordance with the present invention. Generally, if the similarity value 960 exceeds a threshold amount, the candidate item is added to a playlist and if it does not, it is not added to the playlist. Subsequently, a next candidate item, if present, is then processed by the subsystem 900.
The weights  920 can be generated via a variety of suitable approaches. One suitable approach is to simply assign the respective weights 920 as +1. This approach results in the similarity value 960 that is an average of the respective similarity value(s) 904. Another approach is to assign the respective weights 920 as +1 for indicating that a seed item is desirable (e.g., by adding a track in FIG. 1) and as −1 for indicating that a seed item is undesirable (e.g., by removing a track in FIG. 1). This approach produces the similarity value 960 that is a function of desirable and undesirable seed items. Yet another approach is to assign the respective weights 920 by selected values from a range (e.g., +1 to −1). The respective weights 920 can be selected or input by a user (e.g., by a user selecting a weight for an added or removed item). Thus, larger weights (in absolute value terms) have more of an effect on the final similarity value 960 than smaller weights.
Turning now to FIG. 10, a block diagram of a similarity metric  902 from FIG. 9 employed in computing a similarity value 904 is depicted. A seed-item difference processor 1000 accepts as inputs a seed item feature vector 1010 and a candidate item feature vector 1020. While FIG. 10 refers primarily to feature vectors and feature vector similarity processing, it is to be appreciated that other similarity analysis techniques may be employed in accordance with the present invention. In one example of the present invention, the seed item feature vector 1010 includes fields encoding information relating to genre, subgenre, genre, style, mood, vocal coding, rhythm type and rhythm description. Similarly, the candidate item feature vector 1020 also includes fields encoding information relating to genre, subgenre, genre, style, mood, vocal coding, rhythm type and rhythm description. Thus, the seed-item difference processor 1000 can compare the feature vectors using suitable techniques (e.g., attribute wise comparison) to produce a difference vector 1030. For example, if the seed item feature vector 1010 and the candidate item feature vector 1020 both code information relating to seven attributes, the difference vector 1030 would indicate differences and/or similarities among the seven attributes (e.g., a seven bit or seven attribute vector). The difference vector 1030 is then employed as an input to a similarity value generator 1040 that can employ the difference vector 1030 as an index into a similarity value data store 1050 to produce the similarity value 1060. The similarity value data store 1050 can store, for example, a lookup table that can be employed to translate the difference vector 1030 into the similarity value 1060. In one example of the present invention, the similarity value data store 1050 contains correlation values that were generated by machine learning techniques applied to similarity processing involving difference vectors generated from seed item feature vectors and candidate item feature vectors. One example of a number of similarity values and corresponding difference vectors are depicted below in Table I. The order of the features in the difference vector in Table I is, from left to right, mood, rhythm description, rhythm type, vocal coding, style, subgenre, and genre.
In Table I, the similarity values fall within the range 0 to 1.0. Examining a first entry, 1.00000 1111111, the difference vector 1111111 indicates that the seed item feature vector  1010 matched the candidate item feature vector 1020 in each attribute, thus, each bit of the difference vector was set to one, and the corresponding similarity value 1.00000 indicates a high degree of similarity between the two items. Examining a second entry, 0.06834 0111011, the difference vector 0111011 indicates that the seed item feature vector 1010 matched the candidate item feature vector 1020 in five attributes (rhythm description, rhythm type, vocal code, subgenre, and genre), and that the corresponding similarity value is 0.06834. Similarly, a third entry 0.04052 1110011 also indicates that the seed item feature vector 1010 matched the candidate item feature vector 1020 in five attributes (mood, rhythm description, rhythm type, subgenre and genre), and that the corresponding similarity value is 0.04052. Thus, the machine learning that was applied to the feature vectors and/or difference vectors determined that the combination of five matched attributes coded in the difference vector 0111011 should result in a higher similarity value than the five matched attributes coded in the difference vector 1110011. While one table of difference vectors and similarity values are described in connection with FIG. 10, it is to be appreciated that other such tables may be employed in accordance with the present invention, where such tables are hand coded, machine coded and/or the result of machine learning algorithms. It is to be further appreciated that although difference vectors and feature vectors with seven attributes are discussed in connection with FIG. 10, that difference vectors and/or feature vectors with a greater or lesser number of attributes, and/or with different attributes can be employed in accordance with aspects of the present invention.
where g km is defined to be 1 if Akl is zero or Aml is 1 for all l, and 0 otherwise. It is to be appreciated that other machine learning algorithms can be used to generate such lookup tables, or the lookup table can be hand-designed.
In view of the exemplary systems shown and described above, methodologies that may be implemented in accordance with the present invention, will be better appreciated with reference to the flow charts of FIGS.  11-14. While, for purposes of simplicity of explanation, the methodologies are shown and described as a series of blocks, it is to be understood and appreciated that the present invention is not limited by the order of the blocks, as some blocks may, in accordance with the present invention, occur in different orders and/or concurrently with other blocks from that shown and described herein. Moreover, not all illustrated blocks may be required to implement a methodology in accordance with the present invention.
Turning now to FIG. 11, a flow diagram of a method  1100 of generating a playlist in accordance with an aspect of the present invention is depicted. The method 1100 receives one or more seed items and generates a playlist there from for a library or collection of media items. The media items are types of digital media such as, but not limited to, songs or music, videos, electronic books, documents, images and the like. The seed items are typically members of the library or collection of media items. The method 1100 can be invoked for a set number of seed items and/or can be (re)invoked on one or more new seed items being received.
Beginning at  1102, the method 1100 receives one or more seed items. The one or more seed items are members the library or collection of media items. The one or more seed items can be obtained by means and methods described above, but omitted here for brevity. Similarity values are then computed for the respective seed items by comparing the seed items, individually, to a candidate item at 1104. Generally, a similarity value for each seed item is computed for the respective media items, also referred to as candidate items. The similarity values are weighted and added together to produce a final similarity value at 1106. The weights for the individual similarity values can be obtained via a variety of suitable approaches. One approach is to assign the respective weights for the similarity values as +1. This approach results in the similarity value that is an average of the respective similarity values. Another approach is to assign the respective weights as +1 for indicating that a seed item is desirable (e.g., by adding a track in FIG. 1) and as −1 for indicating that a seed item is undesirable (e.g., by removing a track in FIG. 1). This approach produces the final similarity value that is a function of desirable and undesirable seed items. Yet another approach is to assign the respective weights by selected values from a range (e.g., +1 to −1). The respected weights can be selected or input by a user (e.g., by a user selecting a weight for an added or removed item). Thus, larger weights (in absolute value terms) have more of an effect on the final similarity value than smaller weights.
The method  1100 continues at 1108, where media items of the collection are added to a playlist (e.g., their path and/or filename) at 1110 if their final similarity value with respect to the one or more seed items exceeds a minimum threshold. For example, for an implementation having 7 attributes (e.g., from meta data), a media item could be required to have a final similarity value equal or greater than 0.714 which indicates that the media item has about 5 of 7 attributes in common with the one or more seed items. It is appreciated that factors such as weights and undesirable characteristics can modify the number of attributes a media item has in common with the respective seed items while still providing a suitable final similarity value. If there are additional items in the collection at 1112, the method 1100 continues with a next item at 1104. Otherwise, if there are no more items in the collection at 1112, the method 1100 continues at 1114 where the items or tracks in the playlist are sorted according to their respective final similarity values. Thus, items that are more similar are played or encountered prior to less similar items. This is generally desirable because, for example, a user would likely prefer to hear the more similar songs first. Additionally, the desirable seed items, by virtue of necessarily being more similar, are inserted at the beginning of the playlist at 1116.
Referring now to FIG. 12, a method  1200 of computing a final similarity value for one or more seed items and a candidate item in accordance with an aspect of the present invention is disclosed. For illustrative purposes only, the method 1200 is discussed with respect to a candidate item, but it is appreciated that the method 1200 can be employed with any suitable number of candidate items that might comprise a library or collection of media items.
A candidate item is obtained at  1202, the candidate item being a member of a library or collection of media items. Candidate item metadata is obtained from the candidate item at 1204. The media items can include types of media such as, but not limited to, music, video, images and the like. A seed item is obtained at 1206 that represents desired or undesired characteristics. Seed item metadata is then obtained or extracted from the seed item at 1208. The metadata can be obtained by the metadata being part of the seed item and/or candidate item (e.g., a tag in a file), being stored in a metadata database or can be obtained from analyzing the items themselves.
A similarity value or metric is computed according to the seed item metadata and the candidate item metadata at  1210. A variety of suitable methods of computing the similarity value are described elsewhere in this description, but omitted here for brevity. Subsequently, the similarity value is multiplied by a weighting factor at 1212. The weighting factor indicates degrees of desirability and undesirability of the seed item. For example, a weight of +1 typically is employed to indicate a strong preference for that seed item while a weight of −1 generally is utilized to indicate a strong dislike for the seed item by a user. Additionally, the weighting factor can be obtained with the seed item by means, for example, described with respect to FIG. 4. After the similarity value has been computed at 1212, the similarity value is added to a composite similarity value at 1214. The composite value is essentially a running total or summation of the similarity values for one or more seed items and the single candidate items.
If another seed item is available to be processed at  1216, the method 1200 continues at 1206 with the next seed item. Otherwise, if there are no more seed items to process at 1216, the composite similarity value is utilized as the final similarity value at 1218. Additional processing can be performed on the final similarity value, such as by dividing it by the number of seed items or some other scaling to produce a unified result. Then, that final similarity value is typically employed to determine whether or not to add the candidate item to a playlist and to order or sort the playlist. Finally, the method 1200 can be invoked to process remaining items of library or collection, if present.
FIG. 13 illustrates a method  1300 of computing a weighted similarity value based on a difference vector in accordance with an aspect of the present invention. The method 1300 operates on a media item, also referred to as a candidate item and a seed item. The method can be invoked separately for one or more seed items. At 1302, a seed item feature vector and a candidate item feature vector are compared. In one example of the present invention, the feature vectors include seven attributes, where each attribute may have one or more possible values. For example, a mood attribute can have twenty one possible values while a style attribute may have two thousand possible values. Blocks 1304, 1306 and/or 1308 can be performed for each feature attribute. Thus, at 1304, a determination is made concerning whether the seed item feature vector attributes match the candidate item feature vector attributes. If the determination at 1304 is YES, then at 1306, the bit corresponding to the compared attribute in the difference vector is set to one. If the determination at 1304 is NO, then at 1308, the bit corresponding to the compared attribute in the difference vector is cleared to zero. Thus, a difference vector that contains one binary digit for each attribute compared between the seed song feature vector and the candidate song feature vector is created.
At  1310, a similarity value can then be computed based on the difference vector. By way of illustration and not limitation, a function that accepts as an input a difference vector and produces as an output a similarity value can be employed to produce the similarity value. By way of further illustration and not limitation, a value may be retrieved from a database table by employing the difference vector as an index into the database table. While a similarity value function and a similarity value lookup are described above, it is to be appreciated that other methods for producing a similarity value from a difference vector may be employed in accordance with the present invention (e.g., treat the difference vector as a binary number corresponding to the similarity value). Then, at 1312, the similarity value is multiplied by a weighting factor. The weighting factor is generally of a range of values, such as +1 to −1 and indicates a degree of desirability or undesirability that a user has for a particular seed item.
Turning now to FIG. 14, a schematic block diagram illustrating feature vectors being compared to produce a difference vector  1430 is depicted. A first feature vector 1410 may include one or more feature attributes (e.g., attributes 1410 A through 1410 R, R, being an integer). For example the first feature vector 1410 may include a genre attribute 1410 A and a subgenre attribute 1410 B that can be employed to facilitate characterizing a song. Similarly, a second feature vector 1420 may include one or more feature attributes (e.g., attributes 1420 A through 1420 S, S being an integer). For example the second feature vector 1420 may include a genre attribute 1420 A and a subgenre attribute 1420 B that can be employed to facilitate characterizing a song. The feature vectors may be compared attribute by attribute to produce a difference vector 1430 that contains a binary digit that codes information concerning whether the feature attributes matched. Such attribute by attribute comparison may be complicated by a situation where the feature vectors contain different attributes and/or a different number of attributes. For example, the first feature vector 1410 might contain a first number R of feature attributes while the second feature vector 1420 might contain a second number S of feature attributes. Thus, one or more bits in the difference vector 1430 may code information based on a comparison of feature attributes that do not have a one to one correspondence. By way of illustration, the first feature vector 1410 may code information concerning song length into two attributes (e.g., length of song in seconds, size of song in kilobytes) while the second feature vector 1420 may code information concerning song length into one attribute (e.g., play length). Thus, setting or clearing a bit in the difference vector 1430 may involve resolving the dissimilar feature vector attributes. More specifically, if a subset of feature vectors is missing at random, the difference vector for the missing data can be set to be "1", indicating a difference.
In order to provide additional context for various aspects of the present invention, FIG. 15 and the following discussion are intended to provide a brief, general description of a suitable operating environment  1510 in which various aspects of the present invention may be implemented. FIG. 15 provides an additional and/or alternative operating environment in which the present invention can operate. While the invention is described in the general context of computer-executable instructions, such as program modules, executed by one or more computers or other devices, those skilled in the art will recognize that the invention can also be implemented in combination with other program modules and/or as a combination of hardware and software. Generally, however, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular data types. The operating environment 1510 is only one example of a suitable operating environment and is not intended to suggest any limitation as to the scope of use or functionality of the invention. Other well known computer systems, environments, and/or configurations that may be suitable for use with the invention include but are not limited to, personal computers, hand-held or laptop devices, multiprocessor systems, microprocessor-based systems, programmable consumer electronics, network PCs, minicomputers, mainframe computers, distributed computing environments that include the above systems or devices, and the like.
With reference to FIG. 15, an exemplary environment  1510 for implementing various aspects of the invention includes a computer 1512. The computer 1512 includes a processing unit 1514, a system memory 1516, and a system bus 1518. The system bus 1518 couples system components including, but not limited to, the system memory 1516 to the processing unit 1514. The processing unit 1514 can be any of various available processors. Dual microprocessors and other multiprocessor architectures also can be employed as the processing unit 1514.
The system bus  1518 can be any of several types of bus structure(s) including the memory bus or memory controller, a peripheral bus or external bus, and/or a local bus using any variety of available bus architectures including, but not limited to, 15-bit bus, Industrial Standard Architecture (ISA), Micro-Channel Architecture (MSA), Extended ISA (EISA), Intelligent Drive Electronics (IDE), VESA Local Bus (VLB), Peripheral Component Interconnect (PCI), Universal Serial Bus (USB), Advanced Graphics Port (AGP), Personal Computer Memory Card International Association bus (PCMCIA), and Small Computer Systems Interface (SCSI).
The system memory  1516 includes volatile memory 1520 and nonvolatile memory 1522. The basic input/output system (BIOS), containing the basic routines to transfer information between elements within the computer 1512, such as during start-up, is stored in nonvolatile memory 1522. By way of illustration, and not limitation, nonvolatile memory 1522 can include read only memory (ROM), programmable ROM (PROM), electrically programmable ROM (EPROM), electrically erasable ROM (EEPROM), or flash memory. Volatile memory 1520 includes random access memory (RAM), which acts as external cache memory. By way of illustration and not limitation, RAM is available in many forms such as synchronous RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate SDRAM (DDR SDRAM), enhanced SDRAM (ESDRAM), Synchlink DRAM (SLDRAM), and direct Rambus RAM (DRRAM).
Computer  1512 also includes removable/nonremovable, volatile/nonvolatile computer storage media. FIG. 15 illustrates, for example a disk storage 1524. Disk storage 1524 includes, but is not limited to, devices like a magnetic disk drive, floppy disk drive, tape drive, Jazz drive, Zip drive, LS-100 drive, flash memory card, or memory stick. In addition, disk storage 1524 can include storage media separately or in combination with other storage media including but not limited to an optical disk drive such as a compact disk ROM device (CD-ROM), CD recordable drive (CD-R Drive), CD rewritable drive (CD-RW Drive) or a digital versatile disk ROM drive (DVD-ROM). To facilitate connection of the disk storage devices 1524 to the system bus 1518, a removable or non-removable interface is typically used such as interface 1526.
It is to be appreciated that FIG. 15 describes software that acts as an intermediary between users and the basic computer resources described in suitable operating environment  1510. Such software includes an operating system 1528. The operating system 1528, which can be stored on disk storage 1524, acts to control and allocate resources of the computer system 1512. System applications 1530 take advantage of the management of resources by the operating system 1528 through program modules 1532 and program data 1534 stored either in system memory 1516 or on disk storage 1524. It is to be appreciated that the present invention can be implemented with various operating systems or combinations of operating systems.
A user enters commands or information into the computer  1512 through input device(s) 1536. Input devices 1536 include, but are not limited to, a pointing device such as a mouse, trackball, stylus, touch pad, keyboard, microphone, joystick, game pad, satellite dish, scanner, TV tuner card, digital camera, digital video camera, web camera, and the like. These and other input devices connect to the processing unit 1514 through the system bus 1518 via interface port(s) 1538. Interface port(s) 1538 include, for example, a serial port, a parallel port, a game port, and a universal serial bus (USB). Output device(s) 1540 use some of the same type of ports as input device(s) 1536. Thus, for example, a USB port may be used to provide input to computer 1512, and to output information from computer 1512 to an output device 1540. Output adapter 1542 is provided to illustrate that there are some output devices 1540 like monitors, speakers, and printers among other output devices 1540 that require special adapters. The output adapters 1542 include, by way of illustration and not limitation, video and sound cards that provide a means of connection between the output device 1540 and the system bus 1518. It should be noted that other devices and/or systems of devices provide both input and output capabilities such as remote computer(s) 1544.
Computer  1512 can operate in a networked environment using logical connections to one or more remote computers, such as remote computer 1544. The remote computer 1544 can be a personal computer, a server, a router, a network PC, a workstation, a microprocessor based appliance, a peer device or other common network node and the like, and typically includes many or all of the elements described relative to computer 1512. For purposes of brevity, only a memory storage device 1546 is illustrated with remote computer 1544. Remote computer 1544 is logically connected to computer 1512 through a network interface 1548 and then physically connected via communication connection 1550. Network interface 1548 encompasses communication networks such as local-area networks (LAN) and wide-area networks (WAN). LAN technologies include Fiber Distributed Data Interface (FDDI), Copper Distributed Data Interface (CDDI), Ethernet/IEEE 1502.3, Token Ring/IEEE 1502.5 and the like. WAN technologies include, but are not limited to, point-to-point links, circuit switching networks like Integrated Services Digital Networks (ISDN) and variations thereon, packet switching networks, and Digital Subscriber Lines (DSL).
Communication connection(s)  1550 refers to the hardware/software employed to connect the network interface 1548 to the bus 1518. While communication connection 1550 is shown for illustrative clarity inside computer 1512, it can also be external to computer 1512. The hardware/software necessary for connection to the network interface 1548 includes, for exemplary purposes only, internal and external technologies such as, modems including regular telephone grade modems, cable modems and DSL modems, ISDN adapters, and Ethernet cards.
FIG. 16 is a schematic block diagram of a sample computing environment  1600 with which the present invention can interact. The system 1600 includes one or more client(s) 1610. The client(s) 1610 can be hardware and/or software (e.g., threads, processes, computing devices). The system 1600 also includes one or more server(s) 1630. The server(s) 1630 can also be hardware and/or software (e.g., threads, processes, computing devices). The servers 1630 can house threads to perform transformations by employing the present invention, for example. One possible communication between a client 1610 and a server 1630 may be in the form of a data packet adapted to be transmitted between two or more computer processes. The system 1600 includes a communication framework 1650 that can be employed to facilitate communications between the client(s) 1610 and the server(s) 1630. The client(s) 1610 are operably connected to one or more client data store(s) 1660 that can be employed to store information local to the client(s) 1610. Similarly, the server(s) 1630 are operably connected to one or more server data store(s) 1640 that can be employed to store information local to the servers 1630.
a playlist generator that receives the metadata and generates a playlist based at least in part on the metadata.
2. The system of claim 1, the media seed items comprising at least one undesired media seed item.
3. The system of claim 1, the plurality of seed items being a media type selected from the group comprising audio, video, electronic books and images.
4. The system of claim 1, the metadata of the plurality of seed items being a part of the plurality of seed items.
5. The system of claim 1, the metadata being obtained from analyzing the plurality of seed items.
6. The system of claim 1 further employing at least one user expressed weight.
7. The system of claim 6, the user expressed weight relates to a strength of positive or negative desire.
8. The system of claim 1 further employing at least one user expressed target preference.
9. The system of claim 1, further comprising a media database that maintains the collection of media items and provides metadata corresponding to the collection of media items.
10. The system of claim 1, the playlist generator computing final similarity values for the collection of media items.
11. The system of claim 10, the playlist generator further operative to sort the playlist according to the final similarity values.
12. The system of claim 9, further comprising a media player that plays media items from the collection of media items according to the playlist.
a playlist pane that displays the playlist, the playlist being regenerated on each addition or removal and being a function of the added tracks and the removed tracks.
14. The user interface of claim 13, the playlist pane further displaying removed tracks from the playlist.
15. The user interface of claim 13, the displayed information being organized hierarchically and including artist name, album name and track name.
16. The user interface of claim 13, the media library pane initiates a preview of the selected tracks.
17. The user interface of claim 13, the playlist pane clears tracks from the playlist.
18. The user interface of claim 13, the playlist pane saves the playlist to a file.
19. The user interface of claim 13, further comprising a media player that plays the tracks identified in the playlist.
20. The user interface of claim 13, the playlist pane assigns weights to the selected tracks.
a playlist generating system that receives a plurality of seed items and generates a playlist for the collection according to the metadata associated with the seed items.
22. The system of claim 21, the seed items comprising at least one undesired seed item.
23. The system of claim 21, the one or more media items being a media type from the group comprising music, audio books, movies and documents.
a playlist generating subsystem that determines which media items are added to the playlist.
25. The system of claim 24, the similarity subsystem further comprising a seed item input subsystem that performs preprocessing on the plurality of seed items.
26. The system of claim 20, the plurality of seed items having associated weights.
27. The system of claim 20, the plurality of seed items having associated target preferences.
28. The system of claim 26, the similarity subsystem further individually computes a plurality of similarity values as a function of the media item metadata for the candidate item and the seed item metadata, scales the similarity metrics by the associated weights and aggregates the similarity metrics into the final similarity value.
aggregating the multiplied similarity values into a final similarity metric.
30. The system of claim 29, the plurality of seed items comprising at least one undesirable seed item.
computing a similarity value from the difference vector.
32. The method of claim 29, wherein the weighting factors indicate the strength of desirability and/or undesirability for associated seed items.
33. The method of claim 29, wherein the weighting factors are computed from target preferences.
34. The method of claim 24, further comprising adding the candidate item to a playlist based on the final similarity value exceeding a threshold amount.
35. The method of claim 34, iteratively proceeding with adding the candidate item to a playlist based on the final similarity value exceeding a threshold amount for a number of candidate items of a media collection.
regenerating the playlist at least in part on metadata associated with the desirable seed item and the undesirable seed item, the playlist selectively including media items similar to the desired seed item and dissimilar to the undesired seed item.
37. The method of claim 36, further comprising adding one or more additional desirable seed items to the playlist and regenerating the playlist at least in part on metadata associated with the one or more additional desirable seed items.
38. The method of claim 36, further comprising adding one or more additional undesirable seed items to the playlist and regenerating the playlist at least in part on metadata associated with the one or more additional undesirable seed items.
39. The method of claim 36, further comprising playing media items according to the playlist.
regenerating the playlist at least in part on metadata associated with the desirable seed item and the additional desirable seed item, the playlist selectively including media items similar to the desired seed item and the additional desirable seed item.
41. The method of claim 40, further comprising adding one or more additional desirable seed items to the playlist and regenerating the playlist at least in part on metadata associated with the one or more additional desirable seed items.
42. The method of claim 40, further comprising adding one or more additional undesirable seed items to the playlist and regenerating the playlist at least in part on metadata associated with the one or more additional undesirable seed items.
43. The method of claim 40, further comprising playing media items according to the playlist.
a component for aggregating the multiplied similarity values into a final similarity value.
information associated with a playlist generation system, the information comprising a plurality of final similarity values, respective final similarity values comprising an aggregate of a plurality of weighted similarity values based at least in part on metadata associated with media items.
means for generating the playlist at least in part on metadata associated with the desirable seed item and the undesirable seed item, the playlist selectively including media items similar to the desired seed item and dissimilar to the undesired seed item.
ES2324078A1 (en) * 2006-02-10 2009-07-29 Vodafone España, S.A. System and method of administration, intelligent recommendation and discovery of multimedia content for mobile playback devices.


text:
The Royal Band of the Belgian Guides (, ) is the premier musical component of the Belgian Army (Land Component). It is the largest and oldest of the three professional military bands of the Belgian Armed Forces. It formerly served as the regimental band of the Guides Regiment from 2004 to 2011. The combined ensemble is composed of over 100 musicians, including a 19-member bugle platoon.

Overview
The band originated in August 1832, by order of King Leopold I of Belgium, as the Royal Band of the 1st Guides Regiment. The King commissioned Jean-Valentin Bender as band master. The formation accompanied the royal couple to formal events. As a result, it gained the title of Musique Particulière du Roi (Private Music Band of the King). The success of the band was immediate and it was soon regarded as one of the best music formations in Europe. In the 20 year period between the two World Wars, the band gained an international reputation, as well as a domestic notability that it has never experienced before. Under the baton of Arthur Prévost, it conducted an official tour of the United States in 1929, being received by President Herbert Hoover in the White House. The 18 Days' Campaign severely damaged the band's structure, with most band members being sent into exile in the United Kingdom. On 4 September 1944, the band was honored by the Belgian people in a special performance, following the country's liberation by allied forces. In early 1957, Simon Poulain went into retirement and on 11 February 1957, the Minister of National Defense appointed Lieutenant Karel Torfs to succeed him. By 1962, the band had conducted over 1,000 concerts in Belgium, and by 1985, had successfully participated in a number of major international festivals. On 16 June 2007 François De Ridder, who had been the bandmaster for only 4 years, was killed in Zellik while carrying out an assignment as an volunteer firefighter in the city.

All band members have received a first prize at one of the country's Royal Conservatories, with some of them being teachers at such institutions. Furthermore, all members of the band are trained Belgian infantrymen.

List of directors
The post of commander of the band is also concurrent to the post of the Inspector General of the Belgian Armed Forces Bands.

 1832–1873: Jean-Valentin Bender (nl) (1801–1873)
 1873–1892: Jean-Michel Frédéric Staps (1810–1898)
 1892–1901: Julien-Jean Simar (1852–1903)
 1901–1918: Léon Walpot (nl) (1852–1928)
 1918–1945: Arthur Prévost (nl) (1888–1967)
 1945–1946: René De Ceuninck (1893–1973)
 1946–1948: Franz Wangermée (nl) (1894–1967)
 1948–1957: Simon Poulain (nl) (1906–2004)
 1957–1961: Karel Torfs (nl) (1912–2002)
 1962–1985: Yvon Ducène (nl) (born 1928)
 1985–2003: Norbert Nozy (born 1952)
 2003–2007: François De Ridder (nl) (1951–2007)
 2007–2008: Dirk Acquet
 2008–present: Yves Segers (nl) (born 1978)

 (interlanguage link ISO 639-1 code: nl = Dutch, Flemish)

References

External links

 Official Website
 Belgian National Anthem — The Royal Anthem Band
 The Belgian National Anthem (Trilingual Version) — Scala & Kolacny Brothers and the Royal Symphonic Band of the Belgian Guides
 Royal Symphonic Band of the Belgian Guides
 De Koninklijke Muziekkapel der Gidsen - Musique Royal des Guides

Army units and formations of Belgium
Military bands
Wind bands
Belgian ceremonial units
Musical groups established in the 1790s
Belgian classical music groups

redpajama_set_name: RedPajamaWikipedia


Replacement for my aging Early 2011 MacBook Pro 13" to be primarily used as a photo-editing workstation that will be housed in a 2004 Power Mac G5 case. Many thanks to David Chugg at The Laser Hive for excellent craftsmanship & exemplary customer service.
able to successfully overclock to 3.77GHz on stock voltage.
very good B-class board that provides everything an enthusiast needs. no issues during installation or through usage. PCB is a bit of a sickly brown color.
very speedy RAM that was initially clocked at 2133 MHz but ran at correct speeds after XMP was enabled. RAM did not being overclocked at all under stock voltages & timings.
modular & small, gets the job done. have yet to see the fan spin down to 0 RPM, but could just be my application.
a bit noisy a regular speeds but much more tolerable when throttled down. still moves a large amount of air at low speeds.
I have the same case and i want to do the same thing. great job!
I love the PowerMac cases, especially when they're modified with beafy PC components. Awesome work.
thanks. i hope these components last me a while. maybe i'll go higher spec in the future when it's time to upgrade.
Browse your local electronics recycle. These aren't worth anything. Especially the non-functioning ones.
thanks. good luck finding a case for your build. I've had mine for almost 10 yrs now, bought second-hand from a friend.
thanks! I visited a lot of forums & got a lot of ideas before beginning this build.
Great upgrade in an awesome case.
thanks! it's such a great looking case, it was a shame to let it continue collecting dust. I'm glad so many others documented their builds elsewhere for me to get inspiration from.
Dude that's sick. Well done on the mods as well!
thanks! It was so much fun doing it & I'm very pleased with the result.
But a hackintosh... that would be sick.
Yeah, Mac Pros where inverted. Door was on the right side instead of the left.
thanks! I'm considering covering up some of the logos so it doesn't look confusing.
This looks like a great build @jon_peter . How about actual performance for the photo editing?? Love to hear that. Because I'm also planning to build a beast like this.
coming from a 2011 MacBook Pro, it's night & day. much quicker imports into Lightroom & little to no delay when making edits. the few times i have stressed the CPU, the entire PC still remains very quiet despite the water pump working to keep everything cool.
but I have to admit, I do love that case.


text:
Home Manchester United boss Solskjaer issues warning to Manchester City ahead of Carabao...
Manchester United boss Solskjaer issues warning to Manchester City ahead of Carabao Cup second leg
Manchester United boss Ole Gunnar Solskjaer still believes his side can kick Manchester City out of the Carabao Cup despite a horror home defeat
The Red Devils sustained a dismal 3-1 defeat to cross-town rivals Manchester City in the first leg of their Carabao Cup semi-final tie.
United were utterly outplayed by a rampant City side in the first half, failing to produce a single shot on target, while conceding three goals in the process.
Although Marcus Rashford pulled one back in the second period, the Red Devils have a two-goal gap to bridge in the second leg, which at the moment seems virtually impossible.
However, Ole Gunnar Solskjaer refuses to admit defeat, as he hopes his side can pull off another comeback as they did against Paris Saint-Germain in the Champions League last season.
Ole Gunnar Solskjaer:
"It was a game of two halves. We lost the first half 3-0 but we came back stronger to win the second half 1-0. I'm happy with the lads" pic.twitter.com/hXfvCgyfBa
— FootballFunnys (@FootballFunnnys) January 7, 2020
"We've shown before we have been down from a home tie and turned it around," said the Norwegian, as reported by the Daily Mirror.
"PSG is the latest example, and we have to believe that we can put on a performance.
"Even though it's a steep mountain to climb, we can still climb it."
United are now winless in three successive matches in all competition and have scored just once across those fixtures while conceding five along the way.
Meanwhile, the Citizens posted their fourth consecutive triumph and took revenge on fierce rivals for a 2-1 home defeat in the Premier League back in December.

redpajama_set_name: RedPajamaCommonCrawl


Langcourt Ltd - Advanced cylinder Technology for Motorcycles Langcourt Ltd have been repairing and replating cylinders since 1984. All of the work is carried out by their own highly-skilled team of talented craftsmen. This enables Langcourt to give their customers the very best quality workmanship, with unequalled customer service in an enviable turnaround time. Langcourt Ltd has thousands of satisfied customers in the UK and from around the world, and is associated with some of the best known names in motorsports. Their performance enhancing work has helped competitors to become champions at all levels of their sport. Langcourt work on vehicles ranging from radio-controlled model aircraft to Formula One cars; from powered skateboards to tractors; from mopeds to offshore power-boats.
We are Europe's premier provider of cylinder repair & replating for chrome, nikasil, and electrofusion coated engine cylinder bores on all motorcyle types. Their performance enhancing work on motorcycles has helped competitors to become champions at all levels of their sport.


Troubleshooting problems with enterprise applications and services are often exercises in frustration for IT and business staff. The reasons are well documented – complex architectures, disparate, unintegrated monitoring solutions, and minimal coordination between technology and product experts while attempting to pinpoint and resolve problems under the pressures of an escalating negative impact of delays and/or downtime on revenues, customer satisfaction and the delivery of services.
Simplifying infrastructure and application performance analysis across multiple technologies and coordinating efforts between all staff involved in the problem resolution process is a top priority for IT and operations staff whether the consumer is in research, government, financial, education or an enterprise. Minimizing downtime risks and lowering the cost of reliable services is the goal.
SIEM solutions are increasingly proving their worth and vital role in addressing the challenge. Such efforts do pay off: one company saved $1 million in one month after they implemented an integrated incident and problem management workflow. However, success isn't automatic. It is important to have structured process to evaluate potential solutions. This holds true whether the search is for a SIEM solution or a comprehensive infrastructure performance management one. Consider some of the following criteria and attributes that should be included in the process of solution evaluation.
Rules must be easy to create and maintain.
Rule evaluation and execution must be based on real-time data, collected and interpreted within an operational context that reflects business demands as well process and infrastructure reality.
The time period within which rules are evaluated and responses automatically initiated must be configurable and highly agile – seconds (or less) matter.
Policies must be applied with a level of granularity that is both application and business process specific.
The solution must leverage existing processes, application operation and infrastructure realities.
It must not require application modifications or extensive, proprietary modifications to the operational infrastructure to be effective.
It must automatically integrate and adapt to infrastructure and business process changes.
The solution must accommodate a heterogeneous IT environment. There should be no "designed in" dependencies on hardware or software features.
It must be built and based on the utilization and application of open standards and interfaces.
The solution must be able to expand and scale with the operational environment.
The solution must be modular in design so that functionality can be extended as needed.
The solution should have the ability to utilize both in- and out-of-band operational metrics.
There must be no architectural, structural or operational bottlenecks that will prevent the solution from operating as the infrastructure and business environment grows.
It must interoperate and integrate with existing on-site commercial /proprietary tools.
The solution must provide comprehensive automated monitoring, management, and control of operations.
Monitoring and response activities must be able to monitor, manage (as appropriate) and report on performance and events across all desired infrastructure and devices.
If the solution supports business critical operations it must operate in a fault tolerant manner with no single point of failure.
Data collection, data analysis, operational intelligence, policy-definition and implementation must be distributed to assure reliable operation even if part of the environment fails.
The solution must provide for clear reporting to aid in designing and defining appropriate policies for appropriate remedial, repair or avoidance response as appropriate.
Both the user interface and reporting must be designed to present an easily understood and consumable holistic view of infrastructure data and business information as desired and needed.
Hard won experience in automating business processes, leads us to conclude that model-based, policy-driven automation helps to relieve the burden and risk associated with manual processes.
In addition, such a solution provides the flexibility, adaptability, and scalability deliverable with a timeframe and ease of implementation that exceeds alternative structures.
This is not an exhaustive list. These important requirements must be supplemented with the ones that are unique to the specific situation and organization. There exist operational idiosyncrasies for each that impact the selection of an appropriate solution approach to its problems. These can be process, technology, procedural, or even politically based. In any case, they need to be identified and considered when defining solution requirements.


text:
Saudi refinery leak kills one
On May 6 one person was killed in a gas leak incident at Saudi Aramco's Jeddah refinery, according to the Saudi Press Agency. The incident took place during routine maintenance and that the "limited" leakage was immediately stopped and the accident has not affected the company's operations.
It gave no further details about the incident but said an investigation into the cause of the leakage was underway.
An Aramco official in Jeddah said the leaked gas was poisonous hydrogen sulfide, which also nearly suffocated 11 other employees who were taken to a hospital.
On May 10 the Saudi Gazette report said residents close to Jeddah's Petromin district regularly experienced leaks and toxic gas emissions from the refinery.
The newspaper quoted local residents who said they could smell gas emissions shortly before the leak took place, and the regular smell of gas and benzene was causing health problems in local children.
Many local residents said they are suffering from health problems due to environmental pollution caused by the refinery and a local desalination plant.


text:
.. _api-reference:

revscoring package
==================

Subpackages
-----------

.. toctree::
    revscoring.dependencies
    revscoring.datasources
    revscoring.extractors
    revscoring.features
    revscoring.languages
    revscoring.scorer_models
    revscoring.utilities

Submodules
----------

revscoring.errors module
------------------------

.. automodule:: revscoring.errors
    :members:
    :undoc-members:

redpajama_set_name: RedPajamaGithub


When working underground, the need for a cap lamp is undisputed; eyes alone can't ensure clear visibility and safe operations below ground.
At the same time, this essential element in personal protective equipment (PPE) hasn't gone through any major changes in almost a decade.
According to engineering manager of MineARC Systems, Daragh Quinn, the cap lamp industry has been stagnant for the past eight years – the last major development in the market was the transition from an incandescent light bulb to LED lighting.
Since then, all the cap lamps that have been available for the industry have been geared towards the same design philosophy: to provide a narrow beam of intense lighting.
"All cap lamps focus on a very specific type of light. They all have a strong focused beam. However, what we were finding was there wasn't a lamp that could give us a nice, wide illumination of your surroundings," Quinn says.
These cap lamps project only a narrow, strong pencil beam that helps visibility into the far distance, but not comfortably as users look down at their feet.
"You're trying to find a tool in your tool bag, but the light on your cap lamp is very intense. It reflects a lot of light back at you and when you look up, your eyes need to take a little while to refocus," Quinn says.
As intense lighting isn't necessarily useful, the team at MineARC created the SiriUS cap lamp on the premise of improving the eye comfort of underground workers.
SiriUS activates two different lenses and LED lights at the same time. This ensures the projection of a more natural light. A narrow beam delivers focus, while a wide beam provides a more dispersed, farther-reaching flood light.
The lamp also features an automatic light adjustment that allows for automatic dimming when in contact with ambient light intensity, aimed to mimic natural daylight as closely as possible.
It ensures eye comfort when looking directly at a co-worker during group situations and reduces any safety concerns associated with the startling glare of high beam in the eyes, including that of other lamps.
Workers can also switch to a turbo mode to activate high intensity LED light, which can last for a short period of time without completely draining the battery.
While consistent lighting in a wide beam or high spot mode can last for 18 hours, a low power mode makes sure the cap lamp keeps going for another two hours – more than enough time for a worker to swap over to a fully charged battery.
Other battery packs can also be kept on hand, with one connected to the cap lamp through coils that hug close to the body, preventing them from getting snagged while a worker is on the move.
"Additionally, tracking is becoming something that's required in a lot of cap lamps, so we've made that functionality available, depending on the requirement of mine sites," Quinn says.
The global leader in safety technology incorporates RFID tagging and its own GuardIAN Tracking software in the SiriUS cap lamp. The GuardIAN software allows wearers to be tracked remotely from the site's control room, providing vital information for search and rescue teams in an emergency situation.
"The cap lamp isn't tracking you, but it has the ability to be tracked," Quinn says. "When you're going to a dangerous area, someone can alert you and tell you that you're stepping into a dangerous zone.
The article also appears in the Apr-Jun 2019 edition of Safe to Work.


Are you ready to KICK the Boring out of Your Life?
Aaaahhh summer. How do you spend your summer? Me? It always involves…….
a GOOD book all ……….alongside the water.
Mark your calendar, get yourself to the bookstore (or Amazon) on August 1 and add it to your summer 2015 reading list!


text:
As an Amazon Associate we may earn from qualifying purchases made via links on our website.
How to get the car icon on Google Maps app
Lots of people love to travel. Many of them travel in their own vehicles. Such transportation, in most cases, is a car. In fact,...
Copyright © 2021 tab-tv.com. The use of this site constitutes your acceptance of our Terms of Service, Privacy Policy and Cookies Policy.


I was searching for a Property and found this listing (MLS® #5203727). Please send me more information regarding Unit 1730 - 201 S 11th St, Minneapolis, MN, 55403. Thank you!
I'd like to request a showing of Unit 1730 - 201 S 11th St, Minneapolis, MN, 55403 (MLS® #5203727). Thank you!


Worried about indoor air pollution? You might want to take a deep breath (or not): The EPA says the air in most homes is 2 to 5 times more contaminated than the air outdoors.
And it's getting worse. In our zeal to make homes more energy efficient, we've created spaces sealed so tightly that there can be a buildup of fumes (like volatile organic compounds, or VOCs, found in thousands of household products) and biological irritants (such as mold and dust mites).
While we know bad air is tough on people with allergies and asthma, it poses threats to all of us. VOCs cause headaches and fatigue, and radon (a naturally occurring radioactive gas found in most homes) is the second-leading cause of lung cancer.


So many flowers and plants are top allergens (browse through our Allergen-Not An Allergen tab), and this beautiful bloom is no exception. Allergic contact dermatitis to Alstroemeria (or tuliposide A, the allergen in this flower) can be common in gardeners, florists, and gardening hobbyists, showing as thick, cracking, red, tender skin on fingers where they most come into contact with the flower. Gloves can help if they are made out of nitrile, as tuliposide A is known to penetrate through vinyl gloves. There have been some recent reports of reactions to nitrile, however, and while more studies are needed, some possible culprits could be latex contamination from where the nitrile gloves are manufactured, or rubber accelerators like thiuram. Note that airborne contact dermatitis has also been reported, so if you have patch tested positive for tuliposide A, look out for redness and other signs of irritation under the nose, or even hyperpigmentation on the arms or face.


These are twenty-one Assorted Cabooses (some have issues) that Lionel made a few years ago. Our Opinion is that they are generally in Excellent Condition. Original Boxes. All Original in our Opinion. Please add $48.00 for US-48 Shipping and Insurance.


text:
CTSC is a quiet hero of UC Davis COVID-19 research
CTSC is a quiet hero of UC Davis ...
CoronavirusMay 26, 2020
COVID-19 research and clinical trials throughout UC Davis have a quiet and crucial backbone that is hard to describe – even for the directors of this center providing the support.
Karimeh Borghei draws blood at the CTSC Clinical Research Center
The Clinical and Translational Science Center (CTSC) is one of the unsung heroes of UC Davis's COVID-19 research while also serving as protector of ongoing clinical trials during the pandemic.
"We're the infrastructure of research. It doesn't sound very sexy," said Ted Wun, CTSC director and UC Davis School of Medicine associate dean of research. "We often struggle to describe what we do, even to a medical audience. We're like a bridge over a river. You don't think about us, but we make it much easier to get to the other side."
The range of the CTSC's work begins to paint the picture. They've done everything from helping mine the electronic medical records and providing facilities for researchers, to linking patients to clinical trials and assisting UC Davis Medical Center nurses draw blood from patients with COVID-19.
"We have a lot of resources and the needed infrastructure – there's that word that's not sexy – that fills the gaps for researchers," Wun said. "And we have a lot of relationships to help put people together."
Among their many efforts during the pandemic, the CTSC:
Connected researchers with each other through a variety of online tools and sessions.
Extracted data from medical records and categorized information for researchers to provide a continually evolving picture of the disease and its symptoms.
Developed a resource that will allow researchers from all five UC Medical Centers to share research samples from COVID-19 patients,
Quickly created a safe place to conduct trials, communicate with patients and store and process specimens at the CTSC Clinic Research Center, the research clinic with care teams and staff who are specially trained for research.
Coordinated with the Center for Health Technology to create or refine a variety of secure electronic and virtual methods so researchers and patients could talk.
Sent specially trained nurses from the Clinical Research Center to help UC Davis Medical Center nurses draw blood from some patients enrolled in the remdesivir trial.
One of the CTSC's crucial moves was to quickly organize a clinical trial review committee led by Nicholas Kenyon, associate CTSC director and chief of the Division of Pulmonary and Critical Care Medicine, to coordinate UC Davis COVID-19 clinical trials so they wouldn't overlap and so patients and health care teams wouldn't get overwhelmed.
"Not surprisingly, there was an explosion of interest from companies and investigators," Wun said. "We helped them synch with each other and made sure patients got information about them. But we didn't want researchers competing for the same patients to join their particular studies. It all went very smoothly."
Tiger Team protects the safe progress of research during COVID-19
Another key action was to create a Tiger Team – which Wun admits actually is a sexy name. CTSC leaders put it together in the first week of the crisis with the goal of guiding then in-progress clinical trials so crucial studies could continue if appropriate safeguards were in place.
"Some institutions just shut down all clinical research," Wun said. "For us, within 48 hours, we were working to make it as safe as possible and to offer guidance to researchers and patients."
The team functioned as a neutral review body to help direct what essential research could continue and what needed to wait until restrictions loosened. In addition, they gave investigators guidance for staying within their protocols, given all the challenges.
"Some things could be very time sensitive, for example, a research-related scan or a safety check," Wun said. "Even more importantly, we wanted to be sure patients got the best treatment option, which is often a clinical trial. We didn't want another casualty of this pandemic to be people with other diseases. Cancer doesn't care about COVID-19."
Wun said if he boils it down, what the CTSC does actually is easy to explain. "We help create teams," he said. "And we provide those teams with tools to perform high quality research to improve health."
General Health NewsCoronavirusResearchHealth and TechnologyMedical Center
UC Davis Medical Center sets record for COVID-19 patients amid Omicron surge
Which mask protects best against the Omicron variant?
International study identifies predictors of severe outcomes in children with COVID-19


It is recommended that the antibody be carefully titrated for optimal performance in the assay of interest. Furthermore, due to the intracellular localization of a large portion of CTLA-4, for complete detection it may be necessary to assess intracellular expression, in addition to surface expression of CTLA-4. Filtration: 0.2 μm post-manufacturing filtered. CTLA4 (Cytotoxic T-Lymphocyte Antigen 4) is a CD28-family receptor expressed on mainly CD4+ T cells. It binds the same ligands as CD28 (CD80 and CD86 on B cells and dendritic cells), but with higher affinity than CD28. However, in contrast to CD28 which enhances cell function when bound at the same time as the T cell receptor, CTLA4 inhbits the T cell and prevents it from functioning. Intracellular CTLA4 is also found in regulatory T cells and may be important to their function.


Since 1992, over 300 galleries, private dealers and publishers have participated and exhibited at Photo LA and more than 200 lectures, panels and collecting seminars have been presented. Photo LA was held at the Santa Monica Civic Auditorium near Bergamont Station, home of many of the most important contemporary galleries in Los Angeles. This year's exhibitors included Josef Bellows Gallery, the Czech Center of Photography, the Blind Photographers Guild, Nazraeli Press, and One Hour Cleaning together with Point of View, an installation works from private Los Angeles collectors.


text:
Q: Passing settings from view to element with default values I'm trying to pass settings like this:
$mySettings = array(
    'settingOne' => 'someValue',
    'settingTwo' => 5,
    'settingThree' => true
);

from the view into an element like so:
echo $this->element('foobar', $mySettings);

How would I set the default values for them inside of the element?
Or is it better to set them somewhere else? If so, where and how?
Thank you.

A: if the setting entries are dynamic, you can try this:
function element($entry, $settings, $default = null) {
    if (isset($settings[$entry])) {
        return $settings[$entry];
    } else {
        return $default;
    }
}

if the setting entries are static, you'd better define a class, each entry as a property.

A: Write default code in appsController like below
$mySettings = array(
    'settingOne' => 'someValue',
    'settingTwo' => 5,
    'settingThree' => true
);
$this->set('foobar', $mySettings);

And If you want to Modify $mySettings then you have to write same code in Controller that you want to change from.
You have to use foobar variable in element like
$foobar['settingOne'];
$foobar['settingTwo'];
$foobar['settingThree'];

A: The keys you pass in are transformed into variables
So just do
if (!isset($theConfigKey)) {
    $theConfigKey = ...
}

redpajama_set_name: RedPajamaStackExchange


Reached the top of the first ladder.
Completed Yu-Gi-Oh! and GX series.
Completed Yu-Gi-Oh! 5D's and ZEXAL series.
Won a Duel using a custom Deck Recipe.
Won a Duel and earned a second copy of a card.
Used a signature creature against their owner.
Inflicted at least 1,000,001 damage.


text:
<?php

namespace AppBundle\Event;

final class Task
{
    const PRE_CREATION  = 'app.task.pre_create';
    const POST_CREATION = 'app.task.post_create';
}


The veterinary and animal medicine field is changing at a rapid pace. These technical and medical developments make it all the more important for veterinarians to have updated equipment. Buying equipment puts financial limits on what some vet practitioners can afford, but fortunately leasing equipment allows for upgrades while at the same time conserving cash flow and other working capital. Keeping updated equipment in your veterinary office is important in setting your business apart from others in your area. Tiger Leasing helps create leasing solutions that will work specifically for your veterinary business. Determine the needs of your office, and you'll probably discover convenient, budget friendly veterinary equipment leasing options.
Tiger's veterinary leasing covers a wide range of equipment, from office furniture to medical supplies.
Leasing veterinary equipment allows animal medicine professionals to obtain the veterinary equipment they need while avoiding the permanence of purchasing. Leasing gives you the flexibility to pay for only what you use, as well as the option for a buy out at the end of your leasing agreement. There are many different leasing options available, to benefit your veterinary practice.


Right up near the Stazione di Santa Maria Novella train station and close to the Fortezza Da Basso is a hidden little gem of a restaurant called "Trattoria I due G". I was hinted several times about this place having simply the best "fantastico" black truffles dish in Florence. I envisioned a crowded fancy over-plated dark environment but that perception quickly diminished after coming here 4 times. Yes, we came here 4 times in a span of a few days for many reasons. First off, we had to try the truffles, secondly we had to bring more people to experience the truffles, thirdly it was near our clients, and 4th, my group had little success in finding other good restaurants in Florence, hence returned here.
Imagine an extremely traditional, family run, local restaurant in Florence filled with only locals, wine staffed up high, pictures and paintings mounted on every wall, and a staff with much personality and charm almost from a book you had read when you were younger(maybe Lady and the Tramp) . Nothing too fancy, just simple, clean, and to the point. Cooks would come out to greet customers like family and serve dishes along with a story or joke each time. The environment was charming with bricks on plastered white walls, picture frames, checkered red tables cloths, and chandeliers draping from fairly high brick ceiling. Enough about the space, let's see the food!
Food and pics after the jump!
My first experience of an Italian restaurant brought me to a tiny cozy place called La Giostra Ristorante nearby the central Duomo and hidden in a small alleyway on Borgo Pinti Street. The cabin like space was lit up with a cascading assortment of flickering ceiling lights, aisles of rustic wine bottles, melting wax candles on every table, laughter, and a warm welcoming by the pirate like passionate owners. I came here my first day and last day, so I'll be posting on both these occasions at this wonderful restaurant which I'd highly recommend for a tasty enjoyable meal. If you dig into their site, you'll find a set of pictures taken by celebrities who have been there, which are also plastered on the restaurants interior.
More pics and yummy food after the jump.
My first stop in Florence was at TASTE, a 3 day food gathering of Italy's finest foods ranging from jams, wines, cheeses, meats, chocolates, and much more from over 160 select exhibitors. This mouth watering event allowed attendees to eat, taste, question and buy products from a wide range of creators and distributors around Italy, though many of them seemed to be small independent family run organizations, which I liked. The highlight of the event for me is pictured above….it's buffalo mozzarella! Simply Amazzzing!!
My trip to Italy/Milan started off with a frustrating cancellation during a crazy winter storm on March 16th in Boston. Snow lashed in multiple directions at 45 degree angles and a foot of snow dropped within an hours time. My flight with Northwestern Airlines was cancelled while the Boston airport closed at 8pm though it opened up spontaneously after 9pm to allow some flights in and out. Upon my cancellation, I was booked on a NW flight 4 days later which I found ridiculous. 3 phone calls to different NW operators resulted to no resolution. I asked about getting booked on another airlines, but their policy does not allow this if it is due to weather. Oh crap I said… my client meeting is in 3 days..I can't show up the day after.
I've been dancing and prancing around Florence for the past week and will finally have time to check out the city over the weekend. A stop by the Duomo, the huge galleries, and famous churches is a must. The architecture here is charming, unique, and fluent thriving with colors and hand made rustic materials. Food so far has been ok….a few amazing meals (truffles above, egg noodles, mozzarella(buffalo), meat, salads), and a few misses due to my trust in touristy areas. An endless supply of amazing wine, cheese, coffee, and gelato exists in every corner while the weather has been cloudy, rainy, but sunny at times. If the weather is nice over the weekend, I'll probably rent a Vespa and cruise abouts the hills fashionably with my camera in one hand.
The people I have met so far locally are incredibly friendly, fashionable, jazzy, and passionate about Italy. Many of them smoke, all of them ride Vespas, and all must have coffee. The city of Florence is annoying to an extent that there are toooo many tourists and some local businesses take advantage of that in unkind ways. The nightly streets are packed full of fake brand goods, but it gives the place charm in a funny way.
I'm trekking over to Milan on monday, so if you have any must do's there, let me know..otherwise, I only plan to visit a few churches and the Italian Design Triennale as my flight is the next morning back to gloomy yet good ole Boston.
I'll have a more visual report once I return, but for now, I'm going to experience Italy and try to stay away from my laptop as much as possible besides work reasons. Ciao!
I'm off to Italy this weekend for a brief research project dealing with experience design and fashion to some extent. While there, I'll be diving into their culture, food, wines, and anything inspirational. If you know of any must see or eat places, let me know.(must eat restaurants are always welcome 😉 ) A majority of my time will be in Florence and surrounding areas, but a few hours will be in Milan. I'm not sure how much time I'll have to post any finds while there, but rest assured that if I find a wireless network, I'll post something. ciao!
Here's something I would have never thought up….serving dinner in total darkness as a restaurant theme. I love the idea of heightning your senses for food, but I wonder how many times I would flip food into my face or nose. I guess I'd avoid the noodles or soups and hot BBQ plates. Otherwise, I wonder if the users eat like blind cavemen using their hands. A dark room food fight with thousands of marshmellows could be fun.
"The first dark restaurant in Asia is officially opened on the 23 December 2006. This restaurant, located in Beijing, China, has its interior painted completely black. Customers are greeted by a brightly lit entrance hall and will be escorted by waiters wearing night vision goggles into the pitch dark dining room to help them find their seats. Flashlights, mobile phones and even luminous watches are prohibited while in this area.
I'm not sure how useful this is but it's a definite step in trying on products virtually.
"A new technology puts an end to the tedious business of buying shoes: Customers can now try on a variety of models in front of a virtual mirror without changing their shoes. They can navigate through the collection by simply pointing at products on a computer screen.
I'm not sure when I'd actually use this type of tech as a deciding factor since I'm the tangible type that's got to get the product in my hands, but then again, I buy stuff online now without touching them, sometimes hating what I receive, then getting too lazy to return anything. Virtual haircuts, makeup sessions, workouts, cloths, jewelry, watches, shoes, socks, etc… who knows.. this kind of tech reminds me of that Epcot center ride that projects an interactive ghost next to you towards the end of the ride and you kind of freak out since nothing appears next to you physically but in the mirror exists some weirdo pricking your hair and scratching your head.
A few weeks back the iconic creators of Voss Water sent me a case of their new drink G Pure Energy to try out.(thanks melissa!) At first I thought it would be another over caffinated and marketed drink in a very busy sector, but oh was I wrong. I was sent two awesome flavors: Orange Blossom and the Zero Carb Lime both in their squeeze shaped glass bottles with metalic covers. I was also sent a folder containing some zesty cocktails mixes which I have not had a chance to try out but will do so for some upcoming spring parties. So now for testing it out… I snapped open a chilled bottled and gave it a sip. It was snappy, fresh, smoothe, and poppy like champagne. It had a soda like touch but much cleaner without the sugar though sweet enough to enjoy. Unlike many other energy drinks, it didn't leave a weird after taste, but more like a healthy dose of carbonated water with a kiss of sweetness. Super chilled was a must. It was almost like carbonated water with a bit of a zest which I enjoyed. The only minus was that these bottles emptied fast at 200ml. I'm not sure how much energy these actually gave me but the refreshing zest made me smile. I've never seen these in stores, but if you do, give it a go! I'll post a pic of two of the bottle chillin in the snow on my porch after the jump.
I'm back from the mind-boggling TED conference and am detoxing my brain from the incredible stories, experiences, and knowledge shared by the hundreds of shakers and movers present there. My minds exhausted and happy while my bodies trying to catch up all at once. As usual, I'll point to Tom, Ethan, and Brunos blogs for their incredible recap on the TED speakers this year. As I slowly absorb and digest the many wonders of TED I'll post them on up with my thoughts. For now, I'll post a few glimpse of my journey there.
Overall, the TED Experience was incredible as usual with a diverse crowd of individuals craving to learn more about every topic imaginable. There was a new simulcast room with HD plasmas hovering over beds and comfy bean bags, a new chocolate tasting section which was oooo so yummy and satisfying thanks to Vosges, a few demo booths by various sponsors, a big gift bag, a cool IT help desk, an amazing photography studio, an addictive Google Snack bar, and much more. One thing I missed was the Aquarium party that usually happens on Friday night but was instead moved to Tuesday night for the speakers party hosted by Google. This years Grand party took place in an airport hanger which was cool, but by no means as magical as the Aquarium. The after Conference Beach party was very good as previous years ended with no party. I could go on and on about this years event, but much like JJ Abrams comments on his magical box, I'll keep that to a mystery but post a few pics for a glimpse of my experience. Enjoy!
I'm off to my 5th inspirational brain safari known as the TED Conference (Technology, Entertainment, and Design) over in Monterey, CA this week. This years speakers list is pretty damn amazing but as usual the conversations with attendees into the late nights will be the most memorable.
If you have not had a chance to dive into the world of TED you can catch a glimpse through TEDtalks (my selected picks here) or by exploring their site. I'll post the captivating daily speaker schedule after the jump though the interactive one on their site is a bit more useful.


text:
Cannich
Struy Church
Cannich lies towards the southern end of Strathglass, which runs south west from Beauly and carries the A831 for 17 miles into the heart of the western highlands. In Cannich the A831 takes a sharp turn east and heads towards Drumnadrochit on Loch Ness.
If you are approaching from Beauly it's difficult to believe today that the fertile Strathglass was once home to large numbers of people: and to a thriving and widely-famed industry in the production of illicit whisky. The stills were cleared when the Clan Chiefs of the Chisholms forced the people from their land in the years up to 1830 to free it for more profitable use: grazing sheep.
The Chisholms later left, and others now occupy their clan seat at Erchless Castle, close to the confluence of the River Glass and River Farrar. Not far away, and more visible from the main road is the strikingly attractive Aigas Field Centre.
Cannich itself is approached from the north across a bridge over the River Cannich. At its heart lies the Glen Affric Hotel, now sadly closed. This was originally built in 1862 but its striking and very unexpected architecture is evidence of considerable extension in the first half of the 1900s. The village is home to a surprisingly large community whose homes, churches and other services are slightly scattered and in many cases hidden amongst trees.
Cannich lies at the head of two long and exceptionally remote glens. From the crossroads in the centre of the village a road leads south west for ten miles into Glen Affric: which then continues roadless for many more miles, ending not far short of the west coast at Shiel Bridge. The fourth road meeting at Cannich crossroads heads nine miles west along Glen Cannich to the dam at the head of Loch Mullardoch. From here the loch extends ten miles west, deep into very remote and mountainous country.
Between the 1830s and 1950s much of this landscape would have been very empty, largely given over to hunting and fishing estates. This all changed with the coming of the North of Scotland Hydro-Electric Board to these glens. In 1952 the Mullardoch dam was completed. This generates electricity as its water descends through a tunnel to Loch Beinn a' Mheadhain in Glen Affric. From there it passes through one of the largest hydro power stations in Scotland at Fasnakyle, a little south of Cannich.
Today's Cannich continues to provide employment on the many hydro schemes in the surrounding area, and forestry also makes an important contribution to the local economy. And with large areas of high mountain country on the doorstep, leisure is increasingly important, with hotels and B&Bs in the area and a camping and caravanning site and a youth hostel in the village.
Cannich Cottages
River Cannich Bridge
Approaching Cannich from the East
The Glen Affric Hotel (Closed)
Aigas Field Centre