Skip to main content
Interview: December 18, 2009
December 18, 2009
In this interview with's Norah Piehl, Janice Y. K. Lee discusses the slow evolution of her debut novel, THE PIANO TEACHER, from its origins as a short story and explains some of the challenges she faced in creating characters with backgrounds differing greatly from her own. She also describes the research she performed to accurately capture life in post-World War II Hong Kong, reflects on the struggles of balancing her writing career with her home life as a mother of four, and shares some of her favorite contemporary novelists. What was the starting point for your debut novel, THE PIANO TEACHER? Did you get the idea for the characters and their relationships first? The plot? The setting? How did you develop these ideas in preparation for writing the novel?
Janice Y. K. Lee: THE PIANO TEACHER started as a short story about Claire and Locket, although I didn't know their names at the time. I had an idea for a story about an English woman in Hong Kong, uncomfortable, unknowing, taking a job as the piano teacher to a privileged young Chinese girl in the 1970s, the time I had grown up in Hong Kong. The tensions inherent in that relationship interested me. So, it was really a short story first, and then I expanded upon it, with Trudy and Will and also moved it back to the '40s and '50s. The plot really came as I wrote, surfacing in my consciousness as things people said, or places I thought they would go. I never had a map, which proved difficult, but that is the way I seem to write. The characters lead me to their story.
BRC: Claire, Will and Trudy are the main characters, and the novel is written, at different points, from all their points of view. Which character was easiest for you to write? Were any of them particularly challenging to capture their voice or point of view?
JYKL: Trudy was definitely the easiest for me to write. I knew her from the moment I conceived of her. Claire and Will were not easy for me to take ownership of. I kept thinking, what would they do, who were their parents, what were their jobs, what were their childhoods like? I knew all that about Trudy immediately. I think it's because she grew up in Asia, like me, and Will and Claire are English, and I have never spent time in England save for the occasional vacation. So, it was hard for me to place them in the world. But by the end, I knew who they were, but they were a lot harder than Trudy. She was a gift to me, a gift of the fully-formed character.
BRC: The narrative moves increasingly freely among the three main characters in this unusual love triangle and forward and backward in time. How did you go about constructing this narrative structure? Did you have a map or outline to guide you?
JYKL: I did not have a map so it took me a very long time to get it right. Part 1 took me most of a year. I kept experimenting, putting it all in the '40s, or all in the '50s, or all in present tense, or past, etc. etc. Then I would wait a few days, and read it. They always felt wrong. When I came upon what is the present form, it finally felt right. People have asked why I put the '40s in the present tense and the '50s in the past. I didn't know at the time --- it was very much a feel thing, but I think my intention was to make the '40s seem dreamlike and immediate, which the present tense communicates, and the '50s story was more of a conventional narrative, which unfolds as we read.
BRC: Your book contains so many fascinating, concrete details about life in Hong Kong during and after World War II. What kinds of research did you conduct to bring this world to life?
JYKL: I read a lot of memoirs by British and American people who were in Hong Kong at the time and who had been interned. This gave me a sense of the social life back then, and how people spent their days. I also read microfiche of newspapers to get an idea of what was going on in the broader world --- Queen Elizabeth ascending the throne, tensions in Korea, and I wanted to put those details in because people in that day would be interested in these public affairs. The ads in the paper were also interesting and gave me a lot of insight into daily life. You could buy a car in England and ship it to Hong Kong, people were running classified ads advertising themselves as English tutors or teachers in flower arranging. What I loved were details of food, what dishes people were eating, how much things cost --- like ferry tickets, or to have a dress made --- and the kinds of games people played, how they amused themselves back then.
BRC: You grew up in British Hong Kong, went to school in America and lived here for a while after college, and then returned to Hong Kong in 2005, after it had been returned to China. What changes did you see upon your return? What do you enjoy about living in Hong Kong?
JYKL: Hong Kong has never been England or China, but a blend all its own. So while I saw a lot of surface differences when I moved back (the currency no longer showed the Queen, but the bauhinia, the national flower; the mail was no longer called the "royal mail"), I must say a lot of life remains the same. Hong Kong is not China, but a part of China with its own unique history. I like living in Hong Kong because my parents and older brother live here and it's been great to have family close as my husband and I have four kids. The winters are also a lot more enjoyable as it never gets too cold.
BRC: The descriptions of Japanese occupation and the internment of non-Chinese nationals in Hong Kong near the end of World War II have been shocking to many American readers, who might have only a cursory grasp on this era of Asian history. Have you received any reactions to the book by Japanese readers or press? Has it been translated into Japanese?
JYKL: It has been translated into complex and simplified Chinese (meaning Taiwan/Hong Kong and mainland China) but has not been picked up in Japan, so I have not heard any reactions to the book from the Japanese public. A Japanese-American woman came up to me after a reading and said how glad she was that I wrote it, though.
BRC: Are there any elements of your novel (beyond the primary plot and characters, obviously) that had their genesis more in your imagination than in historical reality?
JYKL: Many people think the Crown Collection is real, but I made it up entirely!
BRC: THE PIANO TEACHER is now out in paperback. How have you found the experience of having your first novel published? What surprised you most about the whole process?
JYKL: What do you say when your dream comes true? It's been a crazy ride. I will say, though, that although this is my first novel, it is certainly not my first attempt at writing. I have spent 30 years working towards and dreaming of this time! I have wanted to be a writer since I was a little girl. Now that I'm on the other side, it's lovely but I don't think I'm ever going to forget all those years of writing, working and uncertainty.
BRC: With the publication of the paperback edition, book groups will now undoubtedly be drawn to discussing your book. Have you ever been involved in a book discussion group? Do you have any plans to visit or talk with groups discussing your book?
I've done a few book clubs of friends, or friends of friends. Because I'm in Hong Kong, sometimes I've skyped. I've skyped with Singapore, Shanghai and San Francisco! I prefer a larger group because the energy is better.
BRC: In the bio on your website, you mention that you and your husband were starting a family at the same time you were writing THE PIANO TEACHER. How did you maintain focus on your novel while also tackling motherhood? How do you currently balance your four children with your writing career? What kind of writing routine do you maintain?
JYKL: It's very hard. You always feel like someone or something is getting short shrift. I try to write in the morning, but on the rare occasions I'm really writing, I tend to work all day if I can, but that's so rare that it is not a factor in my daily schedule. I think my writing suffers from inattention more than my children. Hopefully I will get more time as they get older.
BRC: Which other contemporary novelists do you read and enjoy?
JYKL: So many! Just finished books by Dan Chaon and Peter Cameron. I love Amy Hempel, Amy Bloom, Elizabeth McCracken, Michael Cunningham, Jeffrey Eugenides. The list goes on and on...
BRC: Do you plan to use Hong Kong as the setting for future novels?
JYKL: I'm not sure. I'm working on something now but it's pretty amorphous. I also don't like to say because I feel it dissipates with the saying of it.
BRC: What are you working on now?
JYKL: Ditto...
Click here now to buy this book from Amazon.
© Copyright _PHONE_


text:
IDV has released SpeedTree Cinema 8, the latest version of its standalone tree, plant and foliage modelling suite of tools. New features include:
- PBR workflow and rendering. Supports non-destructive material editing, allowing artists to adjust textures on the fly.
- A new library of 150 models with thousands of 3D surface-scanned PBR textures. Each model contains multiple polygonal resolutions and adjustable seasonal variations.
- Improved export pipeline. Exports of both meshes and wind animations now run much faster and use less memory. Other improvements include UDIM support, better mesh unwrapping, hierarchical exports, and better bone weighting for skinned meshes.
- New leaf batching system. Leaf rendering in the SpeedTree Modeler is up to 1,000 times faster than version 7. This greatly speeds the modeling process and supports the creation of more complex models.
- Improved wind realism. Cinema 8 captures the complex dynamics of wind among leaves and branches more naturally. The overhauled system features a realistic rolling wind effect, is much easier to tune, and includes a new wind wizard.
- Many more improvements, including a new art director tool and an overhauled mesh cutout system.
This release sees SpeedTree Studio and SpeedTree Architect discontinued. In their place SpeedTree Cinema is offered in various versions with both rental and perpetual licensing options. Find out more on the SpeedTree website.

source: m-a-p/FineFineWeb


text: Background: Significant resources are used for acute illnesses in children. Identifying predictors of resource use can focus interventions to reduce this use. Objective: To determine the relative effects of maternal, infant, social milieu, and demographic characteristics, the mother-child interaction, and perception of illness severity on the use of resources during acute illnesses in children. Design: At the 2-week and 6-, 15-, and 24-month well-child care visits of a cohort of mother-infant dyads, the mother-well-child interaction was assessed by using the Biringen Emotional Availability Scales, and data were gathered regarding maternal depression and sense of competence, infant temperament, maternal social support, the home environment, and demographic characteristics. At each of the cohort's 1983 ill-child care visits during 30 months of follow-up, the mother-ill-child interaction was assessed by using the Emotional Availability Scales, and mothers and pediatricians independently assessed illness severity using the Acute Illness Observation Scales. Resources used during the illnesses-over-the-counter and prescription medications, tests, hospitalizations, follow-up visits, and the emergency department-were assessed. Setting: A hospital primary care center and an urban and a suburban private practice. Patients: Between February 1, 1995, and March 30, 1998, a consecutive sample of 380 dyads were asked to enroll at the 2-week well-child care visit; 316 (83.2%) consented, and complete data were available for analysis of 243 dyads. Main Outcome Measures: A path analytic framework using a structural equation model assessed the presence and strength of predictive relationships between demographic, maternal, infant, and social milieu data, the Biringen Emotional Availability Scales, and the Acute Illness Observation Scales and the main outcome measure, resource use. Results: Three variables predicted greater mean resource use during each acute illness episode: a less optimal mother-child interaction (β = -.53), lower scores for parenting sense of competence (β = -.26), and greater perception of illness severity by mothers (β =.33). By using the coefficient of determination (R 2), these 3 predictors account for 55% of the reliable variance in resource use during acute illnesses. Conclusion: The quality of the mother-child interaction, maternal sense of competence, and maternal assessment of severity of the illness are major predictors of resource use during acute pediatric illnesses, and should be important foci of interventions to reduce resource use.


text: © 2016 IEEE.Transmission channels underlying modern memory systems, e.g., Flash memories, possess a significant amount of asymmetry. While existing LDPC codes optimized for symmetric, AWGN-like channels are being actively considered for Flash applications, we demonstrate that, due to channel asymmetry, such approaches are fairly inadequate. We propose a new, general, combinatorial framework for the analysis and design of non-binary LDPC (NB-LDPC) codes for asymmetric channels. We introduce a refined definition of absorbing sets, which we call general absorbing sets (GASs), and an important subclass of GASs, which we refer to as general absorbing sets of type two (GASTs). Additionally, we study the combinatorial properties of GASTs. We then present the weight consistency matrix (WCM), which succinctly captures key properties in a GAST. Based on these new concepts, we then develop a general code optimization framework, and demonstrate its effectiveness on the realistic highly-asymmetric normal-Laplace mixture (NLM) Flash channel. Our optimized codes enjoy over one order (resp., half of an order) of magnitude performance gain in the uncorrectable BER (UBER) relative to the unoptimized codes (resp. the codes optimized for symmetric channels).


Take the 2-minute tour ×
In Weil's paper
"On a certain type of characters of the idele-class group of an algebraic number field",
Weil introduces a class of characters on the Idele class group (of not necessarily finite order) which take algebraic values. He calls them, characters of type (A) (the (A) probably stands for algebraic, I guess). On the last 3 lines of p. 3, he says that Artin pointed out to him how to use Minkowski's theorem on units (in absolutely normal number fields) to show essentially that all such characters come from CM fields.
Basically, this question boils down to understand the following: For which number fields $K$; collection of integers $f_{\iota}$; and a suitable choice of an integer $m$, is it possible to have $$ \prod_{\iota\in S_{\infty} }\left(\frac{\iota(\epsilon)}{\overline{\iota(\epsilon)}}\right)^{mf_{\iota}}=1 $$ for all $\epsilon\in \mathcal{O}_K^{\times}$? Here $S_{\infty}$ denotes the set of infinite places of $K$.
Q1: Is there a reference in the literature where I can find a proof (or a sketch of a proof) of this result?
Q2: If no such reference exists, then how does one prove it from Minkowski's theorem?
share|improve this question
See Laurent Fargues's great article 'Motives and automorphic forms: the potentially abelian case', available here: www-irma.u-strasbg.fr/~fargues/Motifs_abeliens.pdf It's Proposition 1.12. – Keerthi Madapusi Pera Jan 30 '13 at 14:49
Also, do you mean Dirichlet's theorem, rather than Minkowski's? – Keerthi Madapusi Pera Jan 30 '13 at 14:49
Fargues' article is indeed great in many ways but I don't find his proof of Proposition 1.12 all that clear -- he leaves a lot of checking to the reader. – David Loeffler Jan 30 '13 at 20:16
see Patrikis' 2012 thesis: math.ias.edu/~patrikis/variationsoct2012.pdf (in particular, 5.1.3). the first proof given is the standard one (see Keerthi's answer below), but it also indicates a second proof. – fherzig Jan 31 '13 at 19:37
add comment
2 Answers
up vote 7 down vote accepted
Now that I've had the chance to look at Fargues's proof carefully, it seems incomplete for what it claims to prove, but it might answer the question under consideration.
Suppose that you have a collection of integers $f_{\iota}$ indexed by embeddings $\iota:K\hookrightarrow\mathbb{C}$ and satisfying for some integer $m$ (this is slightly different from the OP's identity):
$$\prod_{\iota}\iota(\epsilon)^{mf_{\iota}}=1,\text{ for all $\epsilon\in\mathcal{O}_K^\times$}.$$
Then I claim that there exists a CM sub-field $L\subset K$ such that $f_{\iota}$ only depends on $\iota\vert_L$ (for the purposes of this statement, totally real fields are CM).
The assertion that allows us to reduce this to Dirichlet's unit theorem is the following: It suffices to show that, for all $\sigma\in Aut(\mathbb{C})$, $f_{\sigma\iota}+f_{\sigma\overline{\iota}}$ is independent of $\iota$ and $\sigma$.
(EDIT: It was incorrectly stated in the original version that it was enough to require independence from $\iota$ alone).
To see this, we reinterpret this condition as follows: After fixing an embedding $\bar{\mathbb{Q}}\hookrightarrow\mathbb{C}$, we can view the collection $(f_{\iota})$ as an element $f$ of the $G_{\mathbb{Q}}$-module of maps $Hom(K,\bar{\mathbb{Q}})\to\mathbb{Z}$. The Galois action is given by $(\sigma(f))_{\iota}=f_{\sigma^{-1}\iota}$. From this point of view, our claim amounts to: For every complex conjugation $c$ of $\bar{\mathbb{Q}}$, $f_{\iota}+f_{c(\iota)}$ is independent of $c$ and $\iota$. In particular, for all $\sigma\in G_{\mathbb{Q}}$, and all complex conjugations $c$, we have:
$$ f_{\sigma^{-1}\iota}+f_{c(\sigma^{-1}\iota)}=f_{\iota}+f_{c\iota}. $$
Another way to write this is, for all $\iota$:
$$ \sigma(f)_{\iota}+\sigma(c(f))_{\iota}=f_{\iota}+c(f)_{\iota}. $$
So $\sigma$ stabilizes $f$ if and only if it stabilizes $c(f)$, for all complex conjugations $c$. Let $L$ be the fixed field of the stabilizer of $f$ in $G_{\mathbb{Q}}$. We have shown that $L$ is stabilized by all complex conjugations. To show that $L$ is CM we need to now need to know that all complex conjugations have the same action on $L$. This amounts to showing that $f_{c(\iota)}$ does not depend on the choice of $c$. But, since $f_{\iota}+f_{c(\iota)}$ does not depend on $c$ by hypothesis, this is clear.
Let us return to the first identity above. Taking the logarithm of its absolute value gives us:
$$ \sum_{\iota}f_{\iota}\vert \iota(\epsilon)\vert=0. $$
But consider the map
$$ \ell:\mathcal{O}_K^\times\otimes\mathbb{R}\rightarrow\oplus_{v\vert\infty}\mathbb{R}. $$ given by $\ell(\epsilon\otimes 1)_v=\log\vert \epsilon\vert_v$ if $v$ is real and by $\ell(\epsilon\otimes 1)_v=2\log\vert \epsilon\vert_v$ if $v$ is complex. The indexing set here is the set of inequivalent archimedean norms on $K$. Then Dirichlet's unit theorem says that $\ell$ is an isomorphism onto the hyperplane $H$ where the sum of the co-ordinates is identically $0$.
This shows that, for all $(b_v)\in H$,
$$\sum_{v}\frac{f_{\iota(v)}+f_{\overline{\iota}(v)}}{2}b_v=0.$$ Here, if $v$ is complex, $\iota(v)$ and $\overline{\iota}(v)$ are the two complex embeddings inducing $v$. If $v$ is real, they're the same embedding. If one uses the usual basis of $H$ consisting of differences of the basis vectors for the ambient space, one finds that $f_{\iota}+f_{\overline{\iota}}$ is independent of $\iota$. Applying the same argument to the character $\epsilon\mapsto\prod_{\iota}\sigma^{-1}(\iota(\epsilon))^{f_{\iota}}=\prod_\iota\iota(\epsilon)^{f_{\sigma\iota}}$, one sees that $f_{\sigma\iota}+f_{\sigma\overline{\iota}}$ is independent of $\iota$ as well.
(EDIT: The remainder of the proof has been changed to reflect the correction in the criterion above.)
Set $w(\sigma)=f_{\sigma\iota}+f_{\sigma\bar{\iota}}$: this doesn't depend on $\iota$. To finish the proof, we must show that it is independent of $\sigma$ as well. First, let $L$ be as above. From what we have proven already, we find that $L$ is stable under all complex conjugations. Assume that $L$ is totally complex; this implies that $K$ is also totally complex. Then, if $n=[K:\mathbb{Q}]$, we have:
$$ 2nw(1)=\sum_{\iota}(f_{\iota}+f_{\bar{\iota}})=\sum_{\iota}(f_{\sigma\iota}+f_{\sigma\bar{\iota}})=2nw(\sigma). $$
So, in this case, the independence is clear.
To finish, it is enough to show the following: If $L$ has one real place, then $L=\mathbb{


text:
The Edible Schoolyard at the Greensboro Children's Museum empowers kids, families, and adults to cultivate healthier communities through food education. As the only official affiliate of the original Edible Schoolyard located at a children's museum, this garden has both a local and a national impact.
The Edible Schoolyard includes a hands-on, half-acre organic teaching garden and a kitchen classroom where children and their families and teachers learn about growing, cooking, and sharing fresh, delicious food. With an ecosystem of plants and animals, the garden features vegetables, herbs, fruits, flowers, trees and shrubs, as well as chickens, rabbits, worms and insects. The Edible Schoolyard team at the Greensboro Children'


not be empty, you can choose to instead use MemoryMarshal.GetReference, which performs the same operation but without the length check:
Again, while a single check adds minor overhead, when executed over and over and over, that can add up:
Method Mean Error StdDev Ratio RatioSD
PinSpan 0.6524 ns 0.0129 ns 0.0159 ns 1.00 0.00
PinSpanExplicit 0.5200 ns 0.0111 ns 0.0140 ns 0.80 0.03

Of course, there are many other (and generally preferred) ways to operate over a span's data than to use fixed. For example, it's a bit surprising that until Span<T> came along, .NET didn't have a built-in equivalent of memcmp, but nevertheless, Span<T>'s SequenceEqual and SequenceCompareTo methods have become go-to methods for comparing in-memory data in .NET. In .NET Core 2.1, both SequenceEqual and SequenceCompareTo were optimized to utilize System.Numerics.Vector for vectorization, but the nature of SequenceEqual made it more amenable to best take advantage. In PR dotnet/coreclr#22127, @benaadams updated SequenceCompareTo to take advantage of the new hardware instrinsics APIs available in .NET Core 3.0 to specifically target AVX2 and SSE2, resulting in significant improvements when comparing both small and large spans. (For more information on hardware intrinsics in .NET Core 3.0, see platform-intrinsics.md and using-net-hardware-intrinsics-api-to-accelerate-machine-learning-scenarios.)
Method Toolchain Length Mean Error StdDev Ratio
CompareSame netcoreapp2.1 16 16.955 ns 0.2009 ns 0.1781 ns 1.00
CompareSame netcoreapp3.0 16 4.757 ns 0.0938 ns 0.0732 ns 0.28
CompareDifferFirst netcoreapp2.1 16 11.874 ns 0.1240 ns 0.1100 ns 1.00
CompareDifferFirst netcoreapp3.0 16 5.174 ns 0.0543 ns 0.0508 ns 0.44
CompareDifferLast netcoreapp2.1 16 16.644 ns 0.2146 ns 0.2007 ns 1.00
CompareDifferLast netcoreapp3.0 16 5.373 ns 0.0479 ns 0.0448 ns 0.32
CompareSame netcoreapp2.1 256 43.740 ns 0.8226 ns 0.7292 ns 1.00
CompareSame netcoreapp3.0 256 11.055 ns 0.1625 ns 0.1441 ns 0.25
CompareDifferFirst netcoreapp2.1 256 12.144 ns 0.0849 ns 0.0752 ns 1.00
CompareDifferFirst netcoreapp3.0 256 6.663 ns 0.1044 ns 0.0977 ns 0.55
CompareDifferLast netcoreapp2.1 256 39.697 ns 0.9291 ns 2.6054 ns 1.00
CompareDifferLast netcoreapp3.0 256 11.242 ns 0.2218 ns 0.1732 ns 0.32

As background, "vectorization" is an approach to parallelization that performs multiple operations as part of individual instructions on a single core. Some optimizing compilers can perform automatic vectorization, whereby the compiler analyzes loops to determine whether it can generate functionally equivalent code that would utilize such instructions to run faster. The .NET JIT compiler does not currently perform auto-vectorization, but it is possible to manually vectorize loops, and the options for doing so have significantly improved in .NET Core 3.0. Just as a simple example of what vectorization can look like, imagine having an array of bytes and wanting to search it for the first non-zero byte, returning the position of that byte. The simple solution is to just iterate through all of the bytes:
That of course works functionally, and for very small arrays it's fine. But for larger arrays, we end up doing significantly more work than is actually necessary. Consider instead in a 64-bit process re-interpreting the array of bytes as an array of longs, which Span<T> nicely supports. We then effectively compare 8 bytes at a time rather than 1 byte at a time, at the expense of added code complexity: once we find a non-zero long, we then need to look at each byte it contains to determine the position of the first non-zero one (though there are ways to improve that, too). Similarly, the array's length may not evenly divide by 8, so we need to be able to handle the overflow.
For longer arrays, this yields really nice wins:
Method Mean Error StdDev Ratio
LoopBytes 5,462.3 ns 107.093 ns 105.180 ns 1.00
LoopLongs 568.6 ns 6.895 ns 5.758 ns 0.10

I've glossed over some details here, but it should convey the core idea. .NET includes additional mechanisms for vectorizing as well. In particular, the aforementioned System.Numerics.Vector type allows for a developer to write code using Vector and then have the JIT compiler translate that into the best instructions available on the current platform.
Method Mean Error StdDev Ratio
LoopBytes 5,462.3 ns 107.093 ns 105.180 ns 1.00
LoopLongs 568.6 ns 6.895 ns 5.758 ns 0.10
LoopVectors 306.0 ns 4.502 ns 4.211 ns 0.06

Further, .NET Core 3.0 includes new hardware intrinsics that allow a properly-motivated developer to eek out the best possible performance on supporting hardware, utilizing extensions like AVX or SSE that can compare well more than 8 bytes at a time. Many of the improvements in .NET Core 3.0 come from utilizing these techniques.
Back to examples, copying spans has also improved, thanks to PRs dotnet/coreclr#18006 from @benaadams and dotnet/coreclr#17889, in particular for relatively small spans…
Method Toolchain Mean Error StdDev Ratio
CopySpan netcoreapp2.1 10.913 ns 0.1960 ns 0.1737 ns 1.00
CopySpan netcoreapp3.0 3.568 ns 0.0528 ns 0.0494 ns 0.33

Searching is one of the most commonly performed operations in any program, and searches with spans are generally performed with IndexOf and its variants (e.g. IndexOfAny and Contains) In PR dotnet/coreclr#20738, @benaadams again utilized vectorization, this time to improve the performance of IndexOfAny when operating over bytes, a particularly common case in many networking-related scenarios (e.g. parsing bytes off the wire as part of an HTTP stack). You can see the effects of this in the following microbenchmark:
Method Toolchain Mean Error StdDev Ratio
IndexOf netcoreapp2.1 12.828 ns 0.1805 ns 0.1600 ns 1.00
IndexOf netcoreapp3.0 4.504 ns 0.0968 ns 0.0858 ns 0.35

I love these kinds of improvements, because they're low-enough in the stack that they end up having multiplicative effects across so much code. The above change only affected byte, but subsequent PRs were submitted to cover char as well, and then PR dotnet/coreclr#20855 made a nice change that brought these same changes to other primitives of the same sizes. For example, we can recast the previous benchmark to use sbyte instead of byte, and as of that PR, a similar improvement applies:
Method Toolchain Mean Error StdDev Ratio
IndexOf netcoreapp2.1 24.636 ns 0.2292 ns 0.2144 ns 1.00
IndexOf netcoreapp3.0 9.795 ns 0.1419 ns 0.1258 ns 0.40

As another example, consider PR dotnet/coreclr#20275. That change similarly utilized vectorization to improve the performance of To{Upper/Lower}{Invariant}.
Method Toolchain Mean Error StdDev Ratio
ToUpperInvariant netcoreapp2.1 64.36 ns 0.8099 ns 0.6763 ns 1.00
ToUpperInvariant netcoreapp3.0 26.48 ns 0.2411 ns 0.2137 ns 0.41

PR dotnet/coreclr#19959 optimizes the Trim{Start/End} helpers on ReadOnlySpan<char>, another very commonly-applied method, with equally exciting results (it's hard to see with the white space in the results, but the results in the table go in order of the arguments in the Params attribute):
Method Toolchain Data Mean Error StdDev Ratio
Trim netcoreapp2.1 12.999 ns 0.1913 ns 0.1789 ns 1.00
Trim netcoreapp3.0 3.078 ns 0.03


text:
Many considerations come into play when constructing timber frame houses. There are the environmental impacts, ongoing maintenance, aesthetic appeal, flexible design options, and overall strength of the home. However, another piece of the puzzle is the actual lifespan of a timber frame house. In choosing to move forward with building a timber frame home, the lifespan is definitely a major component to keep in mind.
What Is the Typical Lifespan of a Timber Frame House?
Generally speaking, a timber frame house lifespan is 100 years or more. Many of the timber frame homes first built in North America in mid 1700 still stand and function today. There are many timber frame structures still in use throughout Europe that date back to early 1100's.
The Importance of Quality Construction
There is the familiar adage that the best defense is a good offense, so focusing on the initial build is pivotal. It is during these early stages that most of the potential success of the timber frame house lifespan is established. The builders and designers are well aware of the responsibility they have to ensure building timber frame houses is done with exacting detail, taking into account any and all potential pitfalls. Obviously, once the timber frame house is built, much of what determines how long timber frame houses last depends upon the owner. It is up to the individual to take steps to maintain the home. Ongoing upkeep and maintenance can extend the lifespan significantly, assuming the owner knows what issues to prioritize.
Protecting Against Moisture Damage
One of the most pressing concerns to keep in mind is moisture damage. Prior to inhabiting the home, the way the timber frame house is built sets the stage for how protected the timber frame house is from moisture damage. When the actual build takes place, you want to ensure the timbers used have a moisture content no higher than 19 percent. Higher concentrations of moisture in the wood of timber frame houses can easily lead to early development of mold and wood rot. Another point to note is that during construction of a timber frame house, the builders are cognizant of keeping the framing as dry as possible. If the frame constructed is wet, it can result in nails popping out and issues with drywall. These issues can lead to significant moisture damage down the road.
During construction, another major concern is proper sealing of the home exterior. By ensuring the sealing is handled correctly, air can't escape through the cracks. This prevents moisture from becoming trapped in wall cavities, which in the long run, can truly impact the lifespan of a timber frame house. By being meticulous with the sealing of the home, the insulation can then be installed without worry that air will get in and cause unnecessary condensation problems.
It is also helpful, if not essential, to strengthen the exterior of timber frame houses with UV protection. The lifespan of a timber frame house can be extended this way by fortifying the wood against the potential deterioration caused by the sun's rays.
Another way to protect timber frame houses, thus increasing a timber frame house lifespan, is to include a humidifiers and ventilators to maintain the air quality indoors. This is particularly important if incorporating a forced-air heating system in your home. During the summer, however, dehumidifiers can also be beneficial, depending on the outside environment.
Modern day Heat Recovery Ventilation systems are highly recommended . Simply using fans will also help to regulate airflow. How much humidity allowed in a timber frame house is ultimately going to be based on the owner's comfort level. Typically, though, the recommendation is that a home is kept roughly between 30-50% humidity. These levels are adequate for minimizing mold growth and excessive condensation.
Pest and Insect Infestation
Another concern that often arises is that of pest and insect infestation. Yearly inspections on the exterior of any home is always recommended to insure there is no evidence of insect or water damage.Fortunately, if the builders are sure to effectively seal the home around its foundation and the base of the siding, this should not cause a homeowner to worry.
Properly Insuring a Timber Frame Home
Insurance is obviously another way to protect a timber frame house. These days, finding affordable insurance for timber frame houses is typically as easy as finding insurance for a traditional brick or hybrid home. Most people start with their own agents, although it is recommended that a person investing in a timber frame house do their research. Speak to the builders and designers. Ask the owners of other timber frame houses for their opinions. Seek out the most recent data on rates and options.
In conclusion, extending the lifespan of a timber frame house starts as soon as the decision is made to actually proceed with building a home. Research your options when it comes to builders. Ensure the team you use to build a timber frame home has a solid reputation and integrity. While it's true that timber frame houses are built more quickly than other styles of homes, this speed should not come at the expense of a sloppily constructed building. If you have any questions, do not hesitate to reach out to our customer service team at Hamill Creek. Our agents would be happy to discuss plans you have for your timber frame house and answer any questions on products and processes used during installation.


text:
2006 Historic Preservation Award Recipients
National Preservation Month, sponsored by the National Trust of Historic Places, was celebrated by Proclamation within the Village and across America during the month of May. This year's theme is "Sustain America - Vision, Economics, and Preservation".
Villa Park's Annual Historic Plaque Award Program includes awards for Historic Preservation, Historic Landmark and Sears Catalog Home categories.
At the April 24, 2006 Village Board meeting, the Villa Park Historic Preservation Commission announced the three winners of this year's annual Historic Plaque awards.
George and Marianne Kolak for their historic 1903 Prairie-style farmhouse located at 240 South Myrtle Avenue. The Montgomery House (PDF) was one of the first homes built by early developer Charles Heisen in the Villa subdivision. The first owner was the Montgomery family. Silent child movie star "Baby Peggy" was born in 1918 in her grandfather's house and started to work at age 19 months after her father, Jack Montgomery, a famous cowboy stuntman, moved his family to Hollywood. After appearing in over 150 two-reels, she retired at the age of 10 and later became a successful author.
Donald and Chris Shore for their historic 1909 vernacular farmhouse located at 619 East Madison Street. The Wyckoff House (PDF) is located on land that was originally part of the Asa Knapp farmstead established in 1842. In 1908, developer Frank E. Ballard purchased the property and created the "Park Farms" subdivision. The first owner was George G. Wyckoff. Today, the Sugar Creek Golf Course resides on much of the former Knapp farm.
Lastly, a Sears Catalog Home awards was given to Scott Iselin for his unique brick Crescent (PDF) model Sear's mail-order house, located at 242 Astor Court and built in 1925. The original owner, Vic Hansen, was a part-time bookkeeper for Villa Park Fuel Company and was head auditor for the Baltimore and Ohio Railroad. In 1949, Vic Hansen and Ray Rugaard purchased the business equally. In the 1960s, Rugaard bought out Hansen and it then became the Villa Park Material Company, Inc.
The present owners and caretakers are commended for their contributions to the community and for the preservation and maintenance of these important structures that links the past with the future of Villa Park. These buildings are significant to the history and development of the Village of Villa Park and contribute to its character and heritage.


text:
Eastern Parkway-Brooklyn Museum
Arts for Transit Collaborative
New York City Architectural Artifacts from the Collection of the Brooklyn Museum, 2004
Terra cotta artifacts and glass mosaic on mezzanine and stairway walls
The Brooklyn Museum has long served as a repository for ornamental architectural forms salvaged from significant buildings that were being demolished. Seventy-eight of these artifacts are installed in the Eastern Parkway/Brooklyn Museum subway station, enriching the environment and creating an introduction to the museum above. Among these are plaques, lunettes, keystones, and other decorative elements that represent the city's architectural heritage. The project is a successful example of institutional collaboration. The Brooklyn Museum, working with MTA Arts for Transit and Vel Riberto Consulting, selected the artifacts and donated them to the project. New mosaic designs were added, to frame the objects and to make connections with the architecture of the station.
- Google Translate

source: HuggingFaceFW/fineweb-edu


text:
GODAN launches the Soil Data Working Group
The Global Open Data for Agriculture and Nutrition (GODAN), has launched a new working group on Soil Data Working Group, in cooperation with the Research Data Alliance and the Global Soil Partnership.
The working group was initially conceptualized during GODAN Summit 2016.The working group will closely interact with other initiatives related to the development of open soil standards promoting the exchange of digital soil data (OGC, ISO), and support and utilize these.
This Soil Data Working Group joins other existing working groups within the GODAN.
The objectives of the Soil Data Working Group
The Soil Data Working Group will pursue the following overarching objectives:
- to agree on a set of global soil data ontologies, thus supporting the provision of findable, well described, interoperable and re-usable soil data, and
- to define use cases so that data providers can better identify targeted key data sets and information products to support user needs,
- to support the development and implementation of shared open soil data through capacity building and training.
Soil data is gaining more and more interest among practitioners, but the main obstacle to its dissemination is the poor harmonization of data across the world. The Soil Data Working Group will work to achieve a stadarized language for open soil data. Many countries already have implemented a training for a common open soil data vocabulary, but the objective of the Soil Data WG is to have an easy-applicable exchange standard for this kind of data.
Planned activities of the group
- Launch of the working group by the GODAN Secretariat: February 2017
- First meeting: 3-4 April 2017, Barcelona: RDA-IGAD pre-meeting (RDA: Research Data Alliance, IGAD: Interest Group on Agricultural Data)
- Development of a ToR for the Soil Data Working Group (interested members not participating will be asked for statements of expectation, and can join per video)
Rainer Baritz /Global Soil Partnership /FAO Rome [email protected]
Ben Schaap / GODAN Secretariat / Wageningen, The Netherlands [email protected]


text:
Reefs of Norway
A plethora of Lophelia pertusa in Norwegian waters
Norway has the highest known density of Lophelia pertusa reefs in the world, mapped at depths between 39 and 400 metres. The estimated spatial coverage of Norwegian Lophelia reefs is 2,000 km², a greater coverage than some countries with well known tropical reefs such as Belize, Mozambique or Seychelles. Some of these reefs have been estimated at over 8,000 years old based on geophysical, visual, geochemical, radiocarbon and other analyses. The first Lophelia reef ever photographed under water (left) in Norway was off the coast of northern Norway at 120 m water depth, in 1982, during pipeline route surveys conducted by the petroleum company Statoil. Subsequently, they were found also on the continental shelf off Mid-Norway in 1985 and onwards.
Here, acoustic surveys revealed large mounds, which were 10 to 25 m in height. It wasn't until 1990 that the research team was able to inspect these mounds using a remotely operated vehicle - the first use of an ROV to record Lophelia reefs using colour video. Innovations also included specially designed buckets (left) to collect samples of Lophelia from the sea-floor some 280 - 300 metres down. From that point onwards research into the Norwegian Lophelia reefs has been intensive, with several hundred reefs discovered to date.
The authors thank Dr. Martin Hovland (Statoil) for contributing the amazing videos and imagery of Norwegian Lophelia reefs.


Translate this site using Windows Live Translator:
VSIP: Exposing Properties and Stuff - A CRM Riff - Site Home - MSDN Blogs
A CRM Riff
It takes people to make the music of life
VSIP: Exposing Properties and Stuff
VSIP: Exposing Properties and Stuff
 - Comments 4
This walkthrough guides you through the steps of exposing the public properties of any object to the Property Browser. Tools windows and document windows expose properties this way. The changes you make to properties through these windows can be reflected in the Property Browser.
· Exposing Properties to the Property Browser
· Exposing Tool Window Properties
· Changing Selection Lists
Exposing Properties to the Property Browser
In this section, you create a simple tool window package and display the public properties of the associated window pane object in the Property Browser.

To expose properties to the Property Browser
1. Create a new Visual Studio Integration Package project named, for example, MyObjectProps. For more information on creating a managed VSPackage, see the How to: Create a VSPackage Using the Visual Studio Integration Package Wizard topic in the VSIP 2005 beta 2 documentation.
The Package Wizard runs.
2. In the Select a Programming Language page, select Visual C#.
3. In the Select VSPackage Options page, select Tool Window.
4. In the Tool Window Options page, change the Window Name to "My Object Properties". Click Finish.
The wizard creates the managed project MyObjectProps and the unmanaged resource-only project MyObjectPropsUI.
5. Open the file MyObjectProps/My Object Properties.cs and add this code to the end of the MyToolWindow class, just after the Dispose method:
 base.Dispose( disposing );
}
private ITrackSelection trackSel;
private ITrackSelection TrackSelection {
 get {
 if (trackSel == null)
 trackSel =
 GetService(typeof(STrackSelection)) as ITrackSelection;
 return trackSel;
 }
}
private SelectionContainer selContainer;
public void UpdateSelection() {
 ITrackSelection track = TrackSelection;
 if (track != null)
 track.OnSelectChange((ISelectionContainer)selContainer);
}
public void SelectList(ArrayList list) {
 selContainer = new SelectionContainer(true, false);
 selContainer.SelectableObjects = list;
 selContainer.SelectedObjects = list;
 UpdateSelection();
}
public override void OnToolWindowCreated() {
 ArrayList listObjects = new ArrayList();
 listObjects.Add(this);
 SelectList(listObjects);
}
The TrackSelection property uses GetService to obtain an STrackSelection service, which provides an ITrackSelection interface. The OnToolWindowCreated event handler and SelectList method together create a list of selected objects containing only the tool window pane object itself. The UpdateSelection method tells the Property Browser to display the public properties of the tool window pane.
6. Build and launch the project in debug mode by pressing the keyboard shortcut, F5. This launches Visual Studio Exp.
Note Both versions of Visual Studio are open at this time.
7. From Visual Studio Exp, select the View/Other Windows menu item. Select the My Object Properties window.
The window opens and the public properties of the window pane appear in the Property Browser.
8. Click in the Solution Explorer. The window pane properties disappear. Click in the My Object Properties window. The properties reappear.
9. Change the Caption property in the Property Browser to Something Else. The My Object Properties window caption changes accordingly.

Exposing Tool Window Properties
In this section, you add a tool window and expose its properties. The changes you make to properties are reflected in the Property Browser.

To expose tool window properties
1. Close Visual Studio Exp.
2. Open the file MyObjectProps/My Object Properties.cs and add the public boolean property IsChecked to the end of the MyToolWindow class, just after the OnToolWindowCreated method
 SelectList(listObjects);
}
private bool isChecked = false;

[Category("My Properties")]
[Description("MyControl properties")]
public bool IsChecked {
 get { return isChecked; }
 set {
 isChecked = value;
 control.checkBox1.Checked = value;
 }
}
3. In the MyToolWindow constructor, add a this pointer to the MyControl construction:
control = new MyControl(this);
4. Open the file MyControl.cs in code view. Replace the constructor with the following code:
private MyToolWindow pane;
public MyControl(MyToolWindow pane)
{
 InitializeComponent();
 this.pane = pane;
}
This gives MyControl access to the MyToolWindow object.
5. Change to design view.
6. Select the button and remove the anchors from the Anchor property. Shrink the button to a reasonable size in the lower left corner of the window. Drag a checkbox from the Toolbox to the upper left corner.
7. Double-click the checkbox.
This creates the checkBox1_CheckedChanged event handler and opens it in the code editor.
8. Replace the checkbox event handler with the following code:
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
 pane.IsChecked = checkBox1.Checked;
 pane.UpdateSelection();
}
9. Make checkBox1 public:
public CheckBox checkBox1;
10. Add this line to the MyControl constructor:
InitializeComponent();
this.pane = pane;
checkBox1.Checked = pane.IsChecked;
11. Build and launch the project in debug mode by pressing the keyboard shortcut, F5. This launches Visual Studio Exp.
12. From Visual Studio Exp, select the View/Other Windows menu item. Select the My Object Properties window.
The window opens and the public properties of the window pane appear in the Property Browser. The IsChecked property appears under the category My Properties.
13. Select the IsChecked property. The description MyControl Properties appears.
14. Click on the checkbox in the My Object Properties window. IsChecked changes to True. Click it again to uncheck it. IsChecked changes to False. Change the value of IsChecked in the Property Browser. The checkbox in My Object Properties window changes to match the new value.
Note If you need to dispose of a property or object displayed in the Property Browser, call OnSelectChange with a null selection container first. After disposing the property or object, you can change to a selection container with updated SelectableObjects and SelectedObjects lists.

Changing Selection Lists
In this section, you add a selection list for a simple property class and use the tool window interface to choose which selection list to display.

To change selection lists
1. Close Visual Studio Exp.
2. Open the file MyObjectProps/My Object Properties.cs and add the public class Simple to the beginning of the file, just after the namespace statement:
namespace Vsip.MyObjectProps2
{
 public class Simple {
 private string someText = "";

 [Category("My Properties")]
 [Description("Simple Properties")]
 [DisplayName("MyText")]
 public string SomeText {
 get { return someText; }
 set { someText = value; }
 }
 [Category("My Properties")]
 [Description("Read-only property")]
 public string ReadOnly
 {
 get { return "Hello"; }
 }

 }
An object of type Simple has the single public string property SomeText.
3. Add this code to the end of the MyToolWindow class, just after the IsChecked property:
 set { isChecked = value; }
}
private Simple simpleObject = null;
public Simple SimpleObject {
 get {
 if (simpleObject == null) simpleObject = new Simple();
 return simpleObject;
 }
}
public void SelectSimpleList() {
 ArrayList listObjects = new ArrayList();
 listObjects.Add(SimpleObject);
 SelectList(listObjects);
}

public void SelectThisList() {
 ArrayList listObjects = new ArrayList();
 listObjects.Add(this);
 SelectList(listObjects);
}
This creates the singleton property SimpleObject and two methods to switch the Property Browser selection between the window pane and the Simple object.
27. Open the MyControl.cs file in code view. Add these lines of code to the end of the checkbox event handler:
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
 pane.IsChecked = checkBox1.Checked;
 if (pane.IsChecked)
 pane.SelectSimpleList();
 else pane.SelectThisList();
}
4. Build and launch the project in debug mode by pressing the


What Is a Lotus Birth?
What Is a Lotus Birth?
Last update: 02 July, 2018
A lotus birth is a practice that sees birth in a particular way. In a lotus birth, the placenta is left attached to the baby through the umbilical cord until it's naturally detached. This process usually lasts between 3 to 10 days after delivery.
Gradual transition
In the vast majority of natural births, the umbilical cord is artificially cut after birth, and thus the baby's union with its placenta comes to an end. This is a task carried out by the doctors or midwife.
A lotus birth allows this separation to occur gradually. That is, the baby continues to be attached to its natural source of nutrients, the placenta, until nature dictates otherwise.
Normally, the umbilical cord falls off between 3 and 10 days after delivery. In that moment, the child separates from the connection that has kept him together with his mother for nine months of gestation.
A birth planned according to this practice doesn't involve any outside intervention to remove the umbilical cord. The stages that comprise a lotus birth are as follows:
 - The child leaves the mother's womb.
 - Later, the mother expels the placenta, which usually happens about 30 minutes later.
 - At this time, the umbilical cord isn't cut, but the baby is held along with the placenta until the umbilical cord detaches naturally.
What Is a Lotus Birth?
Origin of the lotus birth
The lotus birth owes its name to its originator, Clair Lotus Day. In 1974, this researcher from California questioned everything related to the cutting of the umbilical cord, and even studied the work of primatologist Jane Goodall.
This researcher's investigation and her concern for the method of cutting the umbilical cord led her to give birth following this new practice. Since then, many births have been carried out in this way, which has generated various controversies.
Varied opinions: natural method or risky?
There are conflicting opinions regarding this way of giving birth.
On the one hand, the traditional view considers this practice to be a risk factor for the baby. Fundamentally, it's seen as a source of infections if care isn't taken regarding preservation of the placenta.
On the other hand, it appeals to those who want to prioritize a natural process. Emphasis is placed on the advantages associated with the provision of nutrients to the baby and a less drastic separation of its main source of life during pregnancy.
Benefits of lotus births
The placenta is the baby's main source of nutrients. It's an organ that pumps 500-700 ml of blood into the uterus every minute. In this way, it provides oxygen to the baby, as well as hormones.
It's also responsible for discarding harmful substances through the mother's bloodstream. The mother's system then filters the blood through her kidneys.
After birth, the placenta continues to provide nutrients through the umbilical cord.
Those who defend the lotus birth consider it a gradual way of helping the child adapt to new conditions, and that the contribution of nutrients that is received outside of the womb is essential for the baby's growth, development and health.
The process requires specific care that should be known in order to avoid infections and other more serious problems:
 1. After birth and delivery, including the expulsion of the placenta, the placenta must be washed with warm water. This way, any remaining blood will be removed.
 2. Let it drain and dry with a paper towel. Salt is usually added to accelerate the drying process.
 3. Then the placenta is wrapped or put in an open silk bag and placed next to the baby.
What Is a Lotus Birth?
A comprehensive look
The conception that circulates around the lotus birth is a vision of medicine, nature and the human being. According to scholars of the subject, it's a process that challenges many medical myths that we've grown accustomed to.
When considering the fact that the placenta is an integral part of the baby, the natural attitude is to let the process develop according to its organic phases.
The truth is that it entails a different way of looking at birth and like all medical procedures, it's recommended that you consult with your doctor before any decisions are made.


Analysis of the importance and function of medical equipment screen
With the continuous advancement of technology, medical device screens play a vital role in the modern medical field. They are not only the core components of medical equipment, but also provide information, display data, and assist in diagnosis and treatment. The importance and role of medical device screens will be analyzed below.
In the medical process, the screen of the medical equipment plays an important role and plays a key information transmission function. Doctors can instantly obtain important information such as vital signs and disease data of patients through the screen, so as to help them make accurate diagnosis and treatment decisions. At the same time, the screen can also display relevant information such as the working status and operation guide of the medical equipment for reference by medical staff to ensure the safe operation of the medical equipment.
Medical equipment screen
The screens of medical equipment play an important role in assisting diagnosis and treatment. Through the images, curves and data on the screen, doctors can observe and analyze the patient's condition, helping them quickly and accurately identify the type and severity of the disease. During the operation, the images on the screen can assist the doctor to perform precise operations and improve the success rate and safety of the operation. In addition, the screen of the medical equipment can also display information such as the method of use and dosage of the drug, helping medical staff to use the drug correctly and avoid medication errors.
The monitoring function of the medical device screen can provide patient monitoring. For example, the screen of the ECG monitor can display the patient's ECG in real time, and send an alarm to remind the medical staff when an abnormal situation occurs. In this way, the doctor can take measures in time to protect the life safety of the patient.
The screen of medical equipment can not only display the operating status and fault information of the equipment, but also can be operated and controlled. Medical staff can easily adjust the parameters and modes of medical equipment through menus, buttons and other operation interfaces to achieve personalized treatment plans. In addition, the screen can also help maintenance personnel find and solve problems in time to ensure the normal operation of the equipment.
In modern medicine, medical device screens play a crucial role. They are not only the main medium of information transmission, but also assist in diagnosis and treatment, provide patient monitoring and equipment operation and other functions. Therefore, the quality and performance of medical device screens are critical to the safety and effectiveness of medical procedures. In the future, with the continuous development of science and technology, medical equipment screens will become more intelligent and high-definition, bringing more convenience and innovation to the medical industry.
Online Message
Message Prompt
Close


Dr William Budd: Bristol's most famous physician
Most people walk past the plaque on 89 Park Street, Bristol without giving a second thought to the man it commemorates. And yet Dr William Budd, who was a true pioneer and was to become Bristol's most distinguished physician, made an immense contribution to medicine and to the life of the city. Born in Devon, he moved to Bristol in 1841, working at St Peter's Hospital and the Infirmary where he cared for patients during typhoid and cholera epidemics, for which there was no cure. He was able to identify how these deadly diseases spread, seeing at first hand the insanitary hovels of Lewins Mead and elsewhere in the city, and realising the need for preventive measures. An early director of the Bristol Waterworks Company, William Budd was the moving force behind ensuring a clean water supply, one of the first essentials in combating water-born disease. Several major epidemics of infection diseases swept through nineteenth-century Britain, killing indiscriminately and showing no respect for age or social class. For years Budd fought to change misguided orthodoxies in the medical professional which denied the contagious nature of these killer diseases. When the 1866 cholera epidemic reached Bristol, much reduced death figures showed that he had largely won the grim fight to improve the nation's health.
ISBN 1 904537 48 0
230 x 155mm
176pp / Hardback


text:
The Organization as a Prototype
Keywords:prototypes, ways of working, emerging technologies, organizational design, generative prototyping
Some of the most valuable companies in the world accumulated their fortunes as a result of a business model innovation built upon matured technologies. Now the majority of them are investing and shifting their focus to the development of new technologies such as AI, blockchain and genetic editing. If an organization is to remain profitable, it needs to be able to quickly adjust its structure to the rapidly changing context. We contend that a way to do so is to build an organizational structure that is conductive to both generative and evaluative prototypes. We report on our action research with a leading European airline following the transformation of a team of four into a new department, through the lenses of continuous prototyping. We then propose an initial framework that conceptualises organizational prototypes and provides a rational and systematic way of approaching the devising of such. Finally, we outline several directions for further research.


HyunWook Park
I have 'a' stomachache or I have stomachache? Is 'a' necessary before stomachache or headache? If yes, why is it necessary? stomachache is not countable, is it? Thanks a lot for your help in advance! Hyunwook
Jul 3, 2015 8:37 PM
Answers · 7
it is necessary to use the article -- "stomachache" is countable in English. Note that, for medical reasons, it's only possible to have one stomach ache at a time for one person.
July 3, 2015
It isn't strictly necessary. You can say it with or without the 'a'.
July 3, 2015
Stomachache, like headache, is a countable noun in American English. In American English we almost always use a determiner (article, demonstrative pronoun, possessive pronoun) before count nouns such as these two words. And also before 'upset stomach', which is also commonly used. There is also 'bellyache', but this is informal. In fact, 'bellyache' can be used as a verb, meaning 'to complain.' This is also informal. In British English, it is spelled'stomach ache' and is a mass noun.
July 4, 2015
Still haven't found your answers?
Write down your questions and let the native speakers help you!
HyunWook Park
Language Skills
Japanese, Korean
Learning Language


docs.intersystems.com
Home / Application Development: Analytics Options / Using InterSystems MDX / Working with Dimensions and Hierarchies
Using InterSystems MDX
Working with Dimensions and Hierarchies
[Back] [Next]
InterSystems: The power behind what matters
Search:
This chapter discusses hierarchies and dimensions. These elements are containers for levels but also have their own purposes. This chapter discusses the following topics:
Also see Accessing the Samples Shown in This Book," in the first chapter.
Introduction to Dimensions and Hierarchies
Most MDX functions refer directly to levels or to their members. In MDX, however, levels belong to hierarchies, which belong to dimensions. Hierarchies and dimensions provide additional features beyond those provided by levels.
Hierarchies are a natural and convenient way to organize data, particularly in space and time. For example, you can group cities into countries, and countries into regions. In such cases, it is useful to be able to query for the child cities of a given country, or to query for the parent postal region for a given country. A cube defines the hierarchies among the levels, and MDX provides functions that enable you to work with the hierarchy, so that you can write such queries.
In MDX, a dimension contains one or more hierarchies that specify how to categorize the records in a similar manner. There is no formal relationship between two different hierarchies or between the levels of one hierarchy and the levels of another hierarchy. The purpose of a dimension is to define the default behavior of its hierarchies and levels.
The Measures Dimension
All measures belong to a special dimension called Measures. This dimension implicitly includes a single hierarchy that has no name. This hierarchy does not include levels. The members of this hierarchy are the measures.
The All Level
Other than the Measures dimension, each dimension can also define a special, optional level, which appears in all the hierarchies of that level: the All level. If defined, this level contains one member, the All member, which corresponds to all records in the cube.
For a given dimension, the actual name of the All member depends upon the cube definition. For example, All Patients is the All member for the AgeD dimension in the sample.
Example
If we use the cube command in the MDX shell, we see the following elements in the demomdx cube:
Elements of cube 'demomdx':
-----------------------------------------
...
Dimensions
...
 HomeD
 H1
 ZIP
 City
...
The HomeD dimension contains one hierarchy (H1), which contains two levels:
In a given hierarchy, a level is the parent of the level that is listed after it. This means, for example, that ZIP is the parent of City. More specifically, each member of ZIP is the parent of one or more members of City. That is, it is shorthand to say that one level is the parent of another level; the actual relationship is between members, not between levels. This shorthand is in common use, because it is convenient, even though it is not precise.
The following figure shows the relationships among the members of the HomeD.H1 hierarchy:
The distinguishing feature of a hierarchy is that any given child element is unique to its parent. This example is artificial because in reality there is a many-to-many relationship between ZIP codes and cities.
Accessing the Members of a Hierarchy
To access the members of a hierarchy (that is, all the members of all its levels), you use the MEMBERS function. In this case, the syntax is as follows:
[dimension_name].[hierarchy_name].MEMBERS
In InterSystems MDX, if you omit the hierarchy name, the system assumes that you are referring to the first visible hierarchy in the given dimension.
For example, in the DemoMDX cube, the homed dimension has only one hierarchy. The following query shows the members of that hierarchy:
SELECT MEASURES.[%COUNT] ON 0, homed.MEMBERS ON 1 FROM demomdx

 %COUNT
 1 32006 215
 2 Juniper 122
 3 Spruce 93
 4 32007 111
 5 Redwood 111
 6 34577 347
 7 Cypress 112
 8 Magnolia 114
 9 Pine 121
10 36711 99
11 Centerville 99
12 38928 228
13 Cedar Falls 110
14 Elm Heights 118
When you use the MEMBERS function with a hierarchy, it returns the set of members in hierarchical order. The first member is the All member, if present. After that, each member is one of the following:
For another example, the following query shows all the measures (apart from %COUNT):
SELECT gend.gender.MEMBERS ON 0, MEASURES.MEMBERS ON 1 FROM demomdx
 Female Male
1 Age 18,413 17,491
2 Avg Age 37.73 34.16
3 Allergy Count 326 332
4 Avg Allergy Count 1.08 1.07
5 Test Score 29,542 31,108
6 Avg Test Score 73.49 74.42
Using Parent-Child Relationships
The system provides the following MDX functions that directly use parent-child relationships:
Accessing Siblings
The system provides the following MDX functions that access siblings of a member:
Accessing Cousins
The COUSIN function enables you to access a cousin, given a member at a higher level.
For example, the following query finds the cousin of Q1 1943, within the year 1990:
SELECT MEASURES.[%COUNT] ON 0, COUSIN(birthd.[Q1 1943],birthd.1990) ON1 FROM demomdx

 %COUNT
Q1 1990 5
To determine relative positions, the system uses the default order of the members within the level, as determined by the cube definition.
Accessing Descendant Members
You can use the DESCENDANTS function to obtain descendents of a given member, within one or more lower levels. For example, the following query gets all the descendents of the year 1990, within the [BirthD].[H1].[Period] level:
SELECT DESCENDANTS(birthd.1990,birthd.period) ON 1 FROM demomdx

 1 Jan-1990 *
 2 Feb-1990 2
 3 Mar-1990 1
 4 Apr-1990 1
 5 May-1990 1
 6 Jun-1990 *
 7 Jul-1990 2
 8 Aug-1990 2
 9 Sep-1990 1
10 Oct-1990 3
11 Nov-1990 1
12 Dec-1990 *
The DESCENDANTS function provides many options for accessing descendents within different parts of the hierarchy, but the preceding usage is the most common scenario.
Accessing the Current Member within an Iteration
In a typical query, you iterate through a set of members, perhaps displaying each as a row. Sometimes you want to do something specific with each member in turn. To do so, you use the CURRENTMEMBER function, which accesses the member used in the current context.
For example, consider the following query:
SELECT MEASURES.[%COUNT] ON 0, homed.city.MEMBERS ON 1 FROM demomdx

 %COUNT
1 Cedar Falls 110
2 Centerville 99
3 Cypress 112
4 Elm Heights 118
5 Juniper 122
6 Magnolia 114
7 Pine 121
8 Redwood 111
9 Spruce 93
This query has one row for each city. The data shown is the %COUNT measure. Suppose that instead we would like to show the city's population, which we access via the PROPERTIES function. This function requires a reference to the member used in the row; for that, we use the CURRENTMEMBER function, which we can call as follows:
[dimension_name].[hierarchy_name].CURRENTMEMBER
With this function, we can create the following variation of our query:
SELECT homed.h1.CURRENTMEMBER.PROPERTIES("Population") ON 0, homed.city.MEMBERS ON 1 FROM demomdx

 H1
1 Cedar Falls 90,000
2 Centerville 49,000
3 Cypress 3,000
4 Elm Heights 33,194
5 Juniper 10,333
6 Magnolia 4,503
7 Pine 15,060
8 Redwood 29,192
9 Spruce 5,900
For another example, the following query shows the internal keys for the members of Doctor:
SELECT docd.h1.CURRENTMEMBER.PROPERTIES("KEY") ON 0, docd.[doctor].MEMBERS ON 1 FROM demomdx

 KEY
 1 None <null>
 2 Ahmed, Thelma 34
 3 Alton, Chad 35
 4 Black, Ashley 4
..


text:
The revolutionary AquaC protein skimmers do not use venturis, downdraft tubes, or air pumps; they employ the patented "Spray Injection System." This innovation allows the protein skimmer to efficiently draw in much more air than any other of the top protein skimmers. This coupled with the superiorly designed compact reaction chamber yields results that will literally blow the waste out of your water.How does Spray Injection Work?
In 1998, Jason Kim (owner and founder of AquaC) developed a patented process of protein skimming which has come to be known as Spray Injection. Unlike previous forms of skimming, our spray injection method enables huge amounts of air and water to be processed with a relatively small pump. Although it is a simple process, there is still some confusion as to how the spray injector works.
Imagine that you're washing your car – you've got a bucket full of soapy water and a garden hose with a fast-moving stream of water. By placing your thumb over the end of the hose, you can disrupt the stream into a turbulent, high –pressure spray. Now direct that spray down into the bucket of water, and you'll generate a massive amount of bubbles and air flow. That is exactly how our spray injector works.
The skimmer body acts as a water reservoir – the bucket in the example above. Water is pumped through the spray injector, which has a special nozzle that fans the water out into a pressurized spray. This spray shoots into the skimmer body, generating millions of tiny air bubbles. As the bubbles are formed, more air is sucked into the skimmer as a result of the local drop in pressure and the process continues.
Most other forms of protein skimming rely on special valves or media to generate the air flow, and these parts quickly become clogged with salt, dust, or even mineral deposits. The AquaC spray injector is a relatively large nozzle that resists clogging, and when combined with a pump prefilter, can be considered maintenance free.
The redesigned and improved EV Series skimmers raise AquaC's spray injection skimming (U.S. Patent # 6,156,209, #6,436,295) to a new level in terms of efficiency, performance, and value. A new baffling system combined with a significantly larger mixing box results in far less turbulence and increased contact time. The net effect is a dramatic increase in skimmer performance despite a drop in pump pressure requirements. AquaC's molded spray injector now generates a significantly larger number of microbubbles, boosting overall performance to unbelievable levels considering such low pump pressure requirements.Features:
- Flexible design for in-sump or external applications.
- The new EV Series skimmers are designed to run in sumps WITHOUT BEING RAISED. The output gate valve has been increased to a height of 10" (EV-120/180 models), which means that as long as your sump level is 9" or lower you will not need to worry about fluctuations having an impact on skimming consistency. The powerful EV-120 can sit in water as deep as 9".
- The addition of a precision ball valve for airflow control allows the aquarist to fine tune the skimmer's output. Unlike most other high performance skimmers in this class, the EV is remarkably silent. The spray injection system does not generate the sucking noises typical of venturi and Beckett units.
- The John Guest "Speedfit" fitting is a great feature you will only find on AquaC ozone-equipped skimmers. This fitting is standard on models EV-240 and above, and can be ordered on the EV-120/180. Aquarists may also connect their calcium reactor effluent line to the skimmer's speedfit connection. The pH of a calcium reactor effluent typically falls between 6.5-6.9, and over time the addition of this low pH effluent can have a deleterious effect on the system's pH level. By dosing your effluent directly into the skimmer, excess CO2 will be "blown off" into the atmosphere and the tank pH will remain unaffected.
- The improved "Twist-Lock" collection cup and cap makes for a secure, flanged connection without the need for set screws or other locking type unions. Simply twist to crack the seal (EPDM gaskets) and removal requires a scant ¼" clearance. The new EV Series skimmers can be operated with AquaC's auto-waste container, which are available in 2.5 and 5 liter sizes.
- Increased contact time = more protein removal. The size of the mixing box has been increased on all models by approximately 40%. To accommodate the extra foam the skimmers now feature taller and wider reaction towers, as well.
- Height: 20"
- Recommend Pumps: Mag Drive 7 or Rio 3100
- Footprint: 5.75" x 9"
- Foam Tower: 5" OD
- Tank Size: 75-180 Gallons
- JG Fitting: Optional 1/4" JG fitting
- Bubble Size:.03–.05mm
- Water flow-thru rate: 275gph
- Volume of foam produced: 135cu.in.
- 3/4" hose barb water input
- 1" gate valve output
- 5/8" collection cup drain
- 3/8" threaded air inlet
- Gate valve exit is 8" high
|EV 120/180 Skimmer
||EV 240 Skimmer|
AquaC Protein Skimmers in Use
|This is one reef aquariums where the AquaC prototypes are tested on.|
At the time of the picture, this aquarium had been running with an AquaC EV90. Note that this aquarium is fairly heavily stocked. After this picture was taken, quite a bit more livestock has been added to this aquarium. Currently, an AquaC EV150 is running on this well-overstocked tank. AquaC feels that this the EV150 is probably not neccessary for the tank, but they feed their tank quite aggressively to keep all the fishes that has been added healthy and wanted to keep maintenance at a minimum. According to AquaC, maintenance on this aquarium has been extremely low.
The AquaC EV-150 protein skimmer working on our aquairum:
Please note the dry consistency and quantity of the foam being collected by the AquaC protein skimmer. This drain cup is being filled on a daily basis. There is a convenient collection cup drain connector that allows you to drain the the waste collected in collection cup into a waste container.
This particular model stands only 20" tall, so it is extremely easy to place this skimmer underneath most aquarium stands. Even the model EV200 fits very easily under most aquarium stands.
The AquaC EV skimmer working in one of our customer's tank:


In a German newspaper article an interviewed professor says:
For a long time the Japanese didn't have any interest in clocks: Until 1871, there hadn't even been a word for time and therefore no time measurement.
(Original text:)
Auch die Japaner hatten lange kein Interesse an der Uhr: Bis 1871 hatten sie nicht mal ein Wort für die Zeit und daher auch keine Zeitmessung.
(Text available in German here.)
Is it true that there was no word for time before the Meiji Restoration? Which word is he referring to? 時間 or the kanji 時?
 - 8
 - 5
 What actually happened at the end of 1871 is the switch to the western (Gregorian) calendar system. Before that, traditional time & calendar system was widely used. – naruto Jan 9 '17 at 5:15
 - Out of curiosity: Could you add the exact source? – Torsten Schoeneberg Jan 11 '17 at 5:23
 - 2
 _USER_ Yes, of course: It was in the Dossier part of "Die Zeit", issued 2017-01-05. The article is a long interview with Prof. Karlheinz Geißler. It couldn't find that article online, though. – elzell Jan 11 '17 at 7:17
The word 時{とき} is probably the oldest native Japanese word for "time". This term appears in the 万葉集{まんようしゅう} written in Old Japanese and compiled from poems composed from the 300s through the 700s, completed some time after 759 CE. These are some of the oldest surviving examples of written Japanese, suggesting that this term is quite ancient indeed. Consequently, claiming that ancient Japanese had no word for "time" is patently wrong.
The Japanese language also has the Chinese-derived on'yomi term 時刻{じこく}, also used to refer more specifically to the concept of "hour", as in "a specific length of time in a day". This term appears in the 平家{へいけ}物語{ものがたり} dating to the 1100s. Even prior to that, we know that the Ritsuryō legal system in place from the mid 600s through the Nara period ending 794 made use of water clocks to track the passage of time during a day: definite evidence of the Zeitmessung ("time measurement") that Professor Geißler mentions. In the traditional reckoning, each day consisted of 12 hours: 6 of day, and 6 of night. This meant that the length of a daylight hour and of a nighttime hour changed over the course of the year, with the shift of the seasons. Consequently, an argument could be made that the traditional Japanese hour required a greater awareness of time than the western hour -- timekeepers would need to be much more intimately in tune with time day-by-day in order to evenly distribute the number of hours in a day and night.
Even the western definition of "hour" has been known to some extent in Japan since the 1500s, when westerners brought their own clocks as gifts. So here too, Professor Geißler's claim falls through.
The term 時間{じかん} itself, though apparently extant earlier, does seem to have been repurposed in 1881 as a specific translation of the western term "time" in reference to philosophy. The Daijirin entry here explains:
〔明治初期には英語 time は「時・時刻」と訳され、「哲学字彙」（1881年）に訳語として「時間」と載る〕
 (The English term "time" was translated as 時{とき} or 時刻{じこく} at the start of the Meiji period [beginning 1868; here, likely including the 1870s], with the term 時間{じかん} appearing as a translation term in Tetsugaku Jii (1881) ["Philosophical Dictionary", compiled by Inoue Tetsujirō])
Notably, most (maybe all?) such "translation terms" were existing words in Japanese that were repurposed to express more western concepts, such as 社会{しゃかい} "society", or 自由{じゆう} "freedom, liberty".
Key points:
 - The concept of "time" clearly existed even in ancient Japanese culture.
 - The concept of "hour" as a specific span of time has also existed, for essentially the entirety of recorded Japanese history. Granted, that definition might have differed from the modern western concept, but it was a specific idea of "time measurement".
 - The main shifts related to "time" in the Meiji period were:
 1. widespread translation of western materials in an urgent and strategic push to catch up technologically, leading to the rejiggering of various cultural ideas, including "time", and
 2. the promulgation of the Gregorian calendar and western-style 24-hour day, as opposed to the traditional 12-hour day, with six hours of day and six hours of night.
You had specifically asked:
Is it true that there was no word for time before the Meiji restauration?
No, that is not true.
What word is he [Professor Geißler] referring to? 時間 or the kanji 時?
Professor Geißler is far enough off-base that I don't think he's referring to any specific term -- I suspect he doesn't know enough about Japanese history or the language for either term to be immediately relevant to his statement.
Professor Geißler clearly got the wrong end of the stick. I note that he is apparently a Professor of Wirtschaftspädagogik, or "economics pedagogy", with no apparent work in Japanese history, culture, or language. In his defense, it is easy to misapprehend things outside of one's field of expertise.
I think the word [時間]{じかん} was created in the Meiji era, but the word [時]{とき} is older. So it's definitely wrong that "the Japanese didn't have any interest in clocks (until 1871)".
I searched in an old-Japanese dictionary and found the usage of 「とき」 in 竹取物語:
Here, the word [子]{ね}のとき refers to a certain time which is around midnight.
竹取物語 was written more than 1000 years ago. So the word 「とき」 is at least 1000 years old.
The installation of the Gregorian calendar was on 1872.
It doesn't mean Japanese didn't have a concept of time, they used a lunar calendar (different one from Chinese).
They had a Japanese clock which divides a day in six and a night in six.
Your Answer


text:
What principles of succession were used to choose a Roman Emperor? These areas are emphasized.© BrainMass Inc. brainmass.com December 24, 2021, 5:55 pm ad1c9bdddf
When answering this question, it is important to remember that the Roman emperors were not all chosen in the same way.
Most historians agree that the first Roman emperor was Augustus Caesar (Octavian). He came to power along with Marc Antony and Marcus Lepidus, as part of the 2nd Triumvirate, after the murder of his great-uncle, Julius Caesar. Technically, Julius Caesar was not an emperor, but he had held tremendous governmental, military, and economic power. These advantages passed primarily to Octavian (due to inheritance) and Marc Antony (due to his position as Julius Caesar's second in command). Once he had defeated Marc Antony in a civl war, Octavian claimed ultimate power, essentially establishing himself as Augustus Caesar, the first emperor of Rome.
The first several successors to Augustus (the Julio-Claudian Dynasty) became Emperor in different ways, although each was technically related to the previous emperor. Augustus tried to establish a tradition wherein the emperor chose his successor. In his case, he chose his step-son ...
Roman Succession resources are listed.


Advanced Search
Browse by Discipline
Scientific Societies
E-print Alerts
Add E-prints
E-print Network
 Advanced Search
ENES489P Pendulum Clock Model 02/22/2010 SysML Parametrics
Summary: ENES489P Pendulum Clock Model 02/22/2010
SysML Parametrics
Read and understand the Addition and Satellite examples from the Paramagic tutorial that has been posted on the class
website. Reproducing parts of it by yourself using the MagicDraw tool will be of great benefit. You will also find the
Paramagic User Guide online.
In this lab, you will be using MagicDraw to determine if a set of requirements can be achieved for a simple system.
In this week's lab, you will be using Matlab as the solver and it will be up to you how to structure the requirements
diagrams, the block diagrams, the parametric diagrams and the instance diagram using the tutorial as a guideline.
Problem Statement
The customer wishes to use a pendulum clock to keep track of time. His requirement is that the clock loses no more
than a second every hour.
Requirement: The clock loses no more than one second every hour. 1
Refer to the Modeling assignment on pendulums for a description of the formulas.
Matlab Pendulum Model
The pendulum will be modeled in Matlab and will have two input parameters, the length and the angle, and one output
parameter, the period. Instructions or creating the model are given below.
This will be how the pendulum is modeled in Matlab. Create an mfile called "pendulum.m" with the following
f u n c t i o n xdot = pendulum ( len, t, x )
xdot = [ x ( 2 ) ; -9.81 s i n ( x ( 1 ) ) / len ] ;
Collections: Engineering


1} [boolean_algebra α] (a b c : α) :
a Δ (b Δ c) = a b c a b c a b c a b c
theorem disjoint.disjoint_symm_diff_of_disjoint {α : Type u_1} [boolean_algebra α] {a b c : α} (h1 : disjoint a c) (h2 : disjoint b c) :
disjoint (a Δ b) c


text:
Executive: Chuang-lin Fang
This project takes the Hexi Corridor in the arid area of northwest China as a case and the water resources restriction as the precondition, aiming at the coupling mechanism of the urbanization process and the eco-environment change process which follows the laws of human and nature respectively. As the basic research on the threat mechanism between them is weak, this project takes it as an important task. By the system integration method and the RS & GIS technology, the forcing factors of the threat between the water resources change process and the urbanization process were decided. The threat mechanism and laws which the water resources change gives the urbanization process were found out. The ecological effects which are caused by the urbanization process and are related to water resources were analyzed. Based on the above, the urbanization processes restricted by different water resources constraint intensity were dynamically simulated, and the ecological costs of different urbanization mode were forecasted. This can be taken as the scientific decision base which gives directions to the choice of urbanization mode and the construction of urban system in arid area. Therefore, this project has an important theoretic meaning to choose the urban development mode, accelerate the urbanization process, improve the eco-environment, and realize the comparatively well-off living standard in the arid area of northwest China.


How To Connect Multiple Database In Laravel 9
In this article, we will see how to connect multiple databases in laravel 9 and laravel 10. we will learn how to use multiple database connections in laravel 9/10. Also, we will see laravel 9 multiple database connections with creating migration, model, and query examples.
Many times we have requirements in our project to use multiple database connections like MySQL, MongoDB, PostgreSQL, etc in laravel 9. When you work with large projects then you will need to manage multiple database connections. So, we will see one or more database connections in a single laravel 9 application.
So, let's see laravel 9 multiple database connections and how to connect databases in laravel 8/9/10.
Set .env Variable For Laravel 9 Multiple Database Connections
Set both database configurations in a .env file like the below code.
// Database 1
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=database_1
DB_USERNAME=root
DB_PASSWORD=
// Database 2
DB_CONNECTION_SECOND=mysql
DB_HOST_SECOND=127.0.0.1
DB_PORT_SECOND=3306
DB_DATABASE_SECOND=database_2
DB_USERNAME_SECOND=root
DB_PASSWORD_SECOND=

Use .env Variable:
Now, as we created a variable in the .env file we need to use that variable on the config file. So let's open the database.php file and add a new connections key as below.
config/database.php
<?php
use Illuminate\Support\Str;
return [
 'default' => env('DB_CONNECTION', 'mysql'),
 'connections' => [
 .....
 'mysql' => [
 'driver' => 'mysql',
 'url' => env('DATABASE_URL'),
 'host' => env('DB_HOST', '127.0.0.1'),
 'port' => env('DB_PORT', '3306'),
 'database' => env('DB_DATABASE', 'forge'),
 'username' => env('DB_USERNAME', 'root'),
 'password' => env('DB_PASSWORD', ''),
 'unix_socket' => env('DB_SOCKET', ''),
 'charset' => 'utf8mb4',
 'collation' => 'utf8mb4_unicode_ci',
 'prefix' => '',
 'prefix_indexes' => true,
 'strict' => true,
 'engine' => null,
 'options' => extension_loaded('pdo_mysql') ? array_filter([
 PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
 ]) : [],
 ],
 'mysql2' => [
 'driver' => env('DB_CONNECTION_SECOND'),
 'host' => env('DB_HOST_SECOND', '127.0.0.1'),
 'port' => env('DB_PORT_SECOND', '3306'),
 'database' => env('DB_DATABASE_SECOND', 'forge'),
 'username' => env('DB_USERNAME_SECOND', 'root'),
 'password' => env('DB_PASSWORD_SECOND', ''),
 'unix_socket' => '',
 'charset' => 'utf8mb4',
 'collation' => 'utf8mb4_unicode_ci',
 'prefix' => '',
 'prefix_indexes' => true,
 'strict' => true,
 'engine' => null,
 ],
.....

Read & Write Connections
Sometimes you may wish to use one database connection for SELECT statements, and another for INSERT, UPDATE, and DELETE statements.
'mysql' => [
 'read' => [
 'host' => [
 '192.168.1.1',
 '196.168.1.2',
 ],
 ],
 'write' => [
 'host' => [
 '196.168.1.3',
 ],
 ],
 'sticky' => true,
 'driver' => 'mysql',
 'database' => 'database',
 'username' => 'root',
 'password' => '',
 'charset' => 'utf8mb4',
 'collation' => 'utf8mb4_unicode_ci',
 'prefix' => '',
],

Use Multiple Database Connections:
Here, I will give you a simple example of how to use multiple connections with migration.
Default Database:
public function up()
{
 Schema::create('users', function (Blueprint $table) {
 $table->increments('id');
 $table->string('name');
 $table->string('email');
 $table->timestamps();
 });
}
Second Database:
public function up()
{
 Schema::connection('mysql2')->create('users', function (Blueprint $table) {
 $table->increments('id');
 $table->string('name');
 $table->string('email');
 $table->timestamps();
 });
}

Use Multiple Database Connections with Model
In this step, we will see the multi-database with a model.
Default:
<?php
namespace App;

use Illuminate\Database\Eloquent\Model;

class Users extends Model
{
 ....
}
Second:
<?php
namespace App;

use Illuminate\Database\Eloquent\Model;

class Users extends Model
{
 protected $connection = 'mysql2';
 ...
}

Use Multiple Database Connections in the Controller
Default:
class UsersController extends BaseController
{
 public function getRecord()
 {
 $users = new Users;
 $find = $users->find(1);
 return $find;
 }
}
Second:
class UsersController extends BaseController
{
 public function getRecord()
 {
 $users = new Users;
 $users->setConnection('mysql2');
 $find = $users->find(1);
 return $find;
 }
}

Use Multiple Database Connections with Query Builder
Default:
$users = DB::table("users")->get();
print_r($users);
Second:
$users = DB::connection('mysql2')->table("users")->get();
print_r($users);

You might also like:
techsolutionstuff
Techsolutionstuff | The Complete Guide
I'm a software engineer and the founder of techsolutionstuff.com. Hailing from India, I craft articles, tutorials, tricks, and tips to aid developers. Explore Laravel, PHP, MySQL, jQuery, Bootstrap, Node.js, Vue.js, and AngularJS in our tech stack.
RECOMMENDED POSTS
FEATURE POSTS


The Mission of the UK HealthCare is: "To help people of the Commonwealth and beyond gain and retain good health through creative leadership and quality initiatives in patient care, education, and research." The UKHC Dietetics Internship follows that mission with its emphasis on quality in patient care, continued education, and emphasis on using research to determine evidence based practice for patient care.
Internship goals
 1. Prepare dietetic practitioners to successfully write the registration examination to become a Registered Dietitian.
 2. Offer a variety of learning experiences to prepare competent entry-level practitioners with an emphasis in clinical nutrition, who meet performance standards in areas of clinical nutrition, management and community nutrition.
 3. Maintain a quality internship program through staff and scheduled review, evaluation and revision of the program using staff, intern (past and present) and employer recommendations.
 4. Offer interns opportunities for involvement in the continued education and professional development.
Measurable outcomes
Each of the above goals is continually assessed, and the outcomes are measured to determine if the internship is meeting its goals. The measurable outcomes for the above goals include:
 1. Overall pass rate of the graduating interns, retention rates of the interns that begin the program, and whether the interns from this internship exceed national average test scores.
 2. Evaluations received from the interns must be greater than 80 percent positive in any given rotation or experience, interns must receive a "meets competency consistently" following their final rotations and a "meets entry level" evaluation prior to completing staff relief rotation.
 3. To verify entry-level competency, employers should rate the newly graduated interns with a "satisfactory as entry level." To verify competency, preceptors continually are evaluated on a routine basis, and their evaluations from the interns cannot contain more than one negative evaluation.
 4. Interns are required to attend local and state professional meetings including the yearly Kentucky Dietetic Association meeting.
Page last updated: 4/6/2015 3:07:24 PM


text:
Google has recreated landmarks such as the Houses of Parliament and Wembley stadium in 3D using 45-degree aerial imagery.
However, the home of the Government, national stadium and the Royal Family is actually the fifth city in the UK to be represented in 3D – after Birmingham, Leeds, Reading and Stoke-on-Trent!
From today, the world can explore London from the comfort of their homes, as Google Maps launched 3D mapping of the capital.
Other famous landmarks such as the Shard and Tower Bridge can be seen in stunning detail, with browsers able to pan around the iconic buildings for a complete view.
London's famous sky line is visible in its full glory – but the site also shows how the spires, skyscrapers and the Gherkin sit alongside homes.
Google Maps said: "Using 45-degree aerial imagery, we're able to recreate entire metropolitan areas in 3D.
"This means every building, not just the famous landmarks, the terrain, and any surrounding landscape of trees are included to provide a much more accurate and realistic experience of the city.
"As you zoom into London on Google Maps or Google Earth, buildings and terrain will start to appear in 3D.
"Once you can see the buildings, pan, zoom, tilt and rotate to explore the 3D environment."


Export (0) Print
Expand All
ListView.Sorting Event
Occurs when a sort operation is requested, but before the ListView control handles the sort operation.
Namespace: System.Web.UI.WebControls
Assembly: System.Web.Extensions (in System.Web.Extensions.dll)
public event EventHandler<ListViewSortEventArgs> Sorting
<asp:ListView OnSorting="EventHandler" />
The Sorting event is raised when a Sort button is clicked or the Sort method is called, but before the ListView control handles the sort operation. (A Sort button is a button control whose CommandName property is set to "Sort".) This enables you to perform a custom routine whenever this event occurs, such as customizing the sort expression.
A ListViewSortEventArgs object is passed to the event handler, which enables you to determine the sort expression for the column. It also lets you indicate that the sort operation should be canceled. To cancel the sort operation, set the Cancel property of the ListViewSortEventArgs object to true.
For more information about how to handle events, see Consuming Events.
The following example shows how create an event handler for the Sorting event.
<%@ Page language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 "_URL_

 <title>ListView Sorting Example</title>

 <form id="form1" runat="server">

ListView Sorting Example

 <asp:ListView ID="ContactsListView"
 DataSourceID="ContactsDataSource"
 OnSorting="ContactsListView_Sorting"
 runat="server">
 <LayoutTemplate>

 <asp:LinkButton runat="server" ID="SortByFirstNameButton"
 CommandName="Sort" Text="First Name"
 CommandArgument="FirstName"/>
 <asp:Image runat="server" ID="SortImage1"
 ImageUrl="~/images/ascending.gif" Visible="false" />

 <asp:LinkButton runat="server" ID="SortByLastNameButton"
 CommandName="Sort" Text="Last Name"
 CommandArgument="LastName" />
 <asp:Image runat="server" ID="SortImage2"
 ImageUrl="~/images/ascending.gif" Visible="false" />

 <asp:LinkButton runat="server" ID="SortByEmailButton"
 CommandName="Sort" Text="E-mail Address"
 CommandArgument="EmailAddress" />
 <asp:Image runat="server" ID="SortImage3"
 ImageUrl="~/images/ascending.gif" Visible="false" />

 <asp:DataPager runat="server" ID="PeopleDataPager" PageSize="12">
 <Fields>
 <asp:NextPreviousPagerField
 ShowFirstPageButton="true" ShowLastPageButton="true"
 FirstPageText="|<< " LastPageText=" >>|"
 NextPageText=" > " PreviousPageText=" < " />
 </Fields>
 </asp:DataPager>
 </LayoutTemplate>
 <ItemTemplate>

 <asp:Label ID="FirstNameLabel" runat="server" Text='<%#Eval("FirstName") %>' />

 <asp:Label ID="LastNameLabel" runat="server" Text='<%#Eval("LastName") %>' />

 <asp:Label ID="EmailLabel" runat="server" Text='<%#Eval("EmailAddress") %>' />

 </ItemTemplate>
 <AlternatingItemTemplate>

 <asp:Label ID="FirstNameLabel" runat="server" Text='<%#Eval("FirstName") %>' />

 <asp:Label ID="LastNameLabel" runat="server" Text='<%#Eval("LastName") %>' />

 <asp:Label ID="EmailLabel" runat="server" Text='<%#Eval("EmailAddress") %>' />

 </AlternatingItemTemplate>
 </asp:ListView>

 <asp:SqlDataSource ID="ContactsDataSource" runat="server"
 ConnectionString="<%$ ConnectionStrings:AdventureWorks_DataConnectionString %>"
 SelectCommand="SELECT [ContactID], [FirstName], [LastName], [EmailAddress]
 FROM Person.Contact" >
 </asp:SqlDataSource>
 </form>

.NET Framework
Supported in: 4.5.2, 4.5.1, 4.5, 4, 3.5
Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
Show:
© 2014 Microsoft


ISSN 2717-7394
Quick Access
Bu Dergi DOI ve Crosscheck üyesidir
Evaluation of the relationship between tryptophan consumption and obesity among University Students
Objective: To investigate the level of tryptophan consumption among university students and to determine its relationship with obesity. Materials and Methods: A questionnaire was conducted voluntarily to 1000 undergraduate students, 433 boys and 567 girls from Istanbul Aydın University in this correlation study. Students' daily tryptophan intake was determined according to the frequency of consumption of foods containing tryptophan, body weight, height, waist circumference were measured. SPSS 22.0 program was used for data analysis. Results: 56.7% of the students participating in the study are women and 43.3% are men. The average age and the standard deviation of the participants are 21,20±1,99 years, the minimum age is 17 years and the maximum age is 39. 17.5% of the participants are weak in terms of BMI, 33.8% are normal, 40.5% are overweight and 8.2% are obese. Comparing BMI values according to the students' gender, obesity is higher in girls than in boys (p <0.05). In terms of BMI, the number of obese and fat people is higher than male students. When looking at the tryptophan consumption amounts of students; the average amount of tryptophan is 321.62 mg in males and 323.41 mg in females. When the tryptophan consumption and BMI values of the students were examined, there was no statistically significant difference between them (p> 0.05). There was no significant relationship between tryptophan consumption and height and age, BMI, and the width of the waistline (p>0,05). Conclusion: University students consume high amounts of tryptophan, and there is no relation between the consumption of tryptophan on BMI and further extensive studies are needed.
BMI, Tryptophan consumption, University students, Obesity
Advanced Search
 Önemli Duyuru!
Address :Yayıncı: Gevher Nesibe Sağlık Araştırmaları Merkezi
Web Yazılım & Programlama Han Yazılım Bilişim Hizmetleri