text:
"Inferior Patriotism"
Will Wilkinson does get this much right:
The kerfuffle over Barack Obama's pastor is in large part about whether the man is patriotic enough.
Instead of rejecting this kind of attack or pushing back against it, he then proceeds to applaud Obama for his allegedly "inferior patriotism," which he takes as a given because Obama does not engage in demonstrative patriotism to the same degree as others (as if flag-pin-wearing has a necessary connection to real love of one's country). Referring to Kateb's reply, he says:
He implies something that I believe to be correct: the proud and enthusiastic patriotism of Americans bears a large measure of responsibility for the immoral and failed war in Iraq. This administration's war would have been impossible had our mindless love of country not made the public rather too ready.
But nationalism, and jingoistic nationalism at that, isn't patriotism. Furthermore, patriotism isn't mindless. Indeed, once it becomes mindless it has already degenerated into something else. At the risk of repeating myself, this is the crucial difference between patriotism and nationalism: patriotism is love of one's country and defensive, while nationalism is expressed typically through contempt and fear of other nations and a will to power over other nations. The Iraq war was made possible by a propaganda campaign by the government, the exploitation of public fear and anger, the warmongering of nationalists and the twisting of patriotic sentiment into support for a war of aggression by casting the war dishonestly as one of self-defense. That the administration succeeded in this is not a measure of mindless love of country, but rather a fairly mindless foreign policy consensus that says that small states on the other side of the planet pose meaningful threats to the United States. To cede that it is patriotism is mainly to blame for the Iraq war, rather than the government's abuse and manipulation of patriotism, is to let the government off the hook much too easily.


text:
Coming soon Mommyfanatic FREE collection items. Just pay shipping!
Your Cart is Empty
$17.95 $22.95
You Save 21% ($5.00)
Notify me when this product is available:
Limited Time Only This item is NOT available in stores. Guaranteed safe checkout: PAYPAL | VISA | MASTERCARD Click BUY IT NOW To Order Yours!

subset: commoncrawl


text: Local NewsSchools Miss Teen USA gives lessons to stop bullies By Mike Chaiken - January 18, 2013 0 9 Miss Teen USA Logan West leads students from Edgewood School in some exercises to prevent bullying. Miss Teen USA Logan West leads students from Edgewood School in some exercises to prevent bullying. Miss Teen USA Logan West leads students from Edgewood School in some exercises to prevent bullying. Miss Teen USA Logan West leads students from Edgewood School in some exercises to prevent bullying. By MIKE CHAIKEN EDITIONS EDITOR Logan West knows what it's like to be bullied. When the current Miss Teen USA was younger, she found herself a target of a bully. But the Southington resident survived the experience. To ensure other children don't have to go through what she went through, she created a program, "Bully Proof," which helps children figure out what bullying is and how they can prevent it. Logan brought "Bully Proof" to Bristol's Edgewood School last Tuesday. Besides offering children lessons that they can use to keep from being bullied, Logan's assembly also allowed several students to open up about their own bullying experiences. As part of the "Bully Proof" presentation, which Logan has taken to schools across the country as the reigning Miss Teen USA, the 18-year-old Pace University student, leads the children through a variety of exercises to help the youngsters learn about themselves and the ramifications of bullying behavior. For instance, one exercise covered the elements of "R-E-S-P-E-C-T." Another exercise demonstrated how "mean" comments can lead to permanent emotional scarring. In another exercise, Logan spoke about how bullies sometimes zero on their targets based on perceived differences. In that exercise, Logan gave a group of students an identical piece of paper. Than she asked them to close their eyes. She subsequently led them through a series identical instructions. And when they were complete with the directions, Logan asked them to open their eyes and hold up their papers. She noted that each of the pieces of paper now looked different even though each child received the same type of paper and the same exact instructions. "It's important to accept each other for our differences rather than tear each other down," said Logan. Logan also spoke about the types of bullying. She spoke about how bullying can be physical. It can also be verbal. It can be cyberbullying. She additionally addressed the motivations of a bully. Although she is now a national celebrity as Miss Teen USA, Logan said she was bullied when she was younger. It started when she was in seventh grade. Logan said a classmate began to bully her, criticizing Logan for not "acting her skin color." Logan explained she has a black mother and a white father. But Logan said her mother brought her to be Logan and Logan alone. "Take it or leave it." However this classmate caused Logan to doubt her own identiy. The bullying began with Logan's classmate doing small "mean" things to her. Initially, Logan just tried to ignore it. "When she didn't get a reaction, she got physical," said Logan. The bully pushed Logan around. She spit on Logan. And one day, she shoved Logan in a locker and closed the door and left her there. Still, Logan said, she tried to ignore her bully, hoping the torment would stop. It didn't. In reaction to her bully's taunts, Logan said she found herself changing to become what her bully wanted to be. She started listening to music she didn't particularly like because it fit the bully's profile for her. She began to dress as her bully wanted her to dress. In time, however, Logan said, "I realized it was getting out of hand." Up until this point, Logan said she had told no one about what was happening. But finally, she opened up to her mother and her mother called the school. Logan said she and her bully were called into the principal's office. The principal's solution to the situation was to shut Logan and her bully in a room until they became friends. When the time was up, the bully told the principal all was a-okay. But Logan spoke up. She said things were still not right. The next day, Logan said she was waiting at the bus in the rain and her bully came along. The bully, and her friends, began poking Logan with an umbrella, calling her a "snitch." Despite the intervention of the principal, Logan said the bullying didn't stop. One day at lunch, the bully started throwing chewed up food at Logan. "It was gross," said Logan. "I was really embarrassed." At that moment, Logan said she felt she had two choices. She could cry or she could do something. In retaliation, she opted to throw a pile of rice at her tormentor. The bully then hit Logan in the face. The girls began to fight and the teachers had to pull them apart. "We were both suspended," said Logan. There was a lesson, Logan learned. She told the children the situation could have been nipped in the bud, if she had spoken up sooner rather than simply tried to keep it to herself. As part of the program at Edgewood, Logan offered children five tips to stop bullying. First, Logan said they need to tell the bully what they are doing is bothering you. Second, Logan said, children need tell the bully to stop and use the word "stop." Let the bully know, you won't tolerate their behavior. Third, Logan said, children should get up and walk away. If you're not there, said Logan, the bully can't hurt you. Fourth, Logan said, children should grab some friends and talk to the bully. The purpose of the friends is not to gang up on the bully but to offer you moral support as you speak your mind. Finally, Logan said, tell a grown-up, whether it's a teacher, principal or a parent. "They can handle it much faster than we can… No one can help you if they don't know." Toward the end of the program, Logan asked the children to take her "Bully Proof" pledge. The children recited, "As a student, I pledge to treat others with respect and fairness. I pledge to speak out against bullying and report bullying to an adult. I will help others who are being bullied and support those who are recovering. I pledge to be a good role model for younger students and to help others feel safe and comfortable whenever I can. I will never use violence to solve my issues, instead I will use the 'Five Tips' if ever I am being bullied. I pledge to be Bully Proof." After the pledge, Logan opened up the assembly to comments. Several of the students used the opportunity to offer their own stories about being bullied. And Logan listened than tried to tie the child's situation into the tips and to offer them reassurance. For more information about Logan's Bully Proof program, go to www.stompingoutbullying.com. Comments? Email mchaiken@BristolObserver. com. [portfolio_slideshow id=1919] Related Advertisement


text:
What's New?
Contact Us
What to Say When
[Twig TWH003]
Aniq introduces Learning Roots What to Say When
What to Say When is a supplication and remembrance game for children. Both these acts of worship play an important role in the life of a Muslim. What to Say When... develops the awareness of these acts of worship to children using familiar everyday settings. Short and concise selections have been made for ease of understanding and memorization. The cards can also be used for placing around the home or school. Contents include 30 double-sided cards with full instructions. Each card contains a colourful illustration on one side and text (Arabic with English translation) on the other side. Each card has a smooth gloss laminate finish on both sides and measures 16cm by 10cm.
Mens Jalabiya [NEW]
Womens Jilbab
Lawung Mens [NEW]
Al Aseel
Al-Ameer [NEW]
Silk Route Women
Wudu Socks [NEW]
Learning Roots
Childrenswear [NEW]
Adan Clock & Watches
Ajmal Perfumes
Al Haramain Perfumes
Rasasi Perfumes
Art / Ornaments
Hajj / Umrah
Notify me of updates to
What to Say When
Advanced Search
Shipping & Returns
Contact Us
Copyright © 2020
Aniq Online Catalogue
Privacy Notice
Conditions of Use


text:
Rinse T-Shirt
Product Actions
A soft ring spun cotton tee finished with custom trim details and soft hand print.
Rinse T-Shirt
Product Actions
Photo Series
Todd Glaser
San Diego born and raised, Todd Glaser is a photographer, surfer, waterman, globetrotter, and one of the nicest people you'd ever get a chance to shoot the breeze with. A SURFER Staff Photographer since 2008, Todd has scored more than a dozen magazine covers there, even though he was one of the younger photographers on staff. Todd is also equally talented shooting land and people shots and has been featured everywhere from Rolling Stone, to the Smithsonian's National Portrait Gallery. We love seeing this friend of the brand in the water when he's home, and stoked to offer some of his fine art black and whites on this season's Photo Tees.
Full Specifications
- FEATURES 30 single, 4.1 oz, ring spun cotton tee finished with custom trim details and soft hand print.


text:
The real estate network that has the most competitive advantagesto offer both homebuyers and sellers will be an industry leader, and RE/MAX isthat network. No one in the world sells more real estate than RE/MAX.
When you look for the highest quality real estate service, look toa RE/MAX Associate. Here's why RE/MAX Associates are "The Real EstateLeaders":
RE/MAX Market Share
Network Size
RE/MAX Sales Associates
The RE/MAX Balloon Logo
An Industry Leader
Global Expansion
"The Hometown Experts With a World of Experience"
Committed to Real Estate Service
RE/MAX - now an established industry leader - celebratesits 30th anniversary in 2003 and looks ahead to even greater real estate achievementin the years ahead.


text:
Zip (and optionally encrypt) your Gmail attached files
ZipMail for Gmail is a Zip compression utility for the users of Google Gmail.
ZipMail for Gmail adds transparent Zip attached file compression (and decompression) features to Google Gmail and includes features like Secured Notes and attached file encryption enabling to improve Gmail privacy.
Once ZipMail for Gmail is installed, the files you attach to your Gmail messages are automatically and transparently compressed into industry-standard Zip files, saving significant amounts of network bandwidth and disk space while increasing attached file upload / download speed.
The key point is that there is absolutely nothing special to do in order to compress your Gmail attached files, ZipMail is fully transparent and automatic!
When writing your Gmail messages, simply attach your files as usual. The file selection dialog displayed when clicking the Browse button is enhanced by ZipMail as follows:


text:
PROVIDENCE �� Jonathan M. Bittner was working toward his Ph.D. in astrophysics at Harvard a few years ago, thinking he wanted to be a physics professor.But he didn�t have the passion for research he knew...
PROVIDENCE �� Jonathan M. Bittner was working toward his Ph.D. in astrophysics at Harvard a few years ago, thinking he wanted to be a physics professor.
But he didn�t have the passion for research he knew he needed as a professor. Still, he kept at it, gearing up for his dissertation.
His life, and career plans, began to change two years ago when he went home to New York for winter break. The young man who began programming computers at age 8 created something new � what he called a �fairness calculator.�
The idea involved developing algorithms to help roommates determine the fair amount they should pay for shared living space: �Split expenses the easy way,� he explains.
The idea evolved into SplitTheRent, and Bittner turned to a friend for help with his website. He and Ryan Laughlin had met the same way Bittner meets a lot of friends � singing in an a cappella group, this one at Yale.
Still an undergrad at Yale, Laughlin worked that next summer with Bittner, expanding SplitTheRent.
The fairness calculator quickly drew the attention of applied economists, consumer advocates and Lifehacker, a blog dedicated to computer-tech tips and tricks.
Bittner and Laughlin gained users, created iPhone and Android mobile apps, and participated in Mass Challenge, the Boston startup accelerator program that awards $1 million in grants each year. Among 125 finalists from 653 entrants, they didn�t win.
Then, December 2011 was a pivotal time in Bittner�s life.
On the summit of Cascade Mountain in New York�s Adirondacks, he asked Rebecca Blum to marry him. Yes, said the woman he had met while singing in their middle-school choir.
He, Laughlin and new team member Marshall Weir were accepted into the Betaspring accelerator program in Providence, with a new company name: Splitwise.
Bittner quit his Harvard Ph.D. program, abandoning future job prospects as a physics professor for the uncertainties of entrepreneurship.
Bittner and six others in his Betaspring class shared an apartment above the CVS in Kennedy Plaza. �Totally nuts,� he calls the arrangement.
During the boot camp, Betaspring employees befriended Bittner and Blum, urging the couple to settle in Providence. Blum really fell in love with the community here, too. She had been looking for something new after working from home in Cambridge as a consultant, and the couple agreed to move their lives here, Bittner says.
Now, he and his team have loftier goals. They want to figure out how to help people pay what they owe in seamless ways so that someday, bills don�t have to be delivered by mail or e-mail and friends know they�re even. Their latest, free iPhone app allows friends to use fairness calculators to determine what they owe each other and pay through the app, as long as they have PayPal accounts.
�We want people to not stress over money,� Bittner explains. �Money can ruin relationships. � I think everybody knows someone who has lost a friend over money.�
Also central to the company�s decision to settle in Providence was an investment of $50,000 from the City of Providence, which stipulates that they live here at least a year, Bittner says. The money was part of a federal grant that helped finance start-up companies. In return, the city will either get repaid or get a stake in the company.
Bittner and Blum are now married and live on the East Side, committed to the city.
They love the variety of restaurants in Providence, the community of entrepreneurs, networking events like PechaKucha, the art scene at AS220, the places to go dancing and a rent that�s lower than what they�d pay in Cambridge.
�It just felt like a very vibrant place,� says Bittner, 28.
Plus, he says, �It seems easier to focus here than in Boston, where the start-up scene can feel more like a zoo, very distracting.�


text:
I recently celebrated my 30th birthday this week. The wife and I had a group of friends over at our place for cocktails and munchies. SiriusXM was providing the background music through the 64bit internet stream over my computer's surround sound system. In other words, low quality audio, but great content. Naturally, SiriusXM became a topic of one of our conversations and the company will be getting an additional subscriber simply because of my get-together.
I shared this story because many of us on this board, and others like it, spend an awful lot of time complaining, analyzing, and praying over the company's stock. After listening to the most recent SiriusBuzz show, Charles talked about how SatRad made much of their inroads due to viral marketing.
As some of the most loyal subscribers and shareholders, as we are, let's get this train moving. Go buy a new SiriusXM t-shirt from the online store, ask your buddies at work if they heard Howard's show today, throw a bumper sticker on your car (EBay), give the gift of Sirius for birthdays.
A couple years from now, this company has the potential to look a lot different than it does today. The refinancing will come, double digit growth will continue, and we'll be out of this recession.
Put a 20 multiple on 2012 earnings and I'm buying the first round at THAT SiriusBuzz meet-and-greet.
- Jason


text:
If you own a business and you're spending more than $80,000 annually, you could be flying all over the planet in swanky business class for next to nothing simply by using credit card reward points.
Former Macquarie Bank accountant Steve Hui says most people have no idea how far their points can take them. He established a consultancy, iFLYflat, to help people use the points accrued from business spending to purchase heavily subsidised flights at the front of the plane.
This year we helped a fruit and vegetable shop earn 1.6 million points ... they used their points to fly their family of five to Europe in business class.Steve Hui
"The biggest mistake most people make when it comes to credit card reward points is not earning the points in the first place," Hui says.
iFLYflat kicked off less than two years ago and Hui claims to have already put plenty of bums on super-comfy long-haul seats. His business model is based around a subscription service costing anything from $660 per year to upwards of $3300, depending on how many flights are taken.
Use the money you already spend
Hui says there are three elements to iFLYflat. He helps clients earn more points by using the right credit cards to pay for business expenses, and assists them to select the right airlines, points programs and fares for their needs. Finally, he sources frequent flyer seats on major airlines for clients and books their tickets.
"This year we helped a fruit and vegetable shop earn 1.6 million points, simply by showing them which credit cards to use for all their business expenditure," he says. "Previously they were paying their suppliers with a combination of cash, cheque, EFT, and with credit cards that hardly earned any points. They used their points to fly their family of five to Europe in business class."
Want to fly to Dubai first class with Qantas? That will set you back 144,000 frequent flyer points each way (plus taxes). Hui says it's more achievable than most people think with the right type of expenditure.
"The whole idea is for people to earn the points with the money they are spending anyhow," he says. "A medium-sized business could earn that many points in less than three months."
Thinking of redeeming your points for a toaster or an iPod instead of a flight? Don't, says Hui.
"Flights are 600 to 1000 per cent better value than catalogue goods. That's because the airline or the credit card company has to buy the toaster first, which costs them money."
Never fly economy again
Ditto when it comes to redeeming your points for economy flights rather than business or first class. This is because the taxes are similar in all cases, yet the retail value of the ticket is much higher at the pointy end of the plane.
For example, to fly business class return Sydney/London/Sydney on Singapore Airlines will burn 161,500 points plus taxes of $1328.54. The retail price of the ticket is $8625, meaning the value of each point works out at 4.52 cents.
To do the same trip in cattle class will take 80,750 points, plus taxes of $1060. The retail value of the ticket is only $ 2150, meaning the value of each point is just 1.33 cents.
Pay your taxes
And he advises against the temptation to use points to pay taxes, which some airlines allow. "In all cases, paying for fees and taxes is poor value as the redemption rate is not good. They normally just convert your points into less than 1 cent per point and then use that to pay for the taxes," Hui says.
Chris Gray, host of Your Property Empire on Sky News, is one of Hui's earliest clients. "This was exactly the kind of business I was looking for," he says. "I haven't flown economy since I signed up, and I've taken more than 10 flights for free, only having to pay a couple of hundred bucks for taxes."
Gray also took advantage of the other side of Hui's business: purchasing frequent flyer points from the airlines for a wholesale price.
"My wife and I wanted to go to Vegas and we didn't have the points with a carrier that would take us there, so I paid Steve about two-thirds of the retail price and he was able to purchase the points for me," he says. "This is why he is so much value. The average person hasn't got a hope in hell of navigating an airline website to do this."
'Personal trainer for your points'
David Flynn, the editor of the Australian Business Traveller website, says that although it would be possible for the average punter to gain the mastery of their frequent flyer points, it takes a lot of hard work. "Sure, it's possible to gain a high level of knowledge about your points and how to use them, but it's hard yakka, so why wouldn't you hire an expert to do it for you?" he says.
"I see great merit in what Steve (Hui) is doing. It's akin to hiring a personal trainer for your points; to whip them into shape."
Flynn's own tips for maximising your points come down to three cardinal rules:
- Earn points everywhere you can, and not just on big-ticket items but on everyday purchases such as buying your lunch; it all adds up.
- Stay on top of your credit card payments and never, ever pay interest.
- Keep your eye out for great sign-up deals on credit cards, bank accounts and insurance plans which can deliver tens of thousands of points immediately. "For example, Bank West recently launched a bank account through which you could earn 10,000 Qantas points," Flynn says.


text:
Plugin Information
View Groovy on the plugin site for more information.
Older versions of this plugin may not be safe to use. Please review the following warnings before using an older version:
To configure available Groovy installation on your system, go to Jenkins configuration page, find section 'Groovy' and fill the form as shown bellow.
If you don't configure any Groovy installation and select
(Default) option in a job, the plugin will fallback into calling just the
groovy command, assuming you have
groovy binary on the default path on given machine.
To create Groovy-based project, add new free-style project and select "Execute Groovy script" in the Build section, select previously configured Groovy installation and then type your command, or specify your script file name. In the second case path taken is relatively from the project workspace directory.
Jenkins 1.x:
Jenkins 2.x:
The plugin also adds the functionality of the Script Console to the project configuration page.
You can schedule your system management script...
...and then observe progress in the build log.
Groovy Script vs System Groovy Script
The plain "Groovy Script" is run in a forked JVM, on the slave where the build is run. It's the basically the same as running the "groovy" command and pass in the script.
The system Groovy script on the other hand runs inside the Jenkins master's JVM. Thus it will have access to all the internal objects of Jenkins, so you can use this to alter the state of Jenkins. It is similar to the Jenkins Script Console functionality.
System groovy jobs has access to whole Jenkins, therefore only users with admin rights can add system Groovy build step and configure the system Groovy script. Permissions are not checked when the build is triggered (i.e. also uses without admin rights can also run the script). The idea is to allow users run some well defined (defined by admin) system tasks when they need it (e.g. put slave offline/online, when user wants to start some debugging on slave). To have Jenkins instance secure, the support for Token macro plugin has to be switched off, see section below.
Token macro plugin support
Groovy plugin provides support for Token Macro Plugin. Expression is GROOVY with parameter script:
${GROOVY,script = "return hudson.model.Hudson.instance.pluginManager.plugins"}
By default, the support for token macro pressing is switched off and has to be switch on in global config page.
If token macro processing via Token Macro Plugin is allowed, the evaluation of macro is done in System Groovy, therefore any user can run arbitrary system script, regardless he has administer permission!
Retrieving parameters and triggering another build
Execute a system Groovy script like:
import hudson.model.* import hudson.AbortException import hudson.console.HyperlinkNote import java.util.concurrent.CancellationException // Retrieve parameters of the current build def foo = build.buildVariableResolver.resolve("FOO") println "FOO=$foo" // Start another job def job = Hudson.instance.getJob('MyJobName') def anotherBuild try { def params = [ new StringParameterValue('FOO', foo), ] def future = job.scheduleBuild2(0, new Cause.UpstreamCause(build), new ParametersAction(params)) println "Waiting for the completion of " + HyperlinkNote.encodeTo('/' + job.url, job.fullDisplayName) anotherBuild = future.get() } catch (CancellationException x) { throw new AbortException("${job.fullDisplayName} aborted.") } println HyperlinkNote.encodeTo('/' + anotherBuild.url, anotherBuild.fullDisplayName) + " completed. Result was " + anotherBuild.result // Check that it succeeded build.result = anotherBuild.result if (anotherBuild.result != Result.SUCCESS && anotherBuild.result != Result.UNSTABLE) { // We abort this build right here and now. throw new AbortException("${anotherBuild.fullDisplayName} failed.") } // Do something with the output. // On the contrary to Parameterized Trigger Plugin, you may now do something from that other build instance. // Like the parsing the build log (see http://javadoc.jenkins-ci.org/hudson/model/FreeStyleBuild.html ) // You probably may also wish to update the current job's environment. build.addAction(new ParametersAction(new StringParameterValue('BAR', '3')))
Retrieve properties
To retrieve properties defined in the Properties field use:
Usage with pipeline
Currently the plugin does not support pipeline syntax. One workaround from Unknown User (alexander_samoylov) was mentioned here: https://stackoverflow.com/a/58381147/4807875.
Release 2.2 (2019-03-06)
Release 2.1 (2019-01-28)
Release 2.0 (2017-04-10)
- Arbitrary code execution by unprivileged user (SECURITY-292)
- continue with code cleanup - fixed Findbugs issues
Release 1.30 (2016-11-18)
- XSS protection
- code cleanup
Release 1.28, 1.29 (2016-01-05)
- code cleanup
Release 1.27 (2015-08-05)
Callableroles are properly checked
Release 1.26 (2015-07-27)
- Ensured correct position of class path option (JENKINS-29577)
- Improved help (pr #18)
Release 1.25 (2015-05-11)
- Made default choice also for System Groovy script to avoid zero height of textarea (JENKINS-25455)
- Add help file for Groovy version (JENKINS-12988)
- Made setting Groovy installations thread-safe (JENKINS-28287)
Release 1.24 (2014-11-09)
- Ensure non-zero height of Groovy command text box, making it default choice when adding new build step (JENKINS-25455)
Release 1.23 (2014-10-27)
- Set up correct GROOVY_HOME environment variable (JENKINS-25275)
Release 1.22 (2014-09-30)
- Fixed slashes conversion in script parameters (JENKINS-24870)
Release 1.21 (2014-09-18)
- Allow spaces in script parameters (JENKINS-24757)
Release 1.20 (2014-07-30)
- Unable to specify multiple jars on class path for a system groovy script (JENKINS-23997)
Release 1.19 (2014-07-07)
- Better parsing of parameters passed to Groovy binary, Apache commons-exec used for parsing (JENKINS-23617)
Release 1.18 (2014-05-13)
- NPE fixes (JENKINS-17171)
Release 1.17 (2014-05-09)
- Allow whitespaces in properties (passed via -D switch) (pull13)
Release 1.16 (2014-04-07)
- Upgrade to @DataBoundConstructor (JENKINS-6797)
- Fixed typo in warrning message (pull12)
Release 1.15 (2014-01-31)
- Syntax highlighting
- Syntax validation button
- Prepare for Jenkins core upgrade to Groovy 2.x (pull9)
Release 1.14 (2013-07-02)
- Right to run the System Groovy script changed from ADMINISTER to RUN_SCRIPTS (pull7)
Release 1.13 (2013-03-01)
- Added build context (build, launcher, listener) into system groovy build step (pull6)
Release 1.12 (2012-03-08)
- Fixed configuration of Token macro (pull5)
Release 1.11 (2012-02-26)
- Enabled env. variables expansion class path, groovy and script parameters
Release 1.10 (2012-02-09)
- Fixed possible job configuration corruption when user isn't admin (JENKINS-12080)
- Avoid NPE, add fallback if groovy executable is misoncifured (JENKINS-11652)
Release 1.9 (2011-09-14)
- Auto installer (JENKINS-7113 and JENKINS-10920)
- Fixed error message on global config page (JENKINS-10768)
- Expansion of job parameters (JENKINS-10525)
- Full access to JAVA_OPTS (i.e. parameters like -Xmx can be set up)
- Editable class path
Release 1.8 (2011-05-13)
- Fixed a configuration persistence problem that can create huge config.xml
Release 1.7 (2011-03-09)
- Added support for Token Macro Plugin
Release 1.6 (2011-02-08)
- Fixed security issue
Release 1.5 (2010-11-10)
- Classloader for actual System Groovy (JENKINS-6068)
- Allowed groovy.bat in addition to groovy.exe (JENKINS-6839)
- Temp files are removed (JENKINS-3269)
- Hudson global properties are expanded in groovy script file path (JENKINS-8048)
- Upgraded to 1.358 (JENKINS-6081)
Release 1.4 (2009-12-29)
- Improve error message for missing groovy executable
- Update uses of deprecated APIs
Release 1.2
- Added possibility to specify properties and script parameters.
- Added script source choice (file/command) for system groovy scripts.
- Used .exe instead of .bat on Windows (as suggested by Scott Armit).
- Added configuration option for classpath and initial variable bindings for
system groovy scripts.
Known bugs
- Configuring more builders at once actually doesn't absolutely work. If you need more groovy builders in your project, you have to configure them one by one and always save project configuration before you add new one.
45 Comments
Unknown User (smarmit)
Thanks for this plugin. I've found one issue however (Windows server); if the path to a groovy script passes args, then the full string is quoted. For example, in the "Groovy script file" field, you may have, "build.groovy one two" ('one' and 'two' being args).
The call to groovy.bat will look like, C:\Groovy-1.5.4\bin\groovy.bat "c:\hudson\jobs\groovy\workspace\build.groovy one two"
The result is an exception because groovy.bat processes everything in quotes as one long filename:
Caught: java.io.FileNotFoundException: C:\hudson\jobs\groovy\workspace\build.groovy one two (C:\hudson\jobs\groovy\workspace\build.groovy one two
There is a hacky workound, after your build script name, put double quotes. In my example, build.groovy" one two . This closes the first double-quote, and the last added one gets ignored.
Unknown User (dvrzalik)
Yep, the file field isn't intended for script parameters. Next version should let you specify parameters without any hacks.
Unknown User (smarmit)
Ok, thank you for the information. One other thing I found if you're interested. Apparently 'groovy.bat' does not handle return codes well. So if you System.exit(1) for instance out of your 'groovy' code, Hudson will still report SUCCESS. It's not Hudson's fault, but groovy.bat. Some notes on the groovy web site mention that using the native launcher fixes this (groovy.exe versus groovy.bat). I downloaded your src and changed ".bat" to ".exe" and built the 'hpi' and it works such that my return codes are not ignored.
Regards and thanks again for this plugin!
Unknown User (dvrzalik)
Thanks, I don't use Windows so I don't have much chance to catch these problems. I updated the code to use groovy.exe.
Unknown User (smarmit)
Wow, thanks for the fast fix. I'm mostly a linux guy, but have to support some Windows stuff. Speaking of, I tried out the plugin on linux, and tried my "hack" to pass parameters, but linux being stricter about quotes, the hack doesn't work. So I added a scriptArgs textbox under the scriptFile textbox and it works great. I tested giving the path to a groovy file with spaces in it on windows, and it quoted properly: e.g. <path-to-groovy.exe> "C:\Documents and Settings\user\build.groovy" -option1 -option2
The code is a little hacky as it's my first attempt at the plugin code, but I can get it to you if you're interested. Thanks again.
Unknown User (jvizueta)
I want to access a project's parameters from the "This build is parameterized" option in the project configuration page, how can I get this done?
Thank you
Unknown User (email@example.com)
How can I configure groovy in hudson. My groovy installation is on a windows.
My install location is
C:\Program Files\Groovy\Groovy-1.6.4
I have a SystemVariable in windows called GROOVY_HOME set to C:\Program Files\Groovy\Groovy-1.6.4
I have added this to the path as %GROOVY_HOME%\bin
In Hudson manage I am trying to specify the
groovy installation name as 'Groovy1.6.4'
GROOVY_HOME as C:\Program Files\Groovy\Groovy-1.6.4
as soon as I type this I get
HTTP Status 404 -
type Status report
description The requested resource () is not available.
Apache Tomcat/5.5.27
Also select 'execute groovy script' does not show the text box where I can specify the groovy script.
What am I doing wrong.
Thanks for your help.
Unknown User (mindcrime)
Great plugin, thanks! A couple of questions though... Is running a groovy script different from running a groovy "system command" in terms of what "stuff" is exposed to the groovy code? That is, the example listed above doesn't work for me when run as a Groovy script.. can I not get access to the hudson internals when running a Groovy script? What can you access when running Groovy scripts? Do you have visibility into any of the Hudson information about the project, build, etc? If so, how is it exposed to the Groovy code?
Thanks in advance for any and all help!
Unknown User (vladimir d)
Phillip Rhodes - If you create a "System Groovy Script" you can access the hudson instance like so:
I'm using it to find all my jobs (other than the one that's executing this script, which has a null SCM) like this:
branchJobs = Hudson.instance.items.findAll { item -> item.scm.class != NullSCM }
But, I'm having a bear of a time figuring out how to get groovy access to the environment variables, specifically from the "this build is parameterized" variable that I've defined.
If anybody has any clues to how this is done I'd appreciate it.
Unknown User (vkodocha)
Ok after reading your comment a second time I don't think that the link will solve the problem you have. It seams to be the same problem I had but I found a workaround yesterday (its not so nice but it is working):
import hudson.model.* def job = Hudson.instance.getItem("JobName") def runs = job.getBuilds() def currentBuild = runs[0] def vr = currentBuild.getBuildVariableResolver() println "Current build params are:" println "ParamName = " + vr.resolve("ParamName")
This will get you the values the user entered for the latest build of the given job, if this is the currently running job you will get the parameter for currently running job (tested with hudson 1.351).
Have a look at http://wiki.jenkins-ci.org/display/HUDSON/Display+job+parameters this should do what you want
Unknown User (marcolof)
After spending way too much time figuring this out, I found the following solution, which works fairly well for me (no need to submit <jobname>!)
import hudson.model.* import hudson.util.* /** * SPECIFIED VARIABLES (including axises -- which won't be in Build Variables) */ def thr = Thread.currentThread() def build = thr?.executable def buildMap = build.getBuildVariables() buildMap.keySet().each { var -> println var + ": " + buildMap.get(var) } println "-" * 80 /** * BUILD VARIABLES */ def envVarsMap = build.parent?.lastBuild.properties.get("envVars") envVarsMap.keySet().each { var -> println var + ": " + envVarsMap.get(var) } println "-" * 80
This should produce something like the following:
JOB_NAME: jbpm3-db/database=PostgreSQL,postgresql84 BUILD_ID: 2011-06-09_12-02-36 JENKINS_SERVER_COOKIE: 83xxxxxx09gjg HUDSON_SERVER_COOKIE: 83xxxxxx09gjg BUILD_TAG: jenkins-database=PostgreSQL,postgresql84-32 JBPM_VERSION: 3.2.x BUILD_NUMBER: 32 database: PostgreSQL,postgresql84 -------------------------------------------------------------------------------- _: /usr/lib/jvm/java-1.6.0-sun.x86_64/bin/java BUILD_ID: 2011-06-09_12-02-36 BUILD_NUMBER: 32 BUILD_TAG: jenkins-database=PostgreSQL,postgresql84-32 BUILD_URL: http://..../hudson/job/jbpm3-db/./database=PostgreSQL,postgresql84/32/ CLASSPATH: EXECUTOR_NUMBER: 0 G_BROKEN_FILENAMES: 1 HISTSIZE: 1000 HOME: /... HOSTNAME: ... HUDSON_CONFIG_DIR: ... HUDSON_HOME: ... HUDSON_SERVER_COOKIE: 83xxxxxx09gjg HUDSON_URL: http://.../hudson/ INPUTRC: /etc/inputrc JAVA_HOME: /usr/lib/jvm/java-1.6.0-sun.x86_64 JAVA_OPTS: -Dprogram.name=run.sh -server .... JBOSS_HOME: /var/lib/jbossas JBPM_VERSION: 3.2.x JENKINS_HOME: ... JENKINS_SERVER_COOKIE: 83xxxxxx09gjg JENKINS_URL: ... JOB_NAME: jbpm3-db/database=PostgreSQL,postgresql84 JOB_URL: .... LANG: en_US.UTF-8 LD_LIBRARY_PATH: /usr/lib/jvm/java-1.6.0-sun-18.104.22.168.x86_64/jre/lib/amd64/server:... LESSOPEN: |/usr/bin/lesspipe.sh %s LOGNAME: ... MAIL: /var/spool/mail/... NLSPATH: /usr/dt/lib/nls/msg/%L/%N.cat NODE_LABELS: ... NODE_NAME: PATH: /usr/local/bin:/bin:/usr/bin:... PWD: /var/lib/jbossas/bin SHELL: /bin/sh SHLVL: 2 SVN_REVISION_1: 6952 SVN_REVISION_2: 17261 SVN_URL_1: ... SVN_URL_2: ... TERM: xterm TEST_PARAM: tags/stable USER: ... WORKSPACE: <http://.../hudson/job/jbpm3-db/./database=PostgreSQL,postgresql84/ws/> XFILESEARCHPATH: /usr/dt/app-defaults/%L/Dt
There is some overlap between the two, but matrix/axises can only be found in the "specified" parameters/properties.
Unknown User (vkodocha)
Is it possible to access the properties set by a parametrized build form within a "Execute System Groovy script" (file or when directly entered in the text box). I can access the properties in an external groovy script ("Execute Groovy script") by going over the System.getenv() path. But when trying the same inside a system one the properties are not set in the environment.
I tried to add the properties with the "Variable bindings" by specifying testName=$NameOfParameter but this is also not working. Basically the plugin is not resolving $NameOfParameter to the value of this field.
I think the simplest solution would just be to add the properties from the parametrized build to the environment of the groovy script.
Unknown User (nperrier)
Same problem. Bindings work good with strings, but they don't seem to expand build parameters...is this the way it's supposed to work?
Unknown User (nperrier)
By the way, how about using a spellchecker for your help section chief :)
"Define varibale bingings (in the properties file format). Spefified variables can be addressed from the script."
Unknown User (vladimir d)
I finally got my script to fetch the parameterized build value, here's how:
def job = Hudson.instance.getItem("JobName"); def envVars= job.lastBuild.properties.get("envVars"); // this is actually the currently running build, if the script is executed in "JobName" println envVars["MyParameterName"];
hope this helps.
Unknown User (mcrooney)
You are my hero, thanks, that works!
Unknown User (dnozay)
added Parameterized System Groovy script page, here is a less hacky recipe :
def build = Thread.currentThread().executable def resolver = build.buildVariableResolver def myfooparam = resolver.resolve("MYFOOPARAM") println "MYFOOPARAM=${myfooparam}"
gives (provided my build was started with MYFOOPARAM=foobar)
Started by user dnozay MYFOOPARAM=foobar Finished: SUCCESS
Unknown User (fsimo)
Since this script show me user and password on Console Script it doesn't works within a "system groovy script", it show SYSTEM/SYSTEM.
Any one knows who to know the user's credentials within a task?
import org.acegisecurity.Authentication;
import org.acegisecurity.context.SecurityContextHolder;
println("Usuario: "+(String)hudson.model.User.current());
Authentication auth = SecurityContextHolder.getContext().getAuthentication();
String g=auth.getCredentials();
println("Password: "+ g);
Unknown User (dbaret)
I don't anderstand what is this problem.
I tried this :
it works under the admin script consol but not in an execute system script groovy command : I get SYSTEM and not my user name.
It's a bug?
Unknown User (geronimo)
How would I get the workspace of my current build?
Unknown User (geronimo)
via Thread.currentThread().executable.
Unknown User (wernight)
Sorry to ask, but how is
Thread.currentThread().executableworking for concurrent builds and multiple nodes/slaves?
Unknown User (geronimo)
I wonder whether the "forked JVM/script" part of this plugin is particular useful?
Cause I can archive the very same by running a shell script like (as build job) like
#!/bin/bash exec /path/to/groovy /path/to/script.groovy
To comfort various groovy installations, I could setup env variables like GROOVY_BIN_1, GROOVY_BIN_2 and so on and change script above into
#!/bin/bash exec ${GROOVY_BIN_5} /path/to/script.groovy
So, why providing something which is already there?
Unknown User (geronimo)
After having playing around with this plugin, I consider it a waste of time - to put it mildly.
As an example, Jenkins variables are resolved in <scriptSource /> but NOT in </scriptParameters />.
<hudson.plugins.groovy.Groovy> <scriptSource> <scriptFile>${SCRIPT_dir}/hello.groovy</scriptFile> </scriptSource> <scriptParameters>${MESSAGE}</scriptParameters> </hudson.plugins.groovy.Groovy>
Unknown User (gisela_sn)
Anyone know how to use the variable bindings for system groovy scrpits?
Unknown User (wernight)
First you'll need to access the build instance, see Parameterized System Groovy script
Then supposing it's a standard free style job, see http://javadoc.jenkins-ci.org/hudson/model/FreeStyleBuild.html
Unknown User (sunstorm)
I'd like to invoke (i.e. submit to the build queue) a parameterised job with two parameters, A and B. I'd like to invoke the job using the default value for A and supply an overridden value for B. I'd also like to wait for the submitted job to complete. Can anyone provide explicit code for doing this? Thanks.
Unknown User (wernight)
A system Groovy script may help, see
scheduleBuild2may be the safest choice. Something like:
hudson.model.Hudson.instance.getJob('My Job Name').scheduleBuild2(0, Cause.UserIdCause, ...)
Unknown User (edalquist)
Generic system script that can be used to fail the current build of other builds are not successful
/** * Fails the current build if any of the specified builds are failing * * Required a Variable Bindings * projectNames - A comma delimited list of projects to check * * Optional Variable Bindings * requireOnlyMostRecent - If true only the most recent build among the list of projects must be successful */ try { requireOnlyMostRecent; } catch (MissingPropertyException e) { requireOnlyMostRecent = false; } def mostRecentSuccess = null; def mostRecentFailure = null; for (projectName in projectNames.split(",")) { def proj = hudson.model.Hudson.instance.getItem(projectName); if (proj == null) { println projectName + " DOES NOT EXIST, failing build"; return false; } else if (proj.lastBuild == null) { if (!requireOnlyMostRecent) { println projectName + ": has no builds, failing build"; return false; } } else if (proj.lastBuild.result != hudson.model.Result.SUCCESS) { if (!requireOnlyMostRecent) { println projectName + ": the last build was not successful, failing build"; return false; } if (mostRecentFailure == null || mostRecentFailure < proj.lastBuild.time) { println projectName + ": the last build was not successful, recording mostRecentFailure"; mostRecentFailure = proj.lastBuild.time; } else { println projectName + ": the last build was not successful, but is not mostRecentFailure"; } } else { println projectName + ": the last build was successful"; if (mostRecentSuccess == null || mostRecentSuccess < proj.lastBuild.time) { mostRecentSuccess = proj.lastBuild.time; } } } if (!requireOnlyMostRecent) { //All builds must be successful, continue with build return true; } println "mostRecentSuccess: " + mostRecentSuccess; println "mostRecentFailure: " + mostRecentFailure; return mostRecentSuccess != null && (mostRecentFailure == null || mostRecentSuccess > mostRecentFailure);
Unknown User (wernight)
Does anyone know how to define parameters or environment variables for the current build in a System Groovy script?
Reason: System Groovy runs on master, but can access other builds info and trigger builds. Normal Groovy runs on the node. How to transmit info between both?
Unknown User (nickg)
To set properties using the System Groovy Script:
import hudson.model.* def pa = new ParametersAction([ new StringParameterValue("foo1", "bar1"), new StringParameterValue("foo2", "bar2") ]) // add variable to current job Thread.currentThread().executable.addAction(pa)
Hope that helps.
If you need to run it as a normal Groovy script, you'll probably need to do the following: http://stackoverflow.com/questions/9996315/jenkins-packages-on-groovy-classpath
Unknown User (nickg)
Or even...
import hudson.* import hudson.model.* def build = Thread.currentThread().executable build.getEnvironments().add(Environment.create(new EnvVars(["key1":"val1","key2":"val2"])))
Unknown User (ivan_zolotuhin)
Don't want to lost my script, may be somebody will need it. Lot of things this can do (most of copypaste part from another scripts some of them already on this page).
We have build jobs which only build code (job ends with "-build" suffix) and depoy jobs (the same name as build job, but "-CI" suffix).
Task was to determine does code already built (and skip build step which save time and resources because don't need to rerun build job again) otherwise to trigger build job, and then retrieve component version and trigger deployment tool (to pass arguments which WAR to deploy).
build job system groovy script:
- Determines COMPONENT_VERSION from Maven, OR (!) if you specifu POM_XML=relativepath/pom.xml if will parse XML, in some cases it is correct way) - this step is merging of 2 separate scripts, which was before, now if option POM_XML injected via envinjector plugin - groovy runs xml parsin algorithm, otherwise just takes mavenVer from maven build result
- Detetmines MAX_SVN_REVISION - It is already exist SVN_REVISION = SVN_REVISION_1 & SVN_REVISION_2,3,4 and so on, to make things simplier script compares all SVN_REVISION_N variables and choose the highest (may be to summarize them is more correct, but all works fine for now).
- Determines does it release or *-SNAPSHOT version and set RELEASE=true/false accordingly. Needed only to skip Sonar which is always fails if release (releases goes with Artifactory plugin), so Sonar configured to skip itself if RELEASE=true
// basic classes import hudson.* import hudson.model.* import hudson.util.* def thr = Thread.currentThread(); def currentBuild = thr?.executable; def workspace = currentBuild.getModuleRoot().absolutize().toString(); //////START///// DETERMINE MAX SVN REVISION /////////// def SVN_REVISION = currentBuild.getEnvironment()["SVN_REVISION"] def SVN_REVISION_1 = currentBuild.getEnvironment()["SVN_REVISION_1"] def SVN_REVISION_2 = currentBuild.getEnvironment()["SVN_REVISION_2"] if ( SVN_REVISION < SVN_REVISION_1 ) { SVN_REVISION = SVN_REVISION_1; } if ( SVN_REVISION < SVN_REVISION_2 ) { SVN_REVISION = SVN_REVISION_2; } println "[TSS] MAX_SVN_REVISION="+SVN_REVISION //currentBuild.getEnvironments().add(Environment.create(new EnvVars(["MAX_SVN_REVISION":SVN_REVISION]))) currentBuild.addAction(new ParametersAction(new StringParameterValue("MAX_SVN_REVISION", SVN_REVISION))); //////END///// DETERMINE MAX SVN REVISION /////////// //////START///// PARSE XML OR GET MAVENVER /////////// if ( currentBuild.getEnvironment().containsKey("POM_XML") ) { POM_XML = currentBuild.getEnvironment()["POM_XML"] println "[TSS] POM_XML=${POM_XML} (hard coded -> XML needs to be parsed)" def project = new XmlSlurper().parse(new File("$workspace/$POM_XML")); mavenVer = project.version.toString(); } else { println '[TSS] Automatically retrieve component version from Maven build.' println '[TSS] If it is wrong (usually it is ok, and this message just info), you can parse pom file with XML.' println '[TSS] For this please specify environment variable POM_XML=relative_path_to/pom.xml (usually the same as specified for in maven "Root POM" section)' mavenVer = currentBuild.getParent().getModules().toArray()[0].getVersion(); } //////END///// PARSE XML OR GET MAVENVER /////////// println '[TSS] COMPONENT_VERSION='+mavenVer def newParamAction = new hudson.model.ParametersAction(new hudson.model.StringParameterValue("COMPONENT_VERSION", mavenVer)); currentBuild.addAction(newParamAction); // Determine if RELEASE=true => Sonar will skip code checks, otherwise it fails if ( mavenVer.matches(".*SNAPSHOT") ) { currentBuild.addAction(new hudson.model.ParametersAction(new hudson.model.BooleanParameterValue("RELEASE", false))); println '[TSS] RELEASE=false'; } else { currentBuild.addAction(new hudson.model.ParametersAction(new hudson.model.BooleanParameterValue("RELEASE", true))); println '[TSS] RELEASE=true'; }
deploy job system groovy script:
- Suggest build job name simply replacing -CI to -build suffix, but you have option to specify it manually (if build job is different from autosuggestion) -> just inject variable BUILD_JOB_NAME=buildjobname and script will use it.
- Get COMPONENT_VERSION from last build job, which is setted up with prevous script.
- Determines MAX_SVN_REVISION (see above) and compares it with the same from the last build job -> if this the same it don't triggers build job, because don't need to waste time to compile the same code twice (othewise it triggering build job)
// base classes import hudson.* import hudson.model.* import hudson.util.* // classes for triggering another job import hudson.AbortException import hudson.console.HyperlinkNote import java.util.concurrent.CancellationException // GET INFO ABOUT CI JOB (which is current job) def thr = Thread.currentThread(); def currentBuild = thr?.executable; def CI_JOB_NAME = currentBuild.getEnvironment()["JOB_NAME"] //////START///// DETERMINE BUILD JOB NAME /////////// if ( currentBuild.getEnvironment().containsKey("BUILD_JOB_NAME") ) { BUILD_JOB_NAME = currentBuild.getEnvironment()["BUILD_JOB_NAME"] println "[TSS] BUILD_JOB_NAME=${BUILD_JOB_NAME} (hard coded)" } else { BUILD_JOB_NAME = (CI_JOB_NAME =~ /-CI/).replaceFirst("-build") println "[TSS] BUILD_JOB_NAME=${BUILD_JOB_NAME} (auto suggestion)" println '[TSS] If it is wrong (usually it is ok, and this message just info), you can setup it manually.' println '[TSS] For this please specify environment variable "BUILD_JOB_NAME=Build-Job-Name"' } //////END///// DETERMINE BUILD JOB NAME /////////// def BUILD_JOB = Hudson.instance.getJob(BUILD_JOB_NAME) //////START///// DETERMINE CI MAX SVN REVISION /////////// def CI_SVN_REVISION = currentBuild.getEnvironment()["SVN_REVISION"] def CI_SVN_REVISION_1 = currentBuild.getEnvironment()["SVN_REVISION_1"] def CI_SVN_REVISION_2 = currentBuild.getEnvironment()["SVN_REVISION_2"] if ( CI_SVN_REVISION < CI_SVN_REVISION_1 ) { CI_SVN_REVISION = CI_SVN_REVISION_1; } if ( CI_SVN_REVISION < CI_SVN_REVISION_2 ) { CI_SVN_REVISION = CI_SVN_REVISION_2; } println '[TSS] '+CI_SVN_REVISION+' = SVN REVISION OF JOB '+CI_JOB_NAME //////END///// DETERMINE CI MAX SVN REVISION /////////// //////START///// DETERMINE BUILD MAX SVN REVISION /////////// def BUILD_SVN_REVISION = BUILD_JOB.getLastBuild().getEnvironment()["MAX_SVN_REVISION"] //def BUILD_SVN_REVISION_1 = BUILD_JOB.getLastBuild().getEnvironment()["SVN_REVISION_1"] //def BUILD_SVN_REVISION_2 = BUILD_JOB.getLastBuild().getEnvironment()["SVN_REVISION_2"] //if ( BUILD_SVN_REVISION < BUILD_SVN_REVISION_1 ) { BUILD_SVN_REVISION = BUILD_SVN_REVISION_1; } //if ( BUILD_SVN_REVISION < BUILD_SVN_REVISION_2 ) { BUILD_SVN_REVISION = BUILD_SVN_REVISION_2; } println '[TSS] '+BUILD_SVN_REVISION+' = SVN REVISION OF JOB '+BUILD_JOB_NAME //////END///// DETERMINE BUILD MAX SVN REVISION /////////// //////START///// COMPARING REVISIONS AND TRIGGER BUILD JOB IF NEED if ( BUILD_SVN_REVISION != CI_SVN_REVISION ) { println "[TSS] Versions are not the same -> need to trigger build job" // don't need this var, but leave it as example of setup up env (not sys) var currentBuild.getEnvironments().add(Environment.create(new EnvVars(["BUILD_TRIGGER":"true"]))) //////START///// TRIGGER BUILD JOB BLOCK /////////// (see examples on https://wiki.jenkins-ci.org/display/JENKINS/Groovy+plugin ) def job = Hudson.instance.getJob(BUILD_JOB_NAME) def anotherBuild try { def params = [ // UNCOMMENT/ and MODIFY THIS IF NEED TO PASS ANY ARGS TO BUILD JOB // new StringParameterValue('FOO', foo), ] def future = job.scheduleBuild2(0, new Cause.UpstreamCause(currentBuild), new ParametersAction(params)) println "Waiting for the completion of " + HyperlinkNote.encodeTo('/' + job.url, job.fullDisplayName) anotherBuild = future.get() } catch (CancellationException x) { throw new AbortException("${job.fullDisplayName} aborted.") } println HyperlinkNote.encodeTo('/' + anotherBuild.url, anotherBuild.fullDisplayName) + " completed. Result was " + anotherBuild.result // Check that it succeeded currentBuild.result = anotherBuild.result def anotherBuildResult = anotherBuild.result.toString() if (anotherBuildResult != 'SUCCESS' && anotherBuildResult != 'UNSTABLE') { // We abort this build right here and now. throw new AbortException("${anotherBuild.fullDisplayName} failed.") } ////// END ///// TRIGGER BUILD JOB BLOCK /////////// } else { println '[TSS] Build job SVN revision is current which means that current code already build -> NOT TRIGGERING BUILD JOB' currentBuild.getEnvironments().add(Environment.create(new EnvVars(["BUILD_TRIGGER":"false"]))) } //////END///// COMPARING REVISIONS AND TRIGGER BUILD JOB IF NEED /////START//// RETRIEVE LATEST COMPONENT_VERSION AND SVN REVISION // THIS WORKS ONLY IF MAVEN BUILD SUCCESFULL //def BUILD_JOB_COMPONENT_VERSION = BUILD_JOB.getLastBuild().getParent().getModules().toArray()[0].getVersion(); // THIS WORKS ONLY WHEN WE CREATE THIS VARIABLE ON BUILD JOB SIDE def BUILD_JOB_COMPONENT_VERSION = BUILD_JOB.getLastBuild().getEnvironment()["COMPONENT_VERSION"] // NOT IMPORTANT AND WORKS ONLY IF PROPER GROOVY SCRIPT EXIST ON BUILD JOB SIDE, OTHERWISE JOB WILL RETURN NONE // SET UP AS ENV VAR (not system) -> otherwise will break nolio def LATEST_BUILD_SVN_REVISION = BUILD_JOB.getLastBuild().getEnvironment()["MAX_SVN_REVISION"] if ( LATEST_BUILD_SVN_REVISION ) { currentBuild.getEnvironments().add(Environment.create(new EnvVars(["MAX_SVN_REVISION":LATEST_BUILD_SVN_REVISION]))) println '[TSS] Last Build job svn_revision = '+LATEST_BUILD_SVN_REVISION } else { currentBuild.getEnvironments().add(Environment.create(new EnvVars(["MAX_SVN_REVISION":"NONE"]))) } // Nolio can use only System variables currentBuild.addAction(new ParametersAction(new StringParameterValue("COMPONENT_VERSION", BUILD_JOB_COMPONENT_VERSION))); /////END//// RETRIEVE LATEST COMPONENT_VERSION AND SVN REVISION
Unknown User (yamau6809)
Does anyone have a problem specifying classpath for a script using the class path edit box build option targeting Windows?
When I specify multiple jar files in the edit box, the script cannot import a Java class specified with 'import' statement. If I use -cp "jarfile1.jar;jarfile2.jar;jarfile3.jar" in the Groovy Parameters edit box, the script can import the specified class.
So it seems to me that quote around classpath is required on Windows, because using the class path edit box does work on Unices.
Unknown User (roosto)
I had the need to create system groovy script to modify build parameters. I was unable to find a direct answer to my question through googling, so I thought I would deposit my solution here in hopes that it will find another who is in need.
In this case, I have one string type parameter that I want to programmatically alter. I don't want to monkey with any of the other parameters .
import hudson.model.* // get the original parameters as they were submitted current_param_actions = build.getAction(ParametersAction.class) def current_params = current_param_actions.getParameters() // create a new empty set of parameters that will eventually contain our substituting value Collection<? extends ParameterValue> new_params = new ArrayList<>(); // copy all the submitted parameters, except the one that we are altering current_params.each() { if ( ! it.getName().equals("NAME_OF_PARAM_TO_ALTER") ) { new_params.add( it ) } } // determine new value of the parameter we wish to override and add it to our set of parameters new_value = func_to_find_value() new_params.add( new StringParameterValue("NAME_OF_PARAM_TO_ALTER", new_value ) ) // replace the submitted set of values with our altered set of values build.actions.remove(current_param_actions) new_param_actions = current_param_actions.createUpdated(new_params) build.actions.add(new_param_actions) // some debugging output for sanity checking when examining console output build.getAction(ParametersAction.class).getParameters().each { println "[info] parameter ${it.name}:" println "[info] " + it.dump() println "-" * 80 }
h/t to these two questions, which helped me arrive at my answer:
Unknown User (kieranshaw)
I too would love to know how to use the classpath field on the execute system groovy script step. The non-system groovy script will let me use @Grab and do something like this:
@Grab(group='org.codehaus.groovy.modules.http-builder', module='http-builder', version='0.7.2' )
However, the system groovy script, which runs in the Jenkins JRE does not have ivy available to do that. I've heard that you could load the ivy jar into the Jenkins war to make this work, but it isn't a very viable option as you'll need to do it after each upgrade.
I've tried adding something like "/tmp/ivy-2.4.0-rc1.jar" to the classpath field but it doesn't make any difference. Looking through the plugin source code, it seems to apply this variable here in the SystemGroovy.java
CompilerConfiguration compilerConfig = new CompilerConfiguration(); if (classpath != null) { compilerConfig.setClasspath(classpath); }
So it looks like it is used, but it appears to make no difference as I still get "java.lang.NoClassDefFoundError: org/apache/ivy/Ivy" when running a script with a @Grab
What I'm really looking for is a way of running any arbitrary groovy script (using other libraries), but in the context of the Jenkins master so I can get access to jobs and config.
Any ideas anyone?
Unknown User (mr_dfuse)
I keep running into Caused by: java.lang.ClassNotFoundException: org.codehaus.groovy.tools.GroovyStarter
when executing a Groovy script from a job. When I paste the command from the console into a prompt on the slave, it works fine. As I read on the net this migt be caused by setting GROOVY_HOME, but I don't do that (and setting it doesn't solve it)
Unknown User (mr_dfuse)
Ok I checked the source code, it is a bug. See https://issues.jenkins-ci.org/browse/JENKINS-25275
Unknown User (monique)
It seems the provided example
build.addAction(new ParametersAction(new StringParameterValue('BAR', '3')))
does not work (anymore) with Jenkins 2.5. On an attempt to execute this code the following message is logged in the Jenkins console log:
May 19, 2016 11:10:24 AM hudson.model.ParametersAction filter WARNING: Skipped parameter `BAR` as it is undefined on `test`. Set `-Dhudson.model.ParametersAction.keepUndefinedParameters`=true to allow undefined parameters to be injected as environment variables or `-Dhudson.model.ParametersAction.safeParameters=[comma-separated list]` to whitelist specific parameter names, even though it represents a security breach
I tried to invoke
def newEnv = new EnvVars ( "BAR", "3" ) def paramAction = new ParametersAction() paramAction.buildEnvVars( build, newEnv )
Then there is no warning message in the log, but the attempt to refer (later in the job definition) the variable in a shell script reveals an empty value, i.e. the variable is not transferred to the build (defined outside the Groovy script)
Is there any workaround for this problem?
Unknown User (cwcam)
The answer to your question is in the error message you posted. This is related to a security update, that by default will block all parameters you create through groovy.
You can pass in these arguments inside the jenkins.xml
Set `-Dhudson.model.ParametersAction.keepUndefinedParameters`=true to allow undefined parameters to be injected as environment variables or `-Dhudson.model.ParametersAction.safeParameters=[comma-separated list]` to whitelist specific parameter names, even though it represents a security breach
Unknown User (srinivas_n4u)
Thanks for the plugin, it is helping us a lot. We have a groovy script which will execute as a post build step(system groovy script) in all our Jenkins jobs(300+). This groovy script requires few additional jar files to be available in classpath. So if we have any change in external jars versions, it is hard for us to configure these jars in all the jobs from plugin configuration. Can we have a option to add classpath jars at global level(manage jenkins) configuration?
Unknown User (tashoyan)
Ho to set JVM heap parameters like Xmx?
Groovy docs suggest only declaring JAVA_OPTS environment variable: JAVA_OPTS="-Xmx..."
But how to set heap size for a groovy script launched by Groovy plugin from Jenkins?
Unknown User (tashoyan)
Experimentally found that a string entered into "Advanced / Java opts" gets propagated via JAVA_OPTS environment variable. So the answer is: put "-Xmx..." to "Advanced / Java opts" in the "Execute Groovy script" build step configuration.
Unknown User (zeeshanhaq)
Is there any example shared that explains how to use classpath with system groovy script?
Unknown User (tashoyan)
How to use this plugin in Pipelines? For example, I want to execute a Groovy script and I want to use some specific Groovy version and to specify some Java opts.


text:
Searching for Sioux City to Iowa flights for your next trip shouldn't be a hassle. We make it as easy as can be with our helpful list of flights from Sioux City to Iowa below. Simply choose your specific destination and then browse the dates and prices until you find your perfect match.
Flights from Sioux City to Iowa
List of Airports in Iowa
Looking to fly to Iowa for your next solo getaway or family vacation? We're here to make booking your next trip as easy as possible. Simply browse through our list of flights to Iowa to discover which cities have airports in the area. Click on the airport destination to find additional information about the terminal, popular routes, and more.


text:
Washington D.C., Feb 15, 2013 / 05:06 pm ().- Two U.S. archbishops involved in defense of marriage efforts and the military spoke out against a new Pentagon policy giving gay couples many of the benefits of military spouses.
"This new policy under the guise of 'equal benefits' undermines marriage as the union of one man and one woman because it treats two persons of the same sex as spouses," said Archbishop Timothy P. Broglio of the U.S. Archdiocese for the Military Services.
In a statement released by the U.S. Conference of Catholic Bishops on Feb. 15, Archbishop Broglio voiced concern over a new military policy treating same-sex partners as if they were married.
He was joined by Archbishop Salvatore J. Cordileone of San Francisco, who is the chairman of the bishops' Subcommittee for the Promotion and Defense of Marriage.
The archbishops responded to a Feb. 11 announcement by the Department of Defense on a policy change that will soon allow gay domestic partners of armed service members on active duty to receive many of the same benefits as military spouses, including legal assistance and counseling, ID cards and recreational privileges.
Some benefits, such as health care and housing allowances, are banned under the federal Defense of Marriage Act, which defines marriage as the union of one man and one woman for federal purposes.
However, Secretary of Defense Leon Panetta said these benefits will also be expanded to include same-sex couples if the Supreme Court rules against the Defense of Marriage Act in an upcoming case this summer.
In his State of the Union address on Feb. 12, President Barack Obama referenced the policy change, saying that he plans to "ensure equal treatment for all service members, and equal benefits for their families – gay and straight."
However, Archbishop Broglio argued that the policy undermines the Defense of Marriage Act, which is still the law of the land, despite Obama's 2011 announcement that his administration would no longer defend it in courts.
Furthermore, the archbishop warned, the policy change threatens the freedom of conscience and religious liberty of members of the armed services.
"Could a JAG officer choose, out of religious or moral convictions, not to give legal advice on marital and family issues to same-sex 'partners' without being subject to discipline?" he asked. "Forcing the officer to violate his conscience would not be fair."
Archbishop Cordileone echoed these concerns and stressed the institutions of marriage and family.
"There is no question that all service members should be treated equally," he said, "but it is not discrimination to treat different things differently."
The archbishop explained that because only "a man and a woman can bring children into the world," marriage "as the foundation of the family" is unique from other adult relationships and must be reserved for opposite-sex partners.
The new policy, he added, actually discriminates because it designates only "two people of the same sex in a sexual relationship for special consideration," treating other types of adult relationships differently.
"More importantly," Archbishop Cordileone added, "children, who are our future, have a right to be raised by their mother and father together."
"For the sake of our nation, and especially for the sake of our children, marriage should be promoted and protected at every opportunity, never undermined," he said.
Tags: Gay Marriage, Military Archdiocese, Same sex unions, Military
You may also like »
Critics decry decision to remove age limits for Plan B
Citing the health and wellbeing of young girls, critics slammed the Obama administration's...
Cuban Church to focus on evangelization in new pastoral plan
The Church in Cuba recently unveiled its pastoral plan for 2014-2020, which will encourage...
Pope: Jesus' plan for humanity requires Catholic Church
Pope Francis began a new series of reflections by saying that although some people want Jesus...


text:
October 26, 2011
Distinguished professor's work a patented success
Submitted by Communications and Marketing
In the 16 years Xiuzhi "Susan" Sun has been at Kansas State University, she's made a patent-worthy discovery nearly every year.
Sun is a university distinguished professor in grain science and industry and is an internationally recognized expert in bio-based materials -- specifically in soy polymer structure, synthesis and adhesion. Her focus is on how various plant and grain molecules -- like proteins, lipids and sugars -- can be used to create bio-based materials that are safer, more durable and environmentally friendly.
Currently Sun's work has been granted eight patents, with six more pending.
The most recent patent covers a peptide-based adhesive that could be used in outer space, as its stickiness increases in drier environments. This ability means it could be ideal for affixing a heat-resistant tile to a spacecraft or a space station.
Some of her other patents cover edible and biodegradable feed packaging materials; an apparatus to form these packaging materials; a soy-based, formaldehyde-free adhesive that's water resistant; and high strength degradable plastics from the reactive blending of starch and poly(lactic acid).
But Sun's discoveries don't stop there. Her latest has potential human health applications, including repairing and replacing whole tissues.
By introducing a calcium ion to a protein molecule, Sun and her colleagues found that the molecules form a thermostable, water-based colloidal gel, called a hydrogel. The interaction between the calcium ions and protein molecules creates tiny, cross-linking fine fibers with a nanoscale diameter -- around 10 nanometers. The resulting material has a consistency similar to jelly, even though it's nearly 100 percent water.
This novel hydrogel has unusual properties, including a rapid recovery property, Sun said. Shaking it transforms the hydrogel into hundreds of colorless micro gels with a Newtonian flow. Though these micro gels aren't a liquid, they behave like water. After about 10 seconds, the liquid-like substance reforms into a hydrogel due to its rheological properties. Having rheological properties allows the material to be deformed into micro gels and back into a hydrogel with the shake of the hand.
"This discovery has great potential for drug delivery and 3-D cell growth for tissue engineering," Sun said. "Potentially, it could lead to repairing or replacing bone, cartilage, blood vessels and skin."
Based on published information, this is currently the only protein-binding calcium that's led to a hydrogel, as well as the fastest rapid recovery speed and the smallest molecular weight.
Sun's work has also led to developing a novel soy oil-based resin that can be used for transparent duct and packing tapes.
"I have always felt so rewarded if any of the technologies developed from my laboratory have commercial values that improve our environment and make the world a better place," said Sun, who was inspired by stories about famous scientists like Sir Isaac Newton during her teenage years.
Sun established and leads Kansas State University's Bio Materials and Technology Laboratory and is co-director and founder of the university's Center for Biobased Polymers By Design.
Sun's work is earning a high recognition. She will receive the Irvin Youngberg Award for Applied Sciences, which is one of the Higuchi-University of Kansas Endowment Research Achievement Awards. The award includes a plaque and a $10,000 grant to be used for research materials, summer salaries, fellowship matching funds, hiring research assistants or other research support.


text:
Gas, diesel prices cut
State-run CPC Corp, Taiwan (台灣中油) announced yesterday that it would cut wholesale gasoline and diesel prices by NT$0.2 per liter as of this morning.
The adjusted retail price for 98-octane unleaded gasoline is NT$28, while 95-octane gasoline will cost NT$26.5, 92-octane gasoline will cost NT$25.8 and top-grade diesel oil will be NT$22.7 per liter, the company said in a statement yesterday.
Formosa Petrochemical Corp (台塑石化) said it would lower its prices to match CPC Taiwan's, effective 10pm yesterday.
Chi Mei links with Neurok
Chi Mei Optoelectronics Corp (奇美電子), the nation's second-largest maker of flat-panel displays, said it has formed a venture with Neurok Optics, LLC to make game-console screens that display three-dimensional images.
The venture, based in San Diego, California, will begin shipping its products in May, Chi Mei said in an e-mailed statement yesterday. The Tainan-based panel maker and Neurok each hold 50 percent of the venture.
The statement didn't say how much the companies were investing in the venture.
BNP Paribas gets green light
BNP Paribas has obtained approval from the Financial Supervisory Commission (FSC) to issue the second batch of foreign currency-denominated bonds in the nation's offshore bond exchange, the Formosa Bond market, the commission said yesterday.
This batch of bond could amount to as high as A$500 million (US$386 million) with an indefinite date for listing, the FSC said.
"There have been several foreign banks interested in issuing the third batch of bonds and so on that came and talked to market regulators," said Sam Chang (張振山), a deputy director at the Securities and Futures Bureau.
Taiwan's first foreign currency-denominated bond, worth US$250 million, was issued by Deutsche Bank and hit the market on Nov. 1 last year.
Between Nov. 1 and last Tuesday, outright trading amounted to US$24.56 million while conditional trading totaled US$553.79 million, the commission said.
HTC's rating raised
High Tech Computer Corp (HTC, 宏達電), the world's largest maker of mobile phones using Microsoft Corp's Windows operating system, was upgraded to ``neutral'' by Credit Suisse Group, which cited limited downside for the stock.
HTC shares rose 4.8 percent to close at NT$504 (US$15.24). The stock fell 25 percent this year as of yesterday's close, lagging behind a 0.6 percent decline in the TAIEX.
"We believe the current share price is already pricing in a rather bearish scenario and does not leave significant downside potential," Credit Suisse analysts Felix Rusli and Vivian Jang wrote in a report yesterday.
The analysts, who raised the rating from "underperform," kept the 12-month price target at NT$500, adding that "The chance of a cash distribution to shareholders is higher now than in the past. This is likely to lend an additional support to the share price."
ChipMOS buys unit's shares
ChipMOS Technologies Ltd (南茂科技), a Hsinchu-based packager and tester of microchips, said it will buy all of its ChipMOS Taiwan unit's shares owned by Siliconware Precision Industries Co (矽品精密工業) for US$191 million.
ChipMOS will also issue 12.2 million of its own shares to Siliconware Precision for about US$76 million, the firm said in a statement yesterday. The deal gives Siliconware Precision a 14.7 percent stake in ChipMOS, the firm said.


text:
The new building is immediately behind the existing school. The footprint of the existing school will be the parking lot and entry into the new school.
The Spring Art Festival at Monticello Elementary School will take place on Thursday, April 3, beginning at 6 p.m. The annual program, which features the talents of students in music and art, takes on additional meaning this year as students prepare to leave the aging building that has housed the school since the late 1950s.
Community members may purchase the class art pieces that will be displayed at the festival. A silent auction of the artwork will close at 6:40 p.m., with the new owners taking home their pieces of art at the end of the festival at 7 p.m.
There are five levels of giving for the artwork, ranging from the $10 Michelangelo level to the $100 Van Gogh level.
All proceeds from the silent auction will go toward the purchase of the "Flights of Learning" statue that will be displayed in front of the new school. The life-sized bronze statue is by local sculptor Bryce Pettit.
Pettit has generously donated his sculpture fee to the project.
A community fundraising effort has succeeded in raising several thousand dollars for the project, with approximately $10,000 remaining to be raised.
In just two months, students at the school have saved more than $1,000 in "Monticello nickels". What began as a competition between classes at the school grew when students at Monticello High School joined in the effort to save nickels. More recently, donation jars have appeared at local businesses.
In addition to the nickel project, the Monticello Lions Club raised a large amount of money for the project at the annual Deer Hunters Dinner. An additional contribution was made by Janell and Scott Brown, who sold their famous cupcakes at the event.
The school PTA also donated nearly $2,000 in proceeds from the annual Halloween Harvest.
The Monticello Elementary School Community Council has announced an additional fundraising effort that they hope will help complete the project.
There are four levels of giving in the "Leave Your Mark" fundraising effort.
For a $100 donation, donors can have a 4" x 8" brick engraved and placed in the courtyard in front of the statue.
A $200 donation will secure an 8" x 8" engraved brick in the courtyard.
For a $500 donation, donors will receive a limited edition print of "Bringing Them Down from the Blues", a wonderful piece of art painted by artist Floyd Breinholt.
The painting has been displayed in the San Juan County Library in Monticello for several decades. It shows a cowboy rounding up cattle in the fall on the Blue Mountains.
Photographer Kay Shumway created a digital photograph of the painting, which will be used to create a spectacular full-color image, on canvas, and suitable for framing.
The contribution of the artwork to the fundraising effort is possible through the gracious cooperation of the library, Kay Shumway, Clayson Lyman, and Claudia Young Breinholt Steed, a Monticello native and widow of the artist.
The final level of donation, $1,500, will help sponsor a bench in the courtyard of the statue.
The bricks can be ordered online at http://www.formstack.com/forms/?1711881-UdIoEPSeIV. Donations for the painting or benches should be made directly to the school.
For more information, call Jenny Black at 435-419-0718 or bring order forms and checks to the school office. Make checks payable to the San Juan School District Education Foundation.
Organizers hope to reach a wide range of potential donors for the project.
"There are many options," said Heidi Pehrson, who helped organize the fundraising effort. "Donors can leave their mark by engraving a short message to the future generations on their brick. You can also donate a brick in honor of a beloved teacher, in memory of a family member, to honor your graduating class or in the name of your business."
In addition to the bronze sculpture, the new school will feature six pieces of artwork painted by local artist Richard Russell. They will hang in the entrance of the new school.


text:
Related changes
Jump to navigation Jump to search
Enter a page name to see changes on pages linked to or from that page. (To see members of a category, enter Category:Name of category). Changes to pages on your Watchlist are shown in bold with a green bullet.
List of abbreviations (help):
- r
- Edit flagged by ORES
- New page
- m
- Minor edit
- b
- Bot edit
- Edit made at Wikidata
- (±123)
- Page size change in bytes


text:
I'm a writer, a poet, and small press publisher, and literary translator. I really enjoy translating poetry. Here's some of my work:
* Mi Lai, a book of poems by Carmen Berenguer that I translated, published by Cardboard House Press. Berenguer won the 2008 Premio Iberoamericano de Poesía Pablo Neruda for her poetry, radical explorations of politics, language, and gender.
* An anthology of my translations of poetry by Spanish American women from the turn of last century, with an introductory essay on how genre and gender are used in determinations of literary importance; poems in Spanish and English translations; short biographies of each poet; and an extensive bibliography: Toward an Anthology of Spanish American Women Poets, 1880 – 1930 (PDF). This 250 page book, which I wrote from 2003-2006, was my thesis for a Masters in Comparative Literature.
* Some of my translations of poetry by Nestor Perlongher, neobaroque or "neobarroso" writer, sociologist, and queer activist. (PDF)
* This isn't poetry – It's an anthology that I edited, about the feminist science fiction convention WisCon and the conversations that arise in its communities. I have a long essay in it in the section on Internet Drama. WisCon Chronicles Volume 3: Carnival of Feminist SF (2009) Order from Aqueduct Press or other online bookstores.
* Poems published in Lodestar Quarterly, Poetry Flash, other, Two Lines, Cipactli, caesura, Literary Mama, and many other journals.
* English translation of Carta de viaje by Elvira Hernández. PDF, 139K.
* Miscellaneous poems by David Rosenmann-Taub, Rubén Darío, Nicanor Parra, Federico García Lorca, Octavio Paz, and others.
* Cuts From the Barbershop, 2003. Anthology of SF Bay Area poets edited by Liz Henry, Robert Pesich, and Sanja K. Pesich. with Audio CD of the poets reading aloud. Poems and Translations by Steve Arntsen, Janel Burnett, David Cummings, Jay Darrow, Greg Hall, Liz Henry, Sanja K. Pesich, Walter Martin, Yehudit Oriah, Robert Pesich, Brenda Simmons, JC Watson.
* Unruly Islands, poems, 2012
* Mother Frankenstein, poems, 2008
* artless – poems by Liz Henry, 2005.
* Four Poems of Longing by Juana de Ibarbourou, translated by Liz Henry. Tollbooth Press.
* Woodbird Jazzophone – a poem in 3 parts, by Liz Henry. Tollbooth Press, 2002.
* Short – poems by Liz Henry, 2002.
* Composite: Multiple Translations.
** Issue #1: "Recueillement" by Charles Baudelaire. 11 translations by 10 translators. (2003).
** Issue #2: "Fusión" by Juana de Ibarbourou. 14 translations by 13 translators. (2005).
**Issue #3: "Ghoneh" by Forugh Farrokhzad. 6 translators in search of a poem. (2006).
Un ángel al borde del volcán ardiendo by Zulema Moret, French translation by Alejandro Maudet, English translation by Liz Henry. Fundación Senda / Ediciones VOX, Buenos Aires/Barcelona. 2007.
* Mandala: Tales of the Golden Doll. Poems by Yehudit Oriah, translation by Yehudit Oriah and Liz Henry. 2003. (this was published in Israel but I don't have the information.) (text in Hebrew and English, with audio files in Hebrew and English.)
* Hot Air: Essays on Poetics – a little pompous but it's where I was at. 2003.
* Building a Digital Feminary, project on Monique Wittig, 2003
* Florentino y el Diablo, English translation, 2000. Poem by Alberto Arvelo Torrealba. Introduction and end notes — English translation of Florentino y el Diablo – Cover to the booklet. You can listen to the poem and song Florentino y el Diablo here (19MB mp3 file).
1998-2000: Various experential/interactive fiction works, including MUD areas based on the Mahabharata, Dante's Inferno, Dream of Red Mansions, and The Golden Compass.
1990-1998: Various zines. Poems.
1986-1989: Voices from Underground zine, broken glacier, Ratatosk (magazine)
Liz Henry, 2009
email: email@example.com
other stuff on the web: list of blogs and social media stuff.


text:
Do the conditions in your stock preparation and short circulation processes need to be even and stable?
Then the ADALKA® Process Stabilizer is tailor made to do the very job. This carbon dioxide application enhances the system alkalinity i.e. buffering capacity, thus stabilizing wet end chemistry and unit operations like beating, mixing and providing excellent opportunities for optimization of chemical additions.
The ADALKA Process Stabilizer was primarily developed for the production of woodfree paper and paperboard. However, experience proves that it can also be very well adapted to other kinds of paper qualities like wood containing papers.


text:
Well hello! I am posting this party early this evening because I hope to spend the night finishing up loose ends on my home show presentations and spending quality time with my boys. :)
I hope you had a great weekend! Since hubs was out of town, the Bubs and I were busy
There is a major, serious thorn in my side when it comes our family room. You see, in the model, the fireplace was on the back wall, between two windows and the TV was in the corner. Somewhere along the line we both decided a corner fireplace would be super cool!! (Dripping with sarcasm.) So moving the fireplace then gave us the option to put the two windows together, which we did.
So that left exactly one five foot wall we could do anything with as far as the placement of the TV. FIVE FEET. Our TV cabinet fits in the space great, but the blasted subwoofer for our sound system is like three feet by four feet so it totally cramps that area. OK, it's about 12 inches by 14 inches, but it has to go on the floor next to the cabinet, which makes everything tight. It has always really, really driven me nuts. Here's an old pic that gives you an idea of how close the TV and cabinet were to the fireplace:
That doesn't really do it justice – I mean, I was afraid they would burst into flames, they were so close to the fireplace. Really. I'll have you know I even called our electronics store to see if they have any updated subwoofers (ours is six years old) that are smaller. Yes, they did! Yes, they are only ten by ten inches! And YES, they are only $700!!
OK, moving on. Dealing with the mongo speaker. So the other day, I decided to ignore the speaker and center the cabinet on the wall. The mongo speaker would just have to jut out the other way a bit:
(Yes, I love Y&R. Sue me. Can you even believe Adam? And can you believe the woman who plays Ashley is 50-something? OMG!)
I decided a while ago that hanging the TV may help the cramped feeling of this area. I got the right sized TV mount for only $50 at Target and it was surprisingly easy to hang. Just hang the mount into the stud, using a socket wrench:
Easy! Next step is to take it down and hang it again because you forgot to put the washers on the screws. Next step after that is to take it all down and hang it again because you hung it too low. Easy!!
Then you just attach the brackets to the back of the TV:
(The next few pics are fuzzy because I took them at night, so bear with me.)
I looooved the TV hanging on the wall! It immediately felt like a breath of fresh air. But the TV cabinet was feeling so dark! It's always been a dark hole of sorts. You couldn't even see my lovely $3 Goodwill baskets! I decided to paint just the back of it so they would show up just a bit more:
Didn't that work GREAT?
Uhhhh. Notsomuch. I realized the problem hasn't been the dark cabinet, it's been the doors on the cabinet. I love them, but you can't see a darn thing inside. I mean, why have $3 Goodwill baskets if you can't see them? And the picture frames look like they're in jail. So I just took the doors and the hardware off!:
Getting there!
I wasn't crazy with how the accessories were working out, so I moved some things around. I used an apothecary jar instead of the flowers and covered some styrofoam balls with jute for some additional filler:
Love them! They weren't exactly fast to make – but good mindless project while watching TV. And they were free. Score!
(The back is painted the same Sisal color I used on the wainscoting squares from last week.)
I couldn't be more pleased with the result!:
Well, maybe I'd be more pleased with a 10 x 10 speaker. But saving the $700 meant I only spent $50 on this entire project – and that was for the TV mount. We watched about eleventy billion videos this weekend because the Bub can now access his DVDs (in the baskets) so easily! Those doors were hard to open, even for me. :)
So this month's before and after…drum roll please…
Can't wait to see what you have worked on! Any project will do – we just need a before picture. Remember to copy and paste the url from your post into the linky, not your blog address. (I have to delete those!)
Have fun and let's party!


text:
Open 9am to 5 pm every day except for Christmas Day. The Animal Park closes at 4:30pm. The Cafe opens at 10am and closes at 4:30pm on weekdays.
Please note that we are CLOSED on CATASTROPHIC FIRE WARNING days!
Animal Park | Cafe | Wooden Toys and Puzzles | Bus groups & Schools welcome
Welcome to the Toy Factory
at the Big Rocking Horse
Congratulations! You have just found Australia's Number One Big Aussie Icon, as judged by wotif.au: The Big Rocking Horse. Great for School Excursions and Children's Parties
The Big Rocking Horse and the Toy Factory share the same site at Gumeracha, in the glorious Adelaide Hills, only 40 minutes from Adelaide. So come and visit us for fun, educational value and an experience of a lifetime.
Many things to do
See how quality wooden toys are made in the working Toy Factory.
In the Wildlife Park, come and feed the animals and birds. It is such a beautiful and unique setting, teeming with native flora and fauna.
If you time it right, you can also include some breakfast or lunch – our meals are well priced and nutritional. You can also bring your own picnic and enjoy it in our beautiful, shaded picnic area.
AND of course there is the World's Biggest Rocking Horse!! You can climb this Australian icon and receive a certificate of achievement upon completion!
Browse and Buy Online
When you visit The Big Rocking Horse in Gumeracha, SA you can also perform some retail therapy in our shop which boasts a comprehensive range of quality wooden toys which we manufacture on site, as well as a huge and diverse array of other toys, gifts and souvenirs at competitive prices.
If you are interstate or just visiting our website then you can use the Online Store to browse our Online Shop! Please note, prices shown include GST, but DO NOT include postage! That's based on where we have to deliver the goods to.
Design your own package – choose from (price per person):
Tour of the working Toy Factory
(minimum 10 participants and weekdays only, aimed at primary school level)
Climb the Rocking Horse
and receive a certificate
Bag of animal food to feed the animals in our park
A wander through The Toy Factory Shop
Entry into our Animal Park
Use of extensive lawn area for burning up excess energy


text:
Howard University students look out: Mary J. Blige may show up in your next college Algebra class -- and ask for help with homework.
Last Wednesday, the R&B singer made an announcement on ABC's "Good Morning America" that she plans on joining Howard's class of 2014, according to Dcfab.thefabempire.com. She wants to earn a Bachelors degree. She confirmed that Howard accepted her to NOLA.com:
"The city of New York gave me my high school diploma ... and now Howard University has accepted me."
Entertainment website Gossiponthis.com says the Grammy Award Winning singer has already been accepted to the school after receiving her GED diploma.
Blige dropped out of high school during her junior year, according to Starpulse.com. Ambition, however, is definitely not something Blige is lacking. The singer has earned herself six Grammy Awards and seven multi-platinum records.


text:
It seems that you're using Ad Block. Ads allow me to keep Deck Shop running. Please consider making an exception.
— pavelfi
NEW You can check your decks right from your battle log!
In order to give you better advice about your deck, we need to know what arena you are in.
Do you like Deck Shop?
Please support the development and server cost by disabling Ad Block for this site.
If you want to keep the ads blocked, you can also support me at paypal.me/pavelfi.
Thank you!


text:
Wats up B.O.B. Man i just wanted 2 let you know that I realy realy understand What u sayin. And I wanted 2 show some respect 4 wat u tryna do. Peace.
Love the album bro!! Airplanes Pt. II is my favorite song!! Wish yall would make a video for that song!! Great Job keep doing what ur doin!!
I heard 12 am central time somewhere.
then i heard its gotta become a trending shit.
oh shit! he's streaming!!
I'm over here scratching like a crackhead where's no genre????? My ears are due for some lyrical soundgasms right about now...


text:
Length: 02:36
Lakia Richardson, the host of this "Alabama Stories", introduces Alabama's efforts to combat the pollution problem.
Length: 03:41
A look at recycling efforts in Auburn.
Length: 05:47
Hightlights of Homewood's Green Resource Center.
Length: 03:04
Alabama Power's renewable energy efforts.
Length: 08:23
The Cahaba River Society's efforts to restore and conserve the Cahaba River watershed.
Length: 06:43
Recycling efforts at a University of Alabama fraternity.
Length: 12:46
Tour of a "green" home focusing on energy efficiency and conservation.
Length: 05:11
Length: 03:48
This clip focuses on the global warming problem.


text:
No artists found starting with this letter.
Enquire About Artist
Artist News
Related Artists:
Faye Buckingham, Simon Abbott, Frankie Van Mourik
I'm available! I'd love to hear about your project.
Latest Updates
Tis' the Season to celebrate the New Year!
Jan 11 2019
Tis' the season to celebrate the New Year! With 2019 beginning quickly, everyone at Advocate Art would like to take
Filter Results:
Apply & Close
Clear filters
End of content
No more pages to load


text:
From here. Grown here. Crafted here. Bottled here. Enjoyed here.
Some of Smith Mountain Lake's best wine from its oldest vineyard, grown right here for 34 years.
Come stroll our lovingly tended vines. Tour the winery, now in our 18th vintage, and learn how we bottle a lake summer. Taste the difference 100% local makes with over 70 medals & awards for quality & agri-business.
Along with a popular "Lake series" of blended grape wines made in a light & fruity style, we offer a consistently award-winning vintage, estate-grown Chardonnay and Cabernet Sauvignon. Local Merlot and Cabernet Franc round out the tasting selection.
Sign up below, to receive our newsletter, Hickory Hill Happenings along with special offers, event reminders, coupons, recipes and more!


text:
Furnish the home you never want to leave
Issue 18, Autumn 2017
Price includes VAT
Free Delivery
Dine al-fresco in comfort and style
Kettal have been the leading company in research & development of outdoor furniture production technology for nearly 50 years. Kettal design, develop and manufacture all of their products at the Kettal premises in Spain rather than using external suppliers, and are renowned as having the best manufacturing techniques on the market. As leaders in the learning cycle of production, Kettal have always been at the forefront of creating the most unique and innovative styles for outdoor furniture.
view more Kettal
We guarantee to match competitors prices.
If you find a competitors store or website has
the same product at a lower price,
we'll match it - even up to 7 days after purchase
Tell me more
The Kettal Landscape Club Armchair is ideal for outdoor use with its light weight weather - proof aluminium frame and comfortable cushions made from sunbrella fabric.
The ultra - thick sunbrella fabric cushions are cosy and mould to the shape of your body for extra comfort.
Kettal advise to not leave the armchair outside during the winter months for longer durability.
H 70 x L 78.5 x D 85 cm
42 cm ( from Floor to Top of Seat Cushion )
Frame in Light Weight Weather - Proof Aluminium
Cushions in Sunbrella Fabric
Back and Seat Cushions Included
Please allow 2 to 3 weeks from stock for delivery. Free mainland UK deliviery. International Delivery Available T&C Apply
Please call us on +44(0)207 349 9057,
or send an email to email@example.com
We offer Free UK Delivery. Postcode exceptions apply. See our full delivery terms and conditions for more information.
More details
This item qualifies for our Free White Glove Delivery Service. Your item will be unpacked and assembled in your home or office and our expert delivery team will even take away the packaging.
This item qualifies for our payment plan. Pay 50% deposit and 50% prior to delivery. Order over the phone on 0207 349 9057. Excludes international delivery. See our payment terms and conditions for full terms.
How to Ensure your Bathroom is Cosy and Looking Great for Winter
Firstly, thank you so much to all of you who've submitted requests to be featured in our blog. We love to bring you differ...
7 things we discovered and loved at Decorex 2019
We were pleasantly surprised to learn this year, unlike past editions, Decorex was being held at Olympia instead ofSyon Park. A ...
5 Things We Saw and Loved at Focus 2019, Design Centre at Chelsea Harbour
Likeevery yearfor London Design Week we arm ourselves with the best walking shoes we can muster, healthy nibbles and our LDF2019...
Read More
The best of The Longest Stay delivered straight to your inbox. Exclusive deals, stylish steals and inspirational design features. Home Decorations & Accessories Stores! Luxury Garden Furniture Store Online! Designer Lighting, Furniture, Sofas, Tables, Chairs, Sideboards, Coffee & Dining Tables! Fine, Unique & Modern Outdoor Furniture!
Sign Up
©2020 The Longest Stay Ltd. Registered in England, No. 06424567 Vat No. 138959949 13 Radnor Walk, London SW3 4BP


text:
Plexiglass sign SKAS-063
1. MOQ: 200 pieces (depended on products);
2. Material: high quality cast acrylic sheet;
3. We offer custom service for size / color / shape etc;
4. Free charge of extra tool cost for custom orders;
5. Free sample can be offered, you only need pay for shipping cost;
6. Sample time: approx 5 days;
7. Mass goods time: 10 – 20 days;
8. Worldwide shipping service by sea / by air, cheap freight cost;
9. 100% quality guaranteed, competitive price.
Attention Please: Our product range is not limited to the pictures on this website. We provide a variety of custom acrylic products. Welcome to contact us for details. Thank you!


text:
A graduate of the Rhode Island School of Design, and now a New Yorker of 23 years, Willy Hartland has carved out a distinguished career in animation.
A recipient of the New York Foundation for the Arts Fellowship in Film, and many international film awards, Willy writes, directs, and animates his own films for the Web, TV, and Film. He has also worked as a storyboard artist on 3 feature films, and numerous TV shows, among them MTV's "Beavis and Butthead." In recent years he has begun experimenting with digital media like Flash and After Effects, pioneering new animation techniques which combine clay models and cut-outs, and are evocative of Eastern European animation.