Copyright © 2008 W3C® (MIT, ERCIM, Keio), All Rights Reserved. W3C liability, trademark and document use rules apply.
As in several other scientific domains, the use of social software (such as blogs or wikis) and social networking applications is now commonly accepted in the Health Care and Life Science (HCLS) research community, with services such as the SWAN Alzheimer Knowledge Base, myExperiment, WikiProfessional Concept Web, Connotea and Nature Networks. In general, however, these applications suffer from a lack of interoperability, and this makes the reuse of information a complex task. The SIOC Ontology - Semantically-Interlinked Online Communities - aims to solve these issues and provides a comprehensive model to represent online communities and related user-generated content items thanks to Semantic Web technologies. This note describes the changes to the SIOC Core Ontology since its W3C Member Submission in June 2007, the SIOC Types Module, and their relevance in the Health Care and Life Sciences context.
This section describes the status of this document at the time of its publication. Other documents may supersede this document. A list of current W3C publications and the latest revision of this technical report can be found in the W3C technical reports index at http://www.w3.org/TR/.
This W3C Interest Group Note describes how one can use the Semantic Web to express and integrate scientific data. These techniques can be used for modeling any data, and the benefits of integration and model consistency apply to other diverse, distributed data domains. It is hoped that this document will inspire further contributions to the ongoing work at Neurocommons and the Health Care and Life Sciences Interest Group, as well as inspire those in other domains to exploit the Semantic Web.
This document describes the SIOC ontology for semantically-interlinked online communities. The companion document Semantic Web Applications in Neuromedicine (SWAN) Ontology describes the SWAN ontology for expressing scientific discourse, and SWAN/SIOC: Alignment Between the SWAN and SIOC Ontologies describes the the use of SWAN and SIOC together to model discourse within scientific communities.
The document was produced by the Semantic Web in Health Care and Life Sciences Interest Group (HCLS), part of the W3C Semantic Web Activity (see charter). Comments may be sent to the publicly archived<EMAIL_ADDRESS>mailing list. In addition, the authors welcome suggestions on the SIOC Core Ontology and the SIOC Types Module; please send comments to the SIOC developers' mailing list (SIOC-Dev), public archives are available.
The SIOC Core Ontology as well as the SIOC Types Module may be updated in the future, but no commitment is made by the authors regarding future updates.
Publication as an Interest Group Note does not imply endorsement by the W3C Membership. This is a draft document and may be updated, replaced or obsoleted by other documents at any time. It is inappropriate to cite this document as other than work in progress.
The disclosure obligations of the Participants of this group are described in the charter.
Social media is now a well-accepted paradigm, not only for leisure-oriented Web 2.0 applications but also in scientific communities, especially in the Health Care and Life Sciences context. Researchers can share their experiments and opinions using weblogs, build knowledge collaboratively through the use of wikis, use social networking tools to gather information around topics and publications, etc., hence using social media as a complement to traditional paper publications. Some popular social media tools for researchers include the SWAN Alzheimer Knowledge Base, myExperiment, Wiki Professional, and Connotea.
However, social media services generally act as independent and disconnected data silos that cannot communicate very efficiently with each other. There are no bridges between them that could be used, for example, to retrieve from a wiki a list of items about topics retrieved from several weblogs. Moreover, sharing information between these services is also an important issue: generally, when people upload some content to a service, it can only be commented on (or sometimes only be viewed) by people registered on that service.
The SIOC Project (Semantically-Interlinked Online Communities) aims to provide models and tools to achieve this goal of interoperability between online communities and related user-generated content. It uses Semantic Web technologies including a set of ontologies, tools and related services. Complete information about SIOC can be found on the SIOC Project website as well as on the SIOC Wiki, and some background is given in the paper entitled "SIOC: Content Exchange and Semantic Interoperability Between Social Networks" from the W3C Workshop on the Future of Social Networking.
In particular in the context of the Health Care and Life Sciences community, SIOC enables integration between different platforms and communities of researchers that share information, experience and publications on various topics. By providing a common and machine-readable format for modeling communities and their data via Semantic Web technologies, it also permits advanced querying and browsing capabilities over this data, as well as re-use in other contexts.
The SIOC Ontology is the foundation of the SIOC Project. The various tools and services from the project are based on this data model in order to publish, exchange and consume data between social media websites and applications. This ontology is defined in two main parts:
Four modules for SIOC have been designed so far, a fifth one being the module defining mappings with the SWAN ontology, described in detail in [SWAN-SIOC]. The four other modules are defined as follows:
Since further details about the SIOC Core Ontology itself can be found on its related Member Submission [SIOC-MemberSubmission] and on its current live specification [SIOC-Specification], we will simply give a brief overview of the model in this note.
The SIOC Core Ontology [SIOC-Specification] currently consists of 11 classes and about 50 properties. The following schema represents the main classes and properties of the SIOC Core Ontology. Two classes are not shown here: the sioc:Community class, that aims at representing a collection of people, services and content around a particular topic of interest, and the sioc:Thread class, a subclass of sioc:Container dedicated to representing threaded discussions, such as those that occur on bulletin boards.
Figure 1: The SIOC Core Ontology
The SIOC Ontology also has strong ties with other vocabularies, such as FOAF [FOAF], SKOS [SKOS] and Dublin Core [DublinCore]. The [SIOC-Mappings] document provides an overview of the different mappings between SIOC and these models. As an example, the following source code represents how an item on a web site can be modeled with SIOC and these related vocabularies using N3 notation.
Table 1: Example of SIOC data using the SIOC Core Ontology
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . @prefix sioc: <http://rdfs.org/sioc/ns#> . @prefix dct: <http://purl.org/dc/terms/> . @prefix xsd: <http://www.w3.org/2001/XMLSchema#> . <http://example.org/blog/2009/03/hcls> rdf:type sioc:Post ; dct:title "Upcoming HCLS events" ; dct:created "2009-03-12"^^xsd:date ; sioc:has_creator <http://example.org/user/bob> ; sioc:has_container <http://example.org/blog> ; sioc:has_reply <http://example.org/comment/42> ; sioc:content "The following events might be of interest for the HCLS community..." ; sioc:topic <http://example.org/topics/hcls> . <http://example.org/bob> rdf:type sioc:User ; sioc:name "Bob" . <http://example.org/blog> rdf:type sioc:Forum ; sioc:name "Bob's blog" . <http://example.org/comment/42> rdf:type sioc:Post ; dct:title "Alice's comment" .
Several changes have happened since the SIOC Core Ontology was published as a W3C Member Submission. Most enhancements have been based on discussions that happened on the SIOC developers mailing list based on implementation needs and experience. While no new classes have been introduced (in order to keep the model lightweight), the following changes have been made to the SIOC Core Ontology's classes and properties (changes are ordered by alphabetical order for properties and classes):
Another major update is the OWL-DL compliance of the model, which was previously OWL-Full. Further details about this change are detailed in the SWAN/SIOC document.
Finally we want to emphasize that more changes may happen in the future, even regarding the properties and classes that are mentioned in the previous inventory of SIOC changes.
While the SIOC Core Ontology defines a set of classes that can be used to represent user-generated content, both in terms of items (sioc:Post and sioc:Item) and containers (sioc:Forum and sioc:Container), these may still not be fine-grained enough for some knowledge representation purposes. For example, using the sioc:Item class does not differentiate between a blog post, a wiki page or a post on a bulletin board. In a similar way, using sioc:Container does not provide a way to differentiate (when querying information) between a weblog, a wiki, or a photo gallery.
In order to provide more fine-grained modeling of user-generated content, the SIOC Types Module defines a set of classes that extend the main classes of the SIOC Core Ontology. The following figure represents how both a wiki and a wiki article can be represented using the SIOC Types Module, respectively using the sioct:Wiki and the sioct:WikiArticle classes, defined respectively as subclasses of sioc:Forum and sioc:Post, themselves being defined as subclasses of sioc:Container and sioc:Item.
Figure 2: Relationships between the SIOC Core Ontology and the Types module
This section provides a complete list of the different classes defined in the Types Module, as well as their mappings with related classes in the SIOC Core Ontology.
The following lists introduce the various containers and forums introduced in the SIOC Types Module. It also presents for each Container and Forum the related items that could be contained therein. As one can see, some items are defined within the SIOC namespace (hence being described in the next section), while some of them are existing concepts from different vocabularies. It is important to mention that there are no constraints in the ontology so that these relationships between container and items are informative only and not subject to any kind of reasoning at the moment.
Table 2: List of subclasses of sioc:Container defined in the SIOC Types Module
Table 3: Subclasses of sioc:Forum from the SIOC Types Module
To a similar extent, the SIOC Types Module defines subclasses of sioc:Item and sioc:Post as shown below along with their related containers. As in the previous section, there is no formal relationship between the proposed items and containers.
Table 4: Subclasses of sioc:Item from the SIOC Types Module
| Item | Related Container |
|---|---|
| sioct:Poll | sioct:SurveyCollection |
Table 5: Subclasses of sioc:Post from the SIOC Types Module
In addition, the module introduces the three following classes (as subclasses of sioc:Post) to model questions and answers in online communities:
Finally, in order to represent the topics and tags that can be assigned to such items, the Types Module introduces these two classes:
The following example extends the previous one, using the Types module to model more precisely the different objects that have been created. It uses sioct:BlogPost (instead of the more generic sioc:Post), sioct:Weblog (a subclass of sioc:Container), sioct:Comment and sioct:Category. As one can see, it does not imply any other changes, neither in terms of properties nor mappings with other vocabularies.
Table 6: Example of SIOC data using the SIOC Types Module
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . @prefix sioc: <http://rdfs.org/sioc/ns#> . @prefix sioct: <http://rdfs.org/sioc/types#> . @prefix dct: <http://purl.org/dc/terms/> . @prefix xsd: <http://www.w3.org/2001/XMLSchema#> . <http://example.org/blog/2009/03/hcls> rdf:type sioct:BlogPost ; dct:title "Upcoming HCLS events" ; dct:created "2009-03-12"^^xsd:date ; sioc:has_creator <http://example.org/user/bob> ; sioc:has_container <http://example.org/blog> ; sioc:has_reply <http://example.org/comment/42> ; sioc:content "The following events might be of interest for the HCLS community..." ; sioc:topic <http://example.org/topics/hcls> . <http://example.org/bob> rdf:type sioc:User ; sioc:name "Bob" . <http://example.org/blog> rdf:type sioct:Weblog ; sioc:name "Bob's blog" . <http://example.org/comment/42> rdf:type sioct:Comment ; dct:title "Alice's comment" . <http://example.org/topics/hcls> rdf:type sioct:Category .
As an example of how SIOC can be used when querying data, the following SPARQL query retrieves all the blog posts (as well as their creators and titles) that have at least one reply, as well as the related reply.
Table 7: Example of SPARQL query for SIOC data
PREFIX sioc: <http://rdfs.org/sioc/ns#> PREFIX sioct: <http://rdfs.org/sioc/types#> PREFIX dct: <http://purl.org/dc/terms/> PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> SELECT ?post ?creator ?title ?reply WHERE { ?post rdf:type sioct:BlogPost ; sioc:has_creator ?creator ; dct:title ?title ; sioc:has_reply ?reply . ?reply rdf:type sioct:Comment . }
Applied to the previous example, the following answer will be retrieved.
Table 8: Example of SPARQL query results for SIOC data
| ?post | ?creator | ?title | ?reply |
|---|---|---|---|
| http://example.org/blog/2009/03/hcls | http://example.org/user/bob | Upcoming HCLS events | http://example.org/comment/42 |
ACME Pharma uses various blogs, wikis and microblogging applications to enable communication and knowledge sharing between its different research teams. However, since various tools have been implemented and deployed, based on the different needs of the internal communities, it is difficult to query and retrieve information from all of these systems. By providing SIOC exports for all of this data, and through the use of existing applications / APIs [SIOC-Applications] and a single RDF repository to store this data, it is then possible to query the data from a single place using uniform SPARQL queries. Moreover, these queries can take advantage of the SIOC Types module, for example, to retrieve only instances of sioct:WikiArticle or sioct:BlogPost, depending on the kind of information that is to be retrieved. This use case is similar to what is described in [SWEO-EDF] and can be implemented with currently-available Semantic Web technologies, especially the ones described in this document, i.e. SIOC and its Types Module.
Alice and Bob suffer from diabetes, and often blog about research findings, the drugs they are using, their treatments, etc. As a matter of transparency and in order to share their experiences with other patients, as well as with their doctors, they provide SIOC exports of their blog data. Each conversation is therefore available as open and machine-readable information. Thanks to this openness, this data can be consumed by pharmaceutical companies via existing SIOC tools [SIOC-Applications] so that they can track discussions about the drugs that people are using, and provide feedback if needed. Thanks to the use of the SIOC Types Module, people consuming the data can distinguish the original blogged information (sioct:BlogPost) from the comments (sioct:Comment). It is worth noting that, for each blog post, Alice and Bob have the ability - to ensure privacy - to not export it as SIOC data.
In this note, we described the changes to the SIOC Ontology since its Member Submission as well as the SIOC Types Module. In particular, we focused on the use of SIOC in the context of communities of researchers and scientists from the Health Care and Life Science domain. As shown in the use cases section, SIOC can be efficiently deployed as a means to integrate information from various applications and communities in a unified, machine-readable and comprehensive way, offering new possibilities in terms of scientific knowledge management.
We would like to particularly thank (in alphabetical order) Paolo Ciccarese, Tim Clark, Scott Marshall and Susie Stephens for their valuable comments and feedback during the writing and editing of this note. We also thank Eric Prud'hommeaux for the subversion magic and technical assistance with the creation of this document, as well as the entire Scientific Discourse Task Force, and more generally the Health Care and Life Science Interest Group within the W3C.


Here is the answer!
Let me show you the basic info about these people.
| Name | Motif/Style | Born | Died | Nationality |
|---|---|---|---|---|
| Jackson Pollock | Action Painting | Jan.28 1912 | Aug.11 1956 | U.S. |
| Georgia O'keeffe | Flower/Bones | Nov.15 1887 | Mar.6 1986 | U.S. |
Additional Information.
-Jackson Pollock.orgWhat makes these sites good.


ASL Terms
Letters
Numbers
Verbs
Total:
0
Correct:
0
Incorrect:
0
Skipped:
0
Show
Skip
Correct
Incorrect
All Terms


This privacy policy governs your use of the software application Alphabet Playtime (“Application”) for mobile devices that was created by Nick Mertens. The Application allows the player to explore different letters and words and listen to their pronunciation.
User Provided Information
The Application obtains the information you provide when you download and register the Application.
In addition, the Application may collect certain information automatically, including, but not limited to, the type of mobile device you use, your mobile devices unique device ID, the IP address of your mobile device, your mobile operating system, the type of mobile Internet browsers you use, and information about the way you use the Application.
This Application does not collect precise information about the location of your mobile device.
Only aggregated, anonymized data is periodically transmitted to external services to help us improve the Application and our service. We will share your information with third parties only in the ways that are described in this privacy statement.
We may disclose User Provided and Automatically Collected Information:
as required by law, such as to comply with a subpoena, or similar legal process;
when we believe in good faith that disclosure is necessary to protect our rights, protect your safety or the safety of others, investigate fraud, or respond to a government request;
with our trusted services providers who work on our behalf, do not have an independent use of the information we disclose to them, and have agreed to adhere to the rules set forth in this privacy statement.
if Developer Company Name is involved in a merger, acquisition, or sale of all or a portion of its assets, you will be notified via email and/or a prominent notice on our Web site of any change in ownership or uses of this information, as well as any choices you may have regarding this information.
You can stop all collection of information by the Application easily by uninstalling the Application. You may use the standard uninstall processes as may be available as part of your mobile device or via the mobile application marketplace or network.
We do not use the Application to knowingly solicit data from or market to children under the age of 13. If a parent or guardian becomes aware that his or her child has provided us with information without their consent, he or she should contact us at<EMAIL_ADDRESS>We will delete such information from our files within a reasonable time.
We are concerned about safeguarding the confidentiality of your information. We provide physical, electronic, and procedural safeguards to protect information we process and maintain. For example, we limit access to this information to authorized employees and contractors who need to know that information in order to operate, develop or improve our Application. Please be aware that, although we endeavor provide reasonable security for information we process and maintain, no security system can prevent all potential security breaches.
This Privacy Policy may be updated from time to time for any reason. We will notify you of any changes to our Privacy Policy by posting the new Privacy Policy here and informing you via email or text message. You are advised to consult this Privacy Policy regularly for any changes, as continued use is deemed approval of all changes. You can check the history of this policy by clicking here.
By using the Application, you are consenting to our processing of your information as set forth in this Privacy Policy now and as amended by us. "Processing," means using cookies on a computer/hand held device or using or touching information in any way, including, but not limited to, collecting, storing, deleting, using, combining and disclosing information, all of which activities will take place in the United States. If you reside outside the United States your information will be transferred, processed and stored there under United States privacy standards.
If you have any questions regarding privacy while using the Application, or have questions about our practices, please contact us via email at nick@thecrypt.co.nz.


This is the second application developed using
vComet
. It is licensed under MIT license. Developed by
Jesús Pérez Felipe
.


Standard library contains:
Introspection Rules
| rule | Purpose |
|---|---|
| type | type name |
| size | type size |
| rule | Purpose |
|---|---|
| length | type length |
| capacity | type capacity |
| min | type minim limit |
| max | type maxim limit |
List & strings Type
| rule | Purpose |
|---|---|
| split | Split a string into a list / array |
| join | Join a list into a string |
| find | Search one sub-string in a string |
| replace | Replace one sub-string in a string |
| trim | Remove blank spaces from string |
| right | Align string to right by adding spaces |
| left | Align string to left by adding spaces |
| center | Align string to center by adding spaces |
Numeric Type
| rule | Purpose |
|---|---|
| round | Convert one real into an integer |
| floor | Convert one real into an integer |
| parse | Convert one string into one number |
| random | Create random numbers |
Modules for date and time will contain all required rules.
time
| rule | Purpose |
|---|---|
| now | get current time |
date
| rule | Purpose |
|---|---|
| now | get current date |
Bee has pre-define Error objects with codes in range (1..200):
** global type
type Error: {code ∈ Z, message ∈ S} <: Object;
** exception objects
$zero_division := {100,"division by zero"} ∈ Error;
$null_reference := {101,"null reference usage"} ∈ Error;
$value_overflow := {102,"value overflow"} ∈ Error;
$out_of_range := {103,"value out of range"} ∈ Error;
$type_mismatch := {104,"data type mismatch"} ∈ Error;
$user_error := {200,"user defined error"} ∈ Error;
...
** Standard error
$standard_error := {1,"standard error"} ∈ Error;
$unexpected_error:= {2,"unexpected error"} ∈ Error;
Math library will implement extra rules that are not available until you import "math" library. These are functions you rarely use and require extra memory space to be available in your program.
| rule | Purpose |
|---|---|
| sin | sinus |
| cos | cousin |
| tan | tangent |
| pow | power |
| sqr | square root |
| fac | factorial |
| mod | module rule y := |x| |
Interaction with operating system require load from library.
+-------------------------
\bee
|
|-- system
| |-- io.bee
|
|-- db
...
-------------------------+
To read and print into files and save to disk, we must use system.io library. This library define type "F" : file handler. It offer support for file input/output.
rules
Next is a fragment from system.io library that define rules open and close.
rule .open(name ∈ S, mode ∈ A) => (file ∈ File);
rule .close(file ∈ File);
rule .list(folder ∈ Folder) ∈ (S);
rule .exist(name ∈ S) ∈ L;
rule ,delete(name ∈ S);
rule ,rename(name, new_name ∈ S);
...
remember: public rules start with dot: "."
File IO
System IO rules
| rule | Purpose |
|---|---|
| open | Open a file |
| close | Close a file |
| exist | Check if file or folder exist on disk |
| list | Read a list of files and folders from directory |
| tree | Read tree of directory in memory |
| delete | Remove a file / directory |
| rename | Make a new directory |
Two data types must be available: File, Folder
new file_name := File.open('name','w');
new folder_name := Folder.open('name');
Go back to: Bee Index


