%include file="header.html" args="page='/config/links', subtitle='Link configuration'"/>
Parameters per link. If only source or only destination is specified, it applies to any transfer from/to that storage.
Based on these values FTS3 will split the load between the different VOS configured per link. Note that the values are normalized to a percentage.
When configuring shares, do not forget the public "VO", so any other VO can have access too.


Explanations of some of the tools and gems I’m using along the way, both for reference along the way, and as docs to remind me later.
http://whatisthor.com/
Normally, if your project needed a Gem, you would simply include it in your gemfile, and require it in your application. But in this case we’re writing a gem, not an application, so instead we need to add the dependency to our gemspec:
spec.add_runtime_dependency "thor", "~> 0.20.3"
Thor is a useful base class for our CLI, so we’ll start by subclassing from it in our Cli
class (inside the Candidates Module).
The next step to make Thor work, is that we need to tell our executable file (inside the exe
directory) to start it:
Candidates::Cli.start
Once we’ve done that, we’re able to run bundle exec candidates
in our terminal while building the gem.
Thor helps create CLI tools. It effectively creates a Table of Contents of all available CLI functionality.
This is a demo of some of what Thor can do:
class Cli < Thor
desc "hello NAME", "prints hello world"
option :loud, type: :boolean
def hello(name)
message = "hello #{name}"
if options[:loud]
puts message.upcase
else
puts message
end
end
end
The Thor website somehow doesn’t actually link to Github :p Planning to submit a PR for this later!
https://github.com/jnunemaker/httparty
HTTParty is a gem that will pull in the data from HTTP APIs. You can use it similar to how you’d use Nokogiri for scraping. It just makes the HTTP request for you.
Here’s an example of a use:
HTTParty.get("https://api.github.com/users/wifelette").parsed_response
If you called it without the .parsed_response
it would give you a gem-specific version of the content called HTTParty::Resonse
. That has a bunch of metadata in it as well, versus if you do .parsed_response
you’re just getting the actual primary data in a hash. So there are different use cases for each, but I mostly use .parsed_response
.
Don’t forget to once again add it to your gemspec:
spec.add_runtime_dependency "httparty", "~> 0.17.1"
…and to require
it in your CLI.rb
.
While testing, I added the Pretty Print requirement to my files to help me parse the data visually in temporary testing. After digging around a bit I chose to instead use Awesome Print
which does the same thing but is a bit more feature rich.
require "awesome_print"
It also needs to go into the Gemspec:
spec.add_runtime_dependency "awesome_print", "~> 1.8"
Pretty much everything needs to go in the gemspec, and following a similar convention, so I’ll stop explicitly mentioning that here now.
I just added this for fun color in my CLI messages :p It’s gratuitous.
spec.add_runtime_dependency "pastel", "~> 0.7.3"
require "pastel"
To look up the available options: https://github.com/piotrmurach/pastel
It made the code kind’v hard to look at in some cases, since it caused things like nested interpolation, but the user output looks great. In some places I’ve extracted strings + pastel code into variables to keep the main code easier to read.
https://github.com/bblimke/webmock
Webmock is a gem I’m using to allow me to use stub data in my tests, instead of continuing to hammer the actual API every time. I added this after chatting with a classmate who was getting rate limited by her project website :p
Later, when I added the option to switch to a new candidate, I had to add a second set of stubbed data so I could use that feature with mocks.
Full disclosure: I got some help with this and don’t entirely understand how it works.
By default, the candidates
gem will use live data.
While developing, I’ll run it using CANDIDATES_DEV=1 ./bin/candidates wizard
to use the stub data instead of making live API calls.
https://rubygems.org/gems/tty-prompt https://github.com/piotrmurach/tty-prompt
TTY-prompt is a gem I layered over Thor to help with pretty looking interactions, like choices with lists, yes/no questions, etc.
Eventually I may strip out Thor all together since this gives me almost all of what I need, and makes it pleasant enough that the Thor help
command isn’t all that important anymore. But TBD, it also may be more work to remove it than to just leave it there.
TTY is part of a family of gems though, so once I added tty-prompt
I ended up toying with a bunch of the others as well. Some I uninstalled after. tty-prompt
and tty-markdown
are the primary ones I’m using for now.
I wanted some bigger blocks of text in my CLI primary commands, and I also wanted them in color. They ultimately made my code VERY heavy/hard to read, so I extracted the large bits of text into separate Markdown files, and then used tty-markdown
to import and parse them in the actual CLI.
I also overwrote the standard Markdown coloring scheme to accomplish my goals. For example, there’s no markdown format for “make all my regular text look like this” so I overwrote the default stylesheet for how italics look, and then made everything italicized.
One of my API calls (orgs_hashes
) could take a while to return data, since it could be a lot. My CLI explains this to the user ahead of time, but I still liked the notion of a visible progress bar.
It’s up and running but I haven’t yet dug in enough to make it especially useful. Right now it’s running for an arbitrary amount of time, untethered from the actual API call. If I end up with more time I’ll go back and finesse this (or possibly replace it with tty-progressbar
).
UPDATE: Nixed this altogether, since I was making a silly mistake in my understanding of the API call situation :p It shouldn’t actually be slow.
https://github.com/twitter/twitter-cldr-rb
I used this gem, in conjunction with built in Ruby functionality (Date
) to prettify the github user’s start date from 2008-09-19T21:40:19Z
to a human-readable X months/years/etc ago
.
We haven’t really covered testing in the curriculum yet, so I can’t really write my own, but I’m working to better understand them for now at least. A friend helped me write a few starting tests as a learning opportunity. I didn’t want to get to distracted though, so once that session was over I didn’t continue to write more. I hope to go back to them one day. Writing this gem definitely made me appreciate testing in general, since I could’ve run my test suite after each change instead of needing to restart my program and manually test all the options each time.


{{ headContent() }}
Average Daily Rainfall
Highest Rainfall in a day observed on 7th November 2009 in Coffs Harbour
Total maximum rainfall observed in a state was in Queensland in 2010
Maximum Total rainfall in a Year was observed in 2010
Overall maximum monthly rainfall is observed in March over the decade
Overall maximum rainfall is observed in Summers over the decade
Australia is home to some of the driest regions in the world, while also being subject to periods of heavy rainfall and cyclones.
From one extreme to another, parts of the far North Queensland coast annually average over 4,000 mm (157 in). The average annual rainfall in the Australian desert is low, ranging from 81 to 250 mm (3 to 10 in). Rainfall records tend to be concentrated along the east coast of Australia, particularly in tropical north Queensland. Australia has a compact shape, and no significant bodies of water penetrate very far inland. This is important in as much as moist winds are prevented from penetrating inland, so keeping rainfall low
{{ slider_style = chooseSliderSkin("Round") }} {{ tags$head(tags$style(type='text/css', ".slider-animate-button { font-size: 20pt !important; padding-top: 3in; text-decoration: none; text-shadow: 2px 2px 5px black; font-weight: bold;color: #2c3fe4;}")) }} {{ carousel1 }}Annually, Summers receive the maximum rainfall while Winters receive the least amount
The southern parts of Australia get the usual westerly winds and rain-bearing cold fronts that come when high–pressure systems move towards northern Australia during winter. Cold snaps may bring frosts inland, though temperatures near the coast are mild or near mild all year round. Summers in southern Australia are generally dry and hot with coastal sea breezes. The tropical areas of northern Australia have a wet summer because of the monsoon. During "the wet", typically October to April, humid north-westerly winds bring showers and thunderstorms. Occasionally, tropical cyclones can bring heavy rainfall to tropical coastal regions, which is also likely to reach further inland. After the monsoonal season, the dry season comes ("winter"), which brings mostly clear skies and milder conditions.
{{ slider_style = chooseSliderSkin("Round") }} {{ tags$head(tags$style(type='text/css', ".slider-animate-button { font-size: 20pt !important; padding-top: 3in; text-decoration: none; text-shadow: 2px 2px 5px black; font-weight: bold;color: #2c3fe4;}")) }} {{ carousel2 }}Sunshine, Humidity and Cloud cover are the major factors influencing rainfall
{{ slider_style = chooseSliderSkin("Round") }} {{ tags$head(tags$style(type='text/css', ".slider-animate-button { font-size: 20pt !important; padding-top: 3in; text-decoration: none; text-shadow: 2px 2px 5px black; font-weight: bold;color: #2c3fe4;}")) }} {{ carousel3 }}Overall, rainfall is concentrated along the east coast of Australia and Tasmania, while inland area comprising of deserts is an indication of very little rainfall inland. Occasionally, tropical cyclones can bring heavy rainfall to tropical coastal regions, which is also likely to reach further inland.
Overall, Summers receive the maximum rainfall due to the humid north-westerly winds in the months of November to March while Winters receive the least due to low Humidity
Overall, Sunshine, Cloud Cover and Humidity influence rainfall the most but sudden erratic wind disturbances cause cyclones causing rainfall reaching inland regions of Australia as well.


Personal: feeds 1 person
Small: feeds 2 people
Medium: feeds 2-3 people
Large: feeds 3-4 people
In order to mantain quality, we have raised our prices to $3.00 per topping


Toggle navigation
Computer Sets
PC to PI
Wolf to PI
Rho To Wolf
RTT
Throughput
Speed and Message sizes
RTT
Throughput
Speed and Message sizes
RTT
Throughput
Speed and Message sizes


Drag and Drop the Columns in order to arrange them in an order you like. You can hide them as well by dragging them to the right.
Choose which Columns should be displayed on your Big Screen and your Small Screen. Check above which state you are currently changing.
Note: You can only search for displayed columns.


Home Contact
Address: 987 West 21th Street, Nairobi, KE 00016
Phone: +254 123 456 789
Email<EMAIL_ADDRESS>Website: yoursite.com


In this page you can find the description and explanations to some common exceptions in WebDriver.
This section describes why you might be seeing the InvalidSelectorError (or similar).
The CSS or xPath selector you are trying to use...
* >>> #canvas div.bwu-datagrid-row div.bwu-datagrid-cell.l0is invalid because
Unexpected token '>' at column 4
This section describes why you might be seeing the NoSuchElementException (or similar).
You have probably been directed to this page because you've seen a StaleElementReferenceException in your tests.
A stale element reference exception is thrown in one of two cases, the first being more common than the second:
The most frequent cause of this is that page that the element was part of has been refreshed, or the user has
navigated away to another page. A less common, but still common cause is where a JS library has deleted an element
and replaced it with one with the same ID or attributes. In this case, although the replacement elements may look
identical they are different; the driver has no way to determine that the replacements are actually what's expected.
If the element has been replaced with an identical one, a useful strategy is to look up the element again. If you
do this automatically, be aware that you may well be opening your tests to a race condition and potential flakiness.
For example, given the code:
WebElement element = driver.findElement(By.id("example")); String text = element.getText();
If element.getText
returns before the element is removed from the DOM you'll get one result.
If, however, the element is removed from the DOM and your code does an automatic lookup for the element again
before element.getText
a different result may be returned.
Should you wish to head down this route, the simplest hook point is to call setElementConverter.
A common technique used for simulating a tabbed UI in a web app is to prepare DIVs for each tab, but only attach
one at a time, storing the rest in variables. In this case, it's entirely possible that your code might have a reference
to an element that is no longer attached to the DOM (that is, that has an ancestor which is "document.documentElement").
If WebDriver throws a stale element exception in this case, even though the element still exists, the reference
is lost. You should discard the current reference you hold and replace it, possibly by locating the element again
once it is attached to the DOM.
Watermarked fields in JQuery change from a regular input to a password field as they get focus. The first end-user
key press arrives in the password variant.
Refer to pwField2 in this example
All rights reserved, Software Freedom Conservancy


Strictly's Alex Scott suffers embarrassing wardrobe malfunction as she gets stuck to Neil Jones
Tess had to step in to free them!
by Entertainment DailyAlex Scott suffered an embarrassing wardrobe blunder during her performance on last night's Strictly Come Dancing.
Alex and professional partner Neil Jones took to the floor to dance the first Argentine Tango of the series.
The pair had just completed their passionate routine to Bishop Briggs' cover of Never Tear Us Apart when Alex managed to accidentally get her sequin dress caught up in Neil's shirt.
Read more: Strictly Come Dancing viewers blast Craig Revel Horwood over 'ridiculous' scores
Alex tried to prise herself away, but couldn't - so in the end Neil had to carry her over to the judges' desk.
"We have a minor wardrobe blunder," Neil joked before Tess Daly stepped in to help free them.
Once freed, the pair then faced the four judges, who admitted they weren't impressed by this week's routine.
Craig Revel Horwood told them: "I thought it was very heavy and flat-footed, you need to use your feet a lot more in this dance, that... section I thought you looked like you were churning butter than reacting.

Shirley Ballas was impressed by their chemistry, but said the performance wasn't without its flaws.
Read more: Strictly Come Dancing viewers in tears as Kelvin Fletcher pays emotional tribute to his wife
"There is no other dance that connects two people physically and emotionally and I thought your emotional connection with Neil was outstanding," she explained.
"I was really getting into it and very excited for you, but there were some mistakes and there were some places where you lost balance."
Alex and Neil ended up scoring 26 points out of 40 and finished in joint last place on the leaderboard.
Meanwhile, Karim Zeroual and partner Amy Dowden came top of the Strictly leaderboard after the judges gave the couple a score of 38 for the Couple's Choice: Contemporary routine to the song Drops of Jupiter by With Confidence.
- Strictly Come Dancing airs on BBC One tonight at 7.15pm
Leave us a comment on our Facebook page @EntertainmentDailyFix and let us know what you think of this story.


Project Zero
Internet Basics
HTML is the "glue" that holds it all together.
HTML stands for Hyper Text Markup Language.
Information is transfered from a sever to your desktop via HTTP, which is Hper Text Transfer Protocol.
Tags
We learned about two types of tags. inline and block.
Examples of inline include; Bold, Emphais and Anchor.
Examples of block include; Paragraph and Division
Anchor tags are for adding Links.
Image tags are also for adding images.
Image tags and break tags are examples of "void" tags. (i.e tags with no closing brackets).
We learned about dealing with "white space" through either the break tag or the paragraph tag.
HTML Documents
We briefly covered the struycture of a web document using header and body tags.
Most of our class will be in the body tags.


This app attempts to help us make better food choices by putting the nutrition data from the USDA National Nutrient Database in an easily digestible form. By comparing foods in terms of nutrients per calorie, we're able to get an idea of what's healthy and what's empty.
The source code is available on GitHub and is permissively licensed.
You can find me on GitHub and email me at ryanatkn at gmail. Yay f☯☮d.


