Implementing Progress Bar in PSLab App
This blog is a step by step guide on how to make a functional progress bar in an Android app by taking an example of the progress bar implemented in PSLab Android application. The example is based on my work done in PSLab Android repository under PR #1077 and so it will only demonstrate making a simple progress bar (both linear and circular) and not the one showing progress in percentage too.
How progress bar was implemented in the PSLab app?
Both horizontal and circular progress bar is available in the Material Design Library provided by Google in Android Studio. So, no extra dependencies are needed.
Just drag and drop the progress bar of whichever shape necessary i.e. circular or horizontal, directly on the screen available in the Design tab as shown in Figure 1.
Figure 1. Design tab in Android Studio
There are two ways to use the progress bar available in the Material Design Library.
 - To show a loading screen
 - To show the progress of a process
Loading Screen
Loading Screens are used when the time that will be taken by the process is not known. So, an indeterminate circular progress bar is used to show that some process is going on and so the user needs to wait.
Layout
A circular progress bar is used for this process and so drag and drop the circular progress bar as shown in figure 1. Now set the position, height, and width of the progress bar in the layout as necessary. To set the color of the progress bar, use attribute android:indeterminateTint
Backend
To implement this type of functionality, use the setVisibility function to show the progress bar while some process is taking place in the backend and immediately remove it as soon as the result is ready to be displayed. To make the progress bar visible use progressBar.setVisibility(View.VISIBLE) and to make it invisible use progressBar.setVisibility(View.GONE)
Showing Progress
This is a very common type of process and is used by most of the apps. A horizontal progress bar is used to show the actual progress of the process taking place in the backend on a scale of 0-100 (the scale may vary) where 0 means the process hasn't started and 100 means the result is now ready to be displayed.
Layout
Horizontal Progress bars are used for this type of usage. So, drag and drop the horizontal progress bar as shown in figure 1. Now set the position, height, and width of the progress bar in the layout as necessary. Different styles of the progress bar can be found in the documentation [1].
Backend
Initially, set the progress of the bar to 0 as no process is taking place by using method setProgress(). Now as soon as the process starts, to increase the progress by a fixed value, use progressBar.incrementProgressBy() method and to set the progress directly, use progressBar.setProgress() method.
So in this way, a progress bar can be implemented in an Android application. Other features like adding custom designs and animations can be done by making the necessary shapes and animations respectively and using the functions available in the documentation [1].
Resources
 1. _URL_ – Documentation of Progress Bar

Continue ReadingImplementing Progress Bar in PSLab App
Making custom dialog boxes in PSLab app
This blog covers the topic of how to create custom dialog boxes in an Android app by taking an example of how it was implemented in PSLab Android application. The custom dialog box that will be illustrated in this blog will have a layout similar to that from my PR feat: added a guide for Logic Analyzer Instrument using Alert Dialog Box in PSLab Android repository. But all the main functionalities that can be added to a custom dialog will be illustrated in this blog.
How custom dialog was implemented in the PSLab app?
 - The first step is to make a layout for the custom dialog box. The layout of custom dialog should be such that it shouldn't occupy the whole screen as the idea here is to overlay the dialog over the activity and not replace the whole activity with the dialog layout. The layout can be implemented by using the following attributes :
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="_URL_
 android:layout_width="match_parent"
 android:layout_height="match_parent">
 <RelativeLayout
 android:layout_width="match_parent"
 android:layout_height="wrap_content">
 <TextView
 android:id="@+id/custom_dialog_text"
 android:layout_width="match_parent"
 android:layout_height="wrap_content"/>
 <ImageView
 android:id="@+id/custom_dialog_schematic"
 android:layout_width="wrap_content"
 android:layout_height="@dimen/schematic_height" />
 <TextView
 android:id="@+id/description_text"
 android:layout_width="match_parent"
 android:layout_height="wrap_content" />
 <CheckBox
 android:id="@+id/toggle_show_again"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content" />
 <RelativeLayout
 android:layout_width="match_parent"
 android:layout_height="wrap_content"
 android:layout_below="@id/toggle_show_again">
 <Button
 android:id="@+id/dismiss_button"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content" />
 </RelativeLayout>
 </RelativeLayout>
</ScrollView>
The result of the above layout after adding proper margins and padding is as shown in figure 1.
Figure 1. The output of the layout made for custom dialog
 - Now as the layout is ready, we can focus on adding Java code to inflate the layout over a particular activity. Make a function in the activity or the fragment in which the custom dialog is to be inflated. Add the following code (if the layout is same as that in PSLab app else modify the code as per the layout) in the function to display the custom dialog box.
public void howToConnectDialog(String title, String intro, int iconID, String desc) {
 try {
 final AlertDialog.Builder builder = new AlertDialog.Builder(getContext());
 LayoutInflater inflater = getLayoutInflater();
 View dialogView = inflater.inflate(R.layout.custom_dialog_box, null);
 // Find and set all the attributes used in the layout and then create the dialog as shown

 builder.setView(dialogView);
 builder.setTitle(title);
 final AlertDialog dialog = builder.create();
 ok_button.setOnClickListener(new View.OnClickListener() {
 @Override
 public void onClick(View v) {
 dialog.dismiss();
 }
 });
 dialog.show();
 } catch (Exception e) {
 e.printStackTrace();
 }
}
Here, the LayoutInflater inflates the custom dialog layout in the Alertdialog builder. The Alertdialog builder is used to hold and set values for all the views present in the inflated layout. The builder then creates a final custom dialog when builder.create() method is called. Finally, the dialog is shown by calling method dialog.show() and is dismissed by calling method dialog.dismiss().
 - Now the dialog box is ready and it will be inflated when the above method is called. But the "Don't show again" checkbox currently has no functionality and so the dialog box will pop up although "Don't show again" checkbox is ticked mark by the user. For adding this functionality, we will need to use Shared Preferences to save the state of the dialog box. For using Shared Preferences, first, add the following lines of code in the above method
final SharedPreferences settings = getActivity().getSharedPreferences(PREFS_NAME, 0);
Boolean skipMessage = settings.getBoolean("skipMessage", false);
The PREFS_NAME is the key to distinctly identify the state of the given dialog box from the stored state of many dialog boxes (if any). A suggested key name is "customDialogPreference". The skipMessage is a boolean used here to check the state if the dialog box should be inflated or not.
Now format the onClickListener of the OK button with the following code :
Boolean checkBoxResult = false;
if (dontShowAgain.isChecked())
 checkBoxResult = true;
SharedPreferences.Editor editor = settings.edit();
editor.putBoolean("skipMessage", checkBoxResult);
editor.apply();
dialog.dismiss();
The following code checks the state of "Don't show again" dialog and then inflates the custom dialog if applicable. If the checkbox is ticked mark then


text:
American Heritage® Dictionary of the English Language, Fourth Edition
- adj. Informal Other. Usually used in the phrase a whole nother, as in the sentence That's a whole nother story.
Century Dictionary and Cyclopedia
- Same as neither.
- pro. Caribbean Neither.
- adj. Caribbean Neither.
- adv. obsolete Nor.
- pro. obsolete Another.
- adj. Different, other. (Now usually in a whole nother)
GNU Webster's 1913
- conj. obsolete Neither; nor.
- adj. Other; -- variant spelling used mostly in the phrase a whole nother (i. e., a completely different), as though formed by splitting the word "another".
- Variant of other, showing metanalysis. (Wiktionary)
- From alteration of another (interpreted as a nother). (American Heritage® Dictionary of the English Language, Fourth Edition)
"Cause I should expect you'd give me somethin 'nother and make a great man of me!"
"But he presently heard the door of the locked room open, a man's voice, slightly elevated by liquor and opposition, saying, "I know what's due from one gen'leman to 'nother" -- a querulous, objecting voice saying,"
"To the ranter who whines about people saying" nother "- learn the difference between"
"However, even though you would probably not like to acknowledge it, we have a whole "nother" half of our state to the east."
"Then there's the issue of bands who were one-hit wonders in the U.S. (or two-hit wonders) but are known on a whole nother level ( "nother" should be a world) in the UK."
"Thursday, April 12, 2001 x 2 - Key word here is 'nother"
"He was great source of worriment to my Mammy, ole lady Lucy Price and 'nother 'oman, ole lady Lucy Charles."
"He shall pay that cent one way or 'nother 'fore he gets through."
"Don't eat with yer fingers -- don't grab no vittles off one 'nother's plates; don't reach out for nothin', but wait till yer asked, 'n' if you never _git_ asked don't git up and grab it."
"Don't eat with yer fingers -- don't grab no vittles off one 'nother's plates; don't reach out for nothin', but wait till yer asked, 'n if yer never git asked don't git up and grab it -- don't spill nothin' on the table cloth, or like's not Mis 'Bird' ll send yer away from the table."
These user-created lists contain the word 'nother'.
Ever play "Words With Friends" with someone and they throw down some strange, unlikely group of letters that makes even the most mild and squeaky clean tongued person say "whiskey tango foxtrot"?...
Anything with to do with the word "other," or any sort of otherness (including words with the letters o-t-h-e-r, in that order, in their definitions).
misspellings i like
Looking for tweets for nother.

source: HuggingFaceFW/fineweb-edu


text:
This is for meditating on the trumps only.
1. Don't use intense concentration
2. Let your mind wander up and down and through the card
3. First have your eyes open, then have your eyes closed.
4. Build the image of the card in your mind without stepping into it.
5. Then step into the card, feel the ground, temperature, smell the smells
6. Set the card up about 10 feet away from you, take three steps towards it, imagine yourself walking into the card, sit behind it and meditate on being inside it, then walk out of the card.
If there is a path on the card, walk your way up it. Work your way through the card
Dissolve the physical forms and concentrate on the powers and energies of the card.
Once inside the card turn around and look back out, it will give you a different perspective. Write your experiences down and meditate on them.
IN -> Forms -> Energies -> Out
It doesn't have to be for a long time.
Meditate on the card before you go to sleep. It can make you dream about the card. Look at it again as soon as you wake up. Write down your dream and meditate on it.
When inside the card ask the people for advice if you wish. Pick a card that feels relevant to your problem.
Copyright © by The Book of THOTH - The complete guide to the Tarot, Magick and the Occult All Right Reserved.

source: openbmb/Ultra-FineWeb


New Project Proposals
Twice each year the Committee on Scope and Program of the Uniform Law Commission ("ULC") solicits proposals for new study and drafting projects. While many of our project proposals come from uniform law commissioners, we also encourage outside groups and individuals to submit proposals. The following guidelines are derived from the ULC's "Statement of Policy Establishing Criteria and Procedures for Designation and Consideration of Uniform and Model Acts" and are intended to assist those submitting proposals to better anticipate the kinds of questions that typically arise when the Committee on Scope and Program is considering a proposed new project. To the extent possible, in addition to submitting a description of the proposed project, address the following questions:
Is uniformity of state law for the proposed subject matter desirable and realistic?
While not every ULC act is uniformly adopted verbatim by all states of the United States (including the District of Columbia, Puerto Rico, and the United States Virgin Islands), we do focus on acts that (directly or indirectly) will promote uniformity among the states in their respective subject matter areas. The ULC generally avoids subjects that are of purely local concern or which are unlikely to be widely enacted because of political differences among the states.
Please address whether widespread enactment of the proposal would produce significant benefits to the public. Acts that reduce uncertainty or compliance costs because the law is made uniform among the states or which respond to a need common to a number of states generally produce such results. Legislation drafted by the ULC avoids the need for each state to develop its own solution. Consider whether the proposed project will:
(a) Facilitate the flow of commercial and other transactions across state lines?
(b) Reduce or eliminate conflicts of law arising when the law of more than one state might apply?
(c) Fill an emergent need, modernize an antiquated concept, or codify the common law?
What have the states already done with regard to this subject?
Information about existing state statutes and ongoing trends is very helpful. Conversely, the ULC tends to avoid subjects that are entirely novel in character.
Does the proposed project require changes in federal laws or regulations?
This is an important question because the ULC works exclusively in subject matter areas that are appropriate for state legislation.
What organizations or interest groups are likely to have an interest in the subject matter of the proposed project and are they likely to support or oppose a uniform or model act in this area?
The ULC strives to produce balanced, enactable legislation. Therefore, it is important to identify the appropriate stakeholders and assess whether they are willing to participate in the development of a proposed project.
Are there resources available to support the development of the proposed project?
The development of a uniform or model act generally requires a minimum of one year of study and two years of drafting meetings. The identification of an existing source of expertise with regard to a particular subject and/or the availability of outcome-neutral financial support (from a government or foundation source) is helpful information.
(Revised August 2010)


Take the 2-minute tour ×
I am making a "halo" shader in unity using GLSL. And I've come to a roadblock.
What I need to do is take a texture, like the following, and make it transparent according to the darkness of it. And I don't want a cutout, because that cuts it off at a hard edge.
Default particle
This line of code doesn't seem to work.
gl_FragColor = texture2D( vec4( _MainTex.r, _MainTex.g, _MainTex.b, _MainTex.a), vec2(textureCoordinates));
share|improve this question
1 Answer 1
Normally you store the transparency of a texture in the alpha channel, you can use an external editor like Paint.Net (free) or Photoshop to edit the alpha channels of a picture.
However since you're using shaders there is another trick you can do. A color is totally black if all it's color channels (R/G/B) are 0. It's gray when it's 128/128/128 and white when it's 255/255/255. If you want to determine the blackness you can take the average of the RGB channels, however a picture with bright red but no green or blue will still mean 'pretty black' and will still be 2/3rds transparent. However just try it for fun change your blend shader code to and see how it looks:
float blackness = (_Maintex.r + _Maintex.g + _Maintex.b) / 3.0;
gl_FragColor = texture2D( vec4( _MainTex.r, _MainTex.g, _MainTex.b, blackness), vec2(textureCoordinates));
share|improve this answer
I'd call that luminance or gray level or something, not 'blackness' (it's actually more like 'whiteness', since it's 0 for black and 1 for white). – Nathan Reed Jun 10 '12 at 5:20
Your Answer


Appliance and Equipment Performance with Hydrogen-Enriched Natural Gases
Citation
 - Suchovsky, C.J., Ericksen, L., Williams, T.A., Nikolic, D.J. (2021). Appliance and Equipment Performance with Hydrogen-Enriched Natural Gases. Canadian Standards Association, Toronto, ON.
Executive Summary
Mixing of hydrogen into natural gas, as a means of mitigating environmental concerns associated with the use of fossil fuels, poses a question of performance of appliances designed for use with natural gas, when fuelled by blends of hydrogen and natural gas. This study examines the performance of space and water heating appliances fuelled by methane as a natural gas proxy, and methane/hydrogen blends containing up to 15% hydrogen. The appliances were tested for input rate, ignition and burner operating characteristics, combustion products properties, and gas leakage, using three gas mixtures (pure methane, 5% hydrogen/methane blend, and 15% hydrogen/methane blend mixtures) per applicable CSA/ANSI Z21 series Standards. Effects of gas composition on furnaces were also tested for temperature rise and heating tube temperatures. Condensing appliances were additionally assessed for dew point temperatures and acidity. Overall, appliances showed no major operable issues and consistent trends of decreased heat output and CO2 emissions with increase of hydrogen content in methane/hydrogen blends. Consequently, to meet the same heat demand, the appliances would need to operate for longer periods which would result in additional carbon dioxide emissions. However, the overall CO2 emissions for the same heat output are still expected to be lower with the use of blends compared to natural gas. Carbon monoxide and nitrogen oxide measurements were in the acceptable ranges regardless of the type of fuel used. No consistent trends were observed for other measured properties, indicating that hydrogen mixtures up to 15% do not significantly affect these parameters. Future testing of gas blends containing 5% and 15% of hydrogen as examined herein, as well as higher hydrogen amounts, ought to incorporate natural gases to determine more representative results.


object. The default (when no nisplusLDAPentryTtl is specified) is 1 hour. The template mapping file /var/nis/NIS+LDAPmapping.template changes this to 12 hours for objects other than table entries. However, there is no auto-recognition of non-entry objects, so if you add mapping for a non-entry object, the TTL will default to 1 hour.
Note - There are no TTLs for nonexistent objects. Hence, no matter which TTLs are in effect for LDAP-mapped entries in an NIS+ table, a request for an entry that does not exist in NIS+ will query LDAP for that entry.
nisplusLDAPobjectDN Attribute
For each mapped NIS+ object, nisplusLDAPobjectDN establishes the location in the LDAP DIT where the object data resides. It also allows specification of the action to take when an LDAP entry is deleted. Each nisplusLDAPobjectDN value has three parts. The first specifies where LDAP data is read from, the second to where it is written, and the third what should happen when LDAP data is deleted. Refer to the following example.
nisplusLDAPobjectDN rpc_table:\
The above example shows that the rpc.org_dir table object should be read from the DN cn=rpc,ou=nisPlus, (since the value ends in a comma, the value of the defaultSearchBase attribute is appended), with scope base, and that entries with a value of nisplusObjectContainer for the ObjectClass attribute are selected.
The table object is written to the same place. The delete specification is missing, which implies the default action, which is as follows. If the NIS+ table object is deleted, the entire LDAP entry should also be deleted.
If data should be read from, but not written to LDAP, omit the write portion (and the colon separating it from the read part).
nisplusLDAPobjectDN rpc_table:\
Note that the nisplusObjectContainer object class is not part of RFC 2307. In order to use it, you must configure your LDAP server as detailed in Mapping NIS+ Objects Other Than Table Entries.
For the rpc.org_dir table entries, you could use the following example.
nisplusLDAPobjectDN rpc:ou=Rpc,?one?objectClass=oncRpc:\
The above shows that the table entries are read from and written to the base ou=Rpc. Again, the trailing comma appends the defaultSearchBase value. Select entries that have an objectClass attribute value of oncRpc. When creating an entry in the ou=Rpc container in LDAP, you also must specify top as an objectClass value.
As an example showing a non-default delete specification, consider the following.
nisplusLDAPobjectDN user_attr:\
The user_attr.org_dir data resides in the ou=People LDAP container, which it shares with account information from other sources, such as the passwd.org_dir NIS+ table.
Select entries in that container that have the solarisAttrKeyValue attribute, since only those contain user_attr.org_dir data. The dbid=user_attr_del portion of the nisplusLDAPobjectDN shows that when an entry in the user_attr.org_dir NIS+ table entry is deleted, deletion of the corresponding LDAP entry (if any) should follow the rules in the rule set identified by the user_attr_del database ID. See nisplusLDAPcolumnFromAttribute Attribute for more information.
nisplusLDAPattributeFromColumn Attribute
nisplusLDAPattributeFromColumn specifies the rules used to map NIS+ data to LDAP. Mapping rules for the other direction is controlled by nisplusLDAPcolumnFromAttribute.
nisplusLDAPcolumnFromAttribute Attribute
nisplusLDAPcolumnFromAttribute specifies the rules used to map LDAP data to NIS+.
The full entry mapping syntax can be found on NIS+LDAPmapping(4). However, a few examples should make things clearer.
The NIS+ rpc.org_dir table contains four columns called cname, name, numbe, and comment. Therefore, the entries for the NIS+ RPC program number (100300) with the canonical name nisd and the aliases rpc.nisd and nisplusd could be represented by the following NIS+ entries in rpc.org_dir.
nisd nisd 100300 NIS+ server
nisd rpc.nisd 100300 NIS+ server
nisd nisplusd 100300 NIS+ server
Assuming the defaultSearchBase value is dc=some,dc=domain, the corresponding LDAP entry, as listed by ldapsearch(1), would be the following.
dn: cn=nisd,ou=Ppc,dc=some,dc=domain
cn: nisd
cn: rpc.nsid
cn: nisplusd
oncRpcNumber: 100300
description: NIS+ server
objectClass: oncRpc
This makes for a simple one-to-one mapping between NIS+ and LDAP data, and the corresponding mapping attribute value going from NIS+ to LDAP is the following.
nisplusLDAPattributeFromColumn \
rpc: dn=("cn=%s,", name), \
 cn=cname, \
 cn=name, \
 oncRpcNumber=number, \
This constructs the DN for the entry to be cn=%s, with the value of the cname column substituted for %s.
Since the value ends in a comma, the read base value from the nisplusObjectDN is appended, and you have the following.
The oncRpcNumber and description attribute values are just simple assignments of the corresponding NIS+ column values. The rpc.nisd will collect the multiple NIS+ entries into one LDAP entry, with multiple cn values to represent the different name column values.
Similarly, the mapping from LDAP to NIS+ would be as follows.
nisplusLDAPcolumnFromAttribute \
 rpc: cname=cn, \
 (name)=(cn), \
 number=oncRpcNumber, \
The above assigns the oncRpcNumber and description values to the corresponding NIS+ columns. The multi-valued cn (denoted by (cn) is mapped to multiple name column values (denoted by (name)). Since the name column cannot be multi-valued, the rpc.nisd creates one NIS+ entry for each cn value.
Finally, the nisplusLDAPattributeFromColumn value is an example of rule sets used for deletion.
nisplusLDAPattributeFromColumn \
user_attr_del: dn=("uid=%s,", name), \
 SolarisUserQualifier=, \
 SolarisAttrReserved1=, \
 SolarisAttrReserved2=, \
Again, the user_attr.org_dir data shares the ou=People container with other account information (from the passwd.org_dir and other tables). If an entry in the user_attr.org_dir table is deleted, you probably do not want to delete the entire ou=People entry. Instead, the delete entry above says that when a user_attr.org_dir entry is deleted, the SolarisUserQualifier, SolarisAttrReserved1, SolarisAttrReserved2, and SolarisAttrKeyValue attributes (if any) are deleted from the ou=People entry specified by the following rule.
The rest of the LDAP entry is left unchanged.
NIS+ to LDAP Migration Scenarios
Likely scenarios for a migration from NIS+ to LDAP include the following.
How to Convert All NIS+ Data to LDAP in One Operation
How to Convert All LDAP Data to NIS+ in One Operation
Merging NIS+ and LDAP Data
NIS+ to LDAP Migration Scenarios showed how to synchronize NIS+ and LDAP data when data conflicts between the two should be resolved by letting either the NIS+ or the LDAP data be authoritative. Merging data requires a more complicated procedure.
The example procedure in this section assumes the following.
How to Merge NIS+ and LDAP Data
Caution - If the LDAP data should change between the download in Step 4 and the upload in Step 10, the upload might overwrite those changes. For this reason, you should try to prevent modifications to the LDAP data during this procedure. Consult your LDAP server documentation for more information.
 1. Back up all NIS+ data using the nisbackup command.
 # nisbackup -a /nisbackup
 2. Identify the NIS+ tables that have data which must be merged with LDAP. Dump the contents of these tables to flat files. For example, dump the contents of group.org_dir by using nisaddent as follows.
 # nisaddent -d group | sort > /before/group
 Piping the nisaddent output to sort will make for convenient comparison later on.
 3. Download LDAP data to NIS+.
 # /usr/sbin/rpc.nisd -D -m tmpmap \
 -x nisplusLDAPinitialUpdateAction=from_ldap \
 -x nisplusLDAPinitialUpdateOnly=yes
 4. Start the NIS+ service.
 # svcadm enable network/rpc/nisplus:default
 The rpc.nisd daemon will now be serving the data downloaded from LDAP. If the conflicts to be resolved are such that NIS+ clients should not be exposed to them, make sure to perform this and the following steps when there are few (preferably no) active NIS+ clients.
 5. Dump the NIS+ data for the affected tables.
 The following example uses the group.org_dir table.
 # nisaddent -d group | sort > /after/group
 6. Create merged versions of the tables.
 Use the file merge procedure of your choice to produce the


Donaldsonville is a treasure trove of history. Here are just a few of the places you can visit:
Blemannbroc 1900
Museumext1 River Road African American Museum, located at 406 Charles St., is dedicated to collecting, perserving, exhibiting, and interpreting art, artifacts and buildings pertaining to the history and culture of rural communities along the Mississippi River. Website:.
Historic Fort Butler Commemorative Site, viewable along Veterans Blvd., was a pivotal Civil War site build to guard the confluence of the Mississippi River and Bayou Lafourche. It was a star-shaped, log-and-earth construction, built and defended by area African-American slaves turned soldiers. Fort _butler
011 Ascension Parish Courthouse Ascension Parish Courthouse, located at 300 Houmas St., dates back to 1889. It is one of many historically significant buildings in the historic downtown area.
Ascension of Our Lord Church - 716 Mississippi St., P.O. Box 508, Donaldsonville, LA 70346 - The establishment of the Catholic church pre-dates the city by 50 years. The church's history dates back to 1770s when the original wooden mission chapel was constructed. The present structure was completed in 1896.
Website: .
Louisiana Sq Louisiana Square Park, in front of the Courthouse, includes benches, a war memorial, and fountain.
Crescent Park, facing the Mississippi River, is surrounded by oak trees and wrought-iron fencing.
Ascension Parish Tourism Commission:
The organization promotes the parish and its municipalities as a tourist destination.


Mothers Who Make
Mothers Who Make
Lizzy Humber Producer MWM
 Mothers Who Make is a growing national initiative aimed at supporting mothers who are artists - professional and/or passionate – writers, painters, actors, dancers, musicians, film-makers....every kind of maker is welcomed, and every kind of mother.
MWM was born in London in 2014 with Theatre Maker and Improbable Associate Director, Matilda Leyser. The initiative grew from Leyser's sense of there being experiences and challenges specific to being both a mother and an artist. She noticed many parallels between the two roles: both are concerned with creativity and play, both require stamina, patience, sensitivity, both keep her up at night. At the same time she was struck by the strength of the cultural assumption that the two were incompatible: she was told she must compromise on either her creative work or her mothering. She wanted to challenge this. She put out an invitation to mother-artists, across art forms, to join a peer support group to which they could also bring their children of any age. The response has been extraordinary.
MWM has rapidly spread across the country. There are currently regular peer-support groups meeting at 22 major arts-related venues in different regions, with more groups in the process of starting across the UK in 2019.
How does MWM work?
MWM meetings take place monthly in an arts-related venue. It is critical that the meeting is given the status of a participatory workshop, a rehearsal or class. A local mother-artist acts as a facilitator and participants are supported to exchange and work in a variety of ways. They explore emergent themes in their mothering and their making, points of connection between the two roles, points of dissonance, particular challenges, helpful resources. Examples of recent themes include: how to change and maintain your practice; the positive impact of motherhood on your work; housework – who does it?!
Every MWM meeting models a rare space in which participants are recognized and valued equally in their dual roles of mother and artist. The sessions are adult-centred but children are welcome to attend. Each MWM group shares a common ethos and practice but is able to grow and develop in response to the needs and interests of the regional artists that attend it. We want as many people as possible to be part of the unfolding MWM conversations. We do not seek to define who is a'mother' or an 'artist'. Our reach is across generations and artforms - we are thrilled by the plurality of voices that are part of this discussion.
United Kingdom
Organization Website
info, "Mothers Who Make," Artist Parent Index, accessed May 15, 2021,
Output Formats
Item Relations
This item has no relations.


PK-12 Outreach
School Partnership Projects
Faculty engage in projects with students and teachers throughout Middlesex and Essex counties. Currently, much work is focused on science, technology, math and engineering education (STEM). The UTeach Undergraduate STEM Teacher Preparation program partners with Lowell, Dracut, Chelmsford, Billerica, Greater Lowell Regional Technical High School, and Methuen.
Associate Professor Michaela Colombo, through a grant funded by the US DOE, (PETALLs - Preparing Educators to Teach All Language Learners) works with the Lawrence Public Schools preparing administrators, teachers and para professionals to effectively work with second language learners.
The Principal Preparation program engages with school districts to ensure that new principals are ready to assume the demands of the role. A group of Leadership Fellows from Lawrence, Billerica, Boxborough and Methuen meets regularly with faculty to ensure that our program is current.
Our Elementary Teacher Preparation program partners with several schools in Lowell so that our students have opportunities to use immediately the knowledge and skills they are learning and reflect on their practice.


text:
Colorization Systems for priority Bike Lanes and Bus Lanes
Bike and bus lanes are important components of sustainable street design. Using colored pavement for priority bike & bus lanes enhances safety and usability. Colored pavement helps visually elevate the bike lane or bus lane further defining the space and helping differentiate the dedicated area from the vehicular portion of the road. The coloring is a constant and bold visual reminder to motorists that the priority lanes are present.
The highly visible colored pavement encourages bicycling and the use of transit. As it does in Europe where the colored bike lanes and bus lanes are prevalent, it makes the statement that alternative transportation is important.
StreetBondCL™ is a proprietary coating technology designed for bike lane or bus lane colorization. StreetBondCL™ creates safe, low maintenance and user-friendly bike lanes and bus lanes. Our proprietary asphalt coating technology is color-fast, will not peel or delaminate and is skid & slip resistant. StreetBondCL™ can incorporate StreetBondSR™ solar reflective technology for cool pavements as well.
Lessons to be learned from New York City and Europe
Colored bike lanes and bus lanes have been used in Europe for years. Cities from London to Paris and Amsterdam have comprehensive bike sharing and alternative transportation programs. With the introduction of StreetBondCL™ colorization treatments for bus lane and bike lanes, cities in North America are embracing StreetBondCL™ as a practical, long lasting colorization solution for their alternate transportation requirements.
Visit our project gallery to see examples of StreetBondCL™.
GAF specializes in innovative coating and thermoplastic systems for enhancing asphalt surfaces. Established in 1992 and currently active throughout North America and internationally, GAF is the proven technology leader in its field. Our systems facilitate innovative street and parking lot design and contribute to more livable communities. We not only strive for visual excellence; we design solutions that are durable, practical, safe and sustainable.
Learn more about our Alternate Transportation solutions – click here to Contact Us.

source: m-a-p/FineFineWeb


Postfix logging to file or stdout
Overview
Postfix supports it own logging system as an alternative to syslog (which remains the default). This is available with Postfix version 3.4 or later.
Topics covered in this document:
Configuring logging to file
Logging to file solves a usability problem for MacOS, and eliminates multiple problems for systemd-based systems.
 1. Add the following line to master.cf if not already present (note: there must be no whitespace at the start of the line):
 postlog unix-dgram n - n - 1 postlogd

 Note: the service type "unix-dgram" was introduced with Postfix 3.4. Remove the above line before backing out to an older Postfix version.
 2. Configure Postfix to write logging, to, for example, /var/log/postfix.log. See also the "Logfile rotation" section below for logfile management.
 # postfix stop
 # postconf maillog_file=/var/log/postfix.log
 # postfix start

 By default, the logfile name must start with "/var" or "/dev/stdout" (the list of allowed prefixes is configured with the maillog_file_prefixes parameter). This safety mechanism limits the damage from a single configuration mistake.
Configuring logging to stdout
Logging to stdout is useful when Postfix runs in a container, as it eliminates a syslogd dependency.
 1. Add the following line to master.cf if not already present (note: there must be no whitespace at the start of the line):
 postlog unix-dgram n - n - 1 postlogd

 Note: the service type "unix-dgram" was introduced with Postfix 3.4. Remove the above line before backing out to an older Postfix version.
 2. Configure main.cf with "maillog_file = /dev/stdout".
 3. Start Postfix with "postfix start-fg".
Rotating logs
The command "postfix logrotate" may be run by hand or by a cronjob. It logs all errors, and reports errors to stderr if run from a terminal. This command implements the following steps:
Notes:
Limitations
Background:
Limitations:


text:
Windows 10 is highly customizable and provides plenty of options for adjusting your Start Menu. Start menu can be completely customized including color, size, tiles layout etc.
- Change the size of start menu:
The vertical and horizontal size of start menu in Windows 10 can be changed easily by just moving the cursor on its top or right edges and dragging it in a particular direction. By default, the tile structure in start menu is based on two columns, but the number of columns can be increased or decreased by resizing the start menu horizontally.
- Customizing the tiles:
Tiles in the start menu can also be customized. This can be tile size, turning the live tiles off and removing the tiles from the menu. All of this can be done just by right clicking on any tile you want to customize.
- Changing the start menu color:
Changing the start menu color is pretty easy and straight forward in Windows 10. Right Click on the desktop and choose "Personalize". From "Personalization Settings", select the "Color" option from the left sided list, turn off the "Automatically pick an accent color…" setting and choose another color from the list. To set the color on the start menu and taskbar, turn on "Show color on Start taskbar…" option and there you go.


text:
Crushing fresh potatoes results in the grains of starch being separated from the damaged cells, which is the first step in the production of potato starch. After that, the starch is washed and let aside to dry. When it is completely dry, potato starch takes on the appearance of a fine, flour-like powder.
How do you make potato starch at home?
Make a paper cone by rolling a sheet of paper into a cone and then sticking it into the neck of a tiny glass jar, like a spice jar. After the potato starch has been poured into the jar, the paper lid should be removed and the jar should then be sealed. Store the jar in a cool, dry location with the lid on firmly.
What is potatoes starch?
The smashed potatoes are then processed to remove the starch. The smashed potatoes are rinsed to remove the starch, and then they are dried. Because of its absence of taste and impressive potential for thickening, it is very coveted in the food sector. Even just one teaspoon (12 grams) of potato starch has four benefits, including:
What is potassium potassium starch?
The starch that may be found in potatoes is called potato starch.Potatoes are edible tubers that are produced by the potato plant (Solanum tuberosum), which is a member of the nightshade family.Potatoes are more popularly known as potatoes.It may come as a surprise to find potato starch or potato flour listed as an ingredient in the following products if you carefully study the ingredient labels:
Can you use potato starch as a thickener?
If you are thickening a hot liquid using potato starch, it is essential to avoid bringing the liquid to a boil.Doing so will make it more difficult for the liquid to reach the desired consistency after being thickened.You may bake with it if you add it to warm water beforehand, but make sure not to let it boil.The following are some nutritious recipes for resistant starch that contain potato starch as an ingredient.


text:
If you think you would enjoy a job in healthcare, Medical billing and coding schools in Chugach Heights, AK will allow you to get going right now.
Training programs can be completed in as little as 12 months to 2 years, and graduates immediately become eligible to take the test for professional certification after the programs.
Requirements and Training Schools
Medical Billing and Coding Schools and Requirements
Becoming a Medical Insurance Coding Specialist has a few requirements. You have to meet the minimum age requirement, along with having a H.S. diploma or equivalent.
Leading Medical Coding Programs in Alaska
What You Will Learn in Coding and Billing Schools
As soon as it is the right time to decide on which medical billing and coding school you're likely to attend, there are various details that you could consider looking over. As soon as you begin looking around, you can find a lot of classes, but just what must you try to look for when choosing medical coding and billing certification programs? Definitely, the main aspect of any program is that it needs to have the appropriate official recognition from the Alaska State Board or an organization like the American Health Information Management Association. Although not as vital as the school's accreditation status, you should probably evaluate several of the following factors as well:
- Work placement assistance
- Internet reports of the programs or training school
- Exactly how does the fee for the course look when compared with matching training programs?
Is it a Requirement That One Gets Their Certification?
The AAPC National Advisory Board demands certification for all future CBCSs.
Other useful Accreditations Available Inside the Medical Coding Field
The (RHIA) exam is known as a qualification for the potential to coordinate healthcare information of patients and patient health information and data. The Registered Medical Info Admin accreditation will be able to open more work opportunities mainly because of the range of employment and need for the position.
The CMRS test or Accredited Medical related Reimbursement Specialist assessment, The American Medical Billers Association (AMBA) features this accreditation to have an improved qualifications portfolio meant for work improvements.
(CPC) Certified Professional Coding Credentials
Licensed Pro Coder Payer CPC-P
Certified Professional Coder Apprentice (CPC-A)
Accredited Professional Coder Hospital (CPC-H)
As you have seen there are loads of chances with regard to professional improvement in this helpful fast expanding medicine and health area.
Job and Wages Perspective
Probability for Landing a Job as a Certified Billing Specialist in Alaska
The requirement for new Certified Coding Specialists is predicted to increase substantially per official figures provided by O*Net Online. New job opportunities are predicted to grow faster than average with a significant expansion through the end of the decade. These particular numbers signify a unique chance for anyone who is interested in getting into the nursing profession.
Now You Have the Knowledge Necessary for Success!
With the information we have provided, you should be set to pick out Medical coding and billing schools and become a Medical Coding Specialist!


text:
PURPOSE: To perform effectively oxidation of ferrous ion by treating aq. soln. contg. chlorine and iron with iron bacteria to oxidize to ferric ion and returning the sludge contg. iron bacteria precipitated by this treatment to an oxidation tank.
CONSTITUTION: Aq. soln. contg. at least chlorine ion and Fe(II) ion is introduced into an oxidation tank, and iron bacteria cultivated separately in a liquid culture medium contg. Fe(II) ion and Cl ion are introduced into the same tank to oxidize Fe(II) ion in the introduced liquid to Fe(III) ion. In this case, diatomaceous earth as a carrier agent for the iron bacteria and nutrient are added to the oxidation tank. When Fe(II) ion is oxidized to Fe(III) ion in the oxidation tank, iron bacteria-contg. sludge consisting essentially of iron hydroxide is formed; solid matters in the treated liquid is separated from liquid in a settling tank, and separated iron bacteria-contg. sludge is reused repeatedly in the oxidation tank to perform operation continuously.
Next Patent: AERATION TANK IN FILTHY WATER TREATING PROCESS USING ACTIVATED SLUDGE


Concise Binary Object Representation (CBOR) Tags for Date Microsoft
pdv Financial Software GmbH
Applications CBOR Working Group Compact Binary Object Representation CBOR Tag Date Internet-Draft The Concise Binary Object Representation (CBOR, RFC 7049) is a data format whose design goals include the possibility of extremely small code size, fairly small message size, and extensibility without the need for version negotiation. In CBOR, one point of extensibility is the definition of CBOR tags. RFC 7049 defines two tags for time: CBOR tag 0 (RFC 3339 date/time string) and tag 1 (Posix "seconds since the epoch"). Since then, additional requirements have become known. This specification defines a CBOR tag for an RFC 3339 date text string, for applications needing a textual date representation within the Gregorian calendar without a time. It also defines a CBOR tag for days since the date 1970-01-01 in the Gregorian calendar for applications needing a numeric date representation without a time. It is intended as the reference document for the IANA registration of the CBOR tags defined.
The Concise Binary Object Representation (CBOR) provides for the interchange of structured data without a requirement for a pre-agreed schema. RFC 7049 defines a basic set of data types, as well as a tagging mechanism that enables extending the set of data types supported via an IANA registry. This specification defines a CBOR tag for a text string representing a date without a time. The tagged text string is represented as specified by the RFC 3339 full-date production. Per RFC 3339, this represents a date within the Gregorian calendar. This specification also defines a CBOR tag for an integer representing a date without a time. The tagged integer is an unsigned or negative value indicating the number of days since the Gregorian calendar date 1970-01-01. As an implementation note, this value has a constant offset from the Modified Julian Date value (which is defined by the Smithsonian Astrophysical Observatory as the number of days since November 17, 1858); this value is the Modified Julian Date minus 40587. Note that since both tags are for dates without times, times of day, time zones, and leap seconds are not applicable to these values. These tags are both for representations of Gregorian calendar dates.
Calendar dates are used for numerous human use cases, such as marking the dates of significant events. For instance, John Lennon was born on October 9, 1940 and died on December 8, 1980. One such common use case is driver's licenses, which typically include a date of birth. The dates used in this specification use the Gregorian calendar, as do those in RFC 3339. The time zones and actual times of these events are intentionally not represented in the calendar date. The epoch chosen for the second tag, which represents days since the Gregorian calendar date 1970-01-01, is related to the IEEE Std 1003.1, 2013 Edition time epoch 1970-01-01T00:00:00Z UTC only insofar as both contain the date 1970-01-01. This should not be construed as indicating that dates using this tag represent either a specific time of day and/or time zone. The day of the week (Sunday, Monday, Tuesday, etc.) is not explicitly represented in either of these date formats. However, deterministic algorithms that are beyond the scope of this specification can be used to derive the day of the week in the Gregorian calendar from dates represented in both of these formats.
Comparison of dates in full-date format can be accomplished by normal string comparison, since by design, the digits representing the date are in fixed format and ordered from most significant to least significant. Comparison of numeric dates representing days since 1970-01-01 can be performed by normal integer comparison. Comparison of dates in other formats or using other calendars require conversions that are beyond the scope of this specification.
Comparing dates with times is beyond the scope of this specification. That said, if a date is augmented with a time zone and time of day, comparing that augmented date with other times becomes possible. For instance, if one were to augment John Lennon's birth date of October 9, 1940 with the time of day and time zone of his birth, then it would be possible to derive a time at which he was born that could be compared with other times.
This section registers the following values in the IANA "Concise Binary Object Representation (CBOR) Tags" registry. Tag: 1004 (value requested) Data Item: UTF-8 text string Semantics: RFC 3339 full-date string Reference: [[ this specification ]] Tag: 100 (ASCII 'd') (value requested) Data Item: Unsigned or negative integer Semantics: Number of days since the epoch date 1970-01-01 Reference: [[ this specification ]]
The security considerations of RFC 7049 apply; the tags introduced here are not expected to raise security considerations beyond those. A date, of course, has significant security considerations. These include the exploitation of ambiguities where the date is security relevant or where the date is used in access control decisions. When using a calendar date for decision making, for example access control, it needs to be noted that since calendar dates do not represent a specific point in time, the results of the evaluation can differ depending upon where the decision is made. For instance, a person may have reached their 21st birthday in Japan while simultaneously being a day short of their 21st birthday in Hawaii.
Concise Binary Object Representation (CBOR) Tags IANA The Open Group Base Specifications Issue 7 IEEE
Thanks to Carsten Bormann for supporting creation of this specification. Parts of the explanatory text in this specification come from draft-bormann-cbor-time-tag-02. Thanks to these people for reviews of the specification: Henk Birkholz, Carsten Bormann, Thiago Macieira, Francesca Palombini, Michael Richardson, Jim Schaad, Juergen Schoenwaelder, and Dale Worley.
[[ to be removed by the RFC Editor before publication as an RFC ]] -04 Addressed shepherd comments by Francesca Palombini. Addressed additional review comments by Jim Schaad and Michael Richardson. -03 Added statement that these tags are both for representations of calendar dates. Described consequences of using calendar dates in access control decisions. -02 Addressed working group last call comments, including stating that time zones are not applicable to these values. -01 Changed "positive or negative" to "unsigned or negative". Added an implementation note about the relationship to Modified Julian Dates. -00 Initial working group version based on draft-jones-cbor-date-tag-01 with no normative changes.


What is an eco friendly alternative to jet fuel?
 1. 0 Votes
 As part of NASA's Alternative Aviation Fuel Experiment II (AAFEX II), a chicken fat-based jet fuel was tested. The fuel, called Hydrotreated Renewable Jet Fuel, was to be used as fuel in a NASA DC-8 aircraft. Hydrotreated Renewable Jet Fuel was not developed by NASA, however; it has been used successfully in various other aircraft, including by an F-16CM Fighting Falcon, one of which recently used a 50/50 mixture of regular jet fuel and the biofuel.
Please signup or login to answer this question.


text:
Science may have the solution: a chemical "hydrogel" coating made from chitosan, derived from the shells of crabs and shrimp. Chitosan is already sprayed on lots of other fruits and vegetables to kill bacteria and keep produce fresh. And on Wednesday, Xihong Li of Tianjin University presented data at a meeting of the American Chemical Society showing that it can work to delay banana ripening -- bad news for fruit flies, good news for you.
"We found that by spraying green bananas with a chitosan aerogel, we can keep bananas fresh for up to 12 days," Li said in a statement Wednesday. "Such a coating could be used at home by consumers, in supermarkets or during shipment of bananas."
Like other fruits, bananas don't die when they're picked. They respire through their skin, taking in oxygen and expelling carbon dioxide. Increased respiration means quicker ripening. The chitosan coating used by Li and his colleagues slowed down respiration enough to keep the fruit fresh.
Bananas also release a compound called ethylene, which encourages ripening. So leaving a bunch of bananas in a bag will trap a lot of ethylene gas in there, which makes them ripen faster. Other fruits and vegetables produce ethylene too, so keeping your banana in the same bowl as a bunch of apples will hasten its progress toward gooey oblivion.
Chitosan, with its seafood origin, could possibly pose problems for strict vegetarians and vegans, but it wouldn't be the first food additive that flew under the radar. Shellac, which you might primarily think of as something to polish furniture, is also applied to apples to replace natural waxes lost during the cleaning process. It's also made from a resin secreted by the female lac bug. Starbucks caught flak from its crunchier customers after it was revealed that the coffee giant was using crushed beetle shells to color its strawberry frappuccinos.
Still, if you're not squeamish about animal products, chitosan could be a good way to keep good bananas from going bad.


text:
This post describes the simplest possible way to transform a form into a page in NAV 2009. Both Pages and Transformation is documented in more details elsewhere. Here, I just want to make the simples possible example, just to get a simple form transformed into a simple page.
You need to have at least a NAV 2009 classic client and the Transformation tool. To test the page, of course you also need the Rolebased client. But to just transform a form, you don't need it.
Import the tool:
1) Open a classic client, go to Object Designer and import the files DevTool.fob and TIF.fob from the folder TransformationTool\TIF Editor\
2) Create a new form in NAV, as simple as possible. For example a Card form based on the customer table, with just a few fields on it. This is the form you want to transform.
Setup and use the Transformation tool:
3) Run form 97000 "Transformation Forms"
4) Click Import -> "Import PageType – FormType mapping", and select the file TransformationTool\TIF Editor\FormToPagetypeMapping.txt.
5) Click Functions -> Get Forms. Filter on Type = Form, and ID = the new form, then click OK. This gets the form(s) that you want to transform.
6) In the FormType field, select "Card" ("Form with TabControl only and a source table").
Run the transformation:
7) Export the settings from form 97000: Click on Export -> "Transform Pages". You must export it to the TransformationTool folder, and it must be called TransformPages.xml.
8) From Object Designer, export the form (Tools -> Export) as xml.You must export it to the folder TransformationTool, and it must be called Forms.xml.
You now have the form you want to transform, and the meta-data that tells the TranformationTool how to transform it.
9) Run the file FormTransformation.exe from the TransformationTool folder. This generates a new file called Pages.xml. It also logs any progress or errors in the file Transformation.log.
Import the new page:
10) Back in NAV (classic client): Go to Object Designer, and import the file Pages.xml, and then compile it.
If all steps ran without any errors, you have now transformed your form into a page which can be displayed in the rolebased client.
Microsoft Dynamics UK
Microsoft Customer Service and Support (CSS) EMEA
These postings are provided "AS IS" with no warranties and confer no rights. You assume all risk for your use.


text:
This chapter examines the impoverishment process in three South Caucasian states: Armenia, Azerbaijan and Georgia. It uses the concept of 'order of curtailment' of consumption expenditures to detect the order of curtailment of expenditures in the Caucasus region. It then suggests computing poverty rates on the basis of a threshold corresponding to the curtailment of a certain number of consumption expenditures categories and compares the poverty rates obtained with those derived from more traditional approaches to the unidimensional measurement of poverty. The empirical illustrations are based on the Caucasus Barometer surveys of 2009 and 2013.
This chapter is an extension of a study that was undertaken for a project of the Asian Development Bank (ADB) entitled 'Strengthening Knowledge Management in Central and West Asia'. The authors are grateful to ADB for financing this study. They also want to thank Dr. Long Q. Trih for his help in collecting information on economic growth and poverty reduction in the Caucasus.
Deutsch, J., Silber, J. and Wan, G. (2017), "Curbing One's Consumption and the Impoverishment Process: The Case of Western Asia", Bandyopadhyay, S. (Ed.) Research on Economic Inequality (Research on Economic Inequality, Vol. 25), Emerald Publishing Limited, Bingley, pp. 137-159. _URL_
Emerald Publishing Limited
Copyright © 2018 Emerald Publishing Limited


46 U.S. Code § 5101 - Definitions
prev | next
In this chapter—
(1) "domestic voyage" means movement of a vessel between places in, or subject to the jurisdiction of, the United States, except movement between—
(A) a place in a territory or possession of the United States or the Trust Territory of the Pacific Islands; and
(B) a place outside that territory, possession, or Trust Territory.
(2) "economic benefit of the overloading" means the amount obtained by multiplying the weight of the overload (in tons) by the lesser of—
(A) the average freight rate value of a ton of the vessel's cargo for the voyage; or
(B) $50.
(3) "existing vessel" means—
(A) a vessel on a domestic voyage, the keel of which was laid, or that was at a similar stage of construction, before January 1, 1986; and
(B) a vessel on a foreign voyage, the keel of which was laid, or that was at a similar stage of construction, before July 21, 1968.
(4) "freeboard" means the distance from the mark of the load line assigned under this chapter to the freeboard deck.
(5) "freeboard deck" means the deck or other structure the Secretary prescribes by regulation.
(6) "minimum safe freeboard" means the freeboard that the Secretary decides cannot be reduced safely without limiting the operation of the vessel.
(7) "weight of the overload" means the amount obtained by multiplying the number of inches that the vessel is submerged below the applicable assigned freeboard by the tons-an-inch immersion factor for the vessel at the assigned minimum safe freeboard.
Historical and Revision Notes
Revised section 5101
Source: Section (U.S. Code) 46 App. U.S.C. 86a.
Section 5101 contains definitions that are limited to Chapter 51—Load Lines. Existing Section 46 App. U.S.C. 86a (which defines only the terms "new ship" and "existing ship") will be replaced by section 5101. Definitions of technical terms ("freeboard", "freeboard deck", and "minimum safe freeboard") have been added for clarity. The definition of the term "new ship" has been deleted because the term is not used in Chapter 51. The definition of "domestic voyage" includes the phrase "places in or subject to the jurisdiction of the United States." "Places subject to the jurisdiction of the United States" include deep water ports, production platforms, mining sites outside of territorial waters of the United States but within the United States' Exclusive Economic Zone (EEZ) that was established by Presidential Proclamation 5030, dated March 10, 1983, or on the outer continental shelf. The phrases "economic benefit of overloading" and "weight of the overload" have been defined for purposes of establishing a standard method of determining the value of the cargo with which a vessel is overloaded. The value of the cargo will in turn affect the maximum penalty assessed for overloading the vessel. The definition of "freeboard deck" provides the Secretary with the authority to designate as the freeboard deck either the actual deck (on standard vessels) or another structure (on non-standard vessels). Non-standard vessels, for which this regulatory flexibility is necessary, include shelter deck vessels, semi-submersible multi-hull units, container ships, surface effect vessels, and commercial submarines.
Termination of Trust Territory of the Pacific Islands
19 CFR - Customs Duties
46 CFR - Shipping


text:
Originally known as Northern Berkshire Township Number 2 and
including all of Hinsdale and part of Middlefield, the town
was first settled in 1767 and was officially incorporated as
Partridgefield on July 4, 1771. It was originally named
for Oliver Partridge, one of the three purchasers of the town
(along with Governor Francis Bernard). On March 12, 1783, a
part of Partridgefield was included in the new town of Middlefield.
Then, on June 21, 1804, a part of Partridgefield was established
as Hinsdale. And finally on June 19, 1806, the name of Partridgefield
changed to Peru., the name was officially changed to Peru in
1805, possibly because of its high altitude.
is a mountainous and sparsely settled farming town near the middle
of the eastern side of Berkshire County, 140 miles west of Boston,
and about 5 miles east of the Boston and Albany Railroad station
in Hinsdale bounding this town on the west. On the north
the boundary is Windsor; on the east, Cummington and Worthington;
and on the south, Middlefield and Washington. The area is about
27 square miles, of which 16,019 acres are assessed. Of these,
3,328 acres are forests of beech, maple and spruce. The land is
elevated, rough and rocky. French's Mountain rises near the centre
of the township to a height of 2,239 feet: The church on Peru
Hill, near the western border, is so situated that water falling
from one side of the roof finds its way into the Westfield River,
and from the other side into the Housatonic. The largest watercourse
is Fuller's Stream, draining the central portion of the town..
Some excellent limestone has been quarried here. There is much
rock of a flinty, and some of granitic character. The soil is
a sandy loam. The usual farm crops are raised; and the aggregate
product of the 104 farms was valued in 1885 at $60,161. There
are several large dairies. The manufactories consisted of 4 saw
mills, two of which are quite important. The population was 368,
of whom 116 were legal voters. The valuation in 1888 was $l22,616,
with a tax-rate of $15.75. There were 81 dwelling-houses. The
six public school-houses were valued at some $1,200. There is
one church, which is Congregationalist.
Township "No.Two " was sold at auction in Boston in
1762; and coming into the hands of Oliver Partridge and Elisha
Jones, it acquired the necessary number of inhabitants, and was
incorporated as the town of Partridgefield, July 4, 1771. On June
21, 1804, the western part of the township was set off to form
Hinsdale. On June 19, 1806, the name of the town was changed to
Peru. Among the early settlers were Joseph Badger, Captain Nathan
Watkins and Nathaniel Stowell, who came here in 1766. These, with
others from the town, were at the battle of Bunker Hill. The Rev.
Stephen Tracy, ordained in April, 1772, was the first minister.
536-537 in Nason and Varney's Massachusetts Gazetteer, 1890


text:
Unbound: Ukrainian Canadians Writing Home
What does it mean to be Ukrainian in contemporary Canada? The Ukrainian Canadian writers in Unbound challenge the conventions of genre – memoir, fiction, poetry, biography, essay – and the boundaries that separate ethnic and authorial identities and fictional and non-fictional narratives. These intersections become the sites of new, thought-provoking and poignant creative writing by some of Canada's best-known Ukrainian Canadian authors.
To complement the creative writing, editors Lisa Grekul and Lindy Ledohowski offer an overview of the history of Ukrainian settlement in Canada and an extensive bibliography of Ukrainian Canadian literature in English. Unbound is the first such exploration of Ukrainian Canadian literature and a book that should be on the shelves of Canadian literature fans and those interested in the study of ethnic, postcolonial, and diasporic literature.
- Division: Scholarly Publishing
- World Rights
- Page Count: 168 pages
- Dimensions: 6.4in x 0.7in x 9.3in
"Unbound: Ukrainian Canadians Writing Home is a book about what it means to belong to an ethnos, if not an ethnic community, in a globalized world, and how a sense of identification with one's ancestral past rubs up against one's present, creating sparks that can help fire the literary imagination.
A postmodern mash-up of memories, critical reflections, creative ruminations, and pointed questions that probe the boundaries of one's own skin and sense of kin, the contributors' essays grapple with their conflicted identities with a frankness that is frequently uncomfortable, yet more often than not, liberating. Their craft and artistry provides food for thought that goes well beyond the stereotypes of borscht and cabbage rolls."
Jars Balan, Canadian Institute of Ukrainian Studies, University of Alberta
Author InformationLisa Grekul is a novelist and associate professor in the Department of Critical Studies at the University of British Columbia Okanagan.
Lindy Ledohowski is an educational leader and literary scholar. She serves on the board of trustees for the Canadian Museum for Human Rights.
Table of contents
Preface: "Write your stories down; make your voices heard"
Introduction: Ukrainian Canadian Poet Pedagogues
1. Language Lessons
Janice Kulyk Keefer
2. Eight Things
3. Am I Ukrainian?
Marsha Forchuk Skrypuch
4. Bringing Back Memory
6. Putting the Baba Back in the Book
7. The Gulag, The Crypt and the Gallows: Sites of Ukrainian Canadian Desire
Conclusion: Ukrainian Identities On(the)Line: Writing Ethnicity in a Time of Crisis
Appendix: Bibliography of English-Language Ukrainian Canadian Literature
The Kobzar Literary AwardWinner in 2018
Subjects and Courses


area_surf_ineq.tcl
This example shows how to add inequalities conditions on resulting surface, which a set in areas with other surface values. In this example areas 1,3,5 were used to set greater than or equal to inequality condition with "test_func" surface. Areas 2,4,6 were used to set lower than or equal to inequality condition.
Here is the image of the resulting surface (red colour for areas 1,3,5, green colour for areas 2,4,6):
surface built from inequalities for regions of other surface
Pic 1. Surface built from inequalities for regions of other surface
This result was obtained with "examples/surfit/curvs/area_ineq.tcl" script.
surfit: gridding and contouring software.


