Neighbor sum = $\color{magenta}{k \ast f}(\mathbf x)$Average
Kernel = $\color{magenta}k(\mathbf u)$Value
Params:
$\color{blue}\mu$ =
$\color{blue}R$ = cells per kernel radius
Field: cells, each pixels
$\color{blue}\sigma$ =
$\color{blue}T$ = steps per unit time
CPU: fps
±
$\color{blue}{\beta}$ =
$\color{blue}{\eta}$ =
$\color{blue}{\Delta t}$ = $\mu s$
$t$ = $\mu s$
Calc stats:
Period: $\mu s$
Lenia
Artificial Life in 2D Continuous Cellular Automata
by Bert Chan
This program demonstrates a generalization of continuous cellular automata called Lenia,
where a number of naturalistic life forms reside in the virtual world.
How to use
Field window
- shows the current state of cellular automata.
Other windows
- show different stages of calculation.
Click to change to statistics diagrams.
tab
- lists all controls.
- start / stop calculations;
- calculate one step.
buttons
- run other CAs including SmoothLife and the Game of Life.
buttons
- manipulate the field (add random cells, move/rotate, resize, etc).
buttons & list
- load life forms (enlarged by option).
buttons
- change color scheme, toggle auto center, etc.
/+
- copy cells from the field (controlled by option).
/+
- paste cells into the field.
tab
- shows the details of calculation.
tweak parameters or functions
to see changes in the life form.
button
- restart cells if things break down.
option
- observe the same cells while tweaking parameters.
tab
- shows various real-time statistics, find period, etc.
The discrete nature of GoL has been taken to continuous limits in other CAs.
Larger than Life (LtL)
took a larger radius of neighborhood,
RealLife
took the radius to infinity and approached continuous space (theoretically), and
SmoothLife
explored continuity and smoothness in cell values, space and time.
They produce more life-like patterns,
like the "bug with stomach" that moves in any direction.
Lenia
Here in Lenia, the neighborhood and updating rules are generalized into "kernel" and "delta" functions.
Like in SmoothLife, every cell has continuous value from 0.00 to 1.00,
continuous space-time can be approached by increasing space resolution R and time resolution T.
Length, time and mass are measured in units μm, μs and μg, respectively.
Life forms
After intensive search and experimentations,
several dozens of stable life forms (or "solitons") were discovered.
They were then given "scientific names" and being categorized similar to
biological taxonomy and
organic chemistry.
The "bug with stomach" in LtL/RealLife/SmoothLife turns out to be
Scutium solidus
within the order Scutiformes,
and the eyeball-like bug (video)
is very similar to
Orbium unicaudatus
within the order Orbiformes.
Other known orders include the wings-bearing Pterifera,
the single-ring Anuliformes, and the double-spiral Heliciformes.
Sizes range from single-sac
Orbium or
Gyropteron to multi-sac
Nonahelicium or
Tetracosapteryx.
Feel free to discover your own new species!
If you found one, please share with us at<EMAIL_ADDRESS>(You can copy the cells by
/+
and paste the Unicode text in the email).
Space: Kernel radius = $1 \mu m$ divided into $R$ cells, each cell $\Delta x = 1 / R$[unit = $\mu m$] Time: Unit time = $1 \mu s$ divided into $T$ steps, each step $\Delta t = 1 / T$[unit = $\mu s$] Mass: Mass density per cell = cell value
$f(\mathbf x) \in [0,1]$$f(\mathbf x) \in [0,\infty)$[unit = $\mu g / \mu m^2$]
Kernel core function:
Gaussian bump(raised to the power $\color{blue}\alpha$)polynomial(raised to the power $\color{blue}\alpha$)trapezoidal(5 equal portions)step(for SmoothLife, outer radius = inner radius × 3)high step(for Conway's Game of Life)
$\displaystyle \color{magenta}c(r) = e^{\color{blue}\alpha ( 1 - 1 / k )} \quad \text{where } k=4 r (1-r)$
$\displaystyle \color{magenta}c(r) = k^\color{blue}\alpha \quad \text{where } k=4 r (1-r)$


The first 28 bytes of both BSC5 and BSC5ra contain the
following information:
Integer*4 STAR0=0 Subtract from star number to get sequence number
Integer*4 STAR1=1 First star number in file
Integer*4 STARN=9110 Number of stars in file
Integer*4 STNUM=1 0 if no star i.d. numbers are present
1 if star i.d. numbers are in catalog file
2 if star i.d. numbers are in file
Logical*4 MPROP=1 1 if proper motion is included
0 if no proper motion is included
Integer*4 NMAG=-1 Number of magnitudes present (-1=J2000 instead of B1950)
Integer*4 NBENT=32 Number of bytes per star entry


Welcome to Your Course!
The Service Desk is dedicated to providing quality support and services to our students, faculty, and staff. One role of the Service Desk is to provide technical assistance to students and instructors throughouts the semester.
Please be aware that the Service Desk cannot provide assistance with homework, coursework or mentoring, but we would be happy to connect you with a variety of campus resources, such as tutoring and student success.
Service Desk Contact Information
Phone and Chat
- Monday - Friday: 7 am - 10 pm
- Saturday: 8 am - 5 pm
- Phone:<PHONE_NUMBER>
Walk-In:
- Monday - Friday: 8 am - 5 pm
- - BA Lower Level (room BA 007 extended hours 7 am - 6 pm)
- - LA First Floor (next to room LA 119)
- - CS Fourth Floor (next to CS 413)
- - BA First Floor (across from BA 100A/B)
Email and Self-Service
- Monday - Friday: 7 am- 10 pm
- Submit a request 24/7 and a support specialist will respond during operating hours.
- Email<EMAIL_ADDRESS>- Self-service: uvu.edu/servicedesk


--- title: Set up the BeoLiving Intelligence PRO layout: pagetoc toc: true --- The setup interface is the most important tool for the configuration/programming of your BLI PRO. The following sections will guide you through the entire web interface configuration tool. The BLI PRO has a special user -admin- meant for installer/technician usage. By default, admin's password is unknown due to security purposes. To make use of the Setup interface, password for admin user must be reset by activating the Setup button function number 2 (See button functions). After a successfull button function input, admin password will be "admin" for the next 5 minutes (also for security purposes) and as soon as you log in you will be asked to change it. {% for setup-page in site.01-setup-bli-pro %}


USING hp3478ext AS A UNIVERSAL USB-UART-GPIB ADAPTER
GPIB DEBUGGER
hp3478ext implements basic line editor and command history functionality. While entering GPIB commands interactively doesn't seem to be practical for everyday use, it's quite useful for checking individual commands and learning how a particular device behaves.
Available line editor keys:
ENTER (\r) execute command UP (\x27[A) previous command in the history list DOWN (\x27[B) next command in the history list LEFT (\x27[D) move the cursor left RIGHT (\x27[C) move the cursor right BACKSPACE (\b), DELETE (\x7f) delete the character before the cursor
When using hp3478ext under software control, interactive mode should be turned off with the O1 or OI0 command.
HP 3478A EXTENSION MODE
Originally, the hp3478ext was designed as a hardware add-on to the HP 3478A multimeter. This assumes that the ATmega328P's firmware can operate without PC control, intercepting and responding to the 3478A's front panel keys. Such stand-alone operation is called an “extension mode” throughout this document. When using hp3478ext as a PC interface to remotely control GPIB devices, the extension mode should be disabled with OX0, O0 or O1 command.
COMMAND REFERENCE
D: transmit or receive ASCII data (ATN off)
This command receives data if the adapter is in the LISTEN state. The end of transmission is determined by receiving an end sequence (OR command). An absence of data (timeout) is represented by an empty string.
This command transmits data if the adapter is not in the LISTEN state. The payload immediately follows the command character. Depending on the OT (transmit end sequence) setting, a transfer is terminated with EOI, \r or \n.
Responses:
OK\r\n transmission complete TIMEOUT <len>\r\n timed out waiting for the device while transmitting (<len> is the number of bytes actually transmitted) \r\n timed out waiting for the device while receiving <payload> data received from the device
C: transmit an ASCII command (ATN on)
The C command transmits ASCII bytes with the ATN signal turned on. Transferred data is analysed to set the bus state as follows:
- The GPIB adapter will enter the LISTEN state if its listen address (+32) is in the command string.
- The GPIB adapter will exit the LISTEN state if its talk address (+64) or the unlisten command (?) is in the command string.
Responses:
OK\r\n transfer complete
TIMEOUT <len>\r\n timed out waiting for the device
(<len> is the number of bytes actually transmitted)
R, L: control REN signal
R turns REN on, L turns REN off.
Response:
OK\r\n
I: clear interface
Turns the IFC signal on for 1ms. The GPIB adapter will exit the LISTEN state.
Response:
OK\r\n
S: get status
Returns the state of the SRQ and REN lines as two ASCII characters, 0 or 1. The third character is the GPIB adapter’s state: 0 = TALK, 1 = LISTEN. Unlike the LISTEN state, in the TALK state it actually doesn't verify whether its TALK address was sent or not.
Response:
000\r\n three characters, as described above
P: enter "plotter" mode
In plotter mode, the GPIB adapter continuously attempts to read data from the bus. Send an ESCAPE (\x27) character to exit plotter mode.
Response:
<data> data read from the bus
O: option setting
Sets various options as described below. The syntax for the O command is as follows:
O<opt><val> set option <opt> to decimal <val>
O<opt> request an option’s current value
O? list all available options
O<opt><val>w set option <opt> to <val> and save it in EEPROM
O0 set to default values for interactive operation
O1 set to default values for non-interactive operation
Available options (<opt>):
X Enables or disables the HP 3478A extension mode. 1 = enable the HP 3478A extension mode. This mode conflicts with the GPIB commands described in this document. 0 = hp3478ext will not attempt to connect to the HP 3478A multimeter. This setting is assumed when using hp3478ext as a general purpose GPIB adapter. R Receive end sequence, which specifies when the THD, TUD and D commands will stop. 1 = CR, 2 = LF, 4 = EOI These bits may be ORed together so that any of the specified conditions will stop the transfer. T Transmit end sequence, which specifies what to send after the data is supplied using the D command. It accepts the same values as the R option. For example, 7 means to send CR followed by LF with EOI. I Enable or disable interactive mode. 0 = disable interactive mode. Turns off the line editor and echoing of commands, which disables the <GPIB> prompt. 1 = enable interactive mode. C Controller GPIB address. This address is recognised in GPIB commands so that the adapter knows it's in the LISTEN state. D Device GPIB address (the address of the HP 3478A). This is only used in hp3478ext’s extension mode. However, if this address is set to 31, the adapter will enter “plotter” mode upon start up (as if the P command was entered). B Baud rate. 0 = 115200, 2 = 500K, 3 = 1M, 4 = 2M. Note that the maximum available rate depends on the capabilities of the USB-UART chip that is being used. Responses: <opt_help> text returned from the O? command <val>\r\n option value in decimal OK option is set ERROR\r\n incorrect command syntax or value WRONG OPTION\r\n unknown option
?: quick help
Prints the command summary.
H: command list
Prints command history.
T: binary and hex transfer commands
THC transmit hex command
TBD transmit binary data
TBD<len> receive binary data
THD transmit hex data
THD<len> receive hex data
Data transmit or receive operation is determined by the LISTEN state of the adapter. For example, T is interpreted as receive, if the adapter is addressed as the listener. THC always transmits. (<len> is optional. It is one byte hex value and specifies maximum number of characters to receive.)
HEX data is an arbitrary length hex string terminated with an optional ; and \r\n. The line is terminated with EOI by default, so ; means that there is no EOI. When transmitting, the command buffer is limited to 64 bytes. The maximum payload size is (64 - sizeof("THD") - sizeof("\r")) = 30 bytes. There's no limit on the received hex string length.
Binary data consists of blocks prefixed with a one-byte length value. The block length is up to 127 bytes. The high-order bit of the length byte represents EOI at the end of the block. The transfer is terminated with a 0 byte (i.e., length = 0).
Responses:
ERROR\r\n incorrect command syntax TIMEOUT <len>\r\n timed out while transmitting (<len> = number of bytes sent, in decimal) OK\r\n send is complete (applies to TH commands) ;\r\n timed out receiving data for the THD command <payload> binary or hex payload (see example below) <txlen> status byte = number of bytes transmitted for each block (see example below) EXAMPLES
In all of the examples below, “=>” represents a request and “<=” represents a response. Characters that are escaped with a backslash “\” are non-printable characters in C notation. If the example demonstrates use of interactive mode, dialogue is presented as it is seen on the terminal (i.e., no special characters are shown).
Example 1: data formats
The following example explains how to send an EOI-terminated "HELLO WORLD\n" string in various formats.
Hex transmission:
=> THD48454c4c4f20;\r
<= OK\r\n
=> THD574f524c44210a\r
<= OK\r\n
Binary transmission:
=> TBD\r\x06HELLO \x87WORLD!\n
<= \x06\x07
ASCII transmission:
=> OT6\r\n
<= OK\r\n
=> DHELLO WORLD!
<= OK\r\n
Example 2: getting a reading from the HP 3478A
This example assumes a default controller address of 21 and multimeter address of 23.
<GPIB> CW5
OK
<GPIB> D
+1.87978E+0
<GPIB>
Example 3: serial polling - reading the status byte
<GPIB> THC183557
OK
<GPIB> THD1
01;
<GPIB> THC19


potato yield tuber stress drought growth plant photosynthetic Plant water crop leaf photosynthesis temperature high cultivars plants salt energy increase elevated carbon Solanum salinity Increased activity rates tolerance Potato Reduced associated increased heat response change potential biomass climate content higher Dahal efficiency expression soil tuberosum {border-style Physiol. px;} stress. #ffffff;} Biol. Salinity Sci. accumulation food global inhibition leaves solar Drought However, Queirós Res. atmospheric conversion loss physiological root synthesis total Long Zhu abiotic biochemical decreased new transport Thus, decrease genes major predicted productivity sucrose Bot. Climate Environ. acclimation area effects future gene molecular production reported shoot starch ./j.-...x High Photosynthetic adapt assimilation key levels quality reduced stomatal strategies ./s--- Agric. Change Fidalgo L.) Levy Ort RuBisCO ambient capacity carbohydrate cell changes changing development dioxide end following needs sensitive stimulation temperature, tolerant use ATP Exp. Figure Table Tuber breeding concentrations dry electron enhancing grown improved incident light revealed source stresses yield. Effects Sicher a). activities antioxidant biotic carbohydrates chloroplast crops drought, effect expected feedback impact important improving including involved level limitation lower mainly maintain nitrogen number observed photosynthesis, photosynthesis. plants. processes px; research responses rise rising study substantially suggested transcription translocation transpiration used yield, {font-family ./bf ABA Ainsworth Cell Ghosh Improving Jaarsma New Salt b). cause compared conductance cytosol develop develops eds enhancement enzyme exchange font-size growth, however, identification increasing long-term maximum mechanism mechanisms negatively osmotic performance potato. potatoes potential. projected protein rate screening species tuberization ./s-()- Akhtar Am. Ann. Bunce, CO. Calvin Chen Crop Desiree Donnelly Evers Foyer Katny Legay NADPH NaCl Sage Sharkey Stitt Tang Wang-Pruski achieved agricultural air ascorbate chain challenge change. chlorophyll conditions converted decline deficit double; enhance enhanced enzymes export factors insect likely limited metabolic molecular, molecules partitioning phosphate photons proline proteins reduction relative shock short-term stage stolon stomata stress-related sugar suggest tubers wheat ./fpls.. ./j.-..tb.x Adaptation Agron. Front. Kaminski Liu Magliulo Odemis Phytol. Schofield, Vanlerberghe Wheeler accounted adaptation affecting best border-color border-width characteristics collab: conditions. content, critical cultivar, cycle enrichment exhibit exposure impacts induced inhibited ions leading length losses matter molecule net order photorespiration physiological, production. reducing reductase regulation respiration result resulting results sink solid; solutes theoretical tolerance. transgenic vacuole {font-style {font-weight (cv. ./pp.. Aghaei Almeida Arabidopsis Biotechnol. Bizimungu Consequently, Drake Early For. Hancock IPCC, Mackowiak Mol. Murchie Obidiegwu Plants Pot. Rev. Science Soil Stomatal Stress Temperature Timlin Tuteja Vandermeiren WUE Yield Zarzynska Zhang acid activation affects aimed as, assimilate believed bold bulking causes challenges closing compatible control corresponding courier; cultivars. cultivation current depends detrimental developing differences different early efficiency, efficiency. em; environment. field final function genetic glutathione ground heart, improve improvement indicated inhibit initial lack largely levels. limit low main metabolism model need obtained particularly period population. practices preventing productivity. pt;} red regulatory requirements review salinity. scientists secondary senescence severe signaling species, species. specific stimulate stress, studies substrate suggesting sustainable temperature. tonoplast treatment triose tuberization, uptake useful versus warming weight


Now:
Now: (note the highlighted month, the markup was added using formatDateToParts)
Now (in America/Sao_Paulo):
A number:
A currency:
Plural form of is
Messages:
Something happened:
Speed limit:


---
layout: page
title: Proyectos
permalink: /proyectos/
projects: true
---
{{ page.title }} {% comment %}{% endcomment %}
Esta página aún se encuentra en construcción.
{% comment %}
Open source civic tech projects from Chicago's open gov community. You can participate in three ways:
-
Start a new project - Share ideas and Find collaborators for your project on our Hack Dash page.
-
Join a team - Contribute to an existing team by finding open issues tagged with the project-needs label.
-
Share your existing project - If you have a civic app and it's open sourced on Github, share it with us and we will keep track of it below.
| Proyecto |
Descripción |
Commits recientes |
Stars |
Forks |
Issues |
{% endcomment %}


Please enable JavaScript
Cells
Optimal Transport
Feature
Go
Select Cells
>
<
Enter a quantile instead
Enter a value instead
Log
Z-score
Group By
Export Custom Cell Sets
Loading...
Cell Sets
Transport Maps
Features
Go
Loading...


--- layout: page title: Web Accessibility Checklist description: A beginner's guide to web accessibility permalink: checklist.html --- Categories Landmarks Language Attribute Document Outline Links Images JavaScript Forms Media (Audio and Video) Color and Contrast Test for Color Blindness Testing
ARIA Landmark roles can help assistive technology users to quickly navigate to and past blocks of content in a web interface.
Note: When you validate HTML that utilizes most landmark roles, you'll receive a warning stating these roles are redundant.
In HTML5, several of the landmark roles are implicit via the native structural elements which are supported by modern desktop browsers. With that said, if you need to support older browsers, you'll want to check their support for landmark roles. If you find support to be lacking, then use the landmark roles regardless of the validation warnings. For more information, read Quick Tip: ARIA Landmark Roles and HTML5 Implicit Mapping.
header role="banner"
A region of the page that is site focused. Typically your global page header.
nav role="navigation"
Contains links to navigate to different pages of a website, screens of an application, or a sections within a single document.
main role="main"
Wraps the focal content of document. Use only once.
article role="article"
Represents an independent item of content. There may be many articles in a single document. articles are not considered landmarks, but screen readers may still surface articles when navigating by regions or landmarks in a document.
article
aside role="complementary"
Supporting section related to the main content even when separated.
footer role="contentinfo"
Contains information about the document (meta info, copyright, company info, etc).
form role="search"
Add a `search` role to your primary search (how to implement).
Declaring a language attribute on the HTML element enables a screen reader to read out the text with correct pronunciation.
html lang="en"
Specify a language with the lang attribute on the html element.
lang
html
:focus
alt
Use unobtrusive JavaScript (never use in line scripting).
Provide alternatives for users who do not have JavaScript enabled and for environments where JavaScript is unavailable.
Tab order of the form follows a logical pattern.
label
input
select
(e.g. Name:<input id="name" type="text">)
Name:<input id="name" type="text">
placeholder
An exception to this rule would be smaller forms with one or two fields (eg. search or log in forms)
fieldset
legend
Important for input type="radio" and input type="checkbox"
input type="radio"
input type="checkbox"
Providing text alternatives makes the audio information accessible to people who are deaf or hard of hearing. This also goes for search engines who are deaf and hard of hearing as well.
Best done early in the process, by ensuring that the foreground and background colors of your site have sufficient contrast you will help make your site more readable for everyone. Contrast Ratio is one tool for checking the contrast of your colors for both standard vision and color deficient user.
Test against different types of color blindness with a tool like http://colorfilter.wickline.org. If you are on a Mac, another option is Michel Fortin's, Sim Daltonism color blindness simulator.
Navigate your site or application using a range of tools. For instance, using only a keyboard or a screen reader will help you understand how a blind, low-vision, or limited-mobility user will experience it.


DJ Bot Control Station
Type your message to send to the car here:
Send
Reset
Previous Questions
Introduction
Hi! What would you like to hear?
Hi! Here’s some music, let me know whether you like it or how you’d like to change it.
Warm Up
What do you like to listen to while driving?
What other type of music do you like?
What would you like to listen to?
When songs playing for a while
What did you listen to when you were younger?
Do you still like any of those bands?
 If you don’t, just give me some directions, like play something a little louder, or a bit jazzier.
Song 2
How about this?
You can keep giving me directions if you want.
Song 3
And now for a classic driving song! Go ahead and steer me until you find something you like.
Per item request
I can also play you something you haven’t heard of yet. Any type of music that you’d like?
Do you know this artist?
Did you think this playlist was good?
Describe something that you’d like to hear right now. Like ‘play me something from England with guitars, or play me some nineties hip-hop’. Try it!
Describe something that you’d like to hear right now. Like ‘play me something from England with guitars, or play me some nineties hip-hop’. Try it!
Common Questions and Phrases
Can you tell me more?
What would you like to listen to next?
Anything else that you’d like to hear?
OK
Yes
Exit
Can you tell me more?
Language
English
French
Japanese


The registration plugin allows admins to configure various actions whenever a new user creates an account.
Copy the registration.jar into the plugins directory of your Openfire installation. The plugin will then be automatically deployed. To upgrade to a new version, copy the new registration.jar file over the existing file.
The registration plugin is configured via the "Registration Properties" sidebar item located in the "Users" sidebar item under the "Users/Groups" tab in the Openfire Admin Console. By default, after the registration plugin has been deployed all of its features are disabled. To enable a feature of the plugin select the checkbox next to the feature and then click on the "Save Settings" button. The registration plugin has various items that can be configured:
The format used is an XML that should look like :
<list>
<item action="deny" order="100" type="subscription" value="none">
<message/>
<presence-in/>
<presence-out/>
</item>
</list>
The enclosing list tag is needed, but none of its attributes are read. Inside it you can have multiple items.
Presently, after the registration plugin has been configured nothing else needs to be done to use it.


The Ultra Extension Framework allows an integration to provide Originality Reporting for assignments in Learn Ultra in conjunction with Learn's Submission Services framework.
The Submission Services framework in Learn exposes extension points for custom
Building Blocks (B2s) to be notified of new gradable content in a course and
students' submissions against those content items. UEF builds on that with APIs
to support UI integration into Learn Ultra so that those custom extensions from
Learn B2s can be configured and displayed in Ultra courses. Details about how
to implement the Learn side of a Submission Services tool in a custom B2 via the
SubmissionService
, SubmittableItemEventHandler
, and ItemSubmissionEventHandler
interfaces is outside the scope of this document.
Each UEF originality reporting extension is linked to its corresponding Submission Services extension in Learn by specifying the same unique handle in both places. All Submission Services extensions must provide a unique handle, and any UEF extension designed to work with that Learn B2 extension must have the same handle.
sendMessage({
type: 'submission-tool:register',
submissionServicesUniqueHandle: '<your_unique_handle>',
});
Learn Ultra discovers available Submission Services tools via its own internal API to Learn, and the unique handles provided by Learn are the source of record. UEF originality reporting extensions will only show up in Ultra UI if Learn reports that a Submission Services tool of the same unique handle is available for use on that content item, subject to Learn's built-in mechanisms for B2/tool availability.
A UEF portal has been added to the Assessment settings panel, in which an
extension can render its own settings after Originality Reporting is enabled by
an instructor. The portal's selector is
course.content.assessment.settings.originalityReport.panel.settings
,
and will pass along the courseId
and contentId
as parameters:
{
"courseId": "<course_id>",
"contentId": "<content_id>"
}
When the instructor saves the Assessment settings, a UEF message will be passed to the extension notifying it that it should save the settings changes made by the instructor, and Ultra will wait for the extension to respond, indicating that the save succeeded or failed. When a successful response is received from the integration, Learn will notify the corresponding B2 of the new Originality enablement state for the current content item.
The message from Ultra will provide a correlationId
that will need to be
provided when responding to the message, as well as the contentId
of the item
being saved and its contentHandle
that indicates its content type. It will also
include the enabled state of the originality report setting:
{
"data": {
"eventType": "submission-tool:settings-saved",
"correlationId": "<uuid>",
"contentId": "<content_id>",
"contentHandle": "<content_handle>",
"enabled": <boolean>
}
}
After sending that message to the extension, UEF expects an extension to check its rendered DOM and save off the corresponding settings by whatever mechanism it communicates to its tool implementation, e.g. via a Rest API provided by the custom Learn B2 that does the Submission Services implementation in Learn.
The UEF extension must respond with a success or failure message within 5 seconds:
sendMessage({
type: 'submission-tool:settings-saved:response',
correlationId: '<uuid>',
success: true,
});
sendMessage({
type: 'submission-tool:settings-saved:response',
correlationId: '<uuid>',
success: false,
// you may supply a human readable error message to display to the user
error: 'There was an error saving the configuration',
});
If 5 seconds isn't enough time to save the configuration changes, the extension
can request more processing time by responding with a
submission-tool:settings-saved:processing
message:
sendMessage({
type: 'submission-tool:settings-saved:processing',
correlationId: '<uuid>',
});
UEF provides two different portals for displaying Originality information.
The first portal is for an icon indicating the overall status of each
submission in the submission list and will appear in each submission's row. The
portal's selector is
components.directives.grade.submission-list-row.originality
.
Two portals are provided for displaying the results of the Originality report,
one from the grader's perspective and one from the student's. An assignment's
grader will see a portal with the selector
components.directives.attempt-grading.originality-report
,
and a student will see one with
components.directives.attempt-review.originality-report
.
Generated using TypeDoc


Note: For this example to work you must enter a real Sumo HTTP Source endpoint in the form below.
✓ Your configuration was stored.
✓ Your logs were sent to Sumo Logic!
Error: Logs were not sent to Sumo Logic!
Configure Endpoint and Interval
Example Configuration
var host = location.hostname;
var sumotestendpoint = 'endpointURL';
SLLogger.config({ endpoint: sumotestendpoint, sessionKey: 'your Session ID', sourceName: 'your source name', sourceCategory: 'your SourceCategory', hostName: host, onSuccess: function() { ... handle success ... }, onError: function() { ... handle error ... } });
var sumotestendpoint = 'endpointURL';
SLLogger.config({ endpoint: sumotestendpoint, sessionKey: 'your Session ID', sourceName: 'your source name', sourceCategory: 'your SourceCategory', hostName: host, onSuccess: function() { ... handle success ... }, onError: function() { ... handle error ... } });
Example: Text Logs
Send Text
Example: JSON Logs
var messageData = [
{'testingKey': 'Testing from example page'},
{'testingKey': 'Second test log line'}
];
SLLogger.log(messageData);
Send JSON with App-wide Category Log
{'testingKey': 'Testing from example page'},
{'testingKey': 'Second test log line'}
];
SLLogger.log(messageData);


We are the Imperial College Vehicle Design Society, a new and exciting prospect here at Imperial College London. We serve as a platform for student projects in the field of vehicular design (anything from boats to planes, through cars and bikes, even satellites) and offer members the ability to gather the resources necessary to design, build and test their ideas.
We currently have two incredible projects underway, the CubeSat Project and the Shell Eco Marathon, both of which have seen great popularity and support.
However, it doesn’t stop there. One of the key aims of the society is to allow anyone the chance to implement their ideas; so if you have the next big thing in vehicular innovation, we want you to join!
Why are we so passionate about vehicular design and innovation? We truly believe that we can work towards a future in which it is easier to travel further and faster whilst reducing the cost to the planet. There’s no limit on who can join: any department, any year.
So join now!
Copyright © Vehicle Design 2014


×
New Logbook
×
Error!
Name
Owner
×
Edit Logbook
×
Error!
Name
Owner
×
Delete Log
×
Error!
Are you sure you want to delete selected Log?
×
Delete Logbook
×
Error!
Are you sure you want to delete selected Logbook?
×
New Tag
×
Error!
Name
×
Edit Tag
×
Error!
Name
×
Delete Tag
×
Error!
Are you sure you want to delete selected Tag?
×
Delete Draft
Are you sure you want to delete a draft and return to a home page?
×
Delete Attachment
×
Error!
Are you sure you want to delete this attachment?
×
Server Error!
There was a problem connecting to the server. Check server status and reload the page!


Preparation time
less than 30 mins
Cooking time
30 mins to 1 hour
Serves
Serves 8
Dietary
Blue cheese and walnuts add a festive note to this delicious veggie main. The dish can be mostly made it in advance - just add the topping and reheat before serving.
Preheat the oven to 200C/440F/Gas 6.
Cut the aubergines in half, leaving the tops on and score the surface of the flesh with a knife.
Place on a baking tray cut-side up, drizzle with olive oil and season with salt and pepper. Bake for about 30 minutes or until soft.
While the aubergines are cooking, gently fry the onions and garlic in oil for a few minutes. Add the tomatoes and herbs and cook to soften
Remove the flesh from the roasted aubergines, reserving the skins to be stuffed later. Chop the aubergine flesh into small cubes.
Add the aubergine flesh and the lightly chopped walnuts to the tomato mixture and season generously with salt and pepper. Place the mixture in the aubergine skins (if making in advance, you can refrigerate the aubergines at this stage).
Crumble over the cheese and top with breadcrumbs. Return to the oven or place under a hot grill until the cheese is melted, the breadcrumbs crisp and the flesh warmed through.
For the tomato sauce, heat the oil in a pan and fry the onion for five minutes. Add the garlic and fry for a further minute. Add the tomatoes and bring to the boil, add the chopped oregano reduce the heat and simmer for 30-40 minutes. Halfway through, add the shredded basil leaves.
When it has finished cooking, add salt to taste, and blend to a smooth purée using a hand-held blender or food processor. The sauce keeps for a few days in the fridge, but is best if eaten when freshly made.
Serve the hot aubergines with the hot tomato sauce on the side.
You need JavaScript to view this clip.
Learning to chop: the 'chiffonade' or shredding technique


This example autocompletes on the following entities (with the given id and name):
[example html code]
[example source code]


Given the number n, not greater than 100, create the matrix of size n×n and fill it using the following rule. Numbers 0 should be stored on the primary (main) diagonal. The two diagonals, adjacent to the primary one, should contain numbers 1. The next two diagonals should contain numbers 2; etc.
Note: the primary diagonal runs from the top left corner to the bottom right corner.
5
0 1 2 3 4
1 0 1 2 3
2 1 0 1 2
3 2 1 0 1
4 3 2 1 0


Insights based on
39,441 developers
Code rendered 3D approximations
of Mandelbrot set by Daniel White
PROLOGUE
The future of work will be very different. Irrespective of your job, it will become important for everyone to learn how to code. Coding helps enrich your computational thinking, which is powerful in making decisions. The traditional resume will go away and hiring will happen based on your skills first.
We launched HackerRank in late 2012 with the goal of matching every developer to the right job. And the growth has been amazing — we reached 3.2M developers in the community and powered 2% of all developer hires last year.
For the first time, we surveyed the HackerRank community to get a pulse on developer skills (when did they push code for the first time, how do they learn coding, what are the favorite languages and frameworks, what do they want in a job, what hiring managers want in a candidate, and more). There are some great insights, from 39,441 responses, that we are happy to share with you today. Did you know that 1 in 4 developers learned to code before they could drive?
We hope you find the 2018 Developer Skills Report insightful and would love to discuss the findings with you at /r/programming.


| Class | HTMLTokenizer |
| In: |
lib/openid/yadis/htmltokenizer.rb
|
| Parent: | Object |
A class to tokenize HTML.
Example:
page = "  <TITLE>This is the title</TITLE>
This is the header

 This is the paragraph, it contains links, . Ok, here is some more text and another link.
   " toke = HTMLTokenizer.new(page) assert("
" == toke.getTag("h1", "h2", "h3").to_s.downcase) assert(HTMLTag.new("") == toke.getTag("IMG", "A")) assert("links" == toke.getTrimmedText) assert(toke.getTag("IMG", "A").attr_hash['optional']) assert("_blank" == toke.getTag("IMG", "A").attr_hash['target'])
| page | [R] |
Get a tag from the specified set of desired tags. For example: foo = toke.getTag("h1", "h2", "h3") Will return the next header tag encountered.
Get all the text between the current position and the next tag (if specified) or a specific later tag
Like getText, but squeeze all whitespace, getting rid of leading and trailing whitespace, and squeezing multiple spaces into a single space.


GPM-1.20.7
Introduction to GPM
The GPM (General Purpose Mouse
daemon) package contains a mouse server for the console and
xterm. It not only
provides cut and paste support generally, but its library component
is used by various software such as Links to provide mouse support to the
application. It is useful on desktops, especially if following
(Beyond) Linux From Scratch instructions; it's often much easier
(and less error prone) to cut and paste between two console windows
than to type everything by hand!
This package is known to build and work properly using an LFS-9.1
platform.
Package Information
Additional Downloads
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/GPM
Kernel Configuration
Enable the following option in the kernel configuration and
recompile the kernel if necessary:
Device Drivers --->
Input device support ---> [CONFIG_INPUT]
<*/M> Mouse interface [CONFIG_INPUT_MOUSEDEV]
Installation of GPM
Install GPM by running the
following commands:
sed -i -e 's:<gpm.h>:"headers/gpm.h":' src/prog/{display-buttons,display-coords,get-versions}.c &&
patch -Np1 -i ../gpm-1.20.7-glibc_2.26-1.patch &&
./autogen.sh &&
./configure --prefix=/usr --sysconfdir=/etc &&
make
This package does not come with a test suite.
Now, as the root
user:
make install &&
install-info --dir-file=/usr/share/info/dir \
/usr/share/info/gpm.info &&
ln -sfv libgpm.so.2.1.0 /usr/lib/libgpm.so &&
install -v -m644 conf/gpm-root.conf /etc &&
install -v -m755 -d /usr/share/doc/gpm-1.20.7/support &&
install -v -m644 doc/support/* \
/usr/share/doc/gpm-1.20.7/support &&
install -v -m644 doc/{FAQ,HACK_GPM,README*} \
/usr/share/doc/gpm-1.20.7
Command Explanations
./autogen.sh: This
command creates the missing configure script.
install-info ...:
This package installs an .info
file,
but does not update the system dir
file. This command makes the update.
ln -v -sfn libgpm.so.2.1.0
/usr/lib/libgpm.so: This command is used to create
(or update) the .so
symlink to the
library.
Configuring GPM
Config Files
/etc/gpm-root.conf
and ~/.gpm-root
: The default and individual user
gpm-root
configuration files.
/etc/sysconfig/mouse
: This file
contains the name of your mouse device and the protocol it uses.
To create this file, run the following as the root
user:
cat > /etc/sysconfig/mouse << "EOF"
# Begin /etc/sysconfig/mouse
MDEVICE="<yourdevice>
"
PROTOCOL="<yourprotocol>
"
GPMOPTS="<additional options>
"
# End /etc/sysconfig/mouse
EOF
Configuration Information
Examples of values to set MDEVICE
,
PROTOCOL
, and GPMOPTS
to are:
MDEVICE="/dev/input/mice"
PROTOCOL="imps2"
GPMOPTS=""
A list of which protocol values are known can be found by running
gpm -m [device]
-t
-help. The MDEVICE
setting depends on which type of mouse you have. For example,
/dev/ttyS0
for a serial mouse (on
Windows this is COM1), /dev/input/mice
is often used for USB mice and
/dev/psaux
for PS2 mice.
GPMOPTS
is the 'catch all' for any
additional options that are needed for your hardware.
Contents
Installed Programs:
disable-paste, display-buttons,
display-coords, get-versions, gpm, gpm-root, hltest, mev, and
mouse-test
Installed Library:
libgpm.{so.a}
Installed Directory:
/usr/share/doc/gpm-1.20.7
Short Descriptions
|
disable-paste
|
is a security mechanism used to disable the paste buffer.
|
|
display-buttons
|
is a simple program that reports the mouse buttons being
pressed and released.
|
|
display-coords
|
is a simple program that reports the mouse coordinates.
|
|
get-versions
|
is used to report the GPM library and server versions.
|
|
gpm
|
is a cut and paste utility and mouse server for virtual
consoles.
|
|
gpm-root
|
is a default handler for gpm. It is used to draw
menus on the root window.
|
|
hltest
|
is a simple sample application using the high-level
library, meant to be read by programmers trying to use
the high-level library.
|
|
mev
|
is a program to report mouse events.
|
|
mouse-test
|
is a tool for determining the mouse type and device it's
attached to.
|
|
libgpm.{so.a}
|
contains the API functions to access the GPM daemon.
|
Last updated on 2020-02-15 08:54:30 -0800


MemCache++ is a light-weight, type-safe, simple to use and full-featured Memcache client.
It was developed by Dean Michael Berris who is a C++ fanatic, loves working on network libraries (cpp-netlib.github.com), and currently works at Google Australia. He also is part of the Google delegation to the ISO C++ Committee. You can read more of his published works at deanberris.github.com and his C++ blog at www.cplusplus-soup.com.
Studying the well designed libraries is recommended to master C++ concepts, and the goal of this article is to discover some memcache++ design choices that makes it easy to understand and use.
Let's discover the memcache++ design by analyzing it with CppDepend.
Namespace Modularity
Namespaces represents a good solution to modularize the application, unfortunately this artifact is not enough used in the C++ projects, just a look at a random open source C++ projects show us this fact.And more than that when We search for C++ namespace definition the common one is like that:
A namespace defines a new scope. They provide a way to avoid name collisions.
Many times the collision is shown as the first motivation, and not the modularity unlike for C# and Java where namespaces are more quoted to modularize the application.
However Some modern C++ libraries like boost use the namespaces to structure well the library and encourage developers to use them.
What about the namespace modularity of memcache++?
Here's the dependency graph between memcache++ namespaces:
The namesapces are used for two main reasons:
- Modualrize the library.
- Hide details like "memcache::detail" namespace, this approach could be very interesting if we want to inform the library user that he dont need to use directly types inside this namesapce. For C# the "internal" keyword did the job, but in C++ there's no way to hide public types to the library user.
memcache++ exploit gracefully the namespace concept,however a dependency cycle exist between memcache and memcache::detail.We can remove this dependency cycle by searching types used by memcache::detail from memcache.
For that we can execute the following CQlinq request:
from t in Types where t.IsUsedBy("memcache.detail")
&& t.ParentNamespace.Name=="memcache"
select new { t,t.TypesUsingMe }
Here's the result after executing the request:
To remove the dependency cycle we can move pool_directive and server_pool_test to memcache.
Generic or OOP?
In the C++ world two schools are very popular : Object Oriented Programming and Generic programming, each approach has their advocates, this
article explain the tension between them.
What the approach used by memcache++?
To answer this question Let's search first for Generic types:
from t in Types where t.IsGeneric && !t.IsThirdParty select t
What about the not generic ones:
from t in Types where !t.IsGeneric && !t.IsGlobal && !t.IsNested
&& !t.IsEnumeration && t.ParentProject.Name=="memcache"
select t
Almost all not generic types concern exception classes, and to have a better idea of their use proportion, the treemap view is very useful.
The blue rectangles represents the result of the CQLinq query, and as we can see only a minimal part of the libray are related to the not generic types.
Finally we can search for generic methods:
from m in Methods where m.IsGeneric && !m.IsThirdParty select m
As we can observe memcache++ use mostly generics, but it's not sufficient to confirm that it follow the C++ generic approach.To check that a good indicator is the use of inheritence and dynamic polymorphism, indeed OOP use them mostly , however for the generic approach using inheritence is very limited and the dynamic polymorphism is avoided.
Let's search for types having base classes.
from t in Types where t.BaseClasses.Count()>0 && !t.IsThirdParty
&& t.ParentProject.Name=="memcache"
select t
It's normal that exceptions classes use inheritence but what about the other classes? did they use inheritence for dynamic polymorphism purpose? to answer this question let's search for all virtual methods.
from m in Methods where m.IsVirtual select m
Only exception class has a virtual method, and for the other few classes using inheritence the main motivation is to reuse the code of the base class.
If the dynamic polymorphism is not used, what's the solution adopted if we need another behavior for a specific classes?
The common solution for the generic approach is to use Policies.Here's a short definition from wikipedia
"The central idiom in policy-based design is a class template(called the host class),taking several type parameters as input, which are instantiated with types selected by the user (called policy classes), each implementing a particular implicit interface (called a policy)."
memcache++ has many policies inside memcache.policies namespace.
Let's discover an example from memcache++ to understand better the policy based design.
memcache++ use the type basic_handle to implement all commands like add, set, get and delete from the cache.This class is defined like that:
template <
class threading_policy = policies::default_threading,
class data_interchange_policy = policies::binary_interchange,
class hash_policy = policies::default_hash
>
struct basic_handle
The memcache++ is thread safe and for the multithreaded context have to manage synchronisation, by default the threading_policy is "default_threading" where no special treatement is required, however for multithreading the policy used is "boost_threading".
Let's take a look to connect method implementation.
void connect(boost::uint64_t timeout = MEMCACHE_TIMEOUT) {
typename threading_policy::lock scoped_lock(*this);
for_each(servers.begin(), servers.end(), connect_impl(service_, timeout));
};
If threading_policy is "default_threading" , the first line has no effect because the lock constructor did nothing, however if it's the boost_threading one, lock use boost to synchronize between threads.
Using policies give us more flexibility to implement different behaviors, and it's not very difficult to understand and use.
Generic Functors
memcache++ implement many commands to interact with the cache like add,get,set and delete.The command pattern is a good candidate for such case.
memcache++ implement this pattern by using generic functors, here's a CQLinq queries to have all functors:
from t in Types where t.Methods.Where(a=>a.IsOperator
&& a.Name.Contains("()")).Count()>0
select t
Functor encapsulate a function call, with its state, and it can be used to defer call to a later times, and act as callback.Generic functors gives more flexibility to normal functors.
Interface exposed
How the library expose it's capabilities is very important, it impact its flexibility and its easy of use.
To discover that let's search for the communication between the test project and the memcache++ library.
from m in Methods where m.IsUsedBy ("test")
select m
The test project use mainly generic methods to invoke memcache++ functionalities. What the benefits using template methods , why not use classes or functions?
For POO approach the library interface is composed of classes and functions, and for well designed ones Abstract classes are used as contracts to enforce low coupling, this solution is very interesting but have some drawbacks:
- The interface become more complicated and can change many times: to explain that let's take as example the add method exposed by memcache++, if we dont use generic approach many methods must be added, each one for a specific type int,double,string,...
However the generic add method is declared like that add<T> where T is the type, and in this case we need only one method, and even we want to add another type no change requiered in the interface.
- The interface is less flexible: if for example we expose a method like this
calculte(IAlgo* algo).
The user must give a class inhereting from IAlgo , however if we use generic and define it like that calculate<T> , the user have only to provide a class with methods needed and not necessarilly inherit from IAlgo, and if IAlgo change to IAlgo2 because some methods are added , the user of this library will not be impacted.
Ideally the interface exposed by a library must not have any breaking changes, and the user have not to be impacted when changes are introduced in the library. generic approach is the most suitable for such constraints because it's very tolerent when changes are needed.
External API used
Here are the external types used by memcache++
memcache++ use mostly boost and STL to acheive its needs,here are some boost features used:
- multithreading.
- algorithm.
- spirit.
- asio.
- unit testing.
And of course the well known shared_ptr for RIIA idiom.
And from STL the containers are mostly used.
So finally what The advantages of using the generic approach?
- The first indicator of the efficency of memcache++ design choices is the Line number of code(LOC) where is only arround 600 lines of code, this result is due to two main reasons:
- using generic approach remove boilerplate code.
- using the richness of boost and stl.
- The second force is it's flexibiliy , and any changes will impact only a minimal portion of code.
Drawbacks of using this kind of approach:
Many developers found that the generic approach is very complicated , and understanding the code became very difficult.
What's to do? use or not the generic approach?
If it's very difficult to design an application with this appraoch ,but it's more easy to use librairies using it, like using STL or boost.
So even if we want to avoid the risk of designing the application with the modern approach, it will be a good idea to use libraries like STL or boost.
Attachments:
[dependency1[1].png]
[externals1[1].png]
[functors[1].png]
[genericmethods[1].png]
[generic[1].png]
[inheritence[1].png]
[interface[1].png]
[namespaces[1].png]
[notgenerictreemap[1].png]
[notgeneric[1].png]
[policies2[1].png]
[virtual[1].png]


Storage Options
Introduction
Ehcache has three storage tiers:
- a MemoryStore
- an OffHeapStore (available via BigMemory)
- a DiskStore
This page presents these cache storage tiers and provides the suitable element types for each storage option.
For information about sizing the tiers, refer to Cache Configuration Sizing Attributes.
MemoryStore
The MemoryStore
is always enabled. It is not directly manipulated, but is a component of every cache.
Suitable Element Types
All Elements are suitable for placement in the MemoryStore. It has the following characteristics:
- Safe
- Thread safe for use by multiple concurrent threads.
- Tested for memory leaks. The MemoryCacheTest passes for Ehcache but exploits a number of memory leaks in JCS. JCS will give an OutOfMemory error with a default 64M in 10 seconds.
- Fast—The MemoryStore, being all in memory, is the fastest caching option.
Memory Use, Spooling, and Expiry Strategy
All caches specify their maximum in-memory size, in terms of the number of elements, at configuration time.
When an element is added to a cache and it goes beyond its maximum memory size, an existing element is either:
- deleted, if overflow is not enabled, or
- evaluated for spooling to another tier, if overflow is enabled.
Overflow options are discussed here.
If overflow is enabled, a check for expiry is carried out. Expired elements
are deleted; unexpired elements are spooled. The eviction of an item from
the memory store is based on the ‘MemoryStoreEvictionPolicy’ setting
specified in the configuration file. memoryStoreEvictionPolicy
is an optional attribute in ehcache.xml
, first introduced in Ehcache 1.2. Legal values are LRU (default, consistent with all earlier releases of Ehcache), LFU and FIFO:
- Least Recently Used (LRU) *Default**—The eldest element, is the Least Recently Used (LRU). The last used timestamp is updated when an element is put into the cache or an element is retrieved from the cache with a get call.
- Least Frequently Used (LFU)—For each get call on the element the number of hits is updated. When a put call is made for a new element (and assuming that the max limit is reached for the MemoryStore) the element with least number of hits, the Less Frequently Used element, is evicted.
- First In First Out (FIFO)—Elements are evicted in the same order as they come in. When a put call is made for a new element (and assuming that the max limit is reached for the MemoryStore) the element that was placed first (First-In) in the store is the candidate for eviction (First-Out).
For all the eviction policies there are also putQuiet
and getQuiet
methods which do not update the last used timestamp.
When there is a get
or a getQuiet
on an element, it is checked for expiry. If expired, it is removed and null is returned.
Note that at any point in time there will usually be some expired elements in the cache. Memory sizing of an application must always take into account the maximum size of each cache.
There is a convenient method
which can provide an estimate of the size in bytes of the MemoryStore
, calculateInMemorySize().
It returns the serialized size of the cache. However, do not use this method in production, as it is very slow. It is only meant to provide a rough estimate.
An alternative would be to have an expiry thread. This is a trade-off between lower memory use and short locking periods and CPU utilization. The design is in favour of the latter. For those concerned with memory use, simply reduce the cache’s size in memory (see How to Size Caches for more information).
BigMemory (Off-Heap Store)
BigMemory is a pure Java product from Terracotta that permits caches to use an additional type of memory store outside the object heap. This off-heap store, which is not subject to Java GC, allows extremely large caches to be created.
Because off-heap data is stored in bytes, there are two implications:
- Only Serializable cache keys and values can be placed in the store, similar to DiskStore.
- Serialization and deserialization take place on putting and getting from the store.
The MemoryStore still holds the hottest subset of data from the off-heap store, already in deserialized form, to maintain performance. In practice, however, when the GC involved with larger heaps is taken into account, the off-heap store is faster.
DiskStore
The DiskStore provides a disk spooling facility that can be used for additional storage during cache operation and for persisting caches through system restarts.
For more information about cache persistence on disk, refer to the Persistence and Restartability page.
DiskStores are Optional
The diskStore
element in ehcache.xml is optional. If all caches use only MemoryStores,
then there is no need to configure a DiskStore. This simplifies configuration, and uses less threads. It is also good when multiple CacheManagers are being used, and multiple disk store paths would need to be configured.
DiskStores are configured on a per CacheManager basis. If one or more caches requires a DiskStore but none is configured, a default directory will be used and a warning message will be logged to encourage explicit configuration of the DiskStore path.
Turning off DiskStores
To turn off disk store path creation, comment out the diskStore
element in ehcache.xml.
The ehcache-failsafe.xml configuration uses a DiskStore. This will remain the case so as to not affect
existing Ehcache deployments. So if you do not wish to use a DiskStore, make
sure you specify your own ehcache.xml and comment out the diskStore
element.
Suitable Element Types
Only Elements which are Serializable
can be placed in the DiskStore. Any non-serializable
Elements which attempt to overflow to the DiskStore will be removed instead, and a NotSerializableException will be thrown.
DiskStores are thread safe.
Serialization
Writes to and from the disk use ObjectInputStream
and the Java serialization mechanism.
Serialization speed is affected by the size of the objects being serialized and their type. It has been found in the ElementTest that:
- The serialization time for a Java object consisting of a large Map of String arrays was 126ms, where the serialized size was 349,225 bytes.
- The serialization time for a byte[] was 7ms, where the serialized size was 310,232 bytes.
Byte arrays are 20 times faster to serialize. Make use of byte arrays to increase DiskStore performance.
Persistent Storage Options
Two DiskStore options are available:
- “localTempSwap” for temporary overflow to disk.
- “localRestartable” for disk persistence (BigMemory Go only)
####localTempSwap
The “localTempSwap” strategy allows the cache to overflow to disk during cache operation, providing an extra tier for cache storage. This disk storage is temporary and is cleared after a restart.
If the disk store path is not specified, a default path is used, and the default will be auto-resolved in the case of a conflict with another CacheManager.
The TempSwap DiskStore creates a data file for each cache on startup called “<cache_name>
.data”.
####localRestartable
The “localRestartable” persistence strategy implements a restartable store that is a mirror of the in-memory cache. After any restart, data that was last in the cache will automatically load into the restartable store, and from there the data will be available to the cache.
The path to the directory where any required disk files will be created is configured with the <diskStore>
sub-element of the Ehcache configuration. In order to use the restartable store, a unique and explicitly specified path is required.
DiskStore Configuration Element
Files are created in the directory specified by the <diskStore>
configuration element. The <diskStore>
element has one attribute called path
.
<diskStore path="/path/to/store/data"/>
Legal values for the path attibute are legal file-system paths. For example, for Unix:
/home/application/cache
The following system properties are also legal, in which case they are translated:
- user.home - User’s home directory
- user.dir - User’s current working directory
- java.io.tmpdir - Default temp file path
- ehcache.disk.store.dir - A system property you would normally specify on the command line—for example,
java -Dehcache.disk.store.dir=/u01/myapp/diskdir
Subdirectories can be specified below the system property, for example:
user.dir/one
To programmatically set a DiskStore path:
DiskStoreConfiguration diskStoreConfiguration = new DiskStoreConfiguration();
diskStoreConfiguration.setPath("/my/path/dir");
// Already created a configuration object ...
configuration.addDiskStore(diskStoreConfiguration);
CacheManager mgr = new CacheManager(configuration);
Note: A CacheManager’s DiskStore path cannot be changed once it is set in configuration. If the DiskStore path is changed, the CacheManager must be recycled for the new path to take effect.
Expiry and Eviction
Expired elements are eventually evicted to free up disk space. The element is also removed from the in-memory index of elements.
One thread per cache is used to remove expired elements. The optional attribute diskExpiryThreadIntervalSeconds
sets the interval between runs of the expiry thread.
Warning: Setting diskExpiryThreadIntervalSeconds
to a low value
is not recommended. It can cause excessive DiskStore locking and high CPU utilization. The default value is 120 seconds.
If a cache’s DiskStore has a limited size, Elements will be evicted from the DiskStore when it exceeds this limit. The LFU algorithm is used for these evictions. It is not configurable or changeable.
Note: With the “localTempSwap” strategy, you can use maxEntriesLocalDisk
or maxBytesLocalDisk
at either the Cache or CacheManager level to control the size of the swap-to-disk area.
Some Configuration Examples
These examples show how to allocate 8GB of machine memory to different stores. It assumes a data set of 7GB - say for a cache of 7M items (each 1kb in size).
For minimal application response-time variance (or minimizing GC pause times), the entire cache should fit into the off-heap store provided by BigMemory. Assuming that 1GB of heap is needed for the rest of the app, the Java config is set as follows:
java -Xms1G -Xmx1G -XX:maxDirectMemorySize=7G
Ehcache config is set as follows:
<cache maxEntriesLocalHeap=100 overflowToOffHeap="true" maxBytesLocalOffHeap="6G" ... />
To allow enough headroom for process-related data, a minimum of 256MB should be allotted via maxDirectMemorySize. This example allots an additional 1GB.
For maximum performance, a combination of on-heap and off-heap is recommended. The heap will be used for the hot set, the offheap for the rest. For example, if the hot set is 1M items (or 1GB) of the 7GB data, set Java config as follows:
java -Xms2G -Xmx2G -XX:maxDirectMemorySize=6G
And Ehcache config as follows:
<cache maxEntriesLocalHeap=1M overflowToOffHeap="true" maxBytesLocalOffHeap="5G" ...>
This configuration will compare VERY favorably against the alternative of keeping the less-hot set in a database (100x slower) or caching on local disk (20x slower).
Where the data set is small and pauses are not a problem, the whole data set can be kept on heap:
<cache maxEntriesLocalHeap=1M overflowToOffHeap="false" ...>
Where latency isn’t an issue, overflow to disk can be used:
<cache maxEntriesLocalHeap=1M...>
Where Ehcache is being used without off-heap, do not use any of the off-heap sizing attributes. Use heap and disk (maxEntrtiesLocalDisk
) sizing attributes to control overflow and conform to overall capacity.
Performance Considerations
Relative Speeds
The MemoryStore is approximately an order of magnitude faster than the DiskStore. The reason is that the DiskStore incurs the following extra overhead:
- Serialization of the key and value
- Eviction from the MemoryStore using an eviction algorithm
- Reading from disk
Note that writing to disk is not a synchronous performance overhead because it is handled by a separate thread.
Always use some amount of Heap
For performance reasons, Ehcache should always use as much heap memory as possible without triggering GC pauses. Use BigMemory (the off-heap store) to hold the data that cannot fit in heap without causing GC pauses.


---
layout: single
title: Understanding Aircraft Bird Strikes--(Messing Around with Tableau)
excerpt_separator:
---
Ok I'll admit it, I'm a bit of a nervous flyer. I'm the guy on the plane who looks around at all the flight attendants after every little bump or noise to make sure nothing's wrong. So when a United Airlines 737 was taken down by a flock of geese, that was the last thing I needed to hear about. I had no idea something as small as a bird could have such an impact on a 30 ton aircraft.
And then there was that episode of Mythbusters where they shot chickens out of a cannon into an old aircraft frame to see the damage.
Even though it turns out they were shooting frozen chickens (they forgot to thaw them), the results were still scary.
So how frequent are bird strikes? And when do they occur? I was given a dataset containing information about all the recorded bird strikes over the past 12 years. The first thing I noticed was that the file was almost 100,00 lines long. Crap.
Fortunately, out of these 100,000 strikes there were only 107 injuries and 5 fatalities. Humans seemed to fare much better than the birds. In order to get the most out of this rich dataset, I used Tableau--a data visualization product that can make some fancy interactive visualizations.
To get a full appreciation for the interactive nature of Tableau you have to click the link above. Here are some highlights.
I had no idea that bird can fly as high as 25,000 feet! It makes sense that some of the most damaging (costliest) strikes occurred when the plane was traveling fast at a higher altitude.
Texas and California have had the most strikes, but this is a bit misleading. They are also the most populous states, and have some of the nation's largest airports. There are many more flights originating in these two states compared to other smaller states. That means there are many more chances for a strike.
The majority of strikes occur in clear skies during the day.


{% load staticfiles %}
List of crawled urls:
Crawl url(s)
Delete all data
Course
Details Link
Official course url
{% for course in courses %}
{{ course.name }}
details link
official link
{% endfor %}


FileSeek()
Syntax
FileSeek(#File, NewPosition.q [, Mode])Description
Change the read/write pointer position in the file.
Parameters
#File The file to use. NewPosition.q The new position relative to the beginning of the file in bytes. Mode (optional) The seek mode. It can be one of the following values: #PB_Absolute: the 'NewPosition' parameter will be an absolute position with the file (default). #PB_Relative: the 'NewPosition' parameter will be an offset (positive or negative) relative to the current file pointer position.
Return value
None.
Example
file$ = OpenFileRequester("Select a file","","Text (.txt)|*.txt|All files (*.*)|*.*",0) If file$ If ReadFile(0, file$) length = Lof(0) ; read length of file FileSeek(0, length - 10) ; set the file pointer 10 chars from end of file Debug "Position: " + Str(Loc(0)) ; show actual file pointer position *MemoryID = AllocateMemory(10) ; allocate the needed memory for 10 bytes If *MemoryID bytes = ReadData(0, *MemoryID, 10) ; read this last 10 chars in the file Debug PeekS(*MemoryID) EndIf CloseFile(0) EndIf EndIf
See Also
Loc(), Lof()
Supported OS
All


The previous version of the FRB/US model contained two concepts of most interest rates: the effective annualized yield and the stated interest rate. The former accounts for compounding over the full year and its interest rates were the ones entering in the right-hand side of the model’s dynamic equations. The latter was the concept often reported as it corresponds more closely to the market interest rates. However, the existence of two concepts occasionally fostered confusion and communication issues. For these reasons, and given how in this age of low interest rates, the difference in values between the concepts is relative small, the elimination of one of them appeared to be a natural course of action.


--- title: "Assessing reporting priorities and needs" permalink: "/topic/priorities/" layout: "topic" topic-tag: "priorities" show-resources: false ---
As countries set their objectives for SDG reporting, they may evaluate the extent to which the SDGs relate to their national strategies for development and other policy priorities, including both sectoral and subnational strategies and policies. They will also need to consider set-up and maintenance costs, and technical capacity requirements for SDG reporting.
This section includes resources on policy considerations, stakeholder engagement, financing and capacity relevant to SDG reporting.


{{currentFight.fighterA.name}}
{{currentFight.totalScore().a}}
({{currentFight.totalScore().d}})
{{currentFight.totalScore().b}}
{{currentFight.fighterB.name}}
Limit reached! The exchange limit has been reached, confirm this fight
Limit ahead! The time limit will be reached in {{currentFight.timeLimit - timer.displayTime + 1000 | seconds}} seconds
Limit ahead! The break (of {{currentFight.breakDuration / 1000}} seconds) will be reached in {{currentFight.breakAt - timer.displayTime + 1000 | seconds}} seconds
Limit reached! The time limit has been reached, confirm this fight
Limit ahead! The double hit limit will be reached in 1 double hit
Limit reached! The double hit limit has been reached, confirm this fight
Limit reached! The point limit has been reached, confirm this fight


The easiest way to run a utility of the manage.py task is to choose Run manage.py Task in the Tools menu, or press &shortcut:Django.RunManageTaskAction;.
As you type the name of the utility you want to run, the lookup list shrinks to show the matching entries only.
If you type an asterisk, PyCharm will show the complete list of all the available tasks.


Computes and returns the sampled softmax training loss.
tf.compat.v1.nn.sampled_softmax_loss( weights, biases, labels, inputs, num_sampled, num_classes, num_true=1, sampled_values=None, remove_accidental_hits=True, partition_strategy='mod', name='sampled_softmax_loss', seed=None )
This is a faster way to train a softmax classifier over a huge number of classes.
This operation is for training only. It is generally an underestimate of the full softmax loss.
A common use case is to use this method for training, and calculate the full
softmax loss for evaluation or inference. In this case, you must set
partition_strategy="div"
for the two losses to be consistent, as in the
following example:
if mode == "train": loss = tf.nn.sampled_softmax_loss( weights=weights, biases=biases, labels=labels, inputs=inputs, ..., partition_strategy="div") elif mode == "eval": logits = tf.matmul(inputs, tf.transpose(weights)) logits = tf.nn.bias_add(logits, biases) labels_one_hot = tf.one_hot(labels, n_classes) loss = tf.nn.softmax_cross_entropy_with_logits( labels=labels_one_hot, logits=logits)
See our [Candidate Sampling Algorithms Reference] (https://www.tensorflow.org/extras/candidate_sampling.pdf)
Also see Section 3 of Jean et al., 2014 (pdf) for the math.
weights
: A Tensor
of shape [num_classes, dim]
, or a list of Tensor
objects whose concatenation along dimension 0 has shape
[num_classes, dim]. The (possibly-sharded) class embeddings.biases
: A Tensor
of shape [num_classes]
. The class biases.labels
: A Tensor
of type int64
and shape [batch_size,
num_true]
. The target classes. Note that this format differs from
the labels
argument of nn.softmax_cross_entropy_with_logits
.inputs
: A Tensor
of shape [batch_size, dim]
. The forward
activations of the input network.num_sampled
: An int
. The number of classes to randomly sample per batch.num_classes
: An int
. The number of possible classes.num_true
: An int
. The number of target classes per training example.sampled_values
: a tuple of (sampled_candidates
, true_expected_count
,
sampled_expected_count
) returned by a *_candidate_sampler
function.
(if None, we default to log_uniform_candidate_sampler
)remove_accidental_hits
: A bool
. whether to remove "accidental hits"
where a sampled class equals one of the target classes. Default is
True.partition_strategy
: A string specifying the partitioning strategy, relevant
if len(weights) > 1
. Currently "div"
and "mod"
are supported.
Default is "mod"
. See tf.nn.embedding_lookup
for more details.name
: A name for the operation (optional).seed
: random seed for candidate sampling. Default to None, which doesn't set
the op-level random seed for candidate sampling.A batch_size
1-D tensor of per-example sampled softmax losses.


You have logged into Microsoft Azure!
You can close this window
Some failures occurred during the authentication


The status indicator displays a SVG images that indicate a pictorial representation of an object. It allows
users to fill the content on a numeric scale, fillPercentage
typically from 0 (lowest) to 100
(highest) as percentage. If any negative value is passed the default lowest(0) value is applied. The Status
Indicator uses filling color representation like status
and option available are
positive,critical,negative
.
The Status Indicator uses size representation like size
and option available are:
If you omit these property the default value will be applied.
Note: Two mandatory property are required in order to achieve the image rendering. These properties are derived from the svg html representing an image.
Attribute is array of string path
represent the svg html path tag with
d
attribute form a array of string and pass it to the status indicator as a path attribute.
Attribute is a string viewBox
represent the svg html viewBox value of the svg provided.


[§261-15.7] Failure to register. (a) All aircraft, unless exempted, shall be registered within the time prescribed by rules adopted by the director.
(b) Failure to comply with the registration requirements shall subject the operator of the aircraft to:
(1) A penalty of not more than $100 per aircraft;
(2) The denial of the use of the airport facilities; and
(3) Removal of the aircraft to a location designated pursuant to rules adopted by the director.
(c) The director is authorized to adopt rules pursuant to chapter 91 to effectuate the purposes of sections 261-15.5 to 261-15.7. [L 1985, c 299, pt of §1]


SpaceBrite mission is to properly distribute ticketing prices to high middle-income families using NASA data analyses


Turn On Mic: Press this button to turn on mic of Teleprompter. After Pressing this button, Teleprompter will start listening. Teleprompter will also start taking the voice commands once the mic is on.
Start: Press this button to start Teleprompter. Press this button and then start speaking the Teleprompter text. You can also give the predefined voice command to start.
Pause: Press this button to pause the Teleprompter. Teleprompter not be working anymore. By default, after 15 seconds of inactivity, Teleprompter will automatically paused. You can also give the predefined voice command to pause the Teleprompter.
Reumse: Press this button to resume the Teleprompter. If Teleprompter is in paused state, by press Resume button, It will resume working. You can also give the predefined voice command to resume the Teleprompter.
Turn Off Mic: Press this button to turn off mic of the Teleprompter. By pressing this button, Mic of the Teleprompter will be turned off and it will not be working anymore.
Start Camera: Click This button and turn on the camera for video recording.
Start Recording: Click this button to start video recording.
Play: Click this button to play the recorded video in browser.
Download: Click this button to download the recorded video.
Save Script: Enter the text in the text area and press Save Script Button to display the text on Teleprompter screen.
Clear Script: Clear the text from the screen of Teleprompter.
Reset Teleprompter: Click this button to reset the Teleprompter and start Teleprompter text from the beginning
Prompter Configurations: Click this button to open the drawer for prompter configurations. This section is explained in below.
Prompter Configurations
Close Button: By clicking this button, configuration drawer will be closed.
Show Mic and Camera Option: By clicking this button, popup will open to select the camera and mic prefrences. Once you saved the prefrences, Teleprompter will always use the preffered input devices.
Font Size: Adjust the font size of Teleprompter text.
Width: Adjust the width of Teleprompter text.
Text Color: Adjust the color of Teleprompter text.
Text Backgroud Color: Adjust the backgroud color of Teleprompter text.
Voice Commands Words: Set the words for voice commands to Start, Resume, and Pause Teleprompter.


Links
Links provide navigation between pages, not action. If you want to provide action, you should use a button.
Basic structure
You can mark an element as a link, by either using an
element with a source ("href" attribute), or by adding the .link
class.
This results in a blue-ish color (which can be modified in the "_child.scss") and an underline on hover.
Example
Link (a)
Link (.link)
<button class="link">Link (button.link)</button>
Link (a), Link (.link),
Colored links
It's also possible to give links any of the secondary colors and to "mute" them (gray out).
To do so, you have to use any of these classes:
.is-red
for dangerous links/links to removed targets.is-success
for successful links.is-yellow
for potentially dangerous links.is-teal
for links in neutral-informative contexts (using no modifier is here the best option in most cases, however).is-muted
for secondary/inactive links
Example
normal
is-red
is-green
is-yellow
is-teal
is-muted
Links with/without underline
By default, all links are underlined, if and only if they are hovered. However it is possible to either prevent all underlines or to force them to always exist. Use these classes for this:
.is-underlined
to force an underline to always exist.is-not-underlined
to prevent underlines from ever appearing
Example
normal
with underline
without underline


How the Spanish Flu Went Viral (And Then Got Boring)
What feels most modern about this pandemic – the all-pervasive news coverage – has a precedent in the 1918 Spanish flu that suggests why it’s already tapering.
Despite expert warnings that coronavirus repercussions will extend through summer, politicians aren’t the only ones wondering how much longer even partial lockdowns can last. The trouble isn’t just impatience. Almost two months after the cancellations of events and entertainment nationwide, the sheer inescapability of pandemic discourse raises the question of how much longer we can remain interested enough to follow its advice. The story of the last time a virus went viral shows that our ability to retain attention is essential to maintaining public health as officials ease restrictions, and it provides lessons for staving off fatigue enough to do so while consuming pandemic discourse.
Several writers have noted parallels between the coronavirus pandemic and its most devastating modern predecessor, the Spanish flu, which killed millions worldwide in the final months of 1918 and World War I.1 This comparison is somewhat exaggerated: the Spanish flu proved deadlier and faster-acting. What the two do have in common is that the Spanish flu, like the coronavirus, was a truly global event, in the ways that both the disease and the discourse about it spread. With newspaper data from Chronicling America, we can reveal how. (Open images in new tab for larger versions.)
The newspaper was the primary news format in 1918, but it bore striking resemblance to our contemporary media ecology. Issuing updated editions throughout the day, sharing syndicated articles, and freely reprinting snippets from one another, newspapers had more in common with the continuous speculation, reposting, and retweeting of a Twitter feed. It was a fast-paced technology as amenable to “viral” stories and memes as any in the twenty-first century.
Despite de facto censorship in August and September while the virus gained its foothold, news of the Spanish flu shot through this highly-internetworked media environment in October. Over that exasperated month newspapers referenced the Spanish flu more than twice for every page they printed.2 Initial coverage clustered near the military bases where soldiers brought the unusually-deadly influenza strain back from Europe, but the dissemination of news quickly outpaced that of the virus even with the latter’s head start. The Spanish flu went from sporadic reportage to nationwide ubiquity in mere weeks.3
This experience of total immersion can make pandemic discourse often feel frustratingly like mere sound and fury. All the more so in 1918, when a general lack of precise statistics in circulation fueled even deeper divisions among commentators on how (or whether) to respond to the virus. Every week, American newspapers flooded homes, streets, businesses, and public transit with over half a billion pages.4 The Spanish flu was on every one of them. The result was no less overwhelming than today.
The Spanish flu shows that the best way to make sense of pandemic discourse is by recourse to its very pervasiveness. Quantity can often communicate more than content. In spite of extensive disagreement and misinformation, at first the volume of articles roughly correlated to the number of deaths. The peak in news coverage in mid-October (week 42, beginning with the 14th) in fact slightly preempted the peak in deaths, which would come in late October and early November.
Newspaper coverage immediately began to decline, however, even as the domestic death toll continued rising in November and rebounded in many locations in December and January. Why? Looking to broader patterns rather than specific content illuminates what happens to pandemic discourse as and after it goes viral.
Like today, in 1918 news cycles shaped press as much as conditions did. Even at its height, Spanish flu coverage remained closely related to the number of newspaper pages printed daily (Figure 1). Reports on global pandemics still had to obey norms of what should be printed on particular pages or particular days; conversely, when there were more pages to fill writers relied on the Spanish flu to supply content. The rate of reference held longer at roughly once per page, indicating the degree of news saturation with which editors and readers were more comfortable. Major events expose as much about the way we circulate information as news media informs us about events themselves.
Trends in content shed further light on the rapid climb and brisk drop-off in pandemic discourse. The most reprinted articles drove discussion, inspiring copies and commentary. They tended to fall into three familiar categories, showcasing how little our response has changed: advice for self-isolating, pieces on the cultural repercussions of pandemics, and opportunistic advertisements. (Obituaries and commentary on school or business closures were also common though more locally-specific.) The first two of these types worked in tandem to drive the October peak in total coverage. Advice pieces promised that, if followed, all would be over sooner, while culture pieces attempted to interest readers in the pandemic and their own preventative efforts in the meantime.
It is surprising to see just how little this coverage changed over time, a corroboration of the monotony many feel today. Of all the words used alongside Spanish flu references, only a handful had a standard deviation in week-to-week usage of 4% or higher. There was, though, a subtle yet crucial generic shift. The decline in total coverage corresponded with an increase in advertisements and a decrease in culture pieces. At the same time, the number of front page features declined by almost half from October to January. The Spanish flu was becoming boring.
The decline in coverage was nonetheless experienced at different paces in different parts of the country. The smaller rural papers that initially had been slower to discuss the virus continued grappling with its wake after the leading Northeastern publishing centers tired of virus news and turned their focus elsewhere (Figure 3). We can likely expect a similar coastal/interior disjuncture in the coming months.
We know when something “goes viral” that it won’t remain with us indefinitely. Pandemics, the actual viruses on which that idiom is based, can often feel to the contrary as if they will last forever and change everything. Yet as Spanish flu coverage shows and current events are now repeating, pandemic discourse spikes and recedes much like other major public phenomena. Viruses outlast our interest in them, belying the metaphor of “going viral.” The lessons of the Spanish flu can help us from losing sight of the forest for the trees as we consume pandemic discourse in the months to come – if we can pay attention.
-
“Spanish flu” is a misnomer based on the mistaken impression that the new strain of influenza either originated or was particularly prevalent there. In actuality this impression resulted merely from the fact that the press of Spain, neutral in WWI, was less censored. Readers were largely aware of the inaccuracy. One of the most reprinted articles about the Spanish flu that fall (just missing the cutoff for Figure 4) insisted that there was “no reason to believe that it originated in Spain.” Whether by education or simply the pandemic’s localization, use of “Spanish” to describe this flu declined sharply as coverage increased. (For this reason the data used here encompasses uses of “influenza” as well as “Spanish flu”; see footnote 2.) ↩
-
The values for August in Figure 1 and for week 36 in Figure 3, while not part of the typical flu season, are equivalent to the amount of flu coverage found in months that are, namely, January and February 1918. The amount of Spanish flu coverage is thus only trivially offset at most by the “normal” amount of flu coverage. ↩
-
The dip in pages per day is the result of Christmas and New Years press holidays, as well as a tendency for the first issues to deteriorate in physical holdings (not the result of current events). ↩
-
This is a conservative rough estimate based on summary and circulation figures in N. W. Ayer & Son’s Newspaper Annual (1918). If we multiply 1) the total numbers of weekly, biweekly, triweekly, and daily papers by the number of issues each published per week by 2) an average of 8 pages per issue by 3) 2,000 copies per issue, a very conservative guess taking into account the fact that while many papers had circulations between 500 and 1,500, urban papers often had circulations over 100,000 – the result well exceeds 500,000,000 pages printed per week. ↩


The good news, as we will see in a moment, is that it's a pretty good time in Science, Technology, Engineering and Math to be a woman. Yet at the same time we may ask, where did the current low numbers of women in STEM arise?
An influential report by the National Academy of Sciences in 2006 concluded that "on the average, people are less likely to hire a woman than a man with identical qualifications."
The under representation of women in academic science is typically attributed, both in scientific literature and in the media, to sexist hiring.
There's a problem with this stereotype.
As reported in the Proceedings of the National Academy of Sciences:
"When we searched the literature, we could not find one empirical study of sexism in faculty hiring using actual faculty members as evaluators and focusing on fields in which women are most underrepresented. So we did the study ourselves."
From the study abstract:
If there is a bias in hiring in academia and it is hugely in favor of women , then where does the current scarcity come from?
I have been a hiring manager for programmers and in my career this deficit has been so extreme that even work colleagues and members of my board of directors who are greatly against affirmative action of any kind have said, "you know it's unhealthy to have such an unbalanced workforce." My response has been along these lines: "We need to hire 10 engineers. We have 100 applications. Of these, fewer than 5 are women. Even if I hire all the women applicants regardless of their qualifications we will still be unbalanced."
In 2015 it may not be this bad, but if you look at the enrollments at coding boot camps things would seem to have improved little. If you look at university CS programs over the last two decades, it's gotten worse.
So where does the extreme scarcity of women in STEM come from?
Mother Nature Network citing a study by researchers at the University of Pittsburgh and the University of Michigan said, "Women avoid math and science careers because they can."
It stands to reason that men who had good math skill but lacked in verbal skill would have a stronger tendency to progress to STEM careers. If this is true, then we should see a pickup in women studying science during economic downturns, providing the the pay and availability for such technical jobs remains high while opportunities for non-STEM jobs is diminished. It will be interesting to watch for such studies over the next years to see if the financial crisis has had this impact.
If women are choosing against careers in STEM, they are also doing so against some pretty strong contrary reasons. Careers in tech are relatively higher paid and the jobs more plentiful. What conscious or sub-conscious reasons are there against a STEM path? When does the trend against choosing STEM begin? A review of the literature shows that girls begin dropping out of STEM classes in progressively higher numbers starting early in adolescence. The obvious question is to ask what so unappealing about a STEM path that its effects could be seen that early?
It took me a while but I finally discovered a New York Times article that invited girls over 13 to answer that very question. I found this extremely literate comment (excerpted from a much larger response) from a 12 year old girl especially interesting:
According to this well spoken youngster there is a real expectation that science and math oriented students will be socially mal-adjusted. There was a strong perception of social stigma attached to them. I turned to my own sources to support or deny this assertion: I talked to my niece.
She is a straight A student. She excels at math. She is also very pretty and popular. I asked her if she would consider being a scientist or engineer. She said no. Why? I asked. Her answer was revealing and paralleled the comments of girls in the NYTimes article.
By anyone she meant "boys". When I challenged her, mentioning that the science types were mostly boys her response was immediate and strong.

From talking to her and one of her friends, the nerds were, so low on the social status totem pole as to be non-human, even genderless. Just being associated with "them" came with real social cost. This might be the elephant in the room I was looking for.
I was so astounded by all this that I went in search of a real world example, either tending to support the stereotype, a reason for it's continued propagation. Did my niece have a point? I didn't have to look far. The coding "bootcamp" AppAcademy, a hard core, accelerated full stack web programming program has an extraordinary lesson devoted to proper hygiene, including the explicit requirement to shower every day. They apologize for having to include such a retrograde discussion but state that they do so because a lack of basic grooming and social presentation skills has been a problem. I was dumbfounded.
I then interviewed a friend in grad-school who is a bio-chemist, programmer and happens to be an attractive woman. My question was simple, "what has your experience been as a woman in a STEM career." She and I often disagree on social policy matters and almost always disagree on politics, and because of that I find her to be a good reality check.
One problem that remains is the "geek poser" idea. If I dress well and/or generally look good at a geeky conference, there is a class of haters who think I can't possibly be a "real" geek/nerd...I do have a STEM degree, and am working on another. So, it's annoying to be seen as a poser because I know how to match my clothes and am very fond of showers :).
I found myself astounded at her final remark because the reference to showers and grooming was entirely unprompted. The stereotype that geeks are all socially awkward and unattractive, even repellant, is so strong that she has experienced a countervailing stereotype: if you are not socially/sexually undesirable you must not be technical.
If we are to accept the conclusions of the studies cited in Mother Nature Network, and the endless examples provided me by my niece (which I'll spare you in this post), the stereotype of the socially backward nerd or geek is at least partially well-founded. We are our own worst enemies. Why is this so extremely gender specific? The Mother Nature Network explanation has some scientific merit. This post is already too long but the gist is that women have more brain matter by weight and complexity in areas known to contribute to communication abilities than men. See here and here. Evolutionary biologists hold that there are good reasons for gender based ability differences.
We need to eliminate this stereotype if we are going to allow girls in our society to choose STEM careers without the fear of social rejection and stigma. To do this we will have to educate and train-away any real causes of the stereotype as well. If we fail even to admit the problem to ourselves, then our efforts will fail. Anything we tell girls will be rejected by something far more powerful: their own life experiences and the pressures of adolescence.
Mike Farr
Everything that's interesting to do was once impossible.
May 6, 2015


Date
Amount
ROI
PF
PG
Security
Other Conditions
Committee Remarks
Sanction
Hold
Save
Reset
Re-Enter
Comments on Financials
Risk / Concerns & Mitigans
Final Comments
Amount
Recommend Condition
Recommendations
Send to Decision Committee


|
BiriBiriBeat
An Arduboy Otoge/Rhythm Game
|
Abstract base state class. More...
#include <gamestates.h>
Public Member Functions | |
| virtual bool | next_frame () |
| Determines if it's time to draw the next frame. More... | |
| virtual void | on_entry ()=0 |
| The entry function of a state. More... | |
| virtual void | on_exit ()=0 |
| The exit function of a state. More... | |
| virtual gamestate_e | on_loop ()=0 |
| The loop function of a state. More... | |
Abstract base state class.
This base class implements a heirarchical state machine, with each state having three methods: entry, loop, and exit.
Whenever a state is transitioned into, its entry method should be called. The loop method of the current state should be called every game loop, and will return the next state based on its runtime calculations.
When a transition is determined necessary by the loop method, i.e. the next state is not equal to the current state, the current state's exit method should be called and the next state saved.
When no transition is necessary, simply loop again.
Definition at line 49 of file gamestates.h.
|
virtual |
Determines if it's time to draw the next frame.
In this engine, the state machine runs to completion once per frame.
This function is a frame timekeeping function. It internally measures the time between frames, and will return whether enough time has elapsed since the last frame to draw a new one.
Definition at line 131 of file gamestates.cpp.
|
pure virtual |
The entry function of a state.
This function is part of the enter->loop->exit method of handling states and transitions. It should be run when entering a new state before calling the looping method.
Implemented in game_menu_result, game_menu_select_difficulty, game_menu_select_mode, game_menu_manual, game_menu_config, game_menu_main, game_run_playing, and game_run_init.
|
pure virtual |
The exit function of a state.
This function is part of the enter->loop->exit method of handling states and transitions. It should be run when exiting a current state before entering a different state.
Implemented in game_menu_result, game_menu_select_difficulty, game_menu_select_mode, game_menu_manual, game_menu_config, game_menu_main, game_run_playing, and game_run_init.
|
pure virtual |
The loop function of a state.
This function is part of the enter->loop->exit method of handling states and transitions. It should be run for the current state every game loop.
Implemented in game_menu_result, game_menu_select_difficulty, game_menu_select_mode, game_menu_manual, game_menu_config, game_menu_main, game_run_playing, and game_run_init.


Criss Waddle dispels bleaching rumours
by MyNewsGHIn Ghana, when your when your photos posted on social media has intense light that makes you look a bit fairer, people conclude you are bleaching.

To dispel the rumours, the rapper shared a photo of himself with the caption ” The supposed bleached knee oh GHANA”.
Source:MyNewsGh.com/Ayeh Offei-Akoto/2019


Header
Sidebar
Total sessions possible:
Days present:
Percentage attended: :
Extra credit points: :
Date
Present
Footer
Ready to Leave?
×
Select "Logout" below if you are ready to end your current session.


Often times, traditional methods of writing variables and file names excludes those with limited or no vision.
Many screen readers will generate incorrect pronunciation with camel case and all caps.
Question 1:
What technique will allow for more inclusive reading of file names?


SoundManager Testing
Input Seek Time for MP3
Input Time Interface
Time (sample for 5 mins: 05:00)
Sample UI Player
Play / pause
< seek time
< Reverse Play
JavaScript is required.
0:00
5:00
< previous
> next
volume
menu
Kalimba MP3
Traditional WAV
quilt's orchestral OGG
Birds in Kauai AAC/MP4
Crossfade
Current value song A
Current value song B
Go to Piano Keyboard player page


Homepage
This is one of my first actual webpages That I have created. I enjoy making websites because it allows me to use creativity, which i normally lack. I am not sure what the requirements are for this project, so I am going to make it simple, but also a little creative. I am still learning how to do a lot of the css formatting so I am not able to make it perfect. I tried to do my best on this website without over-working myself, so that is all I care about it.
I have made websites before, I even took 2 classes in high school for web development. Those were some of the only computer courses in my high school, so I was interested in learning them. I pick up well once I am taught a few times how to use the formatting. In high school, students actually paid me to make their website projects because I always finished mine on the first day and they were stuck doing it for the rest of the week. Of course, I took advantage of this opportunity and made a few hundred dollars throughout the year by charging $5 a web page. The teacher eventually caught on and I took a few points off of my grade and the other students got 0's.
I would definitely like to learn how to efficiently code websites so I can do what you suggested and make webpages on my free time. Currently, with the amount of projects I have in school, I don't have much free time. If I was able to make one website a week or something for some extra cash, that would be amazing. Doing this would also help build a profile for myself that would provide me with enough experience to come out of college with a decent career path.
I am running out of things to say, but I do enjoy this class as you know that standardized tests do nothing to help students learn. I prefer doing projects to force me to learn exactly everything I need to know in order to create a working web page. The more projects I do, the more I feel like I am actually learning how to do specific things. Specifically, if we are told to make a website a certain way and focus on few main components, that would help me learn how everything should be made. I really dont understand the F and Z layout fully, so I am not sure what you want me to do with this website. But I assume you just want us to create a simple website that follows your sample layout. Which I feel that I have done here.