This is a project about Design thinking, and urban Planing
Keep track of my thesis by following me here!
Kieras, David E, and Susan Bovair. "The Role of a Mental Model in Learning to Operate a
Device." Cognitive science 8.3 (1984): 255-73.
This is a really interesting article about how and why we are able to remember how to perform tasks on both complicated software and easy software. This helps us understand the role of mental models in User experience design, and why natural mapping matters so much.
Shin, B. Y. "A Study on the Organic Thought in the Works of Le Corbusier, Venturi, and Lynn."
Journal of Asian Architecture and Building Engineering 8.2 (2009): 315-22.
Similar to Jane Jacobs “Death and Life of American Cities” this paper echoes an important theme for my paper, that there is a relationship between how something is designed, and who it is designed for. And the genius of Le Corbusier, and Venturi was their insistence that organism and machine should work in harmony, and sustain themselves.
Venturi, Robert, et al. Learning from Las Vegas: the forgotten symbolism of architectural form. MIT press, 1977.
This is the book that inspired this thesis, it is a dense review of 1950s architectural norms and practices. Not everything in the book is relevant to my thesis, but the areas that overlap with software design, design thinking, and agile are really useful. Venturi and Scott brown explore what makes a city useful, and laid out the frameworks for modern Design Thinking.
Zhao, Wei et al. "A Method of Designing Smartphone Interface Based on the Extended User's
Mental Model." Seventh International Conference on Electronics and Information Engineering, vol.
10322, International Society for Optics and Photonics, 2017, p. 103222O.
This paper lays out a theoretical framework for creating layouts that respond and improve the more a user uses them (think the facebook timeline), they also explore why this would be useful. I disagree with their findings, but their framework is actually really useful.
Brhel, M. et al. "Exploring Principles of User-Centered Agile Software Development: A Literature
Review." Information and Software Technology, vol. 61, 2015, pp. 163-181,
doi:10.1016/j.infsof.2015.01.004.
In this literature review, they define a lot of User-Centered terms and supply the reader with a massive amount of references, mostly I am just using this paper to understand the state of the field and lead to more papers that might be useful.
This week I had a bit of an epiphany. I’ve been having a hard time merging what i am
interested in learning about (urbanism and design thinking) with what I am interested in building (AR and
webXR). Originally I wanted to build some kind of geocaching game/app, that merged the principles of
design thinking from Learning From Las Vegas and showcased how organic and changing of a city NY is. I
also wanted to do Geocaching because it showcased the idea that user feedback within an application
legitimizes that software. But as you can see, there wasn't a lot to go on, and I wasn't really excited
about that idea as a prototype.
But I came across two really cool and interesting videos:
AR Architecture Example -
Video
MIT Augmented City - Video
And then after a conversation with the only urban planner and architect I know, my dad, (yes I know I need
more stakeholders) I realized that prototyping is a big problem for city planners, in fact it isnt really
possible. He described the process of researching zoning laws, and deciding how designs will affect the
residents of your proposed development as partly going to the library, and partly guess work. This process
actually antithetical to what people like DSB or David Kelly would want.
So my idea now is to create a card sorting exercise, that allows users to build a city with playing cards,
and see that city come alive in AR
This week I rewrote the background section from my prethesis paper. It would have been nice to be able to reuse the same background section, but my project has changed so much at this point that I was forced to reframe my research. The good news is that I'm pretty sure that it all still applies.
Read in Google DocsMany artists and architects revere Le Corbusier. Personally, I love his works for their artistic and skillful values, but it is important to view his works critically as well because they represent one of the greatest faux pas designers make today. On the one hand, he was a master designer, his buildings and urban planning are arguably some of the most beautiful ever to have been to designed in the 20th century. He was infatuated with the idea of designing buildings that didn't just look good, but worked well with the environment that they were built in. This architect, with no formal education, came up with many concepts that we still reference Today in user experience design. This includes the concepts of modularity in design and organic design. While talking about the machine for living, He even wrote about design that would welcome advancing technology by working symbiotically with machines and people. In design thinking talk, it was clear that he was a champion for Designing for the user. all of this, however, is in sharp contrast with the fact that he never talked to the user, But instead drew from his own experience and intuition.
Even in the age of IDEO style design thinking, UX designers and Urban Planners often follow the model of Le Corbusier. We make many design decisions based on experience, and intuition rather than working in conjunction with users and validating our intuition with user testing.
Le Corbusier may have not started the modern movement, so you can hardly blame him for many of the foibles of modernists, as Venturi and Scott Brown (Venturi et al. 1977), however, Le Corbusier was probably the single most influential modernist architect and fathered the infatuation with concrete in the Brutalist movement that influences a large majority of post-war construction in Europe.
“He forced people to think what it will be like to live in an environment that is predetermined, ultimately he succeeded in actually building such kind of an environment” (Tungare )
Modernists made a lot of claims, many of which are very convincing. But these claims were dogmatic and based solely on observation. Over the years several Modernist Manifestos have been written, by both Le Corbusier and his followers. (Corbusier 1987) Many buildings were built in nonmodern settings, some that were successful, some that were not. *insert Boston City Hall example from JJ*. But modernist constantly strived for the ideal utopia. This ideal took on several names, such as Ebenezer Howard's 'Garden City', Frank Lloyd Wright's 'Broadacre City', and Le Corbusier's 'Radiant City'. All three of these utopias were a reaction to the unplanned and organic developed, nineteenth-century European-style city. To their credit, they strove to stop cities from focusing on short term solutions, and instead favor of a comprehensive one. (Fishman 1982) However, rare is the case where you can see a modernist city built from the ground up and can test the veracity of the Modernisms claims.
Similar to software design, critiques cannot be made, if user testing has not been done. In UXD that is unexpectable, in modernism, that was conveniently not a part of their doctrine. Later in this paper, we will examine Chandigarh, Le Corbusier’s master-planned city in Punjab, India. Chandigarh is a case where we can actually examine the merits of a Modern designer’s approach to design. Because Le Corbusier was the only Modernist to succeed in building a complete modern Utopia, we can compare the teachings of Modernism and Master Planning, verse the organic city approach of User Experience design.
Modernist had been looking for an excuse to rebuild Europe for decades, and sadly many Modernist welcomed the bombings of Europe during World War 2 as an opportunity to put modernism into practice.
Modernists and Brutalists alike believed that Victorian or Baroque details were superfluous and such buildings needed to be replaced. They were very dogmatic in their design philosophy, and were famously wrong. Projects like the Boston City Hall and the public housing projects in New York City were built to bring the poor closer to the rich, create common spaces for public discourse and believed in imposing rigid rules to their designs. In most cases, these designs failed to live up to the expectations of their architects. Many became havens for crime and eyesores for their city. (Jacobs 1961)
‘Door frames, windows, bricks, roof tiles, even screws should conform to uniform prescriptions. The new standards should be legislated by the League of Nations, and a universal technical language should be compulsorily taught throughout the world, Le Corbusier's followers urged in a 1928 modernist manifesto. Le Corbusier insisted that al1 measurements, al1 ventilating standards, all Lighting, ail equipment and appliances, and al1 domestic aesthetics should be the same for al1 latitudes and al1 needs. "We must find and apply new methods. .. lending themselves naturally to standardization, industrialization, tailorization." he wrote in 1929. 'O He believed that by living with the standardized norms of construction, a city environment could be made much disciplined.” (Tungare )
When you design for the user without designing with the user, users will either reject your system or use your system in a creative way to meet their needs. This applies to architecture, urban design, user experience design, and software.
Chandigarh was meant to be Le Corbusier's crowning accomplishment, and by all accounts it was. However, despite the city taking years of careful planning and construction, the city's government buildings, parliamentary hall, wide roads, and even stop lights, are used completely differently than the master architect originally intended them to be.
Most of India uses roundabouts, they are more similar to Europe than the US in this way. Whereas the majority of the US has deep easements, and buildings offset off the road, (so as to accommodate future growth) most of India looks nothing like this. If there are sidewalks, they are skinny, and buildings butt up against the road. Most cities in India were designed in ancient times (if designed at all) and have narrow, spaghetti-like streets. American Cities have sections of the city zoned for uses, which is ideal for car use, and terrible for walking. India grew before the car was around, and cities being walkable was essential to the economy. Despite being the capital of Punjab, India, Chandigarh city plan looked like it was designed for Indiana.
Chandigarh is proud of its wide roads or sectors organized by use. One of his most famous contribution to Urban Planning was that of strict separation of uses and societal functions. Workplaces would be separated from residences, shopping, entertainment, and government. Lending to super large park sectors, shopping sectors, government sectors and so on. And were possible, larger work sectors would be further subdivided into even smaller ones for office buildings compared to factories. This became the standard for the west, up until the present day.
(Tungare ) However, Chandigarh, with its rigidly organized sections, is probably the worst metropolitan area in India to be a pedestrian in.
Le Corbusier was very strict about how cities were organized and was obsessive about controlling every variable. He often used the phrase “The Plan is a Dictator” (which he always capitalized in his writing” (Tungare )
Chandigarh’s perfectly perpendicular grid affords for fewer roundabouts and more stop lights. However, the citizens of Chandigarh largely ignore them, and in some cases have you even created makeshift roundabouts in the center of very wide intersections.
*Insert Story about the government building’s uses*
While modernist were on circuits preaching urban renewal through the practice of destroying the old decadent building, and ideas like that of the Corbusier’s Radiant City, three architects from the University of Pennsylvania co-authored a book that would change the way we think about architecture, design, and prototyping. (Trufelman 2018) The book, Learning from Las Vegas (Venturi et al. 1977) centered around the unique design language and urban groath of that strange city that had popped up in the American West. In the late 60’s that strange city, Las Vegas, seemed to defy the assumptions that many Modernist had previously made, and offered a fascinating case study about what people really wanted in a city.
This city seemed to suggest that people didn’t behave the way that modernists assumed they did. Form could follow something other than function, it could also act as a symbol in a whole, such as the famous Duck and the Decorated Shed example. (Venturi et al. 1977) The crowds in Las Vegas also seemed to suggest that people didn’t want the minimalist pallet, features and open layouts of modernism. And when cities grew organically, without the limitation of modern zoning ideals, such as separating uses into sectors, cities were easy to navigate, vibrant, and most interestingly, constantly changed.
At the University of Pennsylvania, the Furness Library is a decadent Victorian building, currently used by the School of Design. It was completed in the year 1890, and is now a designated National Historic Landmark. However, in the late 1950s, architects were debating whether it should be torn down, and replaced with something sleek, modern and concrete. Knocking down the old to make way for the new at any cost, was a battle hymn for the post-war modernist. Denise Scott Brown, and Robert Venturi, both faculty members at Penn, were actively opposed to the demolition proposal (Trufelman 2018). And though an unpopular opinion at the time, appreciated the opulence and detail these Victorian buildings. Their firm would be asked to lead the restoration in the early 90s (Venturi, Scott Brown and Associates 1991) This fight over the Library lead to Denise Scott Brown sharing one of her architectural fascinations with Robert Venturi, the curious city of Las Vegas. Eventually co-writing of Learning From Las Vegas, which is a lot of ways was a response to Modernism and Brutalism.
What makes Las Vegas special, is that Las Vegas is one of the only modern cities in the world to be designed in conjunctions with the people who use it, it wasn't designed just to be used, it was designed to be liked, and loved, to the point of addiction. The people who designed the city were very careful about even the most minor details and tested with real people often (Schüll 2012). That makes Vegas interesting to anyone who purports to be a User Centered Designer. And Vegas is an interesting case study for software developers because it embodies some of the principles we learn in Design Thinking and Agile, the two most common frameworks for thinking about software development right now. Las Vegas teaches to stop telling users how to use our product, and start designing opportunities for users to design with you.
In 1941 a project by Robert Moses was approved that would connect New Jersey with Queens and Brooklyn by way of a superhighway that essentially cut lower Manhatten in half. If you have ever tried to drive from Long Island to Jersey, then you know that this superhighway was never built. In fact, it was canceled in 1960 because of the public outrage. Why didn’t it happen? Well, Robert Moses chose the wrong neighborhood to build his superhighway in, SoHo, the lower Manhatten neighborhood of the famous columnist Jane Jacobs.
In the book that basically tanked this project, and saved SoHo, Jacobs describes the problems with the Modernist obsession of urban renewal and introduces the idea of the organic city. A city that is designed and built by the people who live there.
Ideo is widely credited for creating, defining and promoting our modern concept of Design Thinking. The brothers David and Tom Kelly championed the practices of ideation, rapid prototyping, using users and stakeholders as co-collaborators (as opposed to subjects) and iterating by failing fast and often. Through their company, they have evangelized this framework to be used as a “good idea generator,” useful in any industry where complex problems exist, and post-it notes are available. This framework, however, has probably been embraced the most in User Experience Design.
Architecture was only responsible for influencing a fraction of the technique we know today as design thinking. Although the phrase design thinking has architect Peter Rowe to thank, (Rowe and Raymond Garbe Professor of A...) design thinking also draw methods from the fields of Anthropology, Industrial Design (specifically Buckminster Fuller, and Don Norman), organization phycology, participatory design, and Ethnography. Ideo is important, because they took this very diverse and complicated set of frameworks, and organized it into something you could teach in 45 minutes at a business meeting.
Design thinking has changed and evolved a lot since the days of Robert Moses, Jane Jacobs and Peter Rowe. Despite urbanism inspiring much of the practices we use in design thinking, there is a lot that urbanist can change in order to make cities better, and improve the lives of those that live there.
In the context of urban planning, up until now, we have been talking about how architects have imagined cities should be designed from the ground up. In reality, however, the vast majority of developments have to work within the constraints of what already exists. In the course of human history, very few cities have been built from a clean slate, this includes Chandigarh and Brasilia. Urban planners in 2019 need to consider a variety of factors that exist within the neighborhoods and environment within which they are designing.
Urban planning does not happen within the control of one person either there are several job titles that we can break urban planning down into.
Because City development it's so depending upon economic and governmental decision-making we will start from the top and work our way down.
In many states, the Bureau of Economic Analysis will release an Economic Report to the Governor outlining the demand for housing, employment and the projected growth from within a state. Zoning offices within cities rely heavily on directions from the state when deciding how to zone for use.
In Utah for example, this economic report shows there is a shortage of about 75,000 homes. Meaning that there will be about 75,000 more homebuyers on the market than there are homes, driving up the demand on housing. Cities, though their zoning offices, can then plan for the higher demand in homes, by adjusting their master plan (usually updated every 10 years) to include more residential housing.
If you are a landowner, interested in developing your land, what you can build depends on this master plan, and what use this land has been zoned for. If your land was zoned for commecial use, and there was economic incentive to build commercial real estate, you would hire a civil engineer to work with the city to develop planning documents to show your proposed use.
If that plan meets zoning requirements, they will issues conditions of approval that state what the instructor needs to be approved in order to facilitate the project. If you want to develop your land for something other than what zoning has approved, you would have to hire civil engineeers to do a genral plan adjustment or land swap. THough this is hard and costly to do.
Throughout this whole process, economic factors, more than design factors drive growth. So to answer the question “how do Urban planners ideate and prototype in 2019” the answer is pretty simple, they don’t.
The position within this network that is given the most descretion in what will be built, is the local zoning office, they have more power over will be built than even the state. The urban planners within these offices reference zoning ordinances passed by their city councils, and they reference libraries that help them calcutlate traffic congestion, or the amenities that they can support. They then prototype in AutoCAD, which is simply a Computer Aided Drafting software, that can run basic calculations.
What is missing is a holistic way of prototyping different configurations and development techniques.
"CityScope" is a concept for shared, interactive computation for urban planning. - MIT Media Lab website
At the MIT media lab, the City Science lab is dedicated to experimenting with new technological solutions in urban planing and development. Researchers, there are creating tactile and digital platforms dedicated to “solving spatial design and urban planning challenges.” (MIT Media Lab City Scope ) Why this is interesting to this paper, is because they have developed tools that allow city planners to rapidly prototype different developments, and simulate the impact that those developments will have on a variety of factors. We develop and deploy these
This week I created the presentation for my first thesis defence, and presented it infront of class and my advisor clarisa. The feedback I got was actually really useful. One of the realizations that I made, and this came directly from feedback that night, is that this should be a tool that architects use to prototype with residences. Which would give more power to residences and be really usefull in a research capacity to urban planners. you can see the defence here:
Google SlideLorem ipsum dolor sit amet, consectetur adipisicing elit. Mollitia neque assumenda ipsam nihil, molestias magnam, recusandae quos quis inventore quisquam velit asperiores, vitae? Reprehenderit soluta, eos quod consequuntur itaque. Nam.
Close ProjectLorem ipsum dolor sit amet, consectetur adipisicing elit. Mollitia neque assumenda ipsam nihil, molestias magnam, recusandae quos quis inventore quisquam velit asperiores, vitae? Reprehenderit soluta, eos quod consequuntur itaque. Nam.
Close Project


cell cells olfactory expression genes OpenUrl using data ACE CrossRef Fig. types neurons mouse gene respiratory scSeq UMAP type CoV- human Durante Ace Cell HBC expressed dataset marker datasets lineage performed OSNs WOM bulb detected entry normalized coronavirus Deprez cells, shown sustentacular nasal including sensory used infection markers identified counts express new types. Olfactory cells. mapping mature total TMPRSS cells; expressing previously showing Expression dataset. epithelium function samples single vascular OSNs. Related dopaminergic Figure Science Tmprss Wang represents HBCs analysis colored described mice mucosa number related sequencing single-cell subset Download Web clusters manually positive Open Zhang containing data-hide-link-title=""> data-icon-position="" figure levels quality representation secretory tab types, ;<;div COVID- Chen Figures Gene Nature RNA-Seq SPRING Tmprss, Z-scores anosmia bulk cell, clustering high immature known obtained reads visualization xmlns=";http://www.w.org//xhtml";>;<;span <;strong>;(A)<;/strong>; <;strong>;(B)<;/strong>; (A) (B) (GSE) Analysis Bowman’s Percent basal data. ensheathing epithelial individual maximum neuron observed percentage precursor removed set similar stem subtypes supported Dataset Human [[#xB]] class cluster coding correspondences datasets, datasets. entry-related level mean microvillar protein proteins tracing various (left) Cells Liu OSN RNA-seq Respiratory SARS-CoV- acute cells) ciliated class=";caption-title";>;Related color control damage expression. filtering hepatitis https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSE normalization odor parameters pericytes scaled sequenced sorted suggest support <;strong>;(C)<;/strong>; (C) (right). (see Abstract Drop-seq ERCC FREE Sample Saraiva Text absence activated applied average brain collected corresponding dataset, directly experiments filtered genes. identify lower peptide receptor sample smell visualized "respiratory (right) ACE, Color Linnarsson Mapping Microvillar SARS Seurat Single-Cell TMPRSS, TMPRSS. Tmprss. WOM, Yang added airway anterior batch biopsy calculated cells" consistent counts. dashed following gene. gland indicates intermediate intestinal involved layer line low non-neuronal oligodendrocyte package percent possible processed protease published regions representations specific suspension syndrome transcripts tufted variable vasoactive view Basal Brush-like Dudoit Gadye HBC, HBCs, Neurol. Ngai OSN; OSNs, RNA Research Risso Schematic Stem Tissue UMI UMIs Violin Zeisel Zhu above. adult algorithm associated atlas biological bulb. cDNA cells). change close contained control, denotes did dorsal doublets effects epithelium, factors frequency generated genes, gland, highly integration left libraries library local male mechanisms mitochondrial patients perception perivascular pipette plate plots pulmonary purified replicates resulting revealed samples. scale severe shows size suggests table target times tissue transcriptome transformation van votes "Dataset >; <;strong>;(D)<;/strong>; <;strong>;(E)<;/strong>; (<;em>;<;/em>;). (.% (D) (E) (FC) (GNG) (left), (likely (using (white ->; -year ACE. Ace: Biology Choi Clustering CoV CoV-related Comp. Coronavirus Ctsb: Ctsl: Drosten ETCs, Ernfors Fletcher HBCs. However, IPCs, Jiang Klein Log Louvain MHV, Manno Materials Medical Methods Methods). Neurosci Neuroscience OE, OECs, OPCs, OSN, PCA Purdom SUS: Scrublet Secretory Sequencing Single Single-cell Smart-Seq Sustentacular VIP, Virol. Zheng additional alongside amplification area asterisks. based beads box bulb, category cause causes cellular changes circle classes common compared complexity components cycling days deeply demonstrate diagonal directions dissociation disturbances diversity dot dots downloaded downstream enzyme external female gene-specific given global glomerular grant graph iOSN: immune include indicated information inner integrated ionocytes isolated likely mOSN: main major manual mappings matrix merged midbrain motor nearly neurons. neurons; nose numbers observations old original patients. pericytes. plot population potential preparation principal proteases quantified raw reduced replicate reported reveals role separate separately set. shown. sorting spike-ins step subsets suggesting technical tissues transferred transformed triturated type. values virus.


Annual models from DMED data.
Scope:
CONUS Army Installations:
Fort Jackson, SC
Fort Benning, GA
Fort Bragg, NC
Fort Campbell, KY
Fort Polk, LA
Fort Hood, TX
Fort Stewart, GA
Fort Leonard Wood, MO
Fort Riley, KS
Fort Irwin, CA
Fort Bliss, TX
Population: Active-duty Army service members
Outcome: Ambulatory (Out-patient)
Annual Rate of Heat Stress Illness (any type, primary diagnosis)
1997 - 2018
Exposure indices:
“Absolute” indices
Annual mean (full-year): temperature, heat index, WBGT
Annual heat risk days / hours - Heat index above 80 / 90 / 103 / 125 °F - WBGT above 82 / 85 / 88 / 90 °F
“Relative” indices (averaged over full-year and heat season months) Annual mean daily anomaly: temperature, heat index, WBGT
Annual maximum daily anomaly: temperature, heat index, WBGT
Days mean temperature index above daily climate normal percentile (averaged over all hours of day)
- temperature, heat index, WBGT above 85th / 90th / 95th percentiles
Days maximum temperature index above daily climate normal maximum percentile
- temperature, heat index, WBGT above 85th / 90th / 95th percentiles
Days mean temperature index above Standard Deviation(s) of mean daily temperature climate normal
- temperature, heat index, WBGT above 1 or 2 standard deviations of daily normal
Days maximum temperature index above Standard Deviation(s) of max daily temperature climate normal
- temperature, heat index, WBGT above 1 or 2 standard deviations of maximum daily normal
# Outcomes
dmed_tidy <-
read_rds("data/dmed_tidy.rds")
dmed_tidy
## # A tibble: 11,955 x 9
## type category year count population rate location strata hsi
## <fct> <fct> <int> <dbl> <dbl> <dbl> <fct> <fct> <fct>
## 1 Ambulatory Data Male 1997 0 6057. 0 jackson gender hexhsa~
## 2 Ambulatory Data Female 1997 0 2749. 0 jackson gender hexhsa~
## 3 Ambulatory Data Total 1997 0 8806. 0 jackson gender hexhsa~
## 4 Hospitalizatio~ Male 1997 0 6057. 0 jackson gender hexhsa~
## 5 Hospitalizatio~ Female 1997 0 2749. 0 jackson gender hexhsa~
## 6 Hospitalizatio~ Total 1997 0 8806. 0 jackson gender hexhsa~
## 7 Reportable Eve~ Male 1997 0 6057. 0 jackson gender hexhsa~
## 8 Reportable Eve~ Female 1997 0 2749. 0 jackson gender hexhsa~
## 9 Reportable Eve~ Total 1997 0 8806. 0 jackson gender hexhsa~
## 10 Ambulatory Data Male 1998 0 6456. 0 jackson gender hexhsa~
## # ... with 11,945 more rows
# Exposures
annual_tables_list <-
read_rds("data/annual_tables_list.rds")
annual_tables_list
## # A tibble: 25 x 2
## # Groups: installation [25]
## installation data
## <chr> <list<df[,31]>>
## 1 eglin_afb [86 x 31]
## 2 fort_benning_ga [86 x 31]
## 3 fort_bliss [86 x 31]
## 4 fort_bragg [86 x 31]
## 5 fort_campbell [86 x 31]
## 6 fort_carson [86 x 31]
## 7 fort_drum [86 x 31]
## 8 fort_gordon [86 x 31]
## 9 fort_hood [86 x 31]
## 10 fort_jackson [86 x 31]
## # ... with 15 more rows
dmed_population <-
dmed_tidy %>%
filter(!location %in% c("us", "overseas"),
type == "Ambulatory Data",
hsi == "all",
strata == "gender",
category == "Total") %>%
dplyr::select(location, year, population) %>%
mutate(location = dplyr::recode(location, jackson = "fort_jackson"),
location = dplyr::recode(location, benning = "fort_benning_ga"),
location = dplyr::recode(location, bragg = "fort_bragg"),
location = dplyr::recode(location, campbell = "fort_campbell"),
location = dplyr::recode(location, polk = "fort_polk"),
location = dplyr::recode(location, hood = "fort_hood"),
location = dplyr::recode(location, stewart = "fort_stewart"),
location = dplyr::recode(location, leonardwood = "fort_leonard_wood"),
location = dplyr::recode(location, riley = "fort_riley"),
location = dplyr::recode(location, irwin = "ntc_and_fort_irwin"),
location = dplyr::recode(location, bliss = "fort_bliss"),
location = as.character(location))
index_long <-
annual_tables_list %>%
filter(installation %in% c("fort_benning_ga", "fort_bragg", "fort_campbell", "fort_jackson",
"fort_polk", "fort_hood", "fort_stewart", "fort_leonard_wood", "fort_riley",
"ntc_and_fort_irwin", "fort_bliss")) %>%
unnest(data) %>%
pivot_longer(., cols = `1990`:`2019`, names_to = "year", values_to = "value") %>%
mutate(year = as.integer(year))
hsi_rates <-
dmed_tidy %>%
filter(location %in% c("benning", "bragg", "campbell", "jackson",
"polk", "hood", "stewart", "leonardwood",
"riley", "irwin", "bliss"),
type == "Ambulatory Data",
hsi == "all",
strata == "gender",
category == "Total") %>%
dplyr::select(location, year, rate) %>%
dplyr::mutate(location = dplyr::recode(location, jackson = "fort_jackson"),
location = dplyr::recode(location, benning = "fort_benning_ga"),
location = dplyr::recode(location, bragg = "fort_bragg"),
location = dplyr::recode(location, campbell = "fort_campbell"),
location = dplyr::recode(location, polk = "fort_polk"),
location = dplyr::recode(location, hood = "fort_hood"),
location = dplyr::recode(location, stewart = "fort_stewart"),
location = dplyr::recode(location, leonardwood = "fort_leonard_wood"),
location = dplyr::recode(location, riley = "fort_riley"),
location = dplyr::recode(location, irwin = "ntc_and_fort_irwin"),
location = dplyr::recode(location, bliss = "fort_bliss"),
location = as.character(location))
joined_rate <-
index_long %>%
left_join(hsi_rates, by = c("installation" = "location", "year" = "year")) %>%
drop_na(rate)
joined_rate_pop <-
joined_rate %>%
left_join(dmed_population, by = c("installation" = "location", "year"))
dmed_tidy %>%
filter(!location %in% c("us", "overseas"),
type == "Ambulatory Data",
hsi == "all",
strata == "gender",
category == "Total") %>%
ggplot(aes(x = rate, y = fct_reorder(location,rate))) +
ggridges::geom_density_ridges(scale = 0.75) +
labs(
title = "Army Heat Stress Illness Ambulatory Rates, 1997-2018",
y = "Installation",
x = "HSI rate (per 1,000 persons per year)"
) +
theme_bw()
## Picking joint bandwidth of 2.49
dmed_tidy %>%
filter(!location %in% c("us", "overseas"),
type == "Ambulatory Data",
hsi == "all",
strata == "gender",
category == "Total") %>%
ggplot(aes(x = rate, y = fct_reorder(location,rate), fill = location)) +
ggridges::geom_density_ridges(
jittered_points = TRUE,
aes(point_color = location, point_fill = location),
alpha = 0.5,
point_alpha = 1) +
labs(
title = "Army Heat Stress Illness Ambulatory Rates, 1997-2018",
y = "Installation",
x = "HSI rate (per 1,000 persons per year)"
) +
theme_bw() +
theme(legend.position = "none")
## Picking joint bandwidth of 2.49
dmed_tidy %>%
filter(!location %in% c("us", "overseas"),
type == "Ambulatory Data",
hsi == "all",
strata == "gender",
category == "Total") %>%
ggplot(aes(x = rate, y = fct_reorder(location,rate), fill = location)) +
ggridges::stat_density_ridges(
quantile_lines = TRUE,
jittered_points = TRUE,
aes(point_color = location, point_fill = location),
alpha = 0.5,
point_alpha = 1) +
labs(
title = "Army Heat Stress Illness Ambulatory Rates, 1997-2018",
y = "Installation",
x = "HSI rate (per 1,000 persons per year)"
) +
theme_bw() +
theme(legend.position = "none")
## Picking joint bandwidth of 2.49
Annual hours WBGT greater than 85 deg F
joined_rate_pop %>%
filter(index %in% "hours_wbgt_gt85") %>%
ggplot(aes(x = year, y = rate)) +
geom_point() +
geom_smooth(method = lm, se = FALSE, size = 0.8) +
labs(
title = "Army Heat Stress Illness Ambulatory Rates",
x = "Year",
y = "HSI rate (per 1,000 persons per year)"
) +
theme_bw()
joined_rate_pop %>%
filter(index %in% "hours_wbgt_gt85") %>%
ggplot(aes(x = year, y = value)) +
geom_point() +
geom_smooth(method = lm, se = FALSE, size = 0.8) +
labs(
title = "WBGT Hours Exceeding 85 deg F",
x = "Year",
y = "Hours WBGT > 85 deg F"
) +
theme_bw()
joined_rate_pop %>%
filter(index %in% "hours_wbgt_gt85") %>%
ggplot(aes(x = year, y = rate, color = installation, shape = installation)) +
geom_point() +
geom_smooth(method = lm, se = FALSE, size = 0.8) +
labs(
title = "Army Heat Stress Illness Ambulatory Rates",
x = "Year",
y = "HSI rate (per 1,000 persons per year)"
) +
scale_shape_manual(values = 0:11) +
theme_bw()
joined_rate_pop %>%
filter(index %in% "hours_wbgt_gt85") %>%
ggplot(aes(x = year, y = value, color = installation, shape = installation)) +
geom_point() +
geom_smooth(method = lm, se = FALSE, size = 0.8) +
labs(
title = "WBGT Hours Exceeding 85 deg F",
x = "Year",
y = "Hours WBGT > 85 deg F"
) +
scale_shape_manual(values = 0:11) +
theme_bw()
joined_rate_pop %>%
filter(index %in% "hours_wbgt_gt85") %>%
ggplot(aes(x = value, y = rate)) +
geom_point() +
geom_smooth(method = lm, se = FALSE, size = 0.8) +
labs(
title = "Army Heat Stress Illness Ambulatory Rates",
x = "Hours WBGT > 85 deg F",
y = "HSI rate (per 1,000 persons per year)"
) +
theme_bw()
joined_rate_pop %>%
filter(index %in% "hours_wbgt_gt85") %>%
ggplot(aes(x = value, y = rate, color = installation, shape = installation)) +
geom_point() +
geom_smooth(method = lm, se = FALSE, size = 0.8) +
labs(
title = "Army Heat Stress Illness Ambulatory Rates at 11 Installations (1997-2018)",
x = "Hours WBGT > 85 deg F",
y = "HSI rate (per 1,000 persons per year)"
) +
scale_shape_manual(values = 0:11) +
theme_bw()
# Assign dataset; center and scale predictor value
data_hours_wbgt_gt85 <-
joined_rate_pop %>%
filter(index %in% "hours_wbgt_gt85") %>%
mutate(value = scale(value, center = TRUE, scale = TRUE))
data_hours_wbgt_gt85 %>%
ggplot(aes(x = value, y = rate, color = installation, shape = installation)) +
geom_point() +
geom_smooth(method = lm, se = FALSE, size = 0.8) +
labs(
title = "Army Heat Stress Illness Ambulatory Rates at 11 Installations (1997-2018)",
x = "Centered and Scaled Hours WBGT > 85 deg F",
y = "HSI rate (per 1,000 persons per year)"
) +
scale_shape_manual(values = 0:11) +
theme_bw()
data_hours_wbgt_gt85 %>%
ggplot(aes(x = value, y = rate)) +
geom_point() +
geom_smooth(method = lm, se = FALSE, size = 0.8) +
labs(
title = "Army Heat Stress Illness Ambulatory Rates",
x = "Hours WBGT > 85 deg F (Centered/Scaled)",
y = "HSI rate (per 1,000 persons per year)"
) +
theme_bw()
# Fitting ‘installation’ as a fixed effect in model M1 assumes
# the 11 ‘installation’ means are all independent of one another,
# and share a common residual variance
mod0_pooled <- lm(rate ~ value, data = data_hours_wbgt_gt85)
mod1_fixed_effect <- lm(rate ~ installation, data = data_hours_wbgt_gt85)
mod1a_fixed_effect <- lm(rate ~ value + installation, data = data_hours_wbgt_gt85)
# Fitting installation as a random intercept model in model M2 assumes that the 1 measured
# installation means are only a subset of the realised possibilities drawn from a ‘global’ set of
# population means that follow a Normal distribution with its own mean and variance.
mod2_random_intercept <- lmer(rate ~ 1 + (1|installation), data = data_hours_wbgt_gt85)
# Fitting only a random intercept allows group means to vary,
# but assumes all groups have a common slope for a fitted covariate (fixed effect)
mod3_random_intercept <- lmer(rate ~ value + (1|installation), data = data_hours_wbgt_gt85)
# Fitting random intercepts and slopes allows the slope of a
# predictor to vary based on a separate grouping variable.
mod4_random_intercept_slope <- lmer(rate ~ value + (value|installation), data = data_hours_wbgt_gt85)
mod5_random_intercept_yr <- lmer(rate ~ year + (1|installation), data = data_hours_wbgt_gt85)
mod6_random_intercept_yr <- lmer(rate ~ value + year + (1|installation), data = data_hours_wbgt_gt85)
mod7_random_intercept_slope_yr <- lmer(rate ~ value + year + (value|installation), data = data_hours_wbgt_gt85)
## boundary (singular) fit: see ?isSingular
# boundary (singular) fit
isSingular(mod7_random_intercept_slope_yr, tol = 1e-05)
## [1] TRUE
sjPlot::tab_model(mod0_pooled)
| rate | |||
|---|---|---|---|
| Predictors | Estimates | CI | p |
| (Intercept) | 9.34 | 7.81 – 10.88 | <0.001 |
| value | 2.46 | 0.89 – 4.03 | 0.002 |
| Observations | 242 | ||
| R2 / R2 adjusted | 0.038 / 0.034 |
sjPlot::tab_model(mod1_fixed_effect, mod2_random_intercept, p.val = "kr", show.df = TRUE)
| rate | rate | ||||||
|---|---|---|---|---|---|---|---|
| Predictors | Estimates | CI | p | Estimates | CI | p | df |
| (Intercept) | 25.57 | 21.83 – 29.31 | <0.001 | 9.34 | 3.96 – 14.73 | 0.007 | 10.00 |
| installation [fort_bliss] | -24.07 | -29.36 – -18.77 | <0.001 | ||||
| installation [fort_bragg] | -10.67 | -15.96 – -5.37 | <0.001 | ||||
|
installation [fort_campbell] |
-18.96 | -24.25 – -13.67 | <0.001 | ||||
| installation [fort_hood] | -22.97 | -28.26 – -17.68 | <0.001 | ||||
|
installation [fort_jackson] |
1.04 | -4.25 – 6.34 | 0.699 | ||||
|
installation [fort_leonard_wood] |
-19.53 | -24.82 – -14.23 | <0.001 | ||||
| installation [fort_polk] | -16.38 | -21.67 – -11.08 | <0.001 | ||||
| installation [fort_riley] | -22.76 | -28.06 – -17.47 | <0.001 | ||||
|
installation [fort_stewart] |
-21.53 | -26.83 – -16.24 | <0.001 | ||||
|
installation [ntc_and_fort_irwin] |
-22.67 | -27.97 – -17.38 | <0.001 | ||||
| Random Effects | |||||||
| σ2 | 79.40 | ||||||
| τ00 | 79.40 installation | ||||||
| ICC | 0.50 | ||||||
| N | 11 installation | ||||||
| Observations | 242 | 242 | |||||
| R2 / R2 adjusted | 0.499 / 0.477 | 0.000 / 0.500 |
sjPlot::tab_model(mod1a_fixed_effect, mod3_random_intercept, mod4_random_intercept_slope, p.val = "kr", show.df = TRUE, show.aic = TRUE, show.ngroups = TRUE
)
| rate | rate | rate | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Predictors | Estimates | CI | p | Estimates | CI | p | df | Estimates | CI | p | df |
| (Intercept) | 25.57 | 21.97 – 29.18 | <0.001 | 9.34 | 3.96 – 14.73 | 0.007 | 10.00 | 9.34 | 3.95 – 14.74 | 0.007 | 10.00 |
| value | 2.46 | 1.35 – 3.58 | <0.001 | 2.46 | 1.36 – 3.57 | <0.001 | 230.00 | 2.46 | -0.00 – 4.93 | 0.079 | 10.00 |
| installation [fort_bliss] | -24.07 | -29.16 – -18.97 | <0.001 | ||||||||
| installation [fort_bragg] | -10.67 | -15.77 – -5.57 | <0.001 | ||||||||
|
installation [fort_campbell] |
-18.96 | -24.06 – -13.86 | <0.001 | ||||||||
| installation [fort_hood] | -22.97 | -28.07 – -17.87 | <0.001 | ||||||||
|
installation [fort_jackson] |
1.04 | -4.06 – 6.14 | 0.688 | ||||||||
|
installation [fort_leonard_wood] |
-19.53 | -24.63 – -14.43 | <0.001 | ||||||||
| installation [fort_polk] | -16.38 | -21.47 – -11.28 | <0.001 | ||||||||
| installation [fort_riley] | -22.76 | -27.86 – -17.67 | <0.001 | ||||||||
|
installation [fort_stewart] |
-21.53 | -26.63 – -16.43 | <0.001 | ||||||||
|
installation [ntc_and_fort_irwin] |
-22.67 | -27.77 – -17.57 | <0.001 | ||||||||
| Random Effects | |||||||||||
| σ2 | 73.65 | 60.21 | |||||||||
| τ00 | 79.67 installation | 80.52 installation | |||||||||
| τ11 | 14.53 installation.value | ||||||||||
| ρ01 | 1.00 installation | ||||||||||
| ICC | 0.52 | 0.61 | |||||||||
| N | 11 installation | 11 installation | |||||||||
| Observations | 242 | 242 | 242 | ||||||||
| R2 / R2 adjusted | 0.537 / 0.515 | 0.037 / 0.537 | 0.036 / 0.625 | ||||||||
| AIC | 1740.898 | 1763.970 | 1723.214 |
# with year in model
sjPlot::tab_model(mod5_random_intercept_yr, mod6_random_intercept_yr, mod7_random_intercept_slope_yr, p.val = "kr", show.df = TRUE)
## Warning: Can't compute random effect variances. Some variance components equal zero.
## Solution: Respecify random structure!
| rate | rate | rate | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Predictors | Estimates | CI | p | df | Estimates | CI | p | df | Estimates | CI | p | df |
| (Intercept) | -1368.13 | -1676.50 – -1059.77 | <0.001 | 230.14 | -1254.81 | -1579.85 – -929.78 | <0.001 | 229.13 | -1244.37 | -1531.39 – -957.35 | <0.001 | 227.15 |
| year | 0.69 | 0.53 – 0.84 | <0.001 | 230.00 | 0.63 | 0.47 – 0.79 | <0.001 | 229.00 | 0.62 | 0.48 – 0.77 | <0.001 | 226.99 |
| value | 1.09 | 0.04 – 2.15 | 0.042 | 229.00 | 1.11 | -1.31 – 3.52 | 0.391 | 10.33 | ||||
| Random Effects | ||||||||||||
| σ2 | 59.81 | 59.00 | 45.82 | |||||||||
| τ00 | 80.29 installation | 80.33 installation | 81.05 installation | |||||||||
| τ11 | 14.30 installation.value | |||||||||||
| ρ01 | 1.00 installation | |||||||||||
| ICC | 0.57 | 0.58 | ||||||||||
| N | 11 installation | 11 installation | 11 installation | |||||||||
| Observations | 242 | 242 | 242 | |||||||||
| Marginal R2 / Conditional R2 | 0.120 / 0.624 | 0.126 / 0.630 | 0.302 / NA |
# Mod 1
plot(mod0_pooled)
plot(mod1_fixed_effect)
## hat values (leverages) are all = 0.04545455
## and there are no factor predictors; no plot no. 5
par(mfrow = c(2,2))
plot(mod1_fixed_effect, which = 1:4)
par(mfrow = c(1,1))
par(mfrow = c(2,2))
plot(mod1a_fixed_effect, which = 1:4)
par(mfrow = c(1,1))
sjPlot::plot_model(mod1_fixed_effect)
sjPlot::plot_model(mod1a_fixed_effect)
# Mod 2
plot(mod2_random_intercept)
par(mfrow = c(1,1))
# Mod 3
sjPlot::plot_model(mod3_random_intercept)
# Mod 4
sjPlot::plot_model(mod4_random_intercept_slope)
# Mod 5
sjPlot::plot_model(mod5_random_intercept_yr)
#Mod 6
sjPlot::plot_model(mod6_random_intercept_yr)
# Mod 7
sjPlot::plot_model(mod7_random_intercept_slope_yr)
sjPlot::plot_model(mod3_random_intercept, type = "pred", terms = "value")
sjPlot::plot_model(mod3_random_intercept, type = "re", terms = "value")
sjPlot::plot_model(mod4_random_intercept_slope, type = "pred", terms = "value")
sjPlot::plot_model(mod4_random_intercept_slope, type = "re", terms = "value")
sjPlot::plot_model(mod4_random_intercept_slope, type = "resid", terms = "value")
sjPlot::plot_model(mod4_random_intercept_slope, type = "diag", terms = "value")
## [[1]]
##
## [[2]]
## [[2]]$installation
##
##
## [[3]]
##
## [[4]]
sjPlot::plot_model(mod6_random_intercept_yr, type = "pred", terms = "value")
sjPlot::plot_model(mod6_random_intercept_yr, type = "pred", terms = "year")


As long as no regressions in iframing us in, everything was 👍
If automation tests pass, promote up, expanding automation test coverage
Put up a CM request and ship it to prod
This pipeline was nice, because it ensured tests gated promotion to higher environments
// package.json
"ember-engine-billing": "^2.0.0"
How can we ensure the version we push out with web-directory has hopped through all of the testing hoops and is prod ready?
We have an existing, working pipeline where we pin the version of our engine in web-directory
We have a suggestion if you're using semantic versioning in your engine, but the pipeline isn't built yet
ember-engine-billing view in Jenkins
We pin our version in web-directory's package.json
// package.json
"ember-engine-billing": "2.0.0"
npm install ember-engine-billing@latest --save-dev
web-directory pulls in your engine using semver via the package.json
// package.json
"ember-engine-billing": "^2.0.0"
Due to that, we should be careful when publishing new versions of our engine to artifactory


Implements the falcon host
command. Designed for deployment.
Manages a class Falcon::Controller::Host
instance which is responsible for running applications in a production environment.
Definitions
many :paths, "Service configuration paths.", default: ["falcon.rb"]
One or more paths to the configuration files.
Signature
-
attribute
Array(String)
def container_class
The container class to use.
Implementation
def container_class
Async::Container.best_container_class
end
def configuration
Generate a configuration based on the specified Falcon::Command::Host#paths
.
Implementation
def configuration
configuration = Configuration.new
@paths.each do |path|
path = File.expand_path(path)
configuration.load_file(path)
end
return configuration
end
def controller
Prepare a new controller for the command.
Implementation
def controller
Controller::Host.new(self)
end
def call
Prepare the environment and run the controller.
Implementation
def call
Async.logger.info(self) do |buffer|
buffer.puts "Falcon Host v#{VERSION} taking flight!"


In [[..]]
you shouldn't escape (
or )
.
[[ -e ~/.bashrc -a \( -x /bin/dash -o -x /bin/ash \) ]]
[[ -e ~/.bashrc -a ( -x /bin/dash -o -x /bin/ash ) ]]
You don't have to -- and can't -- escape (
or )
inside a [[ .. ]]
expression like you do in [ .. ]
. Just remove the escaping.
None.


Curly and Floppy Twistytail, the Funny Piggie Boys
by Howard R. Garis
Chapter 12: “Baby Pinky and the Doctor”
Additional Information
- Year Published: 1918
- Language: English
- Country of Origin: United States of America
- Source: Garis, H. R. (1918). Curly and Floppy Twistytail, the Funny Piggie Boys. New York, NY: A. L. Burt Co.
-
Readability:
- Flesch–Kincaid Level: 5.5
- Word Count: 1,421
- Genre: Fantasy
- ✎ Cite This
Downloads
One night, in the piggie house where Mr. and Mrs. Twistytail lived with their three children, there was a crying noise.
“Hey! What’s that?” asked Curly, one of the piggie boys, as he threw some of the straw from his bed over on the one where his brother Floppy slept.
“Oh, I don’t know. Cats howling, I guess,” answered Flop. “Go to sleep and don’t mind ‘em.”
So he and Curly tried hard to go to sleep again, but you know how it is, sometimes, the more you try to close your eyes, and dream, the wider awake you get. It was this way with the two piggie boys, though you can hardly blame them for not sleeping, as the crying noise sounded louder and louder.
“That isn’t cats,” said Curly, after a while.
“No,” agreed Flop. “I guess it isn’t. Sounds more like Baby Pinky crying. I wonder what’s the matter?”
“Let’s get up and look,” suggested Curly who always liked to be doing something, even at night. So the two piggie boys crawled softly from their beds and looked out of the door.  Your pain will soon be better. Don’t cry and wake up the boys.”
“Oh, we are awake!” exclaimed Curly through the open door of his room.
“What’s the matter?” asked his brother. “Is somebody sick?”
“Baby Pinky is,” answered Mrs. Twistytail. “But go to sleep. We’ll call you if we want you.” The two piggie boys saw their papa getting more hot water, and other things, from the kitchen, and they heard their mamma walking around with their baby sister, and they tried to go to sleep, but they didn’t rest much, for they were too anxious.
During the night they managed to doze off, but still they heard noises through the house, and when it was almost morning, but when the stars were still twinkling, they heard their papa go softly out of the front door. And they heard their mamma say: “Tell the doctor to come as soon as he can, Archibald.” You see, Mr. Twistytail’s first name was Archibald.
Now in the morning, when the sun was up, there was a busy time at the pig-house. First came Grandfather Squealer, the oldest pig of them all, and he was a very nice gentleman.
“You boys must be very good and quiet,” he said to Curly and Flop. “For your little sister is very sick, and may have to go to the hospital.”
“What’s a hospital?” asked Curly.
  The doctor is still here, and may be for some time.”
 There was something the matter inside her—I didn’t know what it was, but anyhow she had to go to the hospital to have it fixed, just as when the clock doesn’t go, the jeweler has to put new wheels in it, or fix the old ones.
“But I don’t want to go to the hospital,” squealed Pinky, when they told her she would have to. “I want to stay home,” and she made such a fuss that Dr. Possum said:
“This isn’t good for her. We must get her to be more quiet, or she will be very ill.”
“Oh, please let us try to get her quiet,” begged Curly, who, with his brother, heard what was said. “We’ll do some funny tricks, and stand on our tails, and sing a little song, and then Pinky will want to go to the hospital.”
“Very well,” spoke Dr. Possum, so the two piggie boys did all the tricks they could think of, from whirling around on the ends of their tails to rolling themselves down a hill, like a hoop, with an apple in their mouths. As Pinky watched them, she felt a little better, and when the big ambulance automobile came to take her to the hospital she was almost laughing.
And even when she got in the nice big hospital, so clean and neat, she wasn’t frightened, for the little squirrel nurses were so kind to her and they looked so pretty in their caps and blue dresses that Pinky felt sure she was going to like it there. And then the doctor said to her.
 Are you going to be a brave little piggie and stand for it?”
“Ye—yes,” faltered Pinky, but when the time came for them to really make her better, and when it hurt, she cried out:
“Oh, dear! Oh, dear! Oh, dear!” and she wiggled so hard that the nurses and doctors could hardly hold her, just as when some children get vaccinated.
“This will never do,” said Dr. Possum. “If she doesn’t keep quiet we cannot make her get well.”
“I can’t!” cried Pinky. “I can’t! I can’t!”
Well, no one knew what to do, until just then Uncle Wiggily Longears, the old gentleman rabbit, came along, and he saw at once what was the matter.
“I’ll fix it!” he exclaimed. “If Curly and Flop will stand outside the hospital and sing funny songs while the doctor is fixing Pinky, she will not mind it in the least.”
“We’ll try it,” said Dr. Possum. So the two piggie boys began to sing funny songs under Pinky’s window. They sang about the mousie who had a rubber nose, and every time he blew it he bounced on his tiptoes. Then there was another one about a doggie, who could not wag his tail, because he’d fastened on it the monkey’s drinking pail. And when Pinky heard these songs she felt much better, and she let the doctor do whatever he had to do to her.
And when he hurt her quite badly (though, of course, he did not mean to, for it was to make her better), and when Pinky cried, Curly and Flop danced harder than ever and sang about the kitty who had a penny hat, and when the ribbons all fell off she gave it to a rat.
Pinky laughed at that, and when her two brothers chased after Sammie Littletail, the rabbit, and made him jump over a telegraph pole just for fun, she felt so jolly that Dr. Possum could finish making her all better, and she never cried once again.
 And in a short time Pinky was all better, and she was glad she had let the doctor do what he had to.
So on the next page, in case the baking powder doesn’t shoot the sponge cake in the bathtub and make the towel ring the bell, I’ll tell you about Curly and the big apple.


| DynamicModule reason | the module that prompts the exception |
| LoaderRegistry registry | the LoaderRegistry to use when loading binaries. |
DynamicLibrary lib ; Linker linker; linker.register(lib ); // add to xref first linker.link(lib ); // link in the library and its aggregate modules
| char[] filename | the filename of the library to load |
| char[] attrStdVersion | (optional) value to match to attribute "std.version" in the loaded library. |
| char[] filename | the file name of the library to load |
| char[] filename | the file name of the library to load |
| char[] filename | the file name of the library to load |


Use the Service Directory tool to interact with the Service Directory to control IPC bindings and do troubleshooting.
sdir [OPTION]
sdir list
list
command generates a list of all the IPC services known by the Service Directory including servers advertising, users waiting for servers to advertise, and IPC bindings in effect.
sdir load
load
command updates the Service Directory's bindings to match the bindingConfig settings found in thesystem
configuration tree.
Copyright (C) Sierra Wireless Inc. Use of this work is subject to license.


- checkConsistency(Message<? extends AbstractDataType>) - Static method in class com.cyberfront.crdt.sample.simlation.Message
-
Check consistency.
- checkConsistency(Collection<Message<? extends AbstractDataType>>) - Static method in class com.cyberfront.crdt.sample.simlation.Message
-
Check consistency.
- checkMessageConsistency() - Method in class com.cyberfront.crdt.sample.simlation.Executive
-
- checkMessageConsistency() - Method in class com.cyberfront.crdt.sample.simlation.MessageRouter
-
Check the message consistency of all the messages pending delivery.
- checkMessageConsistency() - Method in class com.cyberfront.crdt.sample.simlation.Node
-
Check the content consistency of all of the sent and received messages on all of the CRDT's attached to
this node.
- checkMessageConsistency() - Method in class com.cyberfront.crdt.sample.simlation.SimCRDTManager
-
Check the message consistency for all of the sent and received messages in this CRDT instance
- checkMessageCount() - Method in class com.cyberfront.crdt.sample.simlation.Executive
-
- checkMessageCount() - Method in class com.cyberfront.crdt.sample.simlation.Node
-
Check the count consistency of all of the sent and received messages on all of the CRDT's associated with this node.
- checkMessageCount() - Method in class com.cyberfront.crdt.sample.simlation.SimCRDTManager
-
Perform the count validation checks against the types of messages delivered with the operations
being managed in the CRDT.
- checkOperationValidity() - Method in class com.cyberfront.crdt.sample.simlation.Executive
-
- checkOperationValidity() - Method in class com.cyberfront.crdt.sample.simlation.Node
-
Check the operation validity for all operations managed within each CRDT associated with this node.
- checkOperationValidity() - Method in class com.cyberfront.crdt.sample.simlation.SimCRDTManager
-
Check the validity of the operations in this CRDT instance
- clear() - Method in class com.cyberfront.crdt.CRDTManager
-
Clear all of the operations in the CRDT
- clear() - Method in class com.cyberfront.crdt.OperationTwoSet
-
This method removes all elements in both the ADD and REMOVE sets, effectively reseting them to empty.
- clear() - Method in class com.cyberfront.crdt.sample.simlation.AbstractNode
-
Clear the contents of the datastores in this node
- clear() - Method in class com.cyberfront.crdt.sample.simlation.Executive
-
Initialize the simulation Executive for a new run.
- clear() - Method in class com.cyberfront.crdt.sample.simlation.MessageRouter
-
Clear the message queue and reset the timestamp to 0
- cloneDataTest() - Method in class com.cyberfront.crdt.unittest.data.Test03Clone
-
The main unit test routine used to perform the actual test execution
- cloneInstances(Collection<AbstractDataType>) - Static method in class com.cyberfront.crdt.unittest.data.Test03Clone.CloneTest
-
Given a collection of objects return a copy of those objects
- CloneTest() - Constructor for class com.cyberfront.crdt.unittest.data.Test03Clone.CloneTest
-
Default constructor which initializes the unit test component with the default values
- CloneTest(long, long, long, long, boolean, boolean) - Constructor for class com.cyberfront.crdt.unittest.data.Test03Clone.CloneTest
-
Constructor for the clone test where the arguments are specifically passed to be instantiated
- collectionValue - Variable in class com.cyberfront.crdt.sample.data.SimpleCollection
-
The Collection of AbstractDataType derived values associated with this SimpleCollection instance
- com.cyberfront.crdt.operations - package com.cyberfront.crdt.operations
-
The com.cyberfront.crdt.operation package contains an abstract base class (AbstractOperation) and four operations which can be performed on
the JSON object.
- com.cyberfront.crdt.sample.data - package com.cyberfront.crdt.sample.data
-
The com.cyberfront.crdt.sample.data package a collection of test data classes which can be used to test the functionality of the
CRDT related classes.
- com.cyberfront.crdt.sample.manager - package com.cyberfront.crdt.sample.manager
-
The com.cyberfront.crdt.sample.manager contains two test classes for demonstrating basic CRDT functionality.
- com.cyberfront.crdt.sample.simlation - package com.cyberfront.crdt.sample.simlation
-
The com.cyberfront.crdt.sample.simulation contains a collection of classes which are intended to perform stress testing on the
functionality of the commutative CRDT implementation specified elsewhere in the class library.
- com.cyberfront.crdt.support - package com.cyberfront.crdt.support
-
The com.cyberfront.crdt.support contains a single class which provides some general support functionality for the entire library.
- com.cyberfront.crdt.unittest.data - package com.cyberfront.crdt.unittest.data
-
The com.cyberfront.crdt.unittest.data contains a collection of unit tests primarily intended to ensure the basic functionality of the
test data type used in the simulation tests.
- com.cyberfront.crdt.unittest.simulator - package com.cyberfront.crdt.unittest.simulator
-
The com.cyberfront.crdt.unittest.simulator tests the functionality of the simulation to ensure the CRDT implementation is sound.
- compareTo(AbstractOperation) - Method in class com.cyberfront.crdt.operations.AbstractOperation
-
- compareTo(OperationManager) - Method in class com.cyberfront.crdt.operations.OperationManager
-
- compareTo(Message<? extends AbstractDataType>) - Method in class com.cyberfront.crdt.sample.simlation.Message
-
- compareTo(SimCRDTManager<T>) - Method in class com.cyberfront.crdt.sample.simlation.SimCRDTManager
-
- convert(Collection<T>) - Static method in class com.cyberfront.crdt.support.Support
-
Generate a string as a JSON formated array based on elements of a collection
- convert(Map<KEY, VALUE>) - Static method in class com.cyberfront.crdt.support.Support
-
Generate a string as a JSON formated array based on elements of a collection
- copy() - Method in class com.cyberfront.crdt.operations.AbstractOperation
-
Generate and return a copy of this instance
- copy(Collection<AbstractOperation>) - Static method in class com.cyberfront.crdt.operations.AbstractOperation
-
- copy() - Method in class com.cyberfront.crdt.operations.CreateOperation
-
- copy() - Method in class com.cyberfront.crdt.operations.DeleteOperation
-
- copy() - Method in class com.cyberfront.crdt.operations.ReadOperation
-
- copy() - Method in class com.cyberfront.crdt.operations.UpdateOperation
-
- copy(AbstractDataType) - Static method in class com.cyberfront.crdt.sample.data.Factory
-
Copy an instance of the given AbstractDataType instance
- copy(Message<T>) - Method in class com.cyberfront.crdt.sample.simlation.Message
-
Build and return a copy of the given message
- copy() - Method in class com.cyberfront.crdt.sample.simlation.SimOperationManager
-
Generate and return a near copy of this class instance including the operation identifier
- copy(OperationManager.StatusType) - Method in class com.cyberfront.crdt.sample.simlation.SimOperationManager
-
Generate and return a copy of this class instance including the operation identifier but with the given status type
- copyAddSet() - Method in class com.cyberfront.crdt.OperationTwoSet
-
- copyRemSet() - Method in class com.cyberfront.crdt.OperationTwoSet
-
- countCreated() - Method in class com.cyberfront.crdt.AbstractCRDT
-
Count the number of CreateOperation instances are associated with this CRDT
- countCreated() - Method in class com.cyberfront.crdt.OperationTwoSet
-
- countDelete() - Method in class com.cyberfront.crdt.AbstractCRDT
-
Count the number of DeleteOperation instances are associated with this CRDT
- countDelete() - Method in class com.cyberfront.crdt.OperationTwoSet
-
- countOperations(Collection<AbstractOperation>, AbstractOperation.OperationType) - Static method in class com.cyberfront.crdt.OperationTwoSet
-
This static method counts the number of AbstractOperation instances of the type given which are in the
collection provided
- countRead() - Method in class com.cyberfront.crdt.AbstractCRDT
-
Count the number of ReadOperation instances are associated with this CRDT
- countRead() - Method in class com.cyberfront.crdt.OperationTwoSet
-
- countUpdate() - Method in class com.cyberfront.crdt.AbstractCRDT
-
Count the number of UpdateOperation instances are associated with this CRDT
- countUpdate() - Method in class com.cyberfront.crdt.OperationTwoSet
-
- crdt - Variable in class com.cyberfront.crdt.CRDTManager
-
The CRDT containing the updates for the JSON object being managed.
- crdtLookup - Variable in class com.cyberfront.crdt.sample.simlation.Executive
-
A map relating a CRDT name to the name of the node which manages it
- CRDTManager - Class in com.cyberfront.crdt
-
The CRDTManager class is used to wrap a CRDT instance so as to interact with it.
- CRDTManager() - Constructor for class com.cyberfront.crdt.CRDTManager
-
- CREATE_COUNT - Static variable in class com.cyberfront.crdt.unittest.simulator.Test01Simulation.SimulationTest
-
Number of creation operations to perform on tests related to internodal synchronization quality
- createCount - Variable in class com.cyberfront.crdt.sample.simlation.Executive
-
Number of create operations remaining to perform
- createCount - Variable in class com.cyberfront.crdt.unittest.simulator.Test01Simulation.SimulationTest
-
The number of times to perform a create operation during the simulation
- createDataTest() - Method in class com.cyberfront.crdt.unittest.data.Test01Create.CreateTest
-
Test the ability to create a new concrete object derived from AbstractDataType
- CreateOperation - Class in com.cyberfront.crdt.operations
-
The CreateOperation encapsulates the creation of a new JSON document in the CRDT.
- CreateOperation(JsonNode, Long) - Constructor for class com.cyberfront.crdt.operations.CreateOperation
-
This instantiates a new CreateOperation given an operation in a JsonNode and a timestamp.
- CreateOperation(CreateOperation) - Constructor for class com.cyberfront.crdt.operations.CreateOperation
-
Instantiates a copy of the given CreateOperation
- CreateTest() - Constructor for class com.cyberfront.crdt.unittest.data.Test01Create.CreateTest
-
Default constructor which initialized fields to their default values
- CreateTest(long, long, long, boolean, boolean) - Constructor for class com.cyberfront.crdt.unittest.data.Test01Create.CreateTest
-
Constructor to deliberately initialize each field to the associated values provided


|
Lingvo
DeutschLernenfürAsylbewerber
|
The ViewCell for displaying information and providing context actions of a page. More...
Protected Member Functions | |
| override void | OnAppearing () |
| Called when the view cell appears on screen. Registers all important events. More... | |
| override void | OnDisappearing () |
| Called when the view cell disappears on screen. Unregisters the events registered in OnAppearing. More... | |
| virtual void | Event_PageChanged (IPage p) |
Occurs when a page has changed. Refreshes the BindingContext of this view, if the changed page is equal to it. More... | |
| virtual void | BindViewCell (IPage page) |
| Binds the views in this view cell to the given page. Actually, it refreshes the progress view. More... | |
| override void | OnBindingContextChanged () |
Occurs when the BindingContext has changed. Refreshes context actions and subtitle and calls BindViewCell(IPage). More... | |
The ViewCell for displaying information and providing context actions of a page.
|
inlineprotectedvirtual |
Binds the views in this view cell to the given page. Actually, it refreshes the progress view.
| page | The page to bind this view cell to. |
Reimplemented in Lingvo.MobileApp.Templates.LingvoDownloadPageViewCell.
|
inlineprotectedvirtual |
Occurs when a page has changed. Refreshes the BindingContext
of this view, if the changed page is equal to it.
| p | The page which has changed. |
Reimplemented in Lingvo.MobileApp.Templates.LingvoDownloadPageViewCell.
|
inlineprotected |
Called when the view cell appears on screen. Registers all important events.
|
inlineprotected |
Occurs when the BindingContext
has changed. Refreshes context actions and subtitle and calls BindViewCell(IPage).
|
inlineprotected |
Called when the view cell disappears on screen. Unregisters the events registered in OnAppearing.


Start Date
End Date
Status
Price
Borrower
November 5, 1955
Insurance Provider
Blackbox ID
Blackbox Status
Incident Type


Members of the public service are the politically impartial government employees who are responsible for carrying out the day-to-day activities of government and for delivering public services to the citizens of B.C.


This is a paragraph
This is line Two
This is line three
This is new line. This is continued I'm still writing in line two
This is another line
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Qui, autem?
This is text that is in bold
This is text that is in bold
This is text that is in italics
This is text that is in italics


Kogi Election: Missing ad-hoc staff found—INEC
by YEKEEN AkinwaleTHE Independent National Electoral Commission (INEC) on Sunday says it has accounted for all the 30 ad-hoc staff engaged for the 2019 governorship election in Kogi State.
The electoral Commission had earlier been reported to have declared 30 of its staff missing.
They were declared missing around 1 a.m. on Sunday during the final collation of results in the local government.
The missing INEC staff include Presiding Officers (POs) and Assistant Presiding Officers (APOs) of polling units in Imane ward 1 and 2 of Olamaboro LGA of Kogi State.
Many of the ad-hoc staff used by INEC were youth corps members of the NYSC.
However, Rotimi Oyekanmi, Chief Press Secretary to the INEC Chairman stated in a statement that the Commission has established that none of them was either injured or killed.
“These election-day staff could not be accounted for initially following the violent attacks by some armed thugs at their respective duty posts after the close of polls,” Oyekanmi said in the statement.
According to him, the ad-hoc staff were able to conclude the collation process before the attacks.
“They are safe, sound and back in their respective homes,” he added.
“The Chairman of the Commission has personally spoken with some of them and they confirmed that they are hale and hearty.”


© Copyright 1998 The Perl Journal. Reprinted with permission.
My log file has nothing in it!
My output is coming out in the wrong order!
When my program terminates abnormally, the output is incomplete!
My web server says I didn't send the right headers, but I'm sure I did!
I'm trying to send data over the network, but nothing is sent!
I'm afraid you're probably a victim of buffering.
I/O is performed by your operating system. When Perl wants to read data from the disk, or to write it to the network, or to read or write data anywhere, Perl has to make a request to the operating system and ask that the data be read or written. This is an example of `making a system call'. (Don't confuse this with Perl's system function, which is totally unrelated.)
Making a system call is a relatively slow operation. On top of that, if the data is coming from the disk, you might have to wait for the disk to spin to the right position (that's called the `latency time') and you might have to wait for the disk heads to move over to the right track (that's called the `seek time'), and as computer operations go, that wait is unbearably long---several milliseconds is typical. By contrast, a typical computer operation, such as assigning to a variable or adding two numbers, takes a fraction of a microsecond.
Suppose you're reading a ten-thousand line file line by line:
while (<FILE>) { print if /treasure/; }
If Perl made a system call for every read operation, that would be 10,001 system calls in all (one extra to detect end-of-file), and if the file was on the disk, it would have to wait for the disk at least 10,000 times. That would be very slow.
For efficiency, Perl uses a trick called buffering. The first time you ask to read from the file, Perl has to make a system call. Since system calls are expensive, it plans ahead. If you tried to read a little bit of text, you will probably want to read the rest later. The blocks on your disk are probably about 8K bytes, and your computer hardware is probably designed to transfer an entire block of data from the disk at once. So instead of asking the system for a little bit of text, Perl actually asks the system for an entire blockful, which hardly takes longer to get than a little bit would have. Then it stores this block of data in a region of memory that is called a buffer, and gives you back the one line you asked for. The next time you ask for a line, Perl already has the line you want in memory in the 8K buffer. It doesn't have to make another system call; it just gives you the next line out of the buffer. Eventually you read up to the end of the buffer, and then Perl makes another system call to get another bufferful of data.
If lines typically have about 60 characters each, then the 10,000-line file has about 610,000 characters in it. Reading the file line-by-line with buffering only requires 75 system calls and 75 waits for the disk, instead of 10,001. On my system, a simple program with buffered reading ran about 40% faster than the corresponding program that made a system call for every line.
For writing, Perl uses the same trick. When you write data to a file with print, the data doesn't normally go into the file right away. Instead, it goes into a buffer. When the buffer is full, Perl writes all the data in the buffer at once. This is called flushing the buffer. Here the performance gain is even bigger than for reading, about 60%. But the buffering can sometimes surprise you.
Suppose you have a program like this:
foreach $item (@items) { think_for_a_long_time($item); print LOG "Finished thinking about $item.\n"; }
Suppose there are 1,000 items, and the program will have to think about each one for two minutes. The program will take about 35 hours to complete, and you'd like to be able to peek at the log file to see how it is doing. You start up the program, wait ten minutes, and peek at the log file---but there's nothing there. Disaster! What happened? Is the program stuck? Is it taking five times as long to think about the items as you thought it would?
No, the program is not stuck, or even slow. The problem is that the prints to the log file are being buffered. The program has thought about the first five items, and it wrote the log messages for them, but the writes went into the buffer, and Perl isn't going to make a system call to send the buffer to the disk until the buffer is full. The buffer is probably 8K bytes, and the log messages are about 28 bytes each, so what's going to happen is that you won't see anything in the log file until about ten hours from now, when the first 292 messages will appear all at once. After that, you won't get any more messages for another ten hours.
That's a problem, because it's not what you wanted. Here you don't really care about the efficiency gain of buffered writes. On the plus side of buffering, you're saving about four seconds over the 35-hour lifetime of the program. On the minus side, it's making your logging feature useless. You think having the log is worth waiting an extra four seconds, so you'd like to turn off the buffering.
In Perl, you can't turn the buffering off, but you can get the same benefits by making the filehandle hot. Whenever you print to a hot filehandle, Perl flushes the buffer immediately. In our log file example, it will flush the buffer every time you write another line to the log file, so the log file will always be up-to-date.
Here's how to make the filehandle hot:
{ my $ofh = select LOG; $| = 1; select $ofh; }
The key item here is the $| variable. If you set it to a true value, it makes the current filehandle hot. What's the current filehandle? It's the one last selected with the select operator. So to make LOG hot, we `select' it, set $| to a true value, and then we re-`select' whatever filehandle was selected before we selected LOG.
Now that LOG is hot, Perl will flush the buffer every time we print to LOG, so messages will appear in the log file as soon as we print them.
Sometimes you might see code like this:
select((select(LOG), $|=1)[0]);
That's a compressed way of writing the code above that makes LOG hot.
If you happen to be using the FileHandle or IO modules, there's a nicer way to write this:
use FileHandle; # Or `IO::Handle' or `IO::'-anything-else ... LOG->autoflush(1); # Make LOG hot. ...
If Perl is really buffering output, how is it you didn't notice it before? For example, run this program, favorite:
print "What is your favorite number? "; $num = <STDIN>; $mine = $num + 1; print "Well, my favorite is $mine, which is a much better number.\n";
% ./favorite What is your favorite number? 119 Well, my favorite is 120, which is a much better number.
If you run this, you find that it works the way you expect: The prompt appears on the screen right away. Where's the buffering? Why didn't Perl save up the output until it had a full buffer? Because that's almost never what you want when you're writing to a terminal, the standard I/O library that Perl uses takes care of it for you. When a filehandle is attached to the terminal, as STDOUT is here, it is in line buffered mode by default. A filehandle in line buffered mode has two special properties: It's flushed automatically whenever you print a newline character to it, and it's flushed automatically whenever you read from the terminal. The second property is at work here: STDOUT is flushed automatically when we read from STDIN.
But now let's try it with STDOUT attached to a file instead of to the terminal:
% ./favorite > OUTPUT
Here the STDOUT filehandle has been attached to the file OUTPUT. The program has printed the prompt to the file, and is waiting for you to enter your favorite number. But if you open another window, and look into OUTPUT, you'll see that the prompt that favorite printed isn't in the file yet; it's still in the buffer. STDOUT is attached to a file, rather than to a terminal, so it isn't line-buffered; only filehandles attached to the terminal are line-buffered by default.
When the program finishes, it flushes all its buffers, so after you enter your favorite number, all the output, including the prompt, appears in the file at the same time.
There's one other exception to the rule that says that filehandles are cold unless they're attached to the terminal: The filehandle STDERR, which is normally used for error logging, is always in line buffered mode by default. If our original example had used STDERR instead of LOG we wouldn't have had the buffering problem.
``My output is coming out in the wrong order!''
Here's a typical program that exhibits this common problem:
print "FILE LISTING OF DIRECTORY $dir:\n"; print "---------------------------------\n"; system("ls -l $dir"); print "---------------------------------\n";
Run this on a terminal, and it comes out OK. But if you run it with STDOUT redirected to a file, it doesn't work: the header appears after the file listing, instead of at the top.
So why didn't it work? Standard output is buffered, so the header lines are saved in the buffer and don't get to the file just yet. Then you run ls, which has its own buffer, and ls's buffer is flushed when ls exits, so ls's output goes into the file. Then you print the footer line and it goes into your programs buffer. Finally, your program finishes and flushes its buffer, and all three lines go into the output file, after the output from ls. To fix this, make STDOUT hot.
Now that we know why the data got into the file in the wrong order, that raises another question: If we have it print to the terminal, why does the output come out in the right order instead of the wrong order? Because when STDOUT is attached to the terminal, it is in line buffered mode, and is flushed automatically whenever we print a newline character to it. The two header lines are flushed immediately, because they end with newlines; then comes the output of ls, and finally the footer line.
``My web server says I didn't send the right headers, but I'm sure I did!''
Here's a typical program that exhibits this common problem:
print "Content-type: text/html\n\n"; print "<title>What Time Is It?</title>\n"; print "
The Current Time in Philadelphia is
\n\n"; print "
\n"; system("date"); print "
\n\n";
You might think that the output is going to come out in the order you put it in the program, with the Content-type header, then the title, and with the date in between the
 tags. But it isn't. The print statements execute, but the output goes into your program's buffer. Then you run date, which generates some output, this time into the date command's buffer. When date exits (almost immediately), this buffer is flushed, and the server (whch is listening to your standard output) gets the date before it gets the output from your prints; your print data is still in the buffer. Later, when your program exits, its own buffer is flushed and the server gets the output from the prints.
The server was expecting to see that Content-type line first, but instead it got the date first. It can't proceed without knowing the content-type of the output, so it gives up and sends a message to the browser that says something like 500 Internal Server Error.
Solution 1: Make STDOUT hot. Solution 2: Collect the output from date yourself and insert it into your buffer in the appropriate place:
... $the_date = `date`; print $the_date; ...
Here's a similar sort of problem that stems from the program aborting before you wanted it to:
print "Content-type: text/html\n\n"; print "<title>Division Table</title>\n"; print "
Division Table
\n\n"; for (i=0; $i<10; $i++) { for (j=0; $j<10; $j++) { print $i/$j, "\t"; # Ooops } print "\n"; }
The program is going to abort at the line that says `Ooops', because it divides by zero, and it's going to print the message
Illegal division by zero at division.cgi line 8.
What you actually see on your web browser depends a lot on the details of the web server, but here's one possible scenario: The server will collect all the output from your program, and send it back to the browser. You might think that the Content-type line will come first, followed by the title, and then the division by zero message, but you'd be wrong. The content-type and the title are printed to STDOUT, which is buffered, but the divsion by zero message is printed to STDERR, which isn't buffered. Result: The content-type and title are buffered. Then the error message comes out, and then, when the program exits, the STDOUT buffer is flushed and the content-type and title come out at last. The server was expecting to see the Content-type line right away, gets confused because it appears to be missing, and reports an error.
As usual, you can fix this by making STDOUT hot. Another way: Redirect error messages to a separate file, like this:
open STDERR, "> /tmp/division.err";
A third way:
use CGI::Carp 'fatalsToBrowser';
The CGI::Carp module will arrange that fatal error messages are delivered to the browser with a simple prefabricated HTTP header, so that the browser displays the error message properly.
Making both handles cold won't work, because when the program finishes, there's no telling which of the two will be flushed first.
``I'm trying to send data over the network, but nothing is sent!''
This one is the plague of novice network applications programmers; it bites almost everyone the first time they write a network application.
For concreteness, suppose you're writing a mail client, which will open a connection to the mail server and try to send a mail message to it. Your client will need to use the SMTP (Simple Mail Transfer Protocol) to talk to the server. In SMTP, the client opens a connection and then engages the server in a conversation that goes something like this:
Server says: 220 gradin.cis.upenn.edu ESMTP Client says: HELO plover.com Server: 250 gradin.cis.upenn.edu Hello<EMAIL_ADDRESS>Client: MAIL From<EMAIL_ADDRESS>Server: 250<EMAIL_ADDRESS>Sender ok (And so on...)
The usual complaint: ``I opened the connection all right, and I got the greeting from the server, but it isn't responding to my client's commands!'' And by now you know the reason why: The client's output to the network socket is being buffered, and Perl is waiting to send the data over the network until there's a whole bufferful. The server hasn't responded because it hasn't received anything to respond to.
Solution: Make the socket filehandle hot. Another solution: Use the IO::Socket module; recent versions (since version 1.18) make sockets hot by default.
``When my program terminates abnormally, the output is incomplete!''
When the program exits normally, by executing die or exit or by reaching the end of the program, it flushes all the buffers. But if the program is killed suddenly, it might exit without getting to flush the buffers, and then the output files will be incomplete. The Unix kill command destroys a process in this way and can leave behind incomplete files.
Even worse, a file that exits in this way can leave behind corrupt data. For example, imagine a program that writes out a database file. The database file is supposed to contain records of exactly 57 characters each.
Suppose the program has printed out 1,000 records, and then someone kills it and it doesn't have a chance to flush its buffer. It turns out that only 862 complete records have made it into the file, but that's not the worst part. The buffer is flushed every 8,192 bytes, and 57 does not divide 8,192 evenly, so the last record that was flushed to the file is incomplete; only its first 18 bytes appear in the file. The other 39 bytes were still in the buffer, and they're lost. The file is now corrupted, and any program that reads it assuming that each record is exactly 57 bytes long is going to get garbled data and produce the wrong results.
One possible solution to this is to simply make the filehandle hot. Another is to do the buffering yourself: Accumulate 57-byte records into a scalar variable until you have a lot of them, and then write them all at once. A third solution is to use the setvbuf method provided by the Filehandle and IO:: modules to make the buffer size an exact multiple of 57 bytes; then it'll never contain any partial records when it's flushed. That looks like this:
use IO::Handle '_IOFBF'; # `FBF' means `Fully Buffered' FH->setvbuf($buffer_var, _IOFBF, 8151);
(I picked 8151 here because it's the largest number less than 8K that is a multiple of 57.)
A fourth solution is to manually flush the buffer before it gets completely full. The next section explains how to do this.
Sometimes you'd like to have buffering, but you want to control when the buffer is flushed. For example, suppose you're writing a lot of data over the network to a logging service. For efficiency, you'd like buffering, but you don't want the log to get too far out of date. You want to let data accumulate in the buffer for up to ten seconds, and then flush it out, at least six times per minute.
Here's a typical strategy for doing that:
if (time > $last_flush_time + 10) { my $ofh = select LOG; $| = 1; # Make LOG socket hot print LOG ""; # print nothing $| = 0; # LOG socket is no longer hot select $ofh; $last_flush_time = time; } ... Do something else ...
We select the LOG filehandle and make it temporarily hot. Then we print the empty string to the filehandle. Because the handle is hot, this flushes the buffer---printing to a hot filehandle always flushes the buffer. Then we return the filehandle to its un-hot state so that future writes to LOG will be buffered.
If you're using the FileHandle or IO modules, there's a simpler interface:
$filehandle->flush(); # Flush the buffer
It does just the same as the code above.
If for some reason you want to avoid the buffering entirely, you can use Perl's sysread and syswrite operators. These don't use buffering at all. That makes them slow, but they are often appropriate for tasks like network communications where you don't want buffering anyway. All Perl's other I/O functions, including write, print, read, <FILEHANDLE>, and getc, are buffered. If you do both buffered and unbuffered I/O on the same filehandle, you're likely to confuse yourself, so beware.
For efficiency, Perl does not read or write the disk or the network when you ask it to. Instead, it reads and writes large chunks of data to a `buffer' in memory, and does I/O to the buffer; this is much faster than making a request to the operating system for every read or write. Usually this is what you want, but sometimes the buffering causes problems. Typical problems include communicating with conversational network services and writing up-to-date log files. In such circumstances, you would like to disable the buffering. You can do that in Perl with by setting $|=1. This special variable makes the currently selected filehandle hot, so that the buffer is flushed after every write.
Return to: Universe of Discourse main page | Perl Paraphernalia | Just the FAQs
mjd-perl-faqs-id-ipk+bcfci2x+@plover.com


Griss cells v2.0.0
Test for canonical distribution.
All cells — applies always
All cells on small breakpoint — applies when width ≥ `30em`
(~`480px`
)
All cells on medium breakpoint — applies when width ≥ `48em`
(~`768px`
)
All cells on large breakpoint — applies when width ≥ `64em`
(~`1024px`
)
© 2016, Luciano Battagliero. Released under the MIT license.


My name is Samantha Nissen and I currently live in Iowa City, IA. For the past two years, I have worked at the International Writing Program at the University of Iowa as the Coordinator for Outreach and Special Programs. This fall, I am relocating to Chicago for graduate school. As a front-end web developer, I love creating websites that are beautiful and accessible to all.
My other interests include intercultural communication, accessible education, and cultural exchange. Because of this, I enjoy working with clients who are working towards the greater good, including non-profit organizations, governmental agencies, and higher education institutions. If you would like to work together, email me at samanthaknissen@gmail.com.


App Version:
Version : 1.1
Released on : 25th Jan 2017
About the App
Spellathon is a popular word game developed to educate young children and adults.
In this game, 7 alphabets are arranged in a hexagon. Players must make words of 4 or more alphabets.
Each word must contain the center alphabet and there must be at least one 7 letter word.
This word game helps children and adults in increasing their English vocabulary.
About Author
This application is developed by Ayansh TechnoSoft Pvt. Ltd.
To see other apps developed by Ayansh TechnoSoft, visit http://ayansh.com
You can contact the developer by Email.
Request features and Report bugs
To request a new feature or to report a bug in the app, please contact the developer by Email.
Copyright (c) 2017-2018 Ayansh TechnoSoft. All rights reserved.


Likelihood
| Near Certainty | 5 | 9 | 16 | 20 | 23 | 25 |
|---|---|---|---|---|---|---|
| Highly Likely | 4 | 6 | 13 | 18 | 22 | 24 |
| Moderate | 3 | 4 | 10 | 15 | 19 | 21 |
| Low Likelihood | 2 | 2 | 7 | 11 | 14 | 17 |
| Not Likely | 1 | 1 | 3 | 5 | 8 | 12 |
| 1 | 2 | 3 | 4 | 5 | ||
| Negligible | Marginal | Moderate | Critical | Catastrophic | ||
| Consequence |
| Rating | Description |
|---|---|
| 5 - Near Certainty | Assume and Anticipate Occurrence (>90%) Approach and processes cannot mitigate risk; Immature technology; System very complex |
| 4 - Highly Likely | Very High Chance of Occurrence (65% to 90%) Approach and processes not well documented; Technology available but not validated |
| 3 - Moderate | Significant Chance of Occurrence (40% to 65%) Approach and processes are partially documented; Un-validated technology has been shown to be feasible by analogy, test or analysis |
| 2 - Low Likelihood | Occurrence Possible but Less Than Likely (10% to 40%) Current approach and processes understood and documented; most technology has been validated |
| 1 - Not Likely | Occurrence is Possible but Very Unlikely (<10%) Approach and processes are well understood and documented |
| Rating | Cost | Schedule | Performance |
|---|---|---|---|
| 5 - Catastrophic | >50% | >4.5 months | User exit criteria not achieved |
| 4 - Critical | 35% to 50% | 3 to 4.5 months | User exit criteria will not be achieved; all margin has been exceeded (performance failure) |
| 3 - Moderate | 25% to 35% | 1.5 to 3 months | User exit criteria achieved with no margin |
| 2 - Marginal | 10% to 25% | 0.5 to 1.5 months | User exit criteria achieved with reduced margin |
| 1 - Negligible | <10% | <0.5 months | User exit criteria will be met with adequate margins |
Likelihood
| Near Certainty | 5 | 9 | 16 | 20 | 23 | 25 |
|---|---|---|---|---|---|---|
| Highly Likely | 4 | 6 | 13 | 18 | 22 | 24 |
| Moderate | 3 | 4 | 10 | 15 | 19 | 21 |
| Low Likelihood | 2 | 2 | 7 | 11 | 14 | 17 |
| Not Likely | 1 | 1 | 3 | 5 | 8 | 12 |
| 1 | 2 | 3 | 4 | 5 | ||
| Negligible | Marginal | Moderate | Critical | Catastrophic | ||
| Consequence |
| Rating | Description |
|---|---|
| 5 - Near Certainty | Assume and Anticipate Occurrence (>90%) Approach and processes cannot mitigate risk; Immature technology; System very complex |
| 4 - Highly Likely | Very High Chance of Occurrence (65% to 90%) Approach and processes not well documented; Technology available but not validated |
| 3 - Moderate | Significant Chance of Occurrence (40% to 65%) Approach and processes are partially documented; Un-validated technology has been shown to be feasible by analogy, test or analysis |
| 2 - Low Likelihood | Occurrence Possible but Less Than Likely (10% to 40%) Current approach and processes understood and documented; most technology has been validated |
| 1 - Not Likely | Occurrence is Possible but Very Unlikely (<10%) Approach and processes are well understood and documented |
| Rating | Cost | Schedule | Performance |
|---|---|---|---|
| 5 - Catastrophic | >50% | >4.5 months | User exit criteria not achieved |
| 4 - Critical | 35% to 50% | 3 to 4.5 months | User exit criteria will not be achieved; all margin has been exceeded (performance failure) |
| 3 - Moderate | 25% to 35% | 1.5 to 3 months | User exit criteria achieved with no margin |
| 2 - Marginal | 10% to 25% | 0.5 to 1.5 months | User exit criteria achieved with reduced margin |
| 1 - Negligible | <10% | <0.5 months | User exit criteria will be met with adequate margins |


PyChain Client
Wallet Generator
Make Transaction
View Transactions
(current)
View Transactions
Enter a blockchain node URL and click on "View Transactions" button to check all transactions
Node URL:
http://<IP_ADDRESS>:5000


BitShares XT Wallet
Username:
unknown
Receive Addresses
Contacts
Transfer
Transaction History
Block Explorer
Address Book
Unlock Wallet
Spending Password:
Create Address
Label:
Import Key
Label:
Private Key:
Import Bitcoin Wallet
Import Bitcoin & PTS Wallets
Bitcoin Wallet Path:
Bitcoin Wallet Password:
Address Book - Receive Addresses
Address
Label


species areas climate invasive oil woody protected suitable plant distribution China plants potential future habitats used {border-style curcas px;} #ffffff;} change biodiesel invasion bioenergy forest Ecol model models current results risk species. ./j.-...x communis risks using RCP. considered high moluccana (km Jatropha area data ensemble range ranges southern species, values (). Natural ecosystems forest-based increase posed potentially production px; records {font-family Plant example, font-size future. impact parts projections protect threatened Global Number TSS affected changes development distributions double; ecosystem emission generalized habitat map modeling plantations precipitation spatial specific study temperature total Aleurites Bioenergy China. Chinese Fujian Guangdong, Invasive Provinces. Ricinus Table border-color border-width caused curcas, ecosystems. established greater impacts influence means million new number occurrence planting predicted reserves solid; suitability use variables {font-style {font-weight ./j.rser... Biogeogr Biol Change China, Commons Core Creative Database Energ Engler Evol GCB However, J.Y.; Kumar Potential Renew Reserve, Rev Sci Science Species Supplementary Sust Thuiller World Yunnan, analysis annual approach bioclimatic biofuel bold communis, conditions conservation courier; currently different em; endangered generated including information land large material mean moluccana, moluccana. names planted prediction projected projection pseudo-absences pt;} rapid reduce regression scenario selected spread tree true uncertainty unsuitable water


Career Summary
Proactive, experienced software engineer, responsible and known to deliver great and solid web systems. 10 years working with architecture and software development that increased the enterprise's profit. I’m also experienced in the design, architecture and development of APIs with Java, Kotlin, NodeJS and Groovy. Experienced in frameworks like Spring (Java/Kotlin), NestJS (Node) and Grails (Groovy). I also have a deep knowledge on Spring Stack and client-side technologies such as React.js, jQuery and WebComponents. In mobile, I have some experience developing native applications for Android and hybrid solutions with React-Native.
Work Experience
Senior Software Engineer
As a Senior Software Engineer, I am responsible for developing the Checkout solutions for the Nuvemshop Ecommerce Platform. Here, we have REST APIs developed with NodeJS and NestJS, provisioned in AWS infrastructure, monitoring with New Relic, Loggly, Kibana and other tools. I'm responsible for improving the technical quality of the team as much as improving the resiliency of the services we have.
Technologies used:
- Node
- Nest
- React
- Kafka
- MySQL
- MongoDB
- AWS
Senior Software Engineer
As a Senior Software Engineer, I was responsible for leading a team to their best technical status, for the development of distributed services using Java, Kotlin, NodeJS, REST APIs, queues to communicate with each other using an in-house solution based on Apache Pulsar implementation. In the Back-end, we use Spring Stack (Boot, Data, Cloud) and use a Database per Service approach, sometimes using a relational DB (MySQL) and other times using a noSQL approach (Built In-House Key Value Store - KVS - based on Cassandra). In the cloud, we use AWS and GCP to scale and monitor our services. We use a infrastructure manager built here, named Fury, to handle all this infrastructure issues (scale, logging, use new services like databases, KVSs, etc). The services I've worked on here are targeted to deliver funcionality to the Mercado Libre's fullfilment service.
Technologies used:
- Java
- Kotlin
- Spring
- NodeJS
- Groovy
- MySQL
- Apache Pulsar
- AWS
Software Engineer
Development of distributed services using Java, a JMS specification and WebSphere MQ as implementation. Knowledge about Enterprise Service Bus and XML was required to perform the role. Performance and well designed code was a key part of the function I was performing at IBM. Because of that, design patterns and clean code was a crucial part for developing those microservices.
Technologies used:
- Java
- WebsphereMQ
- MySQL
Software Engineer
I worked on scalable applications to migrate solutions developed in other languages. In the REST API, we have used some Java EE specs such as JPA with Hibernate, JAX-RS with RESTEasy as implementation, CDI with Weld as implementation using DDD as software design. We’ve developed a client SDK with methods to access the REST API. In this SDK, we’ve used JAX-RS client specification with Jersey Client API as implementation. In the client application, it was used VRaptor as MVC framework to handle all the requisitions and JSP in the view layer of the application. Maven was used to handle all the dependencies and control the lifecycle of the application. As software version manager, we’ve used Git, with the GitLab in the server. To make continuous integration, we’ve used Jenkins to build and run the testes as soon as a commit was pushed to the server. With this, Jenkins pushed one version of the software on Nexus, located on a local server
Technologies used:
- Java
- NodeJS
- Angular
- MySQL
- Oracle
Skills & Tools
Backend
-
Java
-
Node
-
Kotlin
-
Microservices
-
AWS
Frontend
-
Javascript
-
Typescript
-
React
-
HTML/CSS/SASS/LESS
Others
- DevOps
- Code Review
- Git
- Unit Testing
- Kafka
- MongoDB
- MySQL
- PostgreSQL
- Scrum
Education
-
Graduate Degree on Web Software DevelopmentFederal University of São Carlos (UFSCar)2016 - 2017
-
Technologist in Information Technology ManagementTechnology’s College of Jahu (Fatec-JAHU)2013 - 2015
-
Computer technicianTechnology’s School of Barra Bonita (Etec Comendador João Rays)2011 - 2012
Certifications
-
Oracle Certified Associate, Java SE 8 Programmer, issued by Oracle
-
Oracle Certified Professional, Java SE 8 Programmer, issued by Oracle
-
Cloud Java Developer, issued by IBM
Language
- Portuguese (Native)
- English (Advanced)
- Spanish (Advanced)
- French (Intermediary)
Interests
- Travel
- Games
- Soccer
- Guitar


docker login- Log into a registry with a specific username (user will be prompted for a password):
docker login --username username- Log into a registry with username and password:
docker login --username username --password password server- Log into a registry with password from `stdin`:
echo "password" | docker login --username username --password-stdin