identificationReference
identificationReference(alternateIdentifier = NULL, shortName = NULL, title = NULL, creator = NULL, metadataProvider = NULL, associatedParty = NULL, pubDate = NULL, language = NULL, series = NULL, abstract = NULL, keywordSet = NULL, additionalInfo = NULL, intellectualRights = NULL, licensed = NULL, distribution = NULL, coverage = NULL, annotation = NULL, contact = NULL, article = NULL, book = NULL, chapter = NULL, editedBook = NULL, manuscript = NULL, report = NULL, thesis = NULL, conferenceProceedings = NULL, personalCommunication = NULL, map = NULL, generic = NULL, audioVisual = NULL, presentation = NULL, bibtex = NULL, references = NULL, id = NULL, system = NULL, scope = NULL)
| alternateIdentifier | A secondary identifier for this entity See |
|---|---|
| shortName | A short name that describes the resource, sometimes a filename. See |
| title | A brief description of the resource, providing enough detail to differentiate it from other similar resources. See |
| creator | The people or organizations who created this resource. See |
| metadataProvider | The people or organizations who created provided documentation and other metadata for this resource. See |
| associatedParty | Other people or organizations who should be associated with this resource. See |
| pubDate | The publication date of the resource. See |
| language | The language in which the resource is written. See |
| series | The series from which the resource came. See |
| abstract | A brief overview of the resource. See |
| keywordSet | Keyword information that describes the resource. See |
| additionalInfo | Any extra information pertitent to the resource. See |
| intellectualRights | Intellectual property rights regarding usage and licensing of this resource. See |
| licensed | Information identifying a well-known license for the metadata and data See |
| distribution | Information on how the resource is distributed online and offline See |
| coverage | Extent of the coverage of the resource. See |
| annotation | A precisely-defined semantic statement about this resource. See |
| contact | An optional contact individual for this citation See |
| article | Information for full citation of a journal article or other periodical article. See |
| book | Information for full citation of a book See |
| chapter | Information for citation of a chapter in a book See |
| editedBook | Information for full citation of an edited book See |
| manuscript | Information about an unpublished manuscript See |
| report | Information about a report published by an institution. See |
| thesis | Information about a thesis that has been written as part of a degree requirement and is frequently published in small numbers by the degree awarding institution. See |
| conferenceProceedings | The published notes, papers, presentations etc... of a conference. See |
| personalCommunication | A personal communication that has been saved online or as hard-copy. See |
| map | This element describes the map that is being cited or cataloged. See |
| generic | This reference type was created for references that do not fit in to the other existing reference types See |
| audioVisual | This reference type is meant to cover all forms of audio and visual media. See |
| presentation | An unpublished presentation from a conference, workshop, workgroup, symposium etc. See |
| bibtex | Citation in Bibtex format. See |
| references | The id of another element in this EML document to be used to here in this context. See |
| id | A unique identifier for this additional metadata that can be used to reference it elsewhere. This is a formal field in that it is an error to provide a value for the id attribute that is not unique within the document's set of id attributes. This is designed to allow other portions of the metadata to reference this section formally. |
| system | The data management system within which an identifier is in scope and therefore unique. This is typically a URL (Uniform Resource Locator) that indicates a data management system. All identifiers that share a system must be unique. In other words, if the same identifier is used in two locations with identical systems, then by definition the objects at which they point are in fact the same object. |
| scope | The scope of the identifier. Scope is generally set to either "system", meaning that it is scoped according to the "system" attribute, or "document" if it is only to be in scope within this single document instance. In this particular use of scope, it is FIXED to be "system" because the packageId is required and always has the scope of the required "system". |
a identificationReference list object


Web accessibility demo
Alternative text for images is mandatory and can take multiple forms
Puno Peru
Bishop Creek CALIFORNIA
Content from
Explore a Tapestry of World Ecosystems


With the increasing convergence of computational and architectural practices, a common interdisciplinary encounter of today is between architects and tech designers. Tech companies, startups, designers, and entrepreneurs are increasingly interested in homes, offices, infrastructures, and cities as sites of deployment; and architecture offices, architects, and architectural researchers engage with software, sensors, robots, and other devices as their instruments. The mutual interest in each other's work and artifacts start to bring these two figures more often in conversations, debates, or collaborations within labs or projects. Because of different knowledge backgrounds and discourses, these conversations can at times involve low levels of engagement as well as exchanges and gaps. Producing insights on engagement, exchanges, and gaps between the disciplinary discourses of architects and tech designers is a crucial first step towards understanding the qualities of interaction between the two groups. This paper reports on a case study of two interdisciplinary conversations, each between two architects and a tech designer. In analyzing the first conversation, we investigated the engagement, exchanges, and gaps between these actors’ disciplinary discourses by text processing and visualization. By analyzing the second conversation, we conducted a comparative analysis of insights. By using text processing and visualization, we also explored the potential of these methods in understanding the conversational dynamics investigated. The case study and visualizations revealed that, even though the architects and the tech designer engage through a sharing and exchange across their discourses, there are issues in the qualities of that sharing and exchange. The paper finally outlines these issues.
Glossary
Content words:
Content words are the words in a sentence that contain semantic information and cumulatively form the contentful part of a discourse, such as nouns, verbs, or adjectives. In this project, we use content words to evaluate contentful contribution to a discourse.
Disciplinary words:
Words that belong to or stem from a certain disciplinary or professional terminology. Disciplinary words can also be present in daily language. For instance, "ramp" when it is used by architects is an architectural word, as opposed to what it means in another daily conversation.
Function words:
Function words are the words in a sentence that maintain the syntactic structure but do not contain semantic information, such as prepositions, pronouns or conjunctions. Function words are considered as "language style markers", and similarities and differences in rates of function word use is a way of analyzing language interaction (Ireland and Pennebaker, 2010; Gonzales et.al., 2010).
Inter / dual-disciplinary words:
Interdisciplinary words are the words that are present in multiple disciplinary or professional terminology. An example is "design" that exists both in architecture and engineering. In this project, we take the interdisciplinary words together with, what we named as "dual-disciplinary" words. Dual-disciplinary words are the words that may or may not be disciplinary, but have different meanings or connotations in different disciplinary domains. An example would be "program" which means programming a computer by coding" in computer science versus "building programming by organizing the floor areas and layouts for different uses" in architecture.
Conversation 1
The first conversation we chose is titled "Architecture and Technology" which took place in Venice Biennale in 2014. This was a conversation between German architect and journalist Niklas Maak, renowned Dutch architect and founder of the Office for Metropolitan Architecture (OMA) Rem Koolhaas, and American computer engineer, tech designer and entrepreneur Tony Fadell, who was one of the designers of Apple iPod and iPhone, and founder of Nest Labs, that developed smart thermostats at that time. Triggered by the programmable and self-learning thermostat designed by Tony Fadell and his company Nest, the conversation was an exchange of perspectives on the digitalization of architectural elements.
Conversation 2
The second conversation we chose is titled "Design in the Digital Age" which took place in Vanity Fair's New Establishment Summit 2014 in San Francisco. This was a follow-up conversation between Rem Koolhaas and Tony Fadell, accompanied by American architectural historian and journalist Paul Goldberger. The conversation was the continuation of the exchange of perspectives on the digitalization of architectural elements. In our study, the second conversation was only analyzed in terms of the last dimension, word sharing and exchange, and compared to the first conversation.
Role, weight, and contribution in conversation 1
See section 4.1 in the article for a detailed discussion
Actor-time heatmap: (1) Mouseover on white space, (2) scroll to zoom in / out,
(3) drag white space to move in the timeline, (4) mouseover on bars to see the information
Number
of words-time bar graph: (1) Mouseover on white space, (2) scroll to zoom in / out, (3) drag to move
in the timeline, (4) mouseover on bars to see the information
Engagement by language style matching in conversation 1
See section 4.2 in the article for a detailed discussion
Actor-word network graphs: (1) Mouseover on links or a node, (2) scroll to
zoom in / out, (3) drag from links to move the network
(1) Mouseover on nodes to see the information,
(2) drag apart a node to see link details
Actor-actor network graph: Mouseover on nodes to see the
information
Level of engagement bar graphs: Click on the bars to see the details
Difference in vocabularies and disciplinary words in conversation 1
See section 4.4 in the article for a detailed discussion
Actor-word network graphs: (1) Mouseover on links or a node, (2) scroll to
zoom in / out, (3) drag from links to move the network
(1) Mouseover on nodes to see the information,
(2) drag apart a node to see link details
Sharing and exchange between different disciplinary discourses in conversation 1 and 2
See section 4.5 and 4.6 in the article for a detailed discussion
Actor-word network graph: (1) Mouseover on links or a node, (2) scroll to
zoom in / out, (3) drag from links to move the network
(1) Mouseover on nodes to see the information,
(2) drag apart a node to see link details
Connection by discourse in conversation 1 and 2
See section 5 in the article for a detailed discusson
Actor-actor network graph: (1) Mouseover on nodes to see the information (2) Use the slider to move in the timeline
Emek Erdolu
PhD Candidate in Computational Design I
School of Architecture, Carnegie Mellon University
Prof. Ramesh Krishnamurti
Professor I
School of Architecture, Carnegie Mellon University
A few of the visualizations produced in this study are the outcomes of a collaborative work within the "Interactive Data Science" course in Carnegie Mellon University. Katherine Giesa (Master of Science in Computational Design '21) did the LSM calculations and produced the interactive LSM bar graph. Meijie Hu (Bachelor of Design '21) added the zoom and tooltip interaction to the actor-time heatmap and number of words-time bar graph.
Carnegie Mellon University
2020


696_yuanzhendai.py
class Solution:
def minCost(self, houses: List[int], cost: List[List[int]], m: int, n: int, target: int) -> int:
# dp[i][c][t] is the min cost for houses for previous i houses ended with color c and the total target is t.
dp = [
[
[float('inf')] * (m + 1)
for _ in range(n)
]
for _ in range(m + 1)
]
c = houses[0] - 1
if c == -1:
for c in range(n):
dp[1][c][1] = cost[0][c]
else:
dp[1][c][1] = 0
for i in range(1, m):
c = houses[i] - 1
if c != -1:
for prev_c in range(n):
for prev_t in range(m):
if c == prev_c:
dp[i + 1][c][prev_t] = min(dp[i][c][prev_t], dp[i + 1][c][prev_t])
else:
dp[i + 1][c][prev_t + 1] = min(dp[i][prev_c][prev_t], dp[i + 1][c][prev_t + 1])
else:
for c in range(n):
for prev_c in range(n):
for prev_t in range(m):
if c == prev_c:
dp[i + 1][c][prev_t] = min(dp[i][c][prev_t] + cost[i][c], dp[i + 1][c][prev_t])
else:
dp[i + 1][c][prev_t + 1] = min(dp[i][prev_c][prev_t] + cost[i][c], dp[i + 1][c][prev_t + 1])
ans = min([dp[m][c][target] for c in range(n)])
if ans == float('inf'):
return -1
return ans


--- layout: page title: Programming subtitle: The essentials of programming. desc: The essentials of programming. permalink: /programming/ ---
Wiring and programming make the controller function.
Pick the brains of your controller and wire it up.
Create the program necessary for your controller to run.


McDan Foundation to build six-unit classroom block for Yendi
Accra, Nov. 25, GNA-Dr Daniel McKorley, Chairman of McDan Group has broken ground for the construction of a GH¢680,000.00 six-Unit Classroom block, office and library for the people of Yendi.
The project, is expected to be completed in three months.
The ceremony was witnessed by enthusiastic school children in the community amidst drumming and dancing.
This was in a statement signed by Mr Frank Oduro, the Coordinator of McDan Foundation and copied to the Ghana News Agency in Accra.
The initiative took place in Yendi when Dr McKorley, who is also the Gugba Naa of Tamale paid a courtesy call on the Overlord of Dagbon, His Royal Majesty Ya-Na Mahama Abubakari II at the Gbewaa Palace during the celebration of the 2019 Damba Festival.
Dr McKorley reiterated the determination of McDan Foundation to work with government to remove more schools under trees and encouraged the school authorities to co-operate with the contractor for a successful project.
He said quality education was key to national development and this include children having access to modern facilities like school building furnished with state-of-the-art library.
"Education is of strategic importance to every nation and it is critical we all support the government by contributing our quota to empowering more children especially in deprived communities to acquire relevant knowledge and skill set for national development”.
He encouraged the youth to take their education seriously as the future was opened to people with the right attitude and skill set.
He informed Ya-Na of his plans to invest in agribusiness in the North to create more jobs for the youth and reduce rural poverty significantly.
The Ya-Na commended the gesture of the Foundation for the huge investment in education for the youth of Dagbon and for supporting the success of the Damba festival and prayed for Allah to bless the business of McDan Group.
In his appreciation, the Ya-Na presented a Cattle and a quantity of yam to the Gugba Naa as royal gifts.
The Gugba Naa thanked the Ya-Na for the warm reception and gifts and pledged his continuous support to the Chiefs and people of Dagbon.
Mr Adam Muhammad Awal, the Headmaster of Rhema International School lauded the contribution of Dr McKorley to the development of education in the area.
Also present at the ceremony included; the sub Chiefs of Dagbon and Alhaji Alhassan Mustapha, the Yendi District Director of Education and Farouk Aliu Mahama, the aspiring Parliamentary candidate for New Patriotic Party in Yendi.
GNA


Dogs have a sense of time. It's been proven that they know the difference between a hour and five. If conditioned to, they can predict future events, such as regular walk times.
Your dog is as smart as a two-year old! Ever wonder why children around this age seem to have a special bond with the family dog? It could be because they speak the same language, roughly 250 words and gestures.
 A dog’s sense of smell is 100,000 times better than yours. It's not shocking that they can smell fear. When a human is fearful they perspire, and a dog can pick up on this change.


It is a Graphical representation and comparative study of a single crop yield between any 2 location.


 Our creativity augments your market positioning and is in line with your business vision.
 We are based in Saudi and our experts are spread across the world, this enables our clients to access a vast pool of talented professionals.
We do not say much about ourselves. We let our art do the talking and our clients manage our PR
We make your applications and website look visually appealing. Our creative experts understand UI and UX well to enable you connect instantly with the users. We have experience of working on latest tools to create dynamic and responsive website and applications.
We create logos that talk about your brand and business philosophy. We give you that unique identity your brand deserves in a highly competitive market.
We have innovative branding solutions to enhance your market share and recall.
We capture stills to create a montage of memories and achievement. Our videos can help you create the AV impact you need to standout in the market.
Advanced tools and technology have been changing the Digital Painting landscape. We are well versed with them to give you solutions that can set you ahead of the competition.
Our Murals are objects that speak. We have been working on Murals to give your mundane and monotonous walls a regal look.
UX & UI Designer
Graphic Designer
Illustrator
Animator
CG Artists
Content Writer
PowerPoint Desiger
eLearning Developer


