text: This paper presented a newly developed transparent pullout testing device conceived with the objective of studying the soil–geogrid interaction under small displacements and strains. The bottom plate and the side walls of the pullout box were transparent. The system involved a transparent soil, which was tested as a surrogate for sands in the testing program. The setup led to 3D visualization of the soil–geogrid interaction as it allowed direct visualization of the plan view of the geogrid as well as of the side view of the soil–geogrid interface. Markers embedded in the transparent soil mass allowed tracking of soil particle displacements during the test. The tests were conducted using a polypropylene biaxial geogrid and both transparent soil and a conventional sand. Displacements along the geogrid were obtained continuously using digital image correlation (DIC) techniques in tests with transparent soil, and using tell-tails at five junctions in tests with sand. Comparison of test results with both soils showed that the transparent soil constitutes a good surrogate for sands in pullout studies. The pullout test with transparent soil also indicated that displacements along the geogrid could be properly described using an exponential function. Moreover, exponential fitting to the displacement data led to an exponential distribution of strains along the geogrid during pullout testing. Deflections of transverse ribs were first observed at early stages of the test when only 25 % of the maximum pullout force developed. The observed displacement patterns of the soil markers were useful in defining the zone of influence of the geogrid, which could be successfully quantified using the newly developed testing device. Overall, the new equipment was found to represent an effective tool to better understand the mechanisms involved in soil–geogrid interaction, particularly those that are relevant to quantify the interface stiffness.


text: When GM (genetically modified) and non-GM crops coexist, not all of the latter can be sold as GM-free crops as some of them will likely be contaminated by GM crops. The choice of producing non-GM crops will consequently depend on the surrounding crops. We therefore analyze the spatial distribution of GM and non-GM crops. When producers follow individual strategies, many spatial configurations arise in equilibrium, some of which are more efficient than others. We examine how coordination among producers impacts the spatial distribution of crop varieties, and show that coordination among only a small number of producers can greatly improve efficiency. In particular, a non-GM producer neighboring two GM producers needs to coordinate with only one of them to eliminate any spatial inefficiency from variety choices.

source: openbmb/Ultra-FineWeb


text:
Thu February 14, 2013
Haggis; a delicacy
Haggis is a savory pudding containing sheep's pluck, which is the heart, liver and lungs of a mature sheep; minced with onion, oatmeal, suet, spices, and salt, mixed with stock, and traditionally encased in the animal's stomach and simmered for approximately three hours.
Most modern commercial haggis is prepared in a sausage casing rather than an actual stomach.
As the 2001 English edition of the Larousse Gastronomique puts it, "Although its description is not immediately appealing, haggis has an excellent nutty texture and delicious savory flavor".
Haggis is a traditional Scottish dish, considered the national dish of Scotland as a result of Robert Burns' poem Address to a Haggis of 1787. Haggis is traditionally served with "neeps and tatties" (Scots: turnip and potato), boiled and mashed separately and a dram (a glass of Scotch whisky), especially as the main course of a Burns supper. However it is also often eaten with other accompaniments.
To learn more about Haggis, look for Celtic Classic on Facebook for links to the Celtic Cultural Alliance Education Blog. Additional research and ideas for further exploration of resources in the Lehigh Valley are gathered there. For the Celtic Cultural Alliance, I'm Silagh White. Slainte

source: HuggingFaceFW/fineweb-edu


How do I reset scale in AutoCAD?
How do I delete unused scales in AutoCAD?
In the properties tab, scroll to Text > Annotation and set it to Yes. In the annotative scale box, click the box that appears to the right of the current scale. Select the scale to be purged and click Delete. Click OK.
How do I change the default scale in AutoCAD?
 1. Use a default DWT file which uses the correct units and scale lists. acad. dwt or acadlt. dwt for Imperial units. …
 2. Adjust the MEASUREMENT system variable to match the desired units for the drawing. This will cause the default scale list to change accordingly. MEASUREMENT = 0 (Imperial).
16 февр. 2020 г.
How do I change the scale in AutoCAD 2020?
To Change the Scale of a Drawing View
 3. Click the lookup grip. A menu appears.
IT IS INTERESTING: Quick Answer: How do I open an AutoCAD file that is not valid?
29 мар. 2020 г.
How do I change the annotation scale in AutoCAD 2018?
Model Space
 1. Enter QVDRAWING on the command line.
 2. The Quick view model and layout thumbnails are displayed.
 3. Click the Model thumbnail.
 4. On the status bar, click the Annotation Scale drop-down list and select the scale to set current.
11 янв. 2018 г.
What is Annoautoscale?
Adds the newly set annotation scale to annotative objects that support the current scale except for those on layers that are turned off, frozen, locked or that are set to Viewport > Freeze. 2.
Why is my AutoCAD drawing so small?
1- may be your space reason is too much large as compare to your drawn size. 2- your dimensions are being scaled. Best optionafter making first thing " press–> Z–> hit enter/space bar–> A–> hit enter/space bar. Whole thing will be scaled and fit in to your screen.
How do you calculate scale?
How do you scale up drawings?
How to Scale Up a Drawing
 2. The copy machine / print shop method. …
 3. The home printer method. …
 4. The projector method.
IT IS INTERESTING: How many types of scales are there in AutoCAD?
11 дек. 2017 г.
What is the default scale in AutoCAD?
Type ATTACH and press enter then select an image and click OK. Specify a point in the drawing are to insert it and press enter to accept the default scale of 1.
How do I know the scale of my drawing in AutoCAD?
Press Ctrl + A on your keyboard to select all elements in the drawing. Type 'scale' in to the command bar and press enter. AutoCAD will ask 'SCALE Specify base point:', type '0,0' (without the quotes) and press enter. to view the data.
How do I change scale space in AutoCAD?
To Set the Dimension Scale for Model Space Dimensions in Layouts
 1. Click Drafting tab > Dimension panel > Dimension Style.
 4. Click OK.
 5. Click Close to exit the Dimension Style Manager.
4 февр. 2019 г.
How do you scale in AutoCAD?
 1. Type LINE on the command line and press Enter.
 2. Draw a line that is the desired length the image reference length should be then press Enter. …
 3. Select the object to be scaled and type SCALE into the command line and press Enter. …
 4. Click at the base point, then type R for 'Reference'.
Sketch up


Sign up ×
I have a very stupid question: I often see that the volume entropy of a compact Riemmannian manifold with negative curvature coincide with the Hausdorff dim of the limit set or Patterson sullivan measure on the boundary.
But the volume entropy is not invariant under scaling of the measure, and I assume the dimension of limit set is. So what is the correct normalization to make the claim above true?
share|cite|improve this question
"Hausdorff dim of" what "limit set"? $\:$ – Ricky Demer May 17 '13 at 21:42
In this context, limit set is the ideal boundary of the universal cover. Classically, one uses this in the case of Kleinian groups. Then the right formula is that volume entropy equals Hausdorff dimension of the conical limit set of the group (which could be less than dimension of the full limit set). See Nicholls' book "Ergodic theory of discrete groups". Normalization in variable curvature was worked out in papers by Besson, Courtois and Gallot (maybe also Hammenstadt) and you only have an inequality. Equality if I remember correctly is only in curvature -1 case. – Misha May 17 '13 at 22:33
See also and references therein. – Misha May 17 '13 at 22:33
Thanks Misha, the answer is very helpful. While I'll try to look it up in the BCG papers, do you happen to remember in which direction the inequality is, between entropy and dimension, for non-constantly curved manifolds? – Jerry May 17 '13 at 23:44
1 Answer 1
For the geodesic flow on the unit tangent bundle of a compact manifold with nonpositive curvature, a classical result of Manning asserts that the topological entropy of the geodesic flow equals the volume entropy of the universal cover. This is true in variable (nonpositive) curvature.
For the geodesic flow on the unit tangent bundle of a negatively curved manifold, the topological entropy is equal to the critical exponent of the fundamental group of the manifold (result due to Otal-Peigné in full generality. You just have to assume that the curvature is bounded between two negative constants).
The critical exponent of the group is always equal to the Hausdorff dimension of the conical (also called radial) limit set of the group acting on the boundary at infinity (in variable negative curvature). I don't remember if the result in this generality is due to Sullivan (he writes in curvature -1, but the arguments are often general), or maybe to Bishop-Jones.
For general noncompact manifolds, the critical exponent(=topological entropy) is strictly smaller than the dimension of the boundary. In this situation it is not reasonable to expect an equality with the volume entropy of the universal cover, which is the common value of the topological entropies of all geodesic flows of all compact quotients.
An interesting phenomenon arises in the finite volume case. One could expect that the result of Manning could still be true. In fact, if the curvature varies too much in the cusps, the equality fails to happen. See here a work of Dalbo Peigne Picaud Sambusetti
For your question of normalization: I believe that when you scale the metric of the manifold, you scale also the natural distances on the boundary, and therefore Hausdorff dimension of limit sets.
share|cite|improve this answer
Your Answer


Cookies on this website
The purpose of this study was to investigate the level of adherence to antipsychotic prescription medication in a well-defined homeless cohort over a 15-year period. We hypothesized that adherence would be well below the recommended threshold for clinical effectiveness (80 %), and that it would be strongly associated with modifiable risk factors in the social environment in which homeless people live.Linked baseline data (including comprehensive population-level administrative prescription records) were examined in a subpopulation of participants from two pragmatic-randomized trials that investigated Housing First for homeless and mentally ill adults. Adherence to antipsychotic medication was operationalized using the medication possession ratio. Multivariable logistic regression was used to estimate effect sizes between socio-demographic, homelessness-related and illness factors, and medication possession ratio.Among the 290 participants who met inclusion criteria for the current analysis, adherence to antipsychotic prescription was significantly associated with: history of psychiatric hospitalization; receipt of primary medical services; long-acting injectable antipsychotic formulations; and duration of homelessness. Mean medication possession ratio in the pre-randomization period was 0.41. Socio-demographic characteristics previously correlated with antipsychotic non-adherence were not significantly related to medication possession ratio.This is the first study to quantify the very low level of adherence to antipsychotic medication among homeless people over an extended observation period of 15 years. Each of the four factors found to be significantly associated with adherence presents opportunities for intervention. Strategies to end homelessness for this population may represent the greatest opportunity to improve adherence to antipsychotic medication.
Original publication
Journal article
Social psychiatry and psychiatric epidemiology
Publication Date
1623 - 1632
Humans, Antipsychotic Agents, Retrospective Studies, Mental Disorders, Adult, Middle Aged, Mentally Ill Persons, Homeless Persons, British Columbia, Female, Male, Medication Adherence


