Concepts - Visual Parent in Qt Quick
Visual Parent
When creating visual scenes with Qt Quick, it is important to understand the concept of the visual parent.
The concept of the visual parent in Qt Quick is separate from, but related to, the concept of the object parent within the QObject parent hierarchy. All QML objects have an object parent, which is determined by the object hierarchy in which the object is declared. When working with the QtQuick
module, the Item type is the base type for all visual items provided by this module, and it provides the concept of an additional visual parent, as defined by an item's parent property. Every item has a visual parent; if an item's parent property value is null
, the item will not be rendered in the scene.
Any object assigned to an item's data property becomes a child of the item within its QObject hierarchy, for memory management purposes. Additionally, if an object added to the data property is of the Item type, it is also assigned to the Item::children property and becomes a child of the item within the visual scene hierarchy. (Most Qt Quick hierarchy crawling algorithms, especially the rendering algorithms, only consider the visual parent hierarchy.)
For convenience, the Item data property is its default property. This means that any child item declared within an Item object without being assigned to a specific property is automatically assigned to the data property and becomes a child of the item as described above. So, the two code blocks below produce the same result, and you will almost always see the form shown below left, rather than the explicit data
assignment shown below right:
import QtQuick 2.0 Item { width: 100; height: 100 Rectangle { width: 50; height: 50; color: "red" } } | import QtQuick 2.0 Item { width: 100; height: 100 data: [ Rectangle { width: 50; height: 50; color: "red" } ] } |
An item's visual parent can be changed at any time by setting its parent property. Thus, an item's visual parent may not necessarily be the same as its object parent.
When an item becomes the child of another item:
- The child's parent refers to its parent item
- The parent's children and childrenRect properties takes that child into account
Declaring an item as a child of another does not automatically mean that the child item will be appropriately positioned or sized to fit within its parent. Some QML types may have in-built behaviors that affect the positioning of child items — for example, a Row object automatically re-positions its children into a horizontal formation — but these are behaviors enforced by the types' own specific implementations. Additionally, a parent item will not automatically clip its children to visually contain them within the parent's visual bounds, unless its clip property is set to true.
The visual parent of an item may come under consideration in particular circumstances, as described in the sections below.
Item Coordinates
As item coordinates are relative to the visual parent, they can be affected by changes to the visual hierarchy. See the Visual Coordinates concept page for more detail.
Stacking Order
Qt Quick items use a recursive drawing algorithm for determining which items are drawn on top in case of collisions. In general items are drawn on top of their parent items, in the order they were created (or specified in the QML file). So in the following example, the blue rectangle will be drawn on top of the green rectangle:
Rectangle { color: "#272822" width: 320 height: 480 Rectangle { y: 64 width: 256 height: 256 color: "green" } Rectangle { x: 64 y: 172 width: 256 height: 256 color: "blue" } }
Because the algorithm recurses through the visual item hierarchy, any children of the green rectangle will also be drawn beneath the blue rectangle and beneath any of the blue rectangle's children.
Stacking order can be influenced with the Item::z property. Z values below 0 will stack below the parent, and if z values are assigned then siblings will stack in z-order (with creation order used to break ties). Z values only affect stacking compared to siblings and the parent item. If you have an item which is obscured by a subtree rooted above its parent item, no z value on that item will increase its stacking order to stack above that subtree. To stack that item above the other subtree you'll have to alter z values farther up in the hierarchy, or re-arrange the visual item hierarchy.
Rectangle { color: "#272822" width: 320 height: 480 Rectangle { y: 64 z: 1 width: 256 height: 256 color: "green" Rectangle { x: 192 y: 64 z: 2000 width: 128 height: 128 color: "red" } } Rectangle { x: 64 y: 192 z: 2 width: 256 height: 256 color: "blue" } }
In the above example, the red rectangle has a high z value, but is still stacked below the blue rectangle. This is because it is a child of the green rectangle, and the green rectangle is a sibling of the blue rectangle. The z value of the green rectangle is lower than that of the blue rectangle, so the green rectangle and all children will be stacked beneath the blue rectangle.
Canvas Ownership
The definition of what is rendered in a Qt Quick scene is the visual item tree rooted at QQuickWindow::contentItem. Therefore to add an Item to a specific Qt Quick scene for rendering it needs to become a visual hierarchy child of an Item already in the visual item hierarchy, such as QQuickWindow::contentItem.


Our HUMS avionics implement low cost and lightweight RTB and predictive maintenance, ready to be deployed on large fleets of a variety of rotorcraft
I don't know what this does looks neat though.


What we are trying to do is replcate the functionality of Flash’s trace window in JavaScript to get rid of those nasty alert boxes. Once they flow in, click on any of the div
s eblow to see their onclick
trigger a trace.
To test the new memory feature, try going to another page and then come back (requires cookies).


HW6 Part1
HW6 Part2
HW6 Part3
CNIT 133 HOMEWORK 6 - Part 2
Enter a search index character which you want search in below sentences.
Search Index character:
Type sentences:


When Samantha cried non-stop after virus killed Bugaboo - Telugu News - IndiaGlitz.com
Samantha Akkineni is a lover of pets. She used to own a pet named Bugaboo, who unfortunately died days after the 'Oh Baby' actress brought it home lovingly. Bugaboo's death devastated the Akkineni lady, so much so, she cried inconsolably.
"Bugaboo came with the Parvo virus and died within four days of him coming home. I remember crying so hard I rolled from the dining to the entrance of our apartment, blaming myself and promising I wouldn’t get another dog. A month or so later, Chay started bringing up the topic of another dog because as always Chay knows best ... And on one occasion when I was in a particularly good mood I gave in ... he found Hash for me," the '96' actress writes.
   You can never be completely in control and you shouldn’t try to be .. don’t be so hard on yourself when something bad happens."
She is now happy with Hash, her new pet which celebrated its 1st anniversary the other day.
Trending News
Vijay Sethupathi may be Kamal's villain in 'Indian 2'
8-pack abs hero Bellamkonda to work with Santosh Srinivas
Rajamouli's dad Vijayendra to pen 'Aparajitha Ayodhya'
RGV announces 'Enter The Girl Dragon' teaser, trailer dates
Ambati Rayudu Vs Azharuddin after appeal to KTR
Pic Talk: Chiranjeevi hosts Class of Eighties bash
More News
I couldn't find George in 'George Reddy': Tammareddy
Rajasekhar, Jeevitha to host 'Vana Bhojanalu' for MAA's members
Vijay's niece to marry hero's brother
I am the perfect choice to play Jayalalitha: Nithya Menen
8-pack abs hero Bellamkonda to work with Santosh Srinivas
Rajamouli's dad Vijayendra to pen 'Aparajitha Ayodhya'
Chiranjeevi's new house respects our history & heritage
RGV announces 'Enter The Girl Dragon' teaser, trailer dates
'96', Vijay Deverakonda & Nithiin to rule February
Arjun Suravaram's 'Kanne Kanne' garners terrific response
Vijay Sethupathi may be Kamal's villain in 'Indian 2'
Pic Talk: Chiranjeevi hosts Class of Eighties bash
Naga Chaitanya shines in 'Alludu Birthday Glimpse'
Kangana's transformation suits 'Thalaivi'
Manchu Vishnu's grey character in 'Mosagallu'
'Sarileru Neekevvaru' teaser goes on a rampage
Actress gets cardiac arrest during shoot, hospitalized
Chiranjeevi to grace 'Arjun Suravaram' event
Headlines
Hyd: Hubby catches wife & boyfriend red-handed
Scindia changing Twitter bio sparks speculations
Ambati Rayudu Vs Azharuddin after appeal to KTR
Delete WhatsApp to avoid risk: Telegram founder
Male child won't be punished for marrying 18+ female
One dead as car falls off new flyover in Hyderabad
Shocking!


|
Shopify SDK for Unity
|
Public Member Functions | |
| override void | OnShowConfiguration () |
| Overriden by an implementor to add configurations under the credentials verifier. More... | |
| Public Member Functions inherited from Shopify.UIToolkit.Editor.ShopControllerBaseEditor | |
| virtual void | OnEnable () |
| override void | OnInspectorGUI () |
Additional Inherited Members | |
| Public Attributes inherited from Shopify.UIToolkit.Editor.ShopControllerBaseEditor | |
| IShopControllerBaseEditorView | View |
| Protected Member Functions inherited from Shopify.UIToolkit.Editor.ShopControllerBaseEditor | |
| virtual void | OnClientChanged () |
| Properties inherited from Shopify.UIToolkit.Editor.ShopControllerBaseEditor | |
| ShopControllerBase | Target [get] |
| ShopifyClient?? | Client [get] |
|
inlinevirtual |
Overriden by an implementor to add configurations under the credentials verifier.
Implements Shopify.UIToolkit.Editor.ShopControllerBaseEditor.


Frontier Direct Care Giveaway
--Select State--
Alabama
Alaska
Arizona
Arkansas
California
Colorado
Connecticut
Delaware
District Of Columbia
Florida
Georgia
Hawaii
Idaho
Illinois
Indiana
Iowa
Kansas
Kentucky
Louisiana
Maine
Maryland
Massachusetts
Michigan
Minnesota
Mississippi
Missouri
Montana
Nebraska
Nevada
New Hampshire
New Jersey
New Mexico
New York
North Carolina
North Dakota
Ohio
Oklahoma
Oregon
Pennsylvania
Rhode Island
South Carolina
South Dakota
Tennessee
Texas
Utah
Vermont
Virginia
Washington
West Virginia
Wisconsin
Wyoming
Birth Date
Month
January
February
March
April
May
June
July
August
September
October
November
December
Day
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Select Plan Type
Individual
Business
Submit
We respect your privacy. We will never share or sell any of your personal information.


Are you happy?
Yes
No
Are you a Mum?
Yes
No
Are you this person?
Yes
No
I Love You! Happy Mother's Day!
This is not for you! See you next time.
Google Search
I'm Feeling Lucky


( a) Thermal evolution of luminescence intensity ratio (LIR); ( b) their relative sensitivities for Y 3Al 5−xGa xO 12 nanocrystals; ( c) the temperature at which the maximal value of S 4 was observed; ( d) S 4max as a function of Ga 3+ concentration; ( e, f) the CIE 1931 chromatic coordinates calculated for Y 3Al 4GaO 12:V and Y 3AlGa 4O 12:V nanocrystals, respectively.


epidemic model Fig state MSS method performance methods number observations parameters stochastic time calibration prediction function simulated probability data distribution used using estimating parameter population likelihood infection {border-style LNA additional mean relative results ;():–. epidemics estimation observation px;} #ffffff;} approach attack benchmark models errors prevalence integrated scenarios Click LINK file. given new trajectories (see disease duration true weeks (TIF) (mIRE) Filter Median approximation belief cases described individuals setting statistically use Sciences Stochastic TC. accurate approximate does estimate period rate. set Kalman ODE behavior noise note states transmission (), (e.g. Health Text []. effective filter infectious novel posterior rate small values variance (i.e. algorithm based calculate calculated compartmental epidemics. peak, px; subsection subsequent transition {font-family EnKF I.Poi Poisson analysis assume available better code compartments competing denote diagnoses early estimates font-size future health infectiousness, influenza linear observational observed prior procedure real-time simulation size updating (Benchmark Bayesian CauchemezS, Particle Poi SB–SE SITR accumulated accuracy assumed assumption considered course demonstrate double; emergence emerging ensemble epidemic. evaluate independent inference initial method, methods. outperforms predicting predictions presented public random shown similar spread systems ti, value variable weekly Ensemble Figs Infectious Influenza MSS. Methods Multiple Using [ti−, analysis, border-color border-width compare different following implementation main majority model, models. observing pathogens previous proposed pseudo remains represent reproduction sample sensitivity solid; superior target terms update uses {font-style {font-weight (defined (for (y, ./pnas. ;():e./journal.pone. American Benchmark Black Blue B–E Disease Epidemic Gillespie However, Institutes Markov Mathematics Medicine Method National New Physical Public Shooting Therefore, [], ability absolute account accumulating allows approaches available. biochemical bold complexity correlations courier; current data. demonstrates deterministic diseases. dominant dynamic em; employed error estimated existing expected however, human impact imperfect including infectiousness level make matrix method. observations. original outbreaks partially peak performed possible potential pt;} scenario scenarios. selected significance significantly simulations solution state-of-the-art structure study suggests surveillance test ti] ti−, treatment unobserved vector week


This is a tutorial on how to setup Cocos2dx-win8 for Windows 8 and create a HelloWorld project
OS: Windows 8 consumer preview (8250 build)
IDE: Visual Studio 2011 beta
git(optional): msysgit TortoistGit
Suppose them were all default installed.
From github: git clone https://github.com/cocos2d-x/cocos2dx-win8
or
Download cocos2dx-win8.zip
Suppose we put it on the "d:\cocos2dx-win8"
Choose Templates->Visual C++-> Windows Metro style, select the Cocos2d template to create project like followed snapshot:
Here,we create at "d:\Projects\"
You may see followed snapshot, just click OK and Close vs2011.
Edit CreateProject.bat,set appropriate variable
set PROJECT_NAME=helloworld-cocos2d
set COCOS2D_DIR=d:\cocos2dx-win8
set PROJECT_DIR=d:\Projects\helloworld-cocos2d
Run CreateProject.bat


Toggle navigation
Search Type
Title
Pulisher
Tag
Sign Up
Login
Sign Up Now!
Username
Password
Re-type Password
Email address
Re-type Email address
I agree to the Terms and Conditions
I would like to recieve email promotions and offers from Vapour
Sign up


You will be given a random number at the start of the game.
There are four cakes below. By clicking on a cake you will add a specific amount of points to your total score.

The value of each crystal is hidden form you until you click on it
Each time when the game starts, the game will change the values of each crystal.
Wins: 0
Losses: 0
0


abstract fun onIncomingVoiceStarted(session: Session, stream: IncomingVoiceStream): Unit
When another user begins speaking in the channel, this method is called to provide your app with the new incoming voice stream.
session - the session containing the new stream
session
stream - the new stream
stream


{% extends "explore_base.html" %} {% block main %}
You may now log in to Marine Planner.
Return to Marine Planner


This example would probably be written without a web worker. The point isn't necessarily to illustrate a good use case. Rather, it is to illustrate how to:
Set up a separate web worker thread.
Send a message to that thread to do something
Get a message back from the thread when it is finished


Add Allowed Site
| Action | Allowed Sites | Debug With Name | |
|---|---|---|---|
| All pages with the same Web Origin will be allowed |
| Action | Name | URL | Remove |
|---|---|---|---|
Start the test server on port 9696, eg
cd src/third_party/WebKit/Tools/Scripts ./new-run-webkit-httpd --server start --root=/work/sirius/extension/atopwi/LayoutTests/ --port 9696
Open the test client and navigate to the test(s) you want to run. Use the page action icon to start the tests
Navigate to your unpacked extension directory atopwi/LayoutTests
reload
the chrome://extensions page


redirect to website2
Login With Redirect Logout With Redirect
Get Login State
{{ loginState | json }}
Get User Info
{{ userInfo | json }}


{% extends 'layout.html' %}
{% block body %}
Lorem Ipsum is simply dummy text of the printing and typesetting industry.
Lorem Ipsum has been the industry's standard dummy text ever since the 1500s,
when an unknown printer took a galley of type and scrambled it to make a type specimen book.
It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.
NCAA Football - All Conferences
{% if conferences %}
{% for conf in conferences %}
{% endif %}


The extension helps detect and exploit some common crypto flaws. It includes
the following features:
- Active scanning to detect padding Oracle attacks.
- Active scanning capabilities to detect input being encrypted with ECB and reflected back (can be slow).
- Attack tab to encrypt/decrypt padding oracles.
- Attack tab to decrypt ECB where you control part of the request.


Two years of questing came to an end yesterday. What can be said of the mushrooms, except that they are beautiful, and full of power. I will attempt to record what I can of the experience.
The day before, Tuesday, I spent in perperation. I ran in the morning, ate a small bowl of cereal, and fasted until eating a light dinner. I went to sleep, full of nervousness and apprehension. I remember clinging to [my wife], wondering what transformations might take place the next day, wondering if this was the end of all the good things I’ve worked hard to create, ended because of my curiosity…
…What was I afraid of? Change of personality, loss of cognitive function, damage to my relationship with [my wife], I suppose. That, and the unknown…
I woke early that morning, showered & left before [my wife] was awake. Some foreboding, but mostly excitement and eagerness to start on the journey. I met Jacob and drove back to his place, talking of this & that.
In his apartment, we examined the bag – a few small caps, a few small stems, and a lot of loose, broken material. Upon seeing it, I have to admit that I was unimpressed, and figured that we were in for an underwhelming experience, if anything at all. I made peanut butter & marmalade sandwiches out of ¾ of a piece of bread to consume the mushrooms with. The small pieces of mushrooms stuck to the marmalade and peanut butter and oozed out the side of the sandwich. Jacob packed his bag and we headed off to the metro, on a beautiful day in late summer.
As we rode out, the train began to empty. My nerves were replaced with the happiness of the journey, with the excitement of the unknown, and my first psychedelic experience.
We found the trailhead at 10am and stopped by a small bog (!) to get our sandwiches. Mosquitoes were swarming around me and I was impatient to begin so I simply plunged ahead with a quick toast ‘To Life’.
The sandwiches nicely disguised the taste; only the occasional sharp shard of dried mushroom served as a reminder that the sandwich was a singular one.
FELLOWSHIP
We hiked for 15 minutes or so, chatting about placebo effects and life in general. I told Jacob Shulgin’s placebo story from PiHKAL. The day was cool, but the sun provided warmth. Every so often Jacob checked in with me, asking if I was feeling anything yet. Jacob was starting to notice sounds and other minor alerts. I was not sure. I determined to keep on hiking, and not worry about whether the mushrooms were coming on or not.
I started to really enjoy the day, the conversation, and the walk. Perhaps some half hour to three quarters of an hour after eating the sandwiches, my attention was arrested by the interplay of several shadows on the path – three types of leaves were casting shadows onto the soft dirt, moving gently in the breeze. We admired it for a moment and moved on. At this point I was willing to admit that something, indeed was happening – a feeling of elation, and the first hints of a strange, strange feeling running through my body – a lightness, perhaps, some tingles, swooping stomach – but these don’t begin to describe what was a truly unique feeling.
The onset continued as we kept on walking. We were able to pick up the trail we had lost which took us up to a rocky area with a nice view. I stretched, feeling the sunshine warm my body and savoring the lovely morning.
Near the crest of a small hill in a heavily wooded area we encountered a short man foraging for mushrooms. He came out of a low-lying area off the trail, carrying a basket and a stick. He stopped to say hello and I admired his hen-of-the-woods.
‘Oh, I don’t know what they are, I just eat them,’ he yelled in a sort of rustic, deaf kind of way, showing yellow and rotting teeth.
We spoke for a moment about foraging and rainfall and then bid him good day.
I believe it was then that I began to feel nauseous, and decidedly odd, with a weakness pervading my limbs. We stopped at the top of a small hill in a heavily wooded, moister area, and I threw my pack down at a not particularly comfortable area infested with mosquitoes and started to worry. The trail was steep and I couldn’t find myself a position that didn’t put my body at a strange angle.
Jacob took a seat on a log and started to nod, rubbing his thighs slowly as he took stock. I forced myself into a strange, half-sitting half-lying position and felt pretty forlorn. Trees in the distance became oddly close, and I began to feel a little seasick.
Some people went by – a family on bikes, walking up the steep and rocky trail. It took a long time for both of us, I think, as we were experiencing some pretty heavy time dilation.
Jacob was still in a pretty good mood, talking me through it. I could tell he was starting to groove and grok on the forest and the sensations in his body. “Yeah man, definitely you’ll feel a little weird, maybe a little upset. Definitely feeling some feels, you know?’
I began to despair. I had nothing but several hours of spun out, horribly nausea and distorted vision to look forward to. Why did I do this to myself? I began to feel surges of a strange, alien feeling in my body, that was accompanied by the mental image of a clump of mushroom surging up through me. Mosquitoes bit my legs, and I watched them with a remarkable amount of clarity of vision, noting details on their individual wings & probosces.
It was at this point that I realized I had to get up. Keep moving. Find a good spot. The original plan had been to find a nice spot with a view, put down some blankets and stay put for the day, but as we put our packs on and began to hike again, we both began to feel the elation again, feel as if we had control over our trip.
A little while later found us back in the sunshine, safe from the mosquitoes, tired but happy once more.
Jacob paused to ask me a complicated question about the geology of the area in which we were hiking, but boiled down to his wondering if there were other rock formations in the vicinity.
I had despaired of understanding him, but as he began to finish, lo! behold! we communicated! We let out whoops of joy and hugged, happy to share even the most simple thoughts.
Everything was going to be alright.
From this point forward my recollection of the trip is decidedly non-linear.
TO THE WATER & WHAT HAPPENED THERE
Jacob and I walked through the forest, resting when needed and talking with remarkable clarity and insight about everything.
One reoccurring theme was that society and many of the people in our lives tend to force every decision into a false dichotomy, when often the best course of action is the middle path that isn’t directly offered. We can use illegal drugs, have jobs, relationships, while pursuing mystical experiences, and wild, mad days in the wilderness.
We were completely lost by this point, but I was happy and light with a head full of strange mushrooms. They would make their presence known every so often by filling my body with their alien presence. I found that swaying while sitting was a good outlet for the bizarre sensations in my body.
We came to a like which shone and resonated in the sunshine. I clambered down some rocks and put my feet in the water. Never was a feeling so purifying. I paddled my legs up and down, watching the water in the lake pulse in response.
I was reaching a state of manic excitement, so desperate was I to share the moment with Jacob, who always takes a long time to do anything, particularly when on mushrooms. He made his way down as I stretched and moved around, still channeling the restless, strange energy inside.
We spoke about the lack of mysticism on this trip. Where were the pulsating energy orbs, the all-in-one Eyes of alien gods and singing trees?
Two things became apparent: the first was that none of the thoughts or feelings that I was having were novel – that is, I believed then (and still do now) that mushrooms are simply one vehicle to take a seeker to enlightenment, and that such states are independent of the substance, although we were also left with many questions and uncertainties about the possible existence of a Mushroom Spirit or entity.
The second revelation was that today, as usual, we were choosing the middle path once again.
Was it all in my mind, or was I in contact with some ineffable, non-material realm or spirit or plane? That was the question I was hoping to answer by taking the mushroom, and I am afraid I am no nearer the answer now.
We put on our boots and started to move on. Jacob asked for a few moments to collect himself, so I wandered on along the shoreline. I had been carrying my harmonica, an enormous, double reed harp a friend of mine had given me which I always take with me on adventures. I had attempted to play it several times during the morning, but always felt inhibited and knew the time wasn’t right.
But then, I felt it vibrate and quiver in my hand, and heard it start to sing as the wind blew through it. I raised it to my lips and without hesitation poured out a beautiful, enchanting song that sang of all my thoughts and dreams and worries and essence and breathed gilded hope into them and back into me.
And I asked…myself? the universe? god? the mushrooms?...I asked:
When will I know? What happens after death? When will I know the ineffable?
And the answer came from… myself? the universe? god? the mushrooms?..., and the voice spoke, and I was one tiny, infinitesimal sliver away from knowing it as God:
NOT YET.
And I was left, smiling and happy and sad, knowing that I still had work to do, and that today was not the day that the Great Mysteries would be revealed to me.
 I remember thinking to myself that I was the one in charge of the expedition now, since I was more or less comfortable with my headspace and Jacob’s joint could potentially send him off the deep end. We made our way back down to the trail and I glanced at my watch…it was about 2:00, I determined, after a considerable amount of effort.
But we were lost.  No hope of ever, ever finding our way out again. Normally this wouldn’t have bothered me at all, of course, but at this point I started to become concerned that 1) we would never find our way back, 2) I would never be the same again, and 3) both of these things would destroy my marriage.
And so began my suffering. It is difficult to describe, but I think a state of silent, cacophonic chaos would be closest. Every last shred of joy, confidence, harmony, pleasantry and hope left my body and I was the most forlorn, shroomiest, most miserable creature on the planet. I recall looking down at my body while walking, feeling pity for myself as I wallowed in absolute misery and despair.
I asked Jacob a couple of times to speak to me, but he was obviously enwrapped in his own thoughts.
We kept hiking, wandering aimlessly among the many trails.
I tried Lord, oh! how I tried to regain some happiness. Over the past few years I have been able to conquer my depression and live in a state of near constant happiness and good cheer, mostly through exercising my will during difficult times – forcing myself to ride out the bad times, knowing that the goodness would return eventually. The Aleuts have a saying, the wind is not a river (meaning that eventually the cold wind will stop blowing). But I came so close to giving up. I never thought I would escape the torment.
I began to riff about dosages, that there were certain anchorable facts in life – you take a drug, it lasts for so many hours, it leaves your body. This would end, I knew that.
Jacob began to talk to me, after I told him nearly in tears that I was having a hard time. “Think about how happy you will be to see [your wife],” he said.
And I knew that I had to continue, for her sake. That there was more work for me to do in life, to have children, protect the earth, do good works.
And somewhere around that time, we found the trail again, and were able to walk back along the ridge, in the sunshine. The sun saved me on more occasions that day than I care to recount.
RE-ENTRY
I ate a little food, forcing myself to break my fast and eat an apple, which ended up being delicious, even though I felt no hunger. I also ate an English muffin, which was the strangest, most bizarre rubbery white mass I have ever put past my lips.
We ended up walking too far the wrong way on the trail, but with a supreme act of willpower and reason, I realized that all we had to do was turn around and we would eventually find our way back to the trailhead.
We retraced our steps and fell back into the easy, happy, carefree conversation we had started with; the whole day took on a symmetrical dimension. We laughed at how high we had been crossing a road near a playground close to the beginning of the trip – we had ran across the road, laughing at how ridiculous the experience was, to see such a thing as a car.
We talked about relationships, the meaning of life, the shrooms, and everything in between. I felt as if everything that I included in my concept of life – my identity, my philosophy, my body – had been tested and came out whole, renewed. The clarity we had returned to us.
I felt sober enough to turn on my phone, have a little connection to the outside world. I had several missed calls, the first of which apparently was from Satan. Strange, disturbing noises came from the phone. I deleted the message. The second started playing a deep, terrifying voice issued from the phone at the same time a stick dropped from a tree onto my neck. I screamed and threw the phone down and took the stick off, and regained my composure….
…When I listened to the message again, a few moments later, it turned out to be my father, who was in an airport and wanted me to go to his house because the alarm had gone off and the police were there.
I told Jacob this and we both began to laugh. The very concept of me talking to the police or catching burglars was utterly hilarious. I had barely regained my humanity!
We had two consensus reality checks on the way back; the first was when Jacob asked me to write down an insight I had in my notebook, which proved impossible much to our surprise. The other was when the two shroomed cavemen attempted to load film into a camera, as if our reptilian brains could comprehend the workings of such an intricate machine.
CONCLUSION
I made it to the dance lesson, still mildly tripping, which is a story in and of itself. We had drunk all of our water but serendipitously found a smoothie stand at the top of the metro station, which was odd since Jacob had been looking for a “water store” for the past 45 min. By God, it was amazing. We tried to guess the flavors since we asked the small, gnomish woman to surprise us.  A mushroom spirit visitation, perhaps, guarding the gateway between the two worlds? Who knows.
In the subway, the models in an advertisement peered at me and moved their heads slightly, whispering something which I steadfastly refused to listen to – I was set on trying to return to reality.
The afterglow continued until the next morning, when I felt the mushrooms leave me around midday. I was left with a sense of sadness, which faded quickly; I then felt myself return to center, to the place I was in before the trip.
The difficult portion of the experience was not necessarily negative; to me, hard lessons like that make normal life easier to navigate. A perfect, perfect day. Perfect setting, perfect friend, perfect dosage.
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


A new visitor pass has been created for you.
In a production environment you should connect to the `self_service_visitor_created` signal and send the visitor pass to end user.
Link: {{ visitor.context.redirect_to }}?vuid={{ visitor.uuid }}


--- layout: archive title: Zulip Chat Archive permalink: /stream/113488-general/topic/writing.20tactics.3A.20manipulating.20names.html ---
I have just written my first tactic "defi" below, which allow to call a lemma whose name is "lemme_defi_something" for rewriting the target, by typing "defi something". I struggled with the different types involved: I had to transform "something" into a string, add to it the prefix "lemme_defi_", then transform this into a name using mk_simple_name, then the name into a constant using mk_const, then the constant into an expression (through a pre-expression).
Is there a more direct way??
Could I have found the command mk_simple_name by a smarter way than searching randomly into the doc ?
meta def defi (name : parse ident) : tactic unit :=
do
let nom_lemme := "lemme_defi_" ++ to_string name,
trace ("J'appelle le lemme " ++ nom_lemme),
let name := mk_simple_name nom_lemme,
name ← mk_const name,
expr ← to_expr ```(%%name),
do {rewrite_target expr, trace "sens direct"}
<|> do {rewrite_target expr {symm := tt}, trace "sens réciproque"}
I don't think there is a simpler way. This is a bit of an unusual operation; more common would be to put something in a namespace, that is, lemme_defi.something
, in which case you could use <.>
for doing the name append operation
I don't see the reason for the to_expr
step though. mk_const
should have already returned an expr
I would have found mk_simple_name
by looking around in the file where name
is defined, which has a number of useful operations on names
Indeed it works without the to_expr
step. I will consider using a namespace. Thanks!
Last updated: Apr 24 2020 at 19:02 UTC


--- layout: archive title: Zulip Chat Archive permalink: /stream/113488-general/topic/Lean.E2.80.99s.20unfolding.20mechanism.html ---
Hi there,
Is Lean’s unfolding of mutually recursive definitions any different than the unfolding of ‚normal‘ definitions?
I defined a mutually recursive function and have some equality which should hold definitionally, but the proof term doesn’t type. If I do the proof by hand, reflexivity or simp won’t solve the equation and I need an extra unfolding step of the mutually recursive definition. Tagging the definition with a reducible-attribute doesn’t change anything.
However, the proof goes through without the unfolding in a simpler setting without indexed types.
Is there a way to work around this? As I am using proof terms, it would also be helpful to know how to do the unfolding in a proof term.
Thanks in advance!
Sarah
Definitions by mutual recursion are compiled to well founded recursions, and the generated equations are not guaranteed to be definitional. The equation compiler generates equations for all the match branches; they are used automatically if you rw [T]
or simp [T]
where T
is your definition.
Last updated: Apr 24 2020 at 19:02 UTC


Basic Live Development Environment
This is a basic package to develop javascript pages using metalsmith to
track and reload pages live as you develop. Follow these steps to set up your
environment.
Requirements
Firebase – setup a firebase account and link it to the build in firebase.json under “firebase”: “your firebase account”
** This allows you start up a firebase server to your project for local hosting – alternatively you can setup a different server
node – install node locally – his project contains the build.js file required to set up the environment
Install
$ npm install
Test / Development
Key – to do the live development you must run each of the following commands in separate terminals in the following order:
Build:
$ node build.js
Serve:
In a second shell start a firebase server (you can alternatively use any local server e.g. python serve):
$ firebase serve
The server is default to http://localhost:5000
– use your browser to navigate to this port
Deploy – firebase will host your page
$ firebase deploy
Files to Edit:
- Do not edit files in the build folder – these get auto-generated
- Edit files in src and templates – with materialize you can create .hbs files in templates and materialize will convert to html
src
- src -> apps : put built out apps here with the file structure for the apps
- To edit the initial landing page edit src -> index.md – metalsmith-markdown will convert to browser readable for you
*Initial file system is just a recommendation as to how to separate concerns


Last updated: 2021-07-27
Checks: 7 0
Knit directory: MAESTRO_documentation/
This reproducible R Markdown analysis was created with workflowr (version 1.6.2). The Checks tab describes the reproducibility checks that were applied when the results were created. The Past versions tab lists the development history.
Great! Since the R Markdown file has been committed to the Git repository, you know the exact version of the code that produced these results.
Great job! The global environment was empty. Objects defined in the global environment can affect the analysis in your R Markdown file in unknown ways. For reproduciblity it’s best to always run the code in an empty environment.
The command set.seed(20201223)
was run prior to running the code in the R Markdown file. Setting a seed ensures that any results that rely on randomness, e.g. subsampling or permutations, are reproducible.
Great job! Recording the operating system, R version, and package versions is critical for reproducibility.
Nice! There were no cached chunks for this analysis, so you can be confident that you successfully produced the results during this run.
Great job! Using relative paths to the files within your workflowr project makes it easier to run your code on other machines.
Great! You are using Git for version control. Tracking code development and connecting the code version to the results is critical for reproducibility.
The results in this page were generated with repository version 20d0552. See the Past versions tab to see a history of the changes made to the R Markdown and HTML files.
Note that you need to be careful to ensure that all relevant files for the analysis have been committed to Git prior to generating the results (you can use wflow_publish
or wflow_git_commit
). workflowr only checks the R Markdown file, but you know if there are other scripts or data files that it depends on. Below is the status of the Git repository when the results were generated:
Ignored files:
Ignored: .DS_Store
Ignored: .RData
Ignored: .Rhistory
Ignored: .Rproj.user/
Ignored: analysis/.DS_Store
Ignored: code/.DS_Store
Ignored: data/.DS_Store
Ignored: data/multi-scatac/.DS_Store
Ignored: data/multi-scrna/
Untracked files:
Untracked: .RDataTmp
Untracked: code/snRNA_genelength.R
Untracked: code/snRNA_genelength_TPM.R
Untracked: data/allen/
Untracked: data/multi-scatac/bed/
Untracked: data/multi-scatac/bigwig/GDF7_bed_added.png
Untracked: output/snRNA_TPM_VS_genelength.png
Untracked: output/snRNA_genelengthVSLognormUMI.png
Untracked: output/snRNA_genelengthVSUMI.png
Unstaged changes:
Deleted: MultiSample_scATACseq.Rproj
Deleted: atac_pbmc_500_nextgem.GIGGLE/0.peaks.bed
Deleted: atac_pbmc_500_nextgem.GIGGLE/0.peaks.bed.gz
Deleted: atac_pbmc_500_nextgem.GIGGLE/0.peaks.bed.result.xls
Modified: code/Basic_Operations.R
Modified: pbmc_1k_v3_8k_res.rds
Modified: pbmc_1k_v3_Monocyte_filtered.pdf
Modified: pbmc_1k_v3_Monocyte_top.pdf
Note that any generated files, e.g. HTML, png, CSS, etc., are not included in this status report because it is ok for generated content to have uncommitted changes.
There are no past versions. Publish this analysis with wflow_publish()
to start tracking its development.
Custom analysis can be conducted using either MAESTRO or Seurat package. In this study, benchmarking experiments were designed to systematically test the effect of varying processing times on single-cell transcriptome and epigenome profiles from healthy and diseased donors. Peripheral blood mononuclear cells (PBMC) were isolated from healthy donors and from patients affected with chronic lymphocytic leukemia (CLL). Samples were either preserved immediately (0 h) or after 8 and 24 h.
Goal: Evaluating the effect of sampling time on scATAC-seq chromatin accessibility profiles.
library(Seurat)
Attaching SeuratObject
library(tidyr)
library(ggplot2)
library(dplyr)
Attaching package: 'dplyr'
The following objects are masked from 'package:stats':
filter, lag
The following objects are masked from 'package:base':
intersect, setdiff, setequal, union
library(RColorBrewer)
library(presto)
Loading required package: Rcpp
Loading required package: data.table
Attaching package: 'data.table'
The following objects are masked from 'package:dplyr':
between, first, last
all_samples_scATAC_Object <- readRDS("./data/multi-scatac/all_samples_scATAC_Object.rds")
ATAC <- all_samples_scATAC_Object$ATAC
ATAC
An object of class Seurat
74113 features across 55262 samples within 2 assays
Active assay: ACTIVITY (28307 features, 2000 variable features)
1 other assay present: ATAC
2 dimensional reductions calculated: lsi, umap
DefaultAssay(ATAC) <- 'ATAC'
ATAC[['ATAC']]
Assay data with 45806 features for 55262 cells
Top 10 variable features:
chr19-54189582-54191276, chr19-42268210-42269240,
chr5-151771128-151772110, chr12-6851317-6852759,
chr3-120094415-120095836, chr19-5903777-5904895,
chr10-74825989-74826947, chr1-110338292-110339500,
chr19-38849959-38850827, chr19-54136972-54137765
df <- as.data.frame(do.call(rbind, strsplit(row.names(ATAC@meta.data), '@')))
ATAC@meta.data[,c("sample", "hours", "cell")] <- df %>% separate(V1,into = c("sample", "hours"),
sep = "(?<=[A-Za-z])(?=[0-9])")
<EMAIL_ADDRESS>orig.ident nCount_ATAC nFeature_ATAC ATAC_snn_res.0.6
CLL0@AAACGAAAGACAACGC all_samples 1074 1074 8
CLL0@AAACGAAAGCAATAAC all_samples 770 770 2
CLL0@AAACGAAAGCCTTTGA all_samples 679 679 2
CLL0@AAACGAAAGGATTTGA all_samples 1495 1495 8
CLL0@AAACGAAAGGGATCCA all_samples 586 586 3
CLL0@AAACGAAAGTCCCGCA all_samples 836 836 2
seurat_clusters nCount_ACTIVITY nFeature_ACTIVITY
CLL0@AAACGAAAGACAACGC 8 959.3852 2803
CLL0@AAACGAAAGCAATAAC 2 677.8859 2085
CLL0@AAACGAAAGCCTTTGA 2 604.7142 1761
CLL0@AAACGAAAGGATTTGA 8 1361.3128 3784
CLL0@AAACGAAAGGGATCCA 3 533.7260 1335
CLL0@AAACGAAAGTCCCGCA 2 709.1697 2350
assign.ident assign.score assign.celltype sample hours
CLL0@AAACGAAAGACAACGC B 0.1422073 B CLL 0
CLL0@AAACGAAAGCAATAAC B 0.3873166 B CLL 0
CLL0@AAACGAAAGCCTTTGA B 0.3873166 B CLL 0
CLL0@AAACGAAAGGATTTGA B 0.1422073 B CLL 0
CLL0@AAACGAAAGGGATCCA NK 0.6286958 NK CLL 0
CLL0@AAACGAAAGTCCCGCA B 0.3873166 B CLL 0
cell
CLL0@AAACGAAAGACAACGC AAACGAAAGACAACGC
CLL0@AAACGAAAGCAATAAC AAACGAAAGCAATAAC
CLL0@AAACGAAAGCCTTTGA AAACGAAAGCCTTTGA
CLL0@AAACGAAAGGATTTGA AAACGAAAGGATTTGA
CLL0@AAACGAAAGGGATCCA AAACGAAAGGGATCCA
CLL0@AAACGAAAGTCCCGCA AAACGAAAGTCCCGCA
p1 <- DimPlot(ATAC, label = TRUE, reduction = "umap", group.by = "seurat_clusters", repel=T, pt.size = 0.3, label.size = 3) + labs(title = "Clustering of PBMCs from all samples")
p2 <- DimPlot(ATAC, label = TRUE, reduction = "umap", group.by = "assign.ident", repel=T, pt.size = 0.3, label.size = 3) + labs(title = "Annotation of PBMCs from all samples")
p3 <- DimPlot(ATAC, label = FALSE, reduction = "umap", group.by = "hours",repel=T, pt.size = 0.3, label.size = 2.5,cols = brewer.pal(3,"Dark2")) + labs(title = "Clustering of PBMCs in different time points")
p4 <- DimPlot(ATAC, label = FALSE, reduction = "umap", group.by = "assign.ident",split.by = "hours",repel=T, pt.size = 0.3, label.size = 2.5,cols = brewer.pal(6,"Dark2")) + labs(title = "Clustering of PBMCs in different time points")
p5 <- DimPlot(ATAC, label = FALSE, reduction = "umap", group.by = "assign.ident", split.by = "sample", repel=T, pt.size = 0.5, label.size = 2.5, cols = brewer.pal(6,"Dark2")) + labs(title = "Clustering of PBMCs for patients and normal")
p1
p2
p3
p4
p5
| Version | Author | Date |
|---|---|---|
| 71fb9af | baigal628 | 2021-06-21 |
Conclusion: From the above figures, we can easily observe similar results as described in the paper. A remarkable effect of the sampling time on single-cell epigenome profiles are lying across all blood cell subtypes from healthy donors and CLL patient samples.
Between Cell Types
da_peaks <- wilcoxauc(ATAC, 'assign.ident', seurat_assay = 'ATAC', assay = 'data')
##Use the 'data slots' under 'ATAC' peak assay
head(da_peaks)
feature group avgExpr logFC statistic auc
1 chr10-100009661-100010002 B 0.04421483 -0.004180845 376355492 0.4972915
2 chr10-100014067-100014694 B 0.20483399 0.160140740 404566854 0.5345682
3 chr10-100020439-100021764 B 0.14095481 0.105361771 395683234 0.5228299
4 chr10-100045990-100046440 B 0.02877974 0.010884171 379924726 0.5020077
5 chr10-100185585-100186558 B 0.08601511 -0.011584961 374140960 0.4943654
6 chr10-100228922-100229819 B 0.04592159 -0.013408557 374884735 0.4953482
pval padj pct_in pct_out
1 1.048765e-05 1.262178e-05 1.808383 2.3666093
2 0.000000e+00 0.000000e+00 8.447106 1.4464451
3 3.903902e-194 2.798469e-192 5.856287 1.2577784
4 1.819856e-06 2.231630e-06 1.197605 0.7976963
5 4.947733e-11 6.703220e-11 3.548902 4.7398385
6 1.128560e-12 1.607825e-12 1.880240 2.8300013
top2_da_peaks <- top_markers(da_peaks, n = 2, auc_min = 0.5, pct_in_min = 10, pct_out_max = 10)
Idents(ATAC) <- ATAC$assign.ident
top2_cell_markers<- top2_da_peaks %>%
select(-rank) %>%
unclass() %>%
stack() %>%
pull(values) %>%
unique() %>%
.[!is.na(.)]
DotPlot(object = ATAC, features = top2_cell_markers) + coord_flip()
| Version | Author | Date |
|---|---|---|
| 71fb9af | baigal628 | 2021-06-21 |
FeaturePlot(
object = ATAC,
features = top2_da_peaks$B[1],
pt.size = 0.1
)
| Version | Author | Date |
|---|---|---|
| 71fb9af | baigal628 | 2021-06-21 |
Between Sampling Time
da_peaks_S <- wilcoxauc(ATAC, 'hours', seurat_assay = 'ATAC', assay = 'data')
head(da_peaks_S)
feature group avgExpr logFC statistic auc
1 chr10-100009661-100010002 0 0.04611855 -0.0005770281 341659390 0.4999628
2 chr10-100014067-100014694 0 0.14404458 0.0404261225 349666546 0.5116799
3 chr10-100020439-100021764 0 0.09657310 0.0199712436 346240384 0.5066663
4 chr10-100045990-100046440 0 0.02908577 0.0094514711 343258921 0.5023034
5 chr10-100185585-100186558 0 0.09815266 0.0087679526 343311094 0.5023798
6 chr10-100228922-100229819 0 0.06185076 0.0129897588 343803122 0.5030998
pval padj pct_in pct_out
1 9.541004e-01 9.601583e-01 2.109095 2.1158525
2 3.787041e-35 1.646165e-33 6.241636 3.7915858
3 1.622160e-16 8.640077e-16 4.261014 2.8730762
4 1.960387e-07 4.401190e-07 1.284728 0.8228315
5 8.345521e-03 1.156866e-02 4.517959 4.0376152
6 6.654038e-06 1.278395e-05 2.810342 2.1896613
Between CLL and Healthy Donors
da_peaks_S <- wilcoxauc(ATAC, 'sample', seurat_assay = 'ATAC', assay = 'data')
head(da_peaks_S)
feature group avgExpr logFC statistic auc
1 chr10-100009661-100010002 CLL 0.03980241 -0.019284706 340715858 0.4921583
2 chr10-100014067-100014694 CLL 0.17969845 0.179698451 370645737 0.5353915
3 chr10-100020439-100021764 CLL 0.12438901 0.118147885 362034822 0.5229532
4 chr10-100045990-100046440 CLL 0.02505952 0.006421044 346352024 0.5002996
5 chr10-100185585-100186558 CLL 0.07626504 -0.046306811 334696794 0.4834638
6 chr10-100228922-100229819 CLL 0.04227613 -0.031601277 338909576 0.4895491
pval padj pct_in pct_out
1 2.997013e-34 5.176906e-34 1.5581679 3.1572366
2 0.000000e+00 0.000000e+00 7.0782966 0.0000000
3 1.158449e-179 1.399365e-178 4.9323500 0.3542774
4 4.957393e-01 5.010997e-01 0.9981147 0.9430030
5 5.404750e-76 1.657317e-75 3.0109793 6.4343024
6 9.543143e-53 2.141655e-52 1.6607519 3.7876420
top2_da_peaks_S <- top_markers(da_peaks_S, n = 2, auc_min = 0.5, pct_in_min = 10, pct_out_max = 10)
FeaturePlot(
object = ATAC,
features = top2_da_peaks_S$CLL[1],
pt.size = 0.1,
split.by = 'sample'
)
Warning in FeaturePlot(object = ATAC, features = top2_da_peaks_S$CLL[1], : All
cells have the same value (0) of chr2-20675900-20677733.
| Version | Author | Date |
|---|---|---|
| 71fb9af | baigal628 | 2021-06-21 |
Idents(ATAC) <- ATAC$sample
VlnPlot(
object = ATAC,
features = top2_da_peaks_S$CLL[1],
pt.size = 0.1,
idents = c("CLL", "PBMC")
)
| Version | Author | Date |
|---|---|---|
| 71fb9af | baigal628 | 2021-06-21 |
FeaturePlot(
object = ATAC,
features = top2_da_peaks_S$CLL[1],
pt.size = 0.1
)
| Version | Author | Date |
|---|---|---|
| 6e473ba | baigal628 | 2021-07-19 |
After cell clustering, MAESTRO redo narrow peak calling on each cluster. Users can easily compare chromatin accessibility between samples within a certain cluster based on the bigwig file. Below shows a genome track of region chr2-20675900-20677733 in Cluster 0.
| Version | Author | Date |
|---|---|---|
| 5242937 | baigal628 | 2021-07-27 |
sessionInfo()
R version 4.1.0 (2021-05-18)
Platform: x86_64-apple-darwin17.0 (64-bit)
Running under: macOS Big Sur 10.16
Matrix products: default
BLAS: /Library/Frameworks/R.framework/Versions/4.1/Resources/lib/libRblas.dylib
LAPACK: /Library/Frameworks/R.framework/Versions/4.1/Resources/lib/libRlapack.dylib
locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] presto_1.0.0 data.table_1.14.0 Rcpp_1.0.6 RColorBrewer_1.1-2
[5] dplyr_1.0.7 ggplot2_3.3.5 tidyr_1.1.3 SeuratObject_4.0.2
[9] Seurat_4.0.1 workflowr_1.6.2
loaded via a namespace (and not attached):
[1] Rtsne_0.15 colorspace_2.0-2 deldir_0.2-10
[4] ellipsis_0.3.2 ggridges_0.5.3 rprojroot_2.0.2
[7] fs_1.5.0 spatstat.data_2.1-0 farver_2.1.0
[10] leiden_0.3.8 listenv_0.8.0 ggrepel_0.9.1
[13] fansi_0.5.0 codetools_0.2-18 splines_4.1.0
[16] knitr_1.33 polyclip_1.10-0 jsonlite_1.7.2
[19] ica_1.0-2 cluster_2.1.2 png_0.1-7
[22] uwot_0.1.10 shiny_1.6.0 sctransform_0.3.2
[25] spatstat.sparse_2.0-0 compiler_4.1.0 httr_1.4.2
[28] assertthat_0.2.1 Matrix_1.3-4 fastmap_1.1.0
[31] lazyeval_0.2.2 later_1.2.0 htmltools_<IP_ADDRESS>
[34] tools_4.1.0 igraph_1.2.6 gtable_0.3.0
[37] glue_1.4.2 RANN_2.6.1 reshape2_1.4.4
[40] scattermore_0.7 jquerylib_0.1.4 vctrs_0.3.8
[43] nlme_3.1-152 lmtest_0.9-38 xfun_0.24
[46] stringr_1.4.0 globals_0.14.0 mime_0.11
[49] miniUI_<IP_ADDRESS> lifecycle_1.0.0 irlba_2.3.3
[52] goftest_1.2-2 future_1.21.0 MASS_7.3-54
[55] zoo_1.8-9 scales_1.1.1 spatstat.core_2.2-0
[58] promises_<IP_ADDRESS> spatstat.utils_2.2-0 parallel_4.1.0
[61] yaml_2.2.1 reticulate_1.20 pbapply_1.4-3
[64] gridExtra_2.3 sass_0.4.0 rpart_4.1-15
[67] stringi_1.6.2 highr_0.9 rlang_0.4.11
[70] pkgconfig_2.0.3 matrixStats_0.59.0 evaluate_0.14
[73] lattice_0.20-44 ROCR_1.0-11 purrr_0.3.4
[76] tensor_1.5 labeling_0.4.2 patchwork_1.1.1
[79] htmlwidgets_1.5.3 cowplot_1.1.1 tidyselect_1.1.1
[82] parallelly_1.26.0 RcppAnnoy_0.0.18 plyr_1.8.6
[85] magrittr_2.0.1 R6_2.5.0 generics_0.1.0
[88] DBI_1.1.1 whisker_0.4 withr_2.4.2
[91] mgcv_1.8-36 pillar_1.6.1 fitdistrplus_1.1-5
[94] survival_3.2-11 abind_1.4-5 tibble_3.1.2
[97] future.apply_1.7.0 crayon_1.4.1 KernSmooth_2.23-20
[100] utf8_1.2.1 spatstat.geom_2.2-0 plotly_<IP_ADDRESS>
[103] rmarkdown_2.9 grid_4.1.0 git2r_0.28.0
[106] digest_0.6.27 xtable_1.8-4 httpuv_1.6.1
[109] munsell_0.5.0 viridisLite_0.4.0 bslib_<IP_ADDRESS>


| Home | More on Data Feeds |
The DataFeed class is an abstract class that is used to organize the classes that translate data from sources external to Vision into Vision objects. An external feed corresponds to a flat, tabular structure. It may be loaded into Vision from a file, a spreadsheet, a relational database, or any other source capable of presenting records of information.
Several subclasses of DataFeed have been defined to encapsulate different ways to map data from external formats into Vision objects. These include:
| MasterFeed | used to create new instances in an Entity subclass and refresh key properties for instances of that class. |
| EntityExtenderFeed | used to update properties and DataRecord instances associated with a specific Entity or Bridge, potentially over time. |
| TransactionFeed | used to create and cross reference instances of a LinkRecord subclass, classes that associate two or more entities. |
| AliasFeed | used to establish multiple aliases for existing Entity instances. |
| XRefFeed | used to load alternative identifiers for existing Entity instances. |
| MembershipFeed | used to update and cross reference one-to-many relationships between two Entity instances over time. |
| RangeGroupFeed | used to define and update numeric ranges and categorize Entity instances into the appropriate range group. |
| SchemaFeeds | used to define new core classes, properties, and data feed classes. |
The initial DataFeed class hierarchy is illustrated below:
Object | IncorporatorPrototype | DataFeed | |-- MasterFeed | |-- CurrencyMaster | |-- UniverseMaster | |-- EntityExtenderFeed | |-- ExchangeRateFeed | |-- EstimateRecordFeed | |-- TransactionFeed | |-- AliasFeed |-- XRefFeed | |-- MembershipFeed | |-- UniverseMembers | |-- RangeGroupFeed | |-- SchemaFeeds | |-- ClassSetup | |-- PropertySetup | |-- MessageSetup | |-- DataFeedSetup | |-- GlobalsFeedA separate subclass is defined for each format of external data you wish to load into your Vision database. For example, subclasses of the MasterFeed class are defined to create and update instances of a specific Entity, such as Currency or Security. Subclasses of the EntityExtenderFeed class are defined to update a specific relationship between an Entity subclass and associated data, such as pricing data for a security.
Each DataFeed subclass defines one or more data items that you can update. Some feeds create new instances of Entity, Bridge, DataRecord, and/or LinkRecord subclasses; other feeds only refresh properties in existing objects. Some feeds support updates for multiple time periods; other feeds only refresh properties as of the current date.
At its simplest, a feed is a tab or vertical bar delimited string containing one or more columns of information for one or more rows. For example, to create and update Currency instances, you could use:
CurrencyMaster updateFromString: "entityId | name | shortName USD | United States Dollar | US Dollar CAD | Canadian Dollar | CA Dollar GBP | Great British Pound | GB Pound " ;
This example loads data using the CurrencyMaster feed. This feed will create Currency instances for any entityId not already defined and will update the name and shortName properties for the three instances included.
The message updateFromString: can be sent to any DataFeed subclass. The parameter to this message is a String with the following structure:
The GlobalsFeed can be used to temporarily set or alter the field delimiter, header location, and other characteristics of your feed.
The message getUploadProperties returns the list of properties that can be updated via a specific feed. For example:
CurrencyMaster getUploadProperties do: [ code printNL ] ;Any of these property identifiers can be included in your header record. Properties can be included in the header record in any order. The message describeFeed can also be sent to any DataFeed subclass and displays a description of the subclass, including these properties. The message showInheritance can be sent to the DataFeed class or any of its subclasses to display the DataFeed classes defined for your installation.
The message loadFromFile: can be sent to any DataFeed subclass to read the data from the file name supplied as a parameter. The data in the file should be in exactly the same format as the updateFromString: version. The first line of the file should contain tab or |-delimited field identifiers. The remaining lines in the file should contain delimited data records. For loading data from large files, you should use the bulkLoadFromFile: options described elsewhere.
A number of specialized interfaces have been defined that package feeds from different sources including The Vision Administrator Module, Excel spreadsheets, and batch processing scripts.
Subclasses of MasterFeed are used to create new instances in an Entity subclass and refresh key properties for instances of that class. The properties updated by these feeds usually store basic descriptive information about the underlying Entity. Time series properties, supplemental data, and relationships are usually updated using an Entity Extender or a Membership feed.
A separate MasterFeed subclass should be created for any Entity subclass that you wish to update from an external source. The following items can be included in the header for any MasterFeed upload:
Any combination of these items may be included in any order. The entityId must be included. The field identifier id or entity can be used interchangeably with entityId.
For example, if the CountryMaster class has been defined, the expression:
CountryMaster updateFromString: "id | name US | United States CA | Canada " ;can be used to create country objects and/or update their names.
This expression will perform the following steps:
If time series properties are included in a MasterFeed, the value is updated on the current "as of" date if it reflects a change from the value currently stored. By default, the "as of" date is "today". You can reset the "as of" date for the entire feed using the GlobalsFeed.
The MasterFeed subclasses are used to create new instances and refresh data for instances of an entity subclass. If you want to use a feed to refresh data without creating any instances, you can set the disableEntityCreation flag prior to executing the feed. This will prevent any new instances from being created but will update any existing instances with the information supplied in the feed. For example:
CurrencyMaster disableEntityCreation ; CurrencyMaster updateFromString: "entityId | name | shortName USD | United States Dollar | US Dollar CAD | Canadian Dollar | CA Dollar XYZ | Dummy Currency | Dummy " ;This feed will refresh the name and short name for the existing currencies but will not create the new currency XYZ. Note that the disableEntityCreation only applies to the next execution of this feed. Once executed, entity creation is re-enabled.
The enableInternalIds flag can be set for any MasterFeed
subclass if you want to automatically generate a permanent, unique id for any
instances in the underlying entity class. By default, these identifiers are not
created. When enabled, the XRef dictionary named Internal is
established for the entity class and the property internalId is created
to track the permanent identifier. For example, to enable the feed for the
CurrencyMaster use: CurrencyMaster enableInternalIds ;
Once enabled, internal identifiers will automatically get generated
every time this feed is executed, unless this option is explicitly disabled
using the disableInternalIds flag.
If duplicate underlying records exist in a feed, neither will be processed and they will be included in the exception report and reject file.
If you supply a blank string or the string NA in a feed, the property value for the entity for that item will be set to NA or the appropriate default value for the item. If the property is time varying and it currently has a non-default value, its value will be set to default as of the current date. You cannot delete entity instances but they can be flagged as inactive via a MasterFeed. These rules are described later in this document.
Two MasterFeed subclasses are included as part of the basic installation: CurrencyMaster and UniverseMaster. These feeds are used to create and refresh Currency and Universe instances and define several additional properties specific to these classes.
You can define new MasterFeed subclasses using the MasterFeedSetup class. This feed includes two fields: feedId and baseClassId. The feedId represents the name of the class that will be used to temporarily store the data from your feed and translate it to the appropriate entities. The baseClassId names the entity class to associate with this feed. The fields must be supplied in this order. You should include a header line in this feed, but the header values are ignored. Both fields must be supplied. For example, to define MasterFeed classes to update countries and industries, you could use:
MasterFeedSetup updateFromString: "feedId | baseClassId CountryMaster | Country IndustryMaster | Industry " ;This upload will create CountryMaster and IndustryMaster as subclasses of MasterFeed (if they do not already exist) and link them to the entity classes Country and Industry.
Note that if the Country and/or Industry class does not exist, the corresponding MasterFeed subclass will not be created. Use the ClassSetup class to create new Entity subclasses.
Subclasses of EntityExtenderFeed are used to update properties for an Entity that are directly defined at the entity's class or linked to the entity via a property returning a subclass of DataRecord. An EntityExtenderFeed may also be defined to update properties that are directly defined at a Bridge class associated with a specific Entity class or linked to the bridge via a property returning a subclass of DataRecord. Data may be tracked for a fixed point in time or over time. Whereas MasterFeed subclasses are normally used to update basic, non-time varying descriptive information about an Entity, EntityExtenderFeed subclasses are usually created to update supplemental information about the underlying Entity.
A separate EntityExtenderFeed subclass should be created for any sets of data that get updated as a unit. The following items can be included in the header for any EntityExtenderFeed upload:
All subclasses of EntityExtenderFeed define additional items that can be updated. Any or all items defined for a feed can be included in any order. The entityId must be included. The field identifier id or entity can be used interchangeably with entityId. The date should be included with any feed that updates time varying data. The currencyId should be included with any feed that includes data items representing monetary values.
The simplest form of EntityExtenderFeed is used to update properties defined directly for an Entity subclass. For example, if the time series property usExchange is defined for the Currency class to track the rate of exchange into US dollars over time, then the ExchangeRateFeed class could be used to update this property using:
ExchangeRateFeed updateFromString: "id | date | usExchange CAD | 19970930 | 1.3828 CAD | 19971031 | 1.4090 CAD | 19971128 | 1.4234 DEM | 19971031 | 1.7212 DEM | 19971128 | 1.7638 " ;
This expression will perform the following steps:
EntityExtenderFeed subclasses can also be defined to create and refresh instances in a DataRecord subclass associated with an Entity or Bridge subclass. For example, PriceRecord may be defined as a subclass of DataRecord used to track the high, low, and closing prices for a security over time. The time series property pricingData could be defined for the Security class to store a separate PriceRecord instance for each date the security is priced. If PricingFeed is defined as an EntityExtenderFeed subclass that establishes this relationship, then it could be used to update pricing data using:
PricingFeed updateFromString: "id | date | high | low | close GM | 971215 | 65.125 | 62.75 | 64.00 GM | 971216 | 66.5 | 63.75 | 65.25 GM | 971217 | 65.25 | 62.5 | 64.75 IBM | 971215 | 105.125 | 102.75 | 104.00 IBM | 971216 | 106.5 | 103.75 | 105.25 IBM | 971217 | 105.25 | 102.5 | 104.75 " ;
This expression will perform the following steps:
The autoExpire option can be set in the GlobalsFeed for feeds associated with a DataRecord to automatically add a default value to a time series property after the last "real" value, based on a supplied expiration period. By default, Vision returns the last available value for a time series. This option is used to expire the data if it is older than a specified duration. For example, assume your database includes a time series of monthly fundamental data records stored in the property funDataM for the class Company. If you load your June 30, 1999 data and specify an expiration of 1 monthEnds, any company whose last "real" data point is on or before May 31, 1999 will have a default value inserted in the time series on the month-end date following the last real data point.
If you supply a blank string or the string NA in a feed, the property value will be set to NA or the appropriate default value for the item. In addition, there are a number of ways to purge information using an EntityExtenderFeed. These rules are described later in this document.
The message enableOnlyUpdateOnChange allows you to update time series properties in an Entity Extender Feed only if the value has changed. This works with Entity Extender Feeds that are used to update fields that are time series properties, not feeds that update time series of records. You can set the switches enableOnlyUpdateOnChange and disableOnlyUpdateOnChange to control the behavior of the next update for the feed. This value is reset to disable after each update.
One subclass is included as part of the basic installation: The ExchangeRateFeed is used to update the usExchange time series property for Currency instances. The PricingFeed described above was included for illustration purposes and is not part of the basic installation. An actual PriceFeed class is included as part of the Portfolio Management Application Layer.
You can define new EntityExtenderFeed subclasses using the EntityExtenderFeedSetup class. This feed includes the fields:
The feedId represents the name of the class that will be used to temporarily store the data from your feed and translate it to the correct entities or data records. The baseClassId indicates the base class associated with this feed. It can refer to an Entity/Bridge or to a DataRecord class. The fields associated with this specific feed will update properties defined at this class. The baseEntityId indicates the Entity or Bridge class associated with the feed for feeds where the base class is a DataRecord. This field should be omitted if the base class is an Entity/Bridge.
The fields must be supplied in this order. You can include a header line in this feed, but the header values are ignored. The feedId and baseClassId must be supplied. The baseEntityId should be supplied for feeds that update DataRecord instances.
For example, to define the ExchangeRateFeed and PricingFeed described above, you could use:
EntityExtenderFeedSetup updateFromString: " feedId | baseClassId | baseEntityId | frequency ExchangeRateFeed | Currency | PricingFeed | PriceRecord | Security | 3 businessDays " ;This upload will create ExchangeRateFeed as a subclass of EntityExtenderFeed if it does not already exist. This feed will be linked directly to the Entity subclass Currency. This feed can be used to update any properties defined directly for the Currency class. You can use the PropertySetup class to define new Currency properties which can then be updated by including these property names in the header record of this feed.
This update will also create PricingFeed as a subclass of EntityExtenderFeed if it does not already exist. This feed will be used to create and update properties in the DataRecord subclass PriceRecord via instances of the Entity subclass Security. Note that if the Security and/or PriceRecord class does not exist, the PricingFeed subclass will not be created. Use the ClassSetup class to create these subclasses and the PropertySetup class to define the property connecting these subclasses. The PropertySetup class should also be used to define the PriceRecord properties which can then be updated by this feed.
The frequency field is optional and is used in conjunction with the autoExpire option to expire old data for feeds that update DataRecords over time. If the frequency is present and the autoExpire option is in effect, the check for expiration is based on the criteria:
last observation + frequency <= current run date
Otherwise, the expiration is based on the criteria:
last observation + autoExpire value <= current run date
The frequency, if set, should be supplied as a DateOffset such as 3 businessDays or 18 monthEnds. The frequency can be optionally defined in the feed setup as shown or can be set prior to an update using the setFrequencyTo: message:
PricingFeed setFrequencyTo: 3 businessDays ; GlobalsFeed updateFromString: "option | setting | settingType asofDate | 9906 | Date autoExpire | 1 businessDays | DateOffset " ; PricingFeed updateFromString: "id | date | high | low | close #-- data goes here " ;This example will add a default PriceRecord instance to any security that was last priced at least 3 business days prior to 6/30/99. The default instance will be added to these time series 1 business day after the last date priced.
Subclasses of TransactionFeed are used to create and cross reference instances of a LinkRecord subclass, classes that associate two or more entities.
Currently, there is no special protocol defined to manage subclasses of the TransactionFeed class. You can follow the procedures outlined for custom feeds, to define protocol for these subclasses.
You can define new TransactionFeed subclasses using the TransactionFeedSetup class.
Subclasses of MembershipFeed are used to update and cross reference one-to-many relationships between a group and its members over time. For example, one or more companies can be members of the same industry. Over time, a company can move from one industry to another. In this case, instances of the entity class Company represent members and instances of the entity class Industry represent groups. To track this relationship, you could define a time series property industry at Company that returns an Industry object and a time series property companyList at Industry that returns a List of Company objects.
Two forms of relationship can be established:
Each MembershipFeed subclass defines the entity class of the group, the entity class of the members, the property defined at the group's class that returns the list of members defined for the group, and optionally, the property defined at the member's class that returns the group defined for a member. In addition, a MembershipFeed can be defined as Replace or Append indicating whether all members for a group must be supplied in an update or if changes only are supplied.
A separate MembershipFeed subclass should be created for any membership relationship that you wish to update from an external source. The following items can be included in the header for any MembershipFeed upload:
These fields can be supplied in any order. The memberId and groupId are required; the date is optional.
For example, if the CompanyToIndustry feed has been defined, the expression:
CompanyToIndustry updateFromString: "groupId | memberId | date HARDWARE | IBM | Default HARDWARE | HWP | Default AUTO | GM | Default AUTO | F | Default AUTO | C | Default AUTO | XYZ | Default HARDWARE | XYZ | 12/31/97 " ;can be used to setup the initial relationship between the industries and their members and to indicate that company XYZ was reassigned from the AUTO industry to the HARDWARE industry on 12/31/97.
This expression will perform the following steps:
You can define new MembershipFeed subclasses using the MembershipFeedSetup class. This feed includes the following fields:
For example, to define the CompanyToIndustry feed from the previous example, use:
MembershipFeedSetup updateFromString: "feedId | groupId | groupPath | memberId | memberPath CompanyToIndustry | industry |companyList | Company |Industry ";
Membership feeds can also be set up to store the relationship information at a Bridge instance associated with the member or group entity.
Subclasses of AliasFeed are used to establish multiple aliases for existing Entity instances. For example, PortfolioAliases may be defined as a subclass of AliasFeed to establish multiple aliases for accessing your portfolios:
PortfolioAliases updateFromString: "oldId | newId PORT001 | IndexAccount | TopFund PORT002 | G&IAccount PORT003 | BondFund ";
You can define new AliasFeed subclasses using the AliasFeedSetup class. This feed must include the following fields:
The fields must be supplied in this order. You can include a header line in this feed, but the header values are ignored.
For example, to define the alias feed for the Portfolio class, use:
AliasFeedSetup updateFromString: "feedId | baseClassId PortfolioAliases | Portfolio ";
Subclasses of XRefFeed are used to load alternative identifiers for an entity. These alternative identifiers are stored in Cross Reference Dictionaries (XRefs). XRefs provide a convenient way to track identifiers that are uniquely assigned by a specific source but may overlap with identifiers assigned by other sources. For example, suppose you want to establish the MSCI code as a alternative identifier for Security. You can use a SecurityXRef feed to do the following:
SecurityXRef updateFromString; "entityId | sourceId | symbol 00000001 | MSCI | M0000001 00000002 | MSCI | M0000002 ";
You can define new XRefFeed subclasses using the XRefFeedSetup class. The following fields must be provided for any XRefFeedSetup:
XRefFeedSetup updateFromString: "feedId | baseClassId SecurityXRef | Security ";
Subclasses of RangeGroupFeed are used to define and update numeric ranges and categorize Entity instances into the appropriate range group.
You can define new RangeGroupFeed subclasses using the RangeGroupFeedSetup class.
Subclasses of SchemaFeeds are used to define new core classes, properties, and data feed classes. The class hierarchy is illustrated below:
Object | IncorporatorPrototype | DataFeed | |-- SchemaFeeds | |-- ClassSetup | |-- PropertySetup | |-- MessageSetup | |-- DataFeedSetup |-- MasterFeedSetup |-- EntityExtenderFeedSetup |-- TransactionFeedSetup |-- MembershipFeedSetup |-- AliasFeedSetup |-- RangeGroupFeedSetup |-- XRefFeedSetup
This feed is used to define subclasses of Entity, Bridge, DataRecord, and LinkRecord and includes the following fields:
The classId represents the name of the class to create. If it does not exist, the class identified by the parentId is used as the parent class to subclass. The parentId is usually one of Entity, Bridge, DataRecord, or LinkRecord, but it can indicate a subclass of one of these, if appropriate. Since the classId is used to name Vision classes, the names should conform to the convention of starting with a capital letter, although this is not enforced.
The fields can be supplied in any order. If the classId does not reference an existing class, the parentId must be supplied. If the classId already exists, no action is taken. The description is optional and can be used to supply an initial description for a new class or to update the description of an existing class.
For example, to define the Entity subclasses Security and Country and the DataRecord subclass PriceRecord, you could use:
ClassSetup updateFromString: " classId | parentId Security | Entity Country | Entity PriceRecord| DataRecord " ;This upload will create classes for any classId values that do not already exist.
By default, new classes created with the ClassSetup feed are stored in object space 3 except for new subclasses of DataRecord which are stored in the object space defined by Environment DBA DataRecordClasses . If you want a new class to be created in a different object space, you can include the ospace field in the feed header and provide the number of an existing object space as its value. You must create the object space prior to specifying it in the ClassSetup feed.
This feed is used to define new properties for Entity, Bridge, DataRecord, and LinkRecord subclasses and to set or update descriptive information for existing properties. Any property that you wish to update via a DataFeed subclass should be defined by this feed.
This feed uses the following fields:
The fields can be supplied in any order as long as the header line indicates which fields are present. The classId and property fields must be present. The tsFlag and adjustments fields are only examined when a new property is created so these should be present if applicable. The other fields are optional and can be used to update new or existing properties.
The classId field identifies the class at which to define the property. This id must reference an existing class. The property field identifies the property to create or update. If the property does not exist it is created for the class indicated by classId. The classId and property fields must be supplied. The tsFlag field indicates whether the property should be created as a time series property. A value of Yes or True indicates that the property should be a time series. Properties are created as fixed properties by default. Note that if the property is already defined for the class, this field is ignored.
The adjustments field is used to indicate if the property is being used to store data that needs special adjustments. If this field is used, the underlying property name is created with a _ prepended to it and a cover method is defined using the property name without the prefix. The cover method is used to access this property with the appropriate adjustments. This field can contain one or more of the keywords defined to perform adjustments. The following keywords have been defined:
| CURRENCY | data is in monetary units; adjust for currency |
|---|---|
| PERSHARE | data is supplied as per share values ; adjust for splits (investment applications only) |
| SHARES | data is supplied in terms of shares outstanding; adjust for splits (investment applications only) |
Any number of keywords can be included for a property. This value is normally blank, indicating that no special adjustments are needed. This field is only used during new property creation. For example:
PropertySetup updateFromString: "classId property dataType adjustments GVData price Double CURRENCY PERSHARE GVData sharesOut Double SHARES " ;
The defaultValue field indicates the default value to set for the property when a new instance of its class is created. If this field is omitted, the new instances will have the value NA for this property. For time series properties, this default value is set as of the earliestPossibleDate (i.e., 1/1/0001). This value can be supplied as the name of a class (e.g., Currency to indicate that the property should return the default Currency object) or a specific value (e.g., 0 or -999.99). If a default value is supplied, all inputs are converted to a value of this type when updated from a feed.
Note: If the classId references an Entity subclass and the defaultValue is a DataRecord subclass, this property is used to establish the update relationship between these two classes.
If you want to supply a default type but do not want to automatically initialize the value of new instances for this property, use the dataType field instead. This field will set the returnObjectType for this property (which is used to convert inputs to the appropriate class) but will not initialize this property for new instances. If the defaultValue is supplied, the dataType can be omitted. In general, you will want to set the defaultValue when the property references an instance of an application class such as an Entity. This will initialize the property with the default instance of the appropriate class. If the property is intended to return a Double, Integer, String, or Date, you would indicate the appropriate class as the dataType and omit the defaultValue so that the initial value of the property is NA. Values supplied from the feed will be converted to the class specified by the defaultValue, if present, or the dataType otherwise.
The description field supplies a description of the property. It can be used to set the initial description for a new property or to update the description for an existing property.
The propertyXRef field is used to establish a one-to-many relationship between the supplied class and the class indicated by the defaultValue. If present, this field is used to define a property at the defaultValue's class that returns an IndexedList of the instances that are members of that class. For example:
| Field | Value |
|---|---|
| classId | Company |
| property | country |
| defaultValue | Country |
| propertyXRef | companyList |
implies the following:
For example:
PropertySetup updateFromString: " classId | property | tsFlag | defaultValue Country | x | N | 0 Country | y | Y | Currency | z | Y | Country " ;This update defines two properties x and y for the class Country if they do not already exist. Property x is defined to be a fixed property and y is time varying. Property x will initially be set to 0 when new instances of Country are created. Property z will be defined for the class Currency if it does not already exist. It will be defined as a time varying property. This property value will be set to the default Country for new instances.
This feed is used to add descriptive information to messages defined in your database. It can be used to supplement information supplied in using the PropertySetup feed or to describe methods that have been installed.
This feed uses the following fields:
The fields can be supplied in any order as long as the header line indicates which fields are present. The classId and message fields must be present.
The classId and message fields identify the message. Both must be present and must identify a message that already exists.
The keyType field is optional and is used to indicate that the message can be thought of as a "key" for the class. Vision does not use keys explicitly but this field can be used as an indicator on schema based reports. Valid values for this field are FULL and PARTIAL indicating the message represents the only (FULL) key or a partial key.
The returnType field indicates the class of object returned by the message. The containerType field indicates the form of the object returned when the message returns a collection. Valid values are List, IndexedList, TimeSeries, and Object indicating the type of collection, if applicable. If no value or a bad value is supplied, the default value of Object is used, indicating that the value is NOT returned as a collection.
The function field is used to define a functional categorization for the message. By default, messages uploaded via this feed are set to a function type of Data. The level field is used to indicate expected user level for the message. Defined values are Basic, Advanced, or DBA.
The tvFlag field indicates if the message returns different values over time. If the message is a property or constant, this field is ignored since the time varying attribute is based on the type of property. If this message refers to a method, you can use this field to indicate that the method may return different values as of different dates by supplying the value Yes or True. By default, methods are not flagged as time-varying.
The brief field is used to define a brief description. The description field is used to define a long description.
The paramList field contains a comma-separated list of types, one for each parameter in binary and keyword messages. This field can also be used to set the index type for a message that return an IndexedList.
The GlobalsFeed class is used to override the default settings for
loading a data feed file. The overrides only apply to the next feed run. The
loadFromFile: and updateFromString: messages can be used to load global values with this feed. The first line of the feed may contain the header line record however it is ignored as the fields are assumed to be in the following order:
option | setting | settingType
where option is a configuration option such as
delimiter, fieldOrderList, or autoExpire and setting
is the value you wish to use as an override. The settingType is optional
and is used to indicate the type of data supplied in the setting field
such as Date or DateOffset. For example:
GlobalsFeed updateFromString: "option | setting | settingType asofDate | 9906 | Date autoExpire | 1 businessDays | DateOffset " ;
Note: the data must be supplied in this order.
The GlobalsFeed is used by configuration files. The Global options used in the built-in feeds are described elsewhere.
DataFeed classes can be used to flag entities as inactive (MasterFeed subclasses) and to purge actual DataRecords and points in time series properties (EntityExtenderFeed subclasses). To indicate that you want to use a feed to purge data, you can set the enablePurge flag prior to executing the feed. The next time the flagged feed is executed, it will be run in "purge" mode. After it executes, the purge flag is automatically disabled.
For example: CurrencyMaster enablePurge ;
CurrencyMaster updateFromString:
"id |
CAD
" ;
flags the Canadian currency as inactive.
You cannot purge the entity instances associated with a master feed but you can flag them as inactive. If you set the enablePurge flag prior to running a MasterFeed update, all entities included in the feed will be flagged for deletion, performing the following steps:
If you want to store a specific reason for the entity's deletion, you can include the terminateFlag field in your feed. The value in this field will be used to update the deletionReason property in the entity. Note that if you include this field explicitly, you do not need to set the enablePurge option prior to executing the feed.
EntityExtenderFeed classes can be used to purge information in a number of ways depending on the style of feed. If the feed is used to update time series properties defined directly for an Entity or Bridge class, the update will delete dates from each time series specified when the enablePurge option is set. If the feed is used to update a time series of DataRecords, the update will delete dates in this time series when the enablePurge option is set. When the feed is used to update a DataRecord containing time series properties, the update will delete dates from the individual time series specified when the enablePurge option is set.
The entityId value can be specified as *, indicating that you wish to
purge all entities for the supplied date. The date value can also be
specified as a *, indicating that you wish to purge all dates for the supplied
entity. Alternatively, the date can be specified as a range in the form:
date1:date2 (all dates between date1 and date2)
date1: (all
dates from date1 on)
:date2 (all dates through date2)
For example:
#-- Purge specific date for specific entity PricingFeed enablePurge; PricingFeed updateFromString: "id | date IBM | 990709 " ; #-- All entities; explicit date PricingFeed enablePurge; PricingFeed updateFromString: "id | date * | 990709 " ; #-- 1 entity ; date range PricingFeed enablePurge; PricingFeed updateFromString: "id | date IBM | 990701 : 990729 " ; #-- 1 entity ; all points before a date PricingFeed enablePurge; PricingFeed updateFromString: "id | date IBM | :990729 " ; #-- 1 entity ; all date PricingFeed enablePurge; PricingFeed updateFromString: "id | date IBM | * " ;
| Copyright © 2000 Innovative Systems Techniques, Inc. | Updated December 15, 2000 |


Movie misdemeanours
by Tushna CommissariatTaken from the November 2019 issue of Physics World. Members of the Institute of Physics can enjoy the full issue via the Physics World app.
Brother-and-sister duo Eugenia Viti and Ivan Viti explore the difference between reel and real physics
Regular readers of the magazine will be familiar with “Lateral Thoughts” – Physics World’s long-running column of humorous or otherwise offbeat essays, puzzles, crosswords, quizzes and comics, all written by our readers – that appears on the back page each month. For this month’s special issue “physics at the movies”, siblings Eugenia Viti and Ivan Viti have crafted a comic that takes tackles the tricky subject of physics on the big screen – can you name the two film bloopers depicted and the one movie that got the science right?
Eugenia is a cartoonist, illustrator and writer living in Chicago, US. Follow her on Instagram @eugeniaviti. Ivan has a PhD in physics and is working as an advanced development engineer at Hydro-Gear. He lives with his wife, three cats, two dogs and one goldfish


ZAP co. Has all you need to further your modeling career to super stardome with connections all around the world.
Get Started!We are the best of the best at our feild with over 20 years of combined skills and experience.
With the worlds most powerful models and connections every company wants our models.
Prada..Givenchy..Burberry....
With companies offering high percentile cuts from contracts you want a company that has a high fame and reputation to book you anywere and everywere!
Ready to start your Future! Give us a call or send us an email and we will get back to you as soon as possible!
123-456-6789


Each proposal has its own terms for collaboration, find out more in the descriptions!
LOG INEntry is not admitted anymore but you can enjoy the outputs!
Our main team leading the projects here can also be contacted for private initiatives
We provide BI solutions, and Front End + Back End development support.


This August, we will witness one of the greatest events in E-sports, The International, and the prize pool is expected to be bigger than ever. The first International was held in Cologne, Germany, to showcase Dota 2 to the world. It started with a base prize of a remarkable $1.6 mil. That’s what caught attention. While the base prize pool remained the same, 8 years later the total prize pool reached a staggering $34 mil because of crowdfunding and contributions. It’s safe to say that The International will only go uphill from here. I have a cool forecast that shows where TI will be in 3 years:
WHEN AND WHERE?
This year, TI10 will be held in Stockholm, Sweden in the summer. The exact dates have not yet been disclosed, but Valve has confirmed that the main event will run from August 18-23, 2020. The International is divided into 3 stages: qualifiers, playoffs, and the main event. Each team will play in a regional qualifiers stage across a period of 2 weeks, where the top 2 teams progress to the play-offs. The play-offs run across seven days and will decide which eight teams progress to the main event.
SO DO I STREAM OR WHAT?
Yes, Absolutely! The International is broadcasted on Twitch and SteamTV. You have the choice to watch through your Dota 2 client as well. That will give you the freedom to move and watch players as you please.
WHERE DO I BUY THE TICKET?
Valve has not yet confirmed where you’ll be able to buy tickets for TI10 but the official ticket sales site will be announced by the Dota 2 developers in due course. It’s not confirmed where the tickets will be sold for the next TI because of last year. Valve had to face a backlash because the tickets for The International 2019 sold out in less than a minute. Just a reminder: that is how fast you have to be to grab your ticket. The Dota Plus and the battle pass holders were obviously given an early access, but Valve may change their mind because of last year’s incident. Let’s see what happens this year!
THE CHAMPIONS?
The current holders of the aegis of champions are the team OG. They won back-to-back titles and currently hold the most number of titles in TI history. Here’s a timeline of the winners:
BTW OG is on its way to win its 3rd title since they have a new addition to their already brilliant team: SumaiL.


Home
Reference
> K
Glossary
>
script path
prev
next
A script path is used to name scripts. See
Script Paths
.


Read Me
Get Employee
Warm Up
Run
Get Department Cost
Warm Up
Run
Get Top N Salaries
Warm Up
Run
Sets
1
2
3
4
5
6
7
8
9
10
Set 1
1
2
3
4
5
6
7
8
9
10
Set 2
11
12
13
14
15
16
17
18
19
20
Set 3
1
2
3
4
5
6
7
8
9
10
Set 4
11
12
13
14
15
16
17
18
19
20
Diff
0
1
2
3
4
5
6
7
8
9


What do you get if you mark a test as ignored when the specification is called from another test?
When I multiply "6 * 7" the answer should be "42".


Your current Stats
Height: 5 feet 3 inches
Weight: 120 pounds
BMI: 20.32
Click here to return to Homepage if you wish to update your stats
Please choose Workout type and length to continue
Choose type of workout
HIIT
Yoga
Zumba
Pilates
Choose length of workout
7 mins
15 mins
30 mins
60 mins


40+ An Logo Images Hd Pictures. Download and use 400+ logo stock photos for free.
Make a logo online in minutes with our logo maker. Create a custom logo in minutes using our free logo maker app. With crello, there is a possibility to access a huge collection of images, patterns.
Start promoting your business get high definition copies of your logo for your business so it's crisp and sharp wherever you use it.
Logologo.com, the home of free logos that really are free. All you have to do is enter your business or brand name and tagline, choose from our image templates, and download your high resolution files. Designevo's free logo maker helps you create unique logos in seconds. We also have graphic designers ready to assist you with any change on your design elements.


Magister Sidra:
You are the Shillien Oracle, who has gained all the knowledge of that office. You do not need another ritual.


Author:
Yuri Maxiutenko,
Software Developer of Apriorit Inc.
This article is devoted to the question about working with services and applications in Windows Vista. In particular we’ll consider how to organize the data exchange between the service and applications. There are a number of different approaches but we will talk about named pipes.
If we talk about big volumes of data in exchange process beteen the application and service in Windows Vista we can use named pipe technology. We must mention that the code below is provided in C++. The classes for working with the named pipes in C# were also introduced but only since .NET Framework 3.5. If you want to know how to use these new .NET tools for working with the named pipes you can read, for example, this article:
http://social.msdn.microsoft.com/Forums/en-US/csharpgeneral/thread/23dc2951-8b59-48e4-89fe-d2b435db48c6
Let’s suppose that an application periodically needs to send some number of unsigned int type to the service.
In this case we can open the named pipe on the service side and then monitor its state in the separated thread to read and process data when they come. So we create the pipe DataPipe in the service code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
|
HANDLE CreatePipe()
{
SECURITY_ATTRIBUTES sa;
sa.lpSecurityDescriptor = (PSECURITY_DESCRIPTOR)malloc(SECURITY_DESCRIPTOR_MIN_LENGTH);
if (!InitializeSecurityDescriptor(sa.lpSecurityDescriptor, SECURITY_DESCRIPTOR_REVISION))
{
DWORD er = ::GetLastError();
}
if (!SetSecurityDescriptorDacl(sa.lpSecurityDescriptor, TRUE, (PACL)0, FALSE))
{
DWORD er = ::GetLastError();
}
sa.nLength = sizeof sa;
sa.bInheritHandle = TRUE;
// To know the maximal size of the received data for reading from the // pipe buffer
union maxSize
{
UINT _1;
};
HANDLE hPipe = ::CreateNamedPipe((LPSTR)"\\\\.\\pipe\\DataPipe", PIPE_ACCESS_INBOUND,
PIPE_TYPE_MESSAGE | PIPE_READMODE_MESSAGE | PIPE_WAIT, PIPE_UNLIMITED_INSTANCES, sizeof maxSize, sizeof maxSize,
NMPWAIT_USE_DEFAULT_WAIT, &sa);
if (hPipe == INVALID_HANDLE_VALUE)
{
DWORD dwError = ::GetLastError();
}
return hPipe;
}
| |
We also create the function to check the thread state and perform reading if required:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
|
unsigned int __stdcall ThreadFunction(HANDLE& hPipe)
{
while (true)
{
BOOL bResult = ::ConnectNamedPipe(hPipe, 0);
DWORD dwError = GetLastError();
if (bResult || dwError == ERROR_PIPE_CONNECTED)
{
BYTE buffer[sizeof UINT] = {0};
DWORD read = 0;
UINT uMessage = 0;
if (!(::ReadFile(hPipe, &buffer, sizeof UINT, &read, 0)))
{
unsigned int error = GetLastError();
}
else
{
uMessage = *((UINT*)&buffer[0]);
// The processing of the received data
}
::DisconnectNamedPipe(hPipe);
}
else
{
}
::Sleep(0);
}
}
| |
And finally start the separate thread with ThreadFunction() function:
1 2 3
|
unsigned int id = 0;
HANDLE pipeHandle = CreatePipe();
::CloseHandle((HANDLE)::_beginthreadex(0, 0, ThreadFunction, (void*) pipeHandle, 0, &id));
| |
Now we go to the application side and organize sending of data to the service via named pipe.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
|
SendDataToService(UINT message)
{
HANDLE hPipe = INVALID_HANDLE_VALUE;
DWORD dwError = 0;
while (true)
{
hPipe = ::CreateFile((LPSTR)"\\\\.\\pipe\\DataPipe", GENERIC_WRITE, 0, 0,
OPEN_EXISTING, 0, 0);
dwError = GetLastError();
if (hPipe != INVALID_HANDLE_VALUE)
{
break;
}
// If any error except the ERROR_PIPE_BUSY has occurred,
// we should return FALSE.
if (dwError != ERROR_PIPE_BUSY)
{
return FALSE;
}
// The named pipe is busy. Let’s wait for 20 seconds.
if (!WaitNamedPipe((LPSTR)"\\\\.\\pipe\\DataPipe", 20000))
{
dwError = GetLastError();
return FALSE;
}
}
DWORD dwRead = 0;
if (!(WriteFile(hPipe, (LPVOID)&message, sizeof UINT, &dwRead, 0)))
{
CloseHandle(hPipe);
return FALSE;
}
CloseHandle(hPipe);
::Sleep(0);
return TRUE;
}
| |
To learn this question deeper and a lot of features of developing for Windows Vista we also recommend the book by Michael Howard, David LeBlanc - Writing Secure Code for Windows Vista (Microsoft Press, 2007).


Nike Joins the 3% Cash Back Club for Apple Card
by Andrew OrrNike joins other companies in offering 3% cash back to customers who use the Apple Card (via TechCrunch).
3%
The offer works when customers use Apple Pay on any of Nike’s platforms including retail stores, Nike.com, SKNRS, Nike Training Club, Nike Running Club, and the main Nike app.
Although the list of 3% merchants is still small, Apple said more partners will be added in the future. Our Apple Card guide below contains the full list of merchants.
Further Reading: