Nmzr
: nominalizer
| Values: | Rel | Ag | Adv | Inst |
Nmzr
is a morpheme that transformes another part of speech to a noun.
Rel
: Relativizer
The relativizing morpheme -mãʔẽ can be regarded as a “translative” which allows to convert a predicate into an argument.
Examples
- okuwapa omanõmãʔẽ “He knows all the dead.”
- owatamaʔẽ oket “The walker is sleeping.”
Ag
: Agentive
The agentive nominalizer is expressed in Tekó with the suffix -har
.
Examples
- kob ibaʔehar “There is someone to do it”
- omõgʷeraharanẽ oʔuo “He eats his saviour.”
Adv
: Adverbial
The adverbial nominalizer is marked in Tekó with suffixes -(e)war
/-wan
. It is often used to express the origin or place of being of an individual, or the usual location of a thing. It attaches to a demonstrative adverb or a postpositional group.
Examples
- amewar “People here”
- ipopewar “sth what is inside (the content)”
- tatapewan “ember (what is in the fire)”
Inst
: Instrumental
The instrumental nominalizer with the suffix -a
, which refers to an unanimate object.
Examples
- abaʔe baʔeraʔɨrapɨhɨka “I made a bird trap. (lit. an instrument for catching birds)”
- wɨraʔazozoga ate “It is the instrument used to pound the comou.”
Diffs
Prague Dependency Treebank
The PDT tagset does not distinguish Ptan
from Plur
and Coll
from Sing
,
therefore this distinction is not being made in the converted data.
Nmzr in other languages: [eme] [jaa] [xav]


PM Pro
Login
E-mail address
Email is required.
Email is invalid.
Password
Password is required.
Fogot password?
send mail
Login
Don't have an account?
SignUp


Rafeh Qureshi
Center for the Economics of Human Dev.
University of Chicago
Chicago, IL 60637
I am a Senior Research Specialist at CEHD, working with Professor James Heckman, Stephen Durlauf and Salvador Navarro. I got my Master’s in Econometrics from UChicago, advised by Professor Stephen Durlauf.
My primary research areas of interest are labor economics and econometrics, with a focus in identifying how skills interact with opportunities in the labor market to explain the heterogenous impacts of policy interventions. Several of my projects have focused on the Intergenerational Mobility, and its drivers in Denmark and the US. A major project has involved trying to map economic time series across generations to get a better sense of what creates mobility across generations, and create a measure that better takes into the broader functional relationships that would more holistically capture components of individual welfare, including notions such as credit constraints and uncertainty.
news
| Oct, 2021 | Submitted to the Conference on Intergenerational Mobility and Inequality (2022) |
|---|---|
| Feb, 2021 | Companion/Survey paper describing the intergenerational mobility papers published. |
selected publications
- Intergenerational Transmission of Lifetime Wellbeing
- Sadegh Eshaghnia, James Heckman, Rasmus Landersoe, Rafeh Qureshi
- Preprint
- Income Variance - Dynamics and Their Heterogeneity
- Rafeh Qureshi
- Master's Thesis


Time and motivation has always been something I’ve struggled with a lot, especially when it comes to mainly self directed activities. I told myself at the beginning of this week that I would work on my touch typing for 30 minutes each day but after the first two days I didn’t continue. I have found that I’m better organizing my time and sticking to accomplishing my goals when I have a better daily routine and so this is something I plan to work on in the upcoming weeks. I want to work on waking up at a more regular time to start my day, setting clearer goals of what I need to accomplish each and the time I need to accomplish those tasks in.
A more rhythmic daily routine is the habit I currently need to work on most and a healthy routine will support building more good habits in the future.


--- layout: default title: Merryn Davies-Deacon permalink: /404.html ---
Apologies, this page does not exist.
Edrek genam, nag eus folen obma.


Site Store-Front
I created Grafica2006.com for improve my skills in
HTML5 and CSS3 combined in Bootstrap
CV Online
The design of my CV/Portfolio Page is made by me
and it is coded with Bootstrap (HTML5+CSS3) and
a little of JavaScript.
Coming Soon
Coming Soon
HTML5
HTML5 is the newest mark-up language
to structuring web page.
CSS3
CSS3 is the newest language to modify
the aspect of a web page.


Jump Boots
In this lesson we will:
- Create a recipe for boots
- Give the boots a custom name
- Check if a player is wearing the boots
- Create an area effect cloud around the player when they have the boots on
Create a recipe for the boots
Inside a Function test
Add a recipe:
You can test that the recipe works by giving yourself diamonds and leather boots for ingredients and a crafting table
Give the boots a custom name
Insert the block "Set custom name to for the stack" in between Result Stack and Stack of 1
And change the custom name to "Jump Boots". Note:Remember to use double quotes
Get what boots the player is wearing
Use the Get boots worn by player block located in Items=>Gear
and then the Custom Name of Stack located in Items=>Stack
Create an area effect cloud when the player is wearing Jump Boots
Use a Logic If block to check what the player is wearing
If they are wearing "Jump Boots", create an area effect cloud
Putting it all together
You can use this diagram for reference:


{% extends 'mooring/base.html' %} {% load static %} {% load forms %} {% block content %}
A confirmation email has been sent to {{ booking.customer.email }}.
{% if booking.cost_total < 0 %} {% if refund_failed %} Your refund has failed. A reference number for your refund is : {% for i in refund_failed %} {{ i.id }} {% endfor %} A job has been creating to manually process your refund. This can take upto 28 days. {% else %} A refund has automatically been refunded to you, please allow 1-3 business days for the money to be credit to your account. {%endif %} {% endif %}


Milan Fashion Week
Mercedes-Benz Fashion Week Milan
MIPEL
Ferrara Sposi
Mare D Amare
Milano Moda Donna
Super
Venezia Sposi
Nigeria FashionExpo
Fashion and Ready-to-Wear Garment Exhibition
Port Harcourt Fashion Festival
Africa Fashion Week Nigeria
African Kids and Teens Fashion Week
London Fashion Festival (LFF) Lagos
Nexus Luxury Party
Nigerian Handmade Local Fabrics and Handicrafts Exhibition
Fashionomics
Feeric Fashion Week
Barcelona Bridal Week
080 Barcelona Fashion
Donastia Fashion Week
Beauty Valencia
Fiesta Y Boda
Fira Novios
Mercedes-Benz Fashion Week
Momad Metropolis
Mercedes Benz China Fashion Week
Hong Kong Fashion Week
Shanghai Fashion Week
East China Fair
Fashion Access
Amazon Fashion Week Tokyo
Amazon India Fashion Week
Bangalore Fashion Week
Chennai
Hyderabad Fashion Week
International Fashion Week Goa
Jaipur
India Beach Fashion Week
India Kids Fashion Week
Lakme Fashion Week
Pune Fashion Week
Kolkata Fashion Expo
Aurora Fashion Week
Mercedes-Benz Fashionweek Russia
Collection Premiere Moscow
Fashion And Style Kazan
INTERCHARM Professional
Amsterdam Fashion Week
Mercedes Benz FashionWeek Amsterdam
Dutch Sustainable Fashion Week
50 Plus Beurs
Melbourne Spring Fashion Week
Mercedes-Benz Fashion Week Australia
Mercedes-Benz Fashion Festival Sydney
Melbourne Fashion Festival
Sydney Fashion Weekend
International Sourcing Expo Australia
Mundella EveryWoman Expo
Rio de Janeiro
São Paulo
Couromoda
Dakar Fashion Week
Fashion Week Zanzibar
Hub of Africa Addis Fashion Week
South Africa Fashion Week
Swahili Fashion Week (Tanzania)
Zimbabwe Fashion Week
Fashion Week Tunis
Professional Beauty Durban
SA Fashion Week
The Wedding Expo Johannesburg
Arab Fashion Week
MB Kiev Fashion Days
Odessa Fashion Week
Ukrainian Fashion Week
Bogota Fashion Week
Cartagena Fashion Week
Tel Aviv Fashion Week
Seoul Fashion Week
Indonesia FW
Jakarta Fashion Week
Crafina
New Zealand Fashion Week
Womens Lifestyle Expo Palm
MQ Vienna FW
Hochzeitswelt Wels
Schuh Austria
Caribbean Fashion Week
Carribbean Fashion Plus Week
.
Fashion Week Stockholm
Dublin Fashion Festival
Athens Xclusive Designers Week
Mercedes-Benz FashionWeek Mexico
15 Fest Expo
IM Intermoda Mexico
Islands Fashion Week
Belarus Fashion Week
Fiji Fashion Week
Tbilisi Fashion Week
Tony & Guy Fashion Week Budapest
Reykjavik Fashion Festival
Pakistan Fashion Week London
Vietnam International Fashion Week
Fashion Week Zagreb
Bangkok International Fashion Week
Malaysia Fashion Week
Copenhagen Fashion Week
Mercedes-Benz Fashion Week Istanbul
Fashion Days Zurich
Moda Lisboa
Exponoivos Lisbon
Lisbon Design Show
Fashion Philosophy - Fashion Week Poland
Taipei in style
Malina Fame
Philippines International FW
Singapore Fashion Week
Baltic Fashion and Textile Riga
Aqua Therm Tashkent
Helsinki Fashion Week
Norwegian Fashion Week


Assignments done during 2017 Designing interaction course
Interactive Story
Processing
Interactive Timeline
Land Protest in Khayelitsha
Data journalism and Data Visualisation
City of Cape Town: Vote 8
SRP
Senior Rresearch Project: Public Health Services in Cape Tow
About
Sneak peak into Gabrielle's Life
Academically
BA: Interactive Media University of Cape Town
I am currently a third year interactive media student with a passion for desiging interactions. I enjoy buidling maps and creating data visuals.
Business Owner
Vintage Treasures pop-up clothing store
Started my business 3 years ago. I am hoping to strat an online store in the next 3 years.
For Fun
Art, nature, design, photography and the ocean
I am happiest when creative tasks are involved.
Contact Me<EMAIL_ADDRESS>Interactive Storybook
Young Hustla comic book adapted into an interactive story book. Using proccessing and APDE to convert to android application.
Andile, the owner of Young Hustla's, gave athourisation for use of the comics content. The comic was taken form a PDF format. The visuals were cropped out of the PDF file into photoshop allowing minimum alterations. Below is the Video of the interactive application
Website aimed at helping Cape Town based citizens find out needed information about public services
Basic Project Outline
Data Journalism
Information from South African Census and news coverage of issuess relating to public services. Once the key issues are established a solution will be put forward.
statistics
Government Health Care stats
69.3 % of households went to public hospitals or clinics when a household memeber fell ill or got injured.
43% of patients visiting public clinics complained of long waiting times.
Western Cape Broadband stats (2014)
48,7% of South Afican housholds have access to internet.
61,2% of the Western Cape households have access to the interent
By 2018 the Western Cape Government predicts wifi will be accessable in each district. Therefore increasing the need for websites with valuable information.
Final SRP Plan
Public Health services in the Western Cape
This paper aims to disclose the concerns young citizens (age 15-29) face when using public health services for family planning, maternity and abortion to provide possible solutions. With the research conducted, a website will be designed according the concerns which young citizens in aim of addressing their concerns when starting family planning, maternity, or abortion.
Research
According to statistics, the demand for information on family planning, maternity and abortion are high amongst youth in the Western Cape.
Contraception and Childbirths
If all of the sexually active unmarried women who said they want to space or limit their births were to use family planning methods, the Contraceptive prevalence rate would increase from 64% to 88%.
A comparison was done between the SADHS 1998 with the SADHS 2016 on women and contraceptive. The comparison found that the use of injectable contraceptives declined from 44% in 1998 to 26% in 2016 and the use of the pill declined from 16% in 1998 to 5% in 2016; the use of the male condom rose from 3% in 1998 to 24% in 2016. In 2016 1426 of youth aged 15-19, had 6.1% had live births, 76.3% have begun childbearing.
Within the Western Cape 0.5% of teenagers, (age 15-19), have given live birth, 3.1% are pregnant with their first child. 87.3% of the Western Capes unmarried sexually active women. There is a clear demand for information on family planning that is accessible to the Western Cape youth.
These percentages give a very limited view of the context as a whole; however, it provides insight into the use of contraception and maternity amongst women.
Abortion
According to the COTP Act, every woman has the right to access early termination of pregnancy in accordance with her beliefs. The minor-consent provision in the Act also ensures that minors have access to safe abortion services without the need for parental consent.
According to the country fact sheet, public health facilities document abortion procedures and many clients fear the breach of confidentiality; the shame associated with terminating a pregnancy means many women access illegal abortion services, which they believe to be discrete. An estimated 50% of abortions in South Africa continue to occur outside of designated health facilities.
These facts indicate a need for space were young citizens can get information on abortion laws and abortion and post-abortion care services.
Socioeconomic influences
Access to proper medical attention and hygienic conditions during childbirth can reduce the risk of complications and infections that may lead to death or serious illness for the mother, baby, or both (WHO 2006). Mothers’ educational status is highly associated with whether a skilled provider assists their delivery and whether the birth happens in a health facility. 89% of births to mothers with no education were assisted by a skilled provider and 86% were delivered in a health facility, while 98% and 99%, respectively, of births to mothers with more than a secondary education. This comparison was made with wealth distribution and a similar outcome was found.
Proving valuable complicated information in a simple understandable manner is in clear demand among the 99% of women who are not giving birth in a medical condition.
Problem
Based on the statistics there is demand for information on family planning, contraception and abortion in the Western Cape. The problems identified were discovered through analysing data and spending a week at a day hospital and clinic in the Western Cape.
Within the Western Cape, many areas have different needs amongst the youth that use public health care. The established solution aims at simplifying the information and make it understandable to the majority of the Western Cape. All the content will be translated into isiXhosa allowing users who are not proficient in English to access the information.
Solution
Data Journalism
The solution will use a data journalism format in which to inform its users. Data journalism helps journalist tell a complex story through engaging infographics. The Data journalism handbook suggests three question which all data journalists need to ask.
Firstly, how was the data collected? In the case of this study all, the information was collected from Statics of South Africa and through analysing interaction within day hospitals and clinics.
Secondly, what is there to learn? For the data collected, the demands of the users of public health care for family planning, maternity and abortion can be identified.
Thirdly, how reliable is the information? This research does not interrogate the data extensively, however, survey sample sizes were taken into account when analysing the data.
The above answers determine whether the information can be used to tell a valuable story. Simplifying information is not only about informing the public on statics and facts, it is about conveying a story to the audiences. This solution aims at taking the data and simplifying it so it can become accessible but also it tells a story about the context in which the data was taken from. The solution will include interviews with those who the statistics speak of to add a human element.
Solution Plan
A media platform will be designed for Western Cape on family planning. The mobile friendly website will allow the user to find a clinic or day hospital within their area. The information will include the nearest form of public transport from each clinic or day hospital. The information on each clinic and day hospital specialisation will be included.
The website will aim at simplifying information provided by official government website about family planning. A checklist will be used to help users keep track of the needed documents before attending the facility. The general procedure at each day hospital and clinic will be outlined if the system is new to the user. The website will facilitate abortions demands through outlining laws and policies around abortion. It will provide information about services for abortion and post abortion. Contact details of private businesses that deliver medication from specific clinics will be included.
All the information provided on the website will use data journalism methods when deciding how data will be conveyed.
Design (interface)
The above image shows the basic interface of the website


Image Features and Warping
Table of Contents:
- Due Date
- Introduction
- Part 1: Coding
- Part 2: Short Answer
- Submission Guidelines
- Collaboration Policy
## Due Date
10:59AM, Tuesday, October 2nd, 2018
This homework reviews some important concepts related to Project 2 (Panorama Stitching). It is composed
of a coding problem and two short answer questions.
## Part 1: Coding - Harris Corner Detection (50 pts)
In Project 2, you’ll be using Matlab’s built-in corner detector, via the cornermetric
function. In this coding assignment, we’ll ask you to implement a simple corner detector yourself: the “Harris” corner detector.
Check out these slides from Penn State’s CSE486 for an excellent overview of how the Harris Corner
Detector works.
What you need to do.
Write a matlab function corner_response=myharris(I, window_size, corner_thresh)
which implements Harris
corner detection. To make things a bit easier, you don’t need to implement the final non-maximal suppression step. So, it should return a heatmap of corner response, for a given image, window size, and corner threshold.
See “Submission Guidelines” for instructions on what to include in your report.
Question 1: Harris Corner Detector Properties (15 pts)
Corners are useful for matching features between different images of the same scene, which might have changes in lighting, viewpoint, etc. Consider the following simple changes that we might expect to occur between two images of a given scene:
- image rotation
- image scaling
- increment all pixel values by a constant.
- multiply all pixel values by a constant.
Based on your understaning of the Harris Corner Detector, how robust do you think it would be to each of these changes? e.g., if an image were rotated, would the Harris corner detector identify the same corners before and after rotation?
Answer briefly– two paragraphs or fewer.
Question 2: Image Warping and Invertible Transformations (35 pts)
Given a digital image, and an invertible transformation of the form
we would like to compute the warped image whereby each point in the original image is transformed to
its new location.
This type of image warping is exactly what the Matlab imwarp
function does, for
example.
We could envision a somewhat straightforward algorithm for performing this image warp:
for each location in the original image, compute the nearest pixel location of the
transformed point in the warped image, and copy the color found in into the
warped image at location .
However, the vastly preferable algorithm is to loop over the destination pixels
in the warped image, and use the inverse transformation to identify
the nearest pixel in the source image and copy the color from that source pixel to the
destination.
What is the difference between the two approaches? Why is the second one preferable? Please answer
in no more than a paragraph.
We will deduct points if your homework doesn’t follow these specifications.
File tree and naming
Your submission on Canvas must be a zip file, following the naming convention YourDirectoryID_hw2.zip. For example, xyz123_hw2.zip. The file must have the following directory structure, based on the starter files
YourDirectoryID_hw2.zip/
- myharris.m
- report.pdf
Report
Please run your corner detector on these images (also used in project 2), for several different window sizes and corner threshold values, and include these results in your report.
Also include your responses to the short answer questions from part 2.
As usual, your report must be full English sentences,not commented code.
## Collaboration Policy
You are encouraged to discuss the ideas with your peers. However, the code should be your own, and should be the result of you exercising your own understanding of it. If you reference anyone else’s code in writing your project, you must properly cite it in your code (in comments) and your writeup. For the full honor code refer to the CMSC426 Fall 2018 website


WITNESS LIST Natural Resources Committee April 12, 2005 - 1:30P HB 1139 Registering, but not testifying: For: Patterson, Jerry Land Commissioner (General Land Office), Austin, TX On: Letteri, Noelle (General Land Office) SB 3 FOR: Galusha, Marilyn (Guitar Holding Co.), Abilene, TX Guitar, Phil (Guitar Holding Co. LP), Abilene, TX Hess, Myron (National Wildlife Federation), Austin, TX Hofer, Paul (The Guitar Holding Co.), Ontario, Canada James, Jerry (City of Victoria), Victoria, TX Keith, Bob (South Central Texas Water Advisory Committee), Victoria, TX Kelly, Mary (Environmental Defense), Austin, TX Kramer, Ken (Lone Star Chapter, Sierra Club), Austin, TX Langford, David (Texas Wildlife Association), Comfort, TX Lynch, William (The CL Ranch, The Lynch Family, The Keith Richardson Family), Dell City, TX Middleton, Gary (Guadalupe Basin Coalition), Victoria, TX Peterson, Ken (Texas Rural Water Association), Austin, TX Potts, Robert (Edwards Aquifer Authority), San Antonio, TX Raabe, Steven (San Antonio River Authority), San Antonio, TX Robbins, Dean (Texas Water Conservation Association), Austin, TX Sherman, Lynn (Water Texas), Austin, TX Stokes, Bob (Galveston Bay Foundation), Webstes, TX Thomas, Roy (Texas Pacific Land Trust), Dallas, TX Vaughan, Ben (Coastal Conservation Assocation Texas), Austin, TX Votteler, Todd (Guadalupe Basin Coalition), Seguin, TX Williams, CE (Panhandle Groundwater District), WhiteDeer, TX ON: Bresnen, Steve (North Harris County Regional Water Authority), Austin, TX Creighton, Brandon (Lonestar Groundwater Conservation District), Conroe, TX Hartmann, Steve (University of Texas System), Midland, TX Henneberger, John (Texas Low Income Housing Information Service), Austin, TX Johnson, Bob Director (Dallas Water Utilities, City of Dallas), Dallas, TX Kosub, Steve (San Antonio Water System), San Antonio, TX Leonhard, Douglas (San Antonio Water System), San Antonio, TX Malthies, Zan (Middle Pecos Groundwater Conservation District), Fort Stockton, TX Patterson, Jerry Land Commisoner (General Land Office), Austin, TX Runge, Caroline (Menard County Underground Water District and West Texas Regional Groundwater Alliance), Menard, TX Ward, J. Kevin (Executive Adminstrator, Texas Water Development Board), Austin, TX Registering, but not testifying: For: Biggers, Roger (New Braunfels Utilites), New Braunfels, TX Birdwell, Wes (Texas Floodplain Management Association), Austin, TX Howe, Billy (Texas Farm Bureau), Austin, TX Johnson, Russell S. (Guitar Holding Company), San Antonio, TX Jones, Andy (Self), Austin, TX Small, Ed (Texas and Southwestern Cattleraiser Association), Austin, TX Taylor, Mark (SCTWAC, City of San Marcos), San Marcos, TX Witherspoon, Brett (Self), Fort Worth, TX Against: Carlson, Pat Chairman (Tarrant County Republican Party), Grapevine, TX On: Butler, Susan (San Antonio Water System), San Antonio, TX Cockrum, Charles Shea (Self), Cuero, TX Doggett, Robert (Texas Low Income Housing Information Service), Austin, TX Morrison, James (Walker County Special Utility District), Huntsville, TX Mullican, Bill (Texas Water Development Board), Austin, TX Providing written testimony: On: Vaughan, Edward (Self) SB 667 FOR: Kramer, Ken (lone Star Chapter of Sierra Club), Austin, TX AGAINST: Fisher, Jon (Texas Chemical Council), Austin, TX Miksa, Mary (Texas Association of Business), Austin, TX Morphew, Cindy (Texas Oil & Gas Association), Austin, TX Registering, but not testifying: For: Alvarez, Ramon Ph.D. (Environmental Defense), Austin, TX O'Brien, Beth (Public Citizen), Austin, TX SB 784 FOR: Ito, Luis H. (El Paso Electric Company), El Paso, TX Uribarri, Laura (El Paso Electric), Austin, TX AGAINST: Kelly, Mary (Environmental Defense), Austin, TX Registering, but not testifying: Against: Alvarez, Ramon (Environmental Defense), Austin, TX SB 1032 AGAINST: Donaldson, Curtis (Clean Fuel, USA; National Propane Gas Association.; Ameri Gas), Georgetown, TX ON: Garrett, Candice (Texas Commission on Environmental Quality), Austin, TX Registering, but not testifying: For: Hodges, Ken (Texas Farm Bureau), Austin, TX Miksa, Mary (Texas Association of Business), Austin, TX SB 1063 FOR: Bevel, Jr., Orville (Greater Lake Palestine Council; Greater Lake Palestine Coalition), Chandler, TX Registering, but not testifying: For: Crocker, Maureen (City of Houston), Houston, TX Hitt, Bob (Self), Chandler, TX Against: McClellan, John (Monarch Utilities I, LP), Dallas, TX SB 1064 FOR: Bevel, Jr., Orville (Greater Lake Palestine Council; Greater Lake Palestine Coalition), Chandler, TX Pierce, Gayle (Community Improvement Association of Shadow Bay, Inc.), Willis, TX Weidner, Judith (Crighton Ridge Subdivision HOA), Conroe, TX AGAINST: Zeppa, Mark (Law Office of MarkZeppa), Austin, TX ON: Blackhurst, Steve (Aqua Texas), Pflugerville, TX Loy, Chuck (Aqua Texas), Austin, TX Registering, but not testifying: For: Hitt, Bob (Self), Chandler, TX Hitt, Bob (Self), Chandler, TX Against: McClellan, John (Monarch Utilities I, LP), Dallas, TX On: Holcomb, Doug (TCEQ), Austin, TX Martinez, Robert (TCEQ), Austin, TX SB 1169 FOR: Hepburn, George (CenterPoint Energy), Austin, TX AGAINST: Pous, Jacob (ATMOS Texas Municipalitites), Austin, TX Seeber, Joey Mayor, City of Tyler (Citizens of Tyler), Tyler, TX Todd, Elizebeth (Coalition of Citites Served by Atmos Energy), Austin, TX ON: Croft, Hal (General Land Office), Austin, TX Pitner, Steve (Railroad Commission), Austin, TX Registering, but not testifying: For: Nugent, Patrick (Texas Pipeline Association), Austin, TX Patterson, Jerry (General Land office), Austin, TX Yarbrough, Charles (Atmos Energy Corporation), Dallas, TX Against: Warren, Jill (City of Carrolton), Austin, TX Providing written testimony: Against: Smith, Ed Mayor (City of Marshall), Marshall, TX SB 1407 FOR: Valdez, Jerry (North Texas Municipal Water District / Texas Area Solid Waste Authority), Austin, TX SB 1428 ON: CArrillo, Victor (Texas Energy Planning Council), Austin, TX SB 1602 Registering, but not testifying: For: Patterson, Jerry Commissioner (Texas General Land Offlice), Austin, TX On: Rogers, Dwain (Texas General Land Office), Austin, TX SB 1634 FOR: Blackman, David (Burlington Resources), Houston, TX Carrillo, Victor (Texas Energy Planning Council), Austin, TX Robinson, Douglas (Henry Petroleum , LP; Texas Energy Planning Council; Permion Basin Petroleum Assoc.), Midland, TX Stevens, Bill (Texas Alliance of Energy Producers), Austin, TX Registering, but not testifying: For: Cole, Peggy (Dominion Exploration & Production), Houston, TX Cox, Jayme (Shell Oil), Austin, TX Haynes, Adam (Texas Independent Producers & Royalty Owners), Austin, TX Knorpp, Kerry (Masterson Ranches; Batson / Bivions Minerals; Brent Ranches; Neal/Thompson Ranches; Bee-Tree Texas Minerals), Amarillo, TX SB 1710 AGAINST: Reed, Cyrus (Lone Star Chapter of Sierra Club), Austin, TX Schneider, Robin (Texas Campaign for the Environment), Austin, TX ON: Harwell, Phil (TCEQ), Austin, TX Registering, but not testifying: On: Harden, Ashley (Texas Department of Agriculture), Austin, TX Powers, Trey (Texas Department of Agriculture), Austin, TX


Use these shorthand utilities for quickly configuring the position of an element.
Quick positioning classes are available, though they are not responsive.

...

...

...

...

...

Position an element at the top of the viewport, from edge to edge. Be sure you understand the ramifications of fixed position in your project; you may need to add additional CSS.

...

Position an element at the bottom of the viewport, from edge to edge. Be sure you understand the ramifications of fixed position in your project; you may need to add additional CSS.

...

Position an element at the top of the viewport, from edge to edge, but only after you scroll past it. The .sticky-top
utility uses CSS’s position: sticky
, which isn’t fully supported in all browsers.
IE11 and IE10 will render position: sticky
as position: relative
. As such, we wrap the styles in a @supports query, limiting the stickiness to only browsers that can render it properly.

...


--- layout: post title: Improving performance and scalability with DDD date: '2009-06-24T10:11:00.001+01:00' author: solrevdev tags: modified_time: '2009-06-24T10:11:37.813+01:00' blogger_id: tag:blogger.com,1999:blog-31446756.post-2612456471044438919 blogger_orig_url: http://www.solrevdev.com/2009/06/improving-performance-and-scalability.html ---
Domain Driven Design or DDD is something that I have been reading a lot about recently and trying to practise in some of my pet projects and today I came across an excellent post that discusses improving performance ,scalability and distributed systems.


-
Dropbox Tech Blog – Introducing Pyston: an upcoming, JIT-based Python ...
tech.dropbox.com
Hello everyone, I’m very excited to announce Pyston, a new open-source implementation of Python, currently under development at Dropbox. The goal of ...
-
Is Dropbox a bad place for women to work? Why or why not? - Quora
www.quora.com
Please confirm your email address. Resend Confirmation Link
-
The Dropbox Blog – Do more on the go with a new Dropbox for iOS 8
blog.dropbox.com
Dropbox lets you bring your photos, docs, and videos anywhere and share them easily. Never email yourself a file again!
-
Black Market Takes Over the iPhone 6 Lines
www.youtube.com
Some thoughts from me (the guy who made this movie). I am a big tech nerd. I slept on the streets to get the very first iPhone, when I was a teenager ...
-
The Dropbox Blog – Introducing a more powerful Dropbox Pro
blog.dropbox.com
Dropbox lets you bring your photos, docs, and videos anywhere and share them easily. Never email yourself a file again!
-
The Dropbox Blog – New addition to our Board of Directors
blog.dropbox.com
Dropbox lets you bring your photos, docs, and videos anywhere and share them easily. Never email yourself a file again!
-
Dropbox - Debug your Dropbox app with app error logs - Developer Blog
www.dropbox.com
App error logs make it easy to debug Dropbox API calls.
-
Coursera
www.coursera.org
Take free online classes from 80+ top universities and organizations. Coursera is a social entrepreneurship company partnering with Stanford ...
-
It might get weird: why Dropbox employees are goofing around on company ...
www.theverge.com
Out in the San Francisco bay, behind AT inside, two...
-
Sublime Text Giveaway
sublimetexttips.com
Tired of seeing the Sublime Text registration popup? Enter now to win your very own FREE license for Sublime Text 3. (If you’ve already paid for your ...
-
All Our Patent Are Belong To You | Blog | Tesla Motors
www.teslamotors.com
Yesterday, there was a wall of Tesla patents in the lobby of our Palo Alto headquarters. That is no longer the case. They have been removed, in the ...
-
xkcd: Heartbleed Explanation
xkcd.com
Warning: this comic occasionally contains strong language (which may be unsuitable for children), unusual humor (which may be unsuitable for adults), ...
-
NSA Said to Exploit Heartbleed Bug for Intelligence for Years - Bloomberg
www.bloomberg.com
NSA Said to Exploit Heartbleed Bug for Intelligence for Years
-
A hackable text editor for the 21st Century
atom.io
At GitHub, we’re building the text editor we’ve always wanted: hackable to the core, but approachable on the first day without ever touching a config ...
-
Build software better, together
github.com
GitHub is the best place to build software together. Over 4 million people use GitHub to share code.
-
Start @ a Startup by Business Today & Sequoia Capital, October 11-12th, NYC
startup.businesstoday.org
Default Text
-
PythonLabs ~ Success Stories
python.pro.br
Python is in daily use in mission-critical applications at many leading-edge, high-growth enterprises. The language, associated tools and ...
-
Why Guido van Rossum supports the Ada Initiative, wears a "Python is for ...
adainitiative.org
The Ada Initiative has made record progress for women in open tech/culture in 2014. Now we ask you to donate before October 8th to support our ...
-
View Issue/Pull Request buttons for Gmail
github.com
If you're a Gmail user who gets GitHub notifications via email, you'll notice that we've added subject-line links to issues and pull requests on ...
-
Dropbox - Listary - All your lists - Developer Blog
www.dropbox.com
A beautiful iOS app with shared datastores and local datastores.
-
Guido van Rossum on finding his way
medium.com
The Python creator and Dropbox engineer reflects on his early days in programming
-
Dropbox - Swift apps with Dropbox - Developer Blog
www.dropbox.com
Learn how to use the Dropbox SDK in your Swift app.
-
Introducing split diffs
github.com
Diffs now come in two flavors, unified and split. Switch between them on pull request, commit, and compare pages using the toggle in the top right of ...


{% extends '_main.html' %} {% load core_tags %} {% load datasets_tags %} {% block initialGTMDataLayer %} {{ block.super }} {% endblock %} {% block page_title %} Remove {{ collection.name }} {% endblock %} {% block go_back %}Back{% endblock %} {% block content %}
We've sent your request to the collection owner.
They will either confirm access to the collection, or contact you to ask for more information.
You will get a confirmation email confirming you've been added to the collection successfully
Return to Data Workspace homepage {% endblock %}


Import, manipulate and explore results generated by 'Antares', a powerful open source software developed by RTE (Réseau de Transport d’Électricité) to simulate and study electric power systems (more information about 'Antares' here : <https://github.com/AntaresSimulatorTeam/Antares_Simulator>). You can see the results of several ANTARES studies here : <http://bpnumerique.rte-france.com/>.
| Version: | 2.2.1 |
| Imports: | data.table (≥ 1.9.6), bit64, lubridate (≥ 1.7.1), plyr, methods, stats, stringr, shiny |
| Suggests: | rhdf5 (≥ 2.24.0), testthat, knitr, rmarkdown, foreach, parallel, DT, htmltools |
| Published: | 2018-10-18 |
| Author: | Jalal-Edine ZAWAM [aut, cre], Francois Guillem [aut], Benoit Thieurmel [aut], Titouan Robert [aut], RTE [cph] |
| Maintainer: | Jalal-Edine ZAWAM <jalal-edine.zawam at rte-france.com> |
| BugReports: | https://github.com/rte-antares-rpackage/antaresRead/issues |
| License: | GPL-2 | GPL-3 | file LICENSE [expanded from: GPL (≥ 2) | file LICENSE] |
| URL: | https://github.com/rte-antares-rpackage/antaresRead |
| NeedsCompilation: | no |
| Materials: | NEWS |
| CRAN checks: | antaresRead results |
| Reference manual: | antaresRead.pdf |
| Vignettes: |
Vignette Title Vignette Title |
| Package source: | antaresRead_2.2.1.tar.gz |
| Windows binaries: | r-devel: antaresRead_2.2.1.zip, r-release: antaresRead_2.2.1.zip, r-oldrel: antaresRead_2.2.1.zip |
| OS X binaries: | r-release: antaresRead_2.2.1.tgz, r-oldrel: antaresRead_2.2.1.tgz |
| Old sources: | antaresRead archive |
| Reverse depends: | antaresProcessing, antaresViz |
Please use the canonical form https://CRAN.R-project.org/package=antaresRead to link to this page.


This text should not be spanned across two columns.
This text should be below the previous text, but still on the left.
The beginning of this text should start next to or below the previous text, and still in the left column. However, when made sufficiently longer than the previous block of text, it should spill into the right column instead of staying below the block before it.


ob_start
(PHP 4, PHP 5, PHP 7)
ob_start — 打开输出控制缓冲
说明
bool ob_start ([ callback $output_callback [, int $chunk_size [, bool $erase
]]] )
此函数将打开输出缓冲。当输出缓冲激活后，脚本将不会输出内容（除http标头外），相
反需要输出的内容被存储在内部缓冲区中。
内部缓冲区的内容可以用 ob_get_contents() 函数复制到一个字符串变量中。想要输出存
储在内部缓冲区中的内容，可以使用 ob_end_flush() 函数。另外，使用 ob_end_clean()
函数会静默丢弃掉缓冲区的内容。
Warning
当有正在调用的回调函数时，一些网络服务器（例如Apache）会改变一个脚本的工作目录
。你可以在回调函数中再把它改回来，例如 chdir(dirname($_SERVER
['SCRIPT_FILENAME'])) 。
输出缓冲区是可堆叠的，这即意谓着，当有一个 ob_start() 是活跃的时，你可以调用另
一个 ob_start() 。只要确保又正确调用了 ob_end_flush() 恰当的次数即可。如果有多
重输出回调函数是活跃的，输出内容会一直按嵌套的顺序依次通过它们而被过滤。
参数
output_callback
可选参数 output_callback 函数可以被指定。此函数把一个字符串当作参数并返回一
个字符串。当输出缓冲区被( ob_flush(), ob_clean() 或者相似的函数)冲刷（送出
）或者被清洗的时候；或者在请求结束之际输出缓冲区内容被冲刷到浏览器的时候该
函数将会被调用。当调用 output_callback 时，它将收到输出缓冲区的内容作为参数
并预期返回一个新的输出缓冲区作为结果，这个新返回的输出缓冲区内容将被送到浏
览器。如果这个 output_callback 不是一个可以调用的函数，此函数会返回 FALSE
。
如果回调函数有两个参数，第二个参数会由一个位域补充，该位域由
PHP_OUTPUT_HANDLER_START, PHP_OUTPUT_HANDLER_CONT 和 PHP_OUTPUT_HANDLER_END
组成。
如果 output_callback 返回 FALSE ，其原来的输入内容被直接送到浏览器。
这个参数 output_callback 可以通过直接给一个 NULL 值而避开。
ob_end_clean(), ob_end_flush(), ob_clean(), ob_flush() and ob_start() 不能
从一个回调函数中调用。如果从回调函数中调用了它们，产生的行为是不明确的。如
果想要删除缓冲区的内容，从回调函数中返回一个"" (空字符串)。更不能从一个回调
函数中使用像print_r($expression, true) 或highlight_file($filename, true) 一
样的输出缓冲函数。
Note:
在PHP 4.0.4中， ob_gzhandler() 被引入是为了简化把gz编码过数据发送到支持
压缩网页的浏览器。 ob_gzhandler() 会判定浏览器可以接受哪种类型的编码内
容，并返回相应的输出。
chunk_size
如果可选参数 chunk_size 被赋值了，在任何一个能引起缓冲区的长度等于或超过
chunk_size 的输出操作后，缓冲区都会被刷送。默认值 0 意味着函数仅在最后被调
用，其余的特殊值可以将 chunk_size 从 1 设定到 4096。
erase
如果可选参数 erase 被赋成 FALSE，直到脚本执行完成缓冲区才被删除。这使得，如
果调用了冲刷和清洗（清除）函数，会抛出一个“notice”,并返回 FALSE 值。
返回值
成功时返回 TRUE，或者在失败时返回 FALSE。
更新日志
版本 说明
4.3.2 在传递的 output_callback 不能被执行时，此函数被改成返回 FALSE
4.2.0 添加了 erase 参数。
范例
Example #1 用户自定义回调函数的例子
It's like comparing apples to oranges.
以上例程会输出：
It's like comparing oranges to oranges.
参见
• ob_get_contents() - 返回输出缓冲区的内容
• ob_end_clean() - 清空（擦除）缓冲区并关闭输出缓冲
• ob_end_flush() - 冲刷出（送出）输出缓冲区内容并关闭缓冲
• ob_implicit_flush() - 打开/关闭绝对刷送
• ob_gzhandler() - 在ob_start中使用的用来压缩输出缓冲区中内容的回调函数。
ob_start callback function to gzip output buffer
• ob_iconv_handler() - 以输出缓冲处理程序转换字符编码
• mb_output_handler() - 在输出缓冲中转换字符编码的回调函数
• ob_tidyhandler() - ob_start callback function to repair the buffer
User Contributed Notes 58 notes
===============================================================================
You can use PHP to generate a static HTML page. Useful if you have a complex
script that, for performance reasons, you do not want site visitors to run
repeatedly on demand. A "cron" job can execute the PHP script to create the
HTML page. For example:
===============================================================================
If you're using object-orientated code in PHP you may, like me, want to use a
call-back function that is inside an object (i.e. a class function). In this
case you send ob_start a two-element array as its single argument. The first
element is the name of the object (without the $ at the start), and the second
is the function to call. So to use a function 'indent' in an object called
'$template' you would use .
===============================================================================
The following should be added: "If outbut buffering is still active when the
script ends, PHP outputs it automatically. In effect, every script ends with
ob_end_flush()."
===============================================================================
With ob callback: note that the second parameter sent to your method won't help
you differentiate between flush calls and calls to ob_clean, but the buffer
contents is sent in both cases, so you end up parsing data that isn't going to
be used. Also, note that the constant PHP_OUTPUT_HANDLER_START is never
actually sent, rather the integer "3" turns up on first flush:
";
$output = "$string
";
if(!$done) return $output;
// print_r($input, 1) causes an error and var_export just doesn't work
$output .= '
';
foreach($input as $k=>$v) $output .= "$k: $v";
return $output;
}
ob_start('ob_handler');
echo 'flush';
ob_flush();
echo 'flush 2';
ob_flush();
echo 'clean';
ob_clean();
echo 'flush 3';
ob_flush();
echo 'end flush';
ob_end_flush();
?>
flush
flush 2
flush 3
end flush
0: Flag is not a constant (3): flush
1: PHP_OUTPUT_HANDLER_CONT (2): flush 2
2: PHP_OUTPUT_HANDLER_CONT (2): clean
3: PHP_OUTPUT_HANDLER_CONT (2): flush 3
4: PHP_OUTPUT_HANDLER_END (4): end flush
I suppose the START flag problem *may* be a bug but I'm not able to upgrade
before reporting since I must have the same version as my server (I'm on PHP
5.2.6). If anyone has 5.2.11 or other stable version feel free to test/report
as you see fit.
===============================================================================
Following clement dot ayme at st dot com 's remark :
In my experience it seems that the output IS buffered, but ALSO sent to the
standard output !
===============================================================================
Just a word of warning to those like myself who are upgrading from 5.3. I have
a piece of code that used to work:
Which is not working anymore (I get an error like: Warning: ob_start():
function '' not found or invalid function name).
It's easily fixed though, just changed the '' to a null, like this:
Which preserves the code intention but works :)
===============================================================================
Some web hosting servers (mine do, at least) have in their php.ini the
following setting:
output_handler = ob_gzhandler
This proved problematic for php-scripts which returns an image or a binary file
in general, since there is no way to determine the content length of the
compressed file.
Since I spent a lot of time scouring the net searching for a work-around
(.htaccess-modifications were out of the picture for various reasons), I found
this to work nicely to cancel out the ob_gzhandler specified in the php.ini:
Put this at the top of the script before anything else is written to the page,
and the script result will not be compressed.
===============================================================================
Way to make all stdout and stderr write to a log
from *inside* a php script.
You simply need to make sure to call elog() every
once in awhile to get output.
It's a nice way to "daemonize" a script w.r.t. its logging.
// This allows us to capture all stdout and stderr (and error_log() calls)
// to this logfile...
// The "collected output" will be flushed anytime "elog()" is used...
ini_set("error_log", "/var/log/script.log");
ob_start();
function elog($str)
{
// get anything written to stdout or stderr that did *NOT* use elog()
// and write it now...
$writeme = ob_get_contents();
if ($writeme)
{
error_log($writeme);
ob_end_clean();
ob_start();
}
// now write message this method was called with
error_log($str);
}
===============================================================================
In extension to the compress() function posted below, here's a nifty little
class that improves the idea a bit. Basically, running that compress() function
for all your CSS for every single page load is clearly far less than optimal,
especially since the styles will change only infrequently at the very worst.
With this class you can simply specify an array of your CSS file names and call
dump_style(). The contents of each file are saved in compress()'d form in a
cache file that is only recreated when the corresponding source CSS changes.
It's intended for PHP5, but will work identically if you just un-OOP everything
and possibly define file_put_contents.
Enjoy!
dump_style();
//
// class CSSCache
//
class CSSCache {
private $filenames = array();
private $cwd;
public function __construct($i_filename_arr) {
if (!is_array($i_filename_arr))
$i_filename_arr = array($i_filename_arr);
$this->filenames = $i_filename_arr;
$this->cwd = getcwd() . DIRECTORY_SEPARATOR;
if ($this->style_changed())
$expire = -72000;
else
$expire = 3200;
header('Content-Type: text/css; charset: UTF-8');
header('Cache-Control: must-revalidate');
header('Expires: ' . gmdate('D, d M Y H:i:s', time() + $expire) . ' GMT');
}
public function dump_style() {
ob_start('ob_gzhandler');
foreach ($this->filenames as $filename)
$this->dump_cache_contents($filename);
ob_end_flush();
}
private function get_cache_name($filename, $wildcard = FALSE) {
$stat = stat($filename);
return $this->cwd . '.' . $filename . '.' .
($wildcard ? '*' : ($stat['size'] . '-' . $stat['mtime'])) . '.cache';
}
private function style_changed() {
foreach ($this->filenames as $filename)
if (!is_file($this->get_cache_name($filename)))
return TRUE;
return FALSE;
}
private function compress($buffer) {
$buffer = preg_replace('!/\*[^*]*\*+([^/][^*]*\*+)*/!', '', $buffer);
$buffer = str_replace(array("\r\n", "\r", "\n", "\t", ' '), '', $buffer);
$buffer = str_replace('{ ', '{', $buffer);
$buffer = str_replace(' }', '}', $buffer);
$buffer = str_replace('; ', ';', $buffer);
$buffer = str_replace(', ', ',', $buffer);
$buffer = str_replace(' {', '{', $buffer);
$buffer = str_replace('} ', '}', $buffer);
$buffer = str_replace(': ', ':', $buffer);
$buffer = str_replace(' ,', ',', $buffer);
$buffer = str_replace(' ;', ';', $buffer);
return $buffer;
}
private function dump_cache_contents($filename) {
$current_cache = $this->get_cache_name($filename);
// the cache exists - just dump it
if (is_file($current_cache)) {
include($current_cache);
return;
}
// remove any old, lingering caches for this file
if ($dead_files = glob($this->get_cache_name($filename, TRUE),
GLOB_NOESCAPE))
foreach ($dead_files as $dead_file)
unlink($dead_file);
$compressed = $this->compress(file_get_contents($filename));
file_put_contents($current_cache, $compressed);
echo $compressed;
}
}
?>
===============================================================================
When a script ends, all buffered output is flushed (this is not a bug: http://
bugs.php.net/bug.php?id=42334&thanks=4). What happens when the script throws an
error (and thus ends) in the middle of an output buffer? The script spits out
everything in the buffer before printing the error!
Here is the simplest solution I have been able to find. Put it at the beginning
of the error handling function to clear all buffered data and print only the
error:
$handlers = ob_list_handlers();
while ( ! empty($handlers) ) {
ob_end_clean();
$handlers = ob_list_handlers();
}
===============================================================================
Careful with while using functions that change headers of a page; that change
will not be undone when ending output buffering.
If you for instance have a class that generates an image and sets the
appropriate headers, they will still be in place after the end of ob.
For instance:
will put the image bytes into $pngString, and set the content type to image/
png. Though the image will not be sent to the client, the png header is still
in place; if you do html output here, the browser will most likely display
"image error, cannot be viewed", at least firefox does.
You need to set the correct image type (text/html) manually in this case.
===============================================================================
This concerns the default values used for ob_start().
Note that I could verify that ob_start() and ob_start(null,0) are not always
equivalent.
It seems that with ob_start() the output buffer is open with current default
parameters of your configuration if they have been explicitly defined.
So, if you have set $chunk_size to any value previously and send data larger
than $chunk_size the data will be automatically flushed by blocks of
$chunk_size.
If you explicitely define $chunk_size=0, later, when you will use any function
as $my_ob_dataoutput=ob_get_clean(); you will get back the whole content of
your output (quite unlimited with $chunk_size=0).
I discover this because my var $my_ob_dataoutput was truncated. Using
"ob_get_status (true)" function, I could verify that an error (in a lower level
or by default out of my control) was setting previously the $chunk_size of ob
at 4096.
I changed "ob_start()" for "ob_start(null,0)" and everything became OK.
===============================================================================
Make sure the editor you use does not add the UTF8/UTF16 BOM at the start of
the scripts if you want to use ob_start("ob_gzhandler");
If those three characters are present, browsers like Firefox won't be able to
decode the pages and will report:
Content Encoding Error
The page you are trying to view cannot be shown because it uses an invalid or
unsupported form of compression.
The page you are trying to view cannot be shown because it uses an invalid or
unsupported form of compression.
Google Chrome will simply report "Error 2 (net::ERR_FAILED): Unknown error."
With the ob_start command commented out, the page is successfully load and the
browser will usually detect the BOM and not show it on the page, so
everything's hard to debug.
===============================================================================
I use this function for deleting not needed characters within the html code
before sending the whole stuff to the browser.
function callback($buffer){
$buffer = str_replace("\n", "", $buffer);
$buffer = str_replace("\t", "", $buffer);
$buffer = str_replace(chr(13), "", $buffer);
$buffer = ereg_replace("", "", $buffer);
return $buffer;
}
First str_replace will delete any newlines, second any tabs and the third any
carriage return. Finally the regular expression will delete any html-comment
which consists of /, space, a-z or A-Z.
Using this saves about 1kb on every pageload.
===============================================================================
Here's a nifty function I use daily. Essentially: include a PHP file - but
render its output to a variable, rather than to the buffer. It's also set up
to load the script with a variable set, and automagically loads globals into
the script's namespace, making it an effective templating scheme. It also has
error handling, so that you're not flying blind when using output buffering.
'Fatal Error',
E_WARNING => 'Warning',
E_PARSE => 'Parse Error',
E_NOTICE => 'Notice',
E_CORE_ERROR => 'Fatal Core Error',
E_CORE_WARNING => 'Core Warning',
E_COMPILE_ERROR => 'Compilation Error',
E_COMPILE_WARNING => 'Compilation Warning',
E_USER_ERROR => 'Triggered Error',
E_USER_WARNING => 'Triggered Warning',
E_USER_NOTICE => 'Triggered Notice',
E_STRICT => 'Deprecation Notice',
E_RECOVERABLE_ERROR => 'Catchable Fatal Error'
);
$ret=(object)Array(
'number'=>$errno,
'message'=>$errstr,
'file'=>$errfile,
'line'=>$errline,
'context'=>$errcontext,
'type'=>$errorTypes[$errno]
);
$GLOBALS['BufferedErrors'][]=$ret;
return false;
}
function parse($fileToInclude, $argumentsToFile=false) {
$bufferedErrorStack = $GLOBALS['BufferedErrors'];
set_error_handler('errorParse', error_reporting());
$GLOBALS['BufferedErrors']=Array();
if (!file_exists($fileToInclude))
return '';
if ($argumentsToFile === false)
$argumentsToFile = Array();
$argumentsToFile = array_merge($GLOBALS, $argumentsToFile);
foreach ($argumentsToFile as $variableName => $variableValue)
$$variableName = $variableValue;
ob_start();
include($fileToInclude);
$ret = ob_get_contents();
ob_end_clean();
restore_error_handler();
$errors = $GLOBALS['BufferedErrors'];
$GLOBALS['BufferedErrors'] = $bufferedErrorStack;
if (count($errors)>0) {
$ret.='';
foreach ($errors as $error)
$ret.=
'- '.
''.$error->type.': '.
$error->message.
'
'.
'file: '.$error->file.'
'.
'line: '.$error->line.
'
'.
' ';
$ret.='
';
}
return $ret;
}
===============================================================================
There is no start flag problem. One just has to notice that the second
parameter is not a mode but consists of bitwise-OR'ed flags.
";
$output = "$string
";
if ( $flags & PHP_OUTPUT_HANDLER_END ) {
$output .= '
';
foreach($input as $k => $v) $output .= "$k: $v";
}
return $output;
}
ob_start('ob_handler');
echo 'flush';
ob_flush();
echo 'flush 2';
ob_flush();
echo 'clean';
ob_clean();
echo 'flush 3';
ob_flush();
echo 'end flush';
ob_end_flush();
?>
flush
flush 2
flush 3
end flush
0: PHP_OUTPUT_HANDLER_START | PHP_OUTPUT_HANDLER_CONT (3): flush
1: PHP_OUTPUT_HANDLER_CONT (2): flush 2
2: PHP_OUTPUT_HANDLER_CONT (2): clean
3: PHP_OUTPUT_HANDLER_CONT (2): flush 3
4: PHP_OUTPUT_HANDLER_END (4): end flush
===============================================================================
This function's behaviour has been changed in php 5.2.0:
global $AP;
$AP = new ap;
ob_start("ob_end");
function ob_end() {
global $AP;
$r = $AP->test();
return $r;
}
class ap {
function test() {
return "debug";
}
}
?>
In older versions it shows: "debug".
But latest php version causes error: PHP Fatal error: Call to a member function
test() on a non-object.
And this is not a bug: http://bugs.php.net/bug.php?id=40104
===============================================================================
I think it's worth noting that while you can't call any output functions such
as echo or print from within a callback function, you can still send headers
(presumably including cookies, haven't checked). Of course this only works in
the first callback, like so:
Not the most inspiring example, but in this case the code is able to sneak a
last-minute header in before the headers part of the response is sent. This can
be handy if you want to avoid replacing header values that are uncertain.
For example if your code may return an image, but you don't want to set content
type until you're sure that the image can be sent successfully, you can use the
callback to leave the decision right until the very last moment, by which point
you're hopefully sure of what's being sent in the HTTP body.
===============================================================================
Note that since PHP 5.1.x, all objects have their destructors called before the
output buffer callback function executes. Thus, globalised objects will not be
available as expected in the function.
This is stated to be intended behaviour, per http://bugs.php.net/bug.php?id=
40104
===============================================================================
Under certain freak conditions, when an error ocours perfoming an action on an
object that cannot be done (either because the object does not exist or the
method does not exist) inside of an ob_start() the script will exit and print
everything the current function generates before the error, but nothing else,
including no error message.
I am at a loss to why no error message appears and am trying to get a working
example for the developers that is simpler than my whole program!
So if you are using ob_start() and you get no output, check your objects....
you have made a mistake on them somewhere. The only trouble is you will not
know where as there is no error!!
===============================================================================
If you want to run code in the middle of a string that you made, but you want
to wait the printing...
(so if you want to allow php in bb-code style, and you want to execute it in
order, and print everything in order...)
phpRun($code) {
ob_start();
exec($code);
$output = ob_get_contents();
ob_end_clean();
return $output;
}
$str = str_replace("]\n", "]", $str);
$match = array('#\[php\](.*?)\[\/php\]#se');
$replace = array( phpRun( stripslashes('$1') ) );
$str= preg_replace($match, $replace, $str);
echo $str;
===============================================================================
This function dynamically changes title of HTML page:
function change_title($new_title) {
$output = ob_get_contents();
ob_end_clean();
$output = preg_replace("/(.*?)<\/title>/", "$new_title
title>", $output);
echo $output;
}
Example:
ob_start();
// ... some output
change_title('NEW TITLE!');
===============================================================================
I don't claim to understand this--I would have expected the exact opposite--but
it seems that
ob_start() ... ob_end_flush()
can massively improve perfomance, by at least a factor of 10 (admittedly a
small number of samples).
I tried this after discovering that I could move a large (100ms) bottleneck in
one of my scripts into
echo "";
which clearly shouldn't have taken long to run.
My unfounded theory is that without buffering, the interaction between PHP4.3.4
and Apache is not optimized, whereas with buffering, PHP delivers the entire
page at once, which Apache handles better.
I should add that this is under https.
===============================================================================
I use this to strip unnecessary characters from HTML output:
[^\S ]+/s', //strip whitespaces after tags, except space
'/[^\S ]+\',
'<',
'\\1'
);
$buffer = preg_replace($search, $replace, $buffer);
return $buffer;
}
ob_start("sanitize_output");
?>
===============================================================================
When using a callback with ob_start(), functions like ob_get_contents() don't
make use of it, use ob_end_flush() instead.
nb: not tested with every ob_* functions, just ob_get_contents() and
ob_end_flush()
===============================================================================
If ob_start does not seem to be working for you, note that with Apache 2 the
flush() function causes PHP to send headers regardless of whether ob_start had
been called before flush.
ob_start();
echo 'test';
flush();
will cause Apache 2 to send whatever headers may be stacked up - which means
you can't use a header(location:xxx) after the flush. To fix, remove the flush
(). Spent several hours discovering this. Apache 1.x didn't work this way.
===============================================================================
IE 55. sp2 and IE6 as on the date of adding this note have problems with
content type gzip and caching http headers. The pages are never cached. I think
this combination of http headers can also crash the browser.
see http://support.microsoft.com/default.aspx?scid=kb;en-us;321722
===============================================================================
If you're using Apache (1.3x or 2.0), you might consider adding automatic
compression capability to your delivered pages.
I assume you all know how to build compression classes and use them in your
programs, but none has yet to offer the speed and robustness of a
binary-compiled module. Furthermore, such modules also log the "compressable"
hit in the web log file, thus allowing your favorite web anaysing program to
show you reports of bandwidth saved.
Having said that, you might consider the following two modules for Apache:
1) Apache 1.3x: use mod_gzip, available from:
http://sourceforge.net/projects/mod-gzip/
2) Apache 2.x: use mod_gz, see here:
<EMAIL_ADDRESS>3) Apache 1.3x: you may also want to use mod_defalte, from:
ftp://ftp.lexa.ru/pub/apache-rus/contrib/
Hope it helps.
===============================================================================
When used in constructor part of class it have to be prefixed by "self::" or by
classname, else PHP fails to create buffer.
function __construct ()
{
$bo = ob_start ("self::callback_ob") ;
...
}
===============================================================================
simple code to make phpsession $_GET nice for Valid XHTML 1.0 Transitional :)
function callback($buffer)
{
$buffer = str_replace("&PHPSESSID", "&PHPSESSID", $buffer);
return $buffer;
}
ob_start("callback");
session_start();
===============================================================================
When a fatal error is thrown, PHP will output the current buffer of
Output-Control without postprocessing before printing the error message. If you
are working with several output control levels, this might not result in the
desired behavior.
You can use an output callback handler to handle this and discard the output.
Therefore, use ob_start("ob_error_handler") in connection with the following:
function ob_error_handler($str) {
$error = error_get_last();
if ($error && $error["type"] == E_USER_ERROR || $error["type"] == E_ERROR)
{
return ini_get("error_prepend_string").
"\nFatal error: $error[message] in $error[file] on line $error[line]\
n".
ini_get("error_append_string");
}
return $str;
}
===============================================================================
Hello firends
ob_start() opens a buffer in which all output is stored. So every time you do
an echo, the output of that is added to the buffer. When the script finishes
running, or you call ob_flush(), that stored output is sent to the browser (and
gzipped first if you use ob_gzhandler, which means it downloads faster).
The most common reason to use ob_start is as a way to collect data that would
otherwise be sent to the browser.
These are two usages of ob_start():
1-Well, you have more control over the output. Trivial example: say you want to
show the user an error message, but the script has already sent some HTML to
the browser. It'll look ugly, with a half-rendered page and then an error
message. Using the output buffering functions, you can simply delete the buffer
and sebuffer and send only the error message, which means it looks all nice and
neat buffer and send
2-The reason output buffering was invented was to create a seamless transfer,
from: php engine -> apache -> operating system -> web user
If you make sure each of those use the same buffer size, the system will use
less writes, use less system resources and be able to handle more traffic.
With Regards, Hossein
===============================================================================
Found that variables in class instances we're not being set after the call to
ob_start().
Call ob_start after the variables are set however and it works but that didn't
seem to solve the goal of a self contained templating class.
The fix was to assign the class by reference with '&new'
Here is a simplified working example:
startBuffer();
}
function startBuffer() {
ob_start(array(&$this, 'doFlush'));
}
function doFlush($buffer) {
/* simple string concat to show use of a
template string and the buffer output */
return $buffer . $this->template;
}
}
/* template does not get set:
$buffer1 = new Buffer();
$buffer1->template = ' - template set in instance';
echo 'some buffer content';
*/
/* this works as expected */
$buffer2 = &new Buffer();
$buffer2->template = ' - template set in instance';
echo 'some buffer content';
===============================================================================
If you're trying to use ob_start() in some PHP5 classes (probably works on PHP4
classes), this is the good way :
class HTMLPage
{
//----------------------------------------------------------------- PUBLIC
//----------------------------------------------------- M thodes publiques
public static function ConvertIntoSGML( $source )
// Mode d'emploi :
//convertit une string en une SGML valide
//
// Renvoie :
//la chaine trait e
//
// Algorithme :
//analyse char par char de la chaine. Si un caract re est de nombre ASCII >
127,
//conversion en son code SGML.
{
$newString = '';
for( $i = 0; $i < strlen( $source ) ; $i++ ) {
$o = ord( $source{ $i } );
$newString .= ( ( $o > 127 ) ? ''.$o.';': $source{ $i } );
}
return $newString;
}
public function FlushSite( $source )
{
return $this->ConvertIntoSGML ( $source );
}
//-------------------------------------------- Constructeurs - destructeur
function __construct()
// Mode d'emploi (constructeur) :
//initialise la buffurisation
//
// Contrat :
//
{
ob_start( array ( & $this , 'FlushSite' ) );
} //---- Fin du constructeur
//------------------------------------------------------ M thodes Magiques
//------------------------------------------------------------------ PRIVE
}
// Example :
$webdesign = new HTMLPage ( );
echo 'H llo world'; // Will produce the source 'héllo world'
?>
Without the & before $this, you'll loose your content because ob_start() will
call the flushsite() function from a clone of the object and not the caller
object himself.
Note : call_back function must be public because ob_start() is in an extern
scope from your class :)
I hope this will help you!
===============================================================================
I usually create my pages in four parts - variable initialisation, import
header (using the variables just declared to configure), main body (mostly
non-PHP), import footer. I wondered about making the main body examinable by
another PHP script if the main page was included into it. I found I could
control output of the main body by ending the header with an unclosed function
which finishes at the start of the footer, thus enclosing the main body.
Output buffering can then be used to read this into a variable. As a
demonstration of how this can be used to control the order of output look at
this example:
A
E
B
D
F
G
The output is A B C D E F E G.
For the application I mentioned above there are two points to note:
- The page when executed alone must output its main body but the inspection
script should suppress this, perhaps by means of a variable set before the page
is included and then checked for in the footer output lines.
- Because the main body is now inside a function it has a different namespace,
thus changes may be required to prevent code breaking (e.g. use of globals,
handling of functions defined within the main body).
===============================================================================
These are handy. First one has been mentioned before.
ob_start( array( 'lib_class', 'parse_output' ) );
ob_start( array( $this, 'parse_output' ) );
Note: $this is NOT a reference. Anything the callback saves or logs disappears
in the clone ob_start works with.
It does enable the callback to work with the attributes of $this, like $this->
ar_tpl_value or whatever your style is.
The manual says:
"If the optional parameter chunk_size is passed, the callback function is
called on every first newline after chunk_size bytes of output. The
output_callback parameter may be bypassed by passing a NULL value."
This doesn't work with my 4.3.11. Might be the Zend optimizer though. Daren't
turn it off to go see.
===============================================================================
If you're trying to include a php file inside a loop by require_once (in
example, a dinamic email template) and change the value of some variables (in
example, url to unsuscribe, different for each user), you should use
Otherwise $usermail_unsuscribe will get only "email1" value.
===============================================================================
In case you're in for some readable representation for flags, this is a variant
as a private class member:
===============================================================================
My callback is stored in a function class, and using ob_start
('Class::callback') wasn't working. Not wanting to instantiate the class (no
need, it's a function class) I tried this and it worked a charm:
ob_start (array (Class, 'callback'));
PHP 4.3.4
===============================================================================
There is a difference between the documentation and real callback functions
invocation.
Manual says: "The function will be called when ob_end_flush() is called, or
when the output buffer is flushed to the browser at the end of the request."
Actually, the callback function, once set by ob_start(), will be called
regardless.
Here are the functions that invoke callback function immediately:
ob_clean
ob_end_clean
ob_end_flush
ob_flush
ob_get_clean
BUT only two of them return the result returned by the callback (ob_end_flush,
ob_flush), other functions discard it.
At the end of the request, even if none of the functions listed above is
called, the callback will be called anyway, and its result will be returned to
the browser (well, at least this is corresponding to the manual).
There is one more trick:
If you set callback function with chunk_size > 1, callback function will be
called each time output buffer is equal or exceeds chunk_size and its result
will be output to the browser, even if you call any of ob_clean(), ob_end_clean
(), ob_get_clean() later, so be aware of this fact.
===============================================================================
good article on output buffering on devshed:
http://www.devshed.com/c/a/PHP/Output-Buffering-With-PHP
===============================================================================
Referring to dan at roteloftet dot com's comment:
RFC 2616 (HTTP) specifies a "transparent" Content-Encoding, "identity" (§ 3.5),
that nicely suits what you tried to do with the (invalid) "None". So this
equally working, and it's also RFC-compliant:
===============================================================================
Here's a simple way, using register_shutdown_function, to easily maintain your
global output filter:
File: outputfilter.inc.php
',
'',
);
return str_replace($search, $replace, $output);
}
?>
Just include it in your global file, or in each file you want to filter.
This one in particular replaces any occurrence of<EMAIL_ADDRESS>or
<EMAIL_ADDRESS>with an image (that contains each email respectively),
preventing spam bots from picking it up.
===============================================================================
In regards to below. The best thing to do is create an error handler that
catches all non-fatal errors prior and during your ob_start.
works for me all the time. and if there is an error you can format the errors
in that script it executed in. From my experience i'm quite sure that would be
the most logical choice. wouldn't it? Plus your using objects...Please do think
before you can code.
Always plan else you'll be working blind. Anyways ob_start wouldn't exit;
Just plan ahead and anticipate. It's just like driving a car.. Happy new year.
===============================================================================
As a follow up to my previous post :
(output seems to go to standard ouptput in command line mode even with the use
of output buffering (ob_start) )
Setting implicit_flush to false seems to do the trick :
ini_set('implicit_flush',false); // (avoids output even with ob_start, in
command line mode)
ob_start();
include (realpath(dirname(__FILE__))."/".$template);
$ret_str.=ob_get_contents();
ob_end_clean();
ini_set('implicit_flush',true);
(See :
Chapter 43. Using PHP from the command line
)
===============================================================================
Hi, I use those functions for stripping unnecessary chars in my output
code...because I have JavaScript placed in outpout code so I don't remove \n\r\
t but just replace them with single space (it could cause errors in scripts)
Function stripBufferSkipTextareaTags skips tags Textarea. It's needed to don't
loose \n\r when user edit some content...
sorry for my english ;)
", $t_poz_start);
$temp = substr($buffer, $t_poz_start, $t_poz_end-$t_poz_start);
$result .= $temp;
$poz_current = $t_poz_end;
}
}
return $result;
}
function stripBuffer($buffer){
// change new lines and tabs to single spaces
$buffer = str_replace(array("\r\n", "\r", "\n", "\t"), ' ', $buffer);
// multispaces to single...
$buffer = ereg_replace(" {2,}", ' ',$buffer);
// remove single spaces between tags
$buffer = str_replace("> <", "><", $buffer);
// remove single spaces around
$buffer = str_replace(" ", " ", $buffer);
$buffer = str_replace(" ", " ", $buffer);
return $buffer;
}
ob_start("stripBufferSkipTextareaTags");
?>
===============================================================================
Just for simplicity's sake (and because I had to rewrite it for use at http://
www.VideoSift.com anyway), here's a very simplified, pre-PHP5 version. Just add
one call to dump_css_cache() for each of your CSS files.
===============================================================================
I'm sure some of you more brilliant minds could pare this down some more, but
using the method found at fiftyfoureleven.com for compressing, I got my
10090-byte stylesheet down to 3536 bytes and then again down to 2713 bytes, by
stripping unecessary characters from the stylesheet. 2 ob_start calls and the
CSS file is now 73% smaller. YMMV.
===============================================================================
When you rely on URL rewriting to pass the PHP session ID you should be careful
with ob_get_contents(), as this might disable URL rewriting completely.
Example:
ob_start();
session_start();
echo 'self link';
$data = ob_get_contents();
ob_end_clean();
echo $data;
In the example above, URL rewriting will never occur. In fact, rewriting would
occur if you ended the buffering envelope using ob_end_flush(). It seems to me
that rewriting occurs in the very same buffering envelope where the session
gets started, not at the final output stage.
If you need a scenario like the one above, using an "inner envelope" will help:
ob_start();
ob_start(); // add the inner buffering envelope
session_start();
echo 'self link';
ob_end_flush(); // closing the inner envelope will activate URL rewriting
$data = ob_get_contents();
ob_end_clean();
echo $data;
In case you're interested or believe like me that this is rather a design flaw
instead of a feature, please visit bug #35933 (http://bugs.php.net/bug.php?id=
35933) and comment on it.
===============================================================================
I've noticed a bug with MSIE for non cached contents if your page is less than
4096 octets : you have to refresh the page each time to view its content !
Here is the solution to prevent this stupid behaviour of MSIE : just insert
this code at the top of your scripts :
function ob_callback($buffer)
{
return $buffer . str_repeat(' ', max(0, 4097 - strlen($buffer)));
}
ob_start('ob_callback');
===============================================================================
I wanted to do things a very particular way with output buffering and shutdown
functions; using register_shutdown_function instead of the built in callback
feature of this function. However, one should note that this won't work,
because the contents of the buffer are no longer in scope when PHP is calling
the shutdown functions. This would have been easy to see EXCEPT that PHP
graciously flushes any unsent buffers at the end of the script, or when calling
exit. So:
Prints "hi". In a nutshell, if you want it to have a shutdown function that
handles an output buffer, just specify it in ob_start() and let PHP
automatically call it at the end of the script.
===============================================================================
Output Buffering even works in nested scopes or might be applied in recursive
structures... thought this might save someone a little time guessing and
testing :)
$s1
$s2
";
?>
... at least works on Apache 1.3.28
Nandor =)
===============================================================================
PHP Suggests: Some web servers (e.g. Apache) change the working directory of a
script when calling the callback function. You can change it back by doing, for
example, the following in the callback function: chdir(dirname($_SERVER
['SCRIPT_FILENAME']))
The solution provided by PHP, does not function as intended when running PHP as
a CGI (on CGI mode (CGI-BUILD (--enable-cgi) and/or CLI)). In such a case, PHP
is executed as a CGI-BIN and the web server daemon (e.g. Apache) sees
SCRIPT_FILENAME as being the PHPCGI processor, and won't look deeper to find
what file the PHPCGI processor is actually running/parsing; therefore the path
returned by SCRIPT_FILENAME is wrong (most of the time, containing/ending with
"cgi-system/php.cgi").
As SCRIPT_FILENAME is the safest way to proceed, but turns to be wrong in this
exact situation; PATH_TRANSLATED is the next safe solution one would turn
towards since it is populated with a different mechanism.
It would be correct to develop in the direction if the script filename itself
is contained in the SCRIPT_FILENAME path value, then the SCRIPT_FILENAME
content is reported correctly. If it is not, using PATH_TRANSLATED is the next
logical choice we can use. The best reference in this case would be PHP_SELF as
it is populated by PHP itself. Using SCRIPT_NAME as a reference would be an
error as it is affected by the same problem (reports cgi-system and/or php.cgi
as well).
The following is the revised code and should work on both the non-CGI and the
CGI PHP processor types.
Or the decomposed code as follows:
This has been tested on Apache 1 & 2, PHP 4 & 5 and IIS 5.1
===============================================================================
Function ob_start can capture all normal output, assuming no errors occur.
Naturally, the programmer will want to know whether errors can also be caught
(that is, captured and logged). The answer is that warnings can be caught along
with normal output, but that fatal errors and exceptions break the normal
buffering and can only be caught separately. Finally, parsing errors cannot be
caught at all, because parsing is done in a first pass before execution begins.
Of course, even parsing errors can be caught by running PHP in a separate
process and capturing the output of that process.
Here is an example that illustrates all these additional details (see also the
comment by Philip at set_error_handler function). Those errors that break
buffering can be illustrated by uncommenting their lines.
getMessage());
} // exception_handler
set_exception_handler('exception_handler');
function shutdown_function()
{
// Catch fatal errors that break output buffering
$error=error_get_last();
if ($error["type"]==E_ERROR)
echo "Uncaught fatal error: ".$error["message"];
} // shutdown_function
register_shutdown_function("shutdown_function");
// Demonstrate normal output
echo 'This is normal output, caught okay';
// Demonstrate a warning
$DivisionByZeroWarningCaughtOkay=3/0;
// Demonstrate a fatal error
//UndefinedFunctionFatalErrorCanBeCaughtSeparately();
// Demonstrate a parsing error
//$x=FatalParse@ErrorCannotBeCapturedAtAll
// Complete capturing normal output
$Out=ob_get_contents();
ob_end_clean();
// Demonstrate a thrown exception
//throw new Exception('Exception Can Be Caught Separately');
echo "All captured output:".$Out;
exit(0);
?>
===============================================================================
It's easy to add a function that caches the whole page you're going to generate
so resources are saved. I wrote it in a file called "cacheable.php", and I
included in each file that I want to be cached. It cannot manage files with
ob_start inside.
Here is the code:
file "cacheable.php":
----------------------------------
[^\S ]+/s','/[^\S ]+\','<','\\1');
$webpage = preg_replace($busca, $reemplaza, $webpage);
fwrite($fp, $webpage);
fclose($fp);
}
}
echo $webpage;
}
ob_start();
register_shutdown_function("cacheOutputtoFile");
//note you must use register_shutdown_function instead of using
"cacheOutputtoFile" as parameter of ob_start as socket is already closed when
callback function is called, then the client not get the echo $webpage output.
?>
----------------------------------
usage:
----------------------------------
===============================================================================
When creating a shortcode i've seen code which uses the callback function
however its not always needed as this example demonstrates:
===============================================================================
When using brame buffer from time to time, you can see this warning
Warning: session_start() [function.session-start]: Cannot send session cache
limiter - headers already sent
One of the many reasons may be in bad encoding of document. My experience, the
document had header of utf-8 encoding but in fact it was win1252. After
reconding to the utf-8 warning has disapeard.
===============================================================================
This code demonstrates the affect of providing a value to the chunk_size
parameter. A value of 1 or 0 will be ignored by php. Here's the Code:
function callback($buffer)
{
return "TRAPPED:".$buffer."
";
}
ob_start("callback",2);
echo "long string, so callback";
echo "X";
echo " - no callback, less than 2 chars";
?>newlines,
but
no
callback
!
// PHP block
?>PHP block initiates callback.
echo "One more callback at EOF...";
?>
The code above outputs:
TRAPPED:long string, so callback
TRAPPED:X - no callback, less than 2 chars
TRAPPED:newlines, but no callback !
TRAPPED:PHP block initiates callback.
TRAPPED:One more callback at EOF...
TRAPPED:


Here's a menu defined in markup:
Here's a menu which has been rendered with an explicit content node:
Here's a scrollable menu:


If you have general questions about GEOME, please read the User Help Document. There is also information about using GEOME on the About page. If you still have questions of a technical nature, or encounter a bug, feel free to send an email to<EMAIL_ADDRESS>with your questions, along with as much information as possible so we can help resolve the issue.


Experience the magic of this wonderful place
Bram Stoker’s character, Dracula, is a Transylvanian Count with a castle located high above a valley perched on a rock with a flowing river below in the Principality of Transylvania.
We invite you to experience the history, the myth, the intrigue and the magic of this wonderful place and its Queen. We hope that you will carry the spirit that makes us love Bran Castle with you, always.
This character is often confused with Vlad Tepes (Vlad the Impaler), sometimes known as Vlad Dracul, who was a Walachian Prince with a castle, now in ruins, located in the Principality of Wallachia. Because Bran Castle is the only castle in all of Transylvania that actually fits Bram Stoker’s description of Dracula’s Castle, it is known throughout the world as Dracula’s Castle. Chapter 2, May 5 of “Dracula” describes the Count’s castle as “. . . on the very edge of a terrific precipice . . . with occasionally a deep rift where there is a chasm [with] silver threads where the rivers wind in deep gorges through the forests.”
Bram Stoker never visited Romania. He depicted the imaginary Dracula’s castle based upon a description of Bran Castle that was available to him in turn-of-the-century Britain. Indeed, the imaginary depiction of Dracula’s Castle from the etching in the first edition of “Dracula” is strikingly similar to Bran Castle and no other in all of Romania. Stoker is widely purported to have used the illustration of Bran Castle in Charles Boner’s book, "Transylvania: Its Product and Its People", (London: Longmans, 1865) to describe his imaginary Dracula's Castle.
Dracula – as he is perceived today – is a fictitious character whose name derives from the appellation given to Vlad Tepes, the ruler of Wallachia from 1456-1462 and 1476, and who, for largely political reasons, was depicted by some historians of that time as a blood-thirsty ruthless despot.
Stoker’s character, Count Dracula, first appeared in the novel “Dracula”, published in England in 1897, by the Irish writer Bram Stoker. But the name “Dracula”, far from being a frightening term, derives from the Crusader Order of the Dragon with which Order both Vlad Tepes and his father had been associated. The rest of the Dracula myth derives from the legends and popular beliefs in ghosts and vampires prevalent throughout Transylvania.
Stoker’s Count Dracula is a centuries-old vampire, sorcerer, and Transylvanian nobleman, who claims to be a Székely descended from Attila the Hun. He inhabits a decaying castle in the Carpathian Mountains. In his conversations with the character Jonathan Harker, Dracula reveals himself as intensely proud of his boyar culture with a yearning for memories of his past. Count Dracula appears to have studied the black arts at the Academy of Scholomance in the Carpathian Mountains, near the town of Sibiu (then known as Hermannstadt). While Stoker named his Transylvanian Count “Dracula”, he was careful not to suggest an actual link to the historical character of Vlad Tepes. While Stoker’s character Van Helsing muses as to whether Count Dracula might be the Voivode Dracula, he obviously is not since Count Dracula of Transylvania is plainly not Prince Vlad Tepes of Wallachia and Stoker was disinclined at all to make his character a real person of historic significance.
In the villages near Bran, there is a belief in the existence of evil spirits called ghosts or “steregoi” (a variant of “strigoi”). Until half a century ago, it was believed that there existed certain living people – “strigoi” – who were leading a normal life during the day but at night, during their sleep, their souls left their bodies and haunted the village tormenting people in their sleep. These evil spirits haunt their prey from midnight until the first cockcrow, when their power to harm people faded. “The undead [i.e., ghosts, vampires] suffer from the curse of immortality,” writes Stoker, “they pass from one period to another, multiplying their victims, augmenting the evil in the world…” The Dracula character derives from these local myths.
As for Vlad Tepes, the ruler of Walachia, he does, indeed, has an association with Bran Castle. Vlad was involved in several campaigns to punish the German merchants of Brasov who failed to abide by his commands as regards their trade in his Walachian markets. Passage to Wallachia was through Bran, the closest gorge to Brasov, which connects with Targoviste, Vlad Tepes’ capital. The original customs houses at which taxes were collected from merchants entering Transylvania are still at the base of Bran Castle. The relationships with the Bran lords were not very cordial, as they were representatives of the Citadel of Brasov, which were hostile to Vlad the Impaler. It is not known if Vlad Tepes captured Bran Castle. Written documents do not describe it. The documents that do exist in archives with regard to Bran Castle, are mainly administrative and refer to the income and expenditure of the domain of the Bran Fortress, with little mention of political and military events.
However, in the fall of 1462, after the army of the Hungarian king, Matei Corvin, captured Vlad Tepes nearby the fortress of Podul Dambovitei, near Rucar, it appears that Vlad was taken to Bran Castle and locked up there for two months. This is affirmed in the recent volume Vlad The Impaler – Dracula, published by the Mirador Printing House, Arad, 2002, authored by Gheorghe Lazea Postelnicu. From here, Vlad was taken and imprisoned in the Visegrad Fortress.
Visitors to Bran Castle should make the distinction between the historic reality of Bran and the character of the Count in Bram Stoker’s novel. Dracula exists in the imagination.
Opening hours :
Admission / Ticket prices :
Filming / Photography :
The amateur photo / video pass are both included in the basic ticket. Professional filming / photography requires a signed contract. The charge is based on a customized offer.


The list of macros follow.
⟨Binary range examples 9b⟩ Not referenced.
⟨Cartesian product of two lar models 13a⟩ Referenced in 14b.
⟨Create directory and echo of creation: ?⟩ Referenced in 15b.
⟨Create directory and echo of creation 15a⟩ Not referenced.
⟨Enumeration of binary ranges of given order 9a⟩ Referenced in 14b.
⟨Example of cuboidal grid of dimensions (2,3) 6b⟩ Not referenced.
⟨Generation of cellular complex of 0/1 dimension d 3c⟩ Referenced in 14b.
⟨Generation of uniform 0D cellular complex 3a⟩ Referenced in 14b.
⟨Generation of uniform 1D cellular complex 3b⟩ Referenced in 14b.
⟨Generation of vertices of decompositions of 1D intervals 4a⟩ Referenced in 14b, 15d.
⟨Importing smplxn and numpy libraries 16⟩ Referenced in 14b.
⟨Multidimensional visualisation examples 12b⟩ Referenced in 14b.
⟨Skeleton component examples 10a⟩ Not referenced.
⟨Test example 6a⟩ Not referenced.
⟨Tracing the evaluation of expression “larCellProd([c1,c1])” 8⟩ Not referenced.
⟨Transformation from multindex to address in a linear array storage 5⟩ Referenced in 14b.