text: method. (Which means you can do this, but you shouldn't.) _TAG_ depends on a rather weaker invariant: it requires that keys still be non-nil and unequal, but it doesn't require that their values or hashes be unchanged. Is there another Collection class that exposes its internal structure? Yes, MappedCollection. MappedCollection collection: c map: m in effect constructs the composition of two tabulated functions: (MappedCollection collection: c map: m) at: index = c at: (m at: index) The base collection c and the map m are not copied when you do this. Indeed, that's the point. But it leads to some very odd consequences. For example, i ~= j and: [ (mc at: j) ~= 0 and: [ mc at: i put: 0. mc at: j = 0]] can come out true. For every other keyed collection, setting the element at one key doesn't alter any elements at other keys. So don't try to sort a MappedCollection! It's also the only Collection class I can find in Squeak 3.2 where (coll contents) is not the receiver but a copy with different properties. One of the nasty things about the fact that the collection and mapping are shared with unknown numbers of other objects is that foo: aCollection bar: aBlock |index value| index := aCollection size. value := aBlock value: (aCollection at: index). aCollection at: index put: value may fail, even though aBlock value:... doesn't send any messages whatsoever to aCollection. How? aBlock could make the mapping smaller, or alter its last element so that it is no longer a valid key for the other collection, or could alter the other collection so that the key disappears, &c. Oh yes, imagine the fun when you do a := #(3 1 4 1) copy. m := MappedCollection collection: a map: a. m ==> a MappedCollection(4 3 1 3) m at: 2 put: 2. m ==> a MappedCollection(1 2 1 2) m at: 3 put: 3 m ==> a MappedCollection(1 2 3 4) a ==> #(2 1 4 3) MappedCollection tacitly assumes that the collection and mapping are different objects or that neither will be changed, but it does not say this anywhere. At the very least the class comment for MappedCollection should be changed from I represent an access mechanism for a sequenceable collection re-ordering or filtering its elements. (which is quite untrue because it doesn't in the least depend on the collections being sequenceable) to I represent the composition of two collection. (MappedCollection collection: c map: m) at: index is always the same as c at: (map at: index). The collection and map could be any combination of sequenceable collections and dictionaries as long as the elements of m all are (and remain) acceptable keys for c. My instances are sequenceable precisely when their maps are sequenceable. If you plan to use _TAG_:put: with one of my instances, the collection c and map m should be different objects. Note that the collection c and map m arenotcopied, but are shared. If you change them, the mapped collection you made from them will also change. Changes to the elements of the collection are normally safe; changes to the key space of the collection or the elements of the map may make the mapped collection invalid. Do not change the map while you are iterating over the map or the mapped collection. Hey, there's another oversight, found while writing that new class comment. There's a missing method: "in category 'testing'" isSequenceable ^map isSequenceable Alternatively, if the (otherwise pointless and unnecessary) restriction to sequenceable collections is to be preserved, then _TAG_:map: should be setCollection: aCollection map: aDictionary self assert: [aCollection isCollection]. self assert: [aDictionary isSequenceable]. domain := aCollection. map := aDictionary except that the names of the method parameters (which I have not changed) strongly suggest that the map should be allowed to be a dictionary, which is not sequenceable. But the instance creation method calls the very same parameter aSequenceableCollection. Whatever this code may be, it is not'subtle'. It's confused and confusing. Are there any other collection classes that violate this design principle? Yes, there is one that doesn't so much violate it as cut its breast off and eat half of one of its kidneys: LinkedList. Most container libraries regard a linked list as a container for general objects, with the link nodes being part of the private structure of the list. From the outside, it should not matter whether the nodes are allocated one at a time, or in chunks (a good way to combine the flexibility of lists with the space efficiency of arrays is to have a linked collection of arrays; the well known "piece table" representation used in some editors is related to this). However, Smalltalk LinkedLists are very different: all their elements must be Link nodes. This makes them utterly unlike arrays; any number of arrays may refer to the same object as an element, and an array may include an object as element any number of times. Not so LinkedLists: each Link may be an element of at most one LinkedList, and then at most once. In other words, LinkedList does not encapsulate. Serious weirdness can result. Consider c1 add: c2 first. where c1 and c2 are separate collections sharing no objects at all before this message is sent. If c1 is any other kind of collection that can support _TAG_:, this is fine. Now c1 and c2 have a common element. But if c1 and c2 are both LinkedLists, now a node is shared between the two lists. While _TAG_: is defined to be _TAG_:, it need not actually true that c2 first is now the last element of c1! (Because c2 might have had more than one element.) I could multiply examples of how easy it is to break LinkedLists without exploiting (initial) aliasing, but the main consequence is that Smalltalk programmers should never ever use LinkedList, not even after making their own subclasses of Link. Arguably, LinkedList should be outside the Collection hierarchy. (As noted in an earlier message, LinkedList is amongst the SequenceableCollections, but does not support _TAG_:, surely a defining characteristic of such collections.) Make no mistake: - I am not saying Smalltalk is unusable. - I am not saying the Collection classes are unusable. - I am not saying that the Smalltalk designers are culpable. What I am saying is that the Smalltalk designers weren't trying to produce highly polished code but were engaged in research of a completely different kind, so that they produced 'good enough for the immediate task' code which after 20-odd years outside the lab is overdue for an overhaul. The Collection classes are a means to an end, not Holy Writ, and mortals may dare to criticise and revise them.


text:
Children's Hospital Walnut Creek Outpatient Surgery
Thank you for choosing UCSF Benioff Children's Hospital Oakland for your child's outpatient surgical procedure. Our board-certified physicians and pediatric-trained nurses and technicians devote 100% of their medical practice to caring for children—providing the safest care possible, in a child-friendly environment.
Our goal is to make your experience at Children's outpatient surgery center as safe and pleasant as possible. If you have any comments or suggestions, please let us know. If you have any questions or concerns about your child's surgery or recovery progress you may call our nurses at any time. Please call us at: _PHONE_
How to Prepare For Surgery
At Children's Hospital Oakland Walnut Creek Campus our Surgery Center has the most advanced equipment for delivering anesthesia and monitoring your child. Operating rooms are equipped with easy access to the patient's digital images.
Things to remember for your surgery:
- Tell the telephoning nurse or the surgeon if your child has been sick during the three weeks before surgery.
- Bring your insurance information, guardianship papers and the "History and Physical" form for each visit to the center.
- Follow the food restrictions for your child starting the night before surgery.
- Check if your child should take medications on the day of surgery.
- Bring your child's favorite blanket, toy, doll or book on surgery day.
- Arrive at least an hour before the scheduled operation, but no earlier than 6:30 AM.
- The legal guardian must remain at Children's Outpatient Surgery Center throughout their child's stay.
- Do not bring other children to Children's Outpatient Surgery Center. Please make alternate arrangements for your other children.
- Fill any prescription medications for your child immediately following surgery.
- Have your child's favorite but appropriate foods and drinks available upon returning home after surgery.
Preparing for Surgery
To make your child's surgical procedure and recovery go smoothly, it's important for you and your child to be prepared. A Children's Hospital Childlife Specialist can help.
- A child life specialist will answer all the questions you or your child may have, in language appropriate to your child's age. This may include role-playing all parts of the anesthesia and surgery experience with you and your child.
Before your child's surgery, one of our nurses will call you to review your child's medical history, cover our anesthesia procedures and discuss what your child may or may not eat before surgery.
- To help your child on the day of surgery, bring your child's special toy, doll, book or blanket.
- If your child has been sick with a cough, runny nose or fever above 100° F within three weeks before surgery, it is important to speak with a staff nurse to get pre-operative clearance.
Night Before Surgery
Follow the specific instructions given to you over the phone by the surgery center nurse. Make sure your child has an empty stomach.
- No solid food or milk after midnight
- Clear liquids may be given if the nurse said it's OK—If you cannot see through the liquid it is not clear. Good choices are clear apple juice, Pedialyte or 7-Up.
- Absolutely nothing in the mouth, not even chewing gum, for three (3) hours before surgery
Day of Surgery
- Arrive at least one (1) hour before the surgery's scheduled start time—but not before 6:30 a.m.—to allow time for the registration process and preparation time with the child life specialist.
- A legal decision-maker (parent, legal guardian, responsible caretaker) must accompany the patient on the day of their surgery and remain at the surgery center during their procedure.
- If you would like a free interpreter to assist you during your visit, please let us know so we can arrange one for you.
- A registration clerk will help with your paperwork. Please bring your medical insurance cards. If you are not the patient's parent, please bring court orders or other documentation authorizing you to make medical decisions for the patient.
- Give us any completed "History and Physical" form that your pediatrician or surgeon may have given you.
- Please don't bring other children with you. Make alternate child care arrangements so the child having surgery will have your full attention.
- All female patients older than 12 years are required to give a urine sample. Please have your child wait until she gets here to go to the bathroom so we can collect that sample.
- Remove your child's jewelry (including earrings), as well as braids, beads or hair accessories.
- Help your child put on a hospital gown or pajamas.
- Some children will be given a medication by mouth to help prepare them for anesthesia.
- The anesthesiologist will meet with you to explain the anesthesia process.
- If you have any questions, please let us know. Please ask any questions you may have about the procedure.
Anesthesia and Surgery
The anesthesiologist will help your child go to sleep in the induction room or operating room.
The anesthesiologist will decide on the safest way for your child to go to sleep:
- Some children may have their parents with them as they fall asleep in the induction room.
- For safety reasons, other children will go to sleep in the operating room without a parent present.
- Most children go to sleep by breathing into a mask that resembles one worn by jet pilots or astronauts.
- The air your child breathes will make him or her feel silly and giggly inside.
- Within seconds, your child will feel very, very sleepy.
- As sleep deepens, some children go through an "excitement" phase and may wiggle around.
- Your child will not remember this period.
- Sometimes we need to start an IV to help your child fall asleep.
- The anesthesiologist will monitor your child carefully to make sure your child will feel no pain during the operation.
In the Recovery Room
After the operation, your child will go into the recovery room, which is often called the "wake-up room." Parents or guardians are allowed in the recovery room.
Children vary in their reactions to anesthesia:
- Many children wake up groggy but comfortable.
- Others may wake up crying because they are confused.
- Our specially trained pediatric recovery room nurse will closely monitor your child during this time to keep your child as peaceful and comfortable as possible.
The nurses and doctors caring for your child will decide when he or she can go home. You will be given instructions to help you care for your child at home. Do not hesitate to ask questions before you leave; we want you to be comfortable caring for your child.
On rare occasions, children having outpatient surgery cannot be sent home the same day. If this occurs, we will discuss this with you and arrange for your child's admission to Children's Hospital in Oakland.
Once home, your child may be tired and want to nap for the rest of the day. Plan to stay close by because your child may be groggy or unsteady. Your child may also be irritable for the rest of the day and that night. If your doctor has given you a prescription for medication for your child, it is important that you get the prescription filled immediately and use it as directed.
If your child did not drink clear liquids before leaving the center, you may begin these as soon as you arrive home.
back to top
- Make sure that you have a supply of your child's favorite clear liquids at home.
- If clear liquids are tolerated for an hour without vomiting, you may give your child soup and gradually advance to normal foods.
- We recommend that your child avoid eating spicy or hard-to-digest foods for the first day.
- Do not force your child to eat, but encourage fluids, which will probably help your child feel better sooner.
- Do not worry if your child does not want to drink after surgery. Be sure to talk to us if your child is not drinking by the next morning.

source: openbmb/Ultra-FineWeb


text:
What is A Disciplined Life®?
Well before the value of social emotional learning became widely recognized in 2003, Perspectives Co-Founders Diana Shulla-Cose and Kim Day had already realized how critical this kind of learning was to their students' success. Fifteen years ago, they embraced the idea that social emotional learning would be an integral part of the Perspectives education model. They understood that the right foundation would help them provide children with safe, caring and well-managed learning environments.
Believing that character development and academic achievement are interdependent, they began brainstorming ideas for creating a school culture of both personal and academic excellence. They knew that providing their students with instruction in life skills, such as self-discipline, perseverance and good communication, would help them succeed. Together, they identified a set of principles that would guide Perspectives and called them A Disciplined Life®.
Social emotional learning standards have since been developed in accordance with Section 15(a) of Public Act 93-0495. This Act calls upon the Illinois State Board of Education to "develop and implement a plan to incorporate social and emotional development standards as part of the Illinois Learning Standards." Since the day Perspectives opened the doors to its first school, A Disciplined Life® has been in place, helping our students to succeed.
Today, the 26 principles of A Disciplined Life form the foundation of our culture at Perspectives Charter Schools and help prepare our students for success in college, the workplace and in life. Over time, A Disciplined Life has become integral to every aspect of Perspectives, informing our behavior, communication and productivity, while being cornerstone for our curriculum and professional development. It serves as a common language for our students, staff and parents as we work to achieve a culture of success.
A Disciplined Life translates into success for our students. Of our 2010 graduates, 97 percent were accepted to college. They have learned what it takes to succeed and understand that character, self-discipline and personal responsibility can change what the future holds for them.
We integrate the principles of A Disciplined Life in all aspects of our school community. From the classroom to the playground, from the front office to staff meetings – it is our common language and practice. A Disciplined Life ensures that we are focused and intentional about creating a culture of success for our students and we have recently begun developing assessments to measure impact.
How do we measure A Disciplined Life?

source: HuggingFaceFW/fineweb-edu


How to build the perfect Deep Learning Computer and save thousands of dollars
Jeff Chen
Jeff Chen
Jan 14, 2019 · 10 min read
Updated 12/11/2019
Building your own Deep Learning Computer only takes a few hours. Assembly video is below.
You already know that building your own Deep Learning Computer is 10x cheaper than using AWS. But picking the right parts is not trivial, so let's take a detailed look at things you should consider, the pros and cons of my build, assembly instructions, and how you're saving as compared to buying.
This is part 2 of 3 in the Deep Learning Computer Series. Part 1 is 'Why building is 10x cheaper than renting from AWS' and Part 3 is 'Performance and benchmarks'. See new photos and updates: Follow me on Medium and Twitter! Leave thoughts and questions in comments below.
Picking the 4 most important parts: CPU, GPU, Storage and Memory.
here are only 8 components to a build: GPU, CPU, Storage, Memory, CPU Cooler, Motherboard, Power, Case. The first 4 are the most important. When training, data flows from storage to memory to the GPU, while the CPU helps along the way (manipulates batches, etc). So, you want to make sure:
 - Your CPU can support all your GPUs
 - Your GPU is fast enough and can fit the model and data batch in memory
 - Memory is DDR4 and big enough to float most datasets uncompressed
 - Storage is M.2 PCIe and big enough
Make your computer expandable to 4 GPUs with the right CPU
It's hard to know how many GPUs you'll need because some models take 10s of hours to train (Vision CNNs, Natural Language Processing LSTMs, Capsule Auto Encoders, etc). So, one of the best ideas is to start with 1 or 2 GPUs and add more GPUs as you go along.
Each GPU requires at least 8x PCIe lanes (it's 16x officially, but there's data for which 8x is good enough if you're not running cross-GPU experiments). You will need 4x PCIe lanes for the M.2 SSD (which plugs right in and is 5x faster than SATA3), and another 4x PCIe lanes for Gigabit ethernet. That's a total of 40 PCIe lanes and will restrict your CPU choices quite a bit. Your CPU will dictate the motherboard you need. (For example: AMD Threadripper CPU = X399 chipset motherboard, Intel 7900X CPU = X299 chipset motherboard, etc).
You'll want a CPU with 8+ cores / 16+ threads and 40+ PCIe lanes since this allows 4 experiments per GPU (16 experiments if you have 4 GPUs). Typically models take up at least a couple gigabytes of GPU memory so it's rare you can run more than 4 experiments per GPU. Finally, make sure the PCIe lanes are actually getting routed to the expansion slots.
AMD CPUs offer better value than Intel
As of December 2019, AMD offers more performance for less money. AMD's 1920X with 12 Cores/24 Threads/60 PCIe lanes is only $199! Intel's 7900X with 10 Cores/20 Threads/44 PCIe lanes is $1000. Benchmarks show comparable performance, so AMD seems like a no-brainer. AMD's second generation 2920x is only $400. (Disclosure: I'm long AMD stock.)
Your GPU needs to have enough memory and be fast enough
GPU memory works differently than computer RAM, so if you don't have enough memory to fit your model you won't be able to train (as opposed to train slowly). Once in a while I have a model that requires 10GB+ to run, so if in doubt, choose one with more memory.
Nvidia GPUs are easier to use than other platforms because they have the most community support for tools (Tensorflow, PyTorch, etc). Buy cards that have 'blower style' fans instead of the large double fans because if you have multiple GPUs you need to vent air outside of the box. (eg 1080 Ti Founder Edition, or 2080 Ti Asus Turbo)
Your choices are basically:
 - Super High-end: Titan RTX (24GB / 4608 Cores / 576 Tensor Cores / $2,500) You can only fit one of these on the bottom slot because Titans don't use blower fans.
 - High-end: 2080 Ti (11GB / 4352 Cores / 544 Tensor Cores /$1149), 1080 Ti (11GB / 3584 Cores / $500 used), 2080 Super (8GB / 3072 Cores / 384 Tensor Cores / $730)
 - Mid-tier: 2070 Super (8GB / 2560 Cores / 320 Tensor Cores / $530)
 - Low-end (Best Value): 2060 Super (8GB / 2176 Cores / 272 Tensor Cores / $410)
 - GPU inventory is very limited, so you may have to hunt around for inventory
The Titan RTX is a monster card and ~55% faster than 1080 Ti on 32 bit training and 135% faster in half precision mode because of the additional Tensor Cores and extra memory which allows for much larger batch sizes. 2080 Ti is ~40% faster than 1080 Ti on 32 bit training and ~65% faster when used in half precision mode. From there, speed performance is linear to the number of CUDA cores so expect 1080 Ti to be ~40% faster than 1080 and 1080 to be 33% faster than 1070.
Storage and Memory need to be as fast as possible
Because you'll be moving lots of data around from storage to memory then to the GPUs, you want that pipeline to be as fast as possible. Use M.2 SSD NVMe, which plugs right into the motherboard and DDR4 memory.
Important tradeoffs of my build and common pitfalls
Initial single-GPU build costs $3k and can expand to 4 GPUs later
Here is my parts list with updated pricing and inventory.
GPU: I picked the 1080 Ti intially because a 40% speed gain versus 1080 is significant when you're talking about 10-hour train times, and the extra 3GB of memory is important when working with large models or increasing training speed with larger batch sizes. 1080 Tis are hard to find now, so check eBay. I later added a 2080 Ti and a Titan RTX in the bottom slot. As of 2020, the 2060 Super is the best value for a starter card.
CPU: AMD's 1920X has 12 cores and 38MB cache and is $150 more expensive vs. 1900X's 8 cores and 20 MB cache. Earmarking 2 cores / 4 threads per GPU and the fact I might want the machine to double as a staging server later, 1920X gives me a little more breathing room.
Storage: I used a single 1TB M.2 SSD, I don't like having stuff on different drives and 500GB seems small considering datasets are often tens of gigabytes. I might add a super large spinning hard drive for 'cold' storage later.
Memory: Quad channel memory is used because 1920X runs faster with quad than dual channel memory. 4 x 16GB is chosen because maximum supported memory is 128GB so it's an easy upgrade path without needing to remove chips later. 3000Mhz is the fastest memory compatible with the motherboard (it's overclocked from base 2667Mhz).
Power Supply: 1600W P2 is enough to cover 4x250W GPUs + 180W CPU + 150W for everything else and a little bit of headroom for overclocking. You don't want to max out your power supply because fans kick in like crazy when it's running at high utilization.
Case: Lian-Li PC-O11AIR because I need a case with 8 expansion slots (most mid-tower cases have 7, which means you cannot fit 4 double-wide GPUs). Between this case and the Corsair Air, this case looks nicer and comes with dust filters.
Avoid these 7 Common Pitfalls
Run through this list to make sure your build checks out.
 1. GPUs overheat my computer: Make sure you get the blower-style GPUs (The 2080 Ti version is called Turbo by Asus) because they vent out the back of the case. The 'Overclock' 'OC' type cards will have 2 large fans that blow into the computer, which will overheat. You also need a fan that delivers cold air directly onto the GPUs' intake. You can fit one Titan RTX in the bottom slot if your case has a vent on the bottom like the O11AIR.
 2. Not enough PCIe lanes: You need at least 8x PCIe lanes / GPU (16x is better). If you have 4 GPUs, with a M.2 drive and Gigabyte ethernet, it's 40 PCIe lanes at a minimum.
 3. My model doesn't fit in my GPU memory: large Convolutional Networks and LSTMs use a lot of GPU memory, 8GB vs. 11GB is a big difference.
 4. Motherboard doesn't fit


Take the 2-minute tour ×
I've been working on a Microsoft Excel 2007 spreadsheet for several days. I'm working from a master template like sheet and copying it to a new sheet repeatedly. Up until today, this was happening with no issues. However, in the middle of today this suddenly changed and I do not know why. Now, whenever I try to copy a worksheet I get about ten dialogs, each one with a different name range object (shown below as 'XXXX') and I click yes for each one:
A formula or sheet you want to move or copy contains the name 'XXXX', which already exists on the destination worksheet. Do you want to use this version of the name?
 - To use the name as defined in destination sheet, click Yes.
 - To rename the range referred to in the formula or worksheet, click No, and enter a new name in the Name Conflict dialog box.
The name range objects refer to cells in the sheet. For example, E6 is called name range PRE on multiple sheets (and has been all along) and some of the formulas refer to PRE instead of $E$6. One of the 'XXXX' above is this PRE. These name ranges should only be resolved within the sheet within which they appear. This was not an issue before despite the same name range existing on multiple sheets before. I want to keep my name ranges.
What could have changed in my spreadsheet to cause this change in behavior? I've gone back to prior sheets created this way and now they give the message too when copied. I tried a different computer and a different user and the same behavior is seen everywhere. I can only conclude something in the spreadsheet has changed. What could this be and how can I get back the old behavior whereby I can copy sheets with name ranges and not get any warnings?
Looking in the Name Manager I see that the name ranges being complained about show twice, once as scope Template and again as scope Workbook. If I delete the scope Template ones the warning goes away on copy however, I get a bunch of _TAG_ errors. If I delete the scope Workbook ones, all seems okay and the warnings on copy go away too, so perhaps this is the answer, but I'm nervous about what effect this deletion will have and wonder how the Workbook ones came into existence in the first place.
Will it be safe to just delete the Workbook name manager scoped entries and how might these have come into existence without my knowing it to begin with?
share|improve this question
Did you ever find out why these Workbook-scope names were appearing? I'm seeing the exact same thing - I can fix it by deleting the Workbook names, but I'd be happier if I knew what caused them. – Neil Vass Dec 17 '12 at 20:57
No, I just deleted per the answer I gave below. It would be nice to know why this occurs. – WilliamKF Dec 18 '12 at 14:25
5 Answers 5
up vote 2 down vote accepted
Open the Name Manager and find the named items being complained about and delete all those with scope Workbook and the issue with copying sheets goes away and the formulas remain intact.
share|improve this answer
This is not an error, but a warning a conflict exists and offers a choice on what to do
When you copy a range that includes reference to a (typically worksheet scope) named range, and that same name exists on the destination sheet, how is Excel to know which name you want to use in the result?
As to whats changed, I suggest you review all the names in your workbook, especially for scope.
Name Manager - Ctrl-F3
share|improve this answer
I've updated the question to use the word 'warning' instead of 'error', but my question remains. – WilliamKF Sep 17 '12 at 13:55
 Dim nm As name
 On Error Resume Next
 For Each nm In ActiveWorkbook.Names
 If (MsgBox("Delete name- " & nm.name, vbYesNo) = vbYes) Then
 End If
 On Error GoTo 0
End Sub
share|improve this answer
This is useless... you can you the Name Manager for that. What should be the reason for using such a code? – codea Aug 4 at 16:57
These names are mostly the result of a data download through a third-party API. The APIs typically use those names as placeholders for cell referencing.
Once you have processed some data, these names are mostly left behind as a general user does not clean up the hidden (or very-hidden) sheets. The difficulty associated with these names is that they also do not show up in the NAMES box and therefore cannot be deleted through that option.
One way that I go about it is to program it through a VBA script. Sample below
Sub do_loop_names()
Dim vJunkName As Name
Debug.Print ThisWorkbook.Names.Count
For Each vJunkName In ThisWorkbook.Names
Next vJunkName
End Sub
Do note this script will delete ALL names from the workbook, so if there are certain defined names you'd like to keep, please put in the exceptions in the code.
If someone has a more efficient solution, please let me know.
share|improve this answer
I know hidden sheets. But what are very hidden sheets? – nixda Nov 4 '13 at 9:31
_USER_ You can hide or unhide sheets by right clicking on the sheet tabs as you know. You can do the same thing through VBA, and through VBA you have another option to make sheets very hidden which means they are not available to unhide when right clicking on the sheet tabs. – Levi Nov 4 '13 at 23:14
_USER_ gave a good explanation. very hidden sheets are invisible on the workbook unless set visible through VBA. Hidden sheets can be viewed through the spreadsheet Hide / Unhide option but the veryhidden feature makes these sheets inaccessible unless through VBA. – Viquar Nov 12 '13 at 13:38
Same problem here with 27 mystery named ranges. I used Ctrl+F3 (as recommended in another answer) to view the list of named ranges (which I had never set up!). There were many since I had been copying the worksheet tab many times and just clicking "yes" to work around the message. I highlighted and deleted all the named ranges (one little screen at a time, couldn't Select All). The next time I tried to copy the worksheet, the copy succeeded without the warning message.
Be sure to copy your original file before trying this.
share|improve this answer
Your Answer


Jump to: navigation, search
Using your own data type with Akonadi
Tutorial Series Akonadi Tutorial
Previous C++, Qt, KDE development environment
What's Next
Further Reading CMake, Akonadi Development Tools
This tutorial will guide you through the steps of creating an Akonadi application, an end user program which displays and manipulates PIM data provided by Akonadi.
If you are looking for a tutorial on how to provide data for Akonadi see the Akonadi Resource Tutorial
This section needs improvements: Please help us to
cleanup confusing sections and fix sections which contain a todo
Describe required versions and build setup
Tutorial Example
The goal of the tutorial is to create a simple application allowing a user to "detach" attachments from e-mails, i.e. save them to disk and remove them from the message.
To stay concentrated on Akonadi related steps, all general application or GUI related steps will done in a minimal fashion.
We can kick-start the application by using KAppTemplate, which can be found as KDE template generator in the development section of the K-menu, or by running kapptemplate in a terminal window.
First, we select the KDE4 GUI Application in the C++ section of the program, give our project a name and continue through the following pages to complete the template creation.
A look at the generated project top level directory shows us the following files:
and the following files in sub directory src:
At this stage it is already possible to compile the application, so we can already check if our development environment is setup correctly by creating the build directory and having CMake either generate Makefiles or a KDevelop project file.
Generating Makefiles
From within the generated top level directory:
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=debugfull..
and run the build using make as usual.
Generating a KDevelop project file
From within the generated top level directory:
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=debugfull -G KDevelop3..
and open the generated project with KDevelop and run the build process from there.
Adjusting the main Qt Designer file
Open the file detacherview_base.ui in Qt Designer and remove the example label. Remove the widget's main layout by clicking on the now empty widget and use the Break Layout menu entry in the Form menu.
Now, from left to right, place two Tree Views and one List Widget side-by-side. Select all three boxes by holding SHIFT and clicking each box with the left mouse button. Use Layout Horizontally in a Splitter in the Form menu and then create a main layout by clicking on their parent widget and using Layout Vertically in the Form menu.
A preview (Form -> Preview) should now look like this: TutorialAkonadiDetacherPreview.png
Finally, change the object names for the three widgets by right clicking it and choosing Change objectName. The left widget should be named folderView, the middle one messageView and the right one attachmentList.
In order to make it build again, edit the file detacherview.cpp and remove the code from the settingsChanged method. The application should now build again and be able to run.
A lot of other code of this generated files is not necessary either, feel free to do more cleanup yourself.
Promoting Views
The KDE client library for Akonadi has a couple of convenience classes which make our life as application developers more pleasant. Two of these classes are specialized view widgets, one for displaying collections and one for displaying items.
In order to use these widgets instead of ones from Qt we need to use a Qt Designer feature called "promoting". Right click the left widget and choose Promote to. Then fill the form like shown in the next screenshot.
Click add and promote. Repeat the same for the middle widget, this time using Akonadi::ItemView as the class name and akonadi/itemview.h for the header file.
This change also requires a change in the CMakeLists.txt file in the top level directory and in the one from the source directory.
In the file from the top level directory add the following line
find_package (KdepimLibs REQUIRED)
and change
include_directories( ${KDE4_INCLUDES} ${QT_INCLUDES} )
In the file from the source directory the line
target_link_libraries(detacher ${KDE4_KDEUI_LIBS})
has to be changed to
target_link_libraries(detacher ${KDE4_KDEUI_LIBS} ${KDEPIMLIBS_AKONADI_LIBS})
Since the application will depend on Akonadi running, we can ensure this by starting it if it is not. This is handled by the Akonadi::Control class.
In detacher.h we add another slot called delayedInit() which will perform this initialization. A slot so we can delay its executing using a single shot timer, a technique called "Delayed Initialization", i.e. letting the application create and show its GUI as fast as possible and do any probably time consuming initialization after that.
private slots:
 void fileNew();
 void optionsPreferences();
 void delayedInit();
In detacher.cpp we need two new include directives:
_TAG_
_TAG_
and the slot's implementation
void Detacher::delayedInit()
 if (!Akonadi::Control::start( this ) ) {
 qApp->exit( -1 );
If the application fails to start Akonadi, it simply quits. A real application should probably tell the user about that though.
Since we want the slot to be executed delayed, add the following line at the end of the class' constructor
QTimer::singleShot( 0, this, SLOT( delayedInit() ) );
Lets add a new public method to the view class. In detacherview.h add
void createModels();
and for now with an empty body in detacherview.cpp (we will get to the implementation shortly)
void DetacherView::createModels()
and call it from Detacher::delayedInit() after the Akonadi start succeeded
void Detacher::delayedInit()
 qApp->exit( -1 );
Connecting Views to Akonadi
The actual data connection between our views and Akonadi is conveniently handled by specialized models which are also provided by the KDE client library for Akonadi.
Actually, the data type the application will be working on, MIME messages, has an even further specialized model in a type specific sub library.
To properly link this additional library change the source directory's CMakeLists.txt to this target_link_libraries(detacher ${KDE4_KDEUI_LIBS} ${KDEPIMLIBS_AKONADI_LIBS} ${KDEPIMLIBS_AKONADI_KMIME_LIBS})
In 'detacherview.cpp add the following include directives
_TAG_
_TAG_
_TAG_
With that we can now properly implement the createModels() method:
void DetacherView::createModels()
 Akonadi::CollectionModel *collectionModel = new Akonadi::CollectionModel( this );
 Akonadi::CollectionFilterProxyModel *filterModel = new Akonadi::CollectionFilterProxyModel( this );
 filterModel->setSourceModel( collectionModel );
 filterModel->addMimeTypeFilter( QLatin1String( "message/rfc822" ) );
 Akonadi::ItemModel *itemModel = new Akonadi::MessageModel( this );
 ui_detacherview_base.folderView->setModel( filterModel );
 ui_detacherview_base.messageView->setModel( itemModel );
 connect( ui_detacherview_base.folderView, SIGNAL( currentChanged( Akonadi::Collection ) ),
 itemModel, SLOT( setCollection( Akonadi::Collection ) ) );
The first line creates a CollectionModel which will get all "folders" from Akonadi and keep this data updated as long as the application is running.
However, since this includes collections for other data types as well, we need to filter for the data type we are interested in, MIME messages or in terms of MIME type message/rfc822. This kind of filtering is conveniently supplied in the form of a proxy model called CollectionFilterProxyModel.
The next model, MessageModel is an ItemModel specialized in dealing with our data type, messages.
Setting the models on the respective view almost completes the setup process, the only thing left is to connect the CollectionView to the MessageModel so it changes its data depending on which folder gets selected.
At this stage the application is already capable of showing all your mail folders and headers of all your e-mails!
Getting at the Attachments
This task can be split into two steps:
 - Getting the message from Akonadi
 - Getting the attachments from the message
Getting the message from Akonadi
While we could have instructed the MessageModel to get all data for each of its entries, the proper way is to retrieve it only for the items that get selected. Moreover we want to do this asynchronously because we don't want to block the application even is a message is really huge.
The KDE client library for Akonadi offers this kind of functionality through a job-based API, in this case ItemFetchJob.
Using this is quite simple. First we add a new include and a class forward declaration for detacherview.h
_TAG_
class KJob;
In the private member section add an Item member:
 Ui::detacherview_base ui_detacherview_base;
 Akonadi::Item mItem;
and


runFastHeinz: Calculate heuristically maximum scoring subnetwork
Description Usage Arguments Value Author(s) See Also Examples
View source: R/HeinzUtils.R
Description
The function uses an heuristic approach to calculate the maximum scoring subnetwork. Based on the given network and scores the positive nodes are in the first step aggregated to meta-nodes between which minimum spanning trees are calculated. In regard to this, shortest paths yield the approximated maximum scoring subnetwork. This function can be used if a CPLEX license is not available to calculate the optimal solution.
Usage
1
runFastHeinz(network, scores)
Arguments
network
A graph in igraph or graphNEL format.
scores
A named vector, containing the scores for the nodes of the network. All nodes need to be scored in order to run the algorithm.
Value
A subnetwork in the input network format.
Author(s)
Daniela Beisser
See Also
writeHeinzEdges, writeHeinzNodes, readHeinzTree, readHeinzGraph, runHeinz
Examples
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
library(DLBCL)
# load p-values
data(dataLym)
# load graph
data(interactome)
# get induced subnetwork for all genes contained on the chip
interactome <- subNetwork(dataLym$label, interactome)
p.values <- dataLym$t.pval
names(p.values) <- dataLym$label
bum <- fitBumModel(p.values, plot=TRUE)
scores <- scoreNodes(network=interactome, fb=bum, fdr=0.0001)
module <- runFastHeinz(network=interactome, scores=scores)
## Not run: plotModule(module)
BioNet documentation built on Nov. 8, 2020, 5:48 p.m.


text:
Full text loading...
Scheme of the measurements of MDR modes with a plane wave (a) and focused beam incidence (b). The sketch (b) shows the beam polarization direction and the three focused beam position of the Ti:Sapphire laser for a point of view of the axis.
He–Ne backscattering intensity spectra, experimental (top) and theoretical (bottom), showing the MDR modes for a dielectric sphere excited by a plane wave. The experimental data scale is on the left and the theoretical calculation scale is on the right.
Experimental (bottom) and theoretical (top) spectra showing the MDR modes of a dielectric sphere in a focused beam. Modes for the sphere moving parallel to the incident beam polarization, TM modes (a), perpendicular to the incident beam polarization, TE modes (b) and at 45° of the beam polarization, TM and TE modes (c).
Article metrics loading...

source: m-a-p/FineFineWeb


text:
What type of information is the CRC collecting?
Recreational infrastructure data fall under five categories: indoor recreation, outdoor recreation, youth recreational programming, adult recreational programming, and waterfront recreational amenities. For an example an example of the 2018-2019 inventory, contact the CRC.
How are data for recreation collected?
The CRC collects community recreation data by contacting local officials knowledgeable of a community's recreational infrastructure (e.g., director of parks and recreation). Once we have contacted the appropriate person, we send a questionnaire-inventory to the point person to complete via secure online survey platform. Responses are completed by the community point person. If a data point is missing or empty, it is because this information was not provided to the CRC by the contact person.
When is the data collected?
We collect community recreational infrastructure data in two-year rotations. The first wave of data collection occurred in 2016-2017, and the second wave of data collection is underway for 2018-2019. We plan to collect a third wave starting in January of 2020 through December of 2021. If your community has not yet completed an inventory, please contact the CRC at _EMAIL_. We can send you a secure link to complete this information.
All data points were recoded into dichotomous variables. For example, we collect data on things such as the number of parks, number of baseball fields, and miles of paved trails in the community. For our data visualization, we recode these data into whether the recreational amenity is present (1) or absent (0) for creating overall and category scores. After data were recoded, we created z-scores, or standardized scores, for each community by population cluster group and recreational category (i.e., indoor, outdoor, youth programs, adult programs, and when appropriate, waterfront) using the following formula:
Z-score = (Community Category Value) minus (Average of Community Category Value) / (Standard Deviation of Community Category Value)
The population clusters were determined utilizing k-mean cluster analysis, which resulted in three distinct groups. Z-scores are relative to other communities within the same population cluster and not an absolute measure.
We completed this process for each of the four main categories (i.e., indoor, outdoor, youth programs, and adult programs) and then added or summed each category together to establish an overall score. Formula:
Total Recreation Score = Indoor (z-score) + Outdoor (z-score) + Youth Programs (z-score) + Adult Programs (z-score)
We utilized the following cutoffs in order to assign the expectation level for each community within each recreation category as well as the overall score:
- Exceeds Expectations are communities whose recreation score is > 0.5 standard deviations from the mean of all communities within their population group.
- Meets Expectations are communities whose recreation score is between 0.5 and -0.5 standard deviations from the mean of all communities within their population group.
- Below Expectations are communities whose recreation score is < -0.5 standard deviations from the mean of all communities within their population group.
If you would like to know more detail about your community, please contact the CRC at _EMAIL_.


Skip to Content
When Do Catkins Stop Falling?
Sharing is caring!
Pollen can wreak havoc with the health of people who have allergies as it tends to worsen the symptoms. If you have been sneezing, wheezing, itching, having congestion, and more symptoms of an allergy lately, it could be because the season of catkins falling from the trees is invading your backyard.
Catkins are elongated clusters of flowers, and they are mostly one sex flowers – the male gender. These male flowers shed pollen when the season arrives. This can lead to suffering for the people with allergies and have them wondering – when do catkins stop falling?
If you want to know all about it, just keep reading as we have gathered all the information you need to know about the season of catkins, when do catkins stop falling, and more detail.
When Do Catkins Stop Falling?
Many trees bear catkins on their branches. Some of them include birch, willow, hickory, sweet chestnut, oak, and sweet fern. A few trees only have male flowers on their branches that release pollen, while some others, like oak trees, have male and female flowers on different areas of the branch. These trees with both genders of flowers on the same plant are called monoecious.
This is a whole process of flower clusters growing, pollen spreading, and then catkins falling to the ground. The catkins stop falling to the ground only after the whole process has taken place. The time for completing this process can vary depending on several factors. Let's find out how the whole process occurs and what you can do about the falling catkins.
The Purpose of Catkins
Catkins are the male part of a tree. They are initially green in color and turn yellow-beige when the time for pollination arrives. They are shaped like worms, and the little bumps on the catkins carry small, modified leaves, called bracts. Some catkins, such as those on the pussy willow, also have tiny hairs. These hide the small leaves from plain sight.
Bracts inside the catkins act as attracting bait for insects when insect pollination is required for a plant. Most catkins grow facing downward as plants with catkins are pollinated by wind. By growing in the hanging position, the plant is in an optimal position for the wind to blow away the pollen stored inside the catkins. Pollen is released when the season for pollination arrives.
The female parts of this plant are usually small in size and grow near the base. The wind carries the pollen to the trees with female parts, and this way, the process of reproduction starts to give birth to new trees.
Soon after the pollen has been released from the catkins, they fall from the trees on the ground, cars, and whatever is lying underneath. This is the reason you sometimes may see your car covered in the yellow hue from the trees with catkins.
In some plants, such as the white birch, the catkins may grow erect upwards. While most catkins require wind to spread their pollen to faraway places where at least some could be used for pollination, a few plants also use insect pollination. In the case of insect pollination, fertilization may not take place too far away from the parent plant.
The Season of Growth and fall for Catkins
Different plants with catkins produce flowers and start falling at various times of the year. Most plants with catkins start growing sometime in October to November. They bloom and produce flowers throughout the winter season.
The fall of the catkins starts from late spring and goes on till late summer. You can expect to see the fallen catkins in your yard sometime in February to late May. You might see the distinctive yellow color spread around in your garden, on the car's windshield, and in other places around the tree.
This fall of the catkins means that the pollen has been spread, and the wind may have taken some of the pollen to the female parts of the plant for the process of reproduction. And since the catkins have done their work, they have started falling to give space to new male parts of the plant for the next reproduction season.
When Do Catkins Stop Falling 2
Fallen catkin – via Wikimedia
When Do Catkins Stop Falling?
This is a question that bugs every person suffering from an allergy as pollen in the air or even the fallen catkins can worsen your allergy. So, such people would want this season to end as soon as possible. Or it could be that you are just a clean freak and can't stand the sight of the mess these fallen shells make in your yard or outside your home.
The pollen drop takes place for about three to four weeks, during which the pollen is shed. The fall of the catkins after the pollen has been shed can last anywhere from a few days to a few months, depending on the plant and climate of the region. Catkins typically stop falling after four to five days in a few regions, and in other places, the fall can last for a month or more.
Once the catkins have fallen, they are useless to the plant. They can be manually cleared off or left to disintegrate as they will soon turn into dead matter.
What to Do With the Fallen Catkins?
Some people may get OCD seeing all the litter of fallen catkins spread around. So, what should you do about it?
There are a few methods to take care of the fallen catkins. You could rake them, sweep them off, or add them to the compost pile. Most of the time, raking, hauling, and bagging is not necessary as you can depend on the wind to take care of the fallen shells of the tree. You can also use the catkins as mulch for your vegetable garden.
They are edible and won't cause any harm if any of your pets eat them but make sure you know which tree was responsible for the catkins mess as some of the plants can be harmful to pets as they can cause problems with the stomach.
Conclusion
I hope this clears your query of when do catkins stop falling so you can start planning around it if you have allergies or don't want the mess. If you have any tips on how to take care of a tree with catkins growing in the area or how to deal with allergies from the pollen.
Share it with your fellow readers and share your views and experiences in the comment section below.


How is it that WriteProcessMemory succeeds in writing to read-only memory?
Raymond Chen
When you call WriteProcessMemory and tell it to write to memory that is read-only, the WriteProcessMemory succeeds. How can that be?
Because WriteProcessMemory tries really hard to please you.
As I noted some time ago, the primary audience for functions like CreateRemoteThread and WriteProcessMemory is debuggers. And when debuggers try to patch memory, it's often for things like patching in a breakpoint instruction or doing some edit-and-continue magic. So the WriteProcessMemory tries really hard to get those bytes written. If the page is read-only, WriteProcessMemory temporarily changes the permission to read-write, updates the memory, and then restores the original permission.
"No need to thank me, just trying to help."
There is a race condition if the target process happens to be manipulating the page protection at the same time that WriteProcessMemory is. But that's okay, because the intended audience is debuggers, and debuggers will freeze the target process before trying to edit its memory.
There is no security hole here, because the way the WriteProcessMemory function changes the page protection is basically VirtualProtectEx, so it will succeed only if you already could have modified the protections yourself anyway. If you didn't have permission to change the protections, then WriteProcessMemory's attempt to change the protections would fail too.


text:
In CosmoLex, each user has a calendar, however, some firms choose to share one calendar for everyone's activities, this we refer to as a Team Calendar.
- The first step is to choose a user who will "host" the team calendar. Typically an admin user, but it can be any user whose calendar is visible to all users.
- Have that user login, go to Setup > My Settings > My Preferences and confirm their default calendar is their own.
- Then, go to Activities > Calendar.
- Here you will see their calendar listed at the bottom left along with other users. Since this calendar will be shared with other users, you will want to rename it to something which indicates it is a group calendar, such as Firm Calendar, or Team Calendar.
- To do so, click the pencil icon and type n the new calendar name and click Save.
- Next, you will want to make sure that each user has access to this user's calendar.
- To verify, go to Account > User Management, and edit each user to see if they have any calendar restrictions in place. Each user will need permission to this users calendar to access the team calendar.
- Once that is done, each user will then have the ability to add events to the team calendar.
- If you would like this to be the default calendar for all users, they will each need to log in, go to Setup > My Settings > My Preferences and change their default calendar to the team calendar.


text:
Torque Made Easy
ePropelled starter generators provide the power generation of an alternator but have enough torque to start the engine from the onboard battery. They allow for extended flight time, reduced noise, and increased power, and can support hybrid applications.
Our starter generators are able to withstand temperatures of up to 400F. The starter generators are robust in a way that they are able to absorb uneven combustion produced by engine torque.
ePropelled starter generators can be paired with our intelligent power systems (iPS) and electronic engine starters (EES) for the smartest onboard systems in the industry.
Starter Generators (SGs)
Sufficient power to assist the internal combustion engine. The engine can then be sized for steady flight rather than exclusively for peak power requirements.
Battery power to extend flight time or land the aircraft in the event of a fuel emergency.
Convert to electric power temporarily to reduce the noise of internal combustion engines.
SG750 is small (fitting in the palm of your hand) and weighs just under one pound (440 g). It can produce up to 1,000 W of output power.
SG1500 is 5 inches (127 mm) in diameter and weighs 2.5 pounds (1,132 g). It can produce up to 2,000 W of output power.
SG3000 is small and weighs only 2.5 pounds (1,132 g). It can produce up to 4,000 W of output power.
SG6000 weighs only 5.4 pounds (2,450 g). It can produce almost 9,000 W of output power.
SG12000 is the largest model in the family, weighing just under 10 pounds (4,300 g). It can produce over 14,000 W of output power.


Kemptville to Kingston distance, location, road map and direction
Kemptville is located in Canada at the longitude of -75.63 and latitude of 45.02. Kingston is located in Jamaica at the longitude of -76.8 and latitude of 17.99.
Distance between Kemptville and Kingston
The total straight line distance between Kemptville and Kingston is 3008 KM (kilometers) and 411.58 meters. The miles based distance from Kemptville to Kingston is 1869.3 miles. This is a straight line distance and so most of the time the actual travel distance between Kemptville and Kingston may be higher or vary due to curvature of the road.
Time Difference between Kemptville and Kingston
Kemptville universal time is -5.042 Coordinated Universal Time(UTC) and Kingston universal time is -5.12 UTC. The time difference between Kemptville and Kingston is 0.078 decimal hours. Note: Kemptville and Kingston time calculation is based on UTC time of the particular city. It may vary from country standard time, local time etc.
Kemptville To Kingston travel time
Kemptville is located around 3008 KM away from Kingston so if you travel at the consistant speed of 50 KM per hour you can reach Kingston in 60.17 hours. Your Kingston travel time may vary due to your bus speed, train speed or depending upon the vehicle you use.
Kemptville To Kingston road map
Kemptville is located nearly north side to Kingston. The given north direction from Kemptville is only approximate. The given google map shows the direction in which the blue color line indicates road connectivity to Kingston. In the travel map towards Kingston you may find enroute hotels, tourist spots, picnic spots, petrol pumps and various religious places. The given google map is not comfortable to view all the places as per your expectation then to view street maps, local places see our detailed map here.
Kemptville To Kingston driving direction
The following diriving direction guides you to reach Kingston from Kemptville. Our straight line distance may vary from google distance.
Travel Distance from Kemptville
Travelers and visitors are welcome to write more travel information about Kemptville and Kingston.
Name : Email :


» » Robo-Real: Board Game to PC Game
Robo-Real: Board Game to PC Game
posted in: Studio 0
Download Game: _URL_
In the beginning there was a plan: to develop one of "GAMES magazine's Top 100 board games for 1995" 8, Robo Rally, into a computer game. With this goal, several problems were revealed. Not only was there a need to justify programming an analog game into a digital format, but for the most part developing an equally entertaining game for only one player. As most board games make evident, "it takes two" 1 to tango. In order to produce a single player digital version of an analog multi-player game, it became necessary to investigate other digital adaptations of analog games. The emulation of board games into the digital world opens up new and exciting possibilities in the way of human interaction with games. Real-Time Robo-Rally© was thus designed to emulate and modify the board game Robo Rally so that it could be played by one person on a computer.
Real Time Robo Rally (RTRR) was designed as an adaptation of the original board game. As with every adaptation, RTRR faced practical logistic questions.
"Generally, you expect a classic board game adaptation to fall into one of two categories. Either it's so completely untrue to the original that you wonder why they named it after the game in the first place, or it's such a painstaking duplication that you might as well just break out the actual board game." 2
In order to escape these common results of board game adaptation, it was necessary to define the goals of RTRR. The objective of the original Robo Rally is to trigger the interaction of at least two players. The goal of the game is to reach a destination on a square matrix game board. There are obstacles such as lasers, holes, walls, and conveyer belts that provide an element of chance and risk. If the cards are played right, given the obstacles are overcome, one player will reach the destination first and win the game. The objective of the board game is, to instigate interactivity with other players who are all competing to arrive at the same goal. In the case of RTRR the objective is similar, in that the player is trying to get to a predefined location on a matrix, but the interaction is with a computer. The original board game objectives change because victory is gained as a result of a personal aspiration and there is only one competitor.
To develop a single player game, other digitally adopted single player games were examined. Most single player games developed in flash, such as Galactic Tennis 3, are based on hand eye coordination. The Microsoft Windows game Solitaire 4 was studied as it is a turn based strategic single player game. Solitaire uses both an element of chance, playing cards, and a single goal achieved by one player. Each move must be calculated based on the last move and the games' narrative is constructed 'on the fly'. Similarly, the narrative in RTRR is developed in a linear fashion and each move depends on the last move. "There is a lot of strategy in it, although it might not be obvious until you reach level 3." 5 The most entertaining factor then becomes the element of chance. The player does not know what card to expect and therefore is not able to predetermine the next move. The challenge is to use the limited selection of cards to move a player to a final destination. As such, solitaire was a model for the adaptation of Robo Rally into RTRR.
After considering the element of adaptation from the original game, the real question becomes; 'why make the game digital?' "This involves such questions as how the original work is changed to allow for interactivity and the completion of an objective..." 6 The answer is in the extensive window of opportunity to add new and relevant media elements. RTRR uses sound, animation, and music that is not available in the analog version. All of these components allow for a stage set that adds to interactive enjoyment of the game. The sounds used give the player a sense of space. The animations suggest a virtual course of action. The music sets a relaxed setting and an ambient atmosphere. All of these elements make relevant the addition of new media types in the adaptation of the original game. In the original game, each move is signified by an analog action of moving the game piece according to the card selected. In RTRR, an animation represents the movement of a playing piece. Therefore, the user is immersed in the character of the game piece. The audio cues and sounds that react to the player's clicks give a robotic-like feel to the character further developing a connection with the user and the playing piece.
 "You could do everything... you had your sound which you could modify and the graphics corresponded well with the user and the game... so the environment was totally connected and the player was connected to the environment." 7
This connection between the player and the game also makes it easy to develop other interactive elements.
An important interactive element RTRR has, that is obviously not available in the analog version, is the ability of the player to modify the environment. The game offers a pop-up menu that lists several ambient atmospheric music samples. The player can also turn the background audio off. This may seem like a small feature to the digital version but the implications are enormous. The user now has the power to select different mood settings and thus further interact with the game. It is through this interaction and the immersion of the player into the gaming interface that allows for a more enjoyable gaming experience.
The adaptation of Robo Rally into Real Time Robo Rally©, as with the adaptation of any board game into a video game, involved many questions. Why make the game digital; why change elements of the original game, and what does the new game offer in addition to the old game's structure? Analyzing other adaptations, understanding digital media and interaction provides some of the answers. The adaptation of board games into computer games provides the user with new and more involving experiences that challenge the gamer even further.
Works and Sources Sighted:
1. _URL_
2. Crowe, Greg. "Risk II." _URL_: Noble Order Press Enterprises Inc. 2000.
3. _URL_
4. Microsoft Windows. "Solitaire" (video game).
5. Eskandar, Remon. Usability Tester. March, 2003.
6. Wolf, Mark J. P. Genre and the Video Game. Texas: University of Texas Press, 2000.
7. Rauscher, Sarah. Usability Tester. March, 2003.
8. _URL_


operator - method
 1. @Since('3.3')
Pointer<Int16> operator -(
 1. int offset
)
A pointer to the offsetth Int16 before this one.
Equivalent to this + (-offset).
Returns a pointer to the Int16 whose address is offset times the size of Int16 before the address of this pointer. That is, (this - offset).address == this.address - offset * sizeOf<Int16>().
Also, (this - offset).value is equivalent to this[-offset], and similarly for setting,
Implementation
@Since('3.3')
@pragma("vm:prefer-inline")
Pointer<Int16> operator -(int offset) =>
 Pointer.fromAddress(address - sizeOf<Int16>() * offset);


How to handle and avoid high CPU or Memory usage
High CPU usage during a period of time might lead to steal time and your machine might start throttle. If the cluster runs low of either RAM or disk space publishing will the halted until your consumers have processed enough messages. This article describes the most common errors and how to avoid them before they even happen.
This is a living document that is continually updated. Last updated March 2019.
We have during years seen different reasons for crashed or unresponsive CloudAMQP/RabbitMQ servers. Too many queued messages, high message rate during a long time or frequently opened and closed connections have been the most common reasons for high CPU usage. To protect against this we have added and made some tools available that help address performance issues promptly and automatically before they impact your business.
First of all - we recommend all users on dedicated plans to activate CPU and Memory alarms through the control panel. When CPU alarm is enabled you will receive a notification when you are using more than 80% of the available CPU. When Memory alarm is enabled you will receive a notification when you are using more than 90% of the available memory. Read more about our alarms in the monitoring pages.
Troubleshooting RabbitMQ
General tips and tools to keep in mind once you start troubleshooting your RabbitMQ server.
Server Metrics
Server Metrics will show performance metrics from your server. CloudAMQP shows CPU Usage Monitoring and Memory Usage Monitoring. Do you see any CPU or memory spikes? Do you notice some changes in the graph during a specific time? Did you do any changes in your code around that time?
RabbitMQ Management interface
If you are able to open the RabbitMQ mgmt interface - do that and check that everything is looking normal; Everything from number of queues to number of channels to messages in your queues.
Memory CPU RabbitMQ
RabbitMQ Log stream
RabbitMQ Log Stream show a live log from RabbitMQ. Do you see new unknown errors in your log?
Most common errors/mistakes
Here follow a list of the most common errors/mistakes we have seen on misbehaving servers:
1. Too many queued messages
RabbitMQ's queues are fastest when they're empty. If the (default) queue receives messages at a faster rate than the consumers can handle, the queue will start growing and eventually it will get slower. By default, queues keep an in-memory cache of messages that's filled up as messages are published into RabbitMQ. The idea of this cache is to be able to deliver messages to consumers as fast as possible As the queue grows, it will require more memory. A high RAM usage could indicate that the number of queued messages rapidly went up. When this happens, RabbitMQ will start flushing (page out) messages to disk in order to free up RAM and when that happens queueing speeds will deteriorate. This paging process can take some time and will block the queue from processing messages. When there is a lot to page out, it can take considerable time nd will effect the performance of the broker. The CPU cost per message will be much higher than when the queue was empty (the messages now have to be queued up). CPU I/O Wait will probably get high, which indicates the percentage of time the CPU has to wait on the disk.
For optimal performance, queues should always stay around 0.
Are you not using lazy queues? CloudAMQP is by default using lazy queues (available from RabbitMQ v3.6) instead of default queues in RabbitMQ. If you are sending a lot of messages at once (e.g. processing batch jobs) or know that you need to queue up a lot of messages, we recommend you to enable lazy queue. Lazy queues are queues where the messages are automatically stored to disk. Only when messages are needed, are messages loaded into memory. With lazy queues, the messages go straight to disk and thereby the RAM usage is minimized. A potential drawback with lazy queues is that the I/O to the disk will increase. Read more about lazy queues in Stopping the stampeding herd problem with lazy queues.
Are your consumers connected? You should first of all check if your consumers are connected - consumer alarms can be activated from the console. The alarms will be triggered to send notifications when the number of consumers for a queue is less than or equal to a given number of consumers.
Are you running an old version of RabbitMQ? If you are running RabbitMQ version 3.4 or lower - upgrade - with RabbitMQ 3.5 and newer you can basically queue until the disk runs out unlike in 3.4 where the message index had to be kept in memory at all time. You can upgrade the version from the console (next to where you reboot/restart the instance).
We recommend you to enable the queue length alarm from the console or, if possible, to set a max-length or a max-ttl on messages in your queues.
If you already have too many messages in the queue - you need to start consume more messages or get your queues drained. If you are able to turn off your publishers then do that until you have managed to consume the messages from the queue.
Too many unacknowledged messages.
All unacknowledged messages have to reside in RAM on the servers. If you have too many unacknowledged messages you will run out of RAM. An efficient way to limit unacknowledged messages is to limit how many messages your clients prefetch. Read more about consumer prefetch on RabbitMQ.com: Consumer Prefetch
2. Too high message throughput
CPU User time indicates the percentage of time your program spends executing instructions in the CPU - in this case, the time the CPU spent running RabbitMQ. If CPU User time is high, it could be due to high message throughput.
Dedicated plans are not artificially limited in any way, the maximum performance is determined by the underlying instance type. Every plan has a given Max msgs/s, that is the approximate burst speed we have measured during benchmark testing. Burst speed means that you temporarily can enjoy the highest speed but after a certain amount of time or once the quota has been exceeded, you might automatically be knocked down to a slower speed.
Metrics for an instance with CPU steal time
high message throughput High message throughput
Most of our benchmark tests are done with RabbitMQ PerfTest tool with one queue, one publisher and one customer. Durable queues/exchanges have been used and transient messages with default message size have been used. There are a lot of other factors too that plays in, like the type of routing, if you ack or auto-ack, datacenter, if you publish with confirmation or not etc. If you, for example, are publishing large persistent messages, it will result in a lot of I/O wait time for the CPU. Read more about Load testing and performance measurements in RabbitMQ. You need to run your own tests to ensure the perfomance on a given plan.
Decrease the average load or upgrade/migrate
When you have too high message throughput you should either try to decrease the average load, or upgrade/migrate to a larger plan. If you want to rescale your cluster, go to the CloudAMQP Control Panel, and choose edit for the instance you want to reconfigure. Here you have the ability to add or remove nodes, and change plan altogether. More about migration can be found in: Migrate between plans
Python Celery
Celery sends a lot of "unnecessary" messages, due to their gossip, mingle and events. You can disable it by adding --without-gossip --without-mingle --without-heartbeat to the Celery worker command line arguments and add CELERY_SEND_EVENTS = False to your settings.py. Take a look at our Celery documentation for up to date information about Celery Settings.
3. Too many queues
RabbitMQ can handle a lot of queues, but each queue will, of course, require some resources. CloudAMQP plans are not artificially limited in any way, the maximum performance is determined by the underlying instance type and so are the number of queues. Too many queues will also use a lot of resources in the stats/mgmt db. If the queues suddenly start to pile up, you might have a queue leak. If you can't find the leakage you can add a queue-ttl policy. The cluster will clean up it self for "dead-queues" - old queues will automatically be removed. You can read more about TTL at RabbitMQ.com: Time-To-Live and Expiration
Python Celery
If you use Python Celery, make sure that you either consume the results or disable the result backend (set CELERY_RESULT_BACKEND = None).
Connections and channels
Each connection uses at least one hundred kB, even more if TLS is used.
4. Frequently opening and closing connections
If CPU System time is high, you should check how you are handling your connections.
RabbitMQ connections are a lot more resource heavy than channels. Connections should be long lived, and channels can be opened and closed more frequently. Best practise is to reuse connections and multiplex a connection between threads with channels - in other words, if you have as many connections as channels you might need to take a look at your architecture. You should ideally only have one connection per process, and


text:
R&B on the National Stage
Rhythm and blues is identified internationally as a signature music of the United States, and in recent decades, several prestigious national awards have recognized rhythm and blues artists for their contributions to America's cultural heritage.
The National Medal of Arts, the highest honor given to artists by the United States government, has been awarded to artists Aretha Franklin, Quincy Jones, and William "Smokey" Robinson. The Presidential Medal of Freedom, America's highest civilian award, recognizing exceptional meritorious service, has celebrated the contributions of Riley "B.B." King and Aretha Franklin. Since 1982, the National Endowment for the Arts National Heritage Fellowships, which are modeled after Japan's "National Living Treasures," has honored Charles Brown, Riley "B.B." King, Roebuck "Pops" Staples, and Mavis Staples. The Kennedy Center Honors, acknowledging a life dedicated to artistic and cultural endeavors, has paid tribute to Quincy Jones, Smokey Robinson, Diana Ross, and Stevie Wonder.
The Rhythm and Blues program is produced in partnership with the Smithsonian National Museum of African American History and Culture.
click to enlarge and view captions


how can I make the "Home" and "End" keys on the Apple Extended Keyboard work as line commands rather than Page commands?
ie pressing "Home" key makes cursor jump to beginning of current line of text, and pressing the "End" key makes cursor jump to the end of the line of text.
Back To Product
Follow this Question
1 Answer from the Community
 - While this does not directly answer the question a cmd+right arrow moves you to the end of the sentence and the cmd+left arrow moves you to the start. Also the opt+right arrow moves you to the end of a word while opt+left arrow moves you to the start of a word. Unless someone comes up with a modifier you will need to go to some keyboard program like simple keys to redefine the keys. I do not think you can redefine there actions in the keyboard preference.
 Was this useful? Answer 1
 1 of 2 people found this useful
Related Questions


Viewing system resources utilization for the last 30 days
The system overview graph shows system resources utilization in percentage for the last 30 days. This overview can be used to understand the behavior of resources at a coarse level. To understand the causes of heavy load during a specific period, you must perform a deeper analysis.
The graph is based upon an analysis that is automatically created and executed by the Auto Analysis system task for each BMC TrueSight Capacity Optimization Workspace domain.
The System overview tab is not available by default. If you have created a new domain and want to force the System overview chart to become available immediately, you can enable it by configuring the Generate domain-level system/business driver overview option in the Auto analyzer task.
Note
By default, the Generate domain-level system/business driver overview option is not enabled, as automatic generation of charts for all domains can be a computationally expensive operation, especially in large environments.
After you configure the Auto analyzer task to display the System overview tab, you can access it by clicking Workspace > All Domains > domainName and then clicking System overview in the working area on the right.
Sample graph legend
Green: Utilization between 0% and 50%
Yellow: Utilization between 50% and 75%
Orange-red: Alerts for heavy utilization, over 75%
White: No data available
System overview graph: Heatmap of resources utilization (percentage)
Was this page helpful? Yes No Submitting... Thank you
Comments


text:
Микрокальцит (мрамор молотый) различных фракций Microcalcite (ground marble) of different fractions is one of the most popular materials in the sector of industry and building construction.
Microcalcite has a calcium carbonate content of at least 98.5 %, microcalcite whiteness is of at least 96%.
Microcalcite can be of different fractions: from 2 µm to 500 µm. Microcalcite is a safe and incombustible material. Microcalcite has strength and resistance to external influences, including acidic mediums and ultraviolet. The micro calcite has good adhesive properties.
Microcalcite of fractions 2, 5 and 7 microns is used for the manufacture of drilling muds. Microcalcite is used for the production of plastics, insulation materials, rubber technical products. It is used in the paint-and-varnish industry in the production of paints and primers. Microcalcite of larger fractions is widely used in the manufacture of building mixtures, cleaning powders, linoleum and roofing materials.
Our company offers Microcalcite of both Russian and imported production.


text:
Differentiate, distinguish, compare and explain what is the main difference between Pteridophyta and Phanerogams.
Difference between Pteridophyta and Phanerogams
1. Pteridophyta have inconspicuous or less differentiated reproductive organs. Phanerogams have well developed reproductive organs.
2. Pteridophyta produce naked embryos called spores. Phanerogams produce seeds.
3. Ferns, Marsdea, Equisetum, etc. are examples of ptendophyta. Anus, Cycas, fir, etc. are examples of phanerogams.


text:
Definition: School has clear rules and expectations for appropriate behaviors. Students are clear about the behaviors expected of them and experience consistency in boundary enforcement.
Are the students clear about the expectations? Rules? Do the students have a say in the rules for their classrooms or for their school?
Aggregate survey results: 78% of the students at Discovering Choices perceive the school having a clear set of rules and expectations for behaviors.


NextPrevUpTopContentsIndex
6.5 Inferencing States
An inferencing state represents all the state needed to run the forward chaining interpreter, including the object base, the current cycle number and the set of unfired instantiations. It does not include rule or context definitions or any backward chaining state information.
6.5.1 Creating and Maintaining Inferencing States
6.5.2 The Current Inferencing State
6.5.3 Uses of Inferencing States
KnowledgeWorks and Prolog User Guide (Windows version) - 11 Jul 2006
NextPrevUpTopContentsIndex


error: attribute 'a' at (string):1:12 already defined at (string):1:5
nix-repl> let a = 3; in let a = 8; in a
8

You cannot refer to variables in a let expression outside of it:

nix-repl> let a = (let b = 3; in b); in b
error: undefined variable 'b' at (string):1:31

You can refer to variables in the let expression when assigning variables like with recursive sets:

nix-repl> let a = 4; b = a + 5; in b
9

So beware when you want to refer to a variable from the outer scope, but it's being defined in the current let expression. Same applies to recursive sets.

With expression

This kind of expression is something you hardly see in other languages. Think of it like a more granular "using" of C++, or "from module import *" from Python. You decide per-expression when to include symbols into the scope.

nix-repl> longName = { a = 3; b = 4; }
nix-repl> longName.a + longName.b
7
nix-repl> with longName; a + b
7

That's it, it takes a set and includes symbols in the scope of the inner expression. Of course, only valid identifiers from the set keys will be included.

If a symbol exists in the outer scope and also in the "with" scope, it will not be shadowed. You can however still refer to the set:

nix-repl> let a = 10; in with longName; a + b
14
nix-repl> let a = 10; in with longName; longName.a + b
7

Laziness

Nix evaluates expression only <a href="_URL_ needed. This is a great feature when working with packages.

nix-repl> let a = builtins.div 4 0; b = 6; in b
6

Since "a" is not needed, there's no error about division by zero, because the expression is not in need to be evaluated.

That's why we can have all the packages <a href="_URL_ here, yet access to specific packages very fast.

Next pill

...we will talk about functions and imports. In this pill I've tried to avoid function calls as much as possible, otherwise the post would have been too long.

Nix pill 5 is available for <a href="_URL_ here.

To be notified about the new pill, stay tuned on <a href="_URL_ href="_URL_ subscribe to the <a href="_URL_ rss.

Luca Brunohttp://www.blogger.com/profile/06329046616630750783noreply@blogger.com44tag:blogger.com,1999:blog-32054652.post-46872653290982328912014-07-25T07:37:00.000-07:002014-07-26T10:54:15.115-07:00Nix pill 3: enter the environmentWelcome to the third Nix pill. In the previous <a href="_URL_ pill we have installed Nix on our running system. Now we can finally play with it a little, things also apply to NixOS users.

Enter the environment

In the previous pill we created a nix user, so let's start by switching user with su - nix. If your ~/.profile got evaluated, then you should now be able to run commands like nix-env and nix-store.
If that's not the case:

$ source ~/.nix-profile/etc/profile.d/nix.sh

I remind you, ~/.nix-profile/etc points to the nix-1.7 derivation. At this point, we are in our nix user profile.

Install something

Finally something practical! Installation in the nix environment is an interesting process. Let's install <a href="_URL_ a simple command line tool for playing with the Nix language. Yes, Nix is a <a href="_URL_ lazy, functional language, not only a set of tools to manage derivations.

Back to the installation:

$ nix-env -i nix-repl

installing 'nix-repl-1.7-1734e8a'
these paths will be fetched (18.61 MiB download, 69.53 MiB unpacked):
[...]
building path(s) '/nix/store/f01lfzbw7n0yzhsjd33xfj77li9raljv-user-environment'
created 24 symlinks in user environment

Now you can run nix-repl. Things to notice:

We did install software as user, only for the nix user.

It created a new user environment. That's a new generation of our nix user profile.

The <a href="_URL_ manages environments, profiles and their generations.

We


text:
When ancient ruins were spotted in aerial photographs of the town of Urla in Izmir, steps were taken to initiate Turkey's first underwater excavation. As a result a new archaeology park, Limantepe, was born.
|Excavation area at Liman Tepe [Credit: Geocities]
Limantepe is Turkey's first underwater excavation site and work is being carried out there with the support of Ankara University's Underwater Research Center. The area has been shown to be one of the 10 most important underwater excavations sites in the world, according to the head of the excavation, Prof. Hayat Erkanal. Limantepe is the site of an ancient Greek city, mear the site of Klazomenai, dating founded in the Archaic Greek era, and also a site where hunter-gatherer societies later evolved into agricultural ones. The excavation began on land, with the underwater portion of the work beginning coincidentally, Erkanal said.
The first underwater archeaology park
"If someone had told me that this would be one of the important underwater archeological sites I would have laughed. Everything developed coincidentally," Erkanal said. "We were given several aerial photos that the municipality had taken in preparation for landscaping work in 1999. We saw some spots connected to the coast, and there we found the remnants of a harbor.
In the first years, we tried to conduct the excavations without professional support, but it didn't work out. In those days, the University of Haifa in Israel and Ankara University signed an agreement. We asked for help [from them] as they had experience with underwater excavation. We worked together and learned many things.
There had been some work done previously on the wrecks of ancient ships, but no underwater excavations.
When Ankara University provided the necessary equipment, we established our underwater excavation team for the first time. The team quickly began finding important information. A two-winged harbor with a height of 350 to 400 meters, dating back to the 6th century B.C., was unearthed, which was the largest harbor of the time. Now, we are working at a depth of 7 to 8 meters on the floor of the harbor, where we have found the remains of a city spreading over one square kilometer."
The process of desalinating the artifacts from the site will take six months, and it will be a year before they are ready to be exhibited, Erkanal said.
|Two of the artefacts unearthed during the excavation works [Credit: AA]
"We are finding many artifacts in the underwater excavation at Limantepe. When the laboratory is ready, we will be able to excavate a lot of historical artifacts. But we have to desalinate them first, to keep the artifacts in good condition. We can dig out the materials over several months, and then the other institutions will continue working on the pieces for a longer period. Several museums could be filled with these artifacts," Erkanal said.
The team working at the site consists of 70 people, including students who are being trained to work on excavations throughout Turkey. Excavations will also be conducted at Teos and Eritrai.
Artifacts from ships are already being exhibited to shed light on the history of the site and attract citizens' attention, Erkanal said. Many people visit the center to see how underwater excavations are carried out.
Tourists interested in excavation works
"Tourists are interested in the excavation work, so we established a program whereby tourism companies bring groups of tourists on determined days, and groups can visit by appointment. This led us to [creating] the Archeo Park project.
First we decided to establish a museum, but there is already work underway to establish a Museum of Aegean Civilizations in Izmir.
We thought that a museum in the town wouldn't draw the intended number of tourists. We plan to exhibit ships and artifacts from them, to help describe the lifestyles of the past. We will use historical ships to take visitors on short trips, and people will be able to view an ancient ship dating back 3,000 years. Urla Municipality allocated 1.1 hectares of land to the project. This year, we are going to establish an Archeo Park with the support of the Koç Foundation, and next year, we are going to open the park, making Urla a significant world archaeological center. In the future, we plan to transform the park into the Naval Archeology Institution," said Erkanal.
Source: Hurriyet Daily News [Kily 18, 2012]


text:
Marine Wildlife Encyclopedia
Acoel Flatworm Waminoa species
The diminutive acoel flatworms look like colored spots on the bubble coral on which they live. Their ultra-thin bodies glide over the coral surface as they graze, probably eating organic debris trapped by coral mucus. Acoel flatworms have no eyes and instead of a gut, they have a network of digestive cells. They are able to reproduce by fragmentation, each piece forming a new individual. The genus is difficult to identify to species level and the distribution of acoel flatworms is uncertain.


text:
Norwegian Cancer Society
The Norwegian Cancer Society (NCS) is a voluntary, non-profit civil society organisation which works for cancer prevention and control in Norway and internationally. It contributes to targeted efforts in cancer information, prevention, advocacy, research, care, and international cooperation.
The Norwegian Cancer Society's main objectives are to ensure that:
- fewer people develop cancer
- more people survive cancer
- people affected by cancer have the best quality of life
The activities of the Norwegian Cancer Society are funded thanks to the generous contributions of its members, bequests, and allocations form the national lottery funds".


Mathematical English Usage - a Dictionary
by Jerzy Trzeciak
[see also: apart from, besides
for all n except a finite number
for no x except the unique solution of......
[Note the difference between besides, except and apart from: besides usually "adds'' something, except "subtracts'', and apart from can be used in both senses; after no, nothing etc., all three can be used.]
Then G is differentiable except for a jump at x=0.
Except for these two lemmas, we make no use of the results of [4].
That is---except the use of relaxed controls---precisely the stochastic Bellman equation.
Then F is invertible except possibly on an at most countable set.
Thus, F is invertible except where x=0.
Hence F is invertible except at countably many points.
The desingularization of f is X except when Q and Q' have a common factor, in which case......
We have not required f to be......, and we shall not do so except when explicitly stated.
 The trivial cases when the family consists of only one set are excepted.
Back to main page


text:
The City of Springfield has contracted the Ozarks Environmental and Water Resources Institute at Missouri State University to measure stream flow and sample water quality parameters in the Jordan Creek Underground to determine potential inputs from leaking sewer lines and other shallow groundwater sources. Exfiltration losses from leaking sanitary sewer systems can cause pollution problems in receiving streams and water quality surveys have been used to locate wastewater exfiltration from sanitary sewers into local streams (Dove et al., 2013, Owen et al. 2017, Owen et al. 2018). Jordan Creek is located in central Springfield, Missouri and flows through an underground box culvert that was built in 1928 within the old industrial area of downtown Springfield. The purpose of this study is to quantify variations in water quality at base flow along a 4,400 ft reach of the Jordan Creek that includes the portion that flows through the underground box culvert between Grant Ave. and Sherman Parkway in downtown Springfield.
Owen, Marc R.; LeTarte, Sarah; and Pavlowsky, Robert T., "Flow and Water Quality Assessment of the Jordan Creek Underground, Springfield, Missouri" (2019). OEWRI Technical Reports. 43.


Navigation
User Objects
On this page
 - Overview
 - Schema
 - Summary
MongoDB Realm represents each application user internally with a User Object that includes a unique ID and additional metadata that describes the user. You can access user objects in the following ways:
User objects have the following form:
{
"id": "<Unique User ID>",
"type": "<User Type>",
"data": {
"<Metadata Field>": <Value>,
...
},
"custom_data": {
"<Custom Data Field>": <Value>,
...
},
"identities": [
{
"id": <Unique Identity ID>,
"provider_type": "<Authentication Provider>",
"data": {
"<Metadata Field>": <Value>,
...
}
}
]
}
Field
Type
Description
id
string
A string representation of the ObjectId that uniquely identifies the user.
type
string
The type of the user. The following types are possible:
Type
Description
"normal"
The user is an application user logged in through an authentication provider other than the API Key provider.
"server"
The user is a server process logged in with any type of Realm API Key.
"system"
The user is the system user that bypasses all rules.
data
document
A document that contains metadata that describes the user. This field combines the data for all identities associated with the user, so the exact field names and values depend on which authentication providers the user has authenticated with.
Note
System Functions Have No User Data
In system functions, the user.data object is empty. Use context.runningAsSystem() to test if the function is running as a system user.
custom_data
document
A document from your application's custom user data collection that specifies the user's ID. You can use the custom user data collection to store arbitrary data about your application's users. If you set the name field, Realm populates the username metadata field with the return value of name. Realm automatically fetches a new copy of the data whenever a user refreshes their access token, such as when they log in. The underlying data is a regular MongoDB document, so you can use standard CRUD operations through the MongoDB Atlas service to define and modify the user's custom data.
Note
Avoid Storing Large Custom User Data
Custom user data is limited to 16MB, the maximum size of a MongoDB document. To avoid hitting this limit, consider storing small and relatively static user data in each custom user data document, such as the user's preferred language or the URL of their avatar image. For data that is large, unbounded, or frequently updated, consider only storing a reference to the data in the custom user document or storing the data with a reference to the user's ID rather than in the custom user document.
identities
array
A list of authentication provider identities associated with the user. When a user first logs in with a specific provider, Realm associates the user with an identity object that contains a unique identifier and additional metadata about the user from the provider. For subsequent logins, Realm refreshes the existing identity data but does not create a new identity. Identity objects have the following form:
{
"id": "<Unique ID>",
"provider_type": "<Provider Name>",
"data": {
"<Metadata Field>": <Value>,
...
}
}
Field Name
Description
id
A provider-generated string that uniquely identifies this identity
provider_type
The type of authentication provider associated with this identity.
data
Additional metadata from the authentication provider that describes the user. The exact field names and values will vary depending on which authentication providers the user has logged in with. For a provider-specific breakdown of user identity data, see User Metadata.
Note
In general, MongoDB Realm creates a user object for a given user the first time that they authenticate. If you create a test Email/Password user through the Realm UI, Realm creates that user's user object immediately.
 - The user object contains relevant information about the user that you can use in your app logic.
 - The exact information contained in the user object depends on the authentication providers used.
Give Feedback
On this page
 - Overview
 - Schema
 - Summary


text:
The topic in context
Recently published works on the topic
Publications per year
Earliest published works on the topic
Authors publishing about the topic
Authors scored according to field of work, publications within the topic
and citing works within the topic.
Missing authors here?
Then go to the
page to resolve the author names.
The 25 most prolific authors and some of their key co-authors.
Awards received by authors who published on the topic
Co-occurring topics graph
Only a maximum of the 400 most often occuring links are shown.
Co-occurring topics map
Venues and series publishing works about the topic
Works cited from works on the topic
Authors cited from works on the topic
Map of organizations associated with works about the topic
The colours indicate how many publications on the topic are associated with organizations in the given location, as detailed in the legend (top right).
Citation graph of works about the topic, aggregated by country
The graph indicates the countries associated with organizations whose authors have published works on the topic, and indicates the most cited countries (arrowheads) as well as the countries they are most frequently cited from.