text:
Introduction: The Unique DSLR Intervalometer!
Have you ever felt like creating one of those city street time lapses that you see on the internet or recording the blooming of a flower through a time lapse or maybe create a night sky panorama of the milky way drifting in the background? Well, now you can do so with your own custom made and designed intervalometer.
Some DSLR's have an intervalometer inbuilt but they usually limit you to a few photograph per shooting session. Separate intervalometers are available online but they also have their own limitations like a limited function set. Building your own intervalometer can solve these problems and it also enables you to learn a lot about electronics at the same time.
In my intervalometer, I have added the following features:
1. A FULL FEATURED LCD MENU WITH A USER-FRIENDLY INTERFACE FOR EASY NAVIGATION THROUGH THE OPTIONS.
2. A UNIQUE POTENTIOMETER CONTROL DIAL TO CHANGE SETTINGS AND NAVIGATE THROUGH THE MENUS.
3. ONE OKAY BUTTON AND ONE BACK BUTTON FOR EASY NAVIGATION
4. Setting the interval between photographs up to a maximum of 24 hrs 60 min and 60 sec.
5. Setting the exposure time (if you have bulb mode enabled on your DSLR).
6. Setting the total number of Photographs that you want to take.
7. Setting the Auto Focus on or off.
8. Setting the onboard buzzer on or off.
9. Viewing all Settings after you have customised all the options.
10. Resetting all the settings back to their default values
11. An experimental section to do more with the hardware of the intervalometer which includes a convenient keyboard using the interface on board, a custom frequency tone generator using the onboard buzzer, and many other options.
These are just the features that I have added, the possibilities are endless and you can customise the whole thing as you like!
Though in this tutorial, for the sake of simplicity, we are going to build the intervalometer the way I did.
Step 1: The Materials
This is a list of all the materials that you are going to need to build this project:
- An Arduino board(I used an Arduino pro mini to make the project compact. You may use any other board if you don't have an Arduino pro mini at hand)
- A 16x2 Arduino compatible Lcd screen.
- A piezoelectric buzzer.
- A multimeter/Continuity Tester.
- Two Push buttons.
- Two transistors.
- 10 1k Resistors
- A 10k ohm potentiometer(and a knob for it to make it look fancy).
- Two Slide switches.
- Two different colored LEDs.
- One 3.5 mm audio jack port(female).
- One 3.5mm audio aux cable(male to male cable).
- One 3.5 mm to 2.5 mm adapter(for the DSLR).
- Perfboard(or you may create your own pcb if you can).
- Wires for the connections.
- Basic soldering equipment.
- Some kind of adhesive(I used hot glue).
- And an enclosure or a project box to fit it all.
This is the list of materials if you want to build it in a proper permanent way but if you don't have the time or the resources, you may just build the whole thing on a breadboard.
Step 2: The Concept
A dslr camera communicates with an intervalometer or a remote shutter using a 2.5 mm audio jack. The 2.5 mm audio jack has 3 terminals
- The base terminal (Gnd)
- The middle terminal (focus)
- the top terminal (shoot)
Through an audio jack cable, we can only control two of the camera's features, namely, focus and shoot.
In order to do that, we need to ground the middle terminal for focusing and top terminal for shooting, to the base pin of the 2.5 mm audio jack. As we know, an Arduino can only make its pins high or low, so we require the use of some transistors in order to make or break the connections between Gnd and focus, and Gnd and shoot. We also connect two LED's at both the shoot and focus transistors, letting us know when the intervalometer is sending a shoot command or a focus command.
The Lcd connects to Arduino as usual but instead of connecting the lcd contrast pin to a potentiometer, we just connect it to +5v through a 1k ohm resistor. Also we add a switch on the lcd's backlight so that we can conserve some battery power when are not using the lcd.
The potentiometer and the buttons are for navigating through the menu of the potentiometer. The buttons connect to the arduino digital pins in a special manner, one of the terminals of the buttons connect directly to the +5v rail while other terminal of the buttons gets connected to the Gnd rail through a 1k ohm resistor and the other terminal also gets connected to the respective digital pins of the buttons.
The potentiometer's viper connects to one of the analog pins of arduino and the other two terminals go to the +5v rail and the Gnd rail.
The buzzer is included fo the audio feedback while navigating the menu or while taking photographs. The buzzer's connections are simple, The positive terminal goes to the Arduino digital pin and the negative terminal goes to the Gnd rail.
All the connections are given in detail on the next page.
Step 3: The Circuit
While making the Final build, I worked on mainly 2 perfboard pieces:
1. The power rails:
These are straight conductive paths that I made with solder on a piece of perfboard on which I then soldered all the connections for +5v and Gnd.
2. The board having the transistors and their base resistors and the resistors for the pushbuttons.
This board also has connections for the 2 leds. One led indicates focusing and the other indicates shooting.
The connections of all the hardware components:
- Arduino pin 2 - Lcd D7 (pin14)
- Arduino pin 3 - Lcd D6 (pin13)
- Arduino pin 4 - Lcd D5 (pin12)
- Arduino pin 5 - Lcd D4 (pin11)
- Arduino pin 6 - Pushbutton 1 terminal 2
- Arduino pin 7 - Pushbutton 2 terminal 2
- Arduino pin 8 - Led1+
- Arduino pin 9 - Led2+
- Arduino pin 10 - Buzzer+
- Arduino pin 11 - Lcd E (pin6)
- Arduino pin 12 - Lcd RS (pin4)
- Arduino Vin - Battery +terminal
- Lcd RW pin (pin5) - Gnd rail
- Lcd Vcc pin (pin2) - +5v rail
- Lcd Gnd pin (pin1) - Gnd rail
- Lcd Led+ pin (pin16) - +5v rail through slide switch 1
- Lcd Led- pin (pin15) - Gnd rail
- Lcd VO pin (pin3) - Lcd Vss pin through 1k ohm resistor.
- Potentiometer viper - Arduino analog pin 2
- Potentiometer other two terminals - Gnd rail and +5v rail
- Buzzer Gnd - Gnd rail
- Led1- Transistor 1 base through 1k ohm resistor.
- Led2- Transistor 2 base through 1k ohm resistor.
- Pushbutton 1 - terminal 1 to +5v rail, terminal 2 - Gnd rail through 1k ohm resistor.
- Pushbutton 2 - terminal 1 to +5v rail, terminal 2 - Gnd rail through 1k ohm resistor.
- Audio port Base - Gnd Rail
- Audio port middle - Transistor 1 collector
- Audio port top - Transistor 2 collector
- Battery- terminal - Gnd rail through slide switch 2.
I have posted a breadboard diagram on this page and you can build your project according to them but you may also build it according to you, you just need to make the connections as mentioned above.
I'd recommend you to first build everything on a breadboard, and test the project by uploading the code.
Detailed soldering instructions on the next page.
Step 4: Soldering Everything Together
Now that we know the basic structure of the circuit, we can start building it.
Soldering will be done in several steps:
- Prepare your power rails by using a copper wire and some solder on straight lines of perboard holes, on a piece of perfboard.
- Then, Make all the connections between the lcd and the Arduino.
- Then, Make the Gnd and +5v connections between the lcd and the power rails and the Arduino and the power rails. Also make the connections for the Lcd Led backlight (connect the switch using wires).
- Then, prepare the transistor, resistor and LED setup on a perfboard and connect the two LED anodes to their respective digital pins on the Arduino(connect the LED's using wires and dont solder them on the board because we need to fix the LED's somewhere else in our project enclosure to indicate shooting or focusing of the camera).
- After, that Make the connections between the Transistors and the Audio jack port(to determine the the base terminal, the middle terminal and the top terminal of the audio port you can insert a 3.5

source: m-a-p/FineFineWeb


text:
What is a "Catapy"? I think this video will do more justice to "Catapy' than what my words can do, so please watch it before you read on.
Have you been fascinated?
Yuichiro Katsumoto, a media director and a research fellow working at Keio-NUS CUTE Center, National University of Singapore is the inventor of the "Catapy". He will be showcasing "Catapy" at his Maker booth at the Singapore Mini Maker Faire 2012.
Yuichiro introduced "Catapy" to be a car that provides the fun of chasing. If you had watched the video above, you would understand why you need to chase the catapy. Yes, the "Catapy" moves non-stop because it is covered by a caterpillar track, allowing it to run across a field freely even on uneven ground, and continue running even when it hits an obstacle. The "Catapy" can also be assembled in twos, threes, or more using joints to form different shapes. It really depends on your imagination.
More information can be found in Yuichiro's website (
So, why had Yuichiro invented the "Catapy"?
When we spoke with him at his lab at Keio-NUS CUTE Center, he shared with us that when he was a kid, the toy cars he played with always stop when they hit an obstacle. Hence, he had wanted to come up with something which can continue moving even after hitting an obstacle. Yuichiro felt that when people grow up, they shifted from playing with toy cars to driving a real vehicle, from having to move with the toy car (through pushing or chasing as a kid) to moving as part of the vehicle. He felt that the joy of chasing is lost in the growing up process and he would like to develop something to re-ignite this fun!
To Yuichiro, he researches not only for work but as part of his hobby. He attributed his Maker mind to his cultural background. Born and grown up in Gifu (Japan), a prefecture of craftwork (e.g. sword smith, ceramics and woodwork), Yuichiro was equipped with crafting skills. Besides, like any other Japanese kids, he had grown up with significant influence of anime (Japanese animation), manga (Japanese comics) and video games. Hence, Yuichiro proudly shared that he had embarked on his research with crafting skills and otaku1 mind!
Message to budding Makers
Yuichiro advised all budding makers to stop talking about things and start tinkering. Another piece of advice he gave amused me. He advised makers not to listen to any advice until finishing the prototyping. I guess this came from lots of personal experience!
To meet Yuichiro and experience the thrill of chasing the "Catapy", come to the Singapore Mini Maker Faire 2012 on 4 & 5 August 2012.
1 Otaku is a Japanese term which refers to someone with an obsessive interest in anime, manga and video games.


text: This study examines the chronemics of response latencies in asynchronous computer-mediated communication (CMC) by analyzing three datasets comprising a total of more than 150,000 responses: email responses created by corporate employees, responses created by university students in course discussion groups, and responses to questions posted in a public, commercial online information market. Mathematical analysis of response latencies reveals a normative pattern common to all three datasets: The response latencies yielded a power-law distribution, such that most of the responses (at least 70%) were created within the average response latency of the responders, while very few (at most 4%) of the responses were created after a period longer than 10 times the average response latency. These patterns persist across diverse user populations, contexts, technologies, and average response latencies. Moreover, it is shown that the same pattern appears in traditional, spoken communication and in other forms of online media such as online surveys. The implications of this uniformity are discussed, and three normative chronemic zones are identified.


text:
Skip to Main Content
This paper investigates the noise reduction in the slot-induced ground bounce noise by using differential signaling. An efficient 2-D finite-difference time-domain method together with equivalent circuits for both the differential line and the slot is established and simulations are performed for a three-layer structure to characterize the ground bounce coupling. A simple model is then proposed to understand how the differential coupled microstrip lines can help reduce ground bounce. Different factors which affect noise reduction are investigated, such as the coupling coefficient, rising time, skew of differential signaling, and structure asymmetry in slotline. An experimental setup is devised to demonstrate the noise coupling between signal lines due to the slot-induced ground bounce and significant noise reduction by employing differential signaling. A favorable comparison between the simulation and measured results validates the proposed equivalent circuit model and analysis approach.
Date of Publication: Aug. 2009


theta^T\mathbf{X}^T\mathbf{y}-\mathbf{y}^T\mathbf{X}\theta+\mathbf{y}^T\mathbf{y})}{\partial \theta} \\ =\frac{1}{2}\frac{\partial (\theta^T\mathbf{X}^T\mathbf{X}\theta-\theta^T\mathbf{X}^T\mathbf{y}-\mathbf{y}^T\mathbf{X}\theta+\mathbf{y}^T\mathbf{y})}{\partial \theta} \\ =\frac{1}{2} (\theta^T\mathbf{X}^T\mathbf{X}+\theta^T\mathbf{X}^T\mathbf{X}-\mathbf{y}^T\mathbf{X}-\mathbf{y}^T\mathbf{X} )\\ =\frac{1}{2}(\mathbf{X}^T\mathbf{X}\theta-2\mathbf{y}^T\mathbf{X}) \\ =\mathbf{X}^T\mathbf{X}\theta-\mathbf{X}^T\mathbf{y}=0
Normal Equation: θ=(XTX)1XTy\theta=(\mathbf{X}^T\mathbf{X})^{-1}\mathbf{X}^T\mathbf{y}
What do you mean by affine transformation? Discuss affine vs. linear transformation.
A function ff is linear if f(ax+by)=af(x)+bf(y)f(ax+by)=af(x)+bf(y) for all relevant values of aa, bb, xx and yy.
A function gg is affine if g(x)=f(x)+cg(x)=f(x)+c for some linear function aa and constant cc. Note that we allow c=0c=0, which implies that every linear function is an affine function.
 1. All linear transformations are affine transformations.
 2. Not all affine transformations are linear transformations.
 3. It can be shown that any affine transformation A:UVA:U \rightarrow V can be written as A(x)=Lx)+v0A(x)=Lx)+v_0, where v0v_0 is some vector from VV and L:UVL:U \rightarrow V is a linear transformation.
Discuss training error, test error, generalization error, overfitting, and underfitting.
overfitting: What happens when the gap between the training error and test error is too large
underfitting: What happens when the model is not able to obtain a sufficiently low error value on the training set
training error: When training a machine learning model, we have access to a training set, we can compute some error measure on the training set
generalization error/test error: The expected value of the error on a new input. Here the expectation is taken across different possible inputs, drawn from the distribution of inputs we expect the system to encounter in practice
Visual summary
Compare representational capacity vs. effective capacity of a model.
Representational capacity - the functions which the model can learn; The model specifies which family of functions the learning algorithm can choose from when varying the parameters in order to reduce a training objective.
Effective capacity - in practice, a learning algorithm is not likely to find the best function out of the possible functions it can learn, though it can learn one that performs exceptionally well - those functions that the learning algorithm is capable of finding defines the model's effective capacity.
These additional limitations, such as the imperfection of the optimization algorithm, mean that the learning algorithm's effective capacity may be less than the representational capacity of the model family
What is VC dimension?
The VC dimension measures the capacity of a binary classifier. The VC dimension is defined as being the largest possible value of mm for which there exists a training set of mm different xx points that the classifier can label arbitrarily.
What are nonparametric models? What is nonparametric learning?
Parametric models: learn a function described by a parameter vector whose size is finite and fixed before any data is observed (linear regression)
Non-parametric models: assume that the data distribution cannot be defined in terms of a finite set of parameters. But they can often be defined by assuming an infinite dimensional θ\theta. Usually we think of θ\theta as a function (nearest neighbor regression)
What is an ideal model? What is Bayes error? What is/are the source(s) of Bayes error occur?
The ideal model: is an oracle that simply knows the true probability distribution that generates the data.
 - Even such a model will still incur some error on many problems, because there may still be some noise in the distribution. In the case of supervised learning, the mapping from xx to yy may be inherently stochastic, or yy may be a deterministic function that involves other variables besides those included in xx.
Bayes error: the lowest possible prediction error that can be achieved and is the same as irreducible error. ; The error incurred by an oracle making predictions from the true distribution p(x,y)p(x, y).
Source(s) of Bayes error: noise in the distribution if the process is random
What is the "no free lunch" theorem in connection to Machine Learning?
The no free lunch theorem for machine learning (Wolpert, 1996) states that, averaged over all possible data generating distributions, every classification algorithm has the same error rate when classifying previously unobserved points. In other words, in some sense, no machine learning algorithm is universally any better than any other. The most sophisticated algorithm we can conceive of has the same average performance (over all possible tasks) as merely predicting that every point belongs to the same class.
Fortunately, these results hold only when we average over all possible data generating distributions. **If we make assumptions about the kinds of probability distributions we encounter in real-world applications, then we can design learning algorithms that perform well on these distributions.
This means that the goal of machine learning research is not to seek a universal learning algorithm or the absolute best learning algorithm. Instead, our goal is to understand what kinds of distributions are relevant to the "real world" that an AI agent experiences, and what kinds of machine learning algorithms perform well on data drawn from the kinds of data generating distributions we care about.
What is regularization? Intuitively, what does regularization do during the optimization procedure?
We regularize a model that learns a function f(x;θ)f(x;\theta) by adding a penalty called a regularizer to the cost function. Expressing preferences for one function over another implicitly and explicitly is a more general way of controlling a model's capacity than including or excluding members from the hypothesis space.
What is weight decay? What is it added?
Weight decay is an additional term that causes the weights to exponentially decay to zero.
To perform linear regression with weight decay, we minimize a sum comprising both the mean squared error on the training and a criterion J(w)J(w) that expresses a preference for the weights to have smaller squared L2L_2 norm. Specifically,
J(w)=MSEtrain+λwTwJ(w) = MSE_{train} + \lambda \mathbf{w}^T\mathbf{w}
Minimizing J(w)J(w) results in a choice of weights that make a tradeoff between fitting the training data and being small. This gives us solutions that have a smaller slope, or put weight on fewer of the features.
What is a hyperparameter? How do you choose which settings are going to be hyperparameters and which are going to be learned?
Hyperparameter: Most machine learning algorithms have several settings that we can use to control the behavior of the learning algorithm.
 - The values of hyperparameters are not adapted by the learning algorithm itself
Sometimes a setting is chosen to be a hyperparameter that the learning algorithm does not learn because it is difficult to optimize or it is not appropriate to learn that hyperparameter on the training set. This applies to all hyperparameters that control model capacity. If learned on the training set, such hyperparameters would always choose the maximum possible model capacity, resulting in overfitting.
Why is a validation set necessary?
Let's assume that you are training a model whose performance depends on a set of hyperparameters. In the case of a neural network, these parameters may be for instance the learning rate or the number of training iterations.
Given a choice of hyperparameter values, you use the training set to train the model. But, how do you set the values for the hyperparameters? That's what the validation set is for. You can use it to evaluate the performance of your model for different combinations of hyperparameter values (e.g. by means of a grid search process) and keep the best trained model.
But, how does your selected model compares to other different models? Is your neural network performing better than, let's say, a random forest trained with the same combination of training/test data? You cannot compare based on the validation set, because that validation set was part of the fitting of your model. You used it to select the hyperparameter values!
The test set allows you to compare different models in an unbiased way, by basing your comparisons in data that were not use in any part of your training/hyperparameter selection process.
What are the different types of cross-validation? When do you use which one?
 - kk-fold cross-validation randomly divides the data into k blocks of roughly equal size. Each of the blocks is left out in turn and the other k1k-


text:
Ming Gap and Shipwreck Ceramics in Southeast Asia
written by Roxanna Maude Brown
River Books | ISBN 9789749863770
Hardback – 206 pages
Member's price: $76.50
Usually ships within 2–11 business days.
Shipwrecks discovered throughout Southeast Asia and the precious cargoes they contain represent invaluable information for the study of international trade networks. However, these treasure troves of Thai, Vietnamese and Chinese ceramics, have up until this point, been unsystematic ally studied and rarely published. This book addresses this issue with the author tracing the development and fluctuations of the international ceramic trade between China and Southeast Asia focusing specifically on the 14th-15th centuries, a period known in ceramic scholarship as the Ming Gap. The term Ming Gap arose to describe the ban placed on the export of Chinese ceramics by the Ming Dynasty. The author illustrates how as a result, Southeast Asian ceramics began to fill this void and for over a century became the dominant ceramic trade ware throughout the region. Analyzing over 120 shipwrecks, the author for the first time proposes a chronology of ceramic production placing Thai ceramics into five chronological periods and discussing issues such as the relationship between Sukhothai and Sawankhalok kilns, the discovery of exported Burmese celadon wares and the location of Vietnamese production sites for ceramic exports.


text:
West Face of El Capitan Reef
July 28, 2004
The above photo was taken in the Gaudalupe Mountains, Texas, and shows the west face of the El Capitan Reef. The dark lines in the massive limestone beds (below cloud deck), which slope from the upper left to the lower right, are progradation lines that display how the reef built up over time. The topography seen here is virtually that of the Permian, showing how deep the basin was (some 700 m) eons ago. Notice the near perfect detail of the stratigraphy below the reef.


Skip to Content
Introduction
As with any programming language, the aim is to always modularise the code so that it can be "written once, and used in many places".
This is no different in CPI where one of the two scripting languages available is Groovy. While it is very easy to create Groovy scripts in CPI, when the integration flow becomes more complex, inevitably there may be occasions where the same logic is repeated in different scripts. This presents an opportunity to modularise and simplify the development.
One approach to perform such modularisation is by using Plain Old Groovy Objects (POGO), which are the Groovy equivalent of POJO. In short, they are just Groovy classes as opposed to the Groovy scripts that are typically generated by the CPI development tools.

Where is my package?
If you are one of those who have already fully jumped onto the WebUI bandwagon, it might not be that obvious how this can be performed or achieved. This is because every class needs to belong to a package, but when you develop in WebUI, the structure of the project is not visible.
Have no fear, Eclipse to the rescue!
Just create a dummy integration project in Eclipse, and you can see the project structure. Groovy scripts typically are automatically created in the src.main.resources.script folder, so this would be a good choice for our POGO's package.

Sample POGO
Following is a sample of a simple Groovy class (named MessageHelper) containing the following commonly used logic in CPI:-
 - Retrieving content from a message header
 - Logging content into the Message Processing Log's attachment
package src.main.resources.script
import com.sap.gateway.ip.core.customdev.util.Message
import com.sap.it.api.msglog.MessageLogFactory
class MessageHelper {
 Message msg
 MessageLogFactory logFactory

 String getHeaderValue(String headerName, String defaultValue) {
 def headerValue = this.msg.getHeaders()[headerName]
 if(headerValue)
 headerValue
 else if(defaultValue)
 defaultValue
 else
 throw new RuntimeException("Header $headerName do not exist")
 }

 String getHeaderValue(String headerName) {
 getHeaderValue(headerName, null)
 }

 void logToMPL(String logName, String content) {
 def messageLog = this.logFactory.getMessageLog(this.msg)
 if (messageLog) {
 messageLog.addAttachmentAsString(logName, content, "text/plain")
 }
 }
}

With the Groovy code in place, you just need to place them into the Integration Project. With Eclipse, it is just as easy as creating a Groovy class in the right package folder.
However, if you are working in WebUI, the following current limitations necessitate a slightly different approach:-
 - Groovy source codes can only be created via a new Groovy Script step (cannot be independently created in the project)
 - Groovy scripts are automatically named scriptN.groovy, and cannot be renamed.
As such, it is better to create the source code (either the full logic or just a skeleton) with the appropriate class name, and upload it using the Resources Management functionality of the WebUI.

Using our new POGO
To use our new POGO, we can simply have an integration flow with a Groovy script as shown below.

Following is the sample logic of the script. Take note that it is important to declare the import statement for the above created class.
Note how the modularisation has significantly simplified the logic required to retrieve a header value and log it into the MPL.
import com.sap.gateway.ip.core.customdev.util.Message
import src.main.resources.script.MessageHelper
def Message processData(Message message) {
 MessageHelper helper = new MessageHelper(msg: message, logFactory: messageLogFactory)
 def httpMethod = helper.getHeaderValue('CamelHttpMethod')

 helper.logToMPL('Header Details', "Value of CamelHttpMethod is $httpMethod")

 return message
}

And when we run a sample test, voila, it produces the expected results.

Conclusion
While Groovy provides a delightful scripting environment to implement custom logic in CPI, do be cautious in creating too many scripts that have significant portions that are copied from another script.
Be diligent in simplifying and modularising to achieve a lean and clean development.
To report this post you need to login first.
4 Comments
You must be Logged on to comment or reply to a post.
 1. Naresh Dasika
 Nice blog Eng Swee:)
 This way integration developers can reduce the complexity of the groovy scripts by placing the common logics under one package.
 (2)
 2. Richard Spinks
 A blog worth bookmarking.
 I've copied and pasted way too many Groovy scripts and will find this much neater and more efficient.
 Thank you for sharing.
 (2)
Leave a Reply


text:
Judicial notice is an important underpinning of litigation in Canada. The need to prove every trite and accepted fact as evidence would make litigation even more unwieldy than it already is.
Some of the problems emerge when judicial notice is used for facts which may be disputed by the parties. For example, in R. v. Zundel, the Court dealt with hate speech and the denial of the Holocaust. To provide the defendant to litigate the purported evidence against the facts around the Holocaust would only give him a platform to extend his hate speech further. Instead, the trial judge... [more]


Tethys Platform
Table Of Contents
Table Of Contents
New Tethys App Project
Last Updated: June 2022
In this tutorial you will create a new Tethys App project using the scaffold. The following topics will be reviewed in this tutorial:
 - Scaffolding New Tethys Apps
 - Managing App Dependencies
 - Adding a Custom Icon
 - Customizing App Theme Color
../../_images/new_app_project_solution1.png
1. Generate Scaffold
To generate a new Tethys App using the scaffold, open a terminal and execute the following commands:
# Activate the tethys environment
conda activate tethys
# Create a working directory (if it doesn't exist already)
mkdir ~/tethysdev
cd ~/tethysdev
# Scaffold a new Tethys app
tethys scaffold thredds_tutorial
You will be prompted to enter metadata about the app such as, proper name, version, author, and description. All of these metadata are optional. You can accept the default values by pressing enter, repeatedly.
In a file browser change into your Home directory and open the tethysdev directory. If the scaffolding worked, you should see a directory called tethysapp-thredds_tutorial. All of the source code for your app is located in this directory. For more information about the app project structure, see App Project Structure.
2. Add App Dependencies to install.yml
App dependencies should be managed using the install.yml instead of the setup.py. This app will require the netcdf4, siphon, and owslib packages to allow it to use THREDDS services. All three packages are available on conda-forge, which is the preferred Conda channel for Tethys. Open tethysapp-thredds_tutorial/install.yml and add these dependencies to the requirements.conda section of the file:
# This file should be committed to your app code.
version: 1.0
# This should match the app - package name in your setup.py
name: thredds_tutorial
requirements:
 # Putting in a skip true param will skip the entire section. Ignoring the option will assume it be set to False
 skip: false
 conda:
 channels:
 - conda-forge
 packages:
 - netcdf4
 - siphon
 - owslib
 pip:
post:
3. Development Installation
Install the app and it's dependencies into your development Tethys Portal. In a terminal, change into the tethysapp-thredds_tutorial directory and execute the tethys install -d command.
cd ~/tethysdev/tethysapp-thredds_tutorial
tethys install -d
4. Customize App Icon and Theme Color
Download this Unidata App Icon or find one that you like and save it to the public/images directory. Modify the icon property of your app class to reference the new image. Also change the color property to the #008e8d color:
class ThreddsTutorial(TethysAppBase):
 """
 Tethys app class for Thredds Tutorial.
 """
 name = 'THREDDS Tutorial'
 index = 'thredds_tutorial:home'
 icon = 'thredds_tutorial/images/unidata_logo.png'
 package = 'thredds_tutorial'
 root_url = 'thredds-tutorial'
 color = '#008e8d'
 ...
5. View Your New App
 1. Start up the development server to view the new app:
tethys manage start
Tip
To stop the development server press CTRL-C.
If you get errors related to Tethys not being able to connect to the database, start the database by running:
tethys db start
You can also stop the Tethys database by running:
tethys db stop
 1. Browse to http://127.0.0.1:8000/apps in a web browser and login. The default portal user is:
 - username: admin
 - password: pass
Verify the following:
 1. The default app icon should be replaced with the custom image you added in step 4.
 2. The primary color for the app should be a dark turquoise (see screenshot at the beginning of the tutorial).
6. Solution
This concludes the New App Project portion of the THREDDS Tutorial. You can view the solution on GitHub at _URL_ or clone it as follows:
git clone _URL_
cd tethysapp-thredds_tutorial
git checkout -b new-app-project-solution new-app-project-solution-3.4


text:
Florence City Administration is a lighthouse city in the Lighthouse REPLICATE Horizon2020 project.
Details of the project can be found here: _URL_
Florence also participates in three Horizon2020 projects:
The Resolute project (RESilience management guidelines and Operationalization appLied to Urban Transport Environment) is a new European frontier for the development and sharing of sustainable public transport strategies able to withstand and react positively to the great pressures placed on the urban environment in modern European cities, without losing sight of ecological compatibility and natural constraints.
Resilience consists in the ability to respond flexibly and untraumatically to external pressures, without losing one's structural dimension and functional characteristics.
Partners in the project are the University of Florence (coordinator), Thales, AttikoMetro (GR), Florence City Administration, the Centre for Research and Technology Hellas (GR), the Fraunhofer Institute (DE), HUMANIST (FR), SWARCO Mizar (IT) and the Consorzio Milano Ricerche.
The main project activities include identification and classification of events that could block urban transport systems (natural disasters, terrorist attacks, system errors, etc.), the modelling of urban transport systems during adverse natural events, development of European Resilient Management Guidelines and the creation of game-based training apps and systems to teach operators and citizens good practice in the event of emergency.


Setup
To execute the code examples provided in this module in ghci, please run the following commands first.
>>> :m
>>> :set -XOverloadedStrings
>>> import Prelude hiding (String, lines, words, unlines, unwords)
>>> import qualified Streamly.Data.Stream as Stream
>>> import qualified Streamly.Data.Fold as Fold
>>> import qualified Streamly.Internal.Unicode.Array as Unicode
Streams of Strings
lines :: MonadIO m => Stream m Char -> Stream m (Array Char) Source #
Break a string up into a stream of strings at newline characters. The resulting strings do not contain newlines.
lines = S.lines A.write
>>> Stream.fold Fold.toList $ Unicode.lines $ Stream.fromList "lines\nthis\nstring\n\n\n"
[fromList "lines",fromList "this",fromList "string",fromList "",fromList ""]
words :: MonadIO m => Stream m Char -> Stream m (Array Char) Source #
Break a string up into a stream of strings, which were delimited by characters representing white space.
words = S.words A.write
>>> Stream.fold Fold.toList $ Unicode.words $ Stream.fromList "A newline\nis considered white space?"
[fromList "A",fromList "newline",fromList "is",fromList "considered",fromList "white",fromList "space?"]
unlines :: MonadIO m => Stream m (Array Char) -> Stream m Char Source #
Flattens the stream of Array Char, after appending a terminating newline to each string.
unlines is an inverse operation to lines.
>>> Stream.fold Fold.toList $ Unicode.unlines $ Stream.fromList ["lines", "this", "string"]
"lines\nthis\nstring\n"
unlines = S.unlines A.read
Note that, in general
unlines . lines /= id
unwords :: MonadIO m => Stream m (Array Char) -> Stream m Char Source #
Flattens the stream of Array Char, after appending a separating space to each string.
unwords is an inverse operation to words.
>>> Stream.fold Fold.toList $ Unicode.unwords $ Stream.fromList ["unwords", "this", "string"]
"unwords this string"
unwords = S.unwords A.read
Note that, in general
unwords . words /= id