An Exercise in the Way of the Cross by St. Alphonsus Maria Liguori
| Composed by St. Alphonsus Liguori (1696 - 1787) in 1787, this is a very popular form of the Stations of the Cross. In addition to the text below, a verse of the Stabat Mater Dolorosa is often sung or recited when moving from one station to the next. A plenary indulgence is attached for the faithful who make a devout exercise of a set of Stations of the Cross which have been lawfully erected. (#63 of the Enchiridion of Indulgences) |
| DOMINE Iesu Christe, tu tam amanter hanc viam ingressus es, ut mortem pro me obires; ego vero multoties eo deveni, ut te contemnerem. Nunc autem ex tota anima mea amo te, et quia te amo, paenitet me ex intimo corde quod tibi displicui. Ignosce mihi, et patere ut in hac via me tibi comitem adiungam. Tu, amore mei ductus, pergis ad locum ubi pro me moriturus es, et ego vicissim, tui amore ductus, desidero te comitari, ut una tecum, amantissime Redemptor, moriar. O mi Iesu, volo coniunctim tecum et vivere et mori. | MY Lord Jesus Christ, Thou hast made this journey to die for me with love unutterable, and I have so many times unworthily abandoned Thee; but now I love Thee with my whole heart, and because I love Thee I repent sincerely for having ever offended Thee. Pardon me, my God, and permit me to accompany Thee on this journey. Thou goest to die for love of me; I wish also, my beloved Redeemer, to die for love of Thee. My Jesus, I will live and die always united to Thee. |
|
|
|
|
Statio I Iesus condemnatur ad mortem |
First Station Jesus Is Condemned to Death |
|
V. Adoramus te, Christe, et benedicimus tibi. R. Quia per sanctam crucem tuam redemisti mundum. |
V. We adore Thee, O Christ, and we praise Thee. R. Because by Thy holy Cross Thou hast redeemed the world. |
| Considera quomodo Iesus Christus, iam flagellatus et spinis coronatus, iniuste tandem a Pilato ad mortem crucis condemnetur. | Consider how Jesus, after having been scourged and crowned with thorns, was unjustly condemned by Pilate to die on the Cross. |
| O adorande Iesu, non Pilatus, sed iniqua mea vita te ad mortem condemnavit. Per meritum laboriosissimi huius itineris, quod ad Calvariae montem instituis, precor te, ut me semper in via, qua anima mea in aeternitatem tendit, benigne comiteris. Amo te, o Iesu, mi Amor, magis quam meipsum, et ex intimo corde paenitet me quod tibi displicui. Ne sinas me iterum a te separari. Da mihi perpetuum amorem tui, et dein fac de me quidquid tibi placuerit. Quod tibi placitum est, hoc idem mihi est acceptum. | MY adorable Jesus, it was not Pilate; no, it was my sins that condemned Thee to die. I beseech Thee, by the merits of this sorrowful journey to assist my soul in its journey toward eternity. I love Thee, my beloved Jesus; I love Thee more than myself; I repent with my whole heart of having offended Thee. Never permit me to separate myself from Thee again. Grant that I may love Thee always, and then do with me what Thou wilt. |
| Pater, Ave, Gloria. | Our Father, Hail Mary, Glory Be. |
|
Tu, caritatis victima, Petis, Redemptor, Golgotham; Tuis inhaerens gressibus, Tecum peropto commori. |
Dear Jesus, Thou dost go to die For very love of me; Ah, let me bear Thee company, I wish to die with Thee. |
|
|
|
|
Statio II Iesus oneratur ligno crucis |
Second Station Jesus Is Made to Carry His Cross |
|
V. Adoramus te, Christe, et benedicimus tibi. R. Quia per sanctam crucem tuam redemisti mundum. |
V. We adore Thee, O Christ, and we praise Thee. R. Because by Thy holy Cross Thou hast redeemed the world. |
| Considera quomodo Iesus Christus, portans humeris crucem, fuerit inter eundum, memor tui, offerendo pro te aeterno Patri mortem, quam erat obiturus. | Consider how Jesus, in making this journey with the Cross on His shoulders, thought of us, and offered for us to His Father the death He was about to undergo. |
| AMABILISSIME Iesu, amplector omnes res adversas, quas mihi usque ad obitum tolerandas praefixisti, et, per durum illum, quem in portanda tua cruce pertulisti, laborem, precor te, ut vires mihi subministres, quibus ego quoque crucem meam, aequo ac patienti animo, portare valeam. Amo te, o Iesu, mi Amor, paenitet me quod tibi displicui. Ne sinas me iterum separari a te. Da mihi perpetuum amorem tui, et dein fac de me quidquid tibi placuerit. | MY most beloved Jesus, I embrace all the tribulations Thou hast destined for me until death. I beseech Thee, by the merits of the pain Thou did suffer in carrying Thy Cross, to give me the necessary help to carry mine with perfect patience and resignation. I love Thee, Jesus my love; I love Thee more than myself; I repent of having offended Thee. Never permit me to separate myself from Thee again. Grant that I may love Thee always, and then do with me what Thou wilt. |
| Pater, Ave, Gloria. | Our Father, Hail Mary, Glory Be. |
|
Tu, caritatis victima, Petis, Redemptor, Golgotham; Tuis inhaerens gressibus, Tecum peropto commori. |
Dear Jesus, Thou dost go to die For very love of me; Ah, let me bear Thee company, I wish to die with Thee. |
|
|
|
|
Statio III Iesus procumbit primum sub onere crucis |
Third Station Jesus Falls the First Time |
|
V. Adoramus te, Christe, et benedicimus tibi. R. Quia per sanctam crucem tuam redemisti mundum. |
V. We adore Thee, O Christ, and we praise Thee. R. Because by Thy holy Cross Thou hast redeemed the world. |
| Considera primum hunc Iesu Christi sub cruce lapsum. Habebat carnem ex saeva flagellatione multifarie sauciam, caput redimitum spinarum corona: profuderat insuper cruorem in tanta copia, ut vix pedem prae virium defectione, movere posset. Et quoniam gravi crucis onere premebatur, et immisericorditer a militibus propellebatur, accidit ut pluries inter eundum humi procumberet. | Consider this first fall of Jesus under His Cross. His flesh was torn by the scourges, His head crowned with thorns, and He had lost a great quantity of blood. He was so weakened that He could scarcely walk, and yet He had to carry this great load upon His shoulders. The soldiers struck Him rudely, and thus He fell several times in His journey. |
| O mi Iesu, non est onus crucis, sed peccatorum meorum pondus, quod tantis te afficit doloribus. Rogo te, per primum hunc tuum lapsum, ut ab omni in peccatum me lapsu tuearis. Amo te, o Iesu, ex toto corde meo; paenitet me quod tibi displicui. Ne sinas me iterum in peccatum prolabi. Da mihi perpetuum amorem tui, et dein fac de me quidquid tibi placuerit. | MY beloved Jesus, it is not the weight of the Cross, but my sins which hast made Thee suffer so much pain. By the merits of this first fall, deliver me from the misfortune of falling into mortal sin. I love Thee, Jesus, with my whole heart; I repent of having offended Thee. Never permit me to offend Thee again. Grant that I may love Thee always, and then do with me what Thou wilt. |
| Pater, Ave, Gloria. | Our Father, Hail Mary, Glory Be. |
|
Tu, caritatis victima, Petis, Redemptor, Golgotham; Tuis inhaerens gressibus, Tecum peropto commori. |
Dear Jesus, Thou dost go to die For very love of me; Ah, let me bear Thee company, I to die with Thee. |
|
|
|
|
Statio IV Iesus fit perdolenti Matri obvius |
Fourth Station Jesus Meets His Afflicted Mother |
|
V. Adoramus te, Christe, et benedicimus tibi. R. Quia per sanctam crucem tuam redemisti mundum. |
V. We adore Thee, O Christ, and we praise Thee. R. Because by Thy holy Cross Thou hast redeemed the world. |
| Considera qualis fuerit, in hac via, Filii et Matris occursus. Iesus et Maria se mutuo aspexerunt, mutuique eorum aspectus, fuerunt totidem sagittae, quibus amantia eorum pectora transverberabantur. | Consider the meeting of the Son and the Mother, which took place on this journey. Jesus and Mary looked at each other, and their looks became as so many arrows to wound those hearts which loved each other so tenderly. |
| AMANTISSIME Iesu, per acerbum dolorem, quem in hoc occursu expertus es, redde me, precor, sanctissimae Matri tuae vere devotum. Tu vero, perdolens mea Regina, intercede pro me, et obtine mihi talem cruciatum Filii tui memoriam, ut mens mea in pia illorum contemplatione perpetuo detineatur. Amo te, o Iesu, mi Amor; paenitet me quod tibi displicui. Ne sinas me iterum in te peccare. Da mihi perpetuum amorem tui, et dein fac de me quidquid tibi placuerit. | MY most loving Jesus, by the sorrow that Thou didst experience in this meeting, grant me the grace of a truly devoted love for Thy most holy Mother. And thou, my Queen, who was overwhelmed with sorrow, obtain for me, by thy intercession, a continual and tender remembrance of the Passion of thy Son. I love Thee, Jesus my love; I repent of having offended Thee. Never permit me to offend Thee again. Grant that I may love Thee always, and then do with me what Thou wilt. |
| Pater, Ave, Gloria. | Our Father, Hail Mary, Glory Be. |
|
Tu, caritatis victima, Petis, Redemptor, Golgotham; Tuis inhaerens gressibus, Tecum peropto commori. |
Dear Jesus, Thou dost go to die For very love of me; Ah, let me bear Thee company, I to die with Thee. |
|
|
|
|
Statio V Iesus in baiulanda cruce a Cyrenaeo adiuvatur |
Fifth Station Simon of Cyrene Helps Jesus Carry His Cross |
|
V. Adoramus te, Christe, et benedicimus tibi. R. Quia per sanctam crucem tuam redemisti mundum. |
V. We adore Thee, O Christ, and we praise Thee. R. Because by Thy holy Cross Thou hast redeemed the world. |
| Considera quomodo Iudaei, videntes Iesum ad quemlibet passum animam propemodum prae lassitudine efflantem, et timentes ex altera parte ne, quem crucis supplicio affectum volebant, in via moreretur, compellant Simonem Cyrenaeum ad baiulandam crucem post Dominum. | Consider how the Jews, seeing that at each step, Jesus, from weakness, was on the point of expiring, and fearing that He would die on the way, when they wished Him to die the shameful death of the Cross, constrained Simon the Cyrenian to carry the Cross behind our Lord. |
| O dulcissime Iesu, nolo sicut Cyrenaeus, repudiare crucem, libenter eam amplector in meque recipio, amplector speciatim quam mihi praefiniisti mortem cum omnibus, quos haec secum adductura est, doloribus. Coniungo eam cum morte tua, sicque coniunctam eam in sacrificium tibi offero. Tu amore mei mortuus es; volo ego quoque mori amore tui, ea mente ut rem tibi gratam faciam. Tu vero adiuva me tua gratia. Amo te, o Iesu, mi Amor, paenitet me quod tibi displicui. Ne sinas me iterum tibi displicere. Da mihi perpetuum amorem tui, et dein fac de me quidquid tibi placuerit. | MY most beloved Jesus, I will not refuse the Cross as the Cyrenian did; I accept it - I embrace it. I accept in particular the death Thou hast destined for me, with all the pains which may accompany it; I unite it to Thy death - I offer it to Thee. Thou hast died for love of me. I will die for love of Thee, and to please Thee. Help me by Thy grace. I love Thee Jesus my love; I repent of having offended Thee. Never permit me to offend Thee again. Grant that I may love Thee always, and then do with me what Thou wilt. |
| Pater, Ave, Gloria. | Our Father, Hail Mary, Glory Be. |
|
Tu, caritatis victima, Petis, Redemptor, Golgotham; Tuis inhaerens gressibus, Tecum peropto commori. |
Dear Jesus, Thou dost go to die For very love of me; Ah, let me bear Thee company, I to die with Thee. |
|
|
|
|
Statio VI Iesus Veronicae sudario abstergitur |
Sixth Station Veronica Wipes the Face of Jesus |
|
V. Adoramus te, Christe, et benedicimus tibi. R. Quia per sanctam crucem tuam redemisti mundum. |
V. We adore Thee, O Christ, and we praise Thee. R. Because by Thy holy Cross Thou hast redeemed the world. |
| Considera quomodo sancta illa femina Veronica, videns Iesum doloribus confectum eiusque vultum sudore ac sanguine madidum, porrigat ei linteolum in quo ipse, abstersa facie, sacram sui imaginem impressam relinquit. | Consider how the holy woman named Veronica, seeing Jesus so afflicted, and His face bathed in sweat and blood, presented Him with a towel, with which He wiped His adorable face, leaving on it the impression of His holy countenance. |
| O mi Iesu, formosa erat antea facies tua; verum hac in via non amplius formosa apparet, sed est vulneribus et cruore omnino deformis. Hei mihi! quam formosa quoque erat anima mea, cum gratiam tuam per baptismum recepisset: peccando eam postea deformem reddidi. Tu solus, mi Redemptor, pristinam venustatem ei restituere vales; quod ut facias, per tuae Passionis meritum te precor. Amo te Iesu, mi Amor; paenitet me quod tibi displicui; ne sinas me iterum tibi displicere. Da mihi perpetuum amorem tui, et dein fac de me quidquid tibi placuerit. | MY most beloved Jesus, Thy face was beautiful before, but in this journey it hast lost all its beauty, and wounds and blood have disfigured it. Alas! my soul also was once beautiful, when it received Thy grace in Baptism; but I have disfigured it since by my sins. Thou alone, my Redeemer, can restore it to its former beauty. Do this by Thy Passion. I love Thee Jesus my love; I repent of having offended Thee. Never permit me to offend Thee again. Grant that I may love Thee always, and then do with me what Thou wilt. |
| Pater, Ave, Gloria. | Our Father, Hail Mary, Glory Be. |
|
Tu, caritatis victima, Petis, Redemptor, Golgotham; Tuis inhaerens gressibus, Tecum peropto commori. |
Dear Jesus, Thou dost go to die For very love of me; Ah, let me bear Thee company, I to die with Thee. |
|
|
|
|
Statio VII Iesus procumbit iterum sub onere crucis |
Seventh Station Jesus Falls the Second Time |
|
V. Adoramus te, Christe, et benedicimus tibi. R. Quia per sanctam crucem tuam redemisti mundum. |
V. We adore Thee, O Christ, and we praise Thee. R. Because by Thy holy Cross Thou hast redeemed the world. |
| Considera alterum Iesu Christi sub cruce lapsum, quo lapsu perdolenti Domino omnes venerandi capitis et totius corporis plagae recrudescunt, omnesque cruciatus renovantur. | Consider the second fall of Jesus under the Cross - a fall which renews the pain of all the wounds of the head and members of our afflicted Lord. |
| MANSUETISSIME Iesu, quam frequenter concessisti mihi veniam! Ego vero in eadem relapsus sum peccata, measque in te offensas renovavi. Per meritum novi huius tui lapsus adiuva me, ut in gratia tua usque ad obitum perseverem. Fac ut in omnibus, quae me invasurae sunt, tentationibus me tibi semper commendem. Amo te ex toto corde meo, o Iesu, mi Amor; paenitet me quod tibi displicui: ne sinas me iterum tibi displicere.  Oh! By the merits of this new fall, give me the necessary helps to persevere in Thy grace until death. Grant that in all temptations which assail me, I may always commend myself to Thee. I love Thee, Jesus my Love, with my whole heart; I repent of having offended Thee. Never permit me to offend Thee again. Grant that I may love Thee always, and then do with me what Thou wilt. |
| Pater, Ave, Gloria. | Our Father, Hail Mary, Glory Be. |
|
Tu, caritatis victima, Petis, Redemptor, Golgotham; Tuis inhaerens gressibus, Tecum peropto commori. |
Dear Jesus, Thou dost go to die For very love of me; Ah, let me bear Thee company, I to die with Thee. |
|
|
|
|
Statio VIII Iesus plorantes mulieres alloquitur |
Eighth Station Jesus Speaks to the Women of Jerusalem |
|
V. Adoramus te, Christe, et benedicimus tibi. R. Quia per sanctam crucem tuam redemisti mundum. |
V. We adore Thee, O Christ, and we praise Thee. R. Because by Thy holy Cross Thou hast redeemed the world. |
| Considera quomodo mulieres, videntes Iesum lassitudine exanimatum et cruore inter eundum diffluentem, commiseratione permoveantur, lacrimasque profundant. Ad flentes autem conversus: "Nolite, inquit, flere super me, sed super vos ipsas flete et super filios vestros." | Consider how those women wept with compassion at seeing Jesus in such a pitiable state, streaming with Blood, as He walked along. But Jesus said to them: "Weep not for Me, but for your children." |
| O perdolens Iesu, defleo mea in te peccata ob poenas quidem quibus me dignum reddiderunt, sed maxime ob molestiam quam tibi intulerunt, tibi qui me tantopere amasti. Ad fletum minus infernus quam amor tui me excitat. O mi Iesu, amo te magis quam meipsum; paenitet me quod tibi displicui; ne sinas me iterum tibi displicere. Da mihi perpetuum amorem tui, et dein fac de me quidquid tibi placuerit. | MY Jesus, laden with sorrows, I weep for the offenses I have committed against Thee, because of the pains they have deserved, and still more because of the displeasure they have caused Thee, Who hast loved me so much. It is Thy love more than the fear of hell, which causes me to weep for my sins. My Jesus, I love Thee more than myself. I repent of having offended Thee. Never permit me to offend Thee again. Grant that I may love Thee always, and then do with me what Thou wilt. |
| Pater, Ave, Gloria. | Our Father, Hail Mary, Glory Be. |
|
Tu, caritatis victima, Petis, Redemptor, Golgotham; Tuis inhaerens gressibus, Tecum peropto commori. |
Dear Jesus, Thou dost go to die For very love of me; Ah, let me bear Thee company, I to die with Thee. |
|
|
|
|
Statio IX Iesus procumbit tertium sub onere crucis |
Ninth Station Jesus Falls the Third Time |
|
V. Adoramus te, Christe, et benedicimus tibi. R. Quia per sanctam crucem tuam redemisti mundum. |
V. We adore Thee, O Christ, and we praise Thee. R. Because by Thy holy Cross Thou hast redeemed the world. |
| Considera tertium Iesu Christi sub cruce lapsum. Procumbit quia nimia erat eius debilitas, et nimia saevitia carnificum, qui volebant ut gressum acceleraret, dum vix unum gradum facere posset. | Consider the third fall of Jesus Christ. His weakness was extreme, and the cruelty of His executioners excessive, who tried to hasten His steps when he had scarcely strength to move. |
| O inclementer habite Iesu, per meritum illius virium defectionis, qua in via ad Calvarium laborare voluisti, tanto, precor, me vigore conforta, ut nullum amplius ad humana iudicia respectum habeam, ac vitiosam meam naturam edomem: quod utrumque in causa fuit cur tuam olim amicitiam contempserim. Amo te, o Iesu, mi Amor, ex toto corde meo; paenitet me quod tibi displicui: ne sinas me iterum tibi displicere. Da mihi perpetuum amorem tui, et dein fac de me quidquid tibi placuerit. | AH, my outraged Jesus, by the merits of the weakness Thou didst suffer in going to Calvary, give me strength sufficient to conquer all human respect, and all my wicked passions, which have led me to despise Thy friendship. I love Thee, Jesus my love, with my whole heart. I repent of having offended Thee. Never permit me to offend Thee again. Grant that I may love Thee always, and then do with me what Thou wilt. |
| Pater, Ave, Gloria. | Our Father, Hail Mary, Glory Be. |
|
Tu, caritatis victima, Petis, Redemptor, Golgotham; Tuis inhaerens gressibus, Tecum peropto commori. |
Dear Jesus, Thou dost go to die For very love of me; Ah, let me bear Thee company, I to die with Thee. |
|
|
|
|
Statio X Iesus vestibus spoliatur |
Tenth Station Jesus Is Stripped of His Garments |
|
V. Adoramus te, Christe, et benedicimus tibi. R. Quia per sanctam crucem tuam redemisti mundum. |
V. We adore Thee, O Christ, and we praise Thee. R. Because by Thy holy Cross Thou hast redeemed the world. |
| Considera quam violenter Iesus vestimentis suis spolietur. Cum enim vestis interior arcte carni flagellis dilaniatae adhaereret, carnifices, avellendo vestem, cutem ei quoque avellunt. Subeat te commiseratio Domini tui, eumque sic alloquere: | Consider the violence with which the executioners stripped Jesus. His inner garments adhered to His torn flesh, and they dragged them off so roughly that the skin came with them. Compassionate your Savior thus cruelly treated, and say to Him: |
| INNOCENTISSIME Iesu, per meritum doloris quem inter hanc spoliationem passus es, adiuva me, precor, ut omnem in res creatas affectum exuam, et tota voluntatis meae inclinatione ad te solum convertar, qui meo nimis dignus es amore. Amo te ex toto corde meo; paenitet me quod tibi displicui; ne sinas me iterum tibi displicere. Da mihi perpetuum amorem tui, et dein fac de me quidquid tibi placuerit. | MY innocent Jesus, by the merits of the torments Thou hast felt, help me to strip myself of all affection to things of earth, in order that I may place all my love in Thee, Who art so worthy of my love. I love Thee, O Jesus, with my whole heart. I repent of having offended Thee. Never permit me to offend Thee again. Grant that I may love Thee always, and then do with me what Thou wilt. |
| Pater, Ave, Gloria. | Our Father, Hail Mary, Glory Be. |
|
Tu, caritatis victima, Petis, Redemptor, Golgotham; Tuis inhaerens gressibus, Tecum peropto commori. |
Dear Jesus, Thou dost go to die For very love of me; Ah, let me bear Thee company, I to die with Thee. |
|
|
|
|
Statio XI Iesus clavis affigitur cruci |
Eleventh Station Jesus Is Nailed to the Cross |
|
V. Adoramus te, Christe, et benedicimus tibi. R. Quia per sanctam crucem tuam redemisti mundum. |
V. We adore Thee, O Christ, and we praise Thee. R. Because by Thy holy Cross Thou hast redeemed the world. |
| Considera quomodo Iesus in crucem coniciatur, et extensis brachiis, vitam suam in sacrificium pro nostra salute aeterno Patri offerat. Carnifices clavis eum affigunt, dein erigunt crucem, et infami patibulo suffixum saevae morti permittunt. | Consider how Jesus, after being thrown on the Cross, extended His hands, and offered to His Eternal Father the sacrifice of His life for our salvation.  Amo te magis quam meipsum; paenitet me quod tibi displicui: ne permittas me iterum tibi displicere. Da mihi perpetuum amorem tui, et dein fac de me quidquid tibi placuerit. | MY Jesus!, loaded with contempt, nail my heart to Thy feet, that it may ever remain there, to love Thee, and never quit Thee again. I love Thee more than myself. I repent of having offended Thee. Never permit me to offend Thee again. Grant that I may love Thee always, and then do with me what Thou wilt. |
| Pater, Ave, Gloria. | Our Father, Hail Mary, Glory Be. |
|
Tu, caritatis victima, Petis, Redemptor, Golgotham; Tuis inhaerens gressibus, Tecum peropto commori. |
Dear Jesus, Thou dost go to die For very love of me; Ah, let me bear Thee company, I to die with Thee. |
|
|
|
|
Statio XII Iesus moritur in cruce |
Twelfth Station Jesus Dies on the Cross |
|
V. Adoramus te, Christe, et benedicimus tibi. R. Quia per sanctam crucem tuam redemisti mundum. |
V. We adore Thee, O Christ, and we praise Thee. R. Because by Thy holy Cross Thou hast redeemed the world. |
| Considera tuum cruci suffixum Iesum, qui post trium horarum cum morte luctam, doloribus tandem consumptus addicit corpus morti, et inclinato capite emittit spiritum. | Consider how thy Jesus, after three hours of agony on the Cross, consumed at length with anguish, abandons Himself to the weight of His Body, bows His Head, and dies. |
| O mortue Iesu, exosculor, pietatis sensu intime commotus, hanc crucem in qua tu, mei causa, vitae tuae finem implevisti. Ob commissa peccata infelicem mihi mortem promerui; sed mors tua est spes mea. Per mortis tuae merita, concede mihi precor, ut in amplexu pedum tuorum extremum spiritum, tui amore flagrans, aliquando reddam. In manus tuas commendo spiritum meum. Amo te ex toto corde meo; paenitet me quod tibi displicui: ne sinas me iterum tibi displicere. Da mihi perpetuum amorem tui, et dein fac de me quidquid tibi placuerit. | O my dying Jesus, I kiss devoutly the Cross on which Thou did die for love of me.  I love Thee with my whole heart; I repent of having offended Thee. Never permit me to offend Thee again. Grant that I may love Thee always, and then do with me what Thou wilt. |
| Pater, Ave, Gloria. | Our Father, Hail Mary, Glory Be. |
|
Tu, caritatis victima, Petis, Redemptor, Golgotham; Tuis inhaerens gressibus, Tecum peropto commori. |
Dear Jesus, Thou dost go to die For very love of me; Ah, let me bear Thee company, I to die with Thee. |
|
|
|
|
Statio XIII Iesus deponitur de cruce |
Thirteenth Station Jesus is Taken Down from the Cross |
|
V. Adoramus te, Christe, et benedicimus tibi. R. Quia per sanctam crucem tuam redemisti mundum. |
V. We adore Thee, O Christ, and we praise Thee. R. Because by Thy holy Cross Thou hast redeemed the world. |
| Considera quomodo duo ex Iesu discipulis, Iosephus nempe et Nicodemus, eum exanimatum de cruce tollant et inter brachia perdolentis Matris reponant, quae mortuum Filium peramanter recipit et arcte complectitur. | Consider how, after the death of our Lord, two of His disciples, Joseph and Nicodemus, took Him down from the Cross, and placed Him in the arms of His afflicted Mother, who received Him with unutterable tenderness, and pressed Him to her bosom. |
| O moerens Mater, per amorem quo Filium tuum amas, accipe me in servum tuum et precare eum pro me. Tu vero, o mi Redemptor, quoniam pro me mortuus es, fac benigne ut amem te; te enim solum volo, nec extra te aliud quidpiam mihi opto. Amo te, o mi Iesu, paenitet me quod tibi displicui: ne sinas me iterum tibi displicere. Da mihi perpetuum amorem tui, et dein fac de me quidquid tibi placuerit. | O Mother of Sorrows, for the love of this Son, accept me for thy servant, and pray to Him for me. And Thou, my Redeemer, since Thou hast died for me, permit me to love Thee; for I wish but Thee and nothing more. I love Thee, my Jesus, and I repent of having offended Thee. Never permit me to offend Thee again. Grant that I may love Thee always, and then do with me what Thou wilt. |
| Pater, Ave, Gloria. | Our Father, Hail Mary, Glory Be. |
|
Tu, caritatis victima, Petis, Redemptor, Golgotham; Tuis inhaerens gressibus, Tecum peropto commori. |
Dear Jesus, Thou dost go to die For very love of me; Ah, let me bear Thee company, I to die with Thee. |
|
|
|
|
Statio XIV Iesus sepulcro conditur |
Fourteenth Station Jesus Is Placed in the Sepulcher |
|
V. Adoramus te, Christe, et benedicimus tibi. R. Quia per sanctam crucem tuam redemisti mundum. |
V. We adore Thee, O Christ, and we praise Thee. R. Because by Thy holy Cross Thou hast redeemed the world. |
| Considera quomodo discipuli exanimem Redemptorem ad locum sepulturae deferant. Moerens Mater eos comitatur, et propriis manibus corpus Filii sepulturae accommodat. Sepulchrum dein occluditur, et omnes a loco recedunt. | Consider how the disciples carried the body of Jesus to bury it, accompanied by His holy Mother who arranged it in the sepulcher with her own hands. They then closed the tomb, and all withdrew. |
| O sepulte Iesu, exosculor hunc, qui te recondit, lapidem; sed post triduum ex sepulcro resurges. Per tuam resurrectionem fac me, precor, extremo die gloriosum tecum resurgere, et venire in caelum, ubi tecum semper coniunctus, te laudabo et in aeternum amabo. Amo te, et doleo quod tibi displicui: ne sinas me iterum tibi displicere. Da mihi perpetuum amorem tui, et dein fac de me quidquid tibi placuerit. | AH, my buried Jesus, I kiss the stone that encloses Thee. But Thou didst rise again the third day. I beseech Thee by Thy resurrection, make me rise glorious with Thee at the last day, to be always united with Thee in Heaven, to praise Thee and love Thee forever. I love Thee, and I repent of having offended Thee. Never permit me to offend Thee again. Grant that I may love Thee always, and then do with me what Thou wilt. |
| Pater, Ave, Gloria. | Our Father, Hail Mary, Glory Be. |
|
Tu, caritatis victima, Petis, Redemptor, Golgotham; Tuis inhaerens gressibus, Tecum peropto commori. |
Dear Jesus, Thou dost go to die For very love of me; Ah, let me bear Thee company, I wish to die with Thee. |


post_title: Documentation
author: Claudius Weinberger
post_excerpt: ""
layout: page
permalink: /documentation
dsq_thread_id:
- ""
---
- First Steps We will help you to get a quick impression what ArangoDB stands for. Get familiar with the open-source multi-purpose database and all of its features.
quickstart
- ManualThe documentation for the current release. You can read the manual online or download the pdf.
onlinepdf
- Whats new in ArangoDB Explore the new Features and improvements in the current version of ArangoDB in detail.
read more
- InstallationFollow the instructions on this high-level guide to install ArangoDB for Mac OS X, Windows and several Linux- versions under apache 2 lincense.
install ArangoDB
- Upgrading ArangoDB Upgrade your ArangoDB to the newest version. If you are running an older version, please follow the instructions given.
read more
- Set up your Cluster Setting up a cluster can be an intimidating task. With our How-To you can set up your own ArangoDB cluster easily
set up
- DriversHere you will find all drivers. Note: Many drivers are developed by the community. We welcome every developing-notes and requests.
find the right driver
- The way to future Planed Features for the next releases.
read more
Note: Our bug tracker is on Github, feel free to open tickets!
In the meantime: in case you have questions, don't hesitate and contact us - for options see the community page.
@fceller. We've also a "generic" twitter account mainly for announcements called @arangodb You can also subscribe to a low traffic announcement list on the connect page.
The documentation for previous, now outdated releases of ArangoDB can be found here:


JUEL is an implementation of the Unified Expression Language (EL), specified as part of the JSP 2.1 standard (JSR-245), which has been introduced in JEE5. Additionally, JUEL 2.2 implements the latest maintenance releases 1 and 2 for full JEE6 compliance.
JUEL is licensed under the Apache License 2.


{% extends "email/html_email_base.html" %} {% load barsys_helpers %} {% block main_content %}
Hello, {{ recipient.display_name }}!
This is a payment reminder from {{ pybarsys_preferences.EMAIL.NAME_OF_BAR }}.
Your current account balance is: {{ recipient.account_balance|currency }}
If your account balance is below {{ pybarsys_preferences.Misc.BALANCE_BELOW_TRANSFER_MONEY|currency }}, please transfer money to the following bank account:
{% include "./bank_account_details.html.html" %}If you have any questions, feel free to contact {{ pybarsys_preferences.EMAIL.CONTACT_EMAIL }}.
Have a nice day!
{% endblock %} {% block footer %} This mail was automatically generated by pybarsys. {% endblock %}


{% seo %}
Hao-Wen Dong, Wen-Yi Hsiao, Li-Chia Yang, Yi-Hsuan Yang
Music and Audio Computing Lab Research Center for IT Innovation Academia Sinica
View project on GitHub
Learn more about MACLab


L O A D I N G
Get started with the
GPostCard!
Type in the text for your postcard.
Tick the location checkbox if you want to share your travels!
We will generate a perfect postcard for you. You just need to SEND it!
Tick to share location
Submit


In this post I have gathered various tips and tricks that can make you a more productive SSH user.
Copying SSH keys to the server
A lot of beginners when faced with the problem of uploading their public keys to the server, follows a manual process. I will demonstrate this, by trying to upload my public key to a Raspberry PI manually:
Now I can connect to Raspberry PI using my private key:
I was lucky - in my case everything worked, but often it doesn’t.
The main culprit is usually a wrong access permission set either on .ssh
directory
or on authorized_keys
file.
Here is how the right permissions should look like:
PROs do not think about permissions, nor they manually edit authorized_keys
file.
Instead they use ssh-copy-id
util (a part of the official SSH distribution).
One nice thing about ssh-copy-id
is that it always uploads the public key,
even if you (like I in the above example) specify private key file on the command line.
Keys management
ssh-add
is a nice utility that manages currently active (loaded) private keys.
Loaded keys can be automatically used for authentication.
To load a key type:
Or just ssh-add
to load id_rsa
.
To list currently loaded keys:
To remove all keys:
When you connect to a remote machine you have an option to pass your currently loaded keys along. This is called ssh agent forwarding and allows you to ssh into further machines using your private keys:
For example without key forwarding I cannot log from my Raspberry PI into my PC:
With key forwarding enabled (-A
) I can:
WARNING: You should only use forwarding when logging into servers that
you fully trust (see man ssh
for details).
TIP: With the power of ssh-add
there is no reason to have a key without password protection.
Remember to password protect all your keys. Always!
Using ~/.ssh/config
Sometimes your user name is too long or hard to remember or maybe the server name is
or maybe your server uses a non-standard SSH port. Any of these can make typing the right ssh command
in the terminal very hard. But there is a nice solution to this,
we just need to add an entry for our server to ~/.ssh/config
file.
For example for my Raspberry PI computer I added the following entry:
Now I can ssh into it by simply typing:
Copying files
scp
command may be used to copy files, both from a server to the local machine:
Or from the local machine to the server:
TIP: If are going to transfer a big file remember to gzip
it first.
For more complex scenarios we can use either sftp
command:
or use command line file manager like mc
(Midnight Commander):
- Press
F9
to select menu bar andR
to expandRight
menu. - Select
SFTP link...
- Enter the connection URL:
And then you may use standard mc
commands to copy/move/modify files
on the server and the local machine.
To exit SFTP mode just enter ..
in the top directory to which you sftp
ed.
Port forwarding
Let’s say that there there is a service running on my Raspberry PI that is accessible only
via localhost
. For example it can be a simple web server:
Because server is listening only on <IP_ADDRESS>
instead of <IP_ADDRESS>
,
we cannot access it from outside of my Raspberry PI:
To access the server we may e.g. forward connections to port 5432 on my laptop to port 7777 on pi (this is called tunneling or port forwarding). We can do this using SSH:
The general syntax is -L local-machine:local-port:remote-machine:remote-port
.
Notice that for the remote-machine
we have chosen localhost
, but we could e.g.
chose other computer to which pi
can connect.
local-machine
part can be omitted (localhost
is the default).
If you don’t need the SSH session only the tunnel, you can run ssh
as a background task
(this will not be a shell background task, so it will not show up in bg
command):
Port forwarding can also work in the opposite direction. We may make a service running on my laptop accessible on Raspberry PI:
Here syntax is -R remote-machine:remote-port:local-machine:local-port
.
Connections to remote-machine:remote-port
are forwarded to local-machine:local-port
.
By default the open ports are available on localhost
only (think security!).
If you want to accept connections from outside, you need to change
GatewayPorts
settings of sshd daemon to yes
on the server (the machine to which you connect to):
Now we can make pi
accept connection from the entire local network and
forward them to my laptop:
TIP: The single quotes are needed to prevent shell expansion of *
.
Providing internet connection via SSH
Say on your local machine you cannot access e.g. facebook.com
for some strange reason.
But you noticed that on a certain server there is no such restriction,
and you can e.g. use links
to browse facebook.com
:
Since FB does not looks good in links
you really need a better solution…
Behold, SSH comes to the rescue. By using a dynamic port forwarding we may establish SOCKS tunnel to the server:
-C
is for compression, 1080
is the standard SOCKS port.
Now we need to configure a browser. Firefox is well known for excellent SOCKS support:
And voilà facebook.com
is working again!
A trick like this was very popular when I was living in a dormitory. Our dorm internet connection was very slow, but as CS students we had SSH access to a few servers, some of them with very fast internet connections…
X Forwarding
Here I will explain how to do this on MacOS. First we need to install XQuartz, which is X11 port for MacOS:
Next we need to start XQuartz.app (it will only show in the dock).
Now we must enable X11 forwarding support on Raspberry PI:
And finally we can start our X session:
Now when I typed vlc
a VLC window popped up on my laptop.
The resolution isn’t great (it would look native if I used X11 port forwarding on Linux),
this is due to poor retina display support in XQuartz. But still it works:
Tmux session manager
Sometimes you want to leave some program running on the server even if you close
you SSH connection. Or maybe you are doing something important, e.g. devops stuff and
you want to make sure that the command you are executing will not be interrupted.
For cases like this (…and for hacker movie lovers) terminal multiplexers where invented.
The two most popular ones are screen
and tmux
.
Here I will shortly explain what tmux
is.
Generally tmux
deserves its own blog post,
fortunately for me this post is already written.
Here I will only show you one single use-case, just to give you the taste what tmux
is all about.
Let’s connect to Raspberry PI and start vi
inside tmux
session:
Next I will perform some manual intervention (the physical connection got busted):
My SSH session on my laptop hanged so I had to kill it with pkill ssh
.
Now after I fixed the Ethernet connection and reconnected to pi
I can execute tmux ls
and see my previous
session:
Let’s attach tmux to this session:
Looks like after attaching I could recover all my previous work!
WARNING: tmux
session will not survive the server restart. Make sure that the server
will not be restarted while running important computations within tmux
.
Congrats! Now you are SSH PRO!
References
- https://www.cyberciti.biz/faq/create-ssh-config-file-on-linux-unix/
- http://www.trembath.co.za/mctutorial.html
- https://phoenixnap.com/kb/ssh-port-forwarding
- https://help.ubuntu.com/community/SSH/OpenSSH/PortForwarding
- https://linuxize.com/post/how-to-setup-ssh-socks-tunnel-for-private-browsing/
- https://unix.stackexchange.com/a/46748


| Home | Trees | Indices | Help |
|
|---|
|
|
gluon.tools.Auth --+ | AuthS3
S3 extensions of the gluon.tools.Auth class
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|
Initialise parent class & make any necessary modifications |
|
to be called unless tables are defined manually usages: # defines all needed tables and table files # UUID + "_auth_user.table", ... auth.define_tables() # defines all needed tables and table files # "myprefix_auth_user.table", ... auth.define_tables(migrate="myprefix_") # defines all needed tables without migration/table files auth.define_tables(migrate=False) |
Logs user in
|
Set a Cookie to the client browser so that we know this user has registered & so we should present them with a login form instead of a register form |
Overrides Web2Py's login() to use custom flash styles & utcnow
|
Overrides Web2Py's register() to add new functionality:
|
S3 framework function Designed to be used as an onaccept callback for register() Whenever someone registers, it:
|
Links user accounts to person registry entries Policy for linking to pre-existing person records: If and only if:
otherwise:
|
Returns the Approver for a new Registration & the organisation_id field |
action user to verify the registration email, XXXXXXXXXXXXXXXX .. method:: Auth.verify_email([next=DEFAULT [, onvalidation=DEFAULT [, onaccept=DEFAULT [, log=DEFAULT]]]]) |
Updates the staff's memberships of the roles associated with the organisation and/or site instance record which the staff is a component of Called from onaccept & ondelete |
Returns the prefix, resource and id which a site refers to To Do: Should this functionality be shifted to the super entity code? (But then can't be visible from Auth) |
Check whether the user is currently logged-in - tries Basic if not |
Check whether the currently logged-in user has a role
|
Get a list of members of a group
|
Get the person_id for a given user_id
Note: unsafe method - do not expose to users |
Get the user_id for a given person_id
Note: unsafe method - do not expose to users |
Get the person record ID for the current logged-in user |
S3 framework function to define whether a user can access a record in manner "method" Designed to be called from the RESTlike controller
Note: This is planned to be rewritten: http://eden.sahanafoundation.org/wiki/BluePrintAuthorization |
Returns a query with all accessible records for the current logged in user Note: This method does not work on GAE because it uses JOIN and IN |
Checks if user is member of group_id or role Extends Web2Py's requires_membership() to add new functionality:
|
Checks if user is member of group_id or role Extends Web2Py's requires_membership() to add new functionality:
|
Decorator that prevents access to action if not logged in or if user logged in is not a member of group_id. If role is provided instead of group_id then the group_id is calculated. Extends Web2Py's requires_membership() to add new functionality:
|
Decorator that prevents access to action if not logged in or if user logged in is not a member of group_id. If role is provided instead of group_id then the group_id is calculated. Extends Web2Py's requires_membership() to add new functionality:
|
Back-end method to create roles with ACLs |
Back-end method to update an ACL |
Makes the current session owner of this record |
Checks whether the current session owns a record |
| Home | Trees | Indices | Help |
|
|---|
| Generated by Epydoc 3.0.1 on Tue Mar 29 14:25:41 2011 | http://epydoc.sourceforge.net |


Bound List Test
Test 'boundList' option using various combinations of values. This should
be converted to a unit test once the testing framework is updated.
The behavior should be:
-
Red Pepper should be selected on initial load (configured with selected
=== true)
-
Rebind should result in Red Pepper & Squash selected (configured with
selected === true)
-
List should stay in sync with selected areas except for where
Issue #378
comes in to play.
- List should display and sync regardless of value of isSelectable
Single Select:
IsSelectable:
Selected Keys:


Tom Herman Is Under Fire For Texas’ Performance vs. Baylor
by Andrew HolleranTom Herman and the Texas Longhorns are currently staring down a 5-loss season, as they’re getting blown out by No. 13 Baylor in the fourth quarter.
This was supposed to be a step-up season for Texas. The Longhorns opened the year with legitimate Big 12 title and College Football Playoff hopes.
Texas has since gone on to lose four of its first 10 games. A fifth loss is coming this evening.
Herman was viewed as a great hire for a Texas program in need of a boost back to the nationally elite level. The Longhorns went 10-4 last season, finishing the year with a Sugar Bowl win vs. Georgia. Quarterback Sam Ehlinger told the fan base Texas was “back.”
Now, the fan base is growing impatient.
“Herman has always had the benefit of the doubt because he never got blown out like Charlie Strong. Well — he’s getting blown out today,” one fan wrote.
Herman will almost certainly get another year or two at Texas, but it’s obvious that he’s starting lose some of the Longhorns’ fan base.
Texas will finish the regular season next week against Texas Tech. The Longhorns should win that one, finishing the regular season at a highly disappointing 7-5.


file parameter can be used multiple times.
Each accepts a file location, which must be reachable through XHR.
With multiple file parameters, you can load more than one map.
mode parameter can be used to set one of the three different modes:
Single will only show the first imported files
Delta will show the first two imported files
Multiple will show all imported files aggregated together in one map


I'm A Celebrity fans baffled by Andrew Maxwell's Speedos
He strutted his stuff!
by Rebecca CarterViewers of I'm A Celebrity have been left distracted by Andrew Maxwell's Speedos.
The comedian showed off his bod as he took a shower in the Aussie jungle during Wednesday night's episode.
The star was sporting a pair of blue and white striped Speedos and fans found themselves unable to look away.
Read more: I'm A Celebrity: Roman Kemp and Adele Roberts' spat over Jane McDonald
One person said: "Is anyone going to talk about what Andrew is wearing?"
Another wrote: "I don’t know what’s worse, watching someone eat a fish eyeball or seeing Andrew in them speedo’s."
A third tweeted: "What were those budgie smugglers Andrew was wearing."
Read more: Bookies predict Jacqueline Jossa will win this year's I'm A Celebrity
Earlier in the show, Andrew tried to make peace with campmate Jacqueline Jossa after they clashed.
Speaking about not putting pressure on each other when it comes to the Bushtucker trials, Jacqueline said: "I was panicking so much yesterday and it didn't make it better people going if you don't even try we're going to get nothing.
"That doesn't make it better. It makes it ten times worse. In fact it made me want to go I'm not doing it. If someone can't do it, they can't do it."
Read more: I'm A Celebrity viewers elated as Cliff Parisi and Andy Whyment announced as new campmates
Andrew cut in: "Was that was me you were talking about?" to which Jacqueline confirmed it was.
He said: "I'd just been through a really horrific thing but I didn't want to put pressure on you.
"I won't do that again. We're all still learning on the job."
Leave us a comment on our Facebook page @EntertainmentDailyFix and let us know what you think of this story.


About Me
Portfolio
Contact
My Transparency
"She Remembered Who She Was, and The Game Changed" - Lalah Deliah
About Me
Project Design
Contact Me


|
Another Game of Life
Cross-platform visual Game of Life
|
Displays manager. More...
#include <Renderer.hpp>
Public Member Functions | |
| Renderer () | |
| Default constructor. More... | |
| Renderer (agof::Board &board) | |
| Parametric construtor. More... | |
| int | display (bool nox) |
| Start the display and the IO handling. More... | |
Displays manager.
Represent visually the Game of Life, in a X or X-less environment.
| agof::Graphics::Renderer::Renderer | ( | ) |
Default constructor.
Generates a new board.
| agof::Graphics::Renderer::Renderer | ( | agof::Board & | board | ) |
Parametric construtor.
Uses and mutates the given board.
| int agof::Graphics::Renderer::display | ( | bool | nox | ) |
Start the display and the IO handling.
Starts either a graphic windows or a terminal-only representation of the Game of Life.


Match Play. Red trails 3-5 to 7. How should Red play 65?
pips Red=106 White=90
(CorrectAnswer= 0/0, ErrorScore= 0)
All the plays are very close here and an initial evaluation give 20/9 as the best play. However, a long rollout has 20/15, 7/1 as the top move. 20/15 puts pressure on White’s 15-pt whereas 20/9 takes the pressure off. That difference, coupled with Red’s strong home board swings the answer to 20/15, 7/1.
Note that 7/1, 6/1 is the wrong idea. In the event of a hit Red will need his strong home board.
Note that 7/1, 6/1 is the wrong idea. In the event of a hit Red will need his strong home board.
1. Cubeful 2-ply 18/7 Eq.: -0.094 0.445 0.055 0.001 - 0.555 0.039 0.001 2. Cubeful 2-ply 20/14 7/2 Eq.: -0.102 (-0.007) 0.435 0.047 0.001 - 0.565 0.033 0.001 3. Cubeful 2-ply 20/9 Eq.: -0.110 (-0.015) 0.444 0.034 0.001 - 0.556 0.015 0.000 4. Cubeful 2-ply 20/15 7/1 Eq.: -0.114 (-0.019) 0.431 0.060 0.001 - 0.569 0.044 0.001 5. Cubeful 2-ply 7/1 6/1 Eq.: -0.218 (-0.123) 0.407 0.036 0.000 - 0.593 0.051 0.001


Lindenmayer's L-System
Trees
Tree 1
Tree 2
Tree 3
Tree 4
Leaves
Leaf 1
Leaf 2
Flowers
Flower 1
Flower 2
Flower 3


Tribute Page
The page is tributed to Lady Ada Lovelace. She is one of the first programmer in the world.
View ProjectI'm a software professional having around 2.5 years of experience in software requirements gathering/development/design (including client-server/n-tier architecture) using .NET Technologies (C#, ASP.NET) 2.0/3.5/4.0, ASP.Net, AJAX Toolkit, SQL Server 2008 R2/2012.
Key areas of work have been on Microsoft technologies using Visual Studio.NET, with extensive exposure to Web technologies with ASP.Net, C#, JavaScript and HTML.
Apart from this experience, I have also worked with xVSCreations for 1.5 years as a Frelance Web Developer during my college time.
The education was mainly C programming based, but I also learned about SQL, PHP, ASP.Net, C#, UML and more. During my time in college, I specialized in multimedia. Here I learned about web development -the importance of OOP and design.
I have built many projects during my college time, such as:
I started working as an ASP.Net/C# developer. I have worked on the complex web/desktop applications, custom CMS based on the Microsoft environment and used the MS SQL, MySQL and SQLite databases as per the applications.
I have developed the Restful Web APIs for the Web & Mobile Applications for managing the applications from all the available platforms. Use of the ArcGIS for the maps with reports and data.
Tribute Page
The page is tributed to Lady Ada Lovelace. She is one of the first programmer in the world.
View ProjectSurvey Form
The survey form is used to collect the details of the professionals.
View ProjectProduct Landing Page
The product landing page details about the Big Bug Bunny movie.
View ProjectTechnical Documentation Page
The techical documents describes about the React JS library.
View Project


MiniWebSrv test page
Zip archive source test
The following images are served from a zip file.
All images are from
openclipart.org
.
GET test
Text:
Submit
POST test
File:
Text:
TextArea:
Submit
WebSocket test
Press Connect
Message:


A CHIP-8 interpreter written in Go and compiled to WebAssembly. Choose a ROM and press 'Start' to play!


Toggle nav
Collection of small and useful applications for Asterisk. Try it now!
Least cost router for asterisk. Simlple configuration with web-interface.
View details »
Fast voice speed dial for Asterisk. Call number by voice.
Find operator and region by code of number (only for Russia)
Create AGI server for Asterisk fast!
Write Asterisk dialplan on JavaScript. It's so simple.
Follow @antirek
Read Node.js and Asterisk


Charlotte's Web
Home
(current)
Books
All books
All books from author
All books from genre
All books from theme
Our favourite
Best Sellers
Events
All events
All this month events
Authors
Info
Ordering and Shopping Info
FAQ
Contacts
Your Shopping Cart
Image
Details
Price
Quantity
Remove
Subtotal
Total
Checkout
Continue Shopping


In TheyBuyForYou we have been working on a layered architecture of data services, ontologies, core APIs and tools that allows different levels of access and use of our procurement knowledge graph.
A layer-based architecture allows separating the different services so that most of the interaction occurs only between adjacent layers and any change in a technology does not affect the rest of the services. As shown in the figure "Tech Stack", five main layers have been defined, those corresponding to data, tools, schemas, core APIs and added-value services that will be explained below.
Tech Stack
High-level Architecture
Data
This bottom layer contains the data that feeds both, the knowledge graph and the document database. The knowledge graph data is obtained from the OpenOpps and OpenCorporates datasets and, through the data ingestion tool, they are transformed into RDF format.
TBFY Knowledge Graph (KG)
Document repository
Database that contains the set of legal documents indexed form Harvester.
Schemas
This layer contains the vocabularies of our domain. These vocabularies are the intermediaries that get the knowledge graph to be understood with tools like SPARQL GUI or R4R.
TBFY ontology
The TBFY ontology imports the OCDS ontology (for procurement data) and the euBusinessGraph ontology (for company data). In addition, it contains a few extensions in order to represent additional meta information needed for the TBFY KG.
euBusinessGraph ontology
Tools
This layer contains the tools built or used to create the Knowledge Graph and provide access to it. We have to distinguish between tools created specifically for the project (internal) and tools that have not been developed specifically for this project but have been used (external). Among the types of tools, there are those tools that feed databases to those ones that query the TheyBuyForYou SPARQL endpoint.
Internal
Harvester
Harvester downloads articles and legal documents from public procurement sources (OpenOpps, JRC-Acquis or TED) and indexes them into SOLR to allow performing complex queries and visualising results through Banana.
R4R
It allows building and deploying RESTful services from SPARQL queries. The core API uses it to browse the TBFY knowledge graph.
KG data ingestion pipeline
Data ingestion pipeline downloads OCDS releases in JSON format and reconciled supplier-company records in JSON format, enriches and transforms the data to RDF (using RML), and publishes the data to the TBFY KG database.
External
SPARQL GUI for TBFY KG
It uses YASGUI (Yet Another SPARQL GUI) as a web application to query any SPARQL endpoint.
OptiqueVQS
core APIs
This layer contains the set of core APIs built or used in the project. We have to distinguish between APIs created specifically for the project (internal) and tools that have not been developed specifically for this project but have been used (external). These core APIs are implemented with the basic resources to extract information from the knowledge graph, from the document repository or even from external data sources.
internal
knowledge graph API
Public procurement OCDS API
external
OpenCorporates companies API
OpenCorporates companies API provides access to data about 135 million companies from primary public sources.
OpenCorporates reconciliation API
OpenCorporates reconciliation API allows OpenRefine users to match company names to legal corporate entities getting more information about companies.
OpenOpps API
OpenOpps API provides access to tender and contract data from a range of European government bodies, formatting according to OCDS.
librAIry API
Wikifier Web Service
Wikifier takes a text document as input and annotates it with links to relevant Wikipedia concepts.
Spend Network’s Classification tool
The classification tool is an advanced classifier to add multiple labels to procurement notices based on the Common Procurement Vocabulary, or CPV. This classifier gives notices five, scored, Level 3 CPV codes based on their text and description.
Added-value services
In this top layer we find non-basic services and tools, which go beyond standard ones and have extended features and add-ons to basic core functions.
API Gateway
search API
Storytelling
Suppliers notebook
Organisation comparison notebook
Streamstory
Anomaly detection
Average payment period to suppliers
Average Payment Period to suppliers is an indicator that measures the delay in the payment of commercial debts in economic terms for entities associated to the Zaragoza city council.
COPIN (COmpra Pública INclusiva)
COPIN (COmpra Pública INclusiva) aims at providing better understanding on how public administrations specify and evaluate public tenders.
Online KG data comparison tool
It provides, through a web interface, the analysis of tender and award data, extracted from the Knowledge Graph through the core API and Search API.


Accents Companion App
The Accents Companion App
Unique accented sticking patterns for practicing dynamics and control.Generate a new pattern on the go on your phone by adding it to your home screen.
Go to the app
Worksheets
Get all the basic permutations for a set signature in one place.Go to worksheets
Worksheets map


4.4. Fission¶
While fission is treated as a single reaction in both ENDF and GND, in reality it is composed of many different reactions each of which produces a different set of outgoing particles. Fission poses a special challenge for GND since, unlike most other reactions, we cannot explicitly list all the outgoing products. Instead we list average values for outgoing neutrons and gammas, and ignore the fission fragments (except to give the average energy deposited in them).
A neutron-induced fission channel generally contains several outgoing products:
- A prompt neutron
- One or more delayed neutrons, and
- Prompt gammas
In each case the multiplicity is generally a function of incident energy.
4.4.1. First, second, third chance, ...¶
For most evaluations in major libraries, total fission (MT=18) contains a full description of the cross section,
product multiplicities and distributions. Additional fission cross sections like first-chance, 2nd-chance, etc.
are often also listed, but do not contain any description of outgoing products.
GND (and Fudge) handle these with the fissionComponent
container, which contains a cross section
and Q-value but not necessarily a list of products.
4.4.2. The cross section¶
Fission cross sections behave like all other reaction cross sections. For non-threshold fissioners, part of the cross section is typically described by resonance parameters, so the cross section requires reconstruction.
4.4.3. nubar¶
The average neutron multiplicity ‘nubar’ is stored as the multiplicity of outgoing fission neutrons.
Nubar is typically separated into two components: ‘prompt’, for neutrons produced during the fission process,
and ‘delayed’ for beta-delayed neutrons emitted by the fission fragments.
Evaluations typically contain multiple delayed fission neutrons, grouped by the average beta-decay lifetime of
the parent fission products. The ENDF-6 format only supports storing a single delayed nubar, so in GND
we typically see multiple delayed neutrons with multiplicities that link back to the first delayed neutron using
the reference
multiplicity class.
4.4.4. PFNS¶
The prompt fission neutron spectrum (PFNS) is stored within the distribution
information for the prompt neutron
product. All existing evaluations make the assumption that the outgoing angles and energies are uncoupled (or only
weakly coupled), and can be represented using uncorrelated
energy and angle distributions.
The angular distribution is typically isotropic
in the laboratory frame.
The outgoing energy distribution can be stored in several different ways:
- XYs2d (i.e. a point-wise P(E’ | E) distribution)
- Watt spectrum
- Simple Maxwellian fission spectrum
- Madland-Nix model
Some evaluations (notably Th232 in ENDF-VII.1 and ENDF-VIII-beta4) use a double-differential energy-angle distribution for the PFNS, with a Legendre expansion given for each combination of incident and outgoing energy.
4.4.5. Gammas¶
TBD: expand documentation


- 所有已实现的接口:
- java.util.Comparator<ShardRouting>
public abstract class PriorityComparator
extends java.lang.Object
implements java.util.Comparator<ShardRouting>
A comparator that compares ShardRouting based on it's indexes priority (index.priority),
it's creation date (index.creation_date), or eventually by it's index name in reverse order.
We try to recover first shards from an index with the highest priority, if that's the same
we try to compare the timestamp the index is created and pick the newer first (time-based indices,
here the newer indices matter more). If even that is the same, we compare the index name which is useful
if the date is baked into the index name. ie logstash-2015.05.03.


Histogram only parameters:
Min value for bins, x-axis:
Max value for bins, x-axis:
# of bins:
Common parameters:
Step 1:
Which visualization?
timeseries
histogram
table
Trends plot (of x/y line/scatter plot)
Step 2:
Which parameters?
Step 2b (timeseries, trend, x/y plots only):
Which parameter as timestamp or x?
Step 2c (timeseries only):
What timestamp format?
seconds since epoch
milliseconds since epoch
custom date format (defaults to ISO8601)
Step 3:


No curation and no tricks, just beautifully justified images.
Demo
The demo below consists of a shuffled set of images with differing sizes and aspect ratios. Each page load shuffles the order and resizing the browser window will adjust the gallery layout seamlessly.
Installation
Using npm:
npm install --save react-grid-gallery
Quick (and dirty) Start
import React from 'react'; import { render } from 'react-dom'; import Gallery from 'react-grid-gallery'; const IMAGES = [{ src: "https://c2.staticflickr.com/9/8817/28973449265_07e3aa5d2e_b.jpg", thumbnail: "https://c2.staticflickr.com/9/8817/28973449265_07e3aa5d2e_n.jpg", thumbnailWidth: 320, thumbnailHeight: 174, caption: "After Rain (Jeshu John - designerspics.com)" }, { src: "https://c2.staticflickr.com/9/8356/28897120681_3b2c0f43e0_b.jpg", thumbnail: "https://c2.staticflickr.com/9/8356/28897120681_3b2c0f43e0_n.jpg", thumbnailWidth: 320, thumbnailHeight: 212, caption: "Boats (Jeshu John - designerspics.com)" }, { src: "https://c4.staticflickr.com/9/8887/28897124891_98c4fdd82b_b.jpg", thumbnail: "https://c4.staticflickr.com/9/8887/28897124891_98c4fdd82b_n.jpg", thumbnailWidth: 320, thumbnailHeight: 212 //look ma, no caption! }] render( <Gallery images={IMAGES}/>, document.getElementById('example-0') );
Image Options
| Property | Type | Default | Description |
|---|---|---|---|
| src | string | undefined | Required. A string referring to any valid image resource (file, url, etc). |
| thumbnail | string | undefined | Required. A string referring to any valid image resource (file, url, etc). |
| thumbnailWidth | number | undefined | Required. Width of the thumbnail image. |
| thumbnailHeight | number | undefined | Required. Height of the thumbnail image. |
| caption | string | undefined | Optional. Image caption. |
| srcset | array | undefined | Optional. Array of srcsets for lightbox. |
Gallery Options
| Property | Type | Default | Description |
|---|---|---|---|
| images | array | undefined | Required. An array of objects containing image properties (see Image Options above). |
| enableImageSelection | bool | true | Optional. Allow images to be selectable. Setting this option to false whilst supplying a non empty selectedImages array will result in those images being permanently selected. |
| selectedImages | array | empty | Optional. An array of image indicies to set as selected upon gallery creation (Note: this selection is permanent if enableImageSelection: false ). |
| onSelectedImagesChange | func | undefined | Optional. Function to execute when selectedImages array changes (i.e. image selection has been updated). Optional arg: selectedImages array. This function is only executable when enableImageSelection: true . |
| rowHeight | number | 180 | Optional. The height of each row in the gallery. |
| margin | number | 2 | Optional. The margin around each image in the gallery. |
| enableLightbox | bool | true | Optional. Enable lightbox display of full size image when thumbnail clicked. |
| onClickThumbnail | func | openLightbox | Optional. Function to execute when gallery thumbnail clicked. Overrides openLightbox. |
Lightbox Options
| Property | Type | Default | Description |
|---|---|---|---|
| backdropClosesModal | bool | false | Optional. Allow users to exit the lightbox by clicking the backdrop. |
| currentImage | number | 0 | Optional. The index of the image to display initially (only relevant when used in conjunction with isOpen: true property). |
| preloadNextImage | bool | true | Optional. Based on the direction the user is navigating, preload the next available image. |
| customControls | array | undefined | Optional. An array of elements to display as custom controls on the top of lightbox. |
| enableKeyboardInput | bool | true | Optional. Supports keyboard input - esc , arrow left , and arrow right . |
| imageCountSeparator | string | ' of ' | Optional. Customize separator in the image count. |
| isOpen | bool | false | Optional. Whether or not the lightbox is displayed when gallery first rendered (can be used in conjunction with currentImage property, otherwise the first image will be diplayed). |
| showCloseButton | bool | true | Optional. Display a close "X" button in top right corner. |
| showImageCount | bool | true | Optional. Display image index, e.g., "3 of 20". |
Using srcset:
images={[{
src: 'http://example.com/example/img1.jpg',
srcset: [
'http://example.com/example/img1_1024.jpg 1024w',
'http://example.com/example/img1_800.jpg 800w',
'http://example.com/example/img1_500.jpg 500w',
'http://example.com/example/img1_320.jpg 320w',
],
thumbnail: 'http://example.com/example/thumbnailImg1.jpg',
caption: "Image 1",
thumbnailWidth: 180,
thumbnailHeight: 320
},
{
src: 'http://example.com/example/img2.jpg',
srcset: [
'http://example.com/example/img2_1024.jpg 1024w',
'http://example.com/example/img2_800.jpg 800w',
'http://example.com/example/img2_500.jpg 500w',
'http://example.com/example/img2_320.jpg 320w',
],
thumbnail: 'http://example.com/example/thumbnailImg2.jpg',
caption: "Image 2",
thumbnailWidth: 240,
thumbnailHeight: 165
}
Read more about the srcset and sizes attributes here: https://ericportis.com/posts/2014/srcset-sizes/.
General Notes
As the inspiration for this component comes from Google Photos, very small thumbnails may not be the most aesthetically pleasing due to the border size applied when selected. A sensible rowHeight default of 180px has been chosen, but rowHeights down to 100px are still reasonable.
Gallery width is determined by the containing element.
Image Options:
thumbnail
can point to the same resource assrc
, bearing in mind the resultant data size of the gallery and page load cost. Thumbnails of whatever size will be scaled to matchrowHeight
.
- If you don't know your
thumbnailWidth
andthumbnailHeight
values, you can find these out using any number of javascript hacks, bearing in mind the load penalty associated with these methods.
License
React Grid Gallery is free to use for personal and commercial projects under the MIT License. Attribution is not required, but appreciated.
Acknowledgements
Visual design inspired by Google Photos.
Thumbnail viewport implementation inspired by GPlusGallery by Florian Maul.
Backend lightbox functionality via React Images by jossmac.
Demo stock photos
Examples
Pre-selected Images
import React from 'react'; import ReactDOM from 'react-dom'; import Gallery from 'react-grid-gallery'; class Demo1 extends React.Component { constructor(props){ super(props); this.state = { images: this.props.images, selected: [3,7,5] }; } render () { return (
 <Gallery images={this.state.images} selectedImages={this.state.selected}/>
 ); } } Demo1.propTypes = { images: React.PropTypes.arrayOf( React.PropTypes.shape({ src: React.PropTypes.string.isRequired, thumbnail: React.PropTypes.string.isRequired, srcset: React.PropTypes.array, caption: React.PropTypes.string, thumbnailWidth: React.PropTypes.number.isRequired, thumbnailHeight: React.PropTypes.number.isRequired }) ).isRequired }; Demo1.defaultProps = { images: shuffleArray([ { src: "https://c5.staticflickr.com/9/8768/28941110956_b05ab588c1_b.jpg", thumbnail: "https://c5.staticflickr.com/9/8768/28941110956_b05ab588c1_n.jpg", thumbnailWidth: 240, thumbnailHeight: 320, caption: "8H (gratisography.com)" }, { src: "https://c3.staticflickr.com/9/8583/28354353794_9f2d08d8c0_b.jpg", thumbnail: "https://c3.staticflickr.com/9/8583/28354353794_9f2d08d8c0_n.jpg", thumbnailWidth: 320, thumbnailHeight: 190, caption: "286H (gratisography.com)" }, { src: "https://c7.staticflickr.com/9/8569/28941134686_d57273d933_b.jpg", thumbnail: "https://c7.staticflickr.com/9/8569/28941134686_d57273d933_n.jpg", thumbnailWidth: 320, thumbnailHeight: 148, caption: "315H (gratisography.com)" }, { src: "https://c6.staticflickr.com/9/8342/28897193381_800db6419e_b.jpg", thumbnail: "https://c6.staticflickr.com/9/8342/28897193381_800db6419e_n.jpg", thumbnailWidth: 320, thumbnailHeight: 213, caption: "201H (gratisography.com)" }, { src: "https://c2.staticflickr.com/9/8239/28897202241_1497bec71a_b.jpg", thumbnail: "https://c2.staticflickr.com/9/8239/28897202241_1497bec71a_n.jpg", thumbnailWidth: 248, thumbnailHeight: 320, caption: "Big Ben (Tom Eversley - isorepublic.com)" }, { src: "https://c7.staticflickr.com/9/8785/28687743710_3580fcb5f0_b.jpg", thumbnail: "https://c7.staticflickr.com/9/8785/28687743710_3580fcb5f0_n.jpg", thumbnailWidth: 320, thumbnailHeight: 113, caption: "Red Zone - Paris (Tom Eversley - isorepublic.com)" }, { src: "https://c6.staticflickr.com/9/8520/28357073053_cafcb3da6f_b.jpg", thumbnail: "https://c6.staticflickr.com/9/8520/28357073053_cafcb3da6f_n.jpg", thumbnailWidth: 313, thumbnailHeight: 320, caption: "Wood Glass (Tom Eversley - isorepublic.com)" }, { src: "https://c8.staticflickr.com/9/8104/28973555735_ae7c208970_b.jpg", thumbnail: "https://c8.staticflickr.com/9/8104/28973555735_ae7c208970_n.jpg", thumbnailWidth: 320, thumbnailHeight: 213, caption: "Flower Interior Macro (Tom Eversley - isorepublic.com)" } ]) }; ReactDOM.render(<Demo1 />, document.getElementById('demo1'));
Permanently Selected Images
import React from 'react'; import ReactDOM from 'react-dom'; import Gallery from 'react-grid-gallery'; class Demo2 extends React.Component { constructor(props){ super(props); this.state = { images: this.props.images, selected: [2,0,6] }; } render () { return (
 <Gallery images={this.state.images} enableImageSelection={false} selectedImages={this.state.selected}/>
 ); } } Demo2.propTypes = { images: React.PropTypes.arrayOf( React.PropTypes.shape({ src: React.PropTypes.string.isRequired, thumbnail: React.PropTypes.string.isRequired, srcset: React.PropTypes.array, caption: React.PropTypes.string, thumbnailWidth: React.PropTypes.number.isRequired, thumbnailHeight: React.PropTypes.number.isRequired }) ).isRequired }; Demo2.defaultProps = { images: shuffleArray([ { src: "https://c5.staticflickr.com/9/8768/28941110956_b05ab588c1_b.jpg", thumbnail: "https://c5.staticflickr.com/9/8768/28941110956_b05ab588c1_n.jpg", thumbnailWidth: 240, thumbnailHeight: 320, caption: "8H (gratisography.com)" }, { src: "https://c3.staticflickr.com/9/8583/28354353794_9f2d08d8c0_b.jpg", thumbnail: "https://c3.staticflickr.com/9/8583/28354353794_9f2d08d8c0_n.jpg", thumbnailWidth: 320, thumbnailHeight: 190, caption: "286H (gratisography.com)" }, { src: "https://c7.staticflickr.com/9/8569/28941134686_d57273d933_b.jpg", thumbnail: "https://c7.staticflickr.com/9/8569/28941134686_d57273d933_n.jpg", thumbnailWidth: 320, thumbnailHeight: 148, caption: "315H (gratisography.com)" }, { src: "https://c6.staticflickr.com/9/8342/28897193381_800db6419e_b.jpg", thumbnail: "https://c6.staticflickr.com/9/8342/28897193381_800db6419e_n.jpg", thumbnailWidth: 320, thumbnailHeight: 213, caption: "201H (gratisography.com)" }, { src: "https://c2.staticflickr.com/9/8239/28897202241_1497bec71a_b.jpg", thumbnail: "https://c2.staticflickr.com/9/8239/28897202241_1497bec71a_n.jpg", thumbnailWidth: 248, thumbnailHeight: 320, caption: "Big Ben (Tom Eversley - isorepublic.com)" }, { src: "https://c7.staticflickr.com/9/8785/28687743710_3580fcb5f0_b.jpg", thumbnail: "https://c7.staticflickr.com/9/8785/28687743710_3580fcb5f0_n.jpg", thumbnailWidth: 320, thumbnailHeight: 113, caption: "Red Zone - Paris (Tom Eversley - isorepublic.com)" }, { src: "https://c6.staticflickr.com/9/8520/28357073053_cafcb3da6f_b.jpg", thumbnail: "https://c6.staticflickr.com/9/8520/28357073053_cafcb3da6f_n.jpg", thumbnailWidth: 313, thumbnailHeight: 320, caption: "Wood Glass (Tom Eversley - isorepublic.com)" }, { src: "https://c8.staticflickr.com/9/8104/28973555735_ae7c208970_b.jpg", thumbnail: "https://c8.staticflickr.com/9/8104/28973555735_ae7c208970_n.jpg", thumbnailWidth: 320, thumbnailHeight: 213, caption: "Flower Interior Macro (Tom Eversley - isorepublic.com)" } ]) }; ReactDOM.render(<Demo2 />, document.getElementById('demo2'));
Plain Gallery (Lightbox and Image Selection Disabled)
import React from 'react'; import ReactDOM from 'react-dom'; import Gallery from '../src/Gallery'; class Demo3 extends React.Component { constructor(props){ super(props); this.state = { images: this.props.images }; } render () { return (
 <Gallery images={this.state.images} enableLightbox={false} enableImageSelection={false}/>
 ); } } Demo3.propTypes = { images: React.PropTypes.arrayOf( React.PropTypes.shape({ src: React.PropTypes.string.isRequired, thumbnail: React.PropTypes.string.isRequired, srcset: React.PropTypes.array, caption: React.PropTypes.string, thumbnailWidth: React.PropTypes.number.isRequired, thumbnailHeight: React.PropTypes.number.isRequired }) ).isRequired }; Demo3.defaultProps = { images: shuffleArray([ { src: "https://c2.staticflickr.com/9/8817/28973449265_07e3aa5d2e_b.jpg", thumbnail: "https://c2.staticflickr.com/9/8817/28973449265_07e3aa5d2e_n.jpg", thumbnailWidth: 320, thumbnailHeight: 174, caption: "After Rain (Jeshu John - designerspics.com)" }, { src: "https://c6.staticflickr.com/9/8890/28897154101_a8f55be225_b.jpg", thumbnail: "https://c6.staticflickr.com/9/8890/28897154101_a8f55be225_n.jpg", thumbnailWidth: 320, thumbnailHeight: 183, caption: "37H (gratispgraphy.com)" }, { src: "https://c7.staticflickr.com/9/8106/28941228886_86d1450016_b.jpg", thumbnail: "https://c7.staticflickr.com/9/8106/28941228886_86d1450016_n.jpg", thumbnailWidth: 271, thumbnailHeight: 320, caption: "Orange Macro (Tom Eversley - isorepublic.com)" }, { src: "https://c6.staticflickr.com/9/8342/28897193381_800db6419e_b.jpg", thumbnail: "https://c6.staticflickr.com/9/8342/28897193381_800db6419e_n.jpg", thumbnailWidth: 320, thumbnailHeight: 213, caption: "201H (gratisography.com)" }, { src: "https://c8.staticflickr.com/9/8104/28973555735_ae7c208970_b.jpg", thumbnail: "https://c8.staticflickr.com/9/8104/28973555735_ae7c208970_n.jpg", thumbnailWidth: 320, thumbnailHeight: 213, caption: "Flower Interior Macro (Tom Eversley - isorepublic.com)" }, { src: "https://c1.staticflickr.com/9/8707/28868704912_cba5c6600e_b.jpg", thumbnail: "https://c1.staticflickr.com/9/8707/28868704912_cba5c6600e_n.jpg", thumbnailWidth: 320, thumbnailHeight: 213, caption: "Man on BMX (Tom Eversley - isorepublic.com)" }, { src: "https://c4.staticflickr.com/9/8578/28357117603_97a8233cf5_b.jpg", thumbnail: "https://c4.staticflickr.com/9/8578/28357117603_97a8233cf5_n.jpg", thumbnailWidth: 320, thumbnailHeight: 213, caption: "Ropeman - Thailand (Tom Eversley - isorepublic.com)" }, { src: "https://c1.staticflickr.com/9/8056/28354485944_148d6a5fc1_b.jpg", thumbnail: "https://c1.staticflickr.com/9/8056/28354485944_148d6a5fc1_n.jpg", thumbnailWidth: 257, thumbnailHeight: 320, caption: "A photo by 贝莉儿 NG. (unsplash.com)" } ]) }; ReactDOM.render(<Demo3 />, document.getElementById('demo3'));
Code Sample (from demo at the top of the page)
import React from 'react'; import ReactDOM from 'react-dom'; import Gallery from 'react-grid-gallery'; class Demo0 extends React.Component { constructor(props){ super(props); this.state = { images: this.props.images, selected: [] }; this.setSelected = this.setSelected.bind(this); this.getSelected = this.getSelected.bind(this); } setSelected (selectedImages) { this.setState({selected: selectedImages}); } getSelected () { return this.state.selected.toString(); } render () { return (

Selected images: {this.getSelected()}
 <Gallery images={this.state.images} onSelectedImagesChange={this.setSelected}/>
 ); } } Demo0.propTypes = { images: React.PropTypes.arrayOf( React.PropTypes.shape({ src: React.PropTypes.string.isRequired, thumbnail: React.PropTypes.string.isRequired, srcset: React.PropTypes.array, caption: React.PropTypes.string, thumbnailWidth: React.PropTypes.number.isRequired, thumbnailHeight: React.PropTypes.number.isRequired }) ).isRequired }; Demo0.defaultProps = { images: shuffleArray([ { src: "https://c1.staticflickr.com/9/8707/28868704912_cba5c6600e_b.jpg", thumbnail: "https://c1.staticflickr.com/9/8707/28868704912_cba5c6600e_n.jpg", thumbnailWidth: 320, thumbnailHeight: 213, caption: "Man on BMX (Tom Eversley - isorepublic.com)" }, { src: "https://c4.staticflickr.com/9/8578/28357117603_97a8233cf5_b.jpg", thumbnail: "https://c4.staticflickr.com/9/8578/28357117603_97a8233cf5_n.jpg", thumbnailWidth: 320, thumbnailHeight: 213, caption: "Ropeman - Thailand (Tom Eversley - isorepublic.com)" }, { src: "https://c4.staticflickr.com/8/7476/28973628875_069e938525_b.jpg", thumbnail: "https://c4.staticflickr.com/8/7476/28973628875_069e938525_n.jpg", thumbnailWidth: 320, thumbnailHeight: 213, caption: "Time to Think (Tom Eversley - isorepublic.com)" } ]) }; ReactDOM.render(<Demo0 />, document.getElementById('demo0'));


To help personalise our mailshots we want to have the first name and last name of the customer. Unfortunately the customer data that we are supplied only contains full names.
The system therefore attempts to break a supplied full name into its constituents by splitting around whitespace.
The full name Jane Smith will be broken into first name Jane and last name Smith.


Raspberry Pi Data
Thingspeak cloud
CPU Temperature
Room Temperature
Distance
Server in Pi
CPU Temperature
Encrypted text: