text:
When Robin Poor Bear was in her 20s, she asked for a Native American name. The Road Man, or spiritual leader, came up with Kind Hearted Woman.
There was good reason: After a lifetime of physical and sexual abuse, her heart was still bursting with empathy for others.
The daughter of an alcoholic mother, Poor Bear was molested by her foster father at age 3. But today, at 35, she gives a voice to others who have suffered sexual abuse.
"I remember it -- not the rape itself, but the emergency room and the nurses trying to hold me down to examine me," Poor Bear, now living in Minnesota, told ABC News. "I remember the door and being so terrified it would fly open and someone would get me."
Poor Bear suffered repeated sexual abuse at the hands of her foster father and two uncles until she was 13. Then, as a young wife, she was beaten by her husband.
That pain is revisited after the couple divorces and her ex-husband is convicted of molesting their 12-year-old daughter, as well as a teenage foster daughter.
The psychological anguish caused Poor Bear, an Oglala Sioux and member of North Dakota's Spirit Lake tribe, to turn to alcohol. And when Poor Bear eventually spoke up about the abuse, her daughter and son, now 17 and 14, were taken away from her.
On Monday, April 1, and Tuesday, April 2 at 9 ET, PBS's "Frontline" will air a powerful documentary, "Kind Hearted Woman," about Poor Bear's struggle to stay sober, further her education and heal herself from the deep wounds of sexual abuse.
David Sutherland, whose films "The Farmer's Wife" (1998) and "Country Boys" (2005) also offer a cinema verite look at poor, rural life, spent three years with Poor Bear and her children.
The centerpiece of the film is Poor Bear's battle to gain custody of her children while improving her own life.
Sutherland, 67, followed the family from Poor Bear's first day out of alcohol rehab, through school and jobs, juggling being a mother and trying to become a social worker. Frustrated at every turn, Poor Bear fights a corrupt tribal legal system and a culture of domestic violence that pervades many Native American communities.
Native American women have the second-highest rate of rape of all races and ethnicities, at 27 percent, second only to mixed-race women, according to the Centers for Disease Control's 2011 National Intimate Partner and Sexual Violence Survey. Nearly half of all of these women have experienced rape, physical violence and/or stalking in their lifetime.
"There are two or three thousand enrolled members living on the reservation and just a small handful of law enforcement to get calls," Poor Bear said about the time she spent a Spirit Lake Reservation. "Some reports are not taken seriously and some are not followed through the proper protocols."
Last year, unrelated to the documentary, the federal Bureau of Indian Affairs took over social services at Spirit Lake because of concerns that tribal mismanagement had contributed to abuse of children.
But Poor Bear said that the causes of domestic violence and abuse go deeper than scarce funding and little oversight on Native American reservations. She blames the "rape" of the indigenous culture when it was "Christianized."
"Who taught us how to be parents and how to be loving and caring and kind to each other when they took away all the traditions and we couldn't speak our language without being beaten?" Poor Bear asked.
A former singer, Poor Bear said that she comes from a legacy of heartbreak, but also of generosity.
Her mother, an alcoholic, froze to death in her 30s banging on the door of Poor Bear's foster family, who refused to let her in, Poor Bear tells an audience of abused women in the film.
Her grandfather died saving children in a log cabin fire, she tells ABCNews.com. "The doorway collapsed and when they found him, he was still protecting and holding a baby," she said.
Sutherland did not intend to make a film about Native Americans and was hesitant to reinforce negative stereotypes about life on the reservation. He had singled out several other battered women in his search for an authentic character-driven story about abuse, but Poor Bear's rose to the top.
"She had an associate's degree and was smart," he said. "I liked her sense of humor and she was always upbeat, even in the saddest moments, with the kids."
Sutherland never expected the turn the dramatic narrative would take. When Poor Bear's daughter Darian reveals she was molested by her father at the age of 12, she is required to testify in federal court.
Angry about those charges and the making of the film, the ex-husband's family file complaints that Poor Bear herself has been abusive. The two children are placed in foster care and Poor Bear exhausts her retirement funds fighting a five-month custody battle.
Poor Bear's accusers never produce proof, and social services fail to show up for custody hearings. She ultimately reunites with her children, but they are "confused and scared."
The family is always on the move -- because of rent costs, or where a job takes her and when Poor Bear falls in love again, with a man who lives on a reservation in Canada. That relationship, too, is fraught with problems.
For the most part, Poor Bear said she got accustomed to the cameras following the family from the kitchen table, to the bedroom, to school and to court hearings. Both children become involved in her campaign to stop sexual abuse, raising money and awareness at a school basketball game.
One of the only times Sutherland said he lost it emotionally and had to put the camera down was in a scene in which Poor Bear's son, Anthony, blames his sister for the sexual abuse testimony that sent his father to jail.
"I ruined half the film," he said. "I burst out crying."
Today, off the reservation and living in International Falls, Minn., Poor Bear is still sober and said her children, now 17 and 14, are thriving.
Poor Bear still does not have full legal custody, rather joint custody with their father, who has since been released from jail. Her ex-husband is not allowed to see his children without a monitor present because he has been convicted of a sex crime.
According to Poor Bear, her children have not seen their father since the court hearing that sent him to jail. Anthony still misses his father. "We are working on building that relationship," said Poor Bear.
Knowing the struggles other women face, Poor Bear is committed to creating a nonprofit that will support a long-term treatment facility for women and children, where they can stay together when the family breaks up because of abuse. She plans to call it Tipi Wakan Omani -- in English, Sacred Journey Lodge. It will be a refuge, with the latest technology in place to do forensic interview and sex assault exams.
To this day, Poor Bear said she draws on courage deep within.
"My adopted mom told me when I was going through stuff and bullied in school and at home, 'You're just as good as everyone else and don't believe differently,'" she said. "She told me that time and time again."
Only Darian and her mother have seen the film in press previews.
"The first half Darian was crying and crying," said Poor Bear. "She held on to me and said, 'Mom, I know you were telling me all that stuff, but to see it from your perspective -- I can't believe it."
Poor Bear has taught her children, both now planning for college, to always speak up. Her advice to parents is to warn their children of the risks of staying silent if they have experienced abuse.
"If nobody is listening, keep telling someone until they listen," she said. "And sometimes the parents are the perpetrators.
"My kids have gotten the honor," she added, "the honor of speaking out."


text:
cocalol wrote:I have spent hours on searching the web about port knowledge. I bought a second computer and for education reasons i wanted to see how i can access my other computer through an open port. I have ran a port scan and i saw that the port 80 is open in my other computer. Is there any link ( serious ) that you could suggest me to read so i obtain the basic knowledge or you can give me some tips ?
Thanks in regards.
Goatboy wrote:The only thing I would detract from mShred's post is that port 80 is not open by default on "most computers". It is open on most Web servers (I say most because they can change the port number) and it may be open for other reasons on a small number of computer.
Also, I agree with dellex in that Virtual Machines are a good technology for this kind of experimentation. As long as your hardware can handle it, I'd suggest trying out VirtualBox.
Users browsing this forum: No registered users and 0 guests

subset: commoncrawl


text:
List of standard JSF components
JSF comes with a quite large set of standard components out of the box. Some of them are described in the following list.
There is also a good external reference:
List of MyFaces custom components
The official list of MyFaces custom and extended components can be found at http://myfaces.apache.org/tomahawk/overview.html, the inofficial WIKI documentation here under MyFacesComponents.


text:
Federal, State and local laws, require that a hazardous materials Business Emergency Plan (BEP) must be submitted by any business that use, store and handle a hazardous material or a mixture containing a hazardous material in quantities equal to, or greater than, 500 pounds or 55 gallons; 200 cubic feet for compressed gases; or 10 pounds or more of organic peroxides, carcinogens, radioactive or highly toxic materials, or class 1.1, 1.2 or 1.3 explosives.
|Business Emergency Plans
|Electronic Filing
In the City of Riverside, the Fire Prevention Bureau is responsible for administrating the BEP program. Beginning January 1, 2010, the City of Riverside will be requiring all businesses to submit a new or update an existing annual Business Emergency Plan electronically. This will be pursuant to the upcoming State mandate that will require all businesses to submit their BEP's electronically. In order to submit online you must request a username and password by submitting the completed login request form by clicking on the Business Emergency Plans Electronic Filing icon below. Within a few days you will receive an email with your username and password. Each facility is also required to pay an annual BEP fee. The yearly permit will be mailed when an approved plan or update has been submitted and the fee paid.
If you need assistance with the BEP program or have any questions, please contact the City of Riverside Fire Department at (951) 826-5737.
3900 Main St. 3rd Floor
Riverside, CA 92522
Phone: (951) 826-5737
Email: email@example.com
|Mon - Fri
|8:00am - 5:00pm
|Closed on Weekends and Major Holidays


text:
Icon Design: SizingFebruary 21, 2007
I've been thinking a lot about icon design lately. As a way to get the hang of writing on this site again after the post-WDN lull, I figure it might be interesting to share some of the things I've been discovering. All going well, I've got two or three more similar posts in mind.
One of the more deceptively time-consuming things you'll do when creating an icon is producing out size variations. If you require a single icon in more than one size, the time you spend designing the first size is only about two thirds of the work you'll end up doing; the other third lies in tweaking it for different dimensions.
Aha, you might say — that's what vector graphics are good for. Why not just produce the icon in Illustrator or Fireworks and resize it the quick and painless way? Because vector graphics work best with sufficiently large resolutions; scaling between 20cm and 1m at 300dpi doesn't really require much thought. When designing for the low-res pixel grid, it's a whole different ball game. Vector doesn't scale down to lower resolutions as gracefully as one might wish.
To help illustrate the problem, consider this example image. On the left is a large icon that needs to be scaled down. On the right are two possibilities, depending on whether the 'Scale Strokes & Effects' box is checked in Illustrator. The middle icon is clearly not an accurate version of the large icon, because the strokes have remained their large size while the rest of the proportions of the icon have been reduced. The right-hand icon is more true to the original, at a smaller size, so it would be a better choice.
But take a look at the strokes; they're quite a bit thinner now at the small size. Because they've been scaled proportionately, their thickness decreases along with the size of the icon. With this particular example, this isn't a problem. With a more detailed icon scaling to a smaller size, it is. The pixel is the smallest fundamental unit in an icon, and details that end up being smaller than a pixel cause a lot of problems.
In the above example, I've got a calendar icon with some fine detail. Each box within the calendar has a 1 pixel wide grey border. When this icon is scaled from its starting size of 32x32 pixels to 24x24 and then 16x16 pixels, those 1 pixel wide borders end up as half-pixel wide borders, and Illustrator has to figure out how to anti-alias them. There's more explanation for why exactly this is so muddy, but I'll leave that for a follow-up post. For now, you can directly observe the effect: if you scale detailed icons so that their smallest details are less than whole pixel values, you end up with a messy result.
The solution is to start with the reduced version, and tweak it at the individual pixel level. Make the details fit within the pixel grid, remove extra detail that's causing blur, or even add extra detail if it helps you get to your end goal. Whatever it takes, the solution is to provide a critical eye to the problem and tweak until you get a result you're happy with, which is why the size variations are so much extra work.
In the calendar above, you'll notice what I've tweaked the two different sizes so the inner boxes end up with whole pixel values on either side. To do this I've had to reduce the size of the boxes at 24x24, and actually create more boxes at 16x16. I couldn't come up with a combination of 4 columns with a 1 pixel wide border that would fit within the space allotted at that smaller size, the only workable combination I found involved adding an extra column and dropping a row. The icon is a bit different than the 32x32 equivalent, but it's clearly derived from the larger one and works as an acceptable size variation.
Next time I write about this topic, I'll explain in a bit more detail the specific steps needed to produce variations and the challenges that go along with that. I wanted to set the stage first of all and describe why producing size variations was a necessity before I got into the mechanics of how you go about actually doing it. More soon.
This article has been followed up with Icon Design: Anti-Aliasing.
Nice to see some others noticing these things. We posted a similar blurb a while back. Vector images are nice, but they have their limitations. Custom resources generally must be created for each size.
I was part of a project a few years back to do 250 Windows XP icons… we had to basically re-draw every single one at the smaller sizes, even though they were all done in vector to begin with… pretty sure the project was up around 2000 hours of work by the end!
With talk of Apple patenting resolution independent user interface technology, it'll be interesting to see if they use some kind of pre-rendered bitmaps for smaller sizes of icons similar to the "hinting" in vector fonts…
Thank you for making this point! I'm not a designer myself, but I have been a design *customer*, and it's been frustrating when the talent I've hired doesn't understand concepts like this.
Something I've learned over the years: understanding which bits of an icon (or logo, for that matter) are important to maintain saves a lot of work for the designer, and a lot of frustration for the client.
I'm also a icon designer and i done some of them for my friends (noncommercial). "Next time I write about this topic, I'll explain in a bit more detail the specific steps needed to produce variations and the challenges that go along with that" It's good that you will continue the topic I'm very interested in the designing icons, I hope with your help it's not going to be that difficult. Thanks for great article. Greetings
Hey Dave, I enjoyed your post :) I've been dabbling in icon design for a while now, and I'm looking forward to your next post on the subject!
I don't mean to troll here, but both sets of icons look the same to me on my monitor and with my set of eyes. Sure when you blow them up there's an obvious difference, but when at their native sizes they look identical.
i don't think it's trolling if you don't see the difference. you just don't happen to see the difference, that's all.
for me – especially the smallest icon, it does look blurry at 100%.
where the real difference will become even more apparent are for those viewing these icons on a screen that's not high resolution – say, 800x600 (dare i say even 640x480 - or blown up on a projector) – they'd look hideous (or even possibly like mistakes).
the second set dave produced is definitely crisper and displays as intended.
Nice write-up, Dave. I actually find it easier to start with the smallest version first because of the stuff you describe. Then I'll blow that up using "Nearest Neighbor" to get a base to start with for the larger sizes. Then tweak from there.
Iconfactory's IconBuilder (http://iconfactory.com/software/iconbuilder/) does a similar thing, except with varying bit rates. Dave, do you have any experience with using it, and, if so, the various results in combining it with the method you described above?
Just like Leif, the two Calendar sets look the same on my old 21" Dell Trinitron… Nevertheless, I'm for this kind of attitude towards details.
Nice article. When designing icons, I start in Illustrator. Then in Photoshop, I use Iconbuilder to generate the different sizes.
From there on, I start tweaking.
Sometimes, for the really small version (that mostly appears in column view on mac), I draw a complete new Icon, more old OS9 style.
I recently decided to learn more about designing icons, the first step, coming up with the metaphores and things I wanted the icon to represent was rather easy once I got the hang of it.
But this article perfectly nails the kind of problems I got to deal with when going to screen, especially with the calendar where details were scrapped to provide a clearer icon. Too much detail on such small icons results in a mess, I noticed that after 4 icons, 2 days and then after reflection on the third day still I wasnt satisfied with 3 out of the 4 I made.
Very good introduction to a problematic isuse in icon design. Don't think that resolution independence will change anything on this topic.
I'm writing a thesis about icons, it's called: the identity crisis of an interpreter. This is more about the role of icons in the user interface. It describes how the icon became what it is and how it has changed through the years (very little). Your article is an practical but interesting topic, so thanks for the inspiration ;)
This is an interesting companion to the Boxes and Arrows essay on Icon Analysis (which I may or may not have found here. Hmm…). Designing icons is like olympic skiing, those who do it well make it look easy.
I can't wait to read the next installment.
But any skilled designer must not use strokes in Illustrator anyway. Never. In design/thinking phase yes, they are easy to play with, but final version must be "flatten" (or Expand in Illustrator terms).
I have been struggling with the same issues, but you are right to point out that starting with the reduced/smallest size makes it more manageable. I have also started to use vector graphics more due to the ease of sizing. Good article. Keep the good work.
Rupak Ganguly
@Josh - "Nice to see some others noticing these things. We posted a similar blurb a while back."
I must have read that, and it totally escaped my mind that you had posted it. Great stuff.
@Cam C - "With talk of Apple patenting resolution independent user interface technology, it'll be interesting to see if they use some kind of pre-rendered bitmaps for smaller sizes of icons similar to the "hinting" in vector fonts…"
They already do. Apple's OS icons go up to 128x128, but the better-designed ones have variations at specific sizes.
Interesting use of the word "hinting" too, that's exactly what I've called it in the past. More in the follow-up post.
@Leif - "both sets of icons look the same to me on my monitor and with my set of eyes."
Fair enough, they may to some people. But I'd never personally use the "bad" example in production work, it's clearly wrong to my eyes.
@Dan Mall - "Dave, do you have any experience with using [Iconbuilder], and, if so, the various results in combining it with the method you described above?"
Not yet. It's on my wish list though, I'll probably be picking it up very soon. From my understanding, it's not going to do the work for you, it's just going to give you the frameworks and let you figure out how to fill them.
@Jorn - "Don't think that resolution independence will change anything on this topic."
@Peter - "But any skilled designer must not use strokes in Illustrator anyway. Never. In design/thinking phase yes, they are easy to play with, but final version must be "flatten" (or Expand in Illustrator terms)."
Says who? I don't agree. In fact, with icons where I've created the strokes manually, I wished I had used Illustrator's strokes instead.
@Leif - "both sets of icons look the same to me on my monitor and with my set of eyes."
It will be hard to see the difference in this case unless you have a pretty accurate monitor.
I'm not a brilliant graphic designer by any means (I'd like to think I do better than "crappy programmer art" though), but I had to make some icons for some open-source software I'm a part of. On the 15" eMachine CRT (which tended to blur pixels together a bit) I had to borrow from a friend when my CRT busted, you couldn't even tell what the small versions of my icons really looked like, let alone tell the difference between a big version shrunk down and one made by hand (unless they were blown up quite a bit, that is). I have a feeling some using larger (say, 19-21"+) lower quality or budget CRTs (and possibly LCDs) will have the same kind of blurring effect that will completely negate the crispness of the second set of icons. The colors and shapes are both generally the same. It's really the "crispness" that make them stand apart.
When I finally got my nice new LCD, the sets of icons I'd made were a night and day difference, and it's exactly the same case with the icons Dave created. Then again, I am a perfectionist. =P
Stroke is effect, while bezier path is not. Effect is fragile, because it can be translated differently in different programs. And it will be, sooner or later. Don't start me talking about Corel.
What I really mean't is that the final step before you hand over your vectors to the client, all strokes (+ some lot of other things) must be gone - expanded. Or before you start agressively scale things up and down. Strokes scale badly, regardless whatever options you use.
What can I say except, "great!"? It's really great that this problem is pointed to. Looking forward to reading the next article, Dave. I'm sure I will find out something I don't know yet ;)
It's quite refreshing when someone writes about HOW TO, without actually writing about HOW TO DO X IN [application].
With little mention of Illustrator and Fireworks, anyone can use these ideas to better their work.
I agree with Peter on this one, I use both Freehand and Illustrator, and strokes simply aren't reliable. Sure I use strokes when building an image, but when I've got it nailed down, I "expand strokes" to get rid of them, which allows me to transport the graphic to any other program and resize without having to worry about stroke width changing on me. For me, the peace of mind outweighs the flexibility of strokes.
Nice article that points to real problem while designing icons. It's a pain when customer wants to see all mockups in all sizes. That's why we provide mockups in one size, and then make all sizes only after mockup is approved.
I was surprised to see that people were having trouble seeing the difference, even on CRTs– I'm on a laptop LCD (MBP) and the difference is night and day. The first one is far fuzzier and uglier than the second.
Interesting post!
It doesn't surprise me to read that many of people who can't see a difference are using CRT's. An LCD monitor will give pixel art a far crisper appearance.
Thanks for the article Dave. It's a while since I last designer an icon (unless a favicon counts!), but I know the hard work that has to go into tweaking icons for small sizes. I like Cam C's idea of hinting for icons, in the same way fonts can be hinted to display well at low resolutions.
Thoroughly enjoyed this article. The struggle with icons has always been in the "fool the eye" details. I've been designing icons since back when they were only 16 colors. Back when a big designing problem was to make the few colors you had fool the eye into seeing more than there was. Or at least in making them work for you to "carve out" the design you were trying to achieve.
I do tiny mobile game graphics now, and the same principle applies… rarely (if ever) can you merely "resize" a small image and end up with anything other than a tiny pile of pixel dust. You start off "touching up" the mess, and by the time you are finished, you realize you could have actually saved time just doing it by hand, one pixel at a time.
On a side note, there are also some individual programs that, even on a sharp screened LCD laptop, will turn small, crisp detailed images into mush. MS Word, for one.
Good article :) I start in Illustrator for the bigger versions and switch to Photoshop to tweak pixels in the smaller versions, the 16 x 16 version especially and the 24 x 24. So I normally don't work from small to big actually. I just try to keep in mind I need to create smaller versions as well (in terms of details). Although your approach makes totally sense. For me it depends a lot on the the shape of the icon wether I choose to go for Illustrator or Photoshop. It also depends on what the biggest size is, but if it's an application icon I definitely go for Illustrator. The calendar icon has all straight lines so I think I would do this one entirely in Photoshop (with the pen tool). If this icon is needed for print or in a bigger version later on it's easy to redraw this type of icon in Illustrator.
There are a couple things you can do to make working on icons in Illustrator much easier. FIrst, use the grid and snap to grid settings. Set your grid to something like every 16pts and 16 subdivisions. Turn the grid off if it gets distracting, it's an easy keyboard shortcut to remember in Illustrator. Second, create construction grids on their own layer for the different size icons you'll need. Check your icons design at different sizes against these virtual boxes to see if you need to rethink parts of your overall design. Lastly, use Pixel Preview. Again, it's a fairly easy keyboard shortcut to remember so turning it on and off if it gets too distracting is easy but remember to view in this mode frequently if yo do turn it off. While your calendar example is still best done in Photoshop, icons such as those used by Apple or Windows XP can be done in Illustrator more easily and with crisper results.
Sorry if my question is naive, but which is the reason of not using Photoshop to create icons? I've design two of them with this software and they seem alright. (I can save files with extension .ico with PS). Thanks for your answer.
Interesting article!
Looks like you and Dan Cederholm have a lot to say about icons ;-)
Will wait with great interest the follow-up:)
I've tried to get around it with 'free' programs and 'paid for' programs, but in the end, you have to do it pixel by pixel if you want it to look right.
In the end, I always end up in photoshop.
If you keep it in mind from the start you can design a site/program with certain elements that are ideal to turn into icons. After that its just convincing the customer.
Good article!
I know I'm a bit late on the uptake but I thought I'd mention that this is a great idea to do a series on. I'm only called on to make icons occasionally so I don't have much trial and error experience to have figured out all the details like this yet. I'd love to see more on the challenges involved.
You're pointing out problems in SVG, not vector graphics as a whole. You also repeatedly attribute certain tasks to the SVG editor throughout the article which the editor has absolutely no control over.
"You're pointing out problems in SVG, not vector graphics as a whole. You also repeatedly attribute certain tasks to the SVG editor throughout the article which the editor has absolutely no control over."
You clearly have no idea what you're talking about. There's absolutely no reference to SVG in this article, explicit or implied. File format is completely irrelevant to this discussion.
So is designing icons in Vector programs the standard nowadays? I can imagine it being easier in Photoshop for me personally; that is when designing a set with max 32x32 icon resolution.


text:
Pumpkin Chestnut Puree Recipe
I prepared a pumpkin with fresh chestnuts today for baby Aria and she absolutely loved it. The texture was a little too thick, so I thinned it with mashed plantains and a bit of milk. The pumpkin chestnut purée was as nutritious as it was delicious.
Who said "baby" food can't be tasty? I've made an effort to prepare homemade baby food ever since Aria started eating solids. She's already 16 months old and loves trying new foods. My motto is that I won't serve anything to her that I wouldn't eat myself. She seems to appreciate it and has become quite the little foodie! She even says "mmmmm" when we're watching The Cooking Channel. Bobby Flay and the Iron Chef are her favorites!
Yields: 6 servings2 ripe plantains
1 pumpkin (see tips), peeled and cubed
8 ounces fresh chestnuts
3 green onions, chopped
1 tablespoon olive oil
1¼ cups milk, warm
2 tablespoons butter
¼ teaspoon nutmeg, freshly grated
1¼ teaspoons salt
½ teaspoon white pepper
Boiling the pumpkin and plantains:
Peel the pumpkin, seed it and cut it into 2-inch pieces; place them in a large pot. Add the whole, unpeeled plantains. Fill the pot with cold water. It's important to start with cold water so the pumpkin cooks evenly. Bring to a boil, add salt and reduce the heat to medium-high. Cook for about 20-25 minutes.
Remove the plantains; the skin should be totally dark and they should split. Once the plantains are cool enough to handle, peel and slice them.
The pumpkin should be fork-tender. Remove from the pot and drain; allow the pumpkin to cool for at least 10 minutes.
Boiling the chestnuts: Place them in a small pot, add water and bring to a boil. Once the water boils, cook for 5 minutes. Drain and let cool. Cut them in half, then scoop and gather the flesh using a teaspoon.
Pan-frying the bananas:
In a large non-stick pan, heat the oil. Cook the green onions until nicely golden. Toss for a minute until fragrant. Transfer to a plate, leaving as much oil as possible in the pan. Heat the pan and add the plantain slices. Cook until lightly golden. Turn off the heat.
Assembly time: Using a potato ricer (or a potato masher), mash the plantains. Add the pumpkin and press until you obtain a coarse texture. Slowly add the warm milk. Stir well, using a wooden spoon. Add the chestnuts. Using an immersion blender (or transfer to a food processor), pulse until smooth. Add butter, nutmeg and green onions. Season with salt and white pepper. Stir until well distributed. Check the consistency and adjust seasoning to your taste.
Serve warm.
Bon appétit!
I used bí đỏ, which is a kind of Vietnamese pumpkin that has a starchy texture. You can use any other variety of pumpkin if you can't find this particular one.
The plantains give a subtle sweet flavor. Without them, I find the purée pretty bland.
For the "baby" version, I thinned the purée with an additional ¼ cup milk.
I buy fresh chestnuts at Ranch 99 Market.
For more mashed vegetable recipes, check out the link.Published By: on March 15, 2013.


text:
Feb. 21, 2010
FAIRFIELD, CT (February 21, 2010) - Senior attacks Jon Flood (Hauppauge, NY) and Timmy Katz (Freeport, NY) poured in four goals apiece in a 13-6 win over Presbyterian on Campus Field Sunday afternoon. The win was the first of the season for the Pioneers, as the improved to 1-1, while the Blue Hose dropped what was their season opener.
Sophomore Chris Casey (Duxbury, MA) netted the first goal of the game for SHU, 4:10 into the first quarter. Katz, assisted by Flood, followed 32 seconds later with his first of four goals. PC sophomore Patrick Foy connected on a man-up opportunity to cut the Pioneer lead to one, but Flood answered back with two goals of his own.
All four goals by Katz were scored in the first half, including his fourth with 0.7 seconds remaining in play. For the game he would also finish with a pair of assists.
Senior attack Evan Morgan (Ashburn, VA) collected four assists for the Pioneers, while also finding the back of the net once. Flood also added one assist to go with his four scores.
Junior attack Devin Pinkston provided much of the Presbyterian offense with two goals and an assist. Freshman Tyler Melnyk added one goal and one assist.
Sacred Heart held a 48-36 advantage in shots. Both teams were successful twice on six extra-man opportunities.
Senior goalie Tom Trgo (N. Merrick, NY) stopped 16 shots in between the pipes for SHU. In net for the Blue Hose, junior Jon Athens also made 16 saves.
The Pioneers are back in action next Saturday as they host former Metro Atlantic Athletic Conference foe Marist at 1:00 pm.


text:
Like many other trustworthy sources including public and vital records, you can now look for military records and information for more prolific genealogical research. Military records search index of Lauderdale County, MS serves multiple clues and data related to war and military veterans and their contribution in the respective war. World War I & II specifics alongside American Civil War can be collected from Military Records repository.
Mississippi Lauderdale Military Records and Specifics now play a vital role in providing numerous public and vital specifics. Now you can easily avail plethora of hidden historical data and specifics about your forefathers, their contribution in the American Civil War, their service specifics and many such things like these. Such valuable minutiae and information disclose numerous clues about your origin. Hence, do not waste time and begin an immense research before long.
Now access an assortment of Lauderdale military specifics and service data to add value to your research. For more fruitful research, consider accessing a massive collection of specifics and data including Mississippi birth and death certificate records, county marriage & divorce records, will and estate data, census and enumeration data, immigration and naturalization specifics, land assessment and allocation records, ancestral Social Security Number (SSN), obituary and cemetery details and many more like these.
To obtain the Mississippi Lauderdale County Records, please provide the information below. When you fill-up the form, make a note : The more fields you fill in, the more detailed result you will get.
Please Provide
I wish to receive updates and additional information from this website.
Our Database is loaded with over 400 million county records which include United States Nationwide Vital Records, Public Record and Information. We offer 24x7x365 Search Expert Support. We are working day and night to collect, authenticate and deliver up-to-date County Records in an easiest way.
Our 24x7 Dedicated
Search Expert Team
Will Search The
Record For you From The
Different Sources in The Web.
- 24x7x365 Dedicate Support Team
- Free Search Expert Support
- Cross verification of individual record.
- 100% Satisfaction Guaranteed.
1. Comprehensive, detailed & updated database of USA Nationwide vital records & public information
2. Multiple vital & public records Search Facility
3. Offers variety of people's records - Anytime, Anywhere
4. Instant access to over millions of public records since 18th century
County Records API | Public Records API | Background Check API
Copyright © 2019 county-record.net . All rights reserved.
By using the website (county-record.net), you are complying with the privacy policies & terms of services. Further using of the website (county-record.net), or database or data please refer to our privacy & terms of service pages..


text:
Complete Outdoor Living Services for Stanton | Back
The TOTAL Outdoor Living solution for Stanton. No job is too big or too small for Western Outdoor Design and Build! Our landscape architects and garden designers can transform backyards from bare grass lawns to award-winning landscape designs and drought tolerant Xeriscape. Add a barbeque island, outdoor kitchen, fire pit, fireplace or water feature and give your backyard that WOW factor.
Whether you are looking to build a new pool, or renovate an existing pool, Western Outdoor Design & Build employs some of the most innovative pool builders and pool designers in Southern California.
Essential hardscape features, such as your concrete, driveways, pavers, retaining walls, and walkways provide the foundation for all other aspects of your outdoor living. Call Western Outdoor Design and Build for your Stanton outdoor project (800) 789-7510.


text:
Add these personality quirks to the qualities that mark you as a social dinosaur:
You're not comfortable renting out a room in your house or turning over the keys to your car for hours or days at a time to total strangers. When you travel you prefer to stay at a hotel with a predictable level of guest service rather than racking out on someone's couch.
When you rent a car, you prefer that you're dealing with a company that has a corporate reputation to protect, rather than a person who may or may not have had the brakes checked sometime in the last decade.
Plainly you're out of step with the "sharing economy." But you may have to get with it. This month, the California Public Utilities Commission took a big step toward normalizing the business of arranging shared rides in private cars by accepting the transactions as legal and imposing regulations to enhance public safety.
The PUC's recognition of a new regulatory designation — the "transportation network company" — doesn't apply to other sharing categories such as the rental of private cars or private apartments and homes. But it's a clear signal that the freelance rental of private assets is moving into the economic mainstream.
"This is definitely a big deal," says Sunil Paul, the founder and chief executive of Sidecar, a ride-sharing firm that will be subject to the PUC rules. "It sets up a framework for how regulation and innovation can work together."
What Paul likes most about the PUC regulations is that they don't try to shoehorn ride-sharing services into a format of traditional transportation businesses like taxis, but focus instead on making sure that the new companies meet reasonable safety standards.
Ride-sharing services such as Sidecar and Lyft enable passengers seeking a ride to plug in their needs to a mobile phone app. They're matched with drivers who are planning or willing to go their way. Driver and passenger meet and work out a price. At the end of the trip the rider pays the ride-share service, which takes out its fee and passes the balance on to the driver.
The upside is that riders don't have to hail a taxi, which may be scarce; drivers make a few bucks to cover the cost of car ownership and then some. The same calculation applies to car- and apartment-sharing: The renters gain access to a wider choice of rentable cars or accommodations, and the owners gain income. Services have sprung up to share boats, musical instruments and appliances, although housing and cars are the big markets.
These services have blossomed for several reasons.
One is that technology, especially mobile phones, has made it easier to access them through an app in the palm of your hand.
Years of experience with Amazon.com have accustomed us to transacting business online, and EBay has given people confidence that a business deal "doesn't have to have a brand name on the other side," says Arun Sundararajan, an expert in digital technologies at New York University.
The "catalyst" for growth, Sundararajan says, has been the lousy economy, which has provided an incentive for people to exploit their most valuable assets, their homes and cars, for extra income. That poses the question of whether the expansion of sharing networks will slow as the economy recovers and owners no longer feel the need to give up their privacy for cash.
In the past, it wasn't unusual for families facing hardship to take in boarders to help make ends meet, but the practice fell out of favor during more prosperous times. Will that happen again? "We won't know until economic conditions change," says Paul, though he claims that many Sidecar drivers appreciate not only the money but also the experience of meeting new people.
And of course these services can fill needs unmet by traditional providers of short-term goods like cars and rooms by expanding the available inventory, sometimes at lower prices.
The downside of these peer-to-peer arrangements is that there's no guarantee that either the driver or the passenger will be sane, that the car will be street-worthy, that the accommodations will be livable. The sharing firms typically say that their services are "self-policed." By this they mean that users are encouraged to give public ratings to their counterparties at the conclusion of each ride or stay, which weeds out bad actors.
This system hasn't always worked perfectly. In a famous 2011 case, a client's home was trashed by a renter using Airbnb, an accommodation-sharing service. Airbnb was less than wholly responsive to the victim's plight until reams of bad publicity prompted it to institute a raft of security and insurance policies.
The PUC initiative requires ride-sharing firms to institute various public safety measures. They'll have to carry liability insurance of $1 million per accident (your individual policy typically won't pay if you're in an accident while driving for hire). Drivers will have to pass criminal background checks and have relatively clean driving records. Their cars will have to pass a 19-point inspection.
The sharing firms had maintained that market forces would ensure that their drivers and cars were safe, but they weren't meeting all the standards the PUC thought necessary. Lyft says it was the first firm to carry a $1-million insurance policy, but it operated for months before it did so. Sidecar's Paul says it's only now implementing full vehicle inspections. His firm says it interviews would-be drivers to make sure they have a suitable background and personality, but these interviews are often by phone; it's not clear how Sidecar judges that an applicant is "awesome," which it identifies as a hallmark of the Sidecar driver.
One flaw in the PUC's ruling is that it leaves enforcement of these standards up to the companies, which are all start-ups.
Other questions about sharing services aren't addressed by the PUC at all. The relationship between renter and rentee falls into a murky divide between formal and informal. Paul says people should be comfortable engaging in these transactions because social media have created "a revolution in trust." Is that so? The San Francisco Cab Drivers Assn., which opposed the PUC initiative, calls it a "false sense of trust." It may be right — we won't know until we all have more experience with sharing.
Then there's the impact of these new services on traditional businesses and established neighborhoods. Taxi drivers will see a lot of their business disappear, but taxis have a function that ride-sharing can't fill, and driving them out of business won't benefit anybody. And as my colleague Walter Hamilton reported recently from Silver Lake, residential neighborhoods aren't always delighted at suddenly being turned into hotel districts, with the noise and congestion that entails.
There's little doubt that the sharing economy is here to stay; the question is how far it can expand. That depends on whether the general public can get used to the serendipity that comes from renting space or transport from a freelancer.
"When you check into a hotel, you know what to do," Sundararajan says. "It's part of the cultural dialogue. There's no uncertainty with that consumption experience." When you book accommodations through Airbnb, however, "there are lots of uncertainties. How are you supposed to interact with the owners? What about the guests in the living room? Can you open the kitchen cabinet? We need to learn how rapidly these sharing experiences are becoming normal," Sundararajan says.
Michael Hiltzik's column appears Sundays and Wednesdays. Reach him at email@example.com, read past columns at latimes.com/hiltzik, check out facebook.com/hiltzik and follow @hiltzikm on Twitter.


text:
The automotive industry continues to evolve at an incredible pace. However, your goal essentially remains the same: to operate more efficiently and get products to market faster.
Our automotive manufacturing expertise, strategic relationships, and automation and control solutions span the entire automotive supply chain. We can help you achieve your goal with our:
We deliver comprehensive enterprise-wide solutions and services to help automotive manufacturers and their tier suppliers:
Our auto manufacturing execution system integrates your control and business systems across your enterprise, turning production data into actionable information
The Factory of the Future is here. Manufacturers must innovate, or get left behind. We can help you differentiate in this competitive and evolving marketplace.
Streamline operations, maintenance, management, and intelligence with agile manufacturing systems to produce new and redesigned powertrains
Gain the flexibility and speed required to produce multiple models and variations to meet changing consumer demands
Automotive manufacturers today produce multiple vehicles, in multiple variations, at one location. Delivering this flexible manufacturing capability while reducing downtime and maximizing output is a critical challenge.
Our automation solutions span your entire supply chain, so you can improve quality, reduce costs, increase responsiveness, and ultimately improve time-to-market.
Production speed, global outsourcing, warranty, and recall issues underscore the need to maintain a comprehensive quality and regulatory compliance management program.
Our holistic approach to safety provides innovative safety solutions to improve the functional operation of machinery or equipment. These solutions help to increase safety, efficiency, and productivity, and reduce waste.
Get vehicles to market faster and more profitably
Improve productivity and reduce downtime with manufacturing optimization strategies
We are an established leader within the automotive industry, delivering comprehensive enterprise-wide solutions and services to automotive manufacturers and their tier suppliers.
The merging of automation and information is helping companies measure and manage productivity in new ways. Data available from the IoT in manufacturing, for example, is improving decision making and machine performance. Even better, integrated automation and information is opening the door to new productivity-enhancing innovations, including self-aware equipment and collaborative robots.


text:
If you've given up wheat flour for any reason, whether you have celiac disease, are just gluten-intolerant or -sensitive, or have adopted a Paleo or Primal diet, you know that horrible moment when you bite into a flour-free version of an old favorite and it is either a) gross or b) only okay. Either way, all that tends to happen is that you now miss the original more than you did before you tried the substitute. Well, I won't say this recipe is perfect, but my most-of-us-try-to-stick-to-a-Paleo-diet family really, really enjoys it, even the non-Paleo members. If you're looking for a good pancake recipe, this one is worth a try. Best of all, it is a simple recipe. No weird substitutions, no hoops to jump through to get it to turn out. It works pretty much like any other pancake recipe you've tried. Honestly, you just get to have good pancakes that won't make your stomach hurt, your skin break out, or whatever nasty side effect you get from wheat. Even better? Almond flour and eggs turn this into a high protein meal...if you forego the sweetener, which we often do, you're really having good for you pancakes. Who knew?
Almond Flour Pancakes
(adapted from Elana's Pantry)
Whole Batch
3 cups Honeyville blanched almond flour
½ cup water
8 eggs
½ cup ghee or coconut oil, melted**
2 tablespoons real maple syrup or agave nectar*(I often omit this)
2 tablespoons vanilla extract
1 teaspoon baking soda
Pinch of salt
Ghee or butter for frying
Half Batch
1 ½ cups Honeyville blanched almond flour
1/3 cup water
4 eggs
1/3 cup ghee or coconut oil, melted**
1 tablespoon real maple syrup or agave nectar*(I often omit this)
1 tablespoon vanilla extract
½ teaspoon baking soda
Pinch of salt
Ghee or butter for frying
- With mixer or blender or whisk, combine ingredients until smooth and creamy.
- Using ghee or butter, grease griddle. (I use an electric griddle set to 350oF.)
- When griddle is hot, pour pancake batter onto griddle.
- Pancakes will bubble. When the bubbles stay open, flip pancakes and cook other side. Serve warm.
Hints and Tips:
The recipe as written makes a more liquid batter and, thus, a flatter pancake. Sometimes I like to make a more cake-like pancake, especially when I'm adding blueberries to the batter. Just play around with the liquid to get your desired consistency.
A half batch is ideal for my still-at-home family of four. When I'm making them to be eaten at home, I omit the maple syrup because my family will pour syrup on top no matter what. When I'm making them for quick weekday breakfast on the go, I include the syrup. They reheat really well, so they're the ideal commuter breakfast (not that anyone I know eats while they're driving!)
**The original recipe called for heavy cream, which I never have on hand. I played around with liquid to fat ratios to get the desired texture. When you use butter instead of ghee or coconut oil, you might run into a problem with your batter being too watery. If that happens, just decrease your water or increase your almond flour until you get the consistency you like.
NOTE: Elana's Pantry recommends Honeyville Blanched Almond Flour for all of her almond flour recipes. I haven't tried a different almond flour with this recipe, so I don't know how that might work. If you try a different brand, let me know.


text: Music from the heart. From an island called Iceland. A record that wants to boil over because of all its energy, lust and sometimes also funniness. A record, equally peculiar as idiosyncratic. As the pot is that huge 26-year-old Benni Hemm Hemm throws all possible ingredients in. And it is that peculiar as all the different ingredients do not spoil the paste in the end. It's a little big band with little big songs. The greatest of them takes only 2 minutes and 58 seconds: "Beygja Og Beygja".