Don't fake bold and italic text with Unicode
A compose window on LinkedIn where Per has used variants of Unicode that display letters in illustrative fashions.
I see more and more people faking bold and italic text on LinkedIn, and other social media, using Unicode characters. This is detrimental to accessibility, findability as well as predictability.
Here is an example that you may or may not see depending on your client for viewing this:
 - Example of bold text: 𝐛𝐨𝐥𝐝
 - Example of italicised text: 𝑖𝑡𝑎𝑙𝑖𝑐𝑠
If you are able to see these examples you will likely just interpret them as regular text that has been formatted. Unfortunately this is not the case. When social media platforms do not allow text to be formatted (also known as rich text) people tend to search for workarounds. Using Unicode characters is one of those tricks people use without considering the full impact of this practice.
Three reasons to not use Unicode to simulate formatted text
If you are considering doing this, these are the things you may want to understand first. And these same issues apply wherever you may be using them in the interface, and on all web platforms.
 1. Unicode characters may display differently on different devices. On some older devices all characters may simply be replaced by question marks.
 2. Screen readers will most often skip them, or read something that sounds very long – as an explanation of each character. Needless to say, this excludes people using assistive technology and contributes to confusion.
 This of course also applies to other text-to-speech applications beyond this use-case.
 3. Text encoded like this won't be found through search engines, as the Unicode characters are something completely different than standard text typed into the search engine.
In the video below I demonstrate how a screen reader will read the sentence "The quick brown fox jumps over the lazy dog." In the video, the two words "brown fox" have been written using Unicode characters to give the visual appearance of bold, italicised text.
When you play the video with sound on you will notice how the screen reader is completely silent when coming across those words.
Further reading and examples
The examples in these reference articles are much more complex than mine and include even further variants of Unicode characters. When read out loud these symbols, often mathematical, are explained by screen readers one character at a time in a way that becomes intense and confusing, easily triggering sensory overload.
How special characters affect screen readers - Scope for Business
Learn how special characters, Unicode symbols, punctuation, emoticons and ASCII art impact screen reader accessibility and AT users.
Are special characters in your tweets breaking accessibility?
I've been seeing a lot of Twitter accounts, both regular user accounts as well as brand accounts, using fancy, math and other symbol fonts in their tweets. These characters are all legal, and part of the Unicode standard.
Accessibility of Unicode as styled text
Facebook, Twitter, Instagram, and other sites often lack the ability to style text. Some "clever" people have discovered ways of abusing Unicode to make the appearance of styled text th…
Follow Per Axbom on LinkedIn and Mastodon/Fediverse.
Get Per's newsletter
Per Axbom's newsletter on digital ethics and compassionate design helps you stay updated on human rights issues in the tech space. You will receive select posts in your inbox 2-3 times per month.
Enter email
Comment


text:
I am designing a course and I was wondering if there was any way that I can create an advanced action or if there is any other technique so when the user goes back to the same slide there are no animations and all the content is already on screen. Similar to when you use the conditonal advanced action so when the user goes back to the same slide the audio doesn't play again.
Problem with terminology. What is your meaning of 'animation'? To me it is an externally created item which you insert with the Media, Animation. It can be an Animated GIF, and OAM (HTML animation) or a SWF. In that case you need to use a tracking variable (same as for the audio workflow) and hide the naimation on second or later visits.
If you do not talk about animations but about Effects created in Captivate there are two possible approaches:
I guess I am referring to the Effects in Captivate. I only want the effects of the object to play in a timely manner ONLY when the users gets to the slide for the first time. If the user decides to go back to the slide already visited I would like for all the objects to already be on the screen without fading in.


Students in middle, high school can explore engineering careers at four summer camps
College of Engineering and Engineering Technology summer campEver wonder how to make a car run on renewable energy? Want to learn how fruit can generate electricity?
NIU's College of Engineering and Engineering Technology (CEET) summer camps offer fun and easy ways for high school and middle school students to learn and explore the engineering field.
CEET offers a number of summer camps for teens, along with one camp for freshman engineering and engineering technology students.
In Introduction to Nanotechnology Summer Camp program, high school students are given information about nanoscience and nanotechnology and the unique properties of the nanoscale. Nanotechnology and nanoscience study tiny atoms and molecules to create smaller, cheaper and lighter devices that use less material and energy. The camp also discusses nanotechnology and nanoscience as careers with many opportunities.
The Green Energy program reaches out to middle school students and teaches how to use natural resources efficiently. Students will have the chance to work with wind and solar energy resources, wind farm technology and have the opportunity to work with model homes that are powered by solar voltaic cells, which converts the energy of light directly into electricity.
NIU-EEP logoThe Enhancing Engineering Pathways (EEP) is a summer program steered toward high school students and middle school students through the Girl Scouts organization. Cadettes and Senior Girl Scouts are introduced to the engineering field through hand-on activities such as trying to generate electricity from using lemons, discussions and fields trips. The EEP also has a mentoring program to connect women engineering professionals and engineering students with Senior Cadettes and Girl Scouts.
The Math Bridge Program is available to incoming engineering and engineering technology students looking to improve their math placement status. The Math Bridge Programs helps recognize weaknesses found in students mathematical skills and seeks to improve them once fall semester begins. This helps engineering students to immediately enroll in upper-level math classes that are prerequisites to other CEET courses, allowing them to stay on track and graduate on time.
"Providing summer camp programs helps the community learn about engineering while also being affordable," program director Suma Rajashankar said. "Middle and high school students are able to experience college life and interact with graduate and undergraduate engineering students."
For more information and to register, visit
Print Friendly


text:
Curriculum & Resources: The Legacy Project
VISIT THE LEGACY PROJECT
The Legacy Project: Lessons for Living from the Wisest Americans was established by Cornell Medical School Professor of Gerontology Karl Pillemer. The project records the wisdom of American elders collected from interviews on a variety of subjects. In text and video, the oldest living generations of Americans share their experiences.
The website offers the opportunity for viewers to browse interviews by topic, ranging from money to faith and spirituality. You will be touched by the tenderness, humor, and authenticity of these elders.
Read and listen to these stories with your students, and reflect on how the lessons can be incorporated into this generation's values. We've selected a few favorites.
To meet the elders and to browse more lessons, visit The Legacy Project website.
- What Is Old Age For?
William Thomas ponders the benefits of aging.
- Can Elders Save the World?
The work of elders may never have been so important as it is today, when the continuation of life on Earth is at stake and wisdom is in short supply.
- Age Old Wisdom for the New Economy
Rebecca Adamson offers Native American views on scarcity, Wall Street, and how to thrive in hard times.
The above resources accompany the February 2012 YES! Education Connection Newsletter
That means, we rely on support from our readers.
Independent. Nonprofit. Subscriber-supported.


text:
Separator plays a vital role in lithium batteries for its safety, performance and cost. The term lithium batteries refer.
The Royal Swedish Academy of Sciences on Wednesday awarded the 2019 Nobel Prize in Chemistry to three scientists who.
The three men most directly responsible for pioneering the lithium-ion batteries that power nearly every electronic device you own.
You can find lithium-ion batteries in smartphones, tablets, laptops, electric cars, and nearly all the electronics around you.Researchers' addiction.


What is meta? ×
Questions often get edited after you answer them. Some edits are insignificant, but there are edits that change the question significantly enough to warrant a change of the answer.
It would be nice to get notifications of edits that could potentially change the relevance of your answer. This would give you an opportunity to improve your answer in response to an edit.
However, there is a clear danger of "false positives" here: too many notifications reduce the chance of spotting the relevant ones. That's why I think that notifications should be added only when
 1. The edit to the question is done by the author of the original question1,
 2. The edit resulted in creation of a revision, and
 3. The edit is posted after your last edit to the answer.
The first condition makes sure that the edit could be potentially significant; the second rule reduces the chance of duplicate notifications; the third one removes notifications when the system is nearly certain that you have seen the edit (because you updated your answer after the edit to the question)2.
1 This rule can be bypassed for community WIKI questions.
2 I admit that the heuristic approach above may not be ideal, so an alternative way of identifying "significant" edits could be designed. For example, the site could offer the OP an opportunity to notify authors of the answers of the change to the question with a dialog box or something similar, for example, like this:
Should the authors of the answers be notified of this edit to your question?
 [Yes, please notify them] [No, this edit is not significant]
share|improve this question
1 Answer 1
up vote 1 down vote accepted
As much as I would like to be notified, I can see a lot of problems with this in actual practice. I could see a lot of OPs sending out notifications for trivial edits (because it seems important to them, or they just choose a button to click) or not sending a notification for significant edits ("I won't want to bother everyone"). If posters could be trusted to use this notification properly I think it would be a great feature, but I just don't see that happening.
Also keep in mind there shouldn't be edits made that entirely invalidate answers. If such an edit would be that dramatic it likely means it should be a new question. This means that, even with the heuristics you've given, most of the edits to the OP shouldn't be invalidating your answer (even after the filters you've listed).
All in all I imagine the rate of false positives being greater than the rate of legitimate positives, or at least high enough that this feature wouldn't be all that useful.
share|improve this answer
You must log in to answer this question.
Not the answer you're looking for? Browse other questions tagged.


text:
Jammu and Kashmir Lt Governor Manoj Sinha and Union Science Technology and Earth Sciences Minister, Dr Jitendra Singh on Sunday jointly inaugurated the X-Band Doppler Weather Radar at Banihal Top, during the 148th Foundation Day celebrations of India Meteorological Department.
The event was also attended by Uttarakhand Chief Minister Pushkar Singh Dhami and his Himachal Pradesh counterpart Sukhvinder Singh Sukhu, virtually, as Doppler Weather Radar Systems for their states were also inaugurated.
Addressing the event virtually, the Lt Governor congratulated the IMD for the Doppler Weather Radar (DWR) with a range of 100 kms, which will help in detection of severe weather events & safe conduct of various pilgrimages, especially he Shri Amarnathji Yatra.
The IMD is playing a significant role in protecting life and livelihood of the people from adverse weather and is registering remarkable progress in making J&K disaster proof, he said, adding that the system will go a long way in augmenting and helping the agriculture and allied sectors and tourism which are the mainstay of economy of Jammu and Kashmir.
The Lt Governor observed that the UT receives heavy snowfall in winter and heavy rain in summer which makes it vulnerable to various kinds of natural disasters like cloud bursts, lightning, landslide, flash flood, flood and avalanches.
Keeping in view the vulnerability due to various kinds of extreme weather especially in a changing climate scenario, and to provide better and improved weather services for timely forecasts, the IMD had earlier installed two Doppler Weather Radars, one each in Jammu and Srinagar.
The recent one installed at Banihal Top will facilitate tourists and tourism industry, safe navigation of air crafts and help to detect severe weather events especially thunderstorm, heavy shower, hailstorm, heavy snowfall etc, he said.


text:
In astronomical observations, optical filters provide the wavelength selectivity needed to enable telescopes to discriminate signal from background information. These filters often require larger sizes, higher uniformity, and excellent surface quality and surface figure.
Iridian Spectral has designed and manufactured filters and provided coatings on optical components for satellite and low-earth orbit earth observation instruments and for earth-to-orbit (or beyond) optical communications.
Iridian Spectral offers a variety of filters for these earth and stellar observation and communications applications including:
- Multi-Zone Filters – These filters can offer spatially varying spectral performance on a single substrate. They feature wavelength ranges from UV (300 nm) to LWIR (10 um) and are customizable in size, spectral performance, layout and filter types.
- The 532/1550 nm partial reflectors and AR coatings for Fabry-Perot etalons used on NASA's ICESat-2 satellite.
- AR coatings for use on NASA's Solar Dynamics Observatory (SDO)
- 2-10 nm band pass filters used by NASA for remote sensing applications
- Very narrow-band, large format filters for imaging lightning
- Coated components (i.e., Michelson interferometers) used or currently scheduled to go into space
- Filters for NASA's Lunar Laser Communications Demonstration LLLCD free space communications test
For more in-depth information on available Iridian Spectral optical filters for earth and stellar observation, download the available brochures.


text:
Positioning and life cycle stages in the UK services industry
This study aims to contribute to the advancement of knowledge within the domain of strategic marketing, and more specifically positioning of services. In particular this research stems from an attempt to overcome the limitations of existing positioning typologies and models and the fact that current research on the subject matter fails to reflect the sequential nature of considerations related to the management of the positioning process. Consequently, the basic aim of this research is the development of a comprehensive framework that incorporates the various decisions and activities associated with the management of positioning and the generation of managerial guidelines, for the UK services industry. Following an extensive literature review, a conceptual framework that represents a synthesis of existing positioning models is proposed. Following the development of generic positioning strategies, the model is applied in the UK plastic card sector. As a result, a number of propositions are tested and managerial recommendations are put forward. Overall, this research makes the following theoretical, methodological and managerial contributions to the theory and practice of positioning activities within the plastic card services domain. Theoretical Contributions: This thesis offers a comprehensive positioning framework which could form the basis of further investigation into the subject matter. More specifically, the following theoretical contributions to the study of positioning have been made: This thesis has attempted to examine the varying descriptions attributed to the concept and as a result has clarified the concept and suggested three main themes (i.e. perspectives, key issues and dimensions) underpinning the concept. This research has put forward an empirically supported comprehensive positioning model. Methodological Contributions: This research has developed and validated a generic, consumer derived typology of positioning strategies. Operationalisation of positioning aim(s), objective(s) and the determination of LCS have been offered. An analytical procedure suitable for determining congruence between successive phases of the proposed model has been developed. The operationalisation of LCS in the model has been expanded in terms of additional dimensions. Managerial Contributions: This research has provided a set of clearly defined, managerial guidelines that practitioners can use when attempting to apply the concept of positioning.


text:
CyRSV Synonyms: white clover virus
In Cymbidium spp., the virus causes slight chlorotic ring-mottle; it intensifies the symptoms induced by cymbidium mosaic virus when present in mixed infections. In Trifolium repens it produces chlorotic flecks and mottling with slight stunting. However, the symptoms in clover and Cymbidium are not diagnostic. Although highly contagious, the virus has apparently not become widely established in clover pastures.


text:
HydraFacial Keravive: An Innovative Hair Treatment
HydraFacial Keravive is a groundbreaking hair revitalization therapy that merges the power of Hydrating Facial methodology with an exclusive serum to purge, exfoliate, eliminate toxins, and profoundly moisturize the scalp. This unique therapy is specifically formulated to improve the well-being of the scalp and hair, trigger hair regrowth, and reduce hair loss. In this blog post, we explore the pros of HydraFacial Keravive, the treatment method, and why it has become a paradigm shift in the field of hair rejuvenation.
1. Understanding HydraFacial Keravive
HydraFacial Keravive is a holistic head and hair treatment that targets the underlying factors of hair loss and impaired scalp condition. Using the HydraFacial tool, this state-of-the-art treatment combines purifying, exfoliation, extraction, and hydration to promote a robust scalp ecosystem for maximum hair growth.
The Keravive serum, specially formulated for the procedure, comprises a mixture of stimulating agents, peptides, vitamins, and free radical scavengers that nurture the scalp and hair roots, boosting their vitality. By tackling the primary factors of hair thinning, HydraFacial Keravive stimulates dormant hair follicles, encourages hair growth, and aids in diminishing hair shedding.
2. The HydraFacial Keravive Process
The HydraFacial Keravive procedure is a relaxing and pleasant treatment that commonly includes the following phases:
- Discussion: Your hair and scalp will be examined by an experienced practitioner in Beverly Hills to determine the underlying factors behind your hair thinning and scalp issues.
- Purifying and Exfoliation: The procedure commences with a comprehensive purification and exfoliation of the scalp employing the Hydrating Facial tool. This step eliminates oil, dirt, and toxins, preparing the scalp for ideal absorption of the Hair Rejuvenation serum.
- Hair Rejuvenation Serum Infusion: The customized Keravive serum is put on to the scalp utilizing the HydraFacial apparatus, enabling precise delivery to the hair follicles and scalp. The serum is tenderly rubbed into the scalp to ensure correct absorption and distribution of the advantageous components.
- Head Hydration: Moisturization is a vital element of the treatment. The Hair Rejuvenation serum soaks deeply into the scalp, nourishing and revitalizing the hair follicles and encouraging a vibrant scalp ecosystem.
- Homecare Kit: Your professional may supply you with a customized at-home set to sustain the effects of the procedure. This may include scalp treatments and products to support ongoing scalp well-being and hair growth.
3. Benefits of HydraFacial Keravive
HydraFacial Keravive presents a variety of advantages for people looking for to enhance the health and appearance of their scalp and hair:
- Enhanced Scalp Condition: The therapy thoroughly purifies the scalp, scrubbing dead skin cells and clearing hair follicles. This assists in forming a stronger ecosystem for hair regeneration and reduces scalp conditions such as for instance dryness and itchiness.
- Promotes Hair Regrowth: The Keravive serum is developed with growth factors and proteins that trigger hair follicles, encouraging novel hair growth and strengthening existing hair strands.
- Diminishes Hair Loss: By nourishing the scalp and hair roots, HydraFacial Keravive can help to minimize hair fallout and reduce the progression of hair loss.
- Enhances Hair Thickness and Fullness: With frequent treatments, HydraFacial Keravive can enhance the overall thickness and fullness of the hair, yielding a healthier and more luscious look.
- Revitalizes Impaired Hair: The nourishing and nourishing characteristics of the Keravive serum help in renewing dry, brittle, and damaged hair, leading to a glossy and vibrant hair.
4. Precautionary Considerations and Aftercare
HydraFacial Keravive is regarded as protected for most individuals when carried out by experienced specialists in Beverly Hills. However, it is vital to discuss a qualified practitioner and disclose any allergies, scalp disorders, or medical records to guarantee the therapy is fitting for you.
After the procedure, it is advised to steer clear of overly heat styling, chemical treatments, or rough hair goods for several days. Your professional may provide precise aftercare guidelines, including scalp care regimens and goods to optimize the outcomes of HydraFacial Keravive.
To attain the best results, a sequence of treatments could be advised based on your specific needs and hair concerns. Your practitioner will lead you on the suitable therapy schedule for your distinct situation.
The Bottom Line
HydraFacial Keravive has transformed the realm of hair restoration, providing a non-invasive and successful solution to boost a robust scalp and revitalize the hair. By merging the power of Hydrating Facial technology with the specialized Keravive serum, this therapy addresses the primary origins of hair loss and enhances scalp condition, leading to thicker, fuller, and healthier-looking hair.
If you're looking to improve your scalp and revamp your hair, consult a reputable specialist in Beverly Hills to discuss HydraFacial Keravive. Discover the potential of this advanced therapy and embrace the splendor of a revitalized scalp and beautiful, radiant locks.


text:
Compression sleeves, leggings and knee-high socks are standard accessories for many pro athletes. Most players in professional sports wear some kind of compression clothing. The thinking is that this clothing helps with circulation, support and muscle recovery. But does it actually work?
Before you decide whether compression clothing is right for you, it helps to know the history and the science.
Start at the bottom
Compression clothing began at the feet. Compression socks were created in the 1940s by inventor Conrad Jobst, who used elastic fabric — another new invention — to relieve pain caused by a condition in which his veins had problems sending blood back to the heart. For people with poor circulation, blood can pool in the legs after each pump. Compression socks work by firmly holding the body in place and squeezing the feet and legs. This reduces the diameter of the veins and helps circulation by keeping more blood moving as it pumps.
The invention of synthetic fabrics in the 1950s, including spandex, nylon and polyester, led to more clothes that could sculpt and mold the body instead of drape over it. Spandex was first used at the Olympics by the French ski team in 1968.
In the early 2000s, more and more athletes, including NBA players, began wearing compression clothing, including leggings. Trainers maintained that it helped players perform, saying that compressed muscles worked more efficiently and that the clothing helped improve circulation and support, particularly with strained muscles.
Since then, compression clothing has been embraced by everyone from Olympic athletes to Navy SEALs. The technology has never been more advanced and responsive to athletes' needs, with companies like 2XU, which is the Official Uniform Partner of Gold's Gym, offering compression clothing that's lighter and more flexible than ever, and measuring its gear using specialized pressure and tensile strength testers.
Compression clothing benefits: the science
Today, studies appear inconclusive on whether compression clothing is effective. But it's important to note that research has been sporadic and that some studies have zeroed in on specific sports and contexts, so the results may not necessarily apply to all activities and body conditions.
It's helpful to look at compression clothing studies from three angles:
- Performance. Compression clothing proponents believe improved circulation results in more oxygen being delivered and that this, in turn, can improve your performance. (Be sure to check out our tips on how to boost your endurance.) But a 2016 study that compared distance runners with and without compression clothes did not show a difference in their efficiency. Still, another study found that the clothing did have a small positive effect, particularly in short-duration sprints.
- Recovery. Another point argued by compression clothing proponents is that the improved blood flow can help speed recovery, and that the clothing can help reduce soreness because, like a massage, it applies pressure to muscles. Although scientists who studied whether elite cross-country skiers recovered better with compression clothing found no difference, scientists who looked at the recovery of rugby players, cyclists and rock climbers did find that compression clothing helped.
- Psychology. Scientists acknowledge that some people can, indeed, perform better or recover more quickly simply because they believe that compression clothing is effective. In other words, confidence is key: Your confidence that wearing the clothing will increase the efficiency of your movements and decrease tiredness later on can lead to better results.
Check out more of our fitness articles:
Sore After a Workout? What's Natural — and Not
Rest for Success
Resistance Machines Workout: Stand up to Build Strength


text:
More Spurious Words
107. Interview -- as a verb is spurious. "Our reporter interviewed President Grant yesterday." "A correspondent of the Herald has interviewed Count Bismark." Instead of interview say converse with, "have an interview with," or employ some of the many other expressions which are at command.This second set of words is more familiar to us as poor word usage.
110. Lengthy -- is a barbarous combination of letters for which there is very little use. Webster suggests that its application be limited to writings, discourse, etc. There is certainly no need of it anywhere else. Say long.
115. Reliable -- is much condemned by critics. Trustworthy is its proper substitute, and is undubtedly a better word. Authentic also may often take its place....Many writers pronounce emphatically and very dogmatically against reliable. It has, however, obtained general currency with writers and speakers as well instructed in language as they, and will probably carry the day against them.
105. Experimentalize -- is improper and unnecessary. Say, "experiment, or make an experiment.To this list I would like to add pressurize when used to mean to pressure someone into doing something they would rather not do. I have heard and seen this a little too often for comfort. Wood and air are pressurized. People are pressured.
113. Preventative. -- Say preventive.
117. Rotatory. -- Say rotary.
NOTE: I just looked up both words in the dictionary (The Random House Dictionary of the English Language. New York: Random House, 1966.) While my explanation is correct, the word pressurize appears under pressure as a synonym with no explanation as to its usage. Look up pressurize and it's there.


text:
It may no longer be relevant but I happen to know the answer about getting unicode symbols out of Word and through to MobiPocket Creator. This is because I used to do this. Here is the answer - basically you needed to configure Word correctly.
Run Word to configure it to use Unicode, which is needed for symbols, when saving an HTML file. It will remember this setting. This also applies when it is called from within MobiPocket Creator.
- Start a new document then Save As.
- Save as type: Web page, filtered
- Tools/Web Options/Encoding: Change from Western European (Windows) to Unicode (UTF-8)
(That last crucial bit, Tools/Web Options/Encoding, is in the Save window.)


text:
Change a path's starting point
While open paths have obvious starting and ending points, closed paths also have a starting point (which is the same as its ending point). Microsoft Expression Design uses the starting point of a closed path to determine how a brush stroke fits on a path, for example.
To change the starting point on an existing path
In the Toolbox, select the Start Point tool.
Click the anchor point you want to be the new starting point.
You can also use the Start Point tool on an open path. If you click the starting point or ending point of an open path, Expression Design just reverses the direction of the path. If you click any anchor point other than an ending or starting point, the path converts to a closed path, and that anchor point becomes the path's starting point.


text:
Okay, so here's my question:
Every full 4-ary tree of height 2 has at least ________ vertices and at most ________ vertices.
I know the formula to find the max number of leaves is m^h leaves in an m-ary tree of height h.
However, I don't know how to find max/min number of vertices. Any suggestions?
EDIT: Okay, so I used the max number of leaves formula (m^h) to get the max possible number of leaves for my 4-ary tree. The answer is 16. So, I got to thinking, what if I use the formula n = (ml - 1)/(m-1) (n being vertices, m being the m-ary tree, and l being the leaves). I plugged everything in and got 21. Is this the answer of the max vertices? If so, how do I get the min?


FMLA Checklist: Step-By-Step Compliance
CLE Accreditation Info
General Credits
Price: $29
Course Preview
 - Description
 Compliance with FMLA can be a complex process that can trip up even the most seasoned HR professional. This CLE course will present an in-depth checklist, including step-by-step procedures, to ensure an understanding of compliance obligations, how to meet and administer them in the workplace. The course will provide a fully comprehensive understanding of the legal requirements of the FMLA as they relate to leaves of absences and benefits including leave eligibility, definitions of key terms such as health condition, and approving FMLA leaves. The course will also explain how to institute policies to protect against future liability by clarifying terms and policies such as familial relationships under FMLA, the 12-month period, medical certifications, intermittent and reduced leave, and reinstatement.
 - Instructor Bio
 Melissa Fleischer


text:
Hush Puppies Recipe
A fish fry and barbecue staple, hush puppies are made from a six-ingredient batter, which is dropped by spoonfuls into hot oil to cook. You can make them yourself—we walk you through the steps.
History of Hush Puppies
So, how did hush puppies get their name? They were perhaps the original treat (aka bribe) for Fido. Legends tell how Southern fishermen and Civil War soldiers first made the golden nuggets from scraps just to toss to barking and begging dogs with the command to "Hush, puppy."
1. The Batter: Stire 10 times around the bowl—just until the dry and liquid ingredients are barely combined together. Overmixing causes a tough texture.
2. The Pot: Use a pot that is at least 6 inches deep and fits the largest element on your cooktop. Our Test Kitchen had excellent results frying this hush puppy recipe in both a 6-qt. Dutch oven and in a deep cast-iron skillet. We also tried an electric deep-fat fryer with a temperature control dial and found that the batter stuck to the basket, and the temperature did not get hot enough to properly fry the hush puppies. So stick with the old-fashioned pot-on-a-stove method.
3. The Oil: A clean ruler placed in the pot can help you determine the line for a 2- to 3-inch depth of oil. Don't skimp; the batter needs to submerge in the oil. For great results, the oil needs to maintain 375°. Too low and the hush puppies absorb oil; too high and the outside burns before the inside is done. Plan to adjust the temperature dial on your range slightly up or down throughout the frying to keep the temperature at 375°. A candy/deep-fat fry thermometer is a must.
4. The Drop: You can drop the hush puppy batter using two soup-size spoons sprayed with vegetable cooking spray or a 1 tablespoon-measure ice-cream scoop.
5. The Flip: Sometimes hush puppies will flip themselves over. Use a slotted spoon or frying utensil to turn the rest so they cook evenly.
6. The Finish: Hush puppies are usually done at the point you think they might need to cook longer—when the rough bumps or high spots are rich golden brown. Oil may be used for one more fry job if stored properly. After all the hush puppies are cooked, let the oil cool thoroughly. To remove cooked particles, strain the oil through a fine wire-mesh strained lined with cheesecloth or a coffee filter. Use a funnel to pour the oil into an empty vegetable oil bottle or a disposable plastic container with a lid. Label, date, and store in the fridge; use within one month.
Browse our How to Cook category for a full collection of recipes for all meal types and from all locations around the world!


Delta t' = \dfrac {\Delta t} {\sqrt{1 - \dfrac {v^2} {c^2}}}
$$
where:
 - Δ𝑡′ is the time interval measured from the space ship
 - Δ𝑡 is the time interval measured in the inertial system containing planet and comet
 - 𝑣 is the magnitude of the space ship's velocity
 - 𝑐 is the speed of light in vacuum.
 Because the time measured in the space ship is less, the comet will appear to need more time to cover a certain distance.
Thus, its velocity seems smaller from the perspective of the space ship (Note: The space ship's trajectory be perpendicular to the comet's trajectory towards the planet, so there is no length contraction parallel to the trajectory of the comet).
The comet's velocity measured from the planet is:
$$
u = \dfrac {\mathrm d s} {\mathrm d t}
$$
where the comet's velocity measured from the space ship is:
$$
u' = \dfrac {\mathrm d s} {\mathrm d t'}
$$
and as we know from the time dilation, the term for 𝑢′ is thus:
$$
u' = u \sqrt{1 - \frac {v^2}{c^2}}
$$
The observer in the space ship will nevertheless find out that the impact is equal to the one observed by the resting person.
That means that the comet's momentum doesn't change, no matter from what inertial system you measure it.
That can only be possible, if – seen from the space ship – the comet's mass increases, as its velocity decreases.
The comet's momentum from the perspective of the space ship is:
$$
p' = m' u'
$$
where:
 - 𝑝′ is the magnitude of the comet's momentum measured from the inertial system of the space ship
 - 𝑚′ is the comet's relativistic mass measured from the inertial system of the space ship
 - 𝑢′ is the magnitude of the comet's velocity measured from the inertial system of the space ship.
 And because the measured momentums from both observers are the same, you can write:
 $$
 p = p'
 $$
$$
m u = m' u'
$$
$$
m' = m \dfrac u {u'}
$$
$$
m' = m \dfrac u {u \sqrt{1 - \frac {v^2} {c^2}}}
$$
$$
m' = \dfrac m {\sqrt{1 - \frac {v^2} {c^2}}}
$$
Sources
]]>

$$m = \dfrac {m_0} {\sqrt{1 - \dfrac {v^2} {c^2} } }$$

Einstein's Mass-Energy Equation _URL_ 2019-02-24T06:15:35.000Z 2019-04-10T02:17:29.556Z
$$e=mc^2$$
Theorem
The energy imparted to a body to cause that body to move causes the body to increase in mass by a value 𝑀 as given by the equation:
$$
E = M c^2
$$
where 𝑐 is the speed of light.
Proof
From Einstein's Law of Motion, we have:
$$
\mathbf F = \dfrac {m_0 \mathbf a} {\left({1 - \dfrac {v^2} {c^2}}\right)^{\tfrac 3 2}}
$$
where:
 - 𝐅 is the force on the body
 - 𝐚 is the acceleration induced on the body
 - 𝑣 is the magnitude of the velocity of the body
 - 𝑐 is the speed of light
 - 𝑚0 is the rest mass of the body.
 Without loss of generality, assume that the body is starting from rest at the origin of a cartesian coordinate plane.
Assume the force 𝐅 on the body is in the positive direction along the x-axis.
To simplify the work, we consider the acceleration as a scalar quantity and write it 𝑎.
Thus, from the Chain Rule:
$$
a = \dfrac{\mathrm d v}{\mathrm d t} = \dfrac{\mathrm d v}{\mathrm d x} \dfrac {\mathrm d x}{\mathrm d t} = v \dfrac {\mathrm d v} {\mathrm d x}
$$
Then from the definition of energy:
$$
\displaystyle E = \int_0^x F \mathrm d x
$$
which leads us to:
$$E = m_0 \int_0^x \frac a {\left({1 - v^2 / c^2}\right)^{\tfrac 3 2} } \ \mathrm d x $$
$$ = m_0 \int_0^v \frac v {\left({1 - v^2 / c^2}\right)^{\tfrac 3 2} } \ \mathrm d v $$
$$ = m_0 \left({- \frac {c^2} 2}\right) \int_0^v \left({1 - \frac {v^2} {c^2} }\right)^{-\tfrac 3 2} \left({- \frac {2 v \ \mathrm d v} {c^2} }\right) $$
$$ = \left[{m_0 c^2 \left({1 - \frac {v^2} {c^2} }\right)^{- \tfrac 1 2} }\right]_0^v $$
$$ = m_0 c^2 \left({\frac 1 {\sqrt {1 - \frac {v^2} {c^2} } } - 1}\right) $$
$$ = c^2 \left({\frac {m_0} {\sqrt {1 - \frac {v^2} {c^2} } } - m_0}\right) $$
$$ = c^2 \left({m - m_0}\right) $$
$$ = M c^2$$
Einstein's Mass-Velocity Equation
Sources
]]>
<img src="_URL_
next主题的一些配置 _URL_ 2019-02-14T07:40:00.000Z 2019-04-10T02:17:29.556Z
在使用next主题过程中遇到一些问题，供大家参考。
中文问题
原因
站点内将language设置为zh-Hans，但是博客的语言并没有被改变为中文，原因是next主题使用zh-CN.yml配置跟site的配置不一致。
解决办法
创建一个软链即可
1
2
cd $THEME_FOLDER/languages
ln -s zh-CN.yml zh-Hans.yml
版权申明
现在是需要配置creative_commons节点：
1
2
3
4
5
6
7
# Creative Commons 4.0 International License.
# _URL_
# Available values: by | by-nc | by-nc-nd | by-nc-sa | by-nd | by-sa | zero
creative_commons:
license: by-nc-sa
sidebar: true # 显示在sidebar里面，可选
post: true # 显示在post底部
]]>

在使用next主题过程中遇到一些问题，供大家参考。

支付系统-架构设计 _URL_ 2019-02-06T06:54:04.000Z 2019-04-10T02:17:29.556Z
本文介绍核心支付系统的主要功能和组件。
架构设计
微服务
服务间使用grpc进行通讯。
支付调用时序图
整体部署架构
交互
配置
核心交易系统是将配置信息存储在etcd容器内
渠道
 - 基础目录: /foo/bar/pay/config
 - 每个渠道占用一个文件夹，每个渠道账户占用一个文件，例如微信存放在/foo/bar/pay/config/wechat目录下，appId: _PHONE_ 所在的配置信息存储在/foo/bar/pay/config/wechat/_PHONE_
]]>
<img src="_URL_
支付系统-概述 _URL_ 2019


text:
Litigation and Arbitration Venue Provisions in Construction Contracts: When and How They Work
Venue and choice-of-law provisions are fairly standard in construction contacts, but can be overlooked due to their location within a contract. When drafted effectively, these provisions can help limit uncertainty about where and how disputes will be resolved. In this article for Construction Executive, Kenneth E. Rubinstein and Eric Penley examine best practices for understanding the implications of these provisions and how they can be enforced.
Read the full article on the Construction Executive website.


Creating a custom Rational class in Common Lisp – Part 2
In the previous post, we saw a basic Rational class that handled instantiation of its instances by taking care of the appropriate error cases. In this post, we will extend the class further by taking care of some of the improvements that were planned out at the end of the previous post. Some of the improvements made are:
 - Implementation of addition, subtraction, multiplication, and division not only between rational numbers but also with integers.
 - A better macro, WITH-REPORTING, that takes care of the repetitive bits of the error conditions without reducing readability.
 - Changed the use of WITH-SLOTS to WITH-ACCESSORS (and therefore changed the :reader in the my-rational class definition to :accessor. This is perfectly fine since we need to allow the client to modify an existing instance of the rational object.
 - Despite allowing mutations directly in instances of the my-rational class, all the arithmetic functions are essentially purely-functional – they simply create a new instance of my-rational with the newly calculated parameters.
The code thus far looks like this:
;;;; A sample implementation inspired by Martin Odersky's class in his
;;; introduction to Scala.
;;; A rational number is a number that is of the form a/b where a and b
;;; are numbers, are in their lowest normalized forms, and therefore
;;; cannot be reduced further. If a/b is an integer, b is
;;; represented by 1.
(defpackage #:my-rationals
 (:use #:common-lisp)
 (:export #:my-rational
 #:add
 #:subtract
 #:multiply
 #:divide))
(in-package #:my-rationals)
;;;
;;; Define some error conditions that could arise
;;;
(define-condition my-rational-base-error (error)
 ((message :initarg :message :reader error-message)))
;;; Macro to generate different error conditions
(defmacro with-reporting ()
 (let ((condition (gensym))
 (stream (gensym)))
 '(:report (lambda (,condition ,stream)
 (format ,stream "~a~%" (error-message ,condition))))))
(define-condition numerator-not-a-number (my-rational-base-error)
 (with-reporting))
(define-condition denominator-not-a-number (my-rational-base-error)
 (with-reporting))
(define-condition denominator-not-specifiedd (my-rational-base-error)
 (with-reporting))
(define-condition denominator-zero (my-rational-base-error)
 (with-reporting))
;;;
;;; Define the Rational class
;;;
(defclass my-rational ()
 ((numerator :initarg :numerator :accessor rational-numerator
 :initform (error "Numerator required for a rational number"))
 (denominator :initarg :denominator :accessor rational-denominator)))
(defun check-param-values (n d)
 (cond
 ((not (realp n))
 (error 'numerator-not-a-number :message "Numerator is not a valid number"))
 ((null d)
 (error 'denominator-not-specified :message "Denominator is not provided"))
 ((not (realp d))
 (error 'denominator-not-a-number :message "Denominator is not a valid number"))
 ((zerop d)
 (error 'denominator-zero :message "Denominator is zero!"))))
(defun validate-params (obj)
 (with-accessors ((num rational-numerator) (denom rational-denominator)) obj
 (restart-case (check-param-values num denom)
 (enter-new-numerator (n)
 :report "Supply a new value for the numerator"
 :interactive (lambda ()
 (get-new-value 'numerator))
 (setf num n)
 (validate-params obj))
 (enter-new-denominator (d)
 :report "Supply a new value of denominator"
 :interactive (lambda ()
 (get-new-value 'denominator))
 (setf denom d)
 (validate-params obj))
 (make-denominator-one ()
 :report "Force the denominator to be 1"
 (setf denom 1)
 (validate-params obj)))))
;;; some helper functions for validation
(defun get-new-value (param)
 (format *query-io* "Enter new value for ~s: " param)
 (force-output *query-io*)
 (list (read *query-io*)))
(defun my-gcd (x y)
 (if (zerop y)
 x
 (my-gcd y (mod x y))))
(defmethod initialize-instance :after ((obj my-rational) &key)
 (validate-params obj)
 (with-accessors ((num rational-numerator) (denom rational-denominator)) obj
 (let ((g (my-gcd num denom)))
 (setf num (floor (/ num g))
 denom (floor (/ denom g))))))
;;; custom object printing
(defmethod print-object ((obj my-rational) stream)
 (with-accessors ((num rational-numerator) (denom rational-denominator)) obj
 (print-unreadable-object (obj stream :type t :identity t)
 (format stream "~d/~d" num denom))))
;;;
;;; Arithmetic operations - generic functions
;;;
(defgeneric add (first second)
 (:documentation "Add two rational numbers together"))
(defgeneric add (first int)
 (:documentation "Add a rational number to an integer"))
(defgeneric add (int second)
 (:documentation "Add an integer to a rational number"))
(defgeneric subtract (first second)
 (:documentation "Subtract the second rational number from the first"))
(defgeneric subtract (first int)
 (:documentation "Subtract an integer from a rational number"))
(defgeneric subtract (int second)
 (:documentation "Subtract a rational number from an integer"))
(defgeneric multiply (first second)
 (:documentation "Multiply two rational numbers together"))
(defgeneric multiply (first int)
 (:documentation "Multiply a rational number with an integer"))
(defgeneric multiply (int second)
 (:documentation "Multiply an integer with a rational number"))
(defgeneric divide (first second)
 (:documentation "Divide the first rational number by the second"))
(defgeneric divide (first int)
 (:documentation "Divide a rational number by an integer"))
(defgeneric divide (int second)
 (:documentation "Divide an integer by a rational number"))
;;; Arithmetic operations - generic methods
(defmethod add ((first my-rational) (second my-rational))
 (with-accessors ((num-one rational-numerator) (denom-one rational-denominator)) first
 (with-accessors ((num-two rational-numerator) (denom-two rational-denominator)) second
 (let ((d (* denom-one denom-two))
 (n (+ (* num-one denom-two)
 (* denom-one num-two))))
 (make-instance 'my-rational :numerator n :denominator d)))))
(defmethod add ((first my-rational) (int integer))
 (with-accessors ((num rational-numerator) (denom rational-denominator)) first
 (let ((n (+ num (* denom int))))
 (make-instance 'my-rational :numerator n :denominator denom))))
(defmethod add ((int integer) (second my-rational))
 (add second int))
(defmethod subtract ((first my-rational) (second my-rational))
 (with-accessors ((num-one rational-numerator) (denom-one rational-denominator)) first
 (with-accessors ((num-two rational-numerator) (denom-two rational-denominator)) second
 (let ((d (* denom-one denom-two))
 (n (- (* num-one den