buggerHiddenAttribute class - MSDN
DebuggerNonUserCodeAttribute class - MSDN
DebuggerStepperBoundaryAttribute class - MSDN
DebuggerStepThroughAttribute class - MSDN
DebuggerTypeProxyAttribute class - MSDN
DebuggerVisualizerAttribute class - MSDN
Embed management information
Exam objective: Embed management information and events into a .NET Framework application.
(Refer System.Management namespace - MSDN)
Retrieve a collection of Management objects by using the ManagementObjectSearcher class and its derived classes
The classes in the System.Management namespace let you use Windows Management Instrumentation (WMI) to manage computer systems. The most notable class in this namespace is ManagementObjectSearcher, that you can use to retrieve management objects based on a WMI query.
Information that can be retrieved this way ranges from computer case type (notebook, desktop...) over processor and hard disks details to information about running services and processes. Consult the WMI Reference on MSDN for an overview of all WMI classes and their properties.
In the example below a rough and dirty method is defined that prints all properties for all management information objects of a given WMI class. It is then used to print information about the current computer system.
C# Sample Code
WMI basic example
 class Program
 {
 static void Main(string[] args)
 {
 //Print all management info in the WMI class Win32_ComputerSystem
 PrintManagementInfo("Win32_ComputerSystem");
 //wait for user input to keep console window up in debug mode
 Console.ReadLine();
 }
 static void PrintManagementInfo(string WMIClassName)
 {
 ManagementObjectSearcher mos;
 //Get all managementobjects of the specified class
 mos = new ManagementObjectSearcher("SELECT * FROM " + WMIClassName);
 foreach (ManagementObject MOCollection in mos.Get())
 {
 foreach (PropertyData p in MOCollection.Properties)
 {
 //Some properties are arrays,
 //in which case the code below only prints
 //the type of the array.
 //Add a check with IsArray() and a loop
 //to display the individual array values.
 Console.WriteLine("{0}: {1}", p.Name, p.Value);
 }
 }
 }
 }
ManagementObjectSearcher class - MSDN
Enumerate all disk drivers, network adapters, and processes on a computer
The following code uses one overload of the ManagementObjectSearcher constructor to list all physical and logical disk drives, network adapters and running processes on a system.
C# Sample Code
ManagementObjectSearcher example
 class Program
 {
 static void Main(string[] args)
 {
 //
 Console.WriteLine("Physical disks: ");
 PrintManagementInfoProperty("Win32_DiskDrive", "Name");
 Console.WriteLine("*****************************");
 //
 Console.WriteLine("Logical disks: ");
 PrintManagementInfoProperty("Win32_LogicalDisk", "Name");
 Console.WriteLine("*****************************");
 //
 Console.WriteLine("Network adapters: ");
 PrintManagementInfoProperty("Win32_NetworkAdapter", "Name");
 Console.WriteLine("*****************************");
 //
 Console.WriteLine("Processes: ");
 PrintManagementInfoProperty("Win32_Process", "Name");
 Console.WriteLine("*****************************");
 //
 //wait for user input to keep console window up in debug mode
 Console.ReadLine();
 }
 static void PrintManagementInfoProperty(string WMIClassName, string WMIPropertyName)
 {
 ManagementObjectSearcher mos;
 //Get the specified property for all objects of the specified class
 mos = new ManagementObjectSearcher("SELECT " + WMIPropertyName + " FROM " + WMIClassName);
 foreach (ManagementObject mo in mos.Get())
 {
 PropertyData p = mo.Properties[WMIPropertyName];
 Console.WriteLine("{0}", p.Value);
 }
 }
 }
Retrieve information about all network connections
Example to be provided
Retrieve information about all services that are paused
The following code uses a ManagementObjectSearcher object to retrieve all running services and then displays their names.
C# Sample Code
Enumarating services example
 class Program
 {
 static void Main(string[] args)
 {
 Console.WriteLine("Running services: ");
 //form the query, providing a WMI class name and a condition
 SelectQuery query = new SelectQuery("Win32_Service", "State='Running'");
 //find matching management objects
 ManagementObjectSearcher mos = new ManagementObjectSearcher(query);
 //
 foreach (ManagementObject mo in mos.Get())
 {
 Console.WriteLine(mo.Properties["Name"].Value);
 }
 //
 //wait for user input to keep console window up in debug mode
 Console.ReadLine();
 }
 }
ManagementQuery class - MSDN
EventQuery class - MSDN
ObjectQuery class - MSDN
Subscribe to management events by using the ManagementEventWatcher class - MSDN
Serialization and Input/Output
Exam objective: Implementing serialization and input/output functionality in a .NET Framework application
Topics
Serialization
Wikipedia's definition for serialization is : "in the context of data storage and transmission, serialization is the process of saving an object onto a storage medium (such as a file, or a memory buffer) or to transmit it across a network connection link in binary form".
The problem that is addressed here is that an object is created by a running process and is thus bound to the lifetime of that process instance. If for whatever reason, and there can be many, you want to "transport" the object in the context of another process instance you've got a problem, that you solve by "saving" the state of you object in the original process and "restoring" it in the destination process. This "saving" part is called serialization and the "restoring" part is called deserialization.
Serializable attribute
An object is serializable if its class name is prefixed with the [Serializable] attribute.
Object Serialization
One can use the BinaryFormatter class to serialize an object. To serialize, use the BinaryFormatter's Serialize() method which takes a stream and a serializable object as parameters. To deserialize, use the BinaryFormatter's Deserialize() method which takes a stream as a parameter and returns a object that can be cast back to the original object type. Remember to close streams after you use them by calling the stream's Close() method.
XML Serialization
One can use the XmlSerializer class to serialize an object. To serialize, use the XmlSerializer's Serialize() method which takes a stream and a serializable object as parameters. To deserialize, use the XmlSerializer's Deserialize() method which takes a stream as a parameter and returns a object that can be cast back to the original object type. Remember to close streams after you use them by calling the stream's Close() method.
For an overview of XML and SOAP serialization see MSDN
Custom Serialization
The ISerializable interface allows an object to control its own serialization and deserialization.
Readers
Writers
Formatters
A formatter is used to serialize objects into streams.
Streams
File IO
Managing Byte Streams
Compression
Isolated storage
For a general discussion on IsolatedStorage tasks see MSDN
Classes, Interfaces, and tools
Serialize and deserialize
Exam objective: Serialize or deserialize an object or an object graph by using runtime serialization techniques.
(Refer System.Runtime.Serialization namespace)
Serialization interfaces
IDeserializationCallback interface - MSDN
IFormatter interface and IFormatterConverter interface
IFormatter interface - MSDN
IFormatterConverter interface - MSDN
ISerializable interface - MSDN
Serialization attributes
For some serialization attributes exemple see MSDN
OnDeserializedAttribute class and OnDeserializingAttribute class
OnDeserializedAttribute class - MSDN
OnDeseria


DataTransfer.mozSetDataAt()
Deprecated
This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.
Non-standard
This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.
The DataTransfer.mozSetDataAt() method is used to add data to a specific index in the drag event's data transfer object.
A data transfer may store multiple items, each at a given zero-based index. mozSetDataAt() may only be called with an index argument less than mozItemCount in which case an existing item is modified, or equal to mozItemCount in which case a new item is added, and the mozItemCount is incremented by one.
Data should be added in order of preference, with the most specific format added first and the least specific format added last. If data of the given format already exists, it is replaced in the same position as the old data.
The data should be either a string, a Boolean or number type (which will be converted into a string) or an nsISupports.
Note
This method is Firefox-specific.
Syntax
void dataTransfer.mozSetDataAt([type], data, index);
Arguments
type
A string representing the type of the drag data to add to the drag data object.
data
A nsIVariant representing the data to add to the drag data object.
index
A unsigned long representing the index of the data to add.
Return value
void
Example
This example shows the use of the mozSetDataAt() method in a dragstart handler.
function dragstart_handler(event)
{
 var dt = event.dataTransfer;
 var idx = dt.mozItemCount;
 // Add two new items to the drag transfer
 if (idx >= 0) {
 dt.mozSetDataAt("text/uri-list","_URL_ idx);
 dt.mozSetDataAt("text/html", "Hello World", idx+1);
 }
}
Specifications
This method is not defined in any Web standard.
Browser compatibility
BCD tables only load in the browser
See also


Different Images of Knowledge and Perspectives of Pedagogy in Confucius and Socrates
Zhong Jianwei
Confucius and Socrates, two cultural icons of the East and West, both declared they did "not know," which, however, held different concepts for them. First, I will critically examine their dialogue teaching practices to analyze the implications of "knowing" and "not knowing." Second, I will explore the different images of knowledge and visions of pedagogy each held.
Full Text:


Can NROC courses be installed in Google Classroom?
Unfortunately, no. Google Classroom is a way to manage web-based content (links), specialized apps, and Google's own tools for the classroom, but it does not allow for the import of course content from IMSCC or ZIP files, nor does it support LTI connections.
All NROC Courses require an LMS that supports IMSCC import or, in some cases, ZIP format. Additionally, both NROC Developmental Math with PreAssessments and NROC English require an LTI connection.
Until Google Classroom supports these industry standards, NROC courses will remain incompatible with Google Classroom. NROC courses can be installed in standard learning management systems that support IMSCC and LTI, such as Moodle, Canvas, Blackboard, Sakai, Schoology, and D2L.
Was this article helpful?
0 out of 0 found this helpful
Have more questions? Submit a request
Powered by Zendesk


text:
The Engagement Equation: Leadership Strategies for an Inspired Workforce
December 17, 2012
Posted by on
In The Engagement Equation: Leadership Strategies for an Inspired Workforce, authors Christopher Rice, Fraser Marlow, and Mary Ann Masarech provide a thorough guide for organizational leaders interested in improving work engagement. At the outset, they establish that engagement is a unique construct that is distinguishable from satisfaction, motivation, and commitment. Furthermore, employee engagement is an individualized equation expressed as the combination of maximum satisfaction for the individual and maximum contribution for the organization. From there, they discuss particular industries (e.g., where there is a high degree of interaction with customers) in which employee engagement particularly impacts results. Additionally, the authors caution against assuming measures that have increased engagement in one geographic region would similarly increase engagement in another.
A discussion about building a culture that supports engagement follows. The importance of helping employees identify their strengths, weaknesses, and needs in order to ensure job-fit, culture-fit, and suitable working conditions is highlighted. Providing career coaching and development services also goes a long way to help employees envision a career that mutually addresses the needs of both individuals and the organization.
Finally, The Engagement Equation covers possible pitfalls of implementing strategies to increase engagement. First, the authors warn that maintaining a high engagement culture is an ongoing effort. In other words, sporadic interventions here and there will not create the results desired. Secondly, organizational leaders, managers, down to everyone in the organization must be on board and responsible for their own engagement level. It takes engaged individuals to foster a culture of engagement. Finally, leaders must be prepared to follow through with an action plan in a timely manner once the initial engagement level assessment is taken. The authors caution against utilizing an engagement survey and not following-up with action as the interest in increasing engagement may then come across as disingenuous leading to even higher levels of employee disengagement. Alternative means of making the initial engagement assessment are provided.
It is difficult to provide an adequate summary of all the useful points made in this book. It provides a clear, comprehensive, and practical guideline for beginning and continuing an action plan to foster a culture of engagement. Furthermore, it will dispel some preconceived notions of how implementation of such a program should proceed (e.g., the assumption that it is most beneficial to start assessment with an employee engagement survey).

source: openbmb/Ultra-FineWeb


text:
Huitt-Zollars prepared a drainage master plan for the Fort Bliss Directorate of Public Works (DPW) in conjunction with US Army Corps of Engineers Fort Worth District (USACE). A significant portion of the existing drainage infrastructure is subjected to periodic stormwater inundation during intense rainfall events.
A vital component of the study was building a 2D hydrodynamic model of the Fort Bliss Main Cantonment storm drainage system. This complex stormwater model included analysis of 36 miles of storm drains, ditches, open channels, culverts, pump stations, and 41 detention ponds and retention ponds.
Recommended system improvements were developed based on the deeper insight gained from the wealth of information provided by the model simulations. An opinion of probable cost for all the recommended drainage system improvements has been estimated at $3.3M.

source: m-a-p/FineFineWeb


text:
How many people?
An activity for KS2 that is based around the landmark of the world population reaching 7 billion and what that might mean for us all.
Unpacking your backpack
This activity uses the idea of a backpack to engage in thinking critically about where our ideas, values, attitudes and assumptions come from. It is the key activity for using all of the Time 2 Think resources and introduces the main underlying principles.
Living side by side
This activity uses the picture book The Bad Tempered Ladybird as a stimulus for thinking about sharing and people's differing attitudes to living side by side with others.
Welcome to the Time 2 Think teaching resources. We will add to these as new content is developed and submitted. Browse below for a summary of each resource and click the title of each to access the full resource and any supporting materials. The buttons to the right provide a quick-link to the relevant key stage.
Who is responsible for climate change?
An activity for KS3 and above that uses different sets of national data as a stimulus to thinking about responsibility as it relates to climate change.
Our world's water
A KS2 activity that allows learners to think about the importance of water in our world and their relationship to this vital shared resource.
What are my values?
A KS2/3 activity that enables learners to better understand and think about their own values and how they influence their lives.
What is a crisis?
A KS2/3 activity that explore the idea of a crisis and supports learners to think about their own experience of crises and how they might respond.
Feeling at home
A KS1 activity that helps younger learners to think about the idea of 'home' through exploring animals and their habitats.
We Are All Born Free
A KS2 activity that uses the Amnesty International book 'We Are All Born Free' to help learners think about human rights. What are their rights and how would they feel if they were denied them?


text:
Along 600 miles of California's beautiful coast, lies 21 missions, founded by Father Junipero Serra. In 1782 Father Serra founded the Mission San Buenaventura laying the foundation for what would become Ventura. Ventura's Downtown area is home to numerous historical sites all within walking distance. Mission San Buenaventura Historic Park is a collection of historic and archaeological sites, both public and private, adjacent to Mission San Buenaventura in downtown Ventura, California, officially known as the City of San Buenaventura. These historic and archaeological areas are one of only three Mission sites in historic downtown commercial business districts in California (the others being San Luis Obispo and San Gabriel). The other 18 sites were originally in rural areas located away from the pueblos and presidios In some cases development and tourism has overrun Mission sites, but these sites are not true downtown business districts as one sees in most communities.
The sites of the Historic Park cover a wide range of locations from original buildings, excavated sites and open parkland, to lots occupied by later buildings. Even on those sites that have been occupied by later buildings, foundations of the original structures have been located.
Sitting a top California St. is our historic City Hall built in 1912. Classic columns and terra cotta invite you into it's ornate entry way and marble stair case. For the complete history of the design and construction our this Ventura landmark watch this video below.
Pick up a complimentary Mission San Buenaventura Archeological Site Walking Tour guide or a Historic Downtown Walking Tour Guide at the Ventura Visitors & Convention Bureau, 101 S. California Street, Downtown Ventura.


Tutorial 4: Adding KML and GeoJSON Export
Abstract
Learn how to use the spatial export capabilities of Pull Reports™ to export your relational data to KML and Geojson for search and viewing in a map.
In this tutorial, we build on the catalog configuration from Tutorial 3 by adding Export Report REST API configuration to enable GeoJSON and KML export results. Spatial export is possible in our report because the student table has a home_geom column which contains the PostGIS geometry point of the student's home.
Enabling GeoJSON and KML Export
In order to enable spatial export from the Export Report REST API, we first need to create two new columns on the report's base, student table to contain the KML and GeoJSON geometries as character strings. Fortunately, PostGIS provides the st_askml and st_asgeojson functions which may be used within an <output_transform> to transform the student.home_geom column to KML and GeoJSON geometries respectively.
For both new columns, we will set export="false" to prevent the raw KML or GeoJSON character strings from exporting to non-spatial export formats such as xml or json. Setting the columns to export="false" is only necessary if you feel the raw geometry columns should be excluded from non-spatial export.
Once the KML and GeoJSON columns are added to the base table, activate the Export Report REST API kml and geojson export formats by referencing the new spatial columns within <kml> and <geojson> elements respectively.
Finally, use a <placemark_name_template> element to create a custom placemark for each KML geometry. This custom placemark labels the geometry with a KML viewer such as Google Earth.
The complete XML Catalog file is now:
<?xml version="1.0" encoding="UTF-8"?>
<catalog xmlns="_URL_ id="class" name="Class Reports"
 xmlns:xsi="_URL_
 xsi:schemaLocation="_URL_
 _URL_
 <report id="student-information" name="Student Information">
 <export_config defaultColumns="firstn,lastn">
 <kml geometryColumnPath="@home-kml">
 <placemark_name_template>${@firstn} ${@lastn} Home</placemark_name_template>
 </kml>
 <geojson geometryColumnPath="@home-geojson"/>
 </export_config>

 <column id="id" name="id" displayName="Student ID" paramType="java.lang.Integer" export="false"/>
 <column id="firstn" name="first_name" displayName="First Name"/>
 <column id="lastn" name="last_name" displayName="Last Name">
 <filter_column_transform>upper(${this})</filter_column_transform>
 <filter_value_transform>upper(?)</filter_value_transform>
 <url_template>
 _URL_
 </url_template>
 <label_value_list>
 <label_value_query_default/>
 </label_value_list>
 </column>
 <column id="height_in" name="height_inches" displayName="Height (in)" paramType="java.lang.Double"/>
 <column id="bdate" name="birth_date" displayName="Birth Date" paramType="java.sql.Date">
 <output_transform>to_char(${this},'DD Mon YYYY')</output_transform>
 </column>
 <column id="bdate_yr" name="birth_date" displayName="Birth Date Year" paramType="java.lang.Integer">
 <output_transform>extract(year from ${this})</output_transform>
 <filter_column_transform>extract(year from ${this})</filter_column_transform>
 </column>
 <column id="bdate_month" name="birth_date" displayName="Birth Date Month" paramType="java.lang.Integer">
 <output_transform>extract(month from ${this})</output_transform>
 <filter_column_transform>extract(month from ${this})</filter_column_transform>
 <label_value_list>
 <label_values>
 <label_value value="1">January</label_value>
 <label_value value="2">February</label_value>
 <label_value value="3">March</label_value>
 <label_value value="4">April</label_value>
 <label_value value="6">May</label_value>
 <label_value value="7">June</label_value>
 <label_value value="8">July</label_value>
 <label_value value="9">August</label_value>
 <label_value value="10">October</label_value>
 <label_value value="11">November</label_value>
 <label_value value="12">December</label_value>
 </label_values>
 </label_value_list>
 </column>
 <column id="active" name="is_active" displayName="Active?"
 paramType="java.lang.Boolean" export="false"/>
 <column id="home-kml" name="home_geom" displayName="Home KML" export="false">
 <output_transform>st_askml(${this})</output_transform>
 </column>
 <column id="home-geojson" name="home_geom" displayName="Home GeoJSON" export="false">
 <output_transform>st_asgeojson(${this})</output_transform>
 </column>
 <pre_filter>@active=true</pre_filter>
 <relationship>
 <join_column columnName="student_id" referencedColumnName="id" />

 <column id="id" name="id" displayName="Assignment ID" paramType="java.lang.Integer"/>
 <column id="grade" name="grade" displayName="Grade"/>
 <column id="name" name="name" displayName="Name"/>
 <relationship join="inner" cardinality="one">
 <join_column columnName="class_id" referencedColumnName="id" />

 <column id="id" name="id" displayName="Class ID"
 paramType="java.lang.Integer" export="false"/>
 <column id="name" name="name" displayName="Class Name"/>
 <relationship>
 <join_column columnName="class_id" referencedColumnName="id"/>
 <join_column columnName="student_id" referencedColumnName="id" referencedTablePath="/student"/>

 <column id="rating" name="rating" displayName="Rating" paramType="java.lang.Integer"/>
 <column id="assessment" name="assessment" displayName="Assessment"/>
 <column id="assessment_date" name="assessment_date" displayName="Assessment Date" paramType="java.sql.Date"/>

 </relationship>

 </relationship>

 </relationship>
 <relationship>
 <join_table name="class_info.student_parent">
 <join_columns>
 <join_column columnName="student_id" referencedColumnName="id" />
 </join_columns>
 <inverse_join_columns>
 <join_column columnName="parent_id" referencedColumnName="id" />
 </inverse_join_columns>
 </join_table>

 <column id="id" name="id" displayName="Parent ID" paramT


text: A novel Zn2+-selective visible wavelength fluoroionophore (FluoZin-3, 9) was synthesized. The chelating portion of the molecule resembles known EGTA-based Ca2+-selective fluoroionophores, except that one of the N-acetic acid moieties has been deleted in 9. FluoZin-3 is virtually non-fluorescent in the absence of Zn2+, and exhibits a several hundred-fold fluorescence increase upon saturation with Zn2+( approximately 100 nM), with a Kd = 15 +/- 2 nM. A 1:1 binding stoichiometry of 9:Zn2+ was determined, and the fluorescence of the complex is pH-independent at pH > 6. FluoZin-3 was used to monitor Zn2+ that was co-secreted with insulin from pancreatic beta-cells by exocytosis following stimulation with glucose. The total Zn2+ concentration near the cells reached 600 nM, and Zn2+ was detectable at least 15 mum away from secreting cells. Heterogeneity in secretion among cells was indicated in that some cells in a cluster did not release Zn2+. Also, within secreting cells some regions of the cell membrane gave rise to secretion while others did not, suggesting active zones of secretion on the cell surface.


text:
The Primary Assembly is a legislative body under the Illuminatian government's Ultrabureau of the Legislative (UBL). The Primary Assembly is the lower legislative body of the legislative ultrabureau's tricameral legislature. The other continent-wide legislative houses include the Ancillary Assembly—the upper house relative to the Primary Assembly, and the Paramount Assembly—which is parallel to the other two houses. Additionally, specific municipalities are represented by Tertiary assemblies.
The Illuminatian Primary Assembly is composed of representatives who are democratically elected by a direct popular vote from geographically-defined electoral districts, very similar to most representative legislative bodies of early Earth. The Primary Assembly has multimember districts, with voters electing three members per representative district using ranked choice voting.
The multimember nature of electoral districts for the Primary Assembly allows for a highly proportional and balanced representation of constituents by a diverse roster of political candidates and elected representatives. The result is a more representative, less polarized legislative body compared to many of the historical political systems of Earth. Generally, this system provides for representation by multiple political parties in each geographic Primary Assembly district. Representatives are free to express support for multiple major and minor political parties, and the political parties as a result can afford to be less polarized toward extreme political viewpoints and less antagonistic toward one another.
The Primary Assembly is the largest of the three legislative bodies based on membership and is one of two bodies of the legislature in which the majority of members are accountable to a constituency from a defined local geographic area.
All Primary Assembly electoral districts in Illuminatia represent an equal number of constituents. Each district is centered on a primary population center, with the outer boundaries of the districts in sparsely-populated areas varying slightly from election to election based on new projected population numbers provided by the Office of Demography. Automated processes for defining district boundaries prioritize the numerical equity of district populations to guarantee equal representation and also prioritize the geographic compactness of the electoral district to ensure an absence of gerrymandering. Thanks to the intelligent nature of the Polling and Balloting Network, electoral districts can be defined with granular borders precise to the individual constituent level. Locations where the selection of electoral district boundaries might form irregularly-shaped borders are handled, when necessary, with randomizing algorithms, which place individuals in adjacent electoral districts on an even and uniform basis. The general geographic shape of most Primary Assembly electoral districts tend to resemble circles or hexagons.
Primary Assembly representatives, like all elected representatives in the Illuminatian government, are unpaid. They receive no salary for their role as representatives. However, they do receive full reimbursement for expenses incurred in the representation of their constituencies—including travel to Voston—as well as communication expenses.
- See article: Legislative process
Illuminatia's Primary Assembly is one of two possible entry points for legislation into the Ultrabureau of the Legislative's (UBL's) lawmaking process. The other legislative house through which legislation may originate is the Paramount Assembly. Legislation proposed by the Primary Assembly must be approved there by a majority vote or other agreed-upon level of majority before being passed on to the Ancillary Assembly—the upper house of the UBL.
Alternatively, legislation can be introduced in and passed unilaterally in the Paramount Assembly without approval of either the Primary or Ancillary assemblies, but only with a supermajority vote in Paramount Assembly exceeding 75%. Failing that, legislation may also pass from the Paramount Assembly with a lesser majority or plurality vote, but can only be approved with a supermajority vote in either the Primary or Ancillary assemblies.
After final approval by the legislative bodies of the UBL using any of the aforementioned channels, accepted legislation is traditionally forwarded to the Ultrabureau of the Executive (UBE) for final approval by Illuminatia's chief executive(s). Legislation approved via the appropriate UBL legislative processes but rejected by the Executive can instead be overcome with approval, jointly, in both the Ultrabureau of the Judiciary and the Ultrabureau of Control. This legislative process elegantly illustrates the effectiveness of both a tricameral legislature as well as the checks and balances afforded by a four-branch government.


text:
Freshman/Sophomore Seminar - Exploring the Short Story in the Philippines and Indonesia
In both the Philippines and Indonesia, the short story is an important vehicle for artistic, emotional and socio-political expression and experimentation. This seminar will introduce students to some of the major contemporary themes, including romance, resistance, gender, and the challenges of modernization and the new global order. The comparative perspective will enrich our understanding of the strong narrative traditions of these two important countries of island Southeast Asia. This seminar may be used to satisfy the Arts and Literature breadth requirement in Letters and Science.


text:
- Before starting the activity, it may be important to do an icebreaker session (like songs or jokes) to create a comfortable environment so that girls can take part in the discussion without any inhibition.
- Men and women have their own set of thoughts about their respective bodies. Both men and women give more importance to their outer appearance, e.g. face, hair, clothing and body structure.
- Very often we ignore our reproductive organs, and don't think and care about them much. Because of this we may expose ourselves to infections and other diseases.
- To encourage girls to think about their body and specific body parts.
- To make girls realize the importance of looking after their body.
- Ask the girls to sit in a circle.
- Ask them to close their eyes and breathe deeply and relax.
- Explain to the girls that you are going to name different body parts and they should either touch the body part or visualize that part in their mind.
- Emphasize to the girls that it is important they keep their eyes closed during this activity and they should only do what they feel comfortable doing.
- Slowly and softly name the following body parts one by one and give some time to girls to point them out: head, forehead, eyebrow, eyelid, nose, cheek, lips, chin, ears, chest, stomach, hands, fingers, waist, genitals, hips, buttocks, legs, knees, feet, toes. (Be sure to use those terms for the parts that are commonly used and known in the context that you are working).
- During the activity, observe girls' reactions and expressions.
- After the activity, tell girls to breathe slowly and to gradually open their eyes.
- Guide the discussion using the points given below.
- How do you feel after doing this activity?
- Do you feel anything different about your body? What?
- How do women usually feel about their body?
- Do women like to look at themselves in the mirror? When? Why?
- Why do you think it is important for women to feel comfortable about their body?
- What sort of relationship do women have with their body? Why?


Create an archive on the fly using the Create ZIP File class
 image
 Class Create ZIP File
 A very interesting class that forms a full-fledged work with ZIP archives.
 Create a class object: Add a file to the archive: Let's test the script, upload any file to our server (in my case it is file.data), and pack it into a zip archive and save to disk.
 $createZip = new createZip;
 $file = "FILE";
 $createZip - >addFile($file, "file.data");
 // Получим содержимое файла в виде одной строки
 $file = file_get_contents("file.data");
 $createZip->addFile($file, "file.data");
 $fileName = "file.zip";
 $fd = fopen ($fileName, "wb");
 $out = fwrite ($fd, $createZip -> getZippedfile());
 fclose ($fd);
 // Линк на наш архив
 $createZip -> forceDownload($fileName);
 Also popular now:


text:
Homeless people who do not get enough to eat use hospitals and emergency rooms at very high rates, according to a new study. One in four respondents to a nationwide survey reported not getting enough to eat, a proportion six times higher than in the general population, and more than two thirds of those had recently gone without eating for a whole day. The report will appear in the Journal of General Internal Medicine and has been released online.
"The study is the first to highlight the association between food insufficiency and health care use in a national sample of homeless adults," says lead author Travis P. Baggett, MD, MPH, of the Massachusetts General Hospital (MGH) General Medicine Division. "Our results suggest a need to better understand and address the social determinants of health and health-care-seeking behavior,"
Baggett and a team of investigators at MGH and the Boston Health Care for the Homeless Program analyzed survey data from 966 adult respondents to the 2003 nationwide Health Care for the Homeless User Survey. They found that homeless people who did not have enough to eat had a higher risk of being hospitalized in a medical or psychiatric unit than did those with enough to eat and also were more likely to be frequent users of emergency rooms. Neither relationship could be explained by individual differences in illness. Nearly half of the hungry homeless had been hospitalized in the preceding year and close to one-third had used an emergency room four or more times in the same year.
Baggett explains the study was sparked by his clinical experience caring for homeless individuals. "Homeless patients with inadequate food may have difficulty managing their health conditions or taking their medications. They may postpone routine health care until the need is urgent and may even use emergency rooms as a source of food. Whether expanding food services for the very poor would ameliorate this problem is uncertain, but it begs further study." Baggett is an instructor in Medicine at Harvard Medical School.
The senior author of the JGIM study is Nancy Rigotti, MD, MGH General Medicine. Additional co-authors are James O'Connell, MD, and Monica Bharel, MD, MGH and Boston Health Care for the Homeless; Daniel Singer, MD, MGH General Medicine, and Sowmya Rao, PhD, MGH Biostatistics. The study was supported by a grant from the Health Resources and Services Administration of the Department of Health and Human Services.
Celebrating the 200th anniversary of its founding in 1811, Massachusetts General Hospital is the original and largest teaching hospital of Harvard Medical School. The MGH conducts the largest hospital-based research program in the United States, with an annual research budget of nearly $700 million and major research centers in AIDS, cardiovascular research, cancer, computational and integrative biology, cutaneous biology, human genetics, medical imaging, neurodegenerative disorders, regenerative medicine, systems biology, transplantation biology and photomedicine.
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.

source: HuggingFaceFW/fineweb-edu


text:
Are you getting frustrated with your AirPods because they don't always connect to your devices? You're not alone! I know the feeling all too well. Whether it's streaming music or taking a call, having a device that just won't link up can be beyond annoying.
In this article, we'll explore why AirPods sometimes struggle to stay connected and what you can do to resolve the issue. We'll look at troubleshooting tips from experts as well as simple solutions I've learned over my years of using Apple products. By the end of this article, you will have enough knowledge to get your devices connected quickly and keep them linked for longer periods of time! So let's dive in and start fixing those troublesome AirPods!
So, Why are airpods not always connecting? AirPods may not always connect due to a variety of reasons, such as low battery, interference from other Bluetooth devices, or incorrect settings. To fix this issue, try resetting your AirPods and ensuring that they are in close proximity to the device you're trying to pair them with. Additionally, make sure that all software is up-to-date on both the AirPods and the device you're connecting them to.
Read also: why is my airpod case dying so fast?
Why are airpods not always connecting?
AirPods can sometimes be difficult to connect, but there are a few things you can do to make sure the connection is successful. First, make sure that your AirPods are charged and that Bluetooth is enabled on your device. Additionally, try resetting your AirPods by pressing and holding the setup button for at least 15 seconds until the light flashes amber then white. If this doesn't work, try restarting both your AirPods and your device or connecting them manually through Settings > Bluetooth on iOS devices or Control Panel > Devices & Printers on Windows devices.
Read also: why is my airpod case making a noise?
Bluetooth Interference and How it Affects AirPods Connection
AirPods are a revolutionary piece of technology, allowing users to instantly connect and listen to music, podcasts, or audio books from any Bluetooth-compatible device. However, AirPods are not without their drawbacks; one such issue is the susceptibility of AirPods connectivity to interference from other Bluetooth devices.
What Causes Interference?
- Too many devices in close proximity: When too many devices (such as phones) are in close proximity to each other, they can cause interference with the connection between the AirPods and your device.
- Wireless networks: Wireless networks can interfere with the connection if there is too much traffic on them at once.
- Other bluetooth connections: Other bluetooth connections nearby such as headsets or speakers can also interfere with your AirPod's connection.
How Can You Avoid Interference?
- Limit number of connected devices in range : Try to limit the number of connected Bluetooth devices that you have in range. This will help reduce potential interference issues when connecting your AirPods. Turn off Wi-Fi when not needed : Turning off Wi-Fi when it isn't needed can help reduce interference from wireless networks. li
- Charge them overnight or whenever possible
- Turn off features like 'Automatic Ear Detection' which may drain power faster
- Charge Your Devices: Sometimes it's easy to overlook the obvious – make sure both your AirPods and the charging case have enough battery life! Connect them to power for at least ten minutes before testing again.
- Check Bluetooth Settings: For proper functioning, ensure Bluetooth is enabled on your device and that it's close enough (within 10 meters) for wireless communication.
- Restart And Reconnect: If these checks didn't solve the issue, try restarting your device then reconnecting your pods again.
Battery Level and Its Effect on AirPods Connectivity
AirPods are the perfect companion for today's digital world. They offer effortless connection and superior sound quality, providing a seamless listening experience. However, there is one factor that can greatly affect how well they perform – battery level. As AirPods rechargeable batteries drain over time, their ability to connect wirelessly with your device will decrease as well. The lower your AirPods' battery levels get, the weaker their wireless signal becomes and the less reliable their connection will be.
Battery Level vs Connection Strength
As mentioned earlier, when you have low battery in your AirPods it affects the strength of its wireless signal and therefore its connection range with your device. This means that if you're trying to use them at a distance from where you placed them last or in an area with more interference than usual (e.g., near other Bluetooth devices), it's likely that they won't be able to hold onto the connection long enough to maintain a solid link between them and your phone or laptop – resulting in audio stuttering or even complete dropouts.
Tips For Maintaining Your AirPod Battery & Connectivity
To ensure optimal performance of your AirPods regardless of distance or interference levels always make sure to keep an eye on their battery level before using them for extended periods of time:
Troubleshooting Guide for Fixing Common Connectivity Problems with AirPods
Understanding The Connectivity Problem
The incredible convenience and compact design of AirPods make them a top choice for many. But like any tech, they can sometimes have issues – and often the most common problem people encounter is with connectivity. You might find that your AirPods just aren't connecting to your device, or maybe there's only sound in one ear. Perhaps you're finding that they disconnect repeatedly during use, or even refuse to charge properly. These problems can be highly frustrating but don't worry – help is at hand! In this guide we'll walk through some simple troubleshooting steps to get your AirPods behaving as they should.
First thing's first – let's cross off the basics from our troubleshooting checklist:
If you've tried these basic steps but are still experiencing issues, fear not; there are more advanced measures we can take which we will delve into next time round.
Read also: Why are airpods not as loud?


text:
Archival Content: _PHONE_
HIV Rapid Testing: Detroit Community-Based Participatory Research
Community Health Awareness Group (CHAG) and Wayne State University (WSU) Department of Community Medicine
Community Health Awareness Group (CHAG), the largest minority HIV/AIDS service organization in Michigan, began providing HIV Rapid Testing (HRT) in outreach settings in March of 2002. In three years over 3,000 individuals have been tested with 49 confirmed positives. Of HRT newly positive individuals, about one-third had previously been tested. The number of new-session or Conventional HIV Tests (CHTs) for the same period is about half the HRT and reflects a pattern of transition from CHT to HRT. This pace has accelerated to the point where CHTs are currently routinely given only for confirmatory reasons or at the request of a client.
Community HRT is currently offered to youth through seniors, men, women and transgenders from 6:30 am to 8 pm, Monday through Saturday, at thirty sites. The weekly schedule includes 13 substance abuse treatment centers (detox, pretreatment, outpatient and residential); 7 street corners/parks that are home to high volume traffic of individuals at high risk for HIV/STD/HepC; 4 homeless shelters/food kitchens; 3 primary care sites for uninsured persons; 2 specialized drop-in centers, including the Detroit Veteran's Center; and a legal justice facility, the downtown district court, which is in the center of the sex worker trade.
Community-Based Participatory Research is the foundation of the relationship between CHAG and the WSU Department of Community Medicine (CM). Development of research and evaluation protocol, assessment of program implementation, staff training, and strategic planning have been aided by CHAG's long term partnership with WSU. Through their partnership, CHAG and WSU have successfully adapted CDC's Project RESPECT/RESPECT2 protocols to HIV prevention outreach and HRT, promoting expansion of mobile testing to at-risk populations such as injection drug users, homeless persons and sex workers. The research relationship has had unanticipated benefits. For example, clients in a risk reduction study* were randomized to either CHT or HRT. Participation in research challenged CHAG program staff to explain to clients similarities and differences between the two tests, simultaneous facilitation of both types of tests, and strategies for delivery of test results.
Presented by: Harry L. Simpson, CHAG Director of Substance Abuse Services; Cindy Bolden Calhoun, CHAG Executive Director; Julie Gleason-Comstock, PhD, CHES, Assistant Professor, WSU CM
Research Partners: Harry L. Simpson and Cindy Bolden Calhoun, CHAG; Julie Gleason-Comstock PhD, CHES, Alicia Streater, PhD, Rosalind Rolack and Silas Norman, Jr., MD, WSU
*Funding for the research study was provided by the Blue Cross Blue Shield Foundation of Michigan. CHT and HRT program and evaluation funds were provided by the Michigan Department of Community Health and DHHS Centers for Disease Control
This CDC Web site is no longer being reviewed or updated and thus is no longer kept current. This site remains to assist researchers or others needing historical content.


text:
A selected history of sustainability in Maine.
- By: Joshua F. Moore
Mainers were living sustainable lives long before pioneering homesteaders Scott and Helen Nearing moved here in the fifties and prompted waves of young people to drop out and move "back to the land." Over the past six decades, Maine has experienced suburbanization and sprawl, but the Pine Tree State remains one of those increasingly rare places where people still live close to nature and sustainability seems less a consumer trend than a part of the Down East heritage. Here are some local milestones in green living.
Scott and Helen Nearing, authors of Living the Good Life: How to Live Sanely and Simply in a Troubled World, settle in Harborside, on Cape Rosier. Over the next half century, more than a million people follow their example of simple living in Maine and elsewhere.
Rachel Carson, who would write Silent Spring, joins a handful of Mainers concerned about unchecked development to form a branch of the Nature Conservancy — the fourth such chapter in the country— to seek a balance between habitat protection and economic prosperity.
The Natural Resources Council of Maine (NRCM) is founded. In time, NRCM takes a leading role in the establishment of the Land Use Regulation Commission, the passing of the Growth Management Law, the campaign for Maine's solid waste and recycling law, and more.
After more than a century of operations, passenger trains stop servicing the Boston-to-Portland run, as more Americans turn to automobiles to access the Pine Tree State.
Peter Cox and John N. Cole create Maine Times, an alternative newspaper focused on environmental journalism, progressive politics, and simple living.
Peggy Rockefeller and Tom Cabot form the Maine Coast Heritage Trust, pioneering the use of conservation easements as a way to protect land. Since its founding, the trust has protected more than 125,000 acres in Maine, including more than 250 entire coastal islands.
Tom and Kate Chappell discover that natural toothpaste can be a big business in Kennebunk. Their Tom's of Maine brand becomes a pioneer in the fledgling natural-care industry. In 2006, the Chappells sell 84 percent of their company to Colgate-Palmolive but retain enough of a controlling interest to ensure that the company's environmentally sensitive policies remain in place.
Charlie Gould, a cooperative extension agent in Lewiston, fields so many questions about organic farming that he gathers farmers for a meeting. That group becomes the Maine Organic Farmers and Gardeners Association (MOFGA), a forceful advocate for growing food without chemical fertilizers or pesticides and sponsor of the Common Ground Country Fair.
Twenty-three-year-old Rob Johnston, Jr. moves his fledgling mail-order seed company from his family home in Massachusetts to Maine, quickly establishing Johnny's Selected Seeds as the go-to source for vegetable, flower, medicinal, and culinary herb seeds. Johnston's five-hundred-dollar startup would grow to an enterprise with two Maine locations, eighty full-time employees, and a distribution center that ships Maine seeds to more than fifty countries.
Pat and Patsy Hennin start the Shelter Institute in Bath, eventually moving operations to a sixty-eight-acre campus in Woolwich, and instruct thousands of students in the finer points of timber-frame construction.
Maine Audubon opens its Energy Education Center, designed by architect Richard Renner [page 44], at Gilsland Farm in Falmouth, to inspire Mainers to incorporate energy-saving devices — like the center's solar panels, wood-fired furnace, and wind turbines — into their own homes.
Maine's first food co-op opens in Belfast, working out of an eight-hundred-square-foot storefront. The co-op's unique labor system, with discounts offered for volunteers, proves a success as the shop expands twice in less than two decades, to a six-thousand-square-foot facility. Gross sales stand at more than three million dollars annually.
Marion Fuller Brown, a legislator and champion of Maine's scenic beauty, succeeds in passing a law banning billboards from Maine highways.
Maine's "bottle bill," the second such law in New England to require a refundable deposit on all soda, beer, and liquor bottles, takes effect. Litter begins disappearing from the state's roadsides almost overnight.
The Woodex plant in Lincoln begins producing three hundred tons of wood pellets a day from compressed sawdust, bark, and chips. Maine becomes the first state in the country to have an established retail-distribution network for such pellets, which sell for $125 a ton (most homes require between six and eight tons of pellets during a heating season).
Roxanne Quimby and Burt Shavitz, of Dexter, start selling candles made from beeswax, a byproduct of Shavitz's honey business. Quimby goes on to create a line of natural skin-care products, eventually moving her company to North Carolina in 1993 before finally selling it in 2007 for just under a billion dollars.
Photo Credit: Jennifer Baum
The Maine Green Independent Party is formed, the first such party in the United States [see page 19].
The Portland Fish Exchange opens, handling thirty million pounds of groundfish annually. Twenty-three years later, following the collapse of marine species in the Gulf of Maine, the exchange processes less than eight million pounds a year, requiring a city subsidy to stay afloat.
Maine's revised Sand Dune Law takes effect, restricting the use of seawalls, jetties, and breakwaters and requiring that certain coastal structures more than half-destroyed during a storm be torn down or moved. Maine's shoreland-zoning law becomes an examplar for states on both coasts.
Willow Pond Farm in Sabattus opens as the state's first community-supported agriculture (CSA) farm, offering members a share of the harvest in exchange for a flat fee. Today there are more than a hundred CSAs operating in Maine.
At a stretch break during a Portland City Council workshop, Tom Jewell, Nathan Smith, Dick Spencer, and Cathy Stivers create the Portland Shoreway Access Coalition, which evolves into the nonprofit Portland Trails. To date the group has created more than thirty miles of biking and walking trails in Greater Portland.
The Bicycle Coalition of Maine, a nonprofit organization dedicated to making the state more biker friendly, is founded.
From their farm in Harborside, Eliot Coleman and Barbara Damrosch serve as co-hosts of Gardening Naturally, a TV program on the Learning Channel viewed by millions. Coleman's The New Organic Grower becomes the bible on the subject.
Ellie Daniels and three friends open the Green Store in Belfast, aiming to "promote personal and planetary well-being" by offering environmentally friendly products and information.
The Colony Hotel in Kennebunkport joins the "Green" Hotels Association as a charter member, leading the push to encourage hotel guests to reuse towels and conserve water.
Edwards Dam in Augusta becomes the first dam in the nation to be denied its license renewal under a federal law that requires a review of the environmental impact of a dam compared with the value of the electricity it produces. Two years later the dam is breached, depriving the state of 3.5 megawatts of power — but restoring native sea-run fish to the Kennebec River.
Hoping to build on the success of the longest-running farmer's market in the country, the Libra Foundation opens the Portland Public Market. The Preble Street bazaar fails to attract enough shoppers, however, and the market closes its doors in 2006. The farmer's market survives, returning to Monument Square, one of its earliest locations.
A fleet of free, propane-powered buses is launched at Acadia National Park to reduce gridlock. To date the buses have prevented more than twenty-five tons of harmful chemicals from entering the air and effectively removed more than nine hundred passenger cars from the park roads every summer day.
Martin Grohman forms Correct Building Products, which manufactures decking materials out of 60 percent recycled hardwood sawdust and 40 percent polypropylene, proving that construction materials made from recycled materials can be as durable as old-growth lumber.
The Maine Farmland Trust is formed in Bucksport to preserve working farmland through easements. Two years later the organization creates FarmLink, which connects would-be farmers with people looking to retire and sell their farms. To date the organization has made thirty-seven matches, keeping 3,105 acres of Maine farmland in active production.
Amtrak launches the Downeaster between Boston and Portland, reestablishing passenger rail service to reach Maine. The Downeaster carries 1.4 million passengers in its first five years.
Farm Fresh Connection is established to provide college dining halls with local food. Bowdoin is promptly named by the Princeton Review as having the best food in the country, an accolade it maintains for three of the next four years.
Oakhurst Dairy, based in Portland, is sued by the agribusiness giant Monsanto, which alleges that Oakhurst's "farmers' pledge" of not using artificial growth hormones implies that milk from hormone-treated cows is harmful. Oakhurst agrees to add a disclaimer saying that the FDA has found no significant difference between the two types of milk, but five years later Monsanto divests itself of its hormone-treatment business.
Scarborough voters defeat a "Great American Neighborhood" concept that would have controlled sprawl by creating a compact village and protected hundreds of acres of land, alas.
Backyard Beauties, a twenty-four-acre greenhouse where tomatoes are grown year-round, is founded in Madison, becoming New England's largest indoor-growing facility.
Maine's e-waste law goes into effect, requiring the recycling of computer monitors. The state also passes a law requiring that appliance manufacturers pay a


Wealth, mortality link baffles researchers
There's a downside to having a booming economy: mortality in older and middle-aged people rises as a country's prosperity increases, research finds.
A study of 19 developed countries found short-term mortality among both 70-74-year-olds and 40-44-year-olds rose as gross domestic product picked up.
The effect was stronger in men than women, according to the study, which spanned 1950 to 2008.
It included Australia, the US and UK.
"In times of economic turmoil and population


status code. Conventionally, code zero indicates success, non-zero an error. The program terminates immediately; deferred functions are not run.
For portability, the status code should be in the range [0, 125].
func Expand
func Expand(s string, mapping func(string) string) string
Expand replaces ${var} or $var in the string based on the mapping function. For example, os.ExpandEnv(s) is equivalent to os.Expand(s, os.Getenv).
Example
Code:
mapper := func(placeholderName string) string {
 switch placeholderName {
 case "DAY_PART":
 return "morning"
 case "NAME":
 return "Gopher"
 }
 return ""
}
fmt.Println(os.Expand("Good ${DAY_PART}, $NAME!", mapper))
Output:
Good morning, Gopher!
func ExpandEnv
func ExpandEnv(s string) string
ExpandEnv replaces ${var} or $var in the string according to the values of the current environment variables. References to undefined variables are replaced by the empty string.
Example
Code:
os.Setenv("NAME", "gopher")
os.Setenv("BURROW", "/usr/gopher")
fmt.Println(os.ExpandEnv("$NAME lives in ${BURROW}."))
Output:
gopher lives in /usr/gopher.
func Getegid
func Getegid() int
Getegid returns the numeric effective group id of the caller.
On Windows, it returns -1.
func Getenv
func Getenv(key string) string
Getenv retrieves the value of the environment variable named by the key. It returns the value, which will be empty if the variable is not present. To distinguish between an empty value and an unset value, use LookupEnv.
Example
Code:
os.Setenv("NAME", "gopher")
os.Setenv("BURROW", "/usr/gopher")
fmt.Printf("%s lives in %s.\n", os.Getenv("NAME"), os.Getenv("BURROW"))
Output:
gopher lives in /usr/gopher.
func Geteuid
func Geteuid() int
Geteuid returns the numeric effective user id of the caller.
On Windows, it returns -1.
func Getgid
func Getgid() int
Getgid returns the numeric group id of the caller.
On Windows, it returns -1.
func Getgroups
func Getgroups() ([]int, error)
Getgroups returns a list of the numeric ids of groups that the caller belongs to.
On Windows, it returns syscall.EWINDOWS. See the os/user package for a possible alternative.
func Getpagesize
func Getpagesize() int
Getpagesize returns the underlying system's memory page size.
func Getpid
func Getpid() int
Getpid returns the process id of the caller.
func Getppid
func Getppid() int
Getppid returns the process id of the caller's parent.
func Getuid
func Getuid() int
Getuid returns the numeric user id of the caller.
On Windows, it returns -1.
func Getwd
func Getwd() (dir string, err error)
Getwd returns a rooted path name corresponding to the current directory. If the current directory can be reached via multiple paths (due to symbolic links), Getwd may return any one of them.
func Hostname
func Hostname() (name string, err error)
Hostname returns the host name reported by the kernel.
func IsExist
func IsExist(err error) bool
IsExist returns a boolean indicating whether the error is known to report that a file or directory already exists. It is satisfied by ErrExist as well as some syscall errors.
func IsNotExist
func IsNotExist(err error) bool
IsNotExist returns a boolean indicating whether the error is known to report that a file or directory does not exist. It is satisfied by ErrNotExist as well as some syscall errors.
Example
Code:
filename := "a-nonexistent-file"
if _, err := os.Stat(filename); os.IsNotExist(err) {
 fmt.Println("file does not exist")
}
Output:
file does not exist
func IsPathSeparator
func IsPathSeparator(c uint8) bool
IsPathSeparator reports whether c is a directory separator character.
func IsPermission
func IsPermission(err error) bool
IsPermission returns a boolean indicating whether the error is known to report that permission is denied. It is satisfied by ErrPermission as well as some syscall errors.
func IsTimeout
func IsTimeout(err error) bool
IsTimeout returns a boolean indicating whether the error is known to report that a timeout occurred.
func Lchown
func Lchown(name string, uid, gid int) error
Lchown changes the numeric uid and gid of the named file. If the file is a symbolic link, it changes the uid and gid of the link itself. If there is an error, it will be of type *PathError.
On Windows, it always returns the syscall.EWINDOWS error, wrapped in *PathError.
func Link(oldname, newname string) error
Link creates newname as a hard link to the oldname file. If there is an error, it will be of type *LinkError.
func LookupEnv
func LookupEnv(key string) (string, bool)
LookupEnv retrieves the value of the environment variable named by the key. If the variable is present in the environment the value (which may be empty) is returned and the boolean is true. Otherwise the returned value will be empty and the boolean will be false.
Example
Code:
show := func(key string) {
 val, ok := os.LookupEnv(key)
 if !ok {
 fmt.Printf("%s not set\n", key)
 } else {
 fmt.Printf("%s=%s\n", key, val)
 }
}
os.Setenv("SOME_KEY", "value")
os.Setenv("EMPTY_KEY", "")
show("SOME_KEY")
show("EMPTY_KEY")
show("MISSING_KEY")
Output:
SOME_KEY=value
EMPTY_KEY=
MISSING_KEY not set
func Mkdir
func Mkdir(name string, perm FileMode) error
Mkdir creates a new directory with the specified name and permission bits (before umask). If there is an error, it will be of type *PathError.
func MkdirAll
func MkdirAll(path string, perm FileMode) error
MkdirAll creates a directory named path, along with any necessary parents, and returns nil, or else returns an error. The permission bits perm (before umask) are used for all directories that MkdirAll creates. If path is already a directory, MkdirAll does nothing and returns nil.
func NewSyscallError
func NewSyscallError(syscall string, err error) error
NewSyscallError returns, as an error, a new SyscallError with the given system call name and error details. As a convenience, if err is nil, NewSyscallError returns nil.
func Pipe
func Pipe() (r *File, w *File, err error)
Pipe returns a connected pair of Files; reads from r return bytes written to w. It returns the files and an error, if any.
func Readlink(name string) (string, error)
Readlink returns the destination of the named symbolic link. If there is an error, it will be of type *PathError.
func Remove
func Remove(name string) error
Remove removes the named file or (empty) directory. If there is an error, it will be of type *PathError.
func RemoveAll
func RemoveAll(path string) error
RemoveAll removes path and any children it contains. It removes everything it can but returns the first error it encounters. If the path does not exist, RemoveAll returns nil (no error). If there is an error, it will be of type *PathError.
func Rename
func Rename(oldpath, newpath string) error
Rename renames (moves) oldpath to newpath. If newpath already exists and is not a directory, Rename replaces it. OS-specific restrictions may apply when oldpath and newpath are in different directories. If


Uniform Driver Interface
From OSDev Wiki
Jump to: navigation, search
The official Project UDI logo
The UDI revival effort maintains an IRC channel on Freenode (irc.freenode.net), called _TAG_. Feel free to join and ask questions.
UDI stands for "Uniform Driver Interface". It is the specification of a framework and driver API / ABI that enables different operating systems (implementing the UDI framework) to use the same drivers. Conceived by several large industry corporations, it has fallen dormant, despite being functional and delivering on its promise.
UDI drivers are binary compatible across all UDI-compliant operating systems running on the same CPU family. They are also source compatible across all UDI-implementing operating systems. This means, a driver only has to be developed once.
While Microsoft Windows gets all the hardware drivers they want, and GNU discourages UDI for philosophical reasons, its advantages for hobbyist OS developers are obvious.
Why UDI?
The Uniform Driver Interface would, should it be widely adopted, provide a common driver framework for implementation across kernels and platforms, enabling drivers to be provided without respect to the target kernel, and to a large extent, the target hardware platform. UDI has several projected advantages over existing driver interfaces which may motivate the reader to adopt it:
 - Portability (both cross-OS and cross-platform), which was mentioned in the above section, is perhaps the primary concern for which UDI was developed in the first place. All we can hope for is that enough operating systems will embrace the model so we can actually take advantage of it.
 - Performance is comparable or better than that of custom, native API drivers for a native UDI implementation. For environments where performance is critical, UDI does not inhibit service quality. UDI is explicitly designed to be non-blocking and lockless, featuring a synchronization model for increased MP scalability without locking and many other high-scalability focused features.
 - UDI can integrate seamlessly into existing kernel environments regardless of the OS architecture (monolithic kernel vs. microkernel, POSIX vs. non-POSIX, etc.) with little or no extra performance overhead.
 - Reliability and stability have been explicitly provided for by the design. UDI tries to eliminate some categories of potential bugs, such as (but not limited to) resource leaks and deadlocks (all interfaces can potentially be implemented without any locking at all).
 - Flexibility is another thing UDI has been designed mind with: not only in the way the specification was conceived (i.e., to be extensible), but also in the sense that it permits system programmers to apply techniques such as driver isolation, shadow drivers, etc. if they see fit to do so.
 - The interface is fully asynchronous, in every respect; high scaling systems are becoming increasingly predominant and asynchronicity is slowly becoming an "expected" feature for modern kernels. UDI moves ahead of the herd to enable a compliant kernel to slowly adopt asynchronous interfaces without having to do major redesign later on.
 - Moderately complex, and it will generally take a while to understand the specification.
 - It cannot simply be ported to immature kernels. A kernel must have a certain minimum level of maturity to reasonably attempt to become UDI compliant.
 - Not at all viable for "casual" projects: requires a significant amount of foreknowledge and prior work.
Core components of UDI Drivers
High level view of UDI environments
An implementation of the Uniform Driver Interface specification is known as a UDI Environment. There is a reference implementation available (see link below) which provides usable code for several existing kernels (Linux, BSD, Solaris), and it can be used the basis for a fresh implementation. Kernel environment implementations are responsible for providing the Service Call interfaces specified by the UDI Standard; a kernel may choose to implement these as native system calls, or via library extensions -- the decision is up to the implementer. There are two types of service calls recognized by the UDI paradigm: synchronous (which will return immediately to the caller - i.e., to the driver) and asynchronous (which work through a callback mechanism).
UDI drivers also actively take part in identifying their child devices and helping to build the host kernel's device tree. Bus drivers enumerate children, and so on. Each of these buses may have several controllers attached. UDI drivers for these devices will interact in a tree-like fashion just as the hardware does. Let's take a closer look at drivers themselves!
Drivers are split into one or more modules, and each module has at least once region. A driver that has been instantiated (executed, so to speak) uses IPC calls ("Channel operations") to communicate between modules and regions. If a driver is used to instantiate more than one device (say, a disk driver used to instantiate two separate disk devices), the choice of whether the actual driver code is mapped using Copy-on-Write, or duplicated in memory, etc is up to the environment.
A module is essentially a single executable code object. Specifically, drivers can be broken into multiple executables. A large driver that may only need to load certain components and may not need all of its code in memory all the time may be implemented as a multi-module driver. This partitioning of the driver code into modules is up to the driver vendor of course. Most UDI drivers are expected to be single-module drivers, but complex drivers such as graphics card drivers, etc may be best implemented as multi-module drivers. For example, if a graphics driver exports an OpenGL 3D API along with a Direct3D API, it is very likely that both front-ends have a lot of code behind them that would occupy a lot of memory should both be loaded. Most kernels will use either OpenGL or Direct3D, so if such a graphics driver was to split its OpenGL and Direct3D implementations into separate modules, this would enable kernels loading that driver to avoid allocating memory for the code and data for the API it isn't using.
Main article: UDI Regions
Regions are nothing more than blocks of related data. For example, a network card may have a set of register states that are specific to its send() function, and a different set of stats and variables specific to its receive() function. Data is explicitly separated into functionality regions in UDI. A region is nothing more than driver-allocated data for its state variables. The most intuitive way to split driver data is into functionality sub-components of the device in question. So a network card driver may choose to have a send region and a receive region. A graphics driver write may choose to partition the driver into a framebuffer writing region, a transformation region, etc, etc. Then IPC request messages can be sent over UDI IPC channels to each region based on the purpose of that region.
Regions also form the unit of concurrent execution in UDI. Since Regions are nothing more than data, they are also the units which must be synchronized against concurrent writes. Generally, this means making sure that no two threads can modify region data at once. The design of the UDI interfaces is perfectly capable of working without the use of locking, and it is left up to the host OS Environment to choose whether it will use lockless algorithms, spinlocks, waitqueues, or some other method to ensure that no two threads modify region data at the same time. See the main article for a detailed explanation of several practically usable UDI synchronization models.
Another attribute of UDI regions is that they are locationand instance-independent, meaning that they can be moved from one place to another without affecting any of the other regions because they share no common state. That is, a driver can be marshaled and moved from one NUMA node to another, or one physical machine to another over a network, or any other similar type of migration. This is particularly interesting in multiprocessor systems (esp. NUMA), and high-scaling compute clusters because an environment may separate regions due to performance and resource constraints. It's worth mentioning that, because of the separate states, the tasks performed by regions are mutually-exclusive (for instance a network driver might have one region that handles sending packets and another receiving). This is a potential area where host OSs can make huge optimizations to remove performance bottlenecks.
Main article: UDI Channels
The only way for regions to communicate is through channels. Channels are an IPC-agnostic abstraction of a bi-directional communication mechanism. Each of the two channel endpoints provide an ops vector, which is a set of entry points. They are referenced via handles of type udi_channel_t (check the definition of handles below). The channel operations along with the associated functionality is defined by metalanguages. Metalanguages are separately defined for each class of drivers, but we'll get to that soon.
Main article: Metalanguages
Metalanguages define extensions to the core specification for various purposes, and can also be used to define custom IPC protocol APIs between modules/regions. An example of a case where a custom protocol API may be needed is where, for example, a network card driver has a "Control" region which takes commands from the kernel for power management ("Go to sleep", "prepare to shutdown", etc), and then it has a Send() region and Receive() region, which handle its send() and receive() functions respectively.
It follows naturally that if the driver receives a "Go to sleep" command from the kernel on its Control region, it would need to send messages to its Send and Receive regions to cause them to cease operation. There is no generic IPC_Send() function defined for IPC across UDI channels -- all IPC must be done according to the protocols APIs defined by a Metalanguage, whether standardized by the UDI spec, or custom-defined. Thankfully, driver writers do not need to define custom protocols for every such case where they want to


text:
What's wrong with the critical functionality curve for resilience?
The critical functionality curve (CFC) is a visual representation of resilience that maps the function of an infrastructure system (e.g., water provision) over time to show loss and recovery of services during disruptive events. In the last decade, the CFC has become one of the most popular models for infrastructure resilience because it corresponds to well-established definitions of risk and emergency management practices. The CFC is also the basis for many quantitative measures of resilience by measuring the difference between service provision during normal and disrupted operations. Despite its popularity, the CFC is rarely used to map the events of real infrastructure crises and is only used to explain resilience concepts or to measure the output of theoretical models. This means the CFC remains unvalidated in practice and associated quantitative measures of resilience may not provide expected decision support. In this work, we overview events in 2017 when the tallest dam in the United States, the Oroville dam, nearly collapsed and produce a variety of CFCs for the event. We find quantitative measures of resilience are sensitive to the choice of critical function (e.g., water storage vs. water release) and timescale of the event, confounding resilience assessment. More importantly, we find any insight gained from the CFC relies on outdated assumptions about dam infrastructure that do not represent the adaptive actions that saved the dam. Taken together, we conclude that the CFC is an inappropriate model for resilience by encouraging the wrong interpretation of the events at Oroville and masking understandings that may promote adaptive capacity to future crises.
Copyright (c) 2019 Daniel Eisenberg, David Alderson, Thomas Seager
This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.


_USER_ { author = {Bayati, Mohsen and Akbarian, Reza and Kavosi, Zahra}, title = {Determinants of Life Expectancy in Eastern Mediterranean Region: A Health Production Function}, journal = {International Journal of Health Policy and Management}, volume = {1}, number = {1}, pages = {57-61}, year = {2013}, publisher = {Kerman University of Medical Sciences}, issn = {2322-5939}, eissn = {2322-5939}, doi = {10.15171/ijhpm.2013.09}, abstract = {Background Determinants of health or health production function in health economics literature constitute noticeable issues in health promotion. This study aimed at estimating a health production function for East Mediterranean Region (EMR) based on the Grossman theoretical model. Methods This ecological study was performed using the econometric methods. The panel data model was used in order to determine the relationship between life expectancy and socioeconomic factors. The data for 21 EMR countries between 1995 and 2007 were used. Fixed-effect-model was employed to estimate the parameters based on Hausman test. Results In estimating the health production function, factors such as income per capita (β=0.05, P<0.001), education index (β=0.07, P<0.001), food availability (β=0.01, P<0.001), level of urbanisation (β=0.10, P<0.001), and employment ratio (β=0.11, P<0.001) were specified as determinants of health status, proxied by life expectancy at birth. A notable result was the elasticity of life expectancy with respect to the employment rate and its significance level was different between males (β=0.13, P<0.001) and females (β=0.08, P>0.001). Conclusion In order to improve the health status in EMR countries, health policymakers should focus on the factors which lie outside the healthcare system. These factors are mainly associated with economic growth and development level. Thus, the economic stabilisation policies with the aim of increasing the productivity, economic growth, and reducing unemployment play significant roles in the health status of the people of the region.}, keywords = {Health Production Function,Healthcare System,Life Expectancy,Eastern Mediterranean Region,Panel Data Model}, url = {_URL_ eprint = {_URL_ }


text:
The Center hosts spring break and summer day archaeology camps for kids at the Legacy Plaza Museum Annex. These camps give school children the opportunity to learn about Central Texas prehistory through guided interactive activities such as flint knapping and archaeological excavation at a dig site located behind the Annex. An on-site hearth and bedrock mortar will provide hands-on experiences for kids to learn about ancient plant processing and cooking technologies.
The Center is creating a teacher training facility equipped with a computer bank, wireless networking hookups and filming equipment at the Legacy Plaza Museum Annex to share effective teaching strategies and techniques. Classroom enrichment activities exploring and presenting the various interrelated concepts and practice skills specified in the Texas Essential Knowledge & Skills state-mandated curriculum guidelines are also being developed for email distribution to public school teachers.
Scholar in Residence Program
The Scholar in Residence Program provides research and training opportunities for students and faculty in archaeology, botany and related fields through partnerships with colleges and universities. Visiting scholars are offered the opportunity to stay at the Legacy Plaza Museum Annex during their residency.
Thousands of archaeological and native plant collection sites are scattered across the rural Mills County area. However, because most of these sites are located on private ranches, they are inaccessible to the public. Through partnerships with over 100 landowners in the region, the Center conducts guided tours of archaeological and native plant collection sites for visitors of all ages.


kent place names - h
Hadlow was first recorded in the Domesday Book as Haslow. Its name probably goes back to two Old English words, hæth heather and hlaw hill, mound, so the sense is of a hill growing with heather.
Halling seems to go back to the Old English personal name Heall, in this case describing a settlement associated with Healls family or followers. The root is Old English ingas family, followers, seen more clearly in the towns first recorded form, in the eighth century, of Hallingas.
Halstead is literally a safe place or a place of refuge. It goes back to the Old English hald refuge, shelter, here combined with stede for a general site or place. The place-name is first found on record in about 1100 as Haltesteda.
Hamstreet - The name is Saxon meaning the enclosure on the road, originally the place was simply known as Ham. The original settlement was a mile up the road at Orlestone but the population shifted due to fresh spring water being discovered in Hamstreet.
High Brooms was originally broom growing near a bridge or broom growing on a ridge. Its earliest recorded form, Bromgebrug in 1270, suggests Old English roots of brom broom with either brycg bridge or hrycg ridge. Somewhere along the way this affix was dropped, however, and replaced by the more general qualifier high.
High Halden was first recorded under a rather longer name Hadinwoldungdenne, to be precise, in around 1100. The sense is of a woodland pasture associated with a man called Heathuwald, from the Old English denn woodland pasture. The High is a later addition.
Halstow is literally a holy place. It goes back to the Old English stow, which was used for a general place as well as a place of assembly or, as here, a holy place. It is combined and reinforced with halig holy. Kent has a High Halstow and a Lower Halstow, first recorded in about 1100 as, respectively, Halgesto and Halgastaw.
Ham is a common name found all over England, and Kent is no exception. It comes from the Old English hamm, which had a variety of meanings, essentially to do with an enclosure of land, often delimited by water or the bend of a river, or sometimes by higher ground. Kents Ham was first recorded in the Domesday Book as Hama.
Harbledown first appears in 1175 as Herebolddune. The final element is an Old English dun or hill, and the first part is probably a personal name. The sense is thus of Herebealds hill.
Harrietsham looks like it may be a river-meadow near the army quarters. The last element is Old English hamm river-meadow, enclosure, and the name also contains here army and geard yard, enclosure. Unfortunately, these two elements also made up an Old English personal name, so the town could also be simply Heregeards meadow. It first appears in the records in the tenth century as Herigeardes hamm.
There are two Hartleys in Kent, one near Cranbrook and the other near Longfield. The first has the longest recorded history of the two, first mentioned in 843 as Heoratleag, while the other is not found until the Domesday Book, in which it appears as Erclei. The name comes from Old English heorot, a hart or stag, here combined with leah field, clearing, giving a sense of a clearing frequented by harts.
Hartlip goes back to Old English hliep, which meant a gate or fence. Here we have a gate over which harts leap, hliep being combined with the word for a hart or stag, heorot. It was first seen on record as Heordlyp in the eleventh century.
Hastingleigh is immediately identifiable as a field, an Old English leah. In this case it is one associated with the followers or family of Hæsta, from ingas family, followers. It is first seen in 933 as Hæstingalege.
Hawkhurst was first recorded in 1254 as Hauekehurst. A hurst is an Old English hyrst or wooded hill, so here we have simply a wooded hill frequented by hawks. (Hawk itself comes from the Old English hafoc.)
Hawkinge, like Hawkhurst, is associated with the hawk (Old English hafoc). The final element is Old English -ing, denoting a place characterised by or associated with a certain thing. The town is first mentioned on record in 1204 as Hauekinge.
Hawley is literally a holy woodland clearing, from the Old English halig holy and leah field, clearing. It was first recorded in the Doomesday Book as Hagelei.
Headcorn is a bit of a mystery. It is first seen in about 1100 as Hedekaruna, and may be an eponym. The theory is that it goes back to Old English hruna, used for a tree-trunk and by extension, probably a bridge. In this case the town would be literally Hydecas tree-trunk.
Herne Bay is etymologically a place on a corner of land. It comes from the Old English hyrne angle, corner and was first recorded in about 1100 as Hyrnan.
Hernhill goes back to roots different from those of Herne Bay. Here we are looking at Old English har grey for the first element, the second of course representing hyll hill. It was first recorded around 1100 as Haranhylle, where we can see that har has the dative ending -an.
Hever is first seen on record in 814 as Heanyfre. The end of this word is Old English yfre, used for the edge or brow of a hill. The first element is heah high, seen here in its dative form hean. The sense is thus of a high hill-edge: a convenient place for a castle.
Higham is simply a high enclosure or a high homestead, the case depending on whether the last element is Old English ham or hamm. The first element of the place-name is clearly high, which goes back to Old English heah, and the town was first recorded in 1242 as Hegham. Higham Upshire is first found as Heahhaam in 765, and its affix means a higher district, from the Old English upp and scir.
Hildenborough was originally just Hilden or, in its thirteenth-century form, Hyldenn. The elements here are Old English hyll hill and denn woodland pasture, so the sense is of a pasture on or by a hill. By 1349 the name has become Hildenborough, having acquired the affix from burh manor, borough.
Hinxhill is etymologically the stallions hill. It comes from the Old English hengest stallion, and the town was first recorded as Haenostesyle in about 1100.
Hoath is only slightly disguised from its original meaning, indicating a place at a heath. The place-name first appears on record in the thirteenth century as La Hathe, and the root is Old Englihs hath.
Hollingbourne is a type of Old English burna, or stream. In this case the underlying sense seems to be of the stream of the people dwelling in the hollow, from hol hollow and ingas inhabitants. Alternatively, the first element could represent a theoretical personal name, Hola. The town is first seen in writing in the tenth century, as Holingeburna.
Etynologically, the name of Horsmonden conjures up arcadian images of a horse drinking at a stream in a woodland clearing. It comes from three common Old English words, hors horse, burna stream and denn woodland pasture. The first recorded form reflected this provenence rather better Horsbundenne, from around the turn of the twelfth century.
Horton Kirby is literally a muddy farmstead. It derives from the Old English horu dirty, muddy and tun settlement, farmstead; it first appeared in the Domesday Book as Hortune. By 1346 it is showing up as Horton Kyrkeby, having acquired a manorial affix from its possession by the de Kirkeby family in the thirteenth century.
Hothfield was originally Hathfelde, from the Old English hath healthy and feld field, open land.
Hucking is first recorded in 1195 as Hugginges. The form suggests that the final element is Old English ingas, indicating family or followers, and the first part of the place-name is probably a personal name. The site is thus a settlement of Huccas family.
Hunton is located literally at the hill of the hunstman. Its name comes from Old English hunta hunstman and dun hill the second element is not tun settlement, as it appears to be. The etymology is clearer in its first recorded form of Huntindone in the eleventh century.
Hythe represents the Old English word hyth, a landing-place or harbour. It first appears as the Normanised form Hede in the Domesday Book.


Skip to main content
Ben Nadel at cf.Objective() 2009 (Minneapolis, MN) with: Luis Majano
Ben Nadel at cf.Objective() 2009 (Minneapolis, MN) with: Luis Majano ( @lmajano )
Using jQuery's Proxy() Method In Event Binding And Unbinding
By
Published in Comments (4)
Yesterday, I explored the use of jQuery's native event management in the creation of object-oriented publication and subscription (pub/sub) functionality. In order to do this, I had to make use of jQuery's new proxy() method that allows function callbacks to be executed in the context of an object instance rather than a DOM node (which is typically what happens). At its core, the proxy() method is basically an easy way to use Javascript's apply()-based context-binding. However, using proxy() instead of apply() allows jQuery to manage the relationship between functions which, ultimately, makes our programming lives much easier.
You'd have to look in the source code of the jQuery library to know this, but what makes proxy() so awesome is the fact that jQuery pulls the unique ID of the core method through to all of its proxies:
proxy.guid = fn.guid = fn.guid || proxy.guid || jQuery.guid++;
As you can see here, jQuery keeps an internal counter to represent a "guid" (Globally Unique ID). When a function goes through the proxy() method, jQuery generates a new guid value and then applies that guid to both the core function as well as the resultant proxy function. It does this so that you can use the original function reference to unbind an event handler callback that has been proxied - jQuery uses the guid to test for function equivalence during the unbind process.
To see this in action, I've created a small jQuery demo in which a function is bound to an event using the proxy method; then, later on, the same event handler is unbound using the original function reference.
<!DOCTYPE html>
<html>
<head>
 <title>jQuery Proxy() Method For Function Wrapping</title>
 <script type="text/javascript" src="./jquery-1.4.2.js"></script>
 <script type="text/javascript">
 // Create a number of differnet girls to be used
 // as execution contexts for an event handler (callback).
 var joanna = {
 name: "Joanna"
 };
 var sarah = {
 name: "Sarah"
 };
 // -------------------------------------------------- //
 // -------------------------------------------------- //
 // Now, let's create a function that we'll use an event
 // handler off of the document object. It will make reference
 // to a "name" property which it will have to get from its
 // execution context.
 var handler = function( event ){
 // Log name-based message.
 console.log( "Hello, " + this.name );
 };
 // Bind the event handler and proxy the method several times.
 // Notice that we are passing the resultant proxy method back
 // to the proxy method several times.
 $( document ).bind(
 "test",
 $.proxy(
 $.proxy( handler, joanna ),
 sarah
 )
 );
 // -------------------------------------------------- //
 // -------------------------------------------------- //
 // Trigger the context-bound event handler.
 $( document ).trigger( "test" );
 // Now, unbind the event using the original event handler.
 // Remember, when we bound to this event, we passed in a
 // twice-proxied event handler.
 $( document ).unbind( "test", handler );
 // Try to trigger the event again to make sure that there
 // are no lingering event handlers bound to the event.
 $( document ).trigger( "test" );
 // For debugging.
 console.log( "Done" );
 </script>
</head>
<body>
 <!-- Intentionally left blank. -->
</body>
</html>
As you can see here, our original function reference, "handler," is being proxied twice before it actually gets passed into jQuery's bind() method. Then, when we go to unbind the event, we are using the original handler reference. When we run the above code, we get the following console output:
Hello, Joanna
Done
As you can see here, the second trigger() invocation did not result in any console output because there were no longer any event handlers bound to the given event type; passing the original handler reference to the unbind() method was successful.
There are two critical points to take away from this code: first, jQuery's proxy() method is the most awesome way to bind context-sensitive event handlers because we can always unbind the event handlers using the original function references. Second, once a function is proxied, attempting to proxy it again is useless. If you look at the code, you'll notice that the handler is first proxied to "joanna" and then, subsequently, to "sarah." Yet, when we trigger() the event, it is "Joanna" that we see in the console. Technically, the "sarah" proxy worked; however, the context-binding is encapsulated within the resultant proxy function. As such, the most-inner proxy will always execute in the context of the object to which it was originally bound.
When I first learned about jQuery's proxy() method, I thought it was a little silly; after all, Javascript already has call() and apply() methods for changing execution context. But, once you realize that jQuery's proxy() method allows you to easily bind() and unbind() event handlers regardless of context, it becomes obvious just how powerful this method is.
NOTE: The proxy() method can also take the following signature: jQuery.proxy( object, methodName ). This is functionally equivalent to jQuery.proxy( object[ methodName ], object ). While I use the latter in my demo, I would definitely use the former, more succinct proxy() signature in a true object-oriented setting.
Want to use code from this post? Check out the license.
Reader Comments
50 Comments
OK... so your point on the second bind to sarah is that proxy does not form secondary binding. It will always point to the primary bind object?
15,798 Comments
@John,
It forms the secondary binding; but, the functions execute form the outside-in. As such, the inner one will always win out, which was the original proxy. So, even though the outer one says "Execute function XYZ in *my* context", function "XYZ" actually points to a function that says, "execute function ABC in *my* context".
It's a bit confusing to visualize - I hope I didn't make it more confusing :)
I believe in love. I believe in compassion. I believe in human rights. I believe that we can afford to give more of these gifts to the world around us because it costs us nothing to be decent and kind and understanding. And, I want you to know that when you land on this site, you are accepted for who you are, no matter how you identify, what truths you live, or whatever kind of goofy shit makes you feel alive! Rock on with your bad self!
Ben Nadel


text:
HSE Open Access Research Awards 2015
Today is the day we announce the winners of theWhat is Open Access?
_TAG_ _TAG_ _TAG_ awards. This award is to encourage and reward open
access publishing in the health sector in Ireland. Open access to health
information has been proven to increase citation, impact and can lead to the
translation of research into better outcomes for patient care.
Open Access is the free, immediate, online availability of high-quality, peer-reviewed research results with the potential to transform the way we communicate and deliver our healthcare service.
Open access publication has been defined separately by three statements known as the "BBB definition" which represents the "Budapest (Feb 2002), Bethesda (June 2003), and Berlin (Oct 2003) statements. Open access means unrestricted access and unrestricted reuse. The definition of an Open Access Publication is
Benefits of OA Research
- Accelerated discovery. With open access, researchers can read and build on the findings of others without restriction.
- Public enrichment. Much scientific and medical research is paid for with public funds. Open access allows taxpayers to see the results of their investment.
- Improved education. Open access means that teachers and their students have access to the latest research findings throughout the world


1. Select an appropriate leakproof container. If Nasco Whirl-Pak bags are not available, you may use a standard Zip-loc type sandwich bag (*not* the "fold-top" kind). If using Zip-loc sandwich bags, it is recommended that the sample be "double-bagged". For samples OTHER THAN complete paint chips, such as dust or soil, select a RIGID container, such as a plastic film can (NO glass containers, please).
Note #1: EPA would advise latex gloves when handling suspect lead-containing materials.
Note #2: If sample collection is being conducted for regulatory compliance or evaluation of lead hazards, Regulatory Agencies may require testing to be conducted by certified individuals.
2. Carefully place the sample in the container, evacuate as much air as possible, and seal.
 * a. Paint chips: about two square inches [or a 2 inch by 1 inch piece]
 * b. Dirt or soils: about 1/4 cup, or nearly fill the container.
 * c. Dust wipes: wipe a measured 1 square foot area with an EPA approved sample media.
 * d. Water: We are not able to accept water samples at this time, due to lab requirement for pre-acid-treating the containers.
3. Label and/or number each sample. Provide information on *each* sample to include:
 * a. Sample number
 * b. type of material, such as "white trim paint on wood", "brown exterior paint on stucco", etc.
 * c. location, such as "master bedroom window", etc.
A Sample Submission Form is provided, which you may simply fill out on and send with your samples.
4. Check to be sure the number on each sample container (bag) matches the sample number on the log sheet.
5. Address the envelope or package to:
22693 Hesperian Blvd, Ste 230
Hayward, CA 94541
(the words "hand cancel" are so it is not run it through the automatic metering machines which may risk rupturing the sample bag.)
6. Be sure to enclose:
 * a. Sample, sealed in it's container (bag), and identified with sample ID number
 * b. Sample log sheet
 * c. Check, bank draft, or money order made out to HMA, Inc. for US$35.00 per sample.
 * d. Name, address and phone number where results are to be sent.
7. Send to above address.
Instructions for Submitting Samples for A. A. Analysis for Lead
Hazardous Materials Assessment, Inc
22693 Hesperian Blvd, Ste 230, Hayward, CA 94541
_PHONE_
© 2015 by Design by Dana Davis
 - w-facebook
 - White Yelp Icon


text:
Experts and BHG readers answer.
Black spots growing on herbs- basil and oregano
Black spots on the upper leaves of your basil plants could be caused by a fungus, feeding from insects, or could be a response to adverse environmental conditions. If only the upper leaves are affected, I'd suggest trimming them off and watching the plants closely to see if the problem redevelops. Basil responds well to trimming, and likely will grow back thicker and leafier than ever.