浅川伸一 (東京女子大学<EMAIL_ADDRESS>14/Jun/2020
上図右の結果は横軸に同時に提示された刺激の個数であり，縦軸は反応時間です。 線分特徴が存在する刺激 (Q) が目標となるか，存在しない (O) が目標となるか によって反応時間に差が認められます。結果は点線，すあんわち特徴が存在しな い目標を探索する条件，点線で描画，では同時に提示された刺激数が増加するに 従って反応時間が増大します。一方，特徴が存在する目標を探索する条件では， 同時提示された刺激の個数によらず反応時間は平坦になります。 以下に同様な実験結果を示しました。
スポットライトメタファー (Crick 1984)
Attention can be likened to a spotlight that enhances the efficiency of detection of events within its beam. Unlike when acuity is involved, the effeet of the beam is not related to the fovea. When the fovea is unill uminated by attention, its ability to lead to detection is diminished, as would be the case with any other are a of the visual system. Posner p.172
(Summerfield et al. 2006) は AI の研究にも影響
ネットワークの内部メモリから読み出す情報を選択するために注意機構
機械翻訳 (Bahdanau, Cho, and Bengio 2015)，NTM (Graves et al. 2016)
コンテンツアドレス(Hopfield 1982)
BERT (Devlin et al. 2018)
From The superior colliculus (SC) has been implicated as the neural substrate for IOR through four converging, but indirect, lines of evidence.
DeepGazeII より成績の良い最右の棒は人間の眼球運動データ
IG: 情報ゲイン, IGE: 修正情報ゲイン, ACU: area under the ROC curve, sAUC: シャッフル精度, NSS: 正規化済キャンパス顕在性 normalized scanpath saliency
\[ \log p(d\vert\theta) = -\sum Q_aE_a-\sum Q_a\log Q_a + \sum Q_a\log\left(\frac{Q_a}{P_a}\right)\\ =- F(d;\theta,Q)+\sum_a Q_a\log\left(\frac{Q_a}{P_a}\right) \]
\[ q^{(l)}\left(\phi,\mathbf{s}^{(l-1)}\right)=\sigma\left(\sum s^{l-1}\phi^{(l-1,l)}\right) \]
\[ Q_\alpha(\phi,d)=\prod\prod\left[q^{(l)}\left(\phi,\mathbf{s}^{(l-1)}\right)\right]^{s^{l}} \left[1-q^{(l)}\left(\phi,\mathbf{s}^{(l-1)}\right)\right]^{1-s} \]
\[ p_j^{(l)}\left(\theta,\mathbf{s}^{(l+1)}\right)=\sigma\left(\sum s^{(l+1)}\theta^{(l+1)}\right) \]
\[ p(\alpha\vert \theta)=\prod\prod\left[p_j^{(l)}\left(\theta,\mathbf{s}^{(l+1)}\right)\right] \]
ボトムアップ処理による認識とトップダウン処理による(こう見えるはずだという思い込みの)生成を \(n\) (\(n=2,\ldots,4\)) 回繰り返す \(\rightarrow\)
思い込みの印象 \(\alpha\) と入力画像 \(d\) を用いて%%の記述長は，単なる前隠れ層ユニットの記述損失であり
\[ C(\alpha,d)=C(\alpha)+C(d\vert\alpha)\\ =\sum_{\ell\in L}\sum_{j\in\ell} C(s_j^\alpha)+\sum_i C(s_i^d\vert\alpha) \]
上式を用いて結合係数の更新を行う \[ \Delta w_{kj}=\epsilon s_k^\alpha \left(s_j^\alpha-p_j^\alpha\right), \]
\[ C(d) = \sum_\alpha Q(\alpha\vert d) C(\alpha, d) - \left[-\sum_\alpha Q(\alpha\vert d) \log Q(\alpha\vert d)\right]. \]
\[ p\left(\alpha\vert d\right)=\frac{e^{-C(\alpha,d)}}{\sum_\beta e^{-C(\beta,d)}} \]
\[ \Delta s_{j,t+1}=\epsilon s_{j,t}^\gamma(s_{j,t}^\gamma-q_{j,t}^\gamma) \]
全体の良い表象が得られるまで，すなわち下位層の活性を再構築するように複数回繰り返す
Bahdanau, Dzmitry, Kyunghyun Cho, and Yoshua Bengio. 2015. “Neural Machine Translation by Jointly Learning to Align and Translate.” In Proceedings in the International Conference on Learning Representations (ICLR), edited by Yoshua Bengio and Yann LeCun. San Diego, CA, USA. http://arxiv.org/abs/1409.0473.
Bichot, Narcisse P., Matthew T. Heard, Ellen M. DeGennaro, and Robert Desimone. 2015. “A Source for Feature-Based Attention in the Prefrontal Cortex.” Neuron 88 (November): 832–44.
Bloom, Floyd E., and Arlyne Lazerson. 1988. Brain, Mind, and Behavior. 2nd ed. New York, NY: Freeman.
Borji, Ali, and Laurent Itti. 2013. “State-of-the-Art in Visual Attention Modeling.” IEEE Transaction on Pattern Analysis and Machine Intelligence 35 (1): 185–207.
Broadbent, Donald E. 1958. Perception and Communication. Oxford,UK: Pergamon.
Buschman, Timothy J., and Sabine Kastner. 2015. “From Behavior to Neural Dynamics: An Integrated Theory of Attention.” Neuron 88 (October): 127–44.
Crick, Francis. 1984. “Function of the Thalamic Reticular Complex: The Search Light Hypothesis.” Proceedings of the National Academy of Sciences 81 (July): 4586–90.
Dayan, Peter, Geoffrey E. Hinton, Radford M. Neal, and Richard S. Zemel. 1995. “The Helmholtz Machine.” Neural Computation 7: 889–904.
Devlin, Jacob, Ming-Wei Chang, Kenton Lee, and Kristina Toutanova. 2018. “BERT: Pre-Training of Deep Bidirectional Transformers for Language Understanding.” arXiv Preprint.
Duncan, John, and Glyn W. Humphreys. 1989. “Visual Search and Stimulus Similarity.” Psychological Review 96 (3): 433–58.
Eriksen, Charles W., and James D. St.James. 1986. “Visual Attention Within and Around the Field of Focal Attention: A Zoom Lens Model.” Perception and Psychophysics 40 (4): 225–40.
Fiebelkorn, Ian C., Yuri B. Saalmann, and Sabine Kastner. 2013. “Rhythmic Sampling Within and Between Objects Despite Sustained Attention at a Cued Location.” Current Biology 23 (December): 2553–8.
Friston, Karl J, Klaas Enno Stephan, Read Montague, and Raymond J Dolan. 2014. “Computational Psychiatry: The Brain as a Phantastic Organ.” The Lancet Psychiatry 1: 148–58.
Graves, Alex, Greg Wayne, Malcolm Reynolds, Tim Harley, Ivo Danihelka, Agnieszka Grabska-Barwi nska, Sergio Gómez Colmenarejo, et al. 2016. “Hybrid Computing Using a Neural Network with Dynamic External Memory.” Nature 538: 471–76. https://doi.org/10.1038/nature20101.
Heilman, Kennerh M., and Edward Valenstein. 1979. “Mechanisms Underlying Hemispatial Neglect.” The Annals of Neurology 5 (2): 166–70.
Hinton, Geoffrey E., Peter Dayan, Brendan J. Frey, and Radford M. Neal. 1995. “The "Wake-Sleep" Algorithm for Unsupervised Neural Networks.” Science 268 (5214): 1158–61.
Hopfield, John Joseph. 1982. “Neural Networks and Physical Systems with Emergent Collective Computational Abilities.” Proceedings of the National Academy of Sciences 79: 2554–8.
Itti, Laurent, and Ali Borji. 2014. “Computational Models: Bottom-up and Top-down Aspects.” In The Oxford Handbook of Attention, edited by Anna C. Nobre and Sabine Kastner, 1122–58. Oxford University Press.
———. 2015. “Computational Models of Attention.” ArXiv Preprint.
Itti, Laurent, and Christof Koch. 2001. “Computational Modelling of Visual Attention.” Nature Reviews Neuroscience 2: 1–11.
Itti, Laurent, Christof Koch, and Ernst Niebur. 1998. “A Model of Saliency-Based Visual Attention for Rapid Scene Analysis.” IEEE Transactions on Pattern Analysis and Machine Intelligence 20 (11): 1254–9.
Kawato, Mitsuo, Hideki Hayakawa, and Toshio Inui. 1993. “A Forward-Inverse Optics Model of Reciprocal Connections Between Visual Cortical Areas.” Network: Computation in Neural Systems 4 (4): 415–22.
Kimura, Akisato, Ryo Yonetani, and Takatsugu Hirayama. 2013. “Computational Models of Human Visual Attention and Their Implementations: A Survey.” IEICE Transactions of Information & Systems E96-D (3): 562–78.
Knudsen, Eric I. 2007. “Fundamental Components of Attention.” Annual Revivew of Neuroscience 30: 57–78.
Koch, Christoh, and Simon Ullman. 1985. “Shifts in Selective Visual Attention: Towards the Underlying Neural Circuitry.” Human Neurobiology 4: 219–27.
Krauzlis, Richard J., Lee P. Lovejoy, and Alexandre Zénon. 2013. “Superior Colliculus and Visual Spatial Attention.” Annual Review of Neuroscience 36 (165–182).
Kümmerer, Matthias, Thomas S. A. Wallis, and Matthias Bethge. 2019. “DeepGaze III: Using Deep Learning to Probe Interactions Between Scene Content and Scanpath History in Fixation Selection.” In Proceedings of Cognitive Computational Neuroscience, 542–45. Berlin, Germany. https://doi.org/https://doi.org/10.32470/CCN.2019.1235-0.
Kümmerer, Matthias, Thomas S. A. Wallis, Leon A. Gatys, and Matthias Bethge. 2017. “Understanding Low- and High-Level Contributions to Fixation Prediction.” In The IEEE International Conference on Computer Vision (ICCV), 4789–98. Venice, Italy.
Milanese, Ruggero, Harry Wechsler, Sylvia Gill, Jean-Marc Bost, and Thierry Pun. 1994. “Integration of Bottom-up Integration of Bottom-up and Top-down Cues for Visual Attention Using Non-Linear Relaxation.” In The Proceedings of CVPR, IEEE – Institute of Electrical and Electronics Engineers, 781–85. Dallas Texas, USA: Computer Vision; Pattern Recognition (CVPR).
Miller, Earl K., and Jonathan D. Cohen. 2001. “An Integrative Theory of Prefrontal Cortex Function.” Annual Revivew of Neuroscience 24 (167–202).
Monosov, Ilya E., and Kirk G. Thompson. 2009. “Frontal Eye Field Activity Enhances Object Identification During Covert Visual Search.” Journal of Neurophysiology 102 (October): 3656–72.
Moore, Tirin, and Marc Zirnsak. 2017. “Neural Mechanisms of Selective Visual Attention.” Annual Review of Psychology 68 (January): 47–72. https://doi.org/10.1146/annurev-psych-122414-033400.
Olshausen, Bruno A., Charles H. Anderson, and David C. Van Essen. 1993. “A Neurobiological Model of Visual Attention and Invariant Pattern Recognition Based on Dynamic Routing of Information.” The Journal of Neuroscience 13 (11): 4700–4719.
Petersen, Steven E., and Michael I. Posner. 2012. “The Attention System of the Human Brain: 20 Years After.” Annual Review of Neuroscience 35: 73–89.
Posner, Michael I., and Steven E. Petersen. 1990. “The Attention System of the Human Brain.” Annual Review of Neuroscience 13: 25–42.
Posner, Michel I. 1980. “Orienting of Attention.” Quarterly Journal of Experimental Psychology 32: 3–25.
Salinas, Emilio, and L. F. Abbott. 1997. “Invariant Visual Responses from Attentional Gain Fields.” Journal of Neurophsiology 77: 3267–72. https://doi.org/10.1152/jn.19<IP_ADDRESS>67.
Sperry, Roger W. 1961. “Cerebral Organization and Behavior.” Science 133: 1749–57.
Sperry, Roger W. 1968. “Hemisphere Deconnection and Unity in Conscious Awareness.” American Psychologist 28: 723–33.
Summerfield, Jennifer J., Jöran Lepsien, Darren R. Gitelman, M. Marsel Mesulam, and Anna C. Nobre. 2006. “Orienting Attention Based on Long-Term Memory Experience.” Neuron 49: 905–16. https://doi.org/10.1016/j.neuron.2006.01.021.
Treisman, Ann. 1964. “Selective Attention in Man.” British Medical Bulletin 20: 12–16.
———. 1988. “Feature and Objects: The Fourteenth Bartlett Memorial Lecture.” The Quarterly Journal of Experimental Psychology 40A: 201–37.
Treisman, Anne M. 1969. “Strategies and Models of Selective Attention.” Psychological Review 76 (3): 282–99.
Treisman, Ann, and George Gelade. 1980. “A Feature Integration Theory of Attention.” Cognitive Psychology 12: 97–136.
Treisman, Ann, and J. Souther. 1985. “Search Asymmetry: A Diagnostic for Preattentive Processing of Separable Features.” Journal of Experimental Psychology: General 114 (3): 285–310.
Vinyals, Oriol, Alexander Toshev, Samy Bengio, and Dumitru Erhan. 2015. “Show and Tell: A Neural Image Caption Generator.” In Computer Vision and Pattern Recognition (CVPR). Boston, MA, USA. http://arxiv.org/abs/1411.4555v1.
Wang, Wenguan, and Jianbin Shen. 2018. “Deep Visual Attention Prediction.” IEEE Transactions on Image Processing 27 (5): 2368–78.
Wardak, Claire, Etienne Olivier, and Jean-René Duhamel. 2004. “A Deficit in Covert Attention After Parietal Cortex Inactivation in the Monkey.” Neuron 42 (May): 501–8.
Wolfe, Jeremy M. 1994. “Guided Search 2.0 a Revised Model of Visual Search.” Psychonomic Bulletin and Review 1 (2): 202–38.


PatternJS — regular expressions for trees
Table of Contents
1 pattern.js – regular expressions for trees
This is an implementation of a pattern matching engine similar in power to regular expressions but applicable to trees (array of arrays, in this case) rather than strings.
Based on ideas in an excellent paper by Russ Cox1, we compile search queries to a home-made bytecode and provide a specialized VM to run the bytecode. The VM can only say if a tree matches a query or not; to search, we apply the query to all the subtrees. Speed was not a goal for my implementation2, but it's pretty fast by my tests.
2 Syntax by examples
This library is useful when you need to search something in an array and the search is more complicated than what indexOf can handle. In other words, when the search is even moderately complex, you need this tool.
For example, suppose you're looking for the sequence 3, 4, 5 in the following array:
[ 1, 2, 3, 4, 5, 6, 7, 8, 9 ]
You would like to know at which index it starts. You'll usually need to
know where it ends too, but this is a simple expression that doesn't involve
repetitions, so the end index is trivial to get—it's START + LENGTH
.
With PatternJS we can use the following code:
var $ = require("pattern"); var haystack = [ 1, 2, 3, 4, 5, 6, 7, 8, 9 ]; var needle = $.compile(3, 4, 5); $.search(haystack, needle, function onmatch(m){ console.log(m.$node); // == haystack in this case console.log(m.$start); // 2 console.log(m.$end); // 5 console.log(m.$match().content()); // [ 3, 4, 5 ] });
The above code shows the basic API to this library. It exports two main
functions: compile
and search
. The first takes a search query and
returns the compiled bytecode. The search
function takes the array to
search, the bytecode to run, and an “onmatch” function. This function takes
a single argument that contains various information about the match. Above
I showed the following 4 properties:
$node
— the node that matched$start
— the position where match starts$end
— the position where the match ends$match
— this returns aMatch
object. I'll describe them later. For now you can notice that it has a content() method, which returns the node content. In the case above,$match().content()
is the same as$node.slice($start, $end)
.
2.1 Repetition (MANY
, MORE
)
The above example is already a bit more than indexOf
can handle, but as
promised, this library is as powerful as regular expressions. Here's how we
can handle repetition. Suppose we want to find blocks of one or more “a”-s
in an array:
var a = [ 1, 2, "a", 3, 4, "a", "a", "a", "b", "a", "a", "c" ]; var pat = $.compile($.MORE("a")); $.search(a, pat, function(m){ // log where it starts, where it ends, and contents console.log(m.$start, m.$end, m.$match().content()); });
We get the following output:
2 3 [ 'a' ] 5 8 [ 'a', 'a', 'a' ] 9 11 [ 'a', 'a' ]
We can also search for repetitive expressions consisting of more than one node. For example, finding consecutive occurrences of 2, 3, 4 in an array:
var a = [ 1, 2, 3, 4, 2, 3, 4, 2, 3, 4, 2, 3, 4, 5 ]; var pat = $.compile($.MORE(2, 3, 4)); $.search(a, pat, function(m){ console.log(m.$start, m.$end, m.$match().content()); }); // ==> 1 13 [ 2, 3, 4, 2, 3, 4, 2, 3, 4, 2, 3, 4 ]
That's right, there's a single contiguous match—the sequence 2, 3, 4 is repeated 4 times, starting at index 1 and ending at index 13.
MORE
is in fact the equivalent of +
in ordinary regexps. It matches its
argument at least once. There is also a MANY
combinator which is like *
in regexps—it matches the argument zero or more times:
var a = [ 1, 2, 3, 2, 4, 4, 4, 1, 2, 4, 0, 2, 0, 1 ]; var pat = $.compile(2, $.MANY(4)); $.search(a, pat, function(m){ console.log(m.$start, m.$end, m.$match().content()); });
The above matches a 2 followed by zero or more 4-s. It outputs:
1 2 [ 2 ] 3 7 [ 2, 4, 4, 4 ] 8 10 [ 2, 4 ] 11 12 [ 2 ]
2.2 Wildcard (ANYTHING
, WHATEVER
)
Ordinary regexps provide an easy way to match “anything”—via a single dot
character. Or to match a sequence of consecutive “anything”-s (which we
call “whatever”), you would use .*
. PatternJS provides similar features,
here are quick examples:
// match any sequence of type 2, X, 4 var a = [ 1, 2, 3, 4, 2, 4, 2, 1, 4, 5 ]; var pat = $.compile(2, $.ANYTHING(), 4); $.search(a, pat, function(m){ console.log(m.$start, m.$end, m.$match().content()); });
outputs:
1 4 [ 2, 3, 4 ] 6 9 [ 2, 1, 4 ]
2.3 Greedy and non-greedy repetitions (NG
suffix)
A similar example with WHATEVER
:
var a = [ 1, 2, 3, 4, 2, 4, 2, 1, "a", "b", 4, 5 ]; var pat = $.compile(2, $.WHATEVER(), 4); $.search(a, pat, function(m){ console.log(m.$start, m.$end, m.$match().content()); });
The output is interesting:
1 11 [ 2, 3, 4, 2, 4, 2, 1, 'a', 'b', 4 ]
Similar to ordinary regexps, the MANY
and MORE
constructs are “greedy”.
They match as many characters as possible. For this reason, because the
expression that we're looking for is “2 followed by whatever sequence
followed by 4” it matches from the first 2 in the array to the last 4.
There are cases, like the above, when we want the repetitive constructs to
be “non-greedy”. We provide MANYNG
, MORENG
and WHATEVERNG
combinators
for this case. By the way, WHATEVER()
is equivalent to
MANY(ANYTHING())
, and WHATEVERNG()
is equivalent to
=MANYNG(ANYTHING())=3.
The non-greedy pattern in the above example would be:
var pat = $.compile(2, $.WHATEVERNG(), 4);
and the output:
1 4 [ 2, 3, 4 ] 4 6 [ 2, 4 ] 6 11 [ 2, 1, 'a', 'b', 4 ]
2.4 To be or not to be (MAYBE
)
In ordinary regexps this is provided by the question-mark operator; in
PatternJS it's called MAYBE
. Here's an example that matches sequences of
“a”, “b”, optionally separated by a dash:
var a = [ 1, 2, "a", "b", 3, "a", "x", "b", "a", "-", "b", 3, "a", "b" ]; var pat = $.compile("a", $.MAYBE("-"), "b"); $.search(a, pat, function(m){ console.log(m.$start, m.$end, m.$match().content()); }); // ==> // 2 4 [ 'a', 'b' ] // 8 11 [ 'a', '-', 'b' ] // 12 14 [ 'a', 'b' ]
2.5 Alternatives (OR
)
You can use OR
to provide alternatives at a certain point. Example: match
consecutive sequences of 1, 2, or 3:
var a = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 3, 2, 1, 4, 5, 6, 2 ]; var pat = $.compile($.MORE($.OR(1, 2, 3))); $.search(a, pat, function(m){ console.log(m.$start, m.$end, m.$match().content()); }); // ==> // 0 3 [ 1, 2, 3 ] // 9 12 [ 3, 2, 1 ] // 15 16 [ 2 ]
Note that OR
takes multiple “atoms” and returns a combinator that matches
any of them. Passing that to MORE
, I got a combinator that matches a
sequence of 1, 2 or 3. In a regexp you would do “(1|2|3)+”. Because OR
returns a single expression, there's an implicit grouping above.
How would you devise an expression matching “a”, “b” OR “c”, “d” (that is, either an “a” followed by a “b”, or a “c” followed by a “d”). You would need one of the combinators in the next section.
2.6 Grouping expressions (NAMED
, GROUP
)
In ordinary regexps you can group sub-expressions with parens. That serves
two purposes: firstly it can limit action of other operations to only a part
of the expression, as in a(foo|bar)b
— without the parens, the pipe would
pick between afoo
and barb
; and secondly, you can reference those groups
after a match using a convenient shortcut. In Perl for example, you can
access each group with $1
, $2
etc. (a $
followed by the group index).
GROUP
takes any number of expressions and matches when those expressions
are found in sequence. It's the solution to the last question in the
previous section. To match either “a” followed by “b”, or “c” followed by
“d”:
var a = [ 1, 2, "a", 3, "c", "d", 4, "a", "b", 5, "c", "e" ]; var pat = $.compile($.OR($.GROUP("a", "b"), $.GROUP("c", "d"))); $.search(a, pat, function(m){ console.log(m.$start, m.$end, m.$match().content()); }); // ==> // 4 6 [ 'c', 'd' ] // 7 9 [ 'a', 'b' ]
NAMED
is like GROUP
, but the first argument must be a name by which you
want to access the match later. For example:
var a = [ "foo", "=", 1, "bar", "=", 2, "baz", "=", 3 ]; var pat = $.compile( $.NAMED("key", $.ANYTHING()), "=", $.NAMED("val") // missing expression implies $.ANYTHING() ); $.search(a, pat, function(m){ console.log(m.key.content(), m.val.content()); });
outputs:
[ 'foo' ] [ 1 ] [ 'bar' ] [ 2 ] [ 'baz' ] [ 3 ]
The actual pattern to search for is ANYTHING
= ANYTHING
. (the second
one is $.NAMED("val")
, but lacking any expression, ANYTHING()
is
implied).
The first ANYTHING
is being assigned the name “key”, and the second one
“val”. As you can see, on a successful match they become properties of the
data object “m”. Those properties are Match
objects and they provide some
useful methods, one of which is content()
, which simply returns all the
matched content. As you can see above, content()
returns an array—because
expressions can generally match multiple elements.
Here's another example to make this more obvious:
var a = [ "foo", "=", 1, "bar", "=", 2, "baz", "=", 3 ]; var pat = $.compile( $.NAMED("def", $.ANYTHING(), "=", $.ANYTHING()) ); $.search(a, pat, function(m){ console.log(m.def.content()); }); // ==> // [ 'foo', '=', 1 ] // [ 'bar', '=', 2 ] // [ 'baz', '=', 3 ]
As you can see, NAMED
can take more than two arguments—anything
following the name is part of the searched expression. content()
returns
the three of them this time.
When you are only interested in the first element of the content()
array,
you can use first()
as a shortcut for content()[0]
. There is more to be
said about Match
objects, as you'll see below.
2.7 MAYBE
ambiguity?
NAMED
introduces a funny question when used in conjunction with the
MAYBE
combinator. What does the following output:
var a = [ "a", "b", "b", "b", "c" ]; var pat = $.compile("a", $.MAYBE("b"), "b", $.NAMED("f", $.MORE("b"), "c")); $.search(a, pat, function(m){ console.log(m.f.content()); });
Well, it outputs [ 'b', 'c' ]
, because even the MAYBE
operator is
greedy! Being so, it takes as many characters as possible. The first part
of the expression could have matched only [ 'a', 'b' ]
, instead of [ 'a', 'b', 'b' ]
, but the greedy-ish nature of MAYBE
made it take all it could.
For this reason, even though it seems seldom useful, there is a non-greedy
version of MAYBE
, which, of course, it's called MAYBENG
. With the
following pattern the result is different:
pat = $.compile("a", $.MAYBENG("b"), "b", $.NAMED("f", $.MORE("b"), "c")); // ==> [ 'b', 'b', 'c' ]
2.8 Back references (REF
)
Once you gave a name to a sub-expression, you can refer to it in the search
query. This part is commonly \N
in regular expressions (where N
is the
index of the parenthesized group).
In PatternJS it's REF("name")
. For a quick example, let's try to find all
sequences of elements that repeat two or more times:
var a = [ 1, 2, 3, 3, 3, 2, 2, 1, 2, 1, 1, 1, 1, 1, 2, 3, 3 ]; var pat = $.compile( $.NAMED("a", $.ANYTHING()), $.MORE( $.REF("a") ) ); $.search(a, pat, function(m){ console.log(m.$start, m.$end, m.$match().content()); console.log(" A =", m.a.content()); });
The output is:
2 5 [ 3, 3, 3 ] A = [ 3 ] 5 7 [ 2, 2 ] A = [ 2 ] 9 14 [ 1, 1, 1, 1, 1 ] A = [ 1 ] 15 17 [ 3, 3 ] A = [ 3 ]
So the expression is:
- accept anything, and name it “a”
- accept one or more occurrences of what “a” matched.
Note that because NAMED
takes any arbitrary expression, REF
in turn is
able to refer back to an arbitrarily complex match. It needs not be a
simple literal:
var a = [ 1, 2, 3, // noise "a", "+", 1, 4, 5, 6, // noise "a", "+", 1, "foo", "bar" ]; var pat = $.compile( $.NAMED("a", $.ANYTHING(), "+", $.ANYTHING()), $.WHATEVER(), $.REF("a") ); $.search(a, pat, function(m){ console.log(m.$start, m.$end, m.$match().content()); console.log(" A =", m.a.content()); });
==>
3 12 [ 'a', '+', 1, 4, 5, 6, 'a', '+', 1 ] A = [ 'a', '+', 1 ]
2.9 Replace nodes
One common feature of regular expression engines is the ability to replace either entirely, or partially, the matched expression with something else. PatternJS provides some features to help with that.
Here's the most basic sample:
var a = [ 1, 2, 3, 4, 5 ]; var pat = $.compile( 2, 3, 4 ); $.search(a, pat, function(m){ m.$match().replace([ "cut" ]); }); console.log(a); // ==> // [ 1, 'cut', 5 ]
More generally, a Match
node has the following methods:
content()
— which you already saw: it returns an array with the elements matched by this sub-expression.first()
— equivalent tocontent()[0]
replace(content)
— replace this match, in its parent node, by the givencontent
.content
must be an array, or anotherMatch
object.swap(obj)
— exchange this match with the givenMatch
object. The content ofobj
will bethis.content()
, andthis.content()
will be the content ofobj
.
In another example we're switching two named nodes:
var a = [ "foo", "=", 1, "bar", "=", 2, "baz", "=", 3 ]; var pat = $.compile( $.NAMED("key"), "=", $.NAMED("val") ); $.search(a, pat, function(m){ m.key.swap(m.val); }); console.log(a); // ==> // [ 1, '=', 'foo', 2, '=', 'bar', 3, '=', 'baz' ]
2.10 Substructure matching
So far we've seen that PatternJS can do on arrays what classical regular
expressions can do on strings. You might have noticed that we left out a
certain feature of regexps—“character classes”. That's the [a-z]
operator. It's because it doesn't make much sense here: while regexps
operate on chars, PatternJS operates on elements of arbitrary types.
In examples above the elements of the expression or of the array to search were strings or numbers. There is one type which is treated specially: arrays. Put simply, when an element of the search expression is an array, it gets compiled in a subexpression that must match an array at current position. I'm not sure this explanation is clear, but an example should help:
var a = [ 1, 2, 3, // noise [ "a", [ "b", "c" ] ], // **1 [ "a", [ "b", "e" ] ], [ "a", [ "b", "d", // **2 [ "a", [ "b", "c" ] ] // **3 ] ] ]; var pat = $.compile( $.NAMED( "exp", [ "a", [ "b", $.OR("c", "d") ] ] ) ); $.search(a, pat, function(m){ console.log(m.exp.first()); });
Note that this time the expression isn't flat anymore. It's an array that starts with “a”, followed by an array that starts with “b” and continues with either “c” or “d”. The algorithm matches it faithfully. The output is:
[ 'a', [ 'b', 'c' ] ] [ 'a', [ 'b', 'd', [ 'a', [Object] ] ] ] [ 'a', [ 'b', 'c' ] ]
The matched parts are marked with ** above. Note that it matched ["a", ["b", "d"...]]
even though there is stuff following the “d” in the
haystack—this is by design: the expressions are not anchored at the right
side.
To force that the array finishes at the right side, you can use END()
:
var pat = $.compile( $.NAMED( "exp", [ "a", [ "b", $.OR("c", "d"), $.END() ] ] ) ); // and the result with this is ==> [ 'a', [ 'b', 'c' ] ] [ 'a', [ 'b', 'c' ] ]
3 UglifyJS AST examples
Actually this was the reason why I started this library. UglifyJS4 generates a complex AST to match the JavaScript program structure. Here is an example:
// Program: function fact(n) { if (n == 1) { return 1; } else { return n * fact(n - 1); } } // AST: [ 'toplevel', [ [ 'defun', 'fact', [ 'n' ], [ [ 'if', [ 'binary', '==', [ 'name', 'n' ], [ 'num', 1 ] ], [ 'block', [ [ 'return', [ 'num', 1 ] ] ] ], [ 'block', [ [ 'return', [ 'binary', '*', [ 'name', 'n' ], [ 'call', [ 'name', 'fact' ], [ [ 'binary', '-', [ 'name', 'n' ], [ 'num', 1 ] ] ]]]]]]]]]]]
We can observe a few things, for example:
- a function definition looks like:
[ 'defun', NAME, ARGS, BODY ]
, whereNAME
is the function name,ARGS
is an array of argument names, andBODY
is an array of statements that the function consists of; statements in this array are full AST-s themselves; - an
IF
statement looks like:[ 'if', CONDITION, THEN, ELSE ]
; all the arguments are AST-s themselves; - a block of statements is
[ 'block', [ STATEMENT, STATEMENT, ... ]]
; - a reference to a variable is
[ 'name', VARNAME ]
; etc.
I thought having a powerful pattern engine would help simplify some things
in UglifyJS, but it's not powerful enough yet. UglifyJS provides extensive
features for traversing and transforming the AST (its ast_walker
API),
that can also provide some intimate details like full parent list of the
current node, variables in scope, etc.
In any case, PatternJS can be used for various searches/transforms of an UglifyJS AST, and I'll provide some examples below.
3.1 Discard redundant block parens
We could easily replace blocks that contain a single statement with the statement, therefore discarding the brackets:
var $ = require("pattern"); var U = require("uglify-js"); var sys = require("util"); // sample program (passed through the UglifyJS parser to get the AST) var ast = U.parser.parse(function a(foo){ if (foo) { bar(); } else { baz(); } if (moo) { foo(); bar(); } }.toString()); console.log(sys.inspect(ast, null, null)); var pat = $.compile( $.NAMED("block", [ "block", [ $.NAMED("stat", $.ANYTHING()), $.END() ]]) ); $.search(ast, pat, function(m){ m.block.replace(m.stat); }); console.log(U.uglify.gen_code(ast, { beautify: true }));
The AST which is printed first is this:
[ 'toplevel', [ [ 'defun', 'a', [ 'foo' ], [ [ 'if', [ 'name', 'foo' ], [ 'block', // *** [ [ 'stat', [ 'call', [ 'name', 'bar' ], [] ] ] ] ], [ 'block', // *** [ [ 'stat', [ 'call', [ 'name', 'baz' ], [] ] ] ] ] ], [ 'if', [ 'name', 'moo' ], [ 'block', // this doesn't match as it has two statements [ [ 'stat', [ 'call', [ 'name', 'foo' ], [] ] ], [ 'stat', [ 'call', [ 'name', 'bar' ], [] ] ] ] ], undefined ] ] ] ] ]
I marked with ***
the positions where the pattern will match. The
spurious block brackets are dropped and the output is:
function a(foo) { if (foo) bar(); else baz(); if (moo) { foo(); bar(); } }
This is one optimization that UglifyJS does with a lot more code. But we
should note that the pattern version is not safe—it should keep parens
around IF
statements without ELSE
, that are themselves in an IF
with
an ELSE
. It's quite tricky to do with the pattern engine alone.
We could extend it to store parent information and report it in the data object.
[ // 1 "block", [ // 2 [ "stat", ... ] // 3 ] ]
In the above example, a generic pattern engine might note that the parent of the array 3 is the array 2. But that's not the kind of information we're looking for—when dealing with UglifyJS trees we care to know that the parent of the statement is the block (thus, node 1).
3.2 Sample IF
optimizations
In the following sample we apply some small optimizations to IF
statements:
- when there is a single statement in both of the branches, convert to conditional;
- when the condition is
<=
or>=
, reverseTHEN
withELSE
and change the operator to>
or<
;
var $ = require("pattern"); var U = require("uglify-js"); var sys = require("util"); // sample program (passed through the UglifyJS parser to get the AST) var ast = U.parser.parse(function a(foo){ if (foo) { bar(); } else { baz(); } if (moo) { foo(); bar(); } if (a <= b) { f(); } else { g(); } }.toString()); console.log(sys.inspect(ast, null, null)); // helper function to be used with $.CHECK function NOT_NULL(val){ return val != null }; // another helper: generate an expression that matches either one // statement or a block containing exactly one statement. function ONE_STATEMENT(name) { return $.OR( [ "stat", $.NAMED(name) ], [ "block", [ [ "stat", $.NAMED(name) ], $.END() ]] ); }; // pattern definition var pat = $.compile( $.OR( // this finds stuff like if (a<=b) ... else ... [ "if", [ "binary", $.NAMED("operator", $.OR("<=", ">=")) ], $.NAMED("th", $.CHECK(NOT_NULL)), $.NAMED("el", $.CHECK(NOT_NULL)) ], // this finds IFs having exactly one statement on the branches $.NAMED("to_conditional", [ "if", $.NAMED("co"), ONE_STATEMENT("th"), ONE_STATEMENT("el") ]) ) ); function onmatch(m) { if (m.operator) { m.operator.replace([ m.operator.first() == "<=" ? ">" : "<" ]); m.th.swap(m.el); return m.$start; // *** see below for an explanation of this } if (m.to_conditional) { m.to_conditional.replace([ [ "stat", [ "conditional", m.co.first(), m.th.first(), m.el.first() ]] ]); } } $.search(ast, pat, onmatch); console.log(U.uglify.gen_code(ast, { beautify: true }));
The output is:
function a(foo) { foo ? bar() : baz(); if (moo) { foo(); bar(); } a > b ? g() : f(); }
With a relatively simple pattern and onmatch
function we managed to do
some non-trivial transformation to a piece of source code5. Note that
after handling the first expression in onmatch
we return $m.start
. If
you return anything from the function, it should be a number and it tells
PatternJS where to continue the search. By returning m.$start
we tell it
to re-run the expression at the same position where it found the match.
Otherwise it would continue from after the expression, leaving the last
if
like this6:
if (a > b) { g(); } else { f(); }
4 API reference
This section won't be too useful if you didn't go through the examples.
This package exports a few functions and combinators. They are all available both in lower-case and in upper-case (note this doesn't mean they're case insensitive though). I prefer to use upper-case for combinators inside expressions, and lower-case for the compile/search functions.
compile(expr)
— to compile an expression into bytecodesearch(array, expr, onmatch)
— to search a compiled expression on an array
Expression combinators:
OR(case1, case2, ...)
— returns an expression that matches any of a few alternate cases;MAYBE(expr, [expr, ...])
— returns an expression that matchesexpr
if found, but does not fail if not found;MANY(expr, [expr, ...])
— returns an expression that matches any number of occurrences ofexpr
(or zero occurrences);MORE(expr, [expr, ...])
— match at least one occurrence ofexpr
;ANYTHING()
— match any expression;WHATEVER()
— equivalent toMANY(ANYTHING())
;GROUP(expr, [expr, ...])
— returns a single expression that matches a sequence of expressions;NAMED(name, expr, [expr, ...])
— likeGROUP
but gives the new expression a name. If you omitexpr
it defaults toANYTHING()
;REF(name)
— returns an expression that matches the same content as matched previously by aNAMED
group with namename
;CHECK(predicate)
— matches the current expression ifpredicate(expression)
returns non-false;END()
— matches only at the end of the array;MANYNG
,MORENG
,MAYBENG
,WHATEVERNG
— the non-greedy versions for combinators involving backtracking.
Above when I wrote expr, [expr, ...]
I meant to say that those functions
take multiple arguments. The following lines don't match the same
expressions:
GROUP("a", "b", "c"); GROUP([ "a", "b", "c" ]);
I tried to stress this in some examples. The first one matches the sequence anywhere, while the second one asserts that the sequence is at the start of an array.
4.1 The onmatch
function
The function you pass to search()
recevies one parameter, let's call it
m
, that can be used to figure out various things about the match:
m.$node
— the array where the current match is found;m.$start
— the index in$node
where the current match is found;m.$end
— the index where the match ends;m.$match()
— returns the current match as aMatch
object (see below);- additionally,
NAMED
expressions insert properties into this object.
This function may modify $node. Some helper API is provided for this by
Match
objects. If it returns anything, it must be a valid index in
$node
, and searching will continue at that position. Without a return
value, the algorithm continues searching after the current match.
4.2 The Match
objects
They have the following methods:
replace(content)
— replaces the current node with the givencontent
(which may be an array or aMatch
object);swap(node)
— swap twoMatch
objects — meaning that the content of one replaces the content of the other in the original tree;content()
— returns the content that this node matches, as an array;first()
— returns the first node in the content; same ascontent()[0]
.
5 License
Copyright 2011 (c) Mihai Bazon<EMAIL_ADDRESS>Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
- Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

Footnotes:
1 http://swtch.com/~rsc/regexp/regexp2.html
2 Russ's article provides many optimization hints; for now, my implementation is the just simplest recursive version.
3 I've nothing to do with the fact that “anything” ends in “ng” though. ;-)
4 https://github.com/mishoo/UglifyJS — a JavaScript parser/compressor toolkit
5 well, also thanks to the parser and code generator provided by UglifyJS.
6 for obvious reasons, since the second part of the regexp never had a chance to run.


Here's all you need to know about the Rs 25,000-crore realty fund
Real estate projects facing litigation in higher courts will not be covered under the bailout plan.
The government, after announcing the creation of a Rs 25,000-crore stresssed fund for stalled housing projects, has made it clear that real estate projects facing litigation in higher courts will not be covered under the bailout plan. It also advised homebuyers to approach lenders for additional borrowing or revival of their loans.
The Finance Ministry on November 7 issued a FAQs statement in which it said the maximum funding will be Rs 400 crore for any single project that will be seeking assistance from the 'special window' or the alternative investment fund (AIF) for completion of the 1,508 projects, comprising about 4.58 lakh units.
- What is role of the government and the investment managers in this Special Window?
Answer: The government shall act as the sponsor to the proposed fund and shall have the authority and responsibility as specified under SEBI (AIF) Regulations, 2012. Whereas, the investment manager is responsible for fund raising, investments and managing the fund team.
- What is size of the fund?
Answer:The total commitment of funds to be infused by the Government in the affordable and middle-income group housing sector through the Special Window would be up to INR 10,000 cr. The fund is seeking matching contributions from Banks, LIC and others to generate a total corpus of around INR 25,000 cr.
- Who will manage the fund?
Answer: For the first AIF under the Special Window, SBICAP Ventures Limited shall be engaged to be the Investment Manager.
- Who will be the investors of the fund?
Answer: AIFs created/funded under the Special Window would solicit investment into the fund from the Government and other private investors including cash-rich financial institutions, sovereign wealth funds, public and private banks, domestic pension and provident funds, global pension funds and other institutional investors.
- Will Projects under NPA and NCLT be considered for the last mile funding?
Answer: Yes. Based on the inputs received from the stakeholders the Government has decided to increase the scope of investments to include NPA as well as NCLT projects. All applications for financing would be reviewed by the investment committee of the fund for approval, after due-diligence and discussions with existing lenders and legal advisors.
- Which projects undergoing NCLT proceedings are eligible to be considered for funding under the Special Window?
Answer: Any or all projects undergoing corporate insolvency resolution process before the NCLT can be considered for funding through the Special Window upto the stage where the resolution plan for such insolvency resolution process has not been approved / rejected by the committee of creditors.
- Will this fund invest in cases which are pending before the High Courts and the Supreme Court?
Answer: No. The focus of this Special Window will be on the projects that are stalled for lack of construction funding. It shall also look at projects that are NPAs or undergoing NCLT proceedings, that can commence construction immediately after funds are made available.
- What will be the criteria for the selection of the projects for funding?
Answer:Funding shall be provided to the projects that meet the following criteria:
- Stalled for lack of adequate funds
- Affordable and Middle Income Category
- Net worth positive projects (including NPAs and projects undergoing NCLT proceedings)
- RERA registered
- Priority for projects very close to completion.
- What is affordable and mid-income housing project?
Answer:For the purposes of the first fund under the Special Window, Affordable or Mid-Income Housing shall be defined to include any housing projects wherein housing units (to be specified in detail in the fund documents) do not exceed 200 sq. m. RERA carpet area and are priced as below:
- Upto or less than Rs 2cr in Mumbai Metropolitan Region
- Upto or less than Rs 1.5cr in National Capital Region, Chennai, Kolkata, Pune, Hyderabad, Bangalore and Ahmedabad
- Upto or less than Rs 1cr in the rest of India10. What is a net-worth positive project?
Answer: Net-worth positive projects for the purpose of funding through the Special Window shall mean those projects where the value of receivables plus the value of unsold inventory is greater that the completion cost and outstanding liabilities at the project-level.
- Projects under which price points will be benefited under this scheme?
Answer: Please refer to Answer No. 9
- What all would be covered under the price caps that are specified for various cities?
Answer: This price does not include any additional charges for social amenities, parking, housing society, brokerage, deposits, registration and stamp duty charges.
- What is definition for carpet area?
Answer: Carpet Area shall have the meaning as assigned to it in clause (k) of section 2 of RERA i.e. Carpet Area means the net usable floor area of an apartment, excluding the area covered by the external walls, areas under services shafts, exclusive balcony or verandah area and exclusive open terrace area, but includes the area covered by the internal partition walls of the apartment.
- Will this fund may also look at villa projects?
Answer: The fund will invest in any project that meets its investment objective of completing housing units with size less than 200 sq. mts. and the city-wise pricing norms subject to a cap of INR 2 cr.
- Which cities will be most taken care of under the funding of stalled housing projects across India? Is there going to a region wise allocation of the fund?
Answer:The Portfolio Investments by the Fund shall be spread across India with no geographical restrictions. There will be caps at project level, developer-level and city level as per standard risk management practice.
- What portion of the stalled real estate housing projects fall under the affordable and mid-income segment?
Answer: As per industry estimates, 90% of the stalled projects are under the affordable and mid-income segment.
- Will the retail loans of the selected stalled projects be restructured?
Answer: This will be done as per RBI guidelines and Bank Board approved policies.
- How will the home-buyers be benefited from the funding?
Answer: Revival of stalled projects will lead to early completion and timely possession of homes for home-buyers who have invested their hard-earned money.
- What is the process to monitor if the allocated fund is utilised by the developer on the respective project?
Answer:The Special Window shall provide capital for completion of construction of stalled projects. The Investment Manager along with developer / appointed project management companies shall ensure that the end use of funds is only for the purpose of completing the project. Standard financial controls maintained by RERA will be adopted.
- Will the existing Lenders be given the authority to supervise the disbursement and execution?
Answer: The fund will supervise the disbursement of capital and shall monitor the execution of projects by the developer directly or through third party services. Existing lenders would be consulted as part of the sanction process.
- Post the selection of the projects, what would be the process for funding?
Answer: The investment Manager shall make a detailed investment review including inputs provided by external due diligence agencies. This monitoring mechanism will be part of the contractual arrangement with the developers as part of funding and approval of the fund investment. After the documentation is completed, disbursements would happen.
- How many projects are expected to be benefited under the scheme?
Answer:As per industry estimates, in the stalled category, there are about 1509 housing projects comprising of approximately 4.58 lakh housing units. Projects meeting the investment eligibility criteria will be financed. The maximum finance for any single project will be Rs 400 crore. There will be caps put in place for a single developer and for any single city as well as part of the final detailed scheme.
- The funding is only for mid and affordable segment. What about the incomplete projects of luxury segments?
Answer: The focus of the Special Window is on mid and affordable segment. However, alleviating the stress for the developers in this segment may have indirect collateral benefits for the entire real estate sector including luxury segment.
- What is the expected timeline for execution of projects once funding is received?
Answer: The objective of the Special Window is to complete the construction of the stalled projects at the earliest. Accordingly, funding would be structured to meet the construction and sales schedule of the relevant projects.
- Who will construct the project if the developer is incapable?
Answer: As part of the investment review, the Investment Manager will take a call if there is any need to change the developer for the project.
- Who will be the responsible authority to ensure that the money is being used without any discrepancy?
Answer:The Investment Manager, with help of appointed project management companies and appropriate financial controls, shall be responsible to ensure that the end use of monies of the fund is for construction and completion of the projects.
- What would be the modes of investment via the fund?
Answer:The fund expects to primarily structure its investments in the form of non-convertible debentures subject to legal, regulatory or other considerations,
- What additional steps are being taken by the Government to improve the liquidity in the market?
Answer:Taking into account the stress in the housing and construction industry, many measures have been undertaken by the Government in the past to boost the housing sector, such as:
- Providing IT deduction on Affordable Housing
- Introduction of Repo rate/external benchmark linked loan products
- Implementation of the Pradhan Mantri Awas Yojana (PMAY)
- Liquidity support to HFCs.
- Partial Government guarantee for assets purchased by a bank from a stressed NBFC or HFC
- Lowering of interest on House Building Advance (HBA)
- Will there be any involvement of the home-buyers during the development of the project?
Answer: Home-buyers will be required to work with their financing institution (NBFC/HFC/Banks) to honour their obligations to provide balance instalments of home loans, enabling early completion of the project.
- Will there be any specific guidance issued for the home-buyers?
Answer: Home-buyers are advised to reach out to their respective lending institutions to seek necessary guidance for additional borrowing or revival of their existing home loans within the existing legal and regulatory framework and standard board approved policies of the lending institutions.
- What about the projects that won’t qualify under the selection criteria?
Answer: Those project will continue to have recourse to existing alternatives for funding, restructuring and resolution.
- What are the return expectations of the fund?
Answer: The Investment Manager shall determine the returns based on the risk profile and specifics of each project.
- What if the developer or the previous funding agency/Banks and NBFCs want to serve their own interest over the interest of the home-buyer? Will the fund have any authority to fix this issue?
Answer: The capital provided by the fund would be used only for completion of the stalled projects. This should benefit all the stakeholders in the project.
- Who will be responsible for the sales of the unsold inventory/cancelled bookings of the stalled projects?
Answer: Primary responsibility will be of the developer. However, the Investment Manager may also take a call on the necessary actions to be taken on a project to project basis.
- What kind of due diligence will be conducted for investments?
Answer: The Investment Manager shall first complete an internal financial analysis to see if the project meets the fund’s investment criteria. This shall be further supplemented by external due diligence agencies to cover areas such as title, financial, real estate and legal, among others, including consultation with existing lenders.
- How will the Government ensure that the selected developer is not alleged for fraud or misappropriation of funds and that the funds are not being cornered by a small group of developers/promoters?
Answer: Project and developer selection shall be the prerogative of the Investment Manager and the Investment Committee of the fund. The investors including the Government will not be interfering with the financial objectivity of that process. The decision of the Investment Committee shall be guided by the investment objective of the fund as agreed in the contribution agreement entered into with the investors. Projects involving fraud or diversion may not be considered by the Fund.Get access to India's fastest growing financial subscriptions service Moneycontrol Pro for as little as Rs 599 for first year. Use the code "GETPRO". Moneycontrol Pro offers you all the information you need for wealth creation including actionable investment ideas, independent research and insights & analysis For more information, check out the Moneycontrol website or mobile app.


online lithuanian to english translators
English to Lithuanian translators and interpreters - ProZ.com
Web's largest directory of English to Lithuanian translators and .
http://www.proz.com/english-to-lithuanian-translators
English - Lithuanian Online Dictionary - ECTACO UK
English <-> Lithuanian Online Dictionary - a Bilingual Dictionary from ECTACO. You are a very welcome visitor here, at English - Lithuanian Online Dictionary!
http://www.ectaco.co.uk/English-Lithuanian-Dictionary/
Free online Lithuanian English dictionary. LingvoSoft free online ...
Free Online Lithuanian English dictionary. LingvoSoft Online Lithuanian English put the most advanced language management and communication solutions at .
http://www.lingvozone.com/main.jsp?do=dictionary&action=change_direction&language_id_to=23&language_id_from=52
Things You'll Need
- Certified copies of public records evidence in your case
Instructions
-
-
1
Lithuanian to English translation - ImTranslator
Free Online Lithuanian to English Online Translation Service. The Lithuanian to English translator can translate text, words and phrases into over 50 languages.
http://imtranslator.net/translation/lithuanian/to-english/translation/English <-> Lithuanian Online Dictionary - LingvoSoft
English <-> Lithuanian Online Dictionary - a Bilingual Dictionary from LingvoSoft. We are happy to greet you as our visitor here, at English - Lithuanian Online .
http://www.lingvosoft.com/English-Lithuanian-Dictionary/ -
2
FREELANG - free online Lithuanian-English and English-Lithuanian ...
Sep 18, 2011 . FREELANG Lithuanian-English and English-Lithuanian online dictionary. Display a virtual keyboard. Authors/copyrights: Serhiy Ponomaryov.
http://www.freelang.net/online/lithuanian.phpLithuanian English translation online, dictionaries and resources ...
Lithuanian <> English online translation. Lithuanian <> English dictionary, monolingual Lithuanian dictionary and other resources for the Lithuanian language.
http://www.lexicool.com/lithuanian-dictionary-translation.asp -
-
3
Lithuanian Dictionary Online Translation LEXILOGOS >>
Lithuanian English dictionary, online translation, grammar, texts and literature.
http://www.lexilogos.com/english/lithuanian_dictionary.htmLithuanian to English translators and interpreters - ProZ.com
Web's largest directory of Lithuanian to English translators and .
http://www.proz.com/lithuanian-to-english-translators -
4
English <-> Lithuanian Online Dictionary - ECTACO - Electronic ...
ECTACO Inc. offers electronic pocket multilingual talking dictionaries (hand-held electronic translators, language translators). We have a wide choice of .
http://www.ectaco.com/English-Lithuanian-Dictionary/Lithuanian - Google Translate
Google's free online language translation service instantly translates text and web pages. This translator supports: English, Afrikaans, Albanian, Arabic, .
http://translate.google.com/?tl=lt
-
1
References
Resources
- Photo Credit Justice image by MVit from john deere snow blower 37a


Welcome to Access Understanding Access Getting Started With Access Access Fundamentals Tree Pattern Matching Change Propagation Source Mode Queries Access Commands Attribute Expression Grammar AST_node Attributes Access Quick Reference
Welcome to Access
Access, the TCL-based programming language behind many DIScover operations, is key to advanced deployment of your DIScover system.
This book discusses the following topics:
• About This Online Help
• Related Documentation
• Typographical Conventions
• Roles
• Assumptions
• Getting Help
• Professional Services
• Documentation Feedback
• Where To Go From Here


- showDebug() : to open the debug window.
- hideDebug() to remove it.
- debug(message, reverse): to display a message in the debug window. reverse is optional if you want to append text at the beginning of the window instead of the end.
- clearDebug(): to clear debug window content.
And this in your code
This window uses setCookie() to save its size and position. You will see after using it you cannot live without :).
Click here to open the debug window that displays mouse coordinates.
Add on
Nick Hemsley has done a nice add-on to the debug window that allows you to inspect any object.Click here to inspect the H2 "Add on" title.
Add on - extended
Jason Pollard has included the Nick's add-on inside the window debug by adding a "inspect" icon in the top bar.Click on the icon and then click on an element in the page you want to inspect.
He has also included an eval text field with history (use up and down keys).
To use it just include extended_debug.js after debug.js.
Click here to open the extended debug window.


Football: Moreno admits Spain departure 'bitter-sweet'
MADRID: Robert Moreno admitted his departure as Spain coach leaves him with a "bitter-sweet feeling" but avoided criticising either Luis Enrique or the Spanish Football Federation (RFEF) in a statement released on Wednesday (Nov 20).
RFEF president Luis Rubiales announced on Tuesday Luis Enrique would replace Moreno for Euro 2020 and resume the role he left in June to take care of his daughter, who died in August of bone cancer.
But Moreno appeared upset with the way the change was handled as he refused to speak to the media after Spain's victory over Malta on Monday and reportedly left the dressing room in tears.
"If I went into my last few hours or even my last few days, I would only enter into a spiral of reproaches and recriminations. I'm not going to do it. I don't see any point," said Moreno.
"I have a clear conscience. It's impossible to thank everyone, but I want to say that I sincerely respect everyone and their opinions. I've always been a man of my word, that I wouldn't stand in Luis Enrique's way if he decided to return to coach.
"This is what I've done even though I've taken my exit. I wish him all the best because his joys will also be ours."
Moreno had overseen Spain finishing top of their qualifying group after an unbeaten campaign that included winning eight games out of 10 and scoring 31 goals. Spain won four and drew two of his six matches officially in charge.
Rubiales rejected accusations of dishonesty on Tuesday and Moreno has said he remains grateful to his former employers.
"I want to thank all the members of the Spanish Football Federation for the treatment I received during my time with the national team. I've felt loved and respected," Moreno continued.
"My experience with the national team started and finished in the same way, with a bitter-sweet feeling. It's now about looking forward and facing new challenges as a coach in my passion, which is football."


The Coding Community For Your Fragmentalized Time
A handy product covering the essential knowledge
A handy product bridging the real-world
A handy product that is firendly to beginners
A handy product that comes in handy and use the fragmentalized time
Need Some Funding
and Engineers


--- # This file is licensed under the MIT License (MIT) available on # http://opensource.org/licenses/MIT. layout: sidebar id: exchanges ---
Visit Buy Bitcoin Worldwide for user reviews on some of the above exchanges, or Cryptoradar for comparisons based on prices, fees and features.
Visit Coin ATM Radar to find local Bitcoin ATMs.


pydent.planner.PlannerLayout¶
-
class
pydent.planner.
PlannerLayout
(nxgraph=None)[source]¶ Bases:
pydent.planner.graph.PlannerGraph
Layout module for
Planner
.Positions
Operations
for the Aquarium GUIInitializes a Plan graph.
- Parameters
nxgraph (
Optional
[DiGraph
]) –
-
__init__
(nxgraph=None)¶ Initializes a Plan graph.
- Parameters
nxgraph (
Optional
[DiGraph
]) –
Methods
__init__
([nxgraph])Initializes a Plan graph.
Aligns the Operations to their predecessors by midpoints.
Aligns the Operations to their successors by midpoints.
align_x_midpoints_to
(other_layout)Align the midpoint x-coordinate of this layout with that of another.
align_x_of_ops
(ops1, ops2)Aligns a set of Operations with another set of Operations within this PlannerLayout.
align_y_midpoints_to
(other_layout)Align this midpoint y-coordinates of this layout with another layout.
arrange_layouts
(layouts)bounds
()Returns the bounding box of the layout as the upper-left and lower- right coordinates.
center
(x, y)collect_predecessors
(nodes)Return all predecessors from a list of nodes.
collect_successors
(nodes)Return all successors from a list of nodes.
draw
()from_plan
(plan)Creates a graph from a
pydent.models.Plan
instance.PlannerLayout.get_independent_layouts
iter_operations
()- rtype
Generator
[Tuple
[Union
[str
,int
],Operation
],None
,None
]
leaves
()Returns the leaves of this graph.
midpoint
()Returns the midpoint x,y coordinates of the layout.
move
(x, y)nodes_to_ops
(nodes)Returns operations from a list of node_ids.
PlannerLayout.ops_to_layout
ops_to_leaves
()ops_to_nodes
(ops)Returns node_ids for each operation.
ops_to_predecessors
(ops)Return all predecessor operations from a list of operations.
ops_to_roots
()ops_to_successors
(ops)Return all successor operations from a list of operations.
pos
()- rtype
Dict
[Union
[str
,int
],Tuple
[float
,float
]]
PlannerLayout.predecessor_layout
predecessors
(node)Return predecessor nodes.
prettify
()roots
()Returns the roots of this graph.
subgraph
(nodes)Returns a subgraph layout from a list of node_ids.
PlannerLayout.successor_layout
successors
(node)Return successors nodes.
to_grid
(columns[, axis, border_x, border_y])Arrange layouts in a grid format.
Does a topological sort of the operations in this layout.
topo_sort_in_place
()translate
(delta_x, delta_y)Translates the layout by the x,y coordinates.
Attributes
BOX_DELTA_X
BOX_DELTA_Y
BOX_HEIGHT
BOX_WIDTH
STATUS_COLORS
TOP_RIGHT
height
- rtype
float
nodes
operations
- rtype
Generator
[Operation
,None
,None
]
width
x
- rtype
float
xy
- rtype
Tuple
[float
,float
]
y
- rtype
float
-
_add_operation
(op)¶ Adds an Operation to the Layout.
- Parameters
op (pydent.models.Operation) – operation
- Returns
None
- Return type
None
-
align_ops_with_predecessors
(ops)[source]¶ Aligns the Operations to their predecessors by midpoints.
Used in topological sorting of plans.
- Parameters
ops (list) – list of
pydent.models.Operation
- Returns
None
- Return type
None
-
align_ops_with_successors
(ops)[source]¶ Aligns the Operations to their successors by midpoints.
Used in topological sorting of plans.
- Parameters
ops (list) – list of
pydent.models.Operation
- Returns
None
- Return type
None
-
align_x_midpoints_to
(other_layout)[source]¶ Align the midpoint x-coordinate of this layout with that of another.
- Parameters
other_layout (PlannerLayout) – the other canvas layout
- Returns
None
- Return type
None
-
align_x_of_ops
(ops1, ops2)[source]¶ Aligns a set of Operations with another set of Operations within this PlannerLayout.
- Parameters
ops1 (list) – list of
pydent.models.Operation
ops2 (list) – list of
pydent.models.Operation
- Returns
None
- Return type
None
-
align_y_midpoints_to
(other_layout)[source]¶ Align this midpoint y-coordinates of this layout with another layout.
- Parameters
other_layout (PlannerLayout) – the other canvas layout
- Returns
None
- Return type
None
-
bounds
()[source]¶ Returns the bounding box of the layout as the upper-left and lower- right coordinates.
- Returns
x,y coordinate
- Return type
tuple
-
collect_predecessors
(nodes)¶ Return all predecessors from a list of nodes.
- Parameters
nodes (list) – list of node ids
- Returns
list of node ids
- Return type
list
-
collect_successors
(nodes)¶ Return all successors from a list of nodes.
- Parameters
nodes (list) – list of node ids
- Returns
list of node ids
- Return type
list
-
classmethod
from_plan
(plan)¶ Creates a graph from a
pydent.models.Plan
instance.- Return type
PlannerGraph
-
get_independent_graphs
()[source]¶ Finds all independent subgraphs.
- Returns
list of PlannerLayout
- Return type
list
-
leaves
()¶ Returns the leaves of this graph.
-
midpoint
()[source]¶ Returns the midpoint x,y coordinates of the layout.
- Returns
x,y coordinate
- Return type
tuple
-
nodes_to_ops
(nodes)¶ Returns operations from a list of node_ids.
-
ops_to_nodes
(ops)¶ Returns node_ids for each operation.
-
ops_to_predecessors
(ops)¶ Return all predecessor operations from a list of operations.
- Parameters
ops (list) – list of
pydent.models.Operation
- Returns
list of node ids
- Return type
list
-
ops_to_subgraph
(ops)¶ Returns a sub-layout containing only the operations.
- Return type
PlannerGraph
-
ops_to_successors
(ops)¶ Return all successor operations from a list of operations.
- Parameters
ops (list) – list of
pydent.models.Operation
- Returns
list of node ids
- Return type
list
-
predecessors
(node)¶ Return predecessor nodes.
- Parameters
node (basestring) – node id
- Returns
list of node ids
- Return type
list
-
roots
()¶ Returns the roots of this graph.
-
subgraph
(nodes)¶ Returns a subgraph layout from a list of node_ids.
- Return type
Optional
[Type
[PlannerGraph
]]
-
successors
(node)¶ Return successors nodes.
- Parameters
node (basestring) – node id
- Returns
list of node ids
- Return type
list
-
to_grid
(columns, axis=1, border_x=None, border_y=None)[source]¶ Arrange layouts in a grid format.
- Parameters
columns (int) – maximum number of columns (or rows when axis=0)
axis (int) – which axis to limit. Default: 1 (columns) or 0 (rows)
border_x (int) – (optional) separation between each cell in the grid
border_y (int) – (optional) separation between each cell in the grid
- Returns
layout
- Return type
layout


--- layout: page status: publish published: false title: Davis County (DUG) author: display_name: Zach Beck login: Zach Beck email<EMAIL_ADDRESS>url: '' author_login: Zach Beck author_email<EMAIL_ADDRESS>wordpress_id: 2576 wordpress_url: http://gis.utah.gov/?page_id=2576 date: '2011-09-19 10:27:42 -0600' date_gmt: '2011-09-19 16:27:42 -0600' categories: [] tags: [] ---
Davis County User Group. DUG consists of Geo-spatial technicians and specialists from Davis County, and the different cities and entities of the county. This group works together solve the many problems with geo-spatial data found within Davis County. For more information, please contact Kasey Hansen: khansen@jub.com


The GStreamer Bad Plug-ins package contains a set of plug-ins that aren't up to par compared to the rest. They might be close to being good quality, but they're missing something - be it a good code review, some documentation, a set of tests, a real live maintainer, or some actual wide use.
This package is known to build and work properly using an LFS-7.10 platform.
Download (HTTP): http://gstreamer.freedesktop.org/src/gst-plugins-bad/gst-plugins-bad-1.8.3.tar.xz
Download MD5 sum: 955281a43e98c5464563fa049e0a0911
Download size: 4.3 MB
Estimated disk space required: 332 MB (with tests)
Estimated build time: 3.4 SBU (with tests)
libdvdread-5.0.3, libdvdnav-5.0.3, LLVM-3.8.1, and SoundTouch-1.9.2
BlueZ-5.41, Clutter-1.26.0, cURL-7.50.1, FAAC-1.28, FAAD2-2.7, GnuTLS-3.5.3, GTK-Doc-1.25, GTK+-2.24.30 or GTK+-3.20.9, libass-0.13.2, libexif-0.6.21, libgcrypt-1.7.3, libmpeg2-0.5.1, libvdpau-1.1.1, libwebp-0.5.1, Mesa-12.0.1, mpg123-1.23.6, neon-0.30.1, Nettle-3.2, opencv-3.1.0, OpenJPEG-1.5.2 or OpenJPEG-2.1.1, Opus-1.1.3, Qt-5.7.0 (for examples), SDL-1.2.15, Valgrind-3.11.0, Wayland-1.11.0, x265-2.0, Xorg Libraries, bs2b, Chromaprint, daala, Flite, Game Music Emu, GSM, libmimic, libmms, libofa, MJPEG Tools, OpenAL, Orc, VO AAC, VO AMRWB, and ZBAR
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gst10-plugins-bad
If you need a plugin for a given dependency, that dependency needs to be installed before this application.
Install GStreamer Bad Plug-ins by running the following commands:
./configure --prefix=/usr \ --disable-wayland \ --with-package-name="GStreamer Bad Plugins 1.8.3 BLFS" \ --with-package-origin="http://www.linuxfromscratch.org/blfs/view/svn/" && make
To test the results, issue: make check. Several tests need a terminal emulator in a graphical session.
Now, as the root
user:
make install
--disable-wayland
: This options is
required without a full wayland based desktop environment.
Last updated on 2016-08-28 14:19:58 -0700


About me: I'm a new student in the Intro to Programming class. I'm also a guitarist, saxophonist, DJ and music teacher. You can check out one of my band's live performances here. Some of the venues in town I've played gigs at include Mad Hanna, Star Bar, Gil's Speakeasy, The Starday Tavern, The Vern, The Twilight, and The Flying 15 Motorcycle Clubhouse. I love traveling and my most recent trips were to L.A. and New Orleans. In New Orleans I explored the Barataria Preserve, the Garden District, and Magazine Street. I took a steamboat tour sailing down the Mississippi River. In L.A. we stayed in a building downtown that had a pool and a hot tub on the roof! On our first night there we took photo booth pictures at a bar. We also hiked to the Hollywood sign and saw a bicycle parade on the Santa Monica pier.
  "If you want something done, give it to a busy person." - Benjamin Franklin


Warren: After Medicare for All, Some Working in Health Insurance Will Work in Life and Auto Insurance | Breitbart
by Ian HanchettWhile speaking to reporters on Friday, 2020 presidential candidate Senator Elizabeth Warren (D-MA) stated that some of the people who currently work in private health insurance “will work in other parts of insurance, in life insurance, in auto insurance, in car insurance” after Medicare for all is passed and others will work in Medicaid. Warren also touted her Medicare for all plan’s “five-year transition support for everyone.”
Warren responded to a question on where people who work in private health insurance will go when private health insurance doesn’t exist by stating, “So, if you’ve had a chance to read the plan, you’ll see. No one gets left behind. Some of the people currently working in health insurance will work in other parts of insurance, in life insurance, in auto insurance, in car insurance. Some will work for Medicaid. And there is a five-year transition support for everyone.”
Follow Ian Hanchett on Twitter @IanHanchett


This example shows how to paint in a canvas, with a "pencil"... The path that is drawn is made of several contiguous lines.


add one mesh
2 5 10 100 1000 10000 100000
addMeshGeometryInstanced
load stats.js
getRendererInfo
screen capture Experimental feature. Work-in-progress. In JavaScript developer console, select a small screen before using.
reset view rotation
50


CS 518 Networked Entertainment - Fall 2015
Project Ideas
- An end-to-end live streaming system
- Performance evaluation of cellular video
- Loss characteristics of an IPTV system
- Live streaming latency measurements for IPTV, satellite, cable and streaming systems
|


Work together with your team on USPC projects.
Search
Choose project... Age Reversal Cold Protection Start New Project Submit
Project: Cold Prevention | Number: 289 | Submitted by: Paul Warner Project: Age Reversal | Number: 1837 | Submitted by: Karen Sander Project: Wrinkle Reliever | Number: 102 | Submitted by: Karen Sanders Project: Cancer Cure | Number: 347 | Submitted by: Paul Warner
Submit
What is the status of the age reversal program? What was the conslusion of experiment 193?? Can I access the portal from my phone??? I think I found a solution for the "cure-it-all" project


| Option |
Description |
| Block Ram |
The memory type used to implement the FIFO_SC is block ram. |
| Distributed Ram |
The memory type used to implement the FIFO_SC is distributed ram. |
| LUT |
The memory type used to implement the FIFO_SC is registers. |
| Write Depth |
Specify the number of the address locations for input. |
| Write Data Width |
Specify the data width of the input data. |
| Read Depth |
The number of the address locations for output, which is same with the Write Depth. |
| Read Data Width |
The data width for the output data, which is same with the Write Data Width. |
| Write Data Num |
This enables the data count output, which is synchronized with clock and shows the number of words in the FIFO_SC. |
| Almost Full Flag |
Enable the almost full flag. |
| Full-Single Threshold Constant Parameter |
A single threshold is set at the time of the IP generation. |
| Full-Dual Threshold Constant Parameters |
Dual thresholds are set at the time of the IP generation. |
| Full-Single Threshold Input Parameter |
A single threshold is input from the additional port to allow changing the threshold during operation. |
| Full-Dual Threshold Input Parameters |
Dual thresholds are input from the additional ports to allow changing the thresholds during operation. |
| Set |
The threshold of setting the almost full flag to 1. |
| Clear |
The threshold of clearing the almost empty flag to 0. |
| Almost Empty Flag |
Enable the almost empty flag. |
| Empty-Single Threshold Constant Parameter |
A single threshold is set at the time of the IP generation. |
| Empty-Dual Threshold Constant Parameters |
Dual thresholds are set at the time of the IP generation. |
| Empty-Single Threshold Input Parameter |
A single threshold is input from the additional port to allow changing the threshold during operation. |
| Empty-Dual Threshold Input Parameter |
Dual thresholds are input from the additional ports to allow changing the thresholds during operation. |
| Set |
The threshold of setting the almost empty flag to 1. |
| Clear |
The threshold of clearing the almost empty flag to 0. |
| ECC Selected |
Allow error correction of single error and error detection of double errors. This is not supported for data widths greater than 64 bits, and only supported for block ram. |
| Output Register Selected |
Registers are used for the output data, which can't aspect the flag signal. |
| Controlled by RdEn |
The Registers for the output data are controlled by RdEn, and the last data can't be output. |


Technically a timeseries à la joyplot, this chart plots the frequency of data points over time, and provides an alternative layout to small multiples. One of the star of our Trump Vocabulary piece.
See on Github


---
meta-title: EMBL-EBI Style Lab
title: EMBL-EBI Core Content Specification
cta: Distilling the purpose of your content ecosystem and tracking its effectiveness.
filter-nav: false
filter-dropdowns: false
pagetype: meta-pattern
layout: static
location: /general/core-content-spec
---
{{#markdown}}
Cause and effect. We write text and create page layotus to make things happen: download a PDF, submit data or to get the use to think of EMBL-EBI as great place.
### Why
The Core Content Specification is a method we utilise to:
1. Make a statement of what we seek to achieve
2. Document the thinking and actors involved
3. Track success
### When
Use this method on a series of web pages or ecosystem. This is primairly web-focused, but the methods can be adapted to print documents.
For example a service might have a few Core Content Specifications:
1. The homepage
- A top layer model about how a user engages into the rest of the site.
2. An application side
- How users submit a query, view results, download data, etc.
3. An "About" section
- How users learn about the service, view news, engage with social media.
### How
The tool we use to make our Core Content Specificacations is currently a document template (more on that below) that asks about our goals from different — but interconected — angles:
- Mission
- URLs
- Goals
- Target audience
- Content
- Inward and outward paths
### Getting started
#### 1. Help and guidance
This is a fairly new and evolving process. We'd love to hear how you've utlised it, and we're happy to help you get started: [khawkins<EMAIL_ADDRESS>#### 2. Use the template
You can use the below Google Doc as template and documentation for your Core Content Specifications.
Open the document below in Google Docs
### Our future plans?
Working with the Web Content Committee, Communications, Training, Web Development and other teams, this model has been evolving since the end of 2016. Here is what we have planned for the next evolution:
1. Visualise the data we've collected.
- Core Content Specifications share connections between models. We can use those connections to see a bird's eye view of pathways between models and see which ecosystems are performing as expected.
2. Performance measurement
- By looking at the documented content and associated goals, we can use tools like Google Analytics to measure more than time on page, and begin to measure real success.
3.  We could build a better system on the web, once the model has fully stabilised (we should be nearly stable).
{{/markdown}}


SPRING FORWARD --------------
When ex-con Paul (Liev Schrieber, "A Walk on the Moon") begins work as a municipal parks worker, he's full of self doubt. He's partnered with the much older Murphy (Ned Beatty, "Cookie's Fortune"), a most unconventional blue collar worker. Over the course of a year and the change of the seasons, a deep and moving friendship will form between the two men in writer/director Tom Gilroy's feature film debut "Spring Forward."
Paul and Murphy begin to bond when the uppity son of a gardening supply store (Campbell Scott, "Big Night," perfectly capturing the unctuous manner of a man born to wealth unused to being challenged) tries to manipulate them into shovelling the manure his father's donated to the city. Paul, emboldened by Murph's refusal to back down to Frederickson, calls Frederickson a vicious name and is rebuked by Murph for his language. Frederickson claims Murphy's reaction is because the term could be applied to Murphy's son, a gay man. Paul is devastated that he's caused Murphy hurt.
"Spring Forward" progresses through six additional, real time scenes each punctuated by a seasonal interlude in the author's home town of Ridgefield, Connecticutt. Paul and Murph discuss religion and get high. Murph takes Paul to a house where there are puppies for sale by a woman who might need companionship as much as Paul does ('Frasier's' Peri Gilpin). Murph tells Paul about the hurt caused by a lifelong neighbor who refused to stand up for his son, then the two meet that same neighbor (Bill Raymond) at Murph's son's wake. The two find a hysterical woman and her terrified daughter by the side of the road.
"Spring Forward" is above all an actors' showcase, particularly for Beatty and Schreiber who are simply sublime together. Beatty's Murph looks like a blue collar everyman on the verge of retirement, but has an unexpectedly sensitive soul and Beatty never once makes us doubt this unconventional package. Schreiber's Paul has more beneath the surface than one would expect, having substituted voracious reading for institutional education. He too, seems like a potential redneck who's instead opened his mind beyond where his background should have led him. Their verbal sparring and generational gap give the film a gentle humor.
Gilroy has provided these character riffs in his writing. Murph has a habit of making bakery allegories rather than use foul language ('I'd have been frosted too,' 'He's got a cupcake mentality'). Paul expounds on Asian spiritual concepts, and, just when he thinks he's flown over Murph's head, Murph sums up his ideas with a simple cliche - the concept of karma is translated into 'What goes around, comes around.'
Gilroy's playwright background is stamped all over his film debut to its detriment, however. Gilroy's decision to film over the course of a year was a plus for the actors, allowing them to form their bond gradually. Yet, every moment is jam packed with a philosophical or heavy moment, never giving his characters a chance to breath or his film to form more naturally.
Director of photography Terry Stacey captures the beauty of his locations, a rural New England utopia. Composer Hahn Rowe's score features a folky, yet plaintive fiddle, accentuating the film's bittersweetness.
C+
For more Reeling reviews visit www.reelingreviews.com
<EMAIL_ADDRESS><EMAIL_ADDRESS>The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Appeal for witnesses to Limerick crash that claimed teen's life
by By Digital Desk staffGardaí are appealing for witnesses to a crash that claimed the life of a teenage boy in Limerick at the weekend.
Nathan Lawlor Hough, 16, from Rathkeale, Co Limerick died after he was struck by a car on the N21, Garrunboy in Adare at approximately 3.45am.
It is believed he had been walking home from a house party.
The male driver, who is in his late 40s, was uninjured.
Gardaí are appealing to all road users who may have witnessed the collision or may have travelled on this section of the N21, on Sunday morning, between the hours of 3.20am and 3.50am and may have camera footage to contact them at Newcastle West Garda Station on 069 20650, the Garda Confidential Line on 1800 666 111 or any Garda Station.


Index
Login
Users
Get user by Id
Create user
Name
Password
Age
All users
#
Name
Age
<#list randomUser as item>
${item.id}
${item.name}
${item.age}
#list>