text:
Dec 05, 2004
Dec. 5, 2004
With the foilers going 9-0 in all their bouts with the Big Red, the Yale women's fencing team defeated Cornell in Ithaca, NY.
The definitive foil victory helped propel the Elis to a 17-10 win against Cornell. Yale's sabre team also bested the Big Red by a 5-4 margin to keep the team on top.
The Elis fell 6-3 in epee, but it was enough to garner the 17-10 win.


text: Looking for someone to hit with in the Fremont Ca. area. Just got back into it after a 15+ year layoff due to a shoulder injury from playing collegate tennis. Now, im back and looking to find people in my area. If you want to rally, hit me up here. Thanks for looking.


text: Dual CPU and quad-GPU hybrid computing with complete I/O integration The ASUS ESC2000 G2 is a new 2-way workstation based on the Intel® Xeon® E5-2600 processor platform, featuring three 5.25" media bays, four hot-swap 3.5" SATA hard drive cages, 80PLUS Gold 1350W power supply, and seven PCI Express 3.0 x16 expansion slots. It delivers unparalleled computing performance, advanced and complete I/O integration, and high energy efficiency, all ideal for professional graphics, financial modeling, engineering, and the sciences. Shop Modal header Dual CPU and quad-GPU hybrid computing with complete I/O integration Quad-GPU support unleashes more computing power With four Tesla™ C-series GPUs fully supporting true PCI Express 3.0 x16 bandwidth, the ESC2000 G2 delivers up to 1.3Tflops parallel computing performance to handle massive processing tasks. Dual Intel® Ethernet for fast networking Twin Ethernet controllers support double the network bandwidth, alongside teaming and fault tolerance functions to offer reliable and extra-fast connectivity. ASUS SSD Caching The ESC2000 G2 boosts system performance using an installed SSD as a cache for frequent tasks, allowing you to access data with increased ease and speed. Power up productivity and reduce waits while data transfers! DTS® Ultra PCII support A brand-new friendly interface brings more functions to users, including symmetry, audio restoration, and enhancement. DTS® symmetry monitors and balances level differences between all digital audio formats, while audio restoration reconstructs percussion and transient sounds from compressed sound sources to restore lost punch and clarity. Maximum power supply with DIGI+ for the most demanding workloads The 1350W 80PLUS Gold power supply unit cuts down system power loss and improves energy efficiency, saving users money on operating costs. With exclusive ASUS DIGI+ Power, the ESC2000 G2 utilizes precision power adjustments on the processor and memory modules, providing higher system stability. ASMB6-iKVM upgrade kit for easy troubleshooting The ASMB6-iKVM enables dashboard system health monitoring, remote power on/off and control, virtual media over LAN, and management LAN fail-over support. In addition, the ASMB6 function uses BIOS-level access, so even if the server operating system is down or offline, the KVM module can still provide round-the-clock remote monitoring and diagnosis through a user-friendly web-based graphical interface with support for all major browsers. Cutting-edge architecture The ESC2000 G2 supports new Intel® Sandy Bridge E5-2600 processors. With eight DIMM sockets and four-channel DDR3 1600, it can accommodate up to 256GB in memory capacity, providing high computing capabilities. Multiple PCI Express 3.0 x16 lanes are perfect for systems that require high I/O connectivity and bandwidth, enabling support for more compatible devices.


text:
Mafia 2 Summary
Mafia 2 Review
Does Mafia II make us an offer we can't refuse, or is it sleeping with the fishes? (PC, Xbox 360, PS3)
Latest Updates
Mafia 3 "worldwide reveal" taking place at Gamescom, trailer airs August 5th
It's finally happened - 2K Games has just made an offer we're hardly going to refuse. Mafia III is going to debut with a "worldwide reveal" next week at Gamescom in Cologne, Germany on August 5th.
Wannabe Mafiosos will be plunging into "organised crime through rich narrative storytelling" soon enough. The first trailer for Mafia III will release August 5th @ 1.00pm GMT+1.
Take-Two registered four Mafia 3 domains last week
Could we be made an offer we can't refuse soon? Take-Two has registered four new domain names as of Thursday, June 25th. All of all them reference Mafia 3 - a series fans have been waiting to see a return of.
The publisher has had leaks before relating to a third major instalment, with an alleged casting call for actors pointing to Louisiana as a possible setting. Then there was silence again, a code of silence you might say.
Rumour: Mafia news from 2K Games might be "very soon"
According to the voice actor behind Mafia II's Vito Scaletta, there might be something ready to announce to fans soon. It's been five long years since we last did favours for the family.
Mafia II was a pretty good successor and had two story DLCs to its name, but then 2K went all 'code of silence' about anything more in the works. Are we finally ready to grease our hair again?
Rumour: Possible Mafia 3 casting call reveals Louisiana setting
A casting call posted with the Actors Access network has been spotted, and its owner is looking for three actors with Italian and/or southern accents. The characters are all described as
robot Mafiosos.
Franklin, Tony and Mickey are all focused on their criminal enterprises. Not much has been heard about Mafia 3 and this casting call is for an 'untitled game' in the works.
2K Czech move studio, transfer developers to US
2K Czech, developers of the Mafia series, are making some major changes to their infrastructure, moving their Prague office to Brno and shifting several developers over to the 2K headquarters in California.


text:
Never say no, is something that the very rich and very successful have a tendency to do. You are probably asking why? It is simple, the more risk the more gain. If you are presented with an opportunity to do something especially something that will result in high cash returns, even if you don't know how to make it work say yes. It is simple take the challenge of figuring out how to do it later. No risk no gain.
Believe you can do anything and just say yes. Your failure rate may be higher but your success rate will be also. Fail forward fast. Get what wont work out of the way as fast as you can it will narrow down what you need to do to succeed.
Thomas Edison was a master at this with multiple projects going at the same time.
Brad West ~ onomoney
Tags: life change, marshall sylver, self management, turning point


text:
EDT:Language Overview
This overview introduces the EGL language as defined in EGL Core and as extended by Eclipse IDE for the EGL Developer. Reference details are in the EDT help system, which is made available when you install a download from the following site: www.eclipse.org/edt/download/.
- 1 Introduction
- 2 EGL Syntax
- 3 EGL types and values
- 4 EGL Packages
- 5 Type-name resolution
- 6 Scoping rules
In many ways, EGL is like other programming languages. It includes familiar constructs such as loops and transfers of control. It is built on a set of types, each of which defines the operations that are available for each value of the type. Last, it involves a process for validating source code and for converting the source code into a less abstract form, closer to the runtime need.
EGL is special in its reliance on stereotypes, which are declarations used by the software that transforms the source code to another form such as Java or JavaScript.
Second, stereotypes provide a way to extend the language. The creation of a new kind of stereotype enables an existing source-code element to have an alternative use. For example, a future stereotype might allow a developer to write a custom Handler element and then to create output for a mobile device that runs under the Android operating system. This alternative option requires that the extender create Java classes that supplement existing logic.
The mechanism for using stereotypes is a characteristic of EGL Core, which includes the basic rules of EGL syntax. Specific stereotypes are a characteristic of an EGL extension, the first of which is Eclipse IDE for the EGL Developer.
EGL Syntax
EGL source code is a sequence of tokens, which are the smallest units of meaning. The EGL tokens are categorized as follows:
- Keywords, which are the the EGL reserved words; for example, Record.
- Identifiers. which are the names of types, functions, variables, and constants. An example is
myCarCount, which is a variable name.
- Literals, which are fixed values of a given type. Examples are the integer 5, the string "yes!", and the Boolean value TRUE.
- Operators, which are symbols that affect a value. The value, or operand, is on the left or right of an operator. For example, the < operator is part of a condition that tests whether the operand on the left has a lesser value than the operand on the right.
- Special characters, which are punctuation marks that divide tokens, as necessary for the parsing done by the EGL compiler. For example, parentheses (( )) might surround a condition such as
myVariable < yourVariable.
At a more composite level, the language includes the following constructs:
- Type definitions, which are sequences of tokens that define a type.
- Expressions, which are sequences of tokens that express unnamed instances. For example, 4 + 5 might be assigned to a variable, but is itself a value of type INT.
- Statements, which is an instruction that causes work to occur at run time or that organizes code at development and transformation time:
- The runtime work might be variable declaration, data manipulation, logic invocation, output to a user interface or persistent data storage, and so forth.
- The organization work might include assigning types to packages, importing types from other packages, and enabling a shortcut for referencing identifiers that are in libraries.
- Most statements begin with an EGL keyword. For example, the following statement writes "yes!" to the standard output:
- Set-values blocks, which are code areas that set annotations and field values and are delimited by curly brackets ({}), as shown in the following declaration:
myCarCount NumberOfCars { InputRequired = yes };
- The example set-values block declares an InputRequired annotation for the
Set-values blocks are used in various ways in type definitions, statements, expressions, and other set-values blocks.
EGL types and values
The next sections move from general comments to a review of EGL native types, custom types, classifiers, annotations, and stereotypes.
General comments on types and values
In general usage, a type such as integer or string defines a set of values and a set of operations that can be applied to those values. For example, integers are whole numbers that can be added, subtracted, and so forth; and the number 5 is a value of that type.
The meaning is much the same in EGL, where every value is "of a type." The type defines the structure of the value and the set of operations that can be applied to the value.
Types can be categorized in different ways, and we initially distinguish between reference and value types:
- A reference type defines an object, which is a value in a memory area that was separately allocated to hold the value. The object is referenced from some logic and is an instance of the type. In this case, the words "value," "object," and "instance" are interchangeable.
- A value type defines a value that is embedded in an object.
A field declaration is a coded statement that declares a value in a memory area. If the value is based on a reference type, the memory area either represents a null or holds an address that points to the value. If the value is based on a value type, the memory area contains the value itself.
A field declaration typically includes an identifier that names the memory area. If the code that embeds the field declaration is allowed to update the area, the identifier is a variable. If the update is disallowed, the identifier is a constant. Later in this overview is a field declaration that does not name a memory area at all. Such a field declaration is said to be anonymous.
Consider the following field declarations:
// variable declaration NumberOfCars INT; // constant declaration const MINIMUMNUMBER INT = 2;
The type is each case is INT, which is a value type for four-byte integers. The first statement declares a value variable, the second declares a value constant.
For a second example, you might declare a list of five integers by coding a statement like one of these:
// variable declaration NumberOfVehicles INT[5]; // constant declaration const MINIMUMNUMBERS INT[5] = [1,2,3,4,5];
The type in this case is INT List or INT[], which is a reference type. The first statement declares a reference variable, which means that you can assign a different list to
NumberOfVehicles later. Incidentally, you can also change the values inside the list and can change the number of elements.
The second statement declares a reference constant, which means that you cannot assign a different list to
MINIMUMNUMBERS. However, even in this case, you can alter the values inside the list and can change the number of elements.
The behavior is consistent because each declaration in the second example identifies a memory area that contains an address of a second memory area. The constant is only constant in the sense that the area identified as
MINIMUMNUMBERS must always contain the same address, which refers to the same list. The following, subsequent assignment is not valid even though the values are the same:
// An invalid assignment MINIMUMNUMBERS = [1,2,3,4,5];
EGL native types
EGL Core defines a set of native types, which are implemented only by extensions such as Eclipse IDE for EGL Developers. The most elemental are the simple types. They have no sub-fields and can be categorized as follows:
- Boolean, which is the basis of a field that contains the logical true or false.
- Character types
- Timestamp types
- Large object types
- Numeric types
The following native types are also defined in EGL Core and implemented by Eclipse IDE for the EGL Developer:
- ANY, which is the basis of an instance that can reference a value of any type.
- Dictionary type, which is the basis of a dictionary. A dictionary is composed of key-value
pairs that can be increased or decreased in number and otherwise updated at run time.
- List types, each of which is the basis of a list. A list is a dynamic array: an ordered sequence of elements that can be increased or decreased in number and otherwise updated at run time.
Custom types and EGL classifiers
EGL provides a variety of classifiers, each of which is a kind of type. The capabilities of a classifier are made available to your code in various situations; most often, when you define a custom type that is based on a classifier.
Characteristics of custom types
Depending on the classifier, a custom type can have some or all of the following characteristics:
- A header, which is always required. The header includes the classifier name; the name of the custom type; and, in some cases, a stereotype.
- The end keyword, which is the last detail in the type definition.
- A set of members:
- Fields, each of which is based on a native or custom type.
- Functions, each of which is a logical unit that is equivalent to a function or method in another language. EGL functions do not embed other functions.
- Constructors, each of which is a logical unit that creates an instance of a reference type.
The members in a custom type are typically accessible in the same type. However, if you declare a member to be private, the member is protected from external access; it can be accessed only within the same type. If you do not declare a member to be private, it is said to be public.
Kinds of classifiers
The next table lists the classifier provided in EGL Core.
|To provide the Any, Dictionary, and List types.
|To alias a native or custom type.
|To define a type that identifies a kind of function. The related variable is like a function pointer in C language.
|To define a type that holds a collection of named values. The value of the related variable is one of those values.
|To define a type that identifies non-EGL code. The related variable provides access to the code.
|To define a type that includes all the possible kinds of members. The related variable either defines a general purpose object or allows for interaction with a user interface technology.
|To define a type that identifies the characteristics of functions in a service. The related variable provides access to the service.
|To define a static type that contains fields and functions that are local to other EGL logic. The fields retain values across requesters.
|To define a static type that has a single entry point.
|To define a type that includes fields.
|To define a static type that has multiple entry points and that might be accessed locally or remotely. The type also can be the basis of a variable that provides access to the logic from other EGL code.
To extend a capability, an extender makes an additional stereotype available for use with an existing classifier. The list of classifiers is a fixed aspect of the language.
When you write EGL source code, you set annotations. They are values used by some aspect of EGL technology; in most cases, by the EGL compiler.
Annotations help ensure that your EGL-created output reflects your intent. You can set them when you define custom types; when you declare variables and constants; when you code a subset of EGL statements; and, in some cases, when you declare functions.
For example, when you declare a field in a user-interface form, you might set a YES value in the InputRequired annotation. That setting causes the EGL generator to store a detail in the generated output, and the detail ensures that the user can submit the form only if the specified field has content.
Annotation types
An annotation represents an area of memory and is based on an EGL type. To understand these points, consider the following declaration:
myCarCount NumberOfCars { InputRequired = yes };
That code has effects at two different stages:
- It declares the
myCarCountvariable. The appropriate declaration statement is generated into the output code, and the related instance is available at run time. The type of the variable is
NumberOfCars, which is an alias of type INT. Here is the alias, or data item:
DataItem NumberOfCars INT End
- The example also identifies an instance that is available at transformation time. The type of that instance is InputRequired.
Here is the EGL Record type:
Record InputRequired type Annotation value Boolean; End
All annotations are based on one or another EGL Record type.
Annotation syntax
The InputRequired declaration in the earlier source code did not set the value field explicitly. The
InputRequired = Yes assignment is a shorthand form of the following code:
@InputRequired { value = yes }
The at sign (@) indicates that you are declaring an annotation, and the characters "InputRequired" indicate that the annotation is based on the InputRequired Record type. The next characters then assign content to the fields in the annotation. The braces ({ and }) represents a set values block, as described here: wiki.eclipse.org/EDT:Language_Overview#EGL_Syntax.
A shorthand form such as
InputRequired = Yes is available whenever the Record type for the annotation has a single field, regardless of the name of that field. If an annotation has multiple fields, only the long form of the declaration is valid, as in the following example:
@AnotherAnnotation { field01 = "test", field02 = 5 }
An annotation can be based on a Record type that has no fields. In that case, the mere presence of the annotation is meaningful to the EGL system code, and only the at sign (@) is required. Here is an example declaration:
In many cases, you can declare multiple annotations, one separated from the next by a comma. For example, the following code declares the InputRequired and DisplayName annotations:
myCarCount NumberOfCars { InputRequired = yes, DisplayName = "Number of cars: " };
Annotation overrides
You can declare an annotation when you define a type, and then override the annotation when you declare a variable that is based on the type.
Here is a data item with two annotations:
DataItem NumberOfCars { InputRequired = no, DisplayName = "Number of cars: "} End
The following variable declaration overrides the previous value of the InputRequired annotation:
myCarCount NumberOfCars { InputRequired = yes };
If a data item or part includes several annotations and a few are overridden in a variable declaration, the annotations that were not overridden are still in effect. In the previous example, the
myCarCount variable is associated with both the InputRequired and DisplayName annotations.
The ability to set multiple annotations is particularly important for data items. For example, a data item might be defined with annotations that are meaningful for user interface and for accessing a relational database. The benefit of being able to specify multiple annotations is that you can retain data items in a library and use those data items for many purposes. When you use a data item to declare a variable for one purpose such as database access, the annotations relevant to other purposes such as user interface have no effect.
Most annotations have a relatively small effect. For example, the InputRequired annotation specifies whether a field in a user-interface form is generated in one way or another. But a stereotype is an annotation that affects a series of decisions; the effect is greater.
A stereotype is an annotation that you set to communicate a major decision to the EGL compiler. In response to the annotation, the compiler responds in accordance with a pattern that differs from one stereotype to another.
For example, you might want to display a web page that responds as follows to a button click: by changing the button text from "Toggle on" to "Toggle off" or from "Toggle off" to "Toggle on". The logic is in the following handler, which includes a declaration for the RUIHandler stereotype:
Handler MyHandler type RUIhandler{ initialUI =[myButton], onConstructionFunction = start} myButton DojoButton{ onClick ::= myButton_onClick }; function start() myButton.text = "Toggle on"; end function myButton_onClick(event Event in) if (myButton.text == "Toggle on") myButton.text = "Toggle off"; else myButton.text = "Toggle on"; end end end
You might want to provide the same capability on a mobile device that runs on the Android operating system. In this case, an extender might provide a pair of constructs... ??
Handler MyHandler type WindowHandler { createLayout = true, contentView = } ???? myButton DojoButton{ text = "Toggle on", onClick ::= myButton_onClick }; function myButton_onClick(event Event in) if (myButton.text == "Toggle on") myButton.text = "Toggle off"; else myButton.text = "Toggle on"; end end end
[ Explain ]
To see that a stereotype is a kind of annotation, compare the following, equivalent outlines for the MyHandler handler:
Handler MyHandler type RUIHandler { initialUI =[myButton], onConstructionFunction = start } // handler members are here end Handler MyHandler { @RUIHandler { initialUI = [myButton], onConstructionFunction = start } } // handler members are here end
Although the second, longer form is rarely used, the at sign (@) again declares a value used by an EGL compiler. In this case, the declaration is based on the Record type named RUIHandler, which includes several fields:
Record RUIHandler type Annotation { targets = [ElementKind.handlerPart], @Stereotype {defaultSuperType=View}, validationProxy = // split onto two lines for better display "org.eclipse.edt.compiler.binding. annotationType.RUIHandlerAnnotationTypeBinding" } onConstructionFunction FunctionMemberRef; includeFile String; cssFile String; title String; theme String; end
The RUIHandler Record type declares three annotations:
- targets indicates the custom types for which the stereotype applies. The term "part" is sometimes used in place of the term "custom type," and the ElementKind.handlerPart value indicates that a Handler type can be annotated with a value of type RUIHandler. The absence of any other ElementKind value indicates that no other kind of custom type can be annotated in the same way.
- @Stereotype indicates that the Record type is defining a stereotype. Fields in the View supertype are available to the Handler type being stereotyped. In particular, the custom Handler type has access to the initialUI field, which lists the widgets for initial display on the web page.
- validationProxy identifies a Java class that validates the stereotype value with which the custom Handler type is annotated.
The RUIHandler Record type also declares a set of fields, which are available to any custom type that declares a RUIHandler stereotype. The earlier code identified only one of those fields: onConstructionFunction, which references a constructor that runs initially, before the user accesses the web page. These fields are properly called annotation fields or, more specifically, stereotype fields.
If you annotate a custom type with a stereotype, and if the custom type can include fields of its own, the stereotype can declare an annotation of type MemberAnnotations. The purpose is to list the annotations that can be appled to each field of the custom type. Here is an example of such an annotation:
Record ExampleStereotype type Annotation { targets = [ElementKind.recordPart], memberAnnotations = [Annotation01, Annotation02] @Stereotype {} } // stereotype fields are here end
The developer of the custom type can annotate each field with Annotation01 and Annotation02, which are also Record types of type Annotation.
Each classifier supports zero to many stereotypes. For example, a Handler type can include a declaration of RUIHandler or RUIWidget. A developer who codes a custom type selects from the stereotype list that is specific to a classifier.
EGL Packages
An EGL package is a container of EGL types, each of which has a name that is unique to the package. For example, a program and a data item of the same name cannot be in the same package. In general terms, the package is a namespace, which is a container in which the immediately subordinate names are unique.
The package corresponds to a set of subfolders in a directory. The subfolders correspond to the package name.
Package names
A package name is a sequence of names with intervening periods (.). Here is an example:
Each name is that of a subfolder in a hierarchy. The hierarchy for the current example is expressed as follows on a Windows platform:
The EGL parts are in files in the bottommost subfolder; here, the
myPkg subfolder.
You might invert the list of qualifiers in your company's Internet domain name and assign the resulting list to the start of your package names. For example, if the domain name is
mycompany.mydivision.mydepartment.com, you might start your package names with
com.mydepartment.mydivision.mycompany. This convention is often used. A benefit is that your packages will be unique even if your company merges or collaborates with another.
Package names are case sensitive;
myPkg is different from
Although a package corresponds to a set of subfolders, an EGL package is a collection of types. The subfolders and related files represent only how those types are stored.
Package statement
Each EGL source file in a named package must start with a statement that identifies the package. The statement provides a kind of documentation, as in the following example:
package myPkg;
Default package
An Eclipse project includes a default package, which is a package that has no name. Other packages cannot access the types that are defined in a default package.
When you use a default package, the directory that contains the package includes all the EGL source files that are in that package. In this case, a source file does not start with a package statement.
Package import
The EGL import statement provides access to the types in a second, named package. The import statement is used in two ways:
- A statement that explicitly provides access to a specific part in a package in called a one-type import statement. The type is always available at compilation time.
Here is an example statement:
import myPkg.MyProgram;
- A statement that provides access to a set of types in a package is called an on-demand import statement because the types that are actually required are made available only as needed.
Here is an example statement:
import myPkg.*;
- The example makes available all the types in the
An import statement can give access to types that are in another package repository, which is a directory or compressed file that holds one or more packages. Access requires that you reference the package repository in the EGL build path, which is a list of repositories.
Type-name resolution
The rules for type-name resolution define the search order that the compiler follows to resolve a type reference; for example, in a variable declaration. The compiler considers the current package directory and the repositories in the EGL build path. The compiler stops the search only when the same-named type is found or, if no type is found, only after all locations are searched.
The rest of this description assumes that the compiler is seeking the
myType type in the
myPkg package. Also, change "current project" to "current directory" if the search occurs in the EGL SDK.
If the reference is fully qualified, as in the case of
myPkg.myType, the compiler seeks the type in the current project and then in every repository in the EGL build path. The search through the repositories is in build-path order.
If the reference is not fully qualified, as in the case of
myType, the compiler gives priority to packages in the following order:
- The package identified in a one-type import statement such as
import myPkg.myType;
The compiler seeks the type in the current project and then in every repository in the EGL build path, in build-path order.
- The current package.
The compiler seeks the type in the current project and then in every repository in the EGL build path, in build-path order.
- The package identified in an on-demand import statement such as
import myPkg.*;.
The compiler seeks the type in the current project or directory and then in every repository in the EGL build path, in build-path order. The search ends as soon as a type is found. However, if multiple on-demand import statements reference the same type, the search results in an error.
Scoping rules
The scoping rules tell whether a given variable, constant, parameter, or function is visible to an expression.
The order of priority for resolving a reference is as follows:
- First in precedence are declarations that are local to the function where the expression resides. This category includes variable, constant, and function-parameter declarations.
- Second in precedence are declarations that are outside of a function but are inside the type where the expression resides. Each field is program global, which means that it is accessible to all members in the type. This category includes variable, constant, program-parameter, and function declarations.
- Third are declarations that are outside a function but are inside a library that is accessible to the expression. Each public field is run-unit global, which means that it is accessible to all functions in the run unit. This category includes the variable, constant, and function declarations in the library. Those declarations are program global to other functions in the same library.
A reference in an expression can include a series of identifiers, with a period (.) separating one from the next. Here is an expression in which each operand is fully qualified:
autoPkg.AutoLibrary.numberInFleet – autoPkg.CarLibrary.DebtRecord.carLimit
As appropriate, the identifiers can include a package name, the name of a container type, the name of a contained type, and a field name. A contained type can itself be a container type, to any level of depth.
The package and type names are especially useful for accessing values and functions in a library, as suggested in the example. However, for library access you can code a use statement, which offers the convenience of referring more directly to the declarations inside the library.
If a local declaration has the same name as the program-global declaration, only the local declaration is visible to the expression; but you can override that rule by using the this keyword.