As a student ambassador to the Wisconsin School of Business, I have become the face of the school to most incoming students. The other ambassadors and I give informational sessions, meet with families and answer questions that potential students may have through phone calls and emails.
For a job as demanding as this, knowing everything about the business school, including statistics, requirements and contacts, is a must. But being the face of a school, while it does come with incredibly rewarding experiences and skills (and some cool polos), also means facing students who may not be happy with their results.
When a potential student does not get into the school, they reach out to ambassadors. When a parent becomes angry, looking at the email that says their child did not get accepted, they reach out to ambassadors.
Speaking with these students and their parents about solutions to what they consider the end of their life plans requires ambassadors not only know about other ways to study business, but also have empathy for each student that goes through the process. It requires being able to feel for someone who you've never met and probably will never meet in your entire life.
Having empathy also means realizing where students struggle most and trying to help them. In most cases, the business school does a very good job with this. Pre-business advisors, ambassadors and websites filled with information about how to apply all help potential students in making sure they are ready to submit an amazing application.
But after talking to countless potential students, I've learned there are areas where the Business School can do a better job in helping students get into the school.
Business school dean steps down for faculty positionThe Dean of the University of Wisconsin School of Business announced Tuesday she will be stepping down from her role Read…
Right now, a student can only apply to the business school if they meet certain requirements. Among those are certain classes — microeconomics, calculus, psychology and communication arts — along with a minimum GPA of 2.75.
All of these requirements are ones that the student has great control over. In most cases, students can easily take the classes that fit the requirements and decide to put in the work necessary to earn a higher GPA.
The one requirement that students cannot control is known as the "86-credit rule." Essentially, the 86-credit rule means a student cannot apply to the Wisconsin School of Business if they have 86 or more credits completed.
This rule is in place for many reasons, but mainly, between 86 and 120 credits (the requirement to graduate), there is not enough the business school can teach you to prepare you for the business world afterward. Thirty-four credits will not fit the requirements or teach a student everything the business school has to offer.
The issue is that students come in with however many credits they complete in AP scores or from a different university. What this means is that while students can choose to take certain classes to meet the requirements, they can't choose which credits they want to transfer and may be ineligible to apply due to the credit cap.
For example, a friend of mine came in with around 40 credits from AP scores and from testing out of her Spanish classes. This warranted a huge celebration, as it meant she could brag to her friends that she had sophomore standing. But her celebration ended when she learned that she only had one opportunity to apply to the business school because by the spring of her sophomore year, she would already have over 86 credits.
Suddenly, the ease that comes with knowing students can apply twice to the Wisconsin School of Business (if they don't get in the first time) didn't apply to her. She would only have one chance to make it into the school, or her dream of majoring in accounting with a degree from the business school that she had been planning since the early years of high school may be over.
UW business school proposes cutting full-time MBA programUniversity of Wisconsin faculty will review the Wisconsin School of Business proposal to suspend admission to their full-time Masters of Read…
Collin Dott, a sophomore involved in the ASM internship program, actually met with different business students and directors, including Dean Massey, about this issue. His proposal — that only business-related credits count toward the 86-credit-cap, has not been implemented yet but has received positive feedback from a lot of other students and staff in the business school.
This way, a student coming in with six credits in psychology and math and 20 credits in electives, knows only the six credits would count towards the actual credit cap, allowing them to apply a second time if they don't get in the first. A sophomore, who had recently just developed an interest in business, can rest assured that only their business classes would count towards the credit cap.
There is nothing harder than answering a phone call from an eager transfer student, whose entire life changed when they saw the acceptance letter to the University of Wisconsin, and telling them they are ineligible to apply to the business school because they took too many classes in their previous college.
Even with news that the business school will be accepting more direct admits, though this idea may not be the right solution, the requirement still leaves out those who were not accepted the first time, those who did not apply directly, or those who transferred. Something must change.


How to Care for Crocodile Skin Leather Goods
Crocodile goods are very famous as well as expensive. These goods are costly because of fine quality crocodile leather. Different things are made with this high-priced leather-like, shoes, bags, coats and violet etc. These things come with great responsibility because it is very easy to buy and wear them but on the other hand, very difficult to save them. Here are some ways to safe these products for a long time.
1. Avoid from the direct sun:
The leather of crocodile is very fine and also transformed in many ways. So after made it as a final product, it became finer and dry. If you put this product to direct sunlight then it becomes dry out. Heat will cause damage and also a loss of natural sheen. So avoid direct heat and put these things in a closet to keep them dry and good.
Crocodile goods-Crocodile handbag
2. Keep safe from rain and water:
Some leathers are able to absorb the water but others are not. If this leather absorbs water, in that case, your product could be damaged. So, avoid unnecessary water usage on it. While washing your product use excess water. The better way is to use your thing and then put it back without washing. Use a dry cloth for rubbing the surface. Also, spray and creams are coming along with these products so use them only. The skin of crocodile is already moisture so any water can cause to damage the product.
3. Keep away from harsh chemicals:
Do not use the chemical to wash these products. Use chemicals that are written in the catalog of these leather products. Do not spray any kind of perfume on it. Especially when you are wearing a jacket, take care of it while eating.
4. Do not scratch the surface:
If you get some dirt or stain on it, do not scratch it because it causes breaks in the leather and it cannot be repaired. So only clean the main area and use conditioner and let it dry.
Crocodile Leather Handbags-Orange
5. Avoid folding and pressing opposite to its real shape:
For a longer use of crocodile leather pieces, for example, if you have a leather jacket, avoid folding it tightly. Because first of all, crocodile skin is caiman skin and it has calcium stores in it that makes crocodile skin more rigid. If you start folding the skin tightly then it comes to at points where not need to be folded then it might cause damage. And the result could be more horrible like unsightly cracks or wrinkle marks.
By all means, when the client gets his custom-made crocodile skin product, he became responsible to take care of it. With the proper care of crocodile skin products, it should stay beautiful and fresh. These are always ready for use even for many years. We are sharing these general care tips and these tips are more important for the crocodile leather products. With this, you can help to extend the useful life of expensive and exotic leather goods. These tips keep the clients satisfied and coming back for more goods.


text:
Table Of Contents
1. Meaning Of Positive Group Behaviour
2. Characteristics Of Positive Group Behaviours
3. Benefits Of Positive Group Behaviours
Meaning Of Positive Group Behaviour In Social Studies
This is a group behaviour that is acceptable by the society. It is behavioural outcome that is generally accepted and motivating to a greater number of the population. This behavioural outcome is in conformity with the rules and regulations that govern the society or country.
Positive group behaviour is productive, inspiring and affective because it comes from the correct thinking and feeling of the cream of the people in the society. Positive group behaviour is an antidote to many social ills ravaging the country today.
Constructive or positive group behaviours are those actions from groups of people who are bound together by some common interests or professions; who embark on activities to influence government policies to their own advantage and their society.
It may be in support or rejection of a particular policy or law that will be harmful or counter-productive to the society. These bodies exhibit constructive behaviours: the Nigerian Bar Association, Nigerian Union of Teachers, Nigeria Labour Congress, Academic Staff Union of Universities, Market Women Associations, etc. These are good examples of groups who mean well for the nation.
They hardly can engage in destructive actions likely to disrupt the smooth running of the government or society. Their actions are rational.
They return to reason whenever they see that their demand is not yielding positive effects.
Characteristics Of Positive Group Behaviour
1. They exist to promote the common good of the masses and not to take over the running of the government.
2. The source of their income remains levies, donations, and dues. They can get financial support from members of the society who appreciate their activities.
3. They are well-organized. Their leadership is carefully tested, selected and approved.
4. They accept membership only from those who possess the requisite criteria.
5. They have body of knowledgeable experts who can relate with people from all walks of life – religion, military, civilian, economy, traditional institutions, etc.
Ways Through Which Constructive Group Behaviours Can Be Carried Out In Society
This is the approach used by the organized bodies to explain in details, the merits and demerits of a particular issue which they project. Through lobbying, they persuade those that matter in the society to accept their proposals for their own good and that of the society.
2. Strikes, Lock-outs And Boycotts
Organized groups like NBA, TUC, NUT, ASUU, NLC, etc, use strikes, lockouts and boycotts to press home demands. In attempts to avoid the great damage that may result from long strikes, the governments or owners of an organization may agree to the terms of agitation.
3. Publicity Campaigns
Social groups such as CAN, NUT, ASUU, NLC, etc, organize extensive campaigns through meetings, rallies, house-to-house visits, posters, hand-bills stickers, conferences, flyers, etc, to reach the people and attract their support or sympathy in order to get their intentions achieved.
4. Use Of Mass Media
Positive groups use advertisements and sponsored programmes on the radio, television and newspapers to convince the entire public about their products, intentions, etc, and urge them to accept.
Positive groups write open petitions to the appropriate quarters or persons to inform them of what is wrong and suggest constructive remedies to them.
6. Peaceful Demonstrations
Positive groups use peaceful demonstrations to press-home their demands, rights, and other intentions. They can march out in the streets, carrying placards stating their demands, and calling for support from the public.
Benefits Of Positive Group Behaviours
There are so many benefits in positive group behaviours. They among others include:
This is the pleasant feeling that is shared in friendly relationship. Positive group behaviours encourage this in companionship. This pleasant feeling include love, or affection. The family, social clubs, sports competitions, etc, have much of these pleasant feelings.
Through companionship, good social behaviours are taught and learnt. Members learn social obligations, rights, laws, duties and other forms of acceptable conducts.
They also learn how to tolerate, how to resolve conflicts through counselling and reprimands.
2. Survival And Security
Several skills are provided by positive groups for the survival of their members and others. They encourage their members and others to acquire quality skills that can fetch them better incomes.
They provide first-hand information for further training through part-time studies, evening programmes, sandwich and seminars/workshops.
Organized groups like NUT, NUJ, NBA, NLC, etc, etc., intervene anytime their members are attacked by individuals, groups or government.
There is security in the employment offered to their members. They make them to know the rules and regulations, rights, and privileges that could engage them to secure their jobs. Job security promotes positive behaviour in human relationship.
3. Affiliation And Status
Positive behaviours from groups and organizations develop dignified connections. Attachment to civil society, religious organizations, political parties give organizational connections that are rewarding to the individual with them. Important status or positions also come from positive groups.
This is because social groups recruit members based on well-defined criteria. People who qualify to become members enjoy social status which has obligations and rewards.
Organized groups help to secure good positions for their members in politics, church at national and international levels.
4. There Are Power And Control From Positive Group Behaviour
Positive group behaviours have the ability of enforcing decisions and compelling obedience from other people.
Basically, the exercise of power is always seen in the hands of those endowed with the ability of handling the human and material resources to reward and punish the people as they deem fit.
5. Positive Group Behaviours Develop Achievable Goals In Their Members
As members struggle to attain these goals, they acquire strengths that spur them into more action and achievement. Successful completion of tasks or projects, is a plus in the individual and his society.


PaperFold
Folding a square sheet of paper
by George Taniwaki
After scribbling notes on a square yellow Post-it note, I folded it in half and was about to put it in my pocket when I made an interesting observation. If I fold a square paper exactly in half while holding an edge toward me, the resulting visible area is a rectangle with an area of one-half the total area (top illustration above). The same is true if rotate the sheet 45 degrees and I fold it along the diagonal to make a triangle (middle illustration above). However, if I fold it in half along any other angle, the area of the top layer is exactly one-half, but two additional triangular ears are visible from under the fold (bottom illustration above).
That made me wonder. What angle produces the maximum area, and what is that area? This is the perfect math question for the origami enthusiast.
Let's solve it.
Finding the relevant dimensions
The first step in solving this problem is to unfold the sheet, use geometry to find any symmetries, and use trigonometry to calculate the area of the two triangular ears as a function of the rotation angle, θ.
Dimension
Unfolding the sheet
By unfolding the sheet, I discover a surprising symmetry. The two triangular ears are identical. Let's call the lengths of the two exterior sides A and B. The area of one triangular ear is A * B / 2 and the area of both ears is A * B.
The length of the interior side, which is the hypotenuse of a right triangle, can be called C. The angles opposite each side can be labeled a, b, and c. (See figure above.)
Using trigonometry, this means A = C * cos(b) and B = C * sin(b).
The angle b is twice the rotation angle or 2θ. Substituting gives
A = C * cos(2θ) and B = C * sin(2θ).
The length of one side of the square = 1, so A + B + C = 1. Substituting and rearranging gives
C * cos(2θ) + C * sin(2θ) + C = 1
or
C = 1/(cos(2θ) + sin(2θ) + 1)
and finally substituting this value of C in our original equations for A, B, and A * B gives
A = cos(2θ) / (cos(2θ) + sin(2θ) + 1)
B = sin(2θ) / (cos(2θ) + sin(2θ) + 1)
A * B = cos(2θ) * sin(2θ) / (cos(2θ) + sin(2θ) + 1)2
Numeric solution
There are two ways to solve for the maximum value of the area A * B and the angle θ. We can solve it numerically and analytically. Let's start with a numeric solution. In Excel, I create a table of values of θ from 0 to 45 degrees with steps of 1 degree increments. I convert degrees to radians and calculate the associated values of A, B, and A *B. Then I plot them. The maximum value occurs at θ somewhere between 22 and 23 degrees. Thus, it seems 22.5 degrees is the solution.
At 22.5 degrees, A = B = 0.2929 and A * B = 0.08579.
AreaByAngle
Plot of A, B, and A*B versus θ
Analytic solution
Now let's prove the numeric solution is correct by using an analytical method. To find the maximum area, I take the derivative of A * B with respect to θ and set to zero. Then solve for θ. The solution uses basic calculus, including a combination of the product rule and chain rule. First, I define A * B as a group of functions as follows:
let f(θ) = cos(2θ)
g(θ) = sin(2θ)
h(θ) = 1 / (cos(2θ) + sin(2θ) + 1)2 = (cos(2θ) + sin(2θ) + 1)2
and
A * B = f(θ) * g(θ) * h(θ)
The derivatives are as follows:
f'(θ) = -sin(2θ)*2
g'(θ) = cos(2θ)*2
h'(θ) = -2 * (cos(2θ) + sin(2θ) + 1)-3 * (-sin(2θ) + cos(2θ)) * 2 = 4 * (sin(2θ) – cos(2θ)) / (cos(2θ) + sin(2θ) + 1)3
and
(A * B)' = ( f'(θ) * g(θ) * h(θ)) + (g'(θ) * f(θ) * h(θ)) + (h'(θ) * f(θ) * g(θ))
Now I substitute the values of the 3 functions and their derivatives into the last equation.
(A * B)' = (-sin(2θ)*2 * sin(2θ) * h(θ)) + (cos(2θ)*2 * cos(2θ) * h(θ)) + 4 * (sin(2θ) – cos(2θ)) / (cos(2θ) + sin(2θ) + 1)3 * cos(2θ) * sin(2θ))
Simplifying and rearranging gets:
(A * B)' = (cos2(2θ) – sin2(2θ)) * 2 * h(θ) + (sin(2θ) – cos(2θ)) * 4 * cos(2θ) * sin(2θ) / (cos(2θ) + sin(2θ) + 1)3
The solutions are values of where A * B' = 0. This is only true when both cos2(2θ) – sin2(2θ) = 0 and sin(2θ) – cos(2θ) = 0. The only angle where this condition is met is 45° or θ = 22.5°. This proves that the maximum that I found numerically is a maximum area.
[Update: Completed the analytic solution section.]


.
 - scaleReads: Config where to send the read queries. See below for more details.
 - maxRedirections: When a cluster related error (e.g. MOVED, ASK and CLUSTERDOWN etc.) is received, the client will redirect the command to another node. This option limits the max redirections allowed when sending a command. The default value is 16.
 - retryDelayOnFailover: If the target node is disconnected when sending a command, ioredis will retry after the specified delay. The default value is 100. You should make sure retryDelayOnFailover * maxRedirections > cluster-node-timeout to insure that no command will fail during a failover.
 - retryDelayOnClusterDown: When a cluster is down, all commands will be rejected with the error of CLUSTERDOWN. If this option is a number (by default, it is 100), the client will resend the commands after the specified time (in ms).
 - retryDelayOnTryAgain: If this option is a number (by default, it is 100), the client will resend the commands rejected with TRYAGAIN error after the specified time (in ms).
 - redisOptions: Default options passed to the constructor of Redis when connecting to a node.
 - slotsRefreshTimeout: Milliseconds before a timeout occurs while refreshing slots from the cluster (default 1000)
 - slotsRefreshInterval: Milliseconds between every automatic slots refresh (default 5000)
Read-write splitting
A typical redis cluster contains three or more masters and several slaves for each master. It's possible to scale out redis cluster by sending read queries to slaves and write queries to masters by setting the scaleReads option.
scaleReads is "master" by default, which means ioredis will never send any queries to slaves. There are other three available options:
 1. "all": Send write queries to masters and read queries to masters or slaves randomly.
 2. "slave": Send write queries to masters and read queries to slaves.
 3. a custom function(nodes, command): node: Will choose the custom function to select to which node to send read queries (write queries keep being sent to master). The first node in nodes is always the master serving the relevant slots. If the function returns an array of nodes, a random node of that list will be selected.
For example:
var cluster = new Redis.Cluster([/* nodes */], {
 scaleReads: 'slave'
});
cluster.set('foo', 'bar'); // This query will be sent to one of the masters.
cluster.get('foo', function (err, res) {
 // This query will be sent to one of the slaves.
});
NB In the code snippet above, the res may not be equal to "bar" because of the lag of replication between the master and slaves.
Running commands to multiple nodes
Every command will be sent to exactly one node. For commands containing keys, (e.g. GET, SET and HGETALL), ioredis sends them to the node that serving the keys, and for other commands not containing keys, (e.g. INFO, KEYS and FLUSHDB), ioredis sends them to a random node.
Sometimes you may want to send a command to multiple nodes (masters or slaves) of the cluster, you can get the nodes via Cluster#nodes() method.
Cluster#nodes() accepts a parameter role, which can be "master", "slave" and "all" (default), and returns an array of Redis instance. For example:
// Send 'FLUSHDB' command to all slaves:
var slaves = cluster.nodes('slave');
Promise.all(slaves.map(function (node) {
 return node.flushdb();
}));
// Get keys of all the masters:
var masters = cluster.nodes('master');
Promise.all(masters.map(function (node) {
 return node.keys();
})).then(function (keys) {
 // keys: [['key1', 'key2'], ['key3', 'key4']]
});
Transaction and pipeline in Cluster mode
Almost all features that are supported by Redis are also supported by Redis.Cluster, e.g. custom commands, transaction and pipeline. However there are some differences when using transaction and pipeline in Cluster mode:
 1. All keys in a pipeline should belong to the same slot since ioredis sends all commands in a pipeline to the same node.
 2. You can't use multi without pipeline (aka cluster.multi({ pipeline: false })). This is because when you call cluster.multi({ pipeline: false }), ioredis doesn't know which node the multi command should be sent to.
 3. Chaining custom commands in the pipeline is not supported in Cluster mode.
When any commands in a pipeline receives a MOVED or ASK error, ioredis will resend the whole pipeline to the specified node automatically if all of the following conditions are satisfied:
 1. All errors received in the pipeline are the same. For example, we won't resend the pipeline if we got two MOVED errors pointing to different nodes.
 2. All commands executed successfully are readonly commands. This makes sure that resending the pipeline won't have side effects.
Pub/Sub
Pub/Sub in cluster mode works exactly as the same as in standalone mode. Internally, when a node of the cluster receives a message, it will broadcast the message to the other nodes. ioredis makes sure that each message will only be received once by strictly subscribing one node at the same time.
var nodes = [/* nodes */];
var pub = new Redis.Cluster(nodes);
var sub = new Redis.Cluster(nodes);
sub.on('message', function (channel, message) {
 console.log(channel, message);
});
sub.subscribe('news', function () {
 pub.publish('news', 'highlights');
});
Events
Event Description
connect emits when a connection is established to the Redis server.
ready emits when CLUSTER INFO reporting the cluster is able to receive commands (if enableReadyCheck is true) or immediately after connect event (if enableReadyCheck is false).
error emits when an error occurs while connecting with a property of lastNodeError representing the last node error received. This event is emitted silently (only emitting if there's at least one listener).
close emits when an established Redis server connection has closed.
reconnecting emits after close when a reconnection will be made. The argument of the event is the time (in ms) before reconnecting.
end emits after close when no more reconnections will be made.
+node emits when a new node is connected.
-node emits when a node is disconnected.
node error emits when an error occurs when connecting to a node
Password
Setting the password option to access password-proctected clusters:
var Redis = require('ioredis');
var cluster = new Redis.Cluster(nodes, {
 redisOptions: {
 password: 'your-cluster-password'
 }
});
If some of nodes in the cluster using a different password, you should specify them in the first parameter:
var Redis = require('ioredis');
var cluster = new Redis.Cluster([
 // Use password "password-for-30001" for 30001
 { port: 30001, password: 'password-for-30001'},
 // Don't use password when accessing 30002
 { port: 30002, password: null }
 // Other nodes will use "fallback-password"
], {
 redisOptions: {
 password: 'fallback-password'
 }
});
Error Handling
All the errors returned by the Redis server are instances of ReplyError, which can be accessed via Redis:
var Redis = require('ioredis');
var redis = new Redis();
// This command causes a reply error since the SET command requires two arguments.
redis.set('foo', function (err) {
 err instanceof Redis.ReplyError
});
This is the error stack of the ReplyError:
ReplyError: ERR wrong number of arguments for 'set' command
 at ReplyParser._parseResult (/app/node_modules/ioredis/lib/parsers/javascript.js:60:14)
 at ReplyParser.execute (/app/node_modules/ioredis/lib/parsers/javascript.js:178:20)
 at Socket.<anonymous> (/app/node_modules/ioredis/lib/redis/event_handler.js:99:22)
 at Socket.emit (events.js:97:17)
 at readableAddChunk (_stream_readable.js:143:16)
 at Socket.Readable


text:
Sybil Ludington(Sybil Ogden)
American Revolution heroine
Birthplace: Fredericksburg, N.Y. (now called Ludingtonville)
Ludington, the daughter of a New York militia colonel, is often called the "female Paul Revere." On April 26, 1777, the Ludingtons learned that the British, under Gov. William Tryon, were attacking Danbury, Connecticut, where revolutionaries stored their weapons. Sybil, 16 at the time, rode 40 miles through the night on horseback to gather soldiers to protect the armaments. The 400 troops that assembled successfully thwarted the British.Died: 2/26/1839
Information Please® Database, © 2007 Pearson Education, Inc. All rights reserved.
More on Sybil Ludington from Infoplease:


2.3 Constraints
In JaCoP, there are three major types of constraints:
Primitive constraints and global constraints can be imposed using impose method, while decomposable constraints are imposed using imposeDecomposition method. An example that imposes a primitive constraint XneqY is defined below. Again, in order to impose a constraint a store object must be available.
 store.impose( new XeqY(x1, x2));
Alternatively, one can define first a constraint and then impose it, as shown below.
 PrimitiveConstraint c = new XeqY(x1, x2);
Both methods are equivalent.
The methods impose(constraint) and constraint.impose(store) often create additional data structures within the constraint store as well as constraint itself. Do note that constraint imposition does not involve checking if the constraint is consistent. Both methods of constraint imposition does not check whether the store remains consistent. If checking consistency is needed, the method imposeWithConsistency(constraint) should be used instead. This method throws FailException if the store is inconsistent. Note, that similar functionality can be achieved by calling the procedure store.consistency() explicitly (see section 2.4).
Constraints can have another constraints as their arguments. For example, reified constraints of the form X = Y B can be defined in JaCoP as follows.
 IntVar x = new IntVar(store, "X", 1, 100);
 IntVar y = new IntVar(store, "Y", 1, 100);
 IntVar b = new IntVar(store, "B", 0, 1);
 store.impose( new Refified( new XeqY(x, y), b));
In a similar way disjunctive constraints can be imposed. For example, the disjunction of three constraints can be defined as follows.
 PrimitiveConstraint[] c = {c1, c2, c3};
 store.impose( new Or(c) );
 ArrayList c =
 new ArrayList();
 c.add(c1); c.add(c2); c.add(c3);
 store.impose( new Or(c) );
Note, that disjunction and other similar constraints accept only primitive constraints as parameters.


text:
This press release is available in French.
Montreal -- Can mentoring relationships help female students who survive childhood abuse or domestic violence? Absolutely, according to new research from Concordia University, published in the Journal of College Student Development.
"Studies have shown that childhood abuse unleashes a chain of negative emotions that can impact an individual's future, producing feelings of shame, isolation, self-loathing and educational underachievement," says first author Rosemary C. Reilly, an associate professor in the Concordia Department of Applied Human Sciences.
Reilly's study builds on evidence compiled by renowned community-based educator and researcher Dr. Jenny Horsman, which suggests that at least 20 per cent of all women are adult survivors of childhood abuse — that is, physical, psychological or sexual maltreatment during childhood. According to Horsman, as many as half the women studying in educational programs in Canada are trying to learn while simultaneously dealing with the consequences of violence.
Four themes of mentorship
As part of their research into impact of violence on women's learning and vocational choices, Reilly and co-author Monica D'Amico, a professor in the Concordia Department of Education, conducted in-depth interviews with 10 women who had experienced intense childhood abuse and were enrolled in an undergraduate program when interviewed.
All but one participant had been mentored at different stages in her life. Reilly and D'Amico found that the timing of women's mentoring was contingent on the impact the abuse had on their sense of identity.
Over the course of the interviews, four themes of mentorship emerged: fantasy mentors, mentors as mirrors, mentors as nurturers and supporters, and mentors as embodiments of a particular profession.
Although the researchers caution that these themes should be viewed as atypical, they enrich the understanding of mentoring for women marginalized by violence and demonstrate the malleable nature of mentorship. Mentoring in its various guises clearly played a significant role in these women's healing processes.
These findings, according to the study authors, should encourage universities to consider establishing a formalized mentoring program for survivors of trauma. Student services departments could support the education of this population by creating multiple opportunities for mentorship from different individuals, at various stages, as survivors' needs evolve.
"For survivors of childhood abuse, relationship and connection are what really matters and what successful mentorship is all about," says Reilly.
Partners in research:
This study supported by the Social Sciences and Humanities Research Council of Canada.
Cited study: _URL_
Concordia Department of Applied Human Sciences: _URL_
Concordia Department of Education: _URL_
AAAS and EurekAlert! are not responsible for the accuracy of news releases posted to EurekAlert! by contributing institutions or for the use of any information through the EurekAlert! system.