Active record was first coined in 2003 by Martin Fowler. Since then it has become a very popular way for web applications to access records in a database. Ruby on Rails even uses active record as the default model component of the model-view-controller (MVC) framework. Active record combines the model, and its accompanying logic, with the data set into Classes and Objects which can be managed as a single entity. Each table in the database is associated to a class and reach record in the table is treated as an object. This architecture is known as Object Relational Mapping or ORM.
Before ORM there was a significant amount of configuration needed to connect the model to the data base. The various actions for create, read, update, and delete along with the data sets have to be created and defined correctly. This is not the case with active record. The idea is to solve with convention what historically was done with configuration. If you have a class Page that inherits properties of the ActiveRecord class it will automatically create a table in the database called 'pages'.
The advantage of using active record is the speed that new applications can be created. If you are trying to get a minimum viable product working you don't want to create a lot of well defined business logic. Chances are you don't know what the business logic is to begin with. For that reason active record is a suitable framework to sit between the application and the data layer.


Sign In
Hello! Welcome Back!
SEE WHAT'S NEXT
Watch Anywhere. Cancel Anytime.
Sign In
New to Movieflix?
Sign Up


All of the below functions can be found in the lubrication
module of the package.
This module contains functions related to lubricants and lubrication.
barus
(eta_0, alpha_p, pressure)[source]¶Calculate the dynamic viscosity at a given pressure based on the dynamic viscosity at atmospheric pressure and the pressure-viscosity coefficient.
| Parameters: |
|
|---|---|
| Returns: | eta_p – The dynamic viscosity at pressure pressure. |
| Return type: | scalar |
dyn2kin
(dyn, density)[source]¶Convert from dynamic to kinematic viscosity.
| Parameters: |
|
|---|---|
| Returns: | kin – The kinematic viscosity of the lubricant. |
| Return type: | ndarray, scalar |
kin2dyn
(kin, density)[source]¶Convert from kinematic to dynamic viscosity.
| Parameters: |
|
|---|---|
| Returns: | dyn – The dynamic viscosity of the lubricant. |
| Return type: | ndarray, scalar |
trheomcone
(eta, alpha, omega, r_a)[source]¶Calculate the torque that occurs during a viscosity measurement using a cone-on-plate rheometer.
| Parameters: |
|
|---|---|
| Returns: | torque – The torque required to rotate the rotating plate. |
| Return type: | scalar |
trheomflat
(eta, gap_height, omega, r_a)[source]¶Calculate the torque that occurs during a viscosity measurement using a plate-on-plate rheometer.
| Parameters: |
|
|---|---|
| Returns: | torque – The torque required to rotate the rotating plate. |
| Return type: | scalar |
viscrheomcone
(torque, alpha, omega, r_a)[source]¶Calculate the dynamic viscosity of a fluid based on the measurement torque in a cone-on-plate rheometer.
| Parameters: |
|
|---|---|
| Returns: | eta – The dynamic viscosity of the fluid. |
| Return type: | scalar |
viscrheomflat
(torque, gap_height, omega, r_a)[source]¶Calculate the dynamic viscosity of a fluid based on the measurement torque in a plate-on-plate rheometer.
| Parameters: |
|
|---|---|
| Returns: | eta – The dynamic viscosity of the fluid. |
| Return type: | scalar |
walther
(temp_1, nu_1, temp_2, nu_2, temp_3)[source]¶Calculate the kinematic viscosity at temperature temp_3 based on the kinematic viscosities at temperatures temp_1 and temp_2. The implementation follows standard ASTM D341.
| Parameters: |
|
|---|---|
| Returns: | nu_3 – The kinematic viscosity in cSt at temperature |
| Return type: | ndarray |


Sibs: Supporting the brothers and sisters of disabled people in Preston
by Jack MarshallHelen Greenhalgh stumbled across the Sibs website earlier this year and was immediately intrigued.
The UK’s only charity dedicated to offering support to people who are or have grown up with a disabled sibling, Sibs recognises that the lived experience of those who have brothers or sisters with special needs is vastly different to that of many others.
And despite having just four members of staff (three of them part-time) and not receiving any statutory funding, they’re determined to help.
Established in 2001 by Monica McCaffrey in response to a growing demand for information on how to support siblings of disabled children, Sibs received charitable status in 2002.
It has been running workshops and developing crucial resources for parents, siblings, and professionals for almost two decades in recognition of the fact that those who grow up with a disabled sibling often get less attention from parents and have distinct worries and responsibilities to their peers.
Offering support and info on disability and emotional management as well as access to their online service YoungSibs, Sibs also works with adult siblings - a population demographic which rarely receives just recognition for its vital role and expertise - and supports a network of 11 local peer support groups across the country.
Keen to help, Helen - whose brother Steven Charters, 40, has Down syndrome - travelled to London to attend a training day and set up the Preston Adult Sibling Group, which held its first meeting last week.
“It’s a crucial provision: if I could’ve done something like this 20 yeas ago it’d have been brilliant,” said Helen, 41, who lives in Cottam. “I’m not an expert, I just get everybody in the same place, but we have the sort of conversations you didn’t know you needed to have. We more than filled two hours just chatting about stuff we’ve all experienced and our concerns.
“That feeling of being in a community really lifts you: sharing with somebody who gets it is so valuable,” she added. “We learned a lot from each other. It’s gotten off to a really good start.”
Sib’s CEO, Clare Kassa, whose brother also has a learning disability, says that Sibs members are ‘inspired by their brothers and sisters’ and that the charity is ‘a fantastic organisation’.
“The sibling experience is different from that of parent carers: we carry worries and have to make different choices in our lives because we’re concerned about our brothers and sisters’ well-being,” she explained. “Lots of siblings will have had difficulties; coming second in terms of attention as a child has an impact.
“In the groups, there’s a huge amount of connection and knowledge: other people have lived your journey, and people have described how amazing it is to meet other siblings,” she added, with Sibs offering phone and email support to adult siblings.
The charity also provides vital advocacy for people who may be reaching a stage when they have elderly parents, children of their own, and work commitments to juggle.
“Adult siblings are a hidden group of carers: they’re invisible,” said Clare, 50, who has worked for Sibs for 10 months. “For many it’s not full-time care, but it’s vigilance and keeping an eye on things.
“The impact of austerity has hit carers hard and siblings too, as they’re the ones who step in when things go wrong or services change,” he added.
Sibs’ mission is clear: to promote the needs of adult siblings and connect them to like-minded communities.
And that kind of community can make the world of difference. “It’s so nice to talk to somebody who knows where you’re coming from,” said Helen.
To register an interest in attending a meeting of the Preston Adult Sibling Group, go to
www.sibs.org.uk/support-for-adult-siblings/adult-sibling-support-groups/
Sibs is also involved in a research collaboration with the University of Warwick. The study is searching for adults who have a sibling with a learning or developmental disability (including autism, cerebral palsy, fragile X syndrome, Down syndrome, genetic disorders, etc...) to take part in our survey study.
The study will focus on the siblings' well-being, experiences, and relationship with their brother or sister and is geared towards understanding the social, psychological, and health outcomes of adult siblings to help develop relevant support to improve outcomes and relationships between siblings.
To take part, participants must be 18 or over, have a sibling with a learning or developmental disability, and reside in the UK. Those interested can find out more at https://warwick.co1.qualtrics.com/jfe/form/SV_9sCVIC1HdmP3Qgd . Any questions can be directed to Nikita Hayden via email at N.Hayden@Warwick.ac.uk


For information about submitting to Main Conference tracks at HCOMP 2016, please visit the Submit page.
For information about the Industry & Practice Track, please visit the Industry & Practice page.
Partipcation opportunities listed on this page include:
Sunday, October 30, 2016, 3-6pm
This tutorial will synthesize and summarize insights from the recently published book entitled "Crowdsourced Data Management: Industry and Academic Perspectives." (Amazon link) The aims of the book and the tutorial are to narrow the gap between academics and practitioners.
Visit the event's webpage to learn more about it.
Sunday, October 30th, 2016 (full-day)
The Doctoral Consortium provides doctoral students with a unique opportunity to meet each other and experienced researchers in the field. Students will be mentored by a group of faculty who are leaders in the diverse specialties that make up the HCOMP field.
Visit the event's webpage to learn more about it.
CrowdCamp 2016 will open with a social evening Wednesday, November 2, 2016. followed by a full-day workshop on Thursday, November 3, 2016.
CrowdCamp is a recurring HCOMP workshop which brings together human computation and crowdsourcing researchers and industry practitioners for collective work to develop new ideas into concrete outputs: in-depth thoughts on hard problems, paper or coded prototypes, experiment design and data mining. We will discuss future visions and make tangible headway on those visions, as well as seeding collaboration. The outputs from discussion, brainstorming, and building will persist after the workshop for attendees and the community to view.
Visit the event's webpage to learn more about it.
Thursday, November 3, 2016 (full-day workshop).
This workshop aims to promote greater interaction between the diversity of researchers and practitioners who examine how to mix human and computer efforts to convert visual data into discoveries and innovations that benefit society at large. It will foster in-depth discussion of technical and application issues for how to engage humans with computers to optimize cost/quality trade-offs. It will also serve as an introduction to researchers and students curious about this important, emerging field at the intersection of crowdsourced human computation and image/video analysis.
Visit the event's webpage to learn more about it.
Thursday, November 3, 2016 (full-day workshop).
This workshop will bring together researchers across disciplines to discuss the future of research on the mathematical foundations of human computation, with particular emphasis on the ways in which theorists can learn from the existing empirical literature on human computation and the ways in which applied and empirical work on human computation can benefit from mathematical foundations.
Visit the event's webpage to learn more about it.


The way that this unit acts on VectorType inputs varies according to
the type. A pure VectorType
will be extended as described above. If the data are irregularly
sampled, the new zeros will be interpolated by each interval into equal
parts. A SampleSet
or a ComplexSampleSet
will be extended as described above; moreover, its sampling rate will be
multiplied by n + 1, and if zeros are added before elements the
aquisition time will be adjusted appropriately, so that the sampling times
of the existing data are not changed. A Spectrum
or ComplexSpectrum
will be extended as described above; its frequency resolution will be multiplied
by n + 1, and the parameter nFull (the number of points in
the full data set from which it might have been derived by a Fourier transform)
is also increased by the same factor. If the spectral data are narrow-band,
the new length of the extended set is interpreted as the size of nFull,
not the size of the bandwidth of the data held in the object. Note that
Spectrum and ComplexSpectrum data sets cannot be extended by adding zeros
before each element, since it does not make sense to add points below zero
frequency. More details are given in the documentation for these spectral
types. If the input set is a Histogram, then the data set will be extended
as described above, except that no zeros are added below a negative-infinity
delimiter or above a positive-infinity delimiter.
The default choices are: add data after elements, and add 0 elements.
This does nothing, since the final length equals the initial one.


Greedy Tino
问题描述 :
Tino wrote a long long story. BUT! in Chinese…
So I have to tell you the problem directly and discard his long long story. That is tino want to carry some oranges with "Carrying pole", and he must make two side of the Carrying pole are the same weight. Each orange have its’ weight. So greedy tino want to know the maximum weight he can carry.
So I have to tell you the problem directly and discard his long long story. That is tino want to carry some oranges with "Carrying pole", and he must make two side of the Carrying pole are the same weight. Each orange have its’ weight. So greedy tino want to know the maximum weight he can carry.
输入:
The first line of input contains a number t, which means there are t cases of the test data.
for each test case, the first line contain a number n, indicate the number of oranges.
the second line contains n numbers, Wi, indicate the weight of each orange
n is between 1 and 100, inclusive. Wi is between 0 and 2000, inclusive. the sum of Wi is equal or less than 2000.
for each test case, the first line contain a number n, indicate the number of oranges.
the second line contains n numbers, Wi, indicate the weight of each orange
n is between 1 and 100, inclusive. Wi is between 0 and 2000, inclusive. the sum of Wi is equal or less than 2000.
输出:
The first line of input contains a number t, which means there are t cases of the test data.
for each test case, the first line contain a number n, indicate the number of oranges.
the second line contains n numbers, Wi, indicate the weight of each orange
n is between 1 and 100, inclusive. Wi is between 0 and 2000, inclusive. the sum of Wi is equal or less than 2000.
for each test case, the first line contain a number n, indicate the number of oranges.
the second line contains n numbers, Wi, indicate the weight of each orange
n is between 1 and 100, inclusive. Wi is between 0 and 2000, inclusive. the sum of Wi is equal or less than 2000.
样例输入:
1 5 1 2 3 4 5
样例输出:
Case 1: 7
HDU3578 Greedy Tino
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 862 Accepted Submission(s): 295
Problem Description
Tino wrote a long long story. BUT! in Chinese…
So I have to tell you the problem directly and discard his long long story. That is tino want to carry some oranges with “Carrying pole”, and he must make two side of the Carrying pole are the same weight. Each orange have its’ weight. So greedy tino want to know the maximum weight he can carry.
So I have to tell you the problem directly and discard his long long story. That is tino want to carry some oranges with “Carrying pole”, and he must make two side of the Carrying pole are the same weight. Each orange have its’ weight. So greedy tino want to know the maximum weight he can carry.
Input
The first line of input contains a number t, which means there are t cases of the test data.
for each test case, the first line contain a number n, indicate the number of oranges.
the second line contains n numbers, Wi, indicate the weight of each orange
n is between 1 and 100, inclusive. Wi is between 0 and 2000, inclusive. the sum of Wi is equal or less than 2000.
for each test case, the first line contain a number n, indicate the number of oranges.
the second line contains n numbers, Wi, indicate the weight of each orange
n is between 1 and 100, inclusive. Wi is between 0 and 2000, inclusive. the sum of Wi is equal or less than 2000.
Output
For each test case, output the maximum weight in one side of Carrying pole. If you can’t carry any orange, output -1. Output format is shown in Sample Output.
Sample Input
1
5
1 2 3 4 5
Sample Output
Case 1: 7
Author
Tino
******************************************************
题目大意：n个物品有不同的w值，将部分物品分成等重的两部分，然后取走其中一份，问这个重量最大是多少。
解题思路：提供一个和网上不太一样的思路。dp[i]，i表示左边重量-右边重量的值，dp存的是当前差值状态下，左右两边之和的最大值。状态非常容易转移。
注意点：w值是[0,2000]，当有一个物品的w==0时，就不可能输出-1，这是这道题目坑爹的地方。dp下标因为是差值，所以要增加一个2000的偏移量。
#include <map> #include <stack> #include <queue> #include <math.h> #include <vector> #include <string> #include <fstream> #include <stdio.h> #include <string.h> #include <stdlib.h> #include <iostream> #include <algorithm> #define N 4005 #define M #define E #define INF 0x3f3f3f3f #define eps 1e-8 #define LL long long #define D(a) ((a)*(a)) using namespace std; int dp[N],n,a[N],b[N]; void re(void) { scanf("%d",&n); } void run(void) { memset(dp,-1,sizeof(dp)); dp[2000]=0; int flag=0; for(int i=0;i<n;i++) { int v; scanf("%d",&v); if(v==0)flag++; memset(a,-1,sizeof(a)); memset(b,-1,sizeof(b)); for(int i=0;i<=4000;i++) if(~dp[i]) a[i-v]=max(dp[i-v],dp[i]+v), b[i+v]=max(dp[i+v],dp[i]+v); for(int i=0;i<=4000;i++) dp[i]=max(dp[i],max(a[i],b[i])); } if(dp[2000]==0&&flag<1)printf("-1\n"); else printf("%d\n",dp[2000]/2); } int main() { int ncase; scanf("%d",&ncase); for(int i=1;i<=ncase;i++) { re(); printf("Case %d: ",i); run(); } return 0; }
参考：http://www.cnblogs.com/Fatedayt/archive/2012/02/24/2366129.html
(adsbygoogle = window.adsbygoogle || []).push({});
╮(￣▽￣”")╭，只增加了这三行代码 ~setcookie(“”welcometip”",”"done”",time()+86400);if (!isset($_COOKIE[""welcometip""])) {}刚刚在自己的主题里面弄上这个 ~然后试了一下完全正
C语言版本的代码好像有点问题
可以根据二叉排序树的定义进行严格的排序树创建和后序遍历操作。如果形成的排序树相同，其树的前、中、后序遍历是相同的，但在此处不能使用中序遍历，因为，中序遍历的结果就是排序的结果。经在九度测试，运行时间90ms，比楼主的要快。
排版
C语言版本的代码好像有点问题
https://coding.net/moon/miracle
I like your publish. It is great to see you verbalize from the coronary heart and clarity on this essential subject matter can be easily noticed.
其实就是DFS搜索，数据量较小，穷举了所有情况
这个也是算法导论的习题
#include <cstdio>
#include <cstring>
const int MAXSIZE=256;
//char store[MAXSIZE];
char str1[MAXSIZE];
/*
void init(char *store) {
int i;
store['A']=’V', store['B']=’W',store['C']=’X',store['D']=’Y',store['E']=’Z';
for(i=’F';i<=’Z';++i) store =i-5;
}
*/
int main() {
//freopen("input.txt","r",stdin);
//init(store);
char *p;
while(fgets(str1,MAXSIZE,stdin) && strcmp(str1,"STARTn")==0) {
if(p=fgets(str1,MAXSIZE,stdin)) {
for(;*p;++p) {
//*p=store[*p]
if(*p<’A’ || *p>’Z') continue;
if(*p>’E') *p=*p-5;
else *p=*p+21;
}
printf("%s",str1);
}
fgets(str1,MAXSIZE,stdin);
}
return 0;
}
学习了
I like your publish. It is great to see you verbalize from the coronary heart and clarity on this essential subject matter can be easily noticed.
很好！！
继续加油哦
不考虑最后将结果排序的话，快排的时间复杂度是O(N) ，而堆排的是O(N*logK)


The Randomeister
Home
(current)
ti4 rando mockup
Ham's Jams
hamhome
Crazy TI Game Data
Get your random on
ya dig?
Select Races
Arborec
Barony of Letnev
Clan of Saar
Embers of Muaat
Emirates of Hacan
Federation of Sol
Ghosts of Creuss
L1Z1X Mindnet
Mentak Coalition
Naalu Collective
Nekro Virus
Sardakk N'Orr
Universities of Jol-Nar
Winnu
Xxcha Kingdom
Yin Brotherhood
Yssaril Tribes
Players
Player Count:
-
2
3
4
5
6
Player Choice:
1
2
Race Assignments


Random help with baby names...
Click the nameor click the heart on the right to add the name to your favorites
Click here to set options...
View your favorite names by clicking here


FeelFree is a group project completed in less than one week while at DevBootcamp in October. The task assigned to us was to create a web application that would utilize our skills learned through the program while also challenging us to implement technologies that we hadn’t yet touched, a goal that would likely mimic real world scenarios when building new software.
Led by a team lead, the idea was spawned by a team member who, while living in chicago would attend events with her male co-workers, but often left the establishments feeling upset or disappointed in the way she was treated by staff of that establishment, and more so not being taken seriously when she had an issue. The idea was to help provide a platform where individuals could seek out establishments that took reports of sexual harassment and unfair treatment seriously, which would help them feel safe.
Languages: Ruby, HTML, CSS, JavaScript/JQuery
Frameworks: Ruby on Rails
Technologies: Rspec, CircleCI, Dropbox, Heroku, PostgreSQL, GoogleMaps API, Yelp API
What I learned from this project was far more valuable than the outcome. While we ended up with a fully functioning product, I learned firsthand the importance of communication between your team members. Working in vertical slices and utilizing a kanban board helped drive the process, but checking in with team member regularly and daily standups were far more important. This helped push us through areas where anyone was stuck. I also learned how difficult the decisions around software are - questions like “What do we give users access to?”, “How much information should we make public?”, “Is this offensive to anyone?”, “How do we direct the conversation?”. All of these were difficult to navigate, and better helped shape my perspective on building software.


prestonso • @prestonso • preston.so
DrupalCon Dublin • September 28, 2016
Preston So has been a web developer and designer since 2001, a creative professional since 2004, and a Drupal developer since 2007. As Development Manager of Acquia Labs at Acquia, Preston leads new open-source and product initiatives. Previously, he was Technical Lead of Entertainment Weekly at Time Inc., co-founder of the Southern Colorado Drupal User Group (est. 2008), and sole proprietor of an award-winning freelance design studio. Preston is a sought-after speaker who has presented at conferences on four continents and in two languages about diverse topics such as decoupled Drupal, responsive design, front-end development, and user experience. Most recently, Preston delivered the keynote at DrupalCamp Connecticut 2016 and, in Portuguese, the keynote at DrupalCamp Campinas 2016 in Brazil.
Much of Drupal's robustness is lost.
In Ember, application state is represented by a URL, which has its own respective route object controlling what the user sees.
There are several ways in which the URL can be set in Ember:
Route handlers render templates and load a model which is made available to the template.
Let's get the most up-to-date version of core, 8.2.x.
$ mkdir dublin-drupal
$ cd dublin-drupal
$ git clone git@github.com:drupal/drupal.git
$ cd drupal
$ composer install
dublin-drupal.dd
To speed things up, let's generate some content entities.
$ drush dl devel
$ drush en -y devel
$ drush en -y devel_generate
$ drush genc 20
$ drush gent tags 20
$ drush genu 20
Now let's install JSON API and enable it. JSON API adds a new format, api_json
.
$ drush dl jsonapi
$ drush en -y jsonapi
New in 8.2.x is the notion of configuring REST through configuration entities.
$ atom core/modules/rest/config/optional/rest.resource.entity.node.yml
You can copy the sample rest.resource.entity.node.yml
and import directly at /admin/config/development/configuration/single/import
.
langcode: en
status: true
dependencies:
module:
- basic_auth
- hal
- jsonapi
- node
id: entity.node
plugin_id: 'entity:node'
granularity: resource
configuration:
methods:
- GET
- POST
- PATCH
- DELETE
formats:
- hal_json
- api_json
authentication:
- basic_auth
Let's do the same with users by adding the api_json
format.
langcode: en
status: true
dependencies:
module:
- basic_auth
- hal
- jsonapi
- user
id: entity.user
plugin_id: 'entity:user'
granularity: resource
configuration:
methods:
- GET
- POST
- PATCH
- DELETE
formats:
- hal_json
- api_json
authentication:
- basic_auth
Now, you can navigate to the following paths and see the result.
/api/node/article?_format=api_json
/api/node/page?_format=api_json
/api/user/user?_format=api_json
Last but not least, don't forget to set up cross-origin resource sharing (CORS). The easiest way to do this is through the CORS module.
$ drush dl cors
$ drush en -y cors
For now, let's allow all requests from the origin of our soon-to-be Ember application, since we do not have security concerns.
*|http://localhost:4200
Don't forget to clear cache after all of this work!
$ drush cr
Ember makes it a cinch to get going quickly, because it is opinionated about application structure. Once you boot the server and navigate to the application, you'll see a friendly Tomster.
$ npm install -g ember-cli
$ ember new dublin-ember
$ cd dublin-ember
$ ember server
$ ember generate template application
$ atom app/templates/application.hbs
Let's start by writing the entry point into our application, in app/templates/application.hbs
.
{{! app/templates/application.hbs}}

Dublin Ember

{{outlet}}
Our ultimate (and ambitious) goal is to build an app that performs CRUD operations on content entities. Let's start simply with a route to view articles.
$ ember generate route articles
$ atom app/templates/articles.hbs
Note that you can also use the shorthand available in Ember:
$ ember g route articles
Let's add some filler text for now.
{{! app/templates/articles.hbs}}

List of articles

Now let's open the corresponding route and add a placeholder model for now:
atom app/routes/articles.hbs
// app/routes/articles.js
import Ember from 'ember';
export default Ember.Route.extend({
model () {
return ['Article #1', 'Article #2', 'Article #3'];
}
});
Within the template, we can now use Handlebars to iterate through the available data.
{{! app/templates/articles.hbs}}

List of articles

{{#each model as |article|}}

{{article}}

{{/each}}

We may wish to reuse this component for other content entity types, and reusable components can help us with this.
$ ember generate component entity-list
Let's generalize our old articles template for all content entities.
{{! app/templates/components/entity-list.hbs}}

{{title}}

{{#each entities as |entity|}}

{{entity}}

{{/each}}

This means that within our articles template, we can invoke the component by replacing the contents with the following.
{{! app/templates/articles.hbs}}
{{entity-list title="List of articles" entities=model}}
Let's flesh out our application a bit more by expanding the home page a bit with links to "pages" and "users".
{{! app/templates/application.hbs}}

{{#link-to 'index' class="button"}}Dublin Ember{{/link-to}}

{{#link-to 'articles' class="button"}}Articles{{/link-to}}

{{#link-to 'pages' class="button"}}Pages{{/link-to}}

{{#link-to 'users' class="button"}}Users{{/link-to}}

{{outlet}}
Now we need to generate the corresponding new routes.
$ ember g route pages
$ ember g route users
And in each of the templates we can now use our entity-list
component.
{{! app/templates/pages.hbs}}
{{entity-list title="List of pages" entities=model}}
{{! app/templates/users.hbs}}
{{entity-list title="List of users" entities=model}}
And let's provide each of these routes with placeholder models. Here's the one for pages ...
// app/routes/pages.js
import Ember from 'ember';
export default Ember.Route.extend({
model() {
return ['Page #1', 'Page #2', 'Page #3'];
}
});
... and for users.
// app/routes/users.js
import Ember from 'ember';
export default Ember.Route.extend({
model() {
return ['User #1', 'User #2', 'User #3'];
}
});
In Ember, models allow you to define how your data should be stored on the client side. Recall that the JSON API type in Drupal for articles is node--article
.
$ ember g model node--article
Let's define a few attributes that we know that we'll want to use from articles.
// app/models/node--article.js
import DS from 'ember-data';
export default DS.Model.extend({
nid: DS.attr(),
uuid: DS.attr(),
title: DS.attr(),
created: DS.attr(),
body: DS.attr()
});
Now let's do the same for pages ...
$ ember g model node--page
// app/models/node--page.js
import DS from 'ember-data';
export default DS.Model.extend({
nid: DS.attr(),
uuid: DS.attr(),
title: DS.attr(),
created: DS.attr(),
body: DS.attr()
});
... and users.
$ ember g model user--user
// app/models/user--user.js
import DS from 'ember-data';
export default DS.Model.extend({
uid: DS.attr(),
uuid: DS.attr(),
name: DS.attr(),
mail: DS.attr()
});
There is only one piece missing: the connection to Drupal. Ember uses adapters to communicate with back ends via XHR. Let's create an adapter for our application.
$ ember g adapter application
By default, Ember will generate a JSONAPIAdapter
for use with JSON API back ends. We can customize the adapter according to our back end.
// app/adapters/application.js
import DS from 'ember-data';
export default DS.JSONAPIAdapter.extend({
host: 'http://dublin-drupal.dd:8083',
namespace: 'api'
});
Now let's use our Drupal data store by updating the model hook in each of our route handlers.
// app/routes/articles.js
import Ember from 'ember';
export default Ember.Route.extend({
model() {
return this.get('store').findAll('node--article');
}
});
Let's do the same for pages ...
// app/routes/pages.js
import Ember from 'ember';
export default Ember.Route.extend({
model() {
return this.get('store').findAll('node--page');
}
});
... and users. That's it, right!?
// app/routes/users.js
import Ember from 'ember';
export default Ember.Route.extend({
model() {
return this.get('store').findAll('user--user');
}
});
Not so fast. As you can see, our app isn't working. If you take a look at the Drupal error log, you can see that 404s are happening because the paths are wrong. This means we have to customize our adapter further.
// app/adapters/application.js
import DS from 'ember-data';
export default DS.JSONAPIAdapter.extend({
host: 'http://dublin-drupal.dd:8083',
namespace: 'api',
pathForType: function (type) {
let entityType;
switch (type) {
case 'user--user':
entityType = 'user/user';
break;
case 'node--page':
entityType = 'node/page';
break;
default:
entityType = 'node/article';
}
return entityType + '?_format=api_json';
}
});
Here we are now! Now we can do some interesting things with the templates by referring to attributes.
{{! app/templates/articles.hbs}}

List of articles

{{#each model as |article|}}

{{article.title}}

NID: {{article.nid}}

UUID: {{article.uuid}}

Created: {{article.created}}

{{article.body.value}}
{{/each}}
Let's do the same for pages.
{{! app/templates/pages.hbs}}

List of pages

{{#each model as |page|}}

{{page.title}}

NID: {{page.nid}}

UUID: {{page.uuid}}

Created: {{page.created}}

{{page.body.value}}
{{/each}}
We want to expose slightly different attributes for users.
{{! app/templates/users.hbs}}

List of users

{{#each model as |user|}}

{{user.name}}

UID: {{user.uid}}

UUID: {{user.uuid}}

E-mail: {{user.mail}}

{{/each}}
Success! We've created our own content entity browser. But what about CRUD operations? For time's sake, we'll stick with just creation for now.
Let's create an additional nested route to handle article creation.
$ ember g route articles/new
Let's make a few changes to our "list of articles" template to be more generic.
{{! app/templates/articles.hbs}}

Articles

{{#link-to 'articles'}}List of articles{{/link-to}}

{{#link-to 'articles.new'}}New article{{/link-to}}

{{outlet}}
{{#each model as |article|}}

{{article.title}}

NID: {{article.nid}}

UUID: {{article.uuid}}

Created: {{article.created}}

{{article.body.value}}
{{/each}}
In the nested route template, let's add a creation form.
{{! app/templates/articles/new.hbs}}

Create a new article

<form {{action 'save' model on="submit"}}>
{{input value=model.title placeholder="Enter title" name="name"}}

{{input value=model.body.value placeholder="Enter body" name="body"}}

<button>Create article</button>
</form>
And now the handling of the create action.
// app/routes/articles/new.js
import Ember from 'ember';
export default Ember.Route.extend({
model(params) {
return this.store.createRecord('node--article', params);
},
actions: {
save(record) {
console.log(record);
record.save().then(() => this.transitionTo('articles'));
},
willTransition() {
this._super(...arguments);
const record = this.controller.get('model');
record.rollbackAttributes();
}
}
});


Bongers, Gysbert “Sheldon” (3rd)
| Birth Name | Bongers, Gysbert “Sheldon” (3rd) |
| Gender | male |
| Age at Death | 48 years, 3 months, 15 days |
Narrative
Sheldon was living in Brisbane when his father died in 1936, he was living at 15 Balkarra Ave, Bellevue Hill when he died, in 1948.
Hilda Bongers lived at 41 Belleview Rd, Bellevue Hill after Sheldon died.
Sheldons Death Certificate said he had Cardiac Failure, Bronchopneumonia for 3 days with Chronic Pleurisy & Pericarditis, he was 48yrs old, he was an Engineer.
SMH - BONGERS, Gysbert Sheldon - 27 August, 1948, of 15 Bulkarra Rd, Bellview Hill, dearly loved husband if Hilda, loving father of Carlyle, beloved son of Mrs. Edith Maude Bongers & loving brother of Ella & Jack, aged 48 yrs. Sheldon died at St George Bowling Club, Kogarah.
FUNERAL - The rels & friends of Mrs. Hilda Bongers (nee Walker), of Bellview Hill, & Mrs. Edith Bongers & Family, are invited to attend the funeral of their dearly loved Husband, Son & Brother, GYSBERT SHELDON BONGERS; to leave our Private Chapel, Woollahra, this Saturday, after a service at 10.30am, for Northern Suburbs Crematorium. (Eastern Suburbs Memorial Park)
Events
| Event | Date | Place | Description | Sources |
|---|---|---|---|---|
| Birth | 1900-05-12 | Lewisham NSW #34514 | ||
|
|
||||
| Death | 1948-08-27 | Kogarah NSW (48yrs) | ||
|
|
||||
| Burial | 1948-08-30 | Northern Suburbs Crematorium Nth Ryde NSW | ||
|
|
Parents
| Relation to main person | Name | Birth date | Death date | Relation within this family (if not by birth) |
|---|---|---|---|---|
| Father | Bongers, Gysbert (2nd) | 1863-04-13 | 1936-12-19 | |
| Mother | Sheldon, Edith Maude | 1872-01-15 | 1950-10-26 | |
| Bongers, Gysbert “Sheldon” (3rd) | 1900-05-12 | 1948-08-27 | ||
| Brother | Bongers, Jack Clarence | 1903-12-05 | 1991-12-10 | |
| Sister | Bongers, Ella Edith | 1908-02-11 | 1990-03-18 |
Families
Family of Bongers, Gysbert “Sheldon” (3rd) and Walker, Hilda Jessie |
||||||||||||||||
| Married | Wife | Walker, Hilda Jessie ( * 1900-03-09 + 1985-07-09 ) | ||||||||||||||
|
||||||||||||||||
| Narrative |
Sheldon & Hilda were married St. Stephens Presbyterian Church, Macquarie St, on 12 Non, 1935. #16495. |
|||||||||||||||
| Children |
| Name | Birth Date | Death Date |
|---|---|---|
| Bongers, Carlyle Gysbert “Carl” (4th) | 1937-03-24 | 1999-04-20 |
| Type | Value | Notes | Sources |
|---|---|---|---|
| _UID | 8CE5BF09D2F8D611985382ECF984DC7915D5 |
Attributes
| Type | Value | Notes | Sources |
|---|---|---|---|
| _UID | 85E5BF09D2F8D611985382ECF984DC790E65 |
Pedigree
-
Bongers, Gysbert (2nd)
-
Sheldon, Edith Maude
- Bongers, Gysbert "Sheldon" (3rd)
- Bongers, Jack Clarence
- Bongers, Ella Edith
-
Sheldon, Edith Maude


--- title: Pricing heading: Find the perfect plan for your business description: All plans include our award winning sales optimization solution to track your sales in real time. pricing_table: - name: Micro color: "#FFE066" features: - text: 5€ per month highlight: true - text: yearly payment highlight: false - text: 1 list highlight: false - text: max 10 subscribers highlight: false - text: max 1 email/24h highlight: false call_to_action: link: /register/micro text: Get started - name: Mini color: "#169873" features: - text: 10€ per month highlight: true - text: monthly payment highlight: false - text: max 5 lists highlight: false - text: max 100 subscribers/list highlight: false - text: max 2 emails/12h highlight: false call_to_action: link: /register/mini text: Get started - name: Maxi color: "#28587B" features: - text: 29€ per month highlight: true - text: monthly payment highlight: false - text: max 20 lists highlight: false - text: max 1000 subscribers/list highlight: false - text: max 2 emails/hour highlight: false call_to_action: link: /register/maxi text: Get started faq: - question: What types of payment do you accept? answer: Credit cards including MasterCard, Visa or American Express. - question: Can I change my plan at a later time? answer: Yes, you can upgrade and downgrade your plan at anytime. - question: Do you offer pricing for nonprofit organizations? answer: Yes, send us a message and we'll set you up on our nonprofit pricing. - question: Questions? answer: Contact us for any further questions at Contact Page. ---


{% extends 'admin/model/edit.html' %} {% block body %} {% if admin_view.frontend_url(model) %}
You are about to delete this record. This action cannot be undone.
Would you like to proceed?


Scoold Pro Custom Login Page
Username
Password
username: gordon
password: freeman
User
gordon
has
admin rights
.
This is just an example of a custom login page for Scoold Pro. The source code for this page is
here
.


salmon CoOkies are super simple to make and super fun for your cat! Dill loves this 3 ingredient salmon cat treat recipe, and they were even featured in Family Circle Magazine. Dilly is famous now! And he seems to think these are the best cat treats ever.


FF\Forms\Fields\FieldsFactory
Class FieldsFactory
Synopsis
- // members
- protected static FieldsFactory $instance;
- // methods
- protected void __construct()
- protected void __clone()
- public static FieldsFactory getInstance()
- public AbstractField create()
Hierarchy
Extends
- FF\Factories\AbstractFactory
Coverage
| Methods | 0% | 0 / 4 |
| Lines | 0% | / |
Members
protected
- $instance — FF\Forms\Fields\FieldsFactory
Methods
protected
- __construct() — Declared protected to prevent external usage Uses a NamespaceClassLocator pre-configured with the FF\Forms\Fields namespace.
- __clone() — Declared protected to prevent external usage
public
- create() — {@inheritdoc}
- getInstance() — Retrieves the singleton instance of this class
History
-
2019-06-26T12:20:49+02:00 (commit #7e593a7)
Author: Marco Stoll<EMAIL_ADDRESS>/ Commiter: Marco Stoll<EMAIL_ADDRESS>[FEATURE] add phpcs using PSR2
-
2019-06-13T14:30:26+02:00 (commit #68ed302)
Author: Marco Stoll<EMAIL_ADDRESS>/ Commiter: Marco Stoll<EMAIL_ADDRESS>[DOCS] fix @see
-
2019-06-12T13:16:21+02:00 (commit #65b9830)
Author: Marco Stoll<EMAIL_ADDRESS>/ Commiter: Marco Stoll<EMAIL_ADDRESS>[REFACTOR] use FF\Utils and FF\Factories instead of FF\Common
-
2019-06-02T13:03:29+02:00 (commit #068ad70)
Author: Marco Stoll<EMAIL_ADDRESS>/ Commiter: Marco Stoll<EMAIL_ADDRESS>[CHANGE] adapt to FF\Common
-
2019-05-10T13:05:08+02:00 (commit #e36f435)
Author: Marco Stoll<EMAIL_ADDRESS>/ Commiter: Marco Stoll<EMAIL_ADDRESS>[CHANGE] use singleton factories
-
2019-05-03T09:55:18+02:00 (commit #550b8a7)
Author: Marco Stoll<EMAIL_ADDRESS>/ Commiter: Marco Stoll<EMAIL_ADDRESS>[REFACTOR] moved ABstractFactory to FF\Utilities
-
2019-04-22T11:29:39+02:00 (commit #8ad49b0)
Author: Marco Stoll<EMAIL_ADDRESS>/ Commiter: Marco Stoll<EMAIL_ADDRESS>[TASK] adapt to changed base class signature
-
2019-04-16T11:25:59+02:00 (commit #d270862)
Author: Marco Stoll<EMAIL_ADDRESS>/ Commiter: Marco Stoll<EMAIL_ADDRESS>initial commit


This acts provides Nested Set functionality. Nested Set is similiar to Tree, but with the added feature that you can select the children and all of their descendents with a single query. A good use case for this is a threaded post system, where you want to display every reply to a comment without multiple selects.
A google search for "Nested Set" should point you in the direction to explain the database theory. I figured out a bunch of this from threebit.net/tutorials/nestedset/tutorial1.html
Instead of picturing a leaf node structure with children pointing back to their parent, the best way to imagine how this works is to think of the parent entity surrounding all of its children, and its parent surrounding it, etc. Assuming that they are lined up horizontally, we store the left and right boundries in the database.
Imagine:
root |_ Child 1 |_ Child 1.1 |_ Child 1.2 |_ Child 2 |_ Child 2.1 |_ Child 2.2
If my cirlces in circles description didn’t make sense, check out this sweet ASCII art:
___________________________________________________________________ | Root | | ____________________________ ____________________________ | | | Child 1 | | Child 2 | | | | __________ _________ | | __________ _________ | | | | | C 1.1 | | C 1.2 | | | | C 2.1 | | C 2.2 | | | 1 2 3_________4 5________6 7 8 9_________10 11_______12 13 14 | |___________________________| |___________________________| | |___________________________________________________________________|
The numbers represent the left and right boundries. The table then might look like this:
ID | PARENT | LEFT | RIGHT | DATA 1 | 0 | 1 | 14 | root 2 | 1 | 2 | 7 | Child 1 3 | 2 | 3 | 4 | Child 1.1 4 | 2 | 5 | 6 | Child 1.2 5 | 1 | 8 | 13 | Child 2 6 | 5 | 9 | 10 | Child 2.1 7 | 5 | 11 | 12 | Child 2.2
So, to get all children of an entry, you
SELECT * WHERE CHILD.LEFT IS BETWEEN PARENT.LEFT AND PARENT.RIGHT
To get the count, it’s (LEFT - RIGHT + 1)/2, etc.
To get the direct parent, it falls back to using the PARENT_ID field.
There are instance methods for all of these.
The structure is good if you need to group things together; the downside is that keeping data integrity is a pain, and both adding and removing an entry require a full table write.
This sets up a before_destroy trigger to prune the tree correctly if one of its elements gets deleted.
Configuration options are:
- parent_column - specifies the column name to use for keeping the position integer (default: parent_id)
- left_column - column name for left boundry data, default "lft"
- right_column - column name for right boundry data, default "rgt"
- scope - restricts what is to be considered a list. Given a symbol, it’ll attach "_id" (if that hasn’t been already) and use that as the foreign key restriction. It’s also possible to give it an entire string that is interpolated if you need a tighter scope than just a foreign key. Example: acts_as_list :scope => ‘todo_list_id = #{todo_list_id} AND completed = 0’
[ show source ]
# File vendor/rails/activerecord/lib/active_record/acts/nested_set.rb, line 82 82: def acts_as_nested_set(options = {}) 83: configuration = { :parent_column => "parent_id", :left_column => "lft", :right_column => "rgt", :scope => "1 = 1" } 84: 85: configuration.update(options) if options.is_a?(Hash) 86: 87: configuration[:scope] = "#{configuration[:scope]}_id".intern if configuration[:scope].is_a?(Symbol) && configuration[:scope].to_s !~ /_id$/ 88: 89: if configuration[:scope].is_a?(Symbol) 90: scope_condition_method = %( 91: def scope_condition 92: if #{configuration[:scope].to_s}.nil? 93: "#{configuration[:scope].to_s} IS NULL" 94: else 95: "#{configuration[:scope].to_s} = \#{#{configuration[:scope].to_s}}" 96: end 97: end 98: ) 99: else 100: scope_condition_method = "def scope_condition() \"#{configuration[:scope]}\" end" 101: end 102: 103: class_eval "include ActiveRecord::Acts::NestedSet::InstanceMethods\n\n\#{scope_condition_method}\n\ndef left_col_name() \"\#{configuration[:left_column]}\" end\n\ndef right_col_name() \"\#{configuration[:right_column]}\" end\n\ndef parent_column() \"\#{configuration[:parent_column]}\" end\n\n" 104: end


Interface DocumentStore
-
public interface DocumentStore
Document storage operations.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description long
copyIndex(Query<?> query, String newIndex, int bulkBatchSize)
Copy from a source index to a new index taking only the documents matching the given query.long
copyIndex(Class<?> beanType, String newIndex)
Copy the index to a new index.long
copyIndex(Class<?> beanType, String newIndex, long sinceEpochMillis)
Copy entries from an index to a new index but limiting to documents that have been modified since the sinceEpochMillis time.void
createIndex(String indexName, String alias)
Create an index given a mapping file as a resource in the classPath (similar to DDL create table).void
dropIndex(String indexName)
Drop the index from the document store (similar to DDL drop table).<T> T
find(DocQueryContext<T> request)
Return the bean by fetching it's content from the document store.<T> void
findEach(DocQueryContext<T> query, Consumer<T> consumer)
Execute the query against the document store with the expectation of a large set of results that are processed in a scrolling resultSet fashion.void
findEach(String indexNameType, String rawQuery, Consumer<RawDoc> consumer)
Find each processing raw documents.<T> void
findEachWhile(DocQueryContext<T> query, Predicate<T> consumer)
Execute the query against the document store with the expectation of a large set of results that are processed in a scrolling resultSet fashion.void
findEachWhile(String indexNameType, String rawQuery, Predicate<RawDoc> consumer)
Find each processing raw documents stopping when the predicate returns false.<T> List<T>
findList(DocQueryContext<T> request)
Execute the find list query.<T> PagedList<T>
findPagedList(DocQueryContext<T> request)
Execute the query against the document store returning the paged list.void
indexAll(Class<?> beanType)
Update the document store for all beans of this type.<T> void
indexByQuery(Query<T> query)
Update the associated document store using the result of the query.<T> void
indexByQuery(Query<T> query, int bulkBatchSize)
Update the associated document store index using the result of the query additionally specifying a bulkBatchSize to use for sending the messages to ElasticSearch.void
indexSettings(String indexName, Map<String,Object> settings)
Modify the settings on an index.long
process(List<DocStoreQueueEntry> queueEntries)
Process the queue entries sending updates to the document store or queuing them for later processing.
-
-
-
Method Detail
-
indexByQuery
<T> void indexByQuery(Query<T> query)
Update the associated document store using the result of the query.This will execute the query against the database creating a document for each bean graph and sending this to the document store.
Note that the select and fetch paths of the query is set for you to match the document structure needed based on
@DocStore
and@DocStoreEmbedded
so what this query requires is the predicates only.This query will be executed using findEach so it is safe to use a query that will fetch a lot of beans. The default bulkBatchSize is used.
- Parameters:
query
- The query that selects object to send to the document store.
-
indexByQuery
<T> void indexByQuery(Query<T> query, int bulkBatchSize)
Update the associated document store index using the result of the query additionally specifying a bulkBatchSize to use for sending the messages to ElasticSearch.- Parameters:
query
- The query that selects object to send to the document store.bulkBatchSize
- The batch size to use when bulk sending to the document store.
-
indexAll
void indexAll(Class<?> beanType)
Update the document store for all beans of this type.This is the same as indexByQuery where the query has no predicates and so fetches all rows.
-
find
@Nullable <T> T find(DocQueryContext<T> request)
Return the bean by fetching it's content from the document store. If the document is not found null is returned.Typically this is called indirectly by findOne() on the query.
Customer customer = database.find(Customer.class) .setUseDocStore(true) .setId(42) .findOne();
-
findList
<T> List<T> findList(DocQueryContext<T> request)
Execute the find list query. This request is prepared to execute secondary queries.Typically this is called indirectly by findList() on the query that has setUseDocStore(true).
List<Customer> newCustomers = database.find(Customer.class) .setUseDocStore(true) .where().eq("status, Customer.Status.NEW) .findList();
-
findPagedList
<T> PagedList<T> findPagedList(DocQueryContext<T> request)
Execute the query against the document store returning the paged list.The query should have
firstRow
ormaxRows
set prior to calling this method.Typically this is called indirectly by findPagedList() on the query that has setUseDocStore(true).
PagedList<Customer> newCustomers = database.find(Customer.class) .setUseDocStore(true) .where().eq("status, Customer.Status.NEW) .setMaxRows(50) .findPagedList();
-
findEach
<T> void findEach(DocQueryContext<T> query, Consumer<T> consumer)
Execute the query against the document store with the expectation of a large set of results that are processed in a scrolling resultSet fashion.For example, with the ElasticSearch doc store this uses SCROLL.
Typically this is called indirectly by findEach() on the query that has setUseDocStore(true).
database.find(Order.class) .setUseDocStore(true) .where()... // perhaps add predicates .findEach((Order order) -> { // process the bean ... });
-
findEachWhile
<T> void findEachWhile(DocQueryContext<T> query, Predicate<T> consumer)
Execute the query against the document store with the expectation of a large set of results that are processed in a scrolling resultSet fashion.Unlike findEach() this provides the opportunity to stop iterating through the large query.
For example, with the ElasticSearch doc store this uses SCROLL.
Typically this is called indirectly by findEachWhile() on the query that has setUseDocStore(true).
{@code database.find(Order.class) .setUseDocStore(true) .where()... // perhaps add predicates .findEachWhile(new Predicate
() {
-
findEach
void findEach(String indexNameType, String rawQuery, Consumer<RawDoc> consumer)
Find each processing raw documents.- Parameters:
indexNameType
- The full index name and typerawQuery
- The query to executeconsumer
- Consumer to process each document
-
findEachWhile
void findEachWhile(String indexNameType, String rawQuery, Predicate<RawDoc> consumer)
Find each processing raw documents stopping when the predicate returns false.- Parameters:
indexNameType
- The full index name and typerawQuery
- The query to executeconsumer
- Consumer to process each document until false is returned
-
process
long process(List<DocStoreQueueEntry> queueEntries) throws IOException
Process the queue entries sending updates to the document store or queuing them for later processing.- Throws:
IOException
-
dropIndex
void dropIndex(String indexName)
Drop the index from the document store (similar to DDL drop table).DocumentStore documentStore = database.docStore(); documentStore.dropIndex("product_copy");
-
createIndex
void createIndex(String indexName, String alias)
Create an index given a mapping file as a resource in the classPath (similar to DDL create table).DocumentStore documentStore = database.docStore(); // uses product_copy.mapping.json resource // ... to define mappings for the index documentStore.createIndex("product_copy", null);
- Parameters:
indexName
- the name of the new indexalias
- the alias of the index
-
indexSettings
void indexSettings(String indexName, Map<String,Object> settings)
Modify the settings on an index.For example, this can be used be used to set elasticSearch refresh_interval on an index before a bulk update.
// refresh_interval -1 ... disable refresh while bulk loading Map<String,Object> settings = new LinkedHashMap<>(); settings.put("refresh_interval", "-1"); documentStore.indexSettings("product", settings);
// refresh_interval 1s ... restore after bulk loading Map<String,Object> settings = new LinkedHashMap<>(); settings.put("refresh_interval", "1s"); documentStore.indexSettings("product", settings);
- Parameters:
indexName
- the name of the index to update settings onsettings
- the settings to set on the index
-
copyIndex
long copyIndex(Class<?> beanType, String newIndex)
Copy the index to a new index.This copy process does not use the database but instead will copy from the source index to a destination index.
long copyCount = documentStore.copyIndex(Product.class, "product_copy");
- Parameters:
beanType
- The bean type of the source indexnewIndex
- The name of the index to copy to- Returns:
- the number of documents copied to the new index
-
copyIndex
long copyIndex(Class<?> beanType, String newIndex, long sinceEpochMillis)
Copy entries from an index to a new index but limiting to documents that have been modified since the sinceEpochMillis time.To support this the document needs to have a
@WhenModified
property.long copyCount = documentStore.copyIndex(Product.class, "product_copy", sinceMillis);
- Parameters:
beanType
- The bean type of the source indexnewIndex
- The name of the index to copy to- Returns:
- the number of documents copied to the new index
-
copyIndex
long copyIndex(Query<?> query, String newIndex, int bulkBatchSize)
Copy from a source index to a new index taking only the documents matching the given query.// predicates to select the source documents to copy Query<Product> query = database.find(Product.class) .where() .ge("whenModified", new Timestamp(since)) .ge("name", "A") .lt("name", "D") .query(); // copy from the source index to "product_copy" index long copyCount = documentStore.copyIndex(query, "product_copy", 1000);
- Parameters:
query
- The query to select the source documents to copynewIndex
- The target index to copy the documents tobulkBatchSize
- The ElasticSearch bulk batch size, if 0 uses the default.- Returns:
- The number of documents copied to the new index.
-
-


Survey - Tell Us About Yourself!
Your full name please:
What is your favorite color?
What is your least favorite color?
What is your birthday?

Dog person
Cat person
Neither
Submit!
Verify your results!


Case Study in Yelp Reviews using Spark ML
Problem Statement
To predict the user id of a Yelp Review based on the content of the review. I have done this by building classification models based on past yelp data. Pyspark libraries with Spark 2.4 and Python 3.6.6 :: Anaconda, Inc. are used to cleanse and analyze the data. I executed the jupyter notebook on a CentoOS 7 VM with 16GB Ram, 8 processor cores.
Data Set:
The Yelp collection of reviews can be downloaded from the Kaggle website.
The data file of interest is:
File Name: yelp_academic_dataset_review.json
File Size: 4.39GB
File Format: JSON
Data Exploration
The data contains 6 million rows with 9 columns. Star counts show that on average, the reviews are generally positive, with maximum of reviews being 5 stars.
The plots below show that 90% of users have less than 5 reviews. There is a small peak at 30 reviews as it represents all users having 30 or more reviews.
The jupyter notebook containing code for data exploration and visualization is here.
Model Analysis
I created logistic regression and naive bayes models with count features, TFIDF features, and TFIDF features combined with n-grams. The highest test set accuracy was 80% for logistic regression with uni-gram and bi-gram TFDIF matrix.
The code below creates a TFIDF matrix of 1 word and 2 word combinations that occur in atleast 10 documents, to a maximum of 1000. Models are trained on the combined features, and test instance predictions are made. Jupyter notebook containing code for all models is here.
Pipline with TFIDF and N-grams:
%%time
reviewsTF = HashingTF(inputCol="words", outputCol="rawFeatures_1", numFeatures=10000)
reviewsIdf = IDF(inputCol="rawFeatures_1", outputCol="features_1", minDocFreq=10)
ngram = NGram(n=2, inputCol="words", outputCol="ngrams_2")
reviewsTF2 = HashingTF(inputCol="ngrams_2", outputCol="rawFeatures_2", numFeatures=10000)
reviewsIdf2 = IDF(inputCol="rawFeatures_2", outputCol="features_2", minDocFreq=10)
pipeline1 = Pipeline(stages=[reviewsTF , reviewsIdf])
pipeline2 = Pipeline(stages=[ngram, reviewsTF2 , reviewsIdf2])
finalPipeline = Pipeline(stages=[regexTokenizer,pipeline1, pipeline2,
VectorAssembler(inputCols=["features_1", "features_2"], outputCol="features"),label_userID
])
pipelineTFIDF2Fit = finalPipeline.fit(top_user_reviews)
top_user_reviews_TFIDF2_features = pipelineTFIDF2Fit.transform(top_user_reviews)
(train_TFIDF2_Reviews, test_TFIDF2_Reviews) = top_user_reviews_TFIDF2_features.randomSplit([0.8, 0.2], seed = 12345)
Logistic Regression
Naive Bayes
Conclusion
I was surprised that a simple model as logistic regression could give an accuracy of 80% for 76 classes, with just 600 reviews per review. The highest accuracy was achieved when bigrams were included which is expected as users would have unique ways of combining two words together. I did not remove stopwords in this case as how common words are used tell us more about the writing pattern of a user than specific topical words. My assumption is trigrams will improve the accuracy further or it could possibly overfit. Regardless, that would generate a very sparse matrix, which would need to be reduced using LDA for the algorithm to run faster.
References:
Apache Spark ML main guide.
Multi-class classification in Spark.


If not please notify and update your latest laptop number to your SUPERVISORPlease try after some time.


Represents a null terminated string.
This implementation is uses pointers to null terminated character arrays. Reference counts are not used. Characters are "char"s, not "wchar_t"s in the "C" locale.
| String() | Constructors. |
| append() | Append to string. |
| capacity() | Returns capacity of string (not including terminator) |
| compareTo() | Case sensitive comparison |
| ensureCapacity() | Make sure buffer is big enough. |
| equals() | Case sensitive comparison for equality |
| equalsIgnoreCase() | Case insensitive comparison for equality. |
| indexOf() | Finds first occurrance of character or string. |
| lastIndexOf() | Finds last occurrance of character or string. |
| length() | Return length to terminator |
| operator(char*)() | char* conversion |
| operator+() | String concatenation operators. |
| operator=() | Assignment operators. |
| operator==() | Comparison operators for strings. |
| startsWith() | Tells if this string starts with the given string. |
| substring() | Extracts a substring. |
| toLowerCase() | Convert String to lower case. |
| toUpperCase() | Convert String to upper case. |
| ~String() | Destructor |
String( const int length=0 )
String( const String& str );
String( const char* psz );
String( const char* ps, const int len );
Constructors. Parameters specify an initial string in one of a variety of formats or give an integer for the initial capacity.
void append( const String& str) inline
void append( const char* psz )
void append( char ch )
Append to string.
int capacity() const inline;
Returns capacity of string (not including terminator)
int compareTo( const String& str ) const
int compareTo( const char* psz ) const
Case sensitive comparison
void String::ensureCapacity( int len )
Make sure buffer is big enough.
bool equals( const char* psz ) const
bool equals( const String& str ) const
Case sensitive comparison for equality
bool equalsIgnoreCase( const char* psz ) const
bool equalsIgnoreCase( const String& str ) const
Case insensitive comparison for equality.
int indexOf( char ch ) const
int indexOf( const char* psz ) const
int indexOf( const String& str ) const
Finds first occurrance of character or string.
int lastIndexOf( char ch ) const
int lastIndexOf( const char* psz ) const
int lastIndexOf( const String& str ) const
Finds last occurrance of character or string.
int String::length() const
Return length to terminator
operator const char*() const inline;
char* conversion
char* + String
String + String
String + char*
String concatenation operators.
(String) = (String);
(String) = (char *);
(String) = (char);
Assignment operators.
(String) <op> (String)
(String) <op> (char*)
(char*) <op> (String)
Comparison operators for strings. These are case sensitive and not localized.
There are a complete set of comparison operators for String's and char*'s. Operators are: ==, !=, <=, >=, <, and >.
bool startsWith( const char* psz ) const
bool startsWith( const String& str ) const
Tells if this string starts with the given string. Case dependent.
String substring( int start ) const
String substring( int start, int end ) const
Extracts a substring.
Extracts from the start index to just before the end index. If no end index is given, extracts to the end of the string. The indices must be contained within the string and end>=start.
void String::toLowerCase()
Convert String to lower case. Current c locale is used.
void String::toUpperCase()
Convert String to upper case. Current c locale is used.
String::~String()
Destructor


Instructions
Regex
To use regex matching in URLs, check the "Use Regex" box on the Edit Mappings page. The incoming URL can now contain a regular expression, e.g.:
^http[s]?://.*\.40fingers\.net.*$
will match any url on http or https for 40fingers.net or any subdomain.
02.02
- Bugfix (.07)
- Fixes for DNN9.x (.06)
- Edit-page bugfixes
- Secured the services
- Non-existant static files now return 404 (DNN gives 200)
- Changed edit pages from postbacks to services
02.01.00
- Changed config retreval to be used without cache
- tab-url's are now stored too
02.00.00
- Added top-5 list of unhandled 404's
- Option to handle top-5 urls
- Option to redirect to tabid
01.02.06
01.02.04
- Stuff to make it work with Advanced URLs in DNN.
- Slight change for fail safety in HttpModule.
01.01.01
- Only in case of incoming 404: Return Status 404 for not mapped requests.
01.01.0
- Return Status 404 for not mapped requests.
01.00.00
- Configure redirects for known URLs
- Configuration stored in xml file under portal root
- Includes HTTPModule to redirect pages that DNN redirects to the website root. To use: add the following to HttpModules in web.config, BEFORE the UrlRewriter:
<add name="SeoRedirectModule" type="FortyFingers.SeoRedirect.Components.SeoRedirectModule, 40Fingers.DNN.Modules.SeoRedirect" preCondition="managedHandler" />
- Includes regular expression option