text:
Accessibility tools
Service tools
Language selector
Navigation path
Left navigation
Additional tools
Other available languages: none
Maria Damanaki
European Commissioner for Maritime Affairs and Fisheries
The Future Economics of the Sea
Meeting of the Employers' Group of the European Economic and Social Committee
Brussels, 14 March 2011
Dear President Malosse, dear Members,
It is a great pleasure to meet you all. Today I have at least two reasons to thank you: thank you for inviting me; and thank you for thinking about the maritime perspective, acknowledging the immense economic potential of our seas.
We may be at the dawn of a "maritime era".
Today I'd like to show you with a few concrete figures and examples what I mean and why it is important that you take part in this process of change.
The seas are simultaneously ways of transport, sources of raw material, sources of energy, sources of food, water reservoirs, the world's climate engine, and a place for leisure. With about 70% of its surface covered by water, Earth is the blue planet.
Europe's coastal regions are home to about 40% of the EU population, while the maritime economy accounts for a production value of some 450 billion euro.
Maritime economic activities are of huge economic importance to Europe as a whole, and also to individual countries.
To give you an example, in France, over 540 000 people are directly employed in the maritime industry, generating roughly 75 billion euro in 2009. Island states like Malta or Cyprus have more than 10% of their total employment in maritime sectors. In Denmark, no part of the country is further away from the sea than 50 km.
I could go on, but I think you see my point. We are still underestimating the seas' importance to man's life. Yet, already huge today, it is only bound to grow in the future.
These figures prompted Commission President Barroso to pinpoint the maritime sector as a prime source of new growth, employment and social cohesion. The "EUROPE 2020 strategy" stressed that Europe cannot continue to rely on demand-driven economic growth and reiterates the importance of the maritime sectors in the particular context of resource efficiency, competitiveness and climate action.
We know that there is clearly scope for the oceans, seas and coasts to unlock new sustainable sources of growth. And we must be capable of channelling these activities into industrial applications and ensuring that they benefit society. It is what I like to call "Blue Growth".
I think we can all play a role here – and by 'we' I mean on the one hand we as EU institutions and on the other you as representatives of European employers.
It is up to the IMP to put in place the measures that will bring "Blue Growth" – and the "Blue Jobs" that go with it – to fruition.
This will require an approach on three fronts.
This means identifying areas where more basic or applied research efforts are needed prior to commercialisation, and which generic innovation trends and technological developments should be supported – a striking example being the harvesting of wave energy in the United Kingdom, where innovators, investors and the government are now moving fast towards the marketing of this marine renewable energy, creating high-quality jobs and paving the way for a new green industry.
You may be aware that at end of last year I launched the "Marine Knowledge 2020" initiative to establish a network of accessible, compatible and timely data about the status of our seas and oceans, so that our policy-making is based on our best science. The Commission is also proposing a new "innovation partnership" that will improve the viability of deep-sea mining by developing Europe's marine knowledge base. Europe remains a world leader in the enabling technologies for this new frontier. We need a sound understanding of deep-sea environment, which will also ensure that investments are shielded from disasters like the one we have seen in the Gulf of Mexico. Europe has promising sites for mining deep-sea minerals, for example in the Acores and in Italy, but more research is clearly needed for complete protection of the eco-systems that could be affected.
In late 2012 we want to bring this three-pronged approach into a Communication on a blue growth strategy and on the industrial and research policy push needed to make it real.
Without pre-empting on-going studies, we can already see, for example, that bio-economy has a huge potential. The Commission is currently running a public consultation on this, pointing out that the sustainable use of biological resources from both land and sea in order to replace fossil-based resources while guaranteeing food security will have to be one strand of our long-term economic strategy.
Another example is the infrastructure needed by 2020 and 2030 to bring offshore and marine renewable energy onshore to consumers. Here, huge investments will be needed, but they will be compensated by the savings on our fossil fuel bill, which is only bound to increase in the future; plus they will create high-quality jobs in the EU.
So far I have talked about untapped sources of growth. But we must not neglect the sustainable development of well-established industries such as tourism, renewable marine energy, shipbuilding, short-sea shipping, fisheries and aquaculture.
Let's start with tourism: The Lisbon Treaty endowed the EU with a new competence as regards tourism. To translate this into a vision, in 2010 the Commission set out a new political framework to promote Europe as the world's No 1 tourist destination.
A next step will now be to develop a "strategy for sustainable coastal and marine tourism". The challenge here is to identify how to promote responsible, high-quality tourism that will deliver sustainable jobs - jobs that will stay in Europe and have a strong local impact.
I shall be following and contributing to this initiative very closely, as it is of great economic significance for us all, whether we live along the coasts of Europe or visit them as tourists.
Another traditional maritime sector with growth potential is shipping. We need to secure a global level playinfg field for the sector and to enhance its environmental performance with regard to pollutants, emissions, waste treatment, litter control and ship recycling. This will not only benefit the environment, it will also create jobs as we move to more sophisticated solutions. If we exploit the full potential of short-sea shipping through the trans-European networks and the motorways of the seas; if we have better port infrastructures and adopt e-maritime solutions; if we establish a truly internal market in shipping services, all this will open up new business opportunities and produce an overall benefit to society – especially coastal regions.
As for fisheries, there is a new system in the making that clearly focuses on sustainability in all its aspects: environmental, social and economic. By adopting an ecosystem-based approach, we make sure we exploit resources sustainably and derive stable catches in the long term – which in turn means stability for the sector. By moving decision-making away from Brussels, we make sure that the needs of regional and local communities are accounted for. By financing only projects that contribute to the EU 2020 agenda for growth, we encourage fishermen and other operators to find innovative solutions with green credentials.
Your involvement is only bound to increase under the reform. It is my belief that part of the burden of resource management should lie with the industry. Fish farmers, for example, can flank our conservation efforts with innovative, environment-friendly techniques; producers' organisations can and should take on the sustainability challenge by preparing and implementing sustainable fishing plans or planning and steering market demand. We also plan to improve information to consumers and for that, too, we will need your help.
Ladies and Gentlemen,
I'd like to turn now to what you can do to contribute to Blue Growth. As representatives of the European employers, I believe you are the perfect interface between us and the European investors.
You can help us enter into a dialogue with private industry and convince them that Blue Growth is the way to go; show them that maintaining both high environmental standards and high social standards is in fact a win-win choice; explain that investing in clean technologies and creating new, attractive jobs in Europe is a smart move right now.
Help us explain that initial capital investment or daily operating costs should not be the main concern: long-term prosperity and a stable society are. Strategic thinking is required here, as the Chinese have clearly understood.
Through a study we have recently launched, we are going to interview some 150 key people from private industry and ask them what they think is needed to trigger new investments. We need their expertise and knowledge of the market – and I believe you can bring that to us.
In conclusion, ladies and gentlemen,
Maritime policy i is called on to play a full part in pulling Europe out of the ongoing economic downturn, providing it with the economic and social backbone to help it stand strong in the face of future challenges.
Sustainability not only enhances skills and promotes advanced technologies. It also implies long-term economic opportunities. It is also the only way we know to protect Europe's maritime zones, biodiversity and the marine environment.
In my vision, your Group is fully involved in this change and, together, we shape a maritime policy that helps change Europe for the better.
Thank you.
Side Bar


text:
Sophie's Choice: I'm not a fan, but James Taylor has a point
I may risk the wrath of Baby Boomers and elitist hipster wannabe songwriters everywhere, but I have to say it, I don't dig James Taylor's music. Yes, I know he didn't win five Grammy's for nothing and his lyricism is pretty splendiferous, but how a guy manages to span a career of 40 years with songs that sound exactly the same makes me think that some lambs were sacrificed to the Dark Gods of Tuneage in order to hit the Billboard 100. But all that aside, Mr. Taylor has some affecting messages that he strums out. My wise ol' mum recently reminded me of the chorus from the song "Shower the People" off of Taylor's album, In the Pocket. "Just shower the people you love with love Show them the way that you feel Things are gonna work out fine if you only will Shower the people you love with love Show them the way you feel Things are gonna be much better if you only will." Perhaps a little too Kumbayah for the emotionally constipated among us (clears throat and cautiously raises hand), but how else are you supposed to say it? The honest approach to our loved ones is usually the best. And in the spirit of sincerity, how easy is it to forget to clue in the people we care about on how they rock our world? Now I realize that it's not fair to cast the same dysfunctional light on others as I do myself when it comes to uttering those three words. For those who can look at their respective group of peeps and say, "I love you, here's why, and I just want you to be happy and safe," allow me to give you a standing ovation (rises from keyboard and claps), and I mean that. Often, when it comes to the folks who are keen on us, our behavior can sometimes be less than cuddly. We can be sarcastic, judgmental, nagging, negligent and less than our most stellar self. The most ironic part is that it stems from taking those people for granted; we know we are loved, we think they will always be there, so we get an emotional get-out-of-jail free card. We're allowed to act like drunken, mentally handicapped calves dancing through life in high heels, because we know someone will be waiting for us back at the barn (okay, so it's not the most excellent metaphor, but I'm only one cup of coffee into my morning). I haven't lived very long, and my worldly experience isn't much, but a lesson I've been forced to learn the hard, 2 x 4, slapped upside the head way is that one of the biggest regrets of life is not telling someone you care about how much they mean to you. If we all received a memo at the same time saying the world was going to end within the next five minutes, cell phones, landlines, Skype would be jam-packed with people professing their love to each other. Who cares if you stumble through your words? Flowery confessions should be rated on genuineness, not the fact that they are ornate. If you are of my ilk, and you find that the words tumble about in your head like shoes in a dryer before they come spewing out of your mouth, allow me to help with the written kind. "I love you. Not just because of how you make me feel, but because you are (insert admirable qualities here). You are one of the most amazing people I know, and no matter what happens, I am blessed to have you in my life." Hugs are usually applicable to this situation. I'll leave the James Taylor up to personal preference.

subset: commoncrawl


text:
Did you read today's front page stories & breaking news?
From the Wires
Critical SP500 Stock Alerts: Ford, Oracle, Freeport-McMoRan, Vale SA, EMC, and Johnson & Johnson
By: PR Newswire
Dec. 28, 2012 08:55 AM
VANCOUVER, British Columbia, Dec. 28, 2012 /PRNewswire/ -- Insiderslab.com has issued insider trading reports and equity research for the following companies: Ford (NYSE:F), Oracle (NASDAQ:ORCL), Freeport-McMoRan (NYSE:FCX), Vale SA (NYSE:VALE), EMC (NYSE:EMC), and Johnson & Johnson (NYSE:JNJ).
(Logo: http://photos.prnewswire.com/prnh/20100419/HKM001LOGO )
(Read full report by clicking the link below, you may need to copy and paste the full link to your browser.)
Report Highlights:
Ford Motor Company (NYSE:F): Ford Motor Company (NYSE:F) recently announced its expansion plans with Volkswagen AG's Audi, under which Ford will invest US$773 million to modernize and increase the production capacity of its plants next year. There were 108.20 million stock shares traded, which was 2.4 times more than average volume. Academic studies have shown that company insiders traditionally make higher investment returns than ordinary investors. Do you want to know when Ford insiders will purchase their shares?
Read Full Report: http://www.insiderslab.com/PR3/122812A/F/Ford.pdf
Oracle Corporation (NASDAQ:ORCL): Insiderslab.com found Oracle Corporation (NASDAQ:ORCL) Senior Vice President, General Counsel, Secretary, Dorian E. Daley, sold 100,000 shares on December 21, at stock price US$33.52 for about US$3.35 million. Disclose date: December 26. Oracle has recently agreed to acquire Eloqua, Inc., a leading provider of cloud-based marketing automation and revenue performance management software, for approximately US$871 million. Check this insider trade report for ORCL here.
Read Full Report: http://www.insiderslab.com/PR3/122812A/ORCL/Oracle.pdf
Freeport-McMoRan Copper & Gold Inc. (NYSE:FCX): The Board of Directors of Freeport-McMoRan Copper & Gold Inc. (NYSE:FCX) approved a cash dividend of US$0.3125 per share, payable on February 1, 2013 to holders of record on January 15, 2013. The stock began the trading session with a price of US$34.04 and throughout the session slumped to a low of US$30.54. When day-trade ended, the stock finally fell 0.71% to US$33.68. Are Freeport-McMoRan insiders starting to take huge profits by selling shares or exercising stock options? Add FCX into your watch list for insider trade now.
Read Full Report: http://www.insiderslab.com/PR3/122812A/FCX/FreeportMcMoRan.pdf
Today Insiderslab.com also observed abnormal trade volume for the following companies; insiders may involve trading in these companies. It will take some time for insiders to report their trades. Read these reports and add these companies into your Insider Trade Radar.
Vale SA (ADR) (NYSE:VALE):
Read Full Report: http://www.insiderslab.com/PR3/122812A/VALE/ValeSA.pdf
EMC Corporation (NYSE:EMC):
Read Full Report: http://www.insiderslab.com/PR3/122812A/EMC/EMC.pdf
Johnson & Johnson (NYSE:JNJ):
Read Full Report: http://www.insiderslab.com/PR3/122812A/JNJ/Johnson.pdf
Insider Filing Source Reference: All observations, analysis and reports are based on public information released by the U.S. Securities and Exchange Commission.
About Insiderslab.com:
Insiderslab.com covers insider trade data in major stock markets in the U.S., Hong Kong, Mainland China, and Singapore. Insiderslab.com features a team of experienced data analysts striving to provide the investment community with the tools, software, and data necessary to carry out more effective investment research.
Important Disclaimer:
SOURCE Insiderslab.com; Insiders.hk
Latest Cloud Developer Stories
Subscribe to the World's Most Powerful Newsletters
Subscribe to Our Rss Feeds & Get Your SYS-CON News Live!
SYS-CON Featured Whitepapers
Most Read This Week


text:
PopBlocks is a Samegame clone for the Palm Pre and WebOS. It has animated blocks and high score saving. The source features clean and documented examples of several WebOS concepts and features, such as a help page with collapsible categories, using a canvas as a game interface, user interaction, scene handling, and cookie management.
WikiPBX is a PBX Web interface for FreeSWITCH. Multiple "accounts" are supported per server instance: each account is effectively a completely independent PBX. Configuration is layered so that XML files go on top of what is stored in the database. This allows you to use a database, but stays out of your way if you choose to use flat files. Extensions, SIP endpoints, and gateways can be configured via a Web interface. Live calls can be viewed, hanged up, and transferred. Call history (CDR records) can be viewed over the Web interface. There is a Web interface for managing IVRs. "Sound clips" can be easily recorded for use in dialplan or IVRs. Audio or text-to-speech can be injected into live calls.
Callstats collects and displays call statistics for Siemens HiPath OpenOffice ME in a pretty Web interface. It may work with other Siemens HiPath devices (probably Hipath 3000). With some modifications, it could be adapted to your own system. It has 3 parts: -tcp->text log (via netlog); text log->sqlite database (PHP script); and a Web interface to the SQLite database (PHP). It has been tested without problems in a 50-user installation fulltime since 2009.
V CAST Media Manager is an application to manage videos, pictures, and music on your phone and computer. It can be used to save the pictures and videos created with your phone onto your computer. It can transfer files between your computer and phone via a compatible USB cable. It can be used to create picture albums, slideshows, and video playlists. Its included editing tools can be used to touch up pictures. It can transfer songs from your computer to your phone. It can import music and playlists from other applications. It can rip and burn CDs. It can also be used with an optional online storage subscription account to upload and backup your files and download them later from the Web or a compatible phone.
Phone Spell is a PHP class which can find words which can be used to spell a phone number. It takes a given phone number and tries to find existing words with letters equivalent to the phone number digits. It uses the pspell extension to look up words, but can also use a custom dictionary to find the equivalent words.
A server operating system with an integrated identity and infrastructure management system.
An MVC Web framework based on Node.js, Express, and Teddy.


text:
Avenue Q
A porn-loving Trekkie monster, some suicidal fluffy bears and just 'a little bit of racism'. 'Avenue Q' is an inspired combination of puppets and people, cheek and charm. Jeff Marx and Robert 'Book of Mormon' Lopez's show ran for six years on Broadway and five in the West End. Now making an audacious London fringe premiere, this potty-mouthed puppet show is as witty and warm-hearted as ever.
Director John Plews's production team boasts many 'Avenue Q' stalwarts, including puppet consultant Nigel Plaskitt and puppet creator Paul Jomain. Such experienced hands lend the production real swagger and gloss. The actors have been trained brilliantly and the performers and puppets work as one. The show is also more intimate than its West End predecessor: the puppets reach out into the audience, brushing us with their fur and blasting their dirty jokes directly into our beaming faces.
The cast is exceptionally strong and versatile. Will Jennings is charming – with just a dash of self-importance – as soul-searching puppet Princeton. Leigh Lothian is a massive musical talent and her big numbers are as delicate as they are powerful. Josh Wilmott is the stand-out puppeteer and his shaggy haired, sex-obsessed Trekkie is comedy gold.
There's the gentle naïveté of 'Sesame Street' in here, spiced up with a bit of 'South Park' straight talking. A one of a kind show, which exposes us to some hard-core puppet porn – yet still charms the pants off us.
By Miriam Gillinson
|Venue name:
|Upstairs at the Gatehouse
Hampstead Lane
Highgate Village
|Tube: Highgate


text:
Between 1990 and 2005, 23 African countries lost an estimated $284 billion as a result of armed conflicts, fuelled by transfers of ammunition and arms — 95 per cent of which came from outside Africa.
From 2-27 July, all countries of the world have come together in New York to negotiate what is seen as the most important initiative ever regarding conventional arms regulation within the United Nations. A robust arms trade treaty can make a difference for millions of people confronted with insecurity, deprivation and fear.
The goal is to seek agreement on standards for assessing if an arms export should be given a go-ahead, making it harder for weapons to be used in conflict and human rights abuses, to be diverted to conflict zones and illegal markets, and into the hands of terrorists, warlords, drug traffickers or criminal cartels.
Standard-setting on this rather sensitive topic – with key security and economic interests at play – has never been attempted before.
The United Nations Conference on the Arms Trade Treaty is the culmination of a preparatory process spanning over five years, facilitated by the Office for Disarmament Affairs and the Department for General Assembly and Conference Management.
In all parts of the world, the ready availability of weapons and ammunition has led to human suffering, political repression, as well as crime and terror among civilian populations. Irresponsible transfers of conventional weapons can destabilize security in a region, enable the violation of Security Council arms embargoes and contribute to human rights abuses. Importantly, investment is discouraged and development disrupted in countries experiencing conflict and high levels of violence, which also affect their ability to attain the Millennium Development Goals.
"Together, we must act. The world is overarmed and peace is underfunded. Military spending is on the rise. Today, it is well above $1 trillion a year. And globally, 60 years of United Nations peacekeeping operations have cost less than six weeks of current military spending", said Ban Ki-moon in his opening statement. "An agreed set of standards for arms exports, along with strict national legislation, can help begin to change all of that. But it will do even more — it will improve our ability to deliver across the board: from promoting social and economic development to supporting peacekeeping and peacebuilding; from monitoring sanctions and arms embargoes to protecting children and civilians; from promoting women's empowerment to fostering the rule of law. A robust arms trade treaty can make a difference for millions of people confronted with insecurity, deprivation and fear".
If you want to know more about the work of the United Nations to facilitate this important agreement, visit the conference website (www.un.org/disarmament/ATT). We have also just released our latest Library Backgrounder on "Disarmament", which you can download here.
Join the global conversation on Twitter using #armstradetreaty and get the latest information from the Department for Public Information on the UN Facebook, @UN twitter, and conference twitter channel @ATT_Conference.
The Brussels based United Nations Regional Information Centre for Western Europe - UNRIC provides information on UN activities to the countries of the region. It also provides liaison with institutions of the European Union in the field of information. Its outreach activities extend to all segments of society and joint campaigns, projects and events are organized with partners including the EU, governments, the media, NGOs, schools and local authorities.
United Nations Regional Information Centre for Western Europe (UNRIC Brussels)
Residence Palace, Rue de la Loi/Wetstraat 155, Block C2,7th and 8th floor, Brussels 1040, Belgium
Tel.: +32 2 788 8484 / Fax: 32 2 788 8485


text: /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 2003 * the Initial Developer. All Rights Reserved. * * Original Author: Aaron Leventhal (email@example.com) * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #include "nsISupports.idl" interface nsIDOMNode; interface nsIAccessibleDocument; interface nsIDOMCSSPrimitiveValue; /** * An interface used by in-process accessibility clients * to get style, window, markup and other information about * a DOM node. When accessibility is active in Gecko, * every DOM node can have one nsIAccessNode for each * pres shell the DOM node is rendered in. * The nsIAccessNode implementations are instantiated lazily. * The nsIAccessNode tree for a given dom window * has a one to one relationship to the DOM tree. * If the DOM node for this access node is "accessible", * then a QueryInterface to nsIAccessible will succeed. * * @status UNDER_REVIEW */ [scriptable, uuid(71a3b4e7-e83d-45cf-a20e-9ce292bcf19f)] 00060 interface nsIAccessNode : nsISupports { /** * The DOM node this nsIAccessNode is associated with. */ 00065 readonly attribute nsIDOMNode DOMNode; /** * The number of DOM children for the DOM node, which * matches the number of nsIAccessNode children for this * nsIAccessNode. */ 00072 readonly attribute long numChildren; /** * Get the nth child of this node * @param childNum Zero-based child index * @return The nth nsIAccessNode child */ nsIAccessNode getChildNodeAt(in long childNum); /** * The parent nsIAccessNode */ 00084 readonly attribute nsIAccessNode parentNode; /** * The first nsIAccessNode child */ 00089 readonly attribute nsIAccessNode firstChildNode; /** * The last nsIAccessNode child */ 00094 readonly attribute nsIAccessNode lastChildNode; /** * The previous nsIAccessNode sibling */ 00099 readonly attribute nsIAccessNode previousSiblingNode; /** * The next nsIAccessNode sibling */ 00104 readonly attribute nsIAccessNode nextSiblingNode; /** * The nsIAccessibleDocument that this nsIAccessNode * resides in. */ 00110 readonly attribute nsIAccessibleDocument accessibleDocument; /** * The innerHTML for the DOM node * This is a text string of all the markup inside the DOM * node, not including the start and end tag for the node. */ 00117 readonly attribute DOMString innerHTML; /** * Makes an object visible on screen. * * @param scrollType - defines where the object should be placed on * the screen (see nsIAccessibleScrollType for * available constants). */ void scrollTo(in unsigned long aScrollType); /** * Moves the top left of an object to a specified location. * * @param coordinateType - specifies whether the coordinates are relative to * the screen or the parent object (for available * constants refer to nsIAccessibleCoordinateType) * @param aX - defines the x coordinate * @param aY - defines the y coordinate */ void scrollToPoint(in unsigned long aCoordinateType, in long aX, in long aY); /** * The OS window handle for the window this node * is being displayed in. */ 00143 [noscript] readonly attribute voidPtr ownerWindow; /** * A unique ID calculated for this DOM node, for the * purposes of caching and referencing this object. */ 00149 [noscript] readonly attribute voidPtr uniqueID; /** * Retrieve the computed style value for this DOM node, if it is a DOM element. * Note: the meanings of width, height and other size measurements depend * on the version of CSS being used. Therefore, for bounds information, * it is better to use nsIAccessible::accGetBounds. * @param pseudoElt The pseudo element to retrieve style for, or NULL * for general computed style information for this node. * @param propertyName Retrieve the computed style value for this property name, * for example "border-bottom". */ DOMString getComputedStyleValue(in DOMString pseudoElt, in DOMString propertyName); /** * The method is similar to getComputedStyleValue() excepting that this one * returns nsIDOMCSSPrimitiveValue. */ nsIDOMCSSPrimitiveValue getComputedStyleCSSValue(in DOMString pseudoElt, in DOMString propertyName); /** * The language for the current DOM node, e.g. en, de, etc. */ 00173 readonly attribute DOMString language; };


text:
VANCOUVER — Who wouldn't want to have a smiling Nathan Horton — the man who inspired a Twitter emoticon craze gone wild — around to inspire then regardless of what their task was.
That's why the concussed Bruins power forward has made the trip here to root on his teammates in tomorrow night's Game 7 of the Stanley Cup Final at Rogers Arena against Vancouver.
"I was very happy to see him, and I'm very happy to have him around. I just spent some time talking to him in the locker room. He's a positive guy," said goaltender Tim Thomas, who's known to be pretty positive as well. "His joy for the game and life is kind of like a little kid, and that's a great thing, and I personally feed off of that.
"So I was happy to see him today. Actually [Monday] night on the screen [at TD Garden], I was so focused I didn't realize he was up there until near the very end. I looked up, I hadn't been tapping my stick or anything because I didn't know what was going on. I've heard from my wife that it was pretty emotional when he was up there."
Horton was injured in the first period of Game 3 and ruled out for the rest of the series the next day due to a severe concussion. He, in fact, did pop up on the Garden Jumbotron during the first period of the Bruins' emotional Game 6 win, much to the excitement of his teammates and the more than 19,000 packing the house. He won't be able to provide anything that dramatic for Game 7, but just having him in the dressing room and around the team should help.
"He certainly wanted to be here. We wanted him on this trip," said head coach Claude Julien. "As you know, when you get this far, you're a pretty close-knit group. Our guys wanted everybody here and they've got it. Marc [Savard] is probably the only one right now that's not here and his health varies from day to day, week to week. He's still in our thoughts and he's part of our hockey club as well.
"We've got a lot of guys that are part of this and some of them are here and one of them isn't."


text:
Raiders coach Dennis Allen said Friday that he still hasn't told Matt Flynn or Terrelle Pryor who will be the starting quarterback but he did anoint rookie Menelik Watson as the starting left tackle. Speaking to media by conference call Allen declined to get into specifics regarding the roster cutdown or position battles choosing to wait until the 53-man roster is assembled Saturday at 3 p.m. "I would anticipate that Menelik Watson would be our starter for the opening game'' Allen said referring to the Raiders' first regular-season game on Sept. 8 on the road against the Indianapolis Colts. Watson missed almost all of training camp with a calf strain and played left tackle against the Seattle Seahawks into the third quarter Thursday after being a right tackle throughout his 19-game career at Saddleback Community College and Florida State. It would have been tough to tell in a 22-6 loss to Seattle as Watson committed no penalties and showed the kind of athletic skill that made him the Raiders' second-round draft pick. "After watching the tape I was impressed" Allen said. "I thought he looked comfortable over there. I thought he played hard I thought he played physical which is something I wanted to see. ... I thought he would do well because he's a big powerful man. "He just hasn't played the position a lot and he's got to go through the growing process over there." As for which quarterback Watson will be protecting Allen wouldn't say other than he'll inform the quarterbacks themselves "sooner rather than later." Pryor's statistical line (3 of 8 passing 31 yards one interception and 9.9 passer rating against Seattle) was unimpressive but Allen said he wasn't overly concerned with those numbers. "You want your quarterback to be able to make plays" Allen said. "It really doesn't matter what the box score says at the end of the game how many yards they ran for or how many completions they had. What it really boils down to is how they move the team and are we effective and do we score enough points." When the preseason ended both Flynn and Pryor had been at quarterback for 13 drives. Flynn produced 10 points in those drives and Pryor 32 although Flynn's work was against first-team defenses.
NFL Headlines
Raiders coach Dennis Allen isn't ready to announce starting quarterback
Oakland Tribune | Aug 31


text: The BagPak AD automatic-ejection bulk bagger filler has been redesigned to accommodate the new palletless bag designs. This unit incorporates simple air bladders to lift the heavy-duty mesh conveyor and drive the full bag to the accumulation conveyor. Densification is accomplished via the same air bladders with quick-dump valves to create a thumping/dumping action on the bag. This type of densification has proven to be more effective than traditional high-frequency vibration for most materials. Additional automation can be achieved via mechanical indexing arm for fast loading of bags, auto-powered size change, and pallet feeder. FormPak Inc., St. Louis, MO 800-936-7672 www.formpakinc.com


text:
Dan Meyers lost a very large fortune watching First Marblehead Corp., the Boston student loan company he runs, plunge in value over the past five years. His problems just got even more expensive.
A Suffolk Superior Court judge has ruled that Meyers, who cofounded First Marblehead 21 years ago, reneged on two personal deals to borrow money so he could buy more stock and maintain his ownership stake in the fast-growing business during the 1990s.
Judge Christine Roach found Meyers acted in bad faith and would have to pay that tab - about $45 million, including interest - to an investor who bankrolled the stock transactions years ago.
Buried in the ruling is a simple lesson. It pays to settle disputes while everyone can profit. The future may not be so generous.
The Meyers award will probably be the largest to come out of any Massachusetts court since 2010. It would be the biggest in recent memory requiring a person, rather than a company or organization, to pay.
One complication: All the First Marblehead stock Meyers owns is no longer worth nearly enough to pay the judgment. Though his company stock holdings were once valued at more than $400 million, shares and stock options owned by Meyers are currently worth just $9.2 million.
Meyers also plans to appeal the ruling, which Roach issued Feb. 24, after hearing a six-day trial last year. The judge's decision is "wrong as a matter of law and fact,'' says Jack Falvy, an attorney for the First Marblehead chief executive.
The case has become part of a remarkable Boston business boom-and-bust story that started with two men and an interesting idea. Meyers and Stephen Anbinder were financial service industry executives who wondered how private student loans could be bundled up and turned into securities, paying interest to investors who would finance them.
That process, already common in the home mortgage industry at the time, could increase access to loans for college students and offer investors attractive yields on their funds. Meyers and Anbinder created First Marblehead in 1991 to pursue that business idea - becoming the middlemen between students and investors - and immediately tapped into a big demand.
As the company grew, its need for money and resources also increased. Les Alexander, owner of the Houston Rockets basketball team, became First Marblehead's first outside investor, providing more cash. Later, a handful of other investors joined to buy shares of the company, which was still privately held.
Over time, the company would offer new shares for sale to existing investors as a way to raise additional funds. Meyers and Anbinder were given the chance to buy enough shares to maintain their ownership slice of the expanding business pie. The problem: They couldn't afford it.
The solution turned out to be Robert James, a wealthy former oil executive and investor. James struck separate deals with Meyers and Anbinder that seemed relatively simple. James would put up the money for both men to buy the shares, and they would share in fruits of future appreciation when the stock was sold.
It's unlikely any of the men anticipated just how valuable that stock would become.
With $635,000 from James, Meyers bought shares in the late 1990s that grew in value to nearly $90 million a few years after First Marblehead went public in 2003.
All of Dan Meyers's First Marblehead stock is no longer worth enough to pay the $45 million he owes.
As First Marblehead's stock price climbed, James told the two founders he wanted to cash out of their deals. He reached an agreement with Anbinder, but Meyers had no interest in selling. Meyers was the actual owner of the stock and nothing in the contract with James required him to sell.
James sued Meyers in 2006, alleging he had violated the spirit of their agreement. He complained that Meyers wanted to hold onto the stock because those shares were paying cash dividends that he could pocket. His lawyer pointed out that Meyers sold $86 million worth of other First Marblehead shares between 2003 and 2006 - but wouldn't touch the stock purchased with James's money.
The dispute finally went to trial five years later, but the value of First Marblehead shares had plunged in the meantime. Problems at the company and the global credit crisis drove the price of First Marblehead shares from a peak of more than $56 to a low of just 60 cents. The stock closed yesterday at $1.28.
Though Meyers never violated the written contracts, the judge ruled that he failed to hold up his end of an "old fashioned, trusting, gentlemen's agreement,'' violating the good faith and fair dealing requirements implied in their contract.
"It's a careful decision that vindicates Bob James's position and understanding of the agreement,'' says Joseph Bierwirth, the attorney who represented James.
Meyers and his lawyer insisted the executive stuck by the terms of the deal, and warned the ruling set a dangerous precedent. "It would mean that no one doing business in Massachusetts could rely on the terms of the written contracts they enter into,'' says Falvy.
Read the volumes of material produced by this case, and you won't miss another meaning. It always pays to settle when everyone can walk away with money in their pockets.Steven Syre is a Globe columnist. He can be reached at email@example.com.


text:
Des Moines, IA: Humane Lobby Day 2013 - Feb. 18
Iowa State Capitol
The Humane Society of the United States invites our members and supporters to participate in the Iowa Humane Lobby Day in 2013 to help make a tremendous difference for animals.
This is an exciting opportunity to meet directly with your elected officials about legislation that will significantly impact the lives of animals. There will be an HSUS booth set up which will provide you with tips for citizen lobbying, and an overview of pending animal legislation which will prepare you to advocate for policies that will curb and end egregious acts of cruelty.
Legislators are most motivated when their constituents make time to meet with them face to face. By attending Humane Lobby Day 2013, you can be instrumental in helping to strengthen Iowa's animal welfare laws. RSVP today to lend your voice for animals and make a difference in 2013! Contact Iowa State Director Carol Griglione if you have additional questions.
Monday, February 18, 2013
Time: 12:00 PM - 3:00 PM
Iowa State Capitol
1007 East Grand Avenue
Des Moines, IA 50319
We're sorry, the deadline for registering for this event has passed.
The Humane Society of the United States: Celebrating Animals, Confronting Cruelty


text:
You don't have to go that far--just move to Liechtenstein. [wikipedia.org]
To Liechtenstein would be going too far for a Kiwi like me.
You're green and fuzzy with a bad aftertaste?
Actually, he has wings, can't use them but can run really fast. And he also cuuuute!
mmmm, kiwi [imgur.com]
In order to live as long as possible, I have decided to have gender reassignment surgery to become a woman, and I will move to Antarctica and start a utopian lesbian society, since there are no murders there. I haven't worked out the details yet, but it seems like a no-brainer.
You could start with killing somebody else -- the odds of *two* murders occuring would be even lower!
here I come!
Singapore, or as William Gibson put it: Disneyland with the death penalty [wired.com].
Draconian punishments for even minor offenses will make a place safe, doesn't mean that they are doing it right.
If we were doing a 10th of what they do (mandatory capital punishment for possession of 15g of heroin, heavy whipping for graffiti, 3 months in prison plus whipping as a mandatory minimum sentence for foreigners overstaying their visa etc) the same people who admire their low crime rate would be calling it fascism.
it's a city state
the policies that work for one small rich densely populated tightly controlled area does not apply to large areas of rural and urban, rich and poor
singapore offers no lessons about how to run real countries
Look, I am a normal dude who doesn't involve in criminal activities. Life is good then in Singapore.
First, they came for...
> Draconian punishments for even minor offenses will make a place safe, doesn't mean that they are doing it right.
Incarceration rates per 100K
https://en.wikipedia.org/wiki/... [wikipedia.org]
Singapore: 230
Capital punishment:
It was true that a couple of decades ago, they did this a lot (ranked 2nd then). Now they seem to be doing it 5 - 10 times less.
https://en.wikipedia.org/wiki/... [wikipedia.org]
4 were executed in 2011. None in 2010.
Singapore has 13.8 executions per 100,000 [wikipedia.org], which is more than the 12.5 murders per 100,000 in Africa (though I don't know the execution rate in Africa).
Sure the executed Singaporeans have (generally) broken the law, but how many murder victims are killed because they're involved with crime? And if you can blame someone for getting caught up with a gang that pressures them to commit crime then why can't you blame someone for remaining with a violent spouse who might harm them?
I'm not sure I'd feel much safer
A women may be less likely to be murdered but more likely to be raped.
A women may be less likely to be murdered but more likely to be raped.
That's mostly because the FBI doesn't consider prison rape to be a crime; I think the estimates I hear are typically around 200,000-300,000 male prison rape victims a year, which comes close to making the rape stats 50/50. There's also very little interest in figuring out the underreporting rate for male rape victims in open society; hell, in many places it isn't even a crime for a woman to rape a man because of the way rape was defined.
But even if you ignore all that: I'll take those odds. Rape has the lowest occurrence rate in the US of any violent crime, and not only that, it's declined the most over the last decade or two as well. Men are several times more likely to be KILLED. Last time I checked, that was worse.
By the way: case clearance rates for female homicide victims are higher than for male homicide victims.
You can either listen to the gender issues folks, who make it sound like violence against women is a HUGE CRISIS, or you can read the BJS statistics. Women have been, and continue to be, a protected class in the US.
By the way: case clearance rates for female homicide victims are higher than for male homicide victims.
You can either listen to the gender issues folks, who make it sound like violence against women is a HUGE CRISIS, or you can read the BJS statistics. Women have been, and continue to be, a protected class in the US.
Want to bet that the clearance rate for female homicide victims has something to do with the fact that they disproportionally killed by people close to them?
When I was in US, I was very puzzled at the lack of empathy in public discourse towards prison rape. This was especially surprising since US leads the world in incarceration rate (3.5 times the supposedly âoeevery thing is a crimeâ Singapore) - so it is not even as if prison is reserved for the worst of the worst, with non-violent offenders frequently jailed, let alone the argument of punishing as sentenced and nothing more.
However, I don't understand your chain of reasoning. You argued that there is significant amount of rape when prisons are taken in account and then go on to say...
> Rape has the lowest occurrence rate in the US of any violent crimeâ.
> Men are several times more likely to be KILLED.
Clearly not, even with just using numbers you list.
According to Human Rights Watch though
http://www.hrw.org/en/news/200... [hrw.org]
âoe4.5 percent of the state and federal prisoners surveyed reported sexual victimization in the past 12 months. Given a national prison population of 1,570,861, the BJS findings suggest that in one year alone more than 70,000 prisoners were sexually abused.â
According to this somewhat dated stats...
http://www.oneinfourusa.org/st... [oneinfourusa.org]
Rape is far, far more common compared to homicide, anywhere in the world.
> You can either listen to the gender issues folks, who make it sound like violence against women is a HUGE CRISIS, or you can read the BJS statistics. Women have been, and continue to be, a protected class in the US.
Yes, it has declined according to BJS. But the starting numbers are so high, that it is still considered a large problem.
When I was in US, I was very puzzled at the lack of empathy in public discourse towards prison rape. This was especially surprising since US leads the world in incarceration rate
These are related statistics. They both stem from the idea that criminals, all criminals regardless of crime, are somehow different from regular folks and not deserving of compassion. It's not something that you'll ever hear explicitly stated, but implicitly when people talk about the need to be "tough on crime" and the unshakable faith that ever harsher sentences are the right approach to addressing the problem.
Best to be an expert cross-dresser who can choose the safest gender for the occasion.
The Economist article mentions that other studies have determined that alcohol is the most common factor in murders in Australia, Finland and Sweden.
This would not surprise me.
Australia, Finland and Sweden don't have significant problems with gangs or ethnic violence, however we do have very big drinking cultures. Drinking lowers inhibitions and makes it easy for someone predisposed towards violence to lose their head. Please note this is no excuse, in fact an Australian court is likely to be less lenient on you for killing whilst drunk.
The Economist includes an intriguing 'print only interactive' (see the PDF) and has some tongue-in-cheek tips on how to avoid being slain:
<snip>...sit back and grow older
You're not kidding about the advice being tongue-in-cheek.
At least in the US, women kill more men than women.
Also, while gender issues folks are more than happy to do all sorts of mental gymnastics for other things: nobody is willing to touch "why do men commit robbery more?" with a ten foot pole because then they'd have to admit that traditional gender roles for men are still very much in place, men are judged heavily by their economic status, and men are committing crime by and large to house, feed, and clothe their families.
Lots of assistance for single mothers out there, like WIC. Single dads? Shit outta luck.
Guess what percentage of the US homeless population is male? Depending on the area, anywhere from 67% to 80% (NYC, for example, is 82%.) Oh, and the percentage of women in homeless shelters is higher than the percentage of homeless women total, showing women are better served.
Male privilege, my ass.
Or maybe it's simply due to the fact that men are, by nature, chemically different than women and more prone to getting involved in aggressive situations and less likely to accept a submissive role in accepting support from others?
Pretending men end up in these situations because of some bias in society is nonsense when there are well known natural factors that make men different to women in this exact respect.
https://dl.dropboxusercontent.... [dropboxusercontent.com]
I've said it before, so I'll say it again. These murder counts are totally useless for anyone who doesn't work in a morgue.
I really don't worry about *all* of the murders. The vast majority of them can't possibly affect me. I want the real number of murders -- the ones of which I ought to be frightened.
I don't care about gang-on-gang violence, I'm not in a gang. I do care about caught-in-crossfire gang-shooting victims.
I don't care about spouses killing spouses nor parents killing children. I don't fear my spouse nor my children.
What's left is a very small miniscule number, at least in my country, of intentional killings from random shootings, caught-in-crossfire, crazy co-workers, mistaken identities, and the like. But no one has ever presented those numbers.
What the UN report leaves out is one important factor in the US: about half of the perpetrators and victims of homicide are young African American males, completely out of proportion to their prevalence population; that's what accounts for most of the difference between US and other Western murder rates.
Gun control isn't going to help reduce those murder rates. Nor can those murder rates be explained through racism or bias in the justice system. Until politicians get serious and address this issue, African Americans are going to continue to get killed and locked up at a frightening rate. Unfortunately, our current president has been totally ineffective in doing anything about it.
about half of the perpetrators and victims of homicide are young African American males, completely out of proportion to their prevalence population; that's what accounts for most of the difference between US and other Western murder rates.
That can't be true because looking at other "Western" nations (I looked at the Western Europe category, most of Northern Europe category, most of Southern Europe category, Canada, Australia, New Zealand) have about a quarter of the murder rates of the US fairly consistently over the 13 years indicated. In 2012, Canada, Finland, & Belgium are are closer to 1/3, but some are doing better than 1/5. And that was tied for the best year in the US. To be fair, that was a particularly good year for Finland a
Well, looks like I didn't have to say any of what I have to say. So I'll say this instead.
Look to Louisville, KY for how bad things can get when we try to be desperately politically correct or try to sweep it all under the rug. The "teens" have formed a gang among three+ schools and have exceeded the capacity of the police there. Oddly, only a small number of arrests have been made and of those they do not fit the profile of the "teens." Meanwhile, among the terror and chaos, the mayor essentially says
Norway and Finland are about 2.3/100000, which is about the same rate as for non-Hispanic white Americans. And you're right that that is about twice what it is for some other countries in Western Europe, but the point is that US society as a whole isn't unreasonably homicidal (in fact, several states have murder rates of 1.1-1.8). High US murder rates are a problem of specific, small minorities, and we need to intervene in those populations if we want to reduce overall homicide rates.
And murder rates among
I would also point out that the "US" - commonly condemned in such statistics - is probably the least homogenous country in the world. As such, it's probably useful to look at the state by state rankings, both positively and negatively:
(ranked by deaths per 100k)
1. District of Columbia 30.8 http://www.city-data.com/forum...
Canada = 1.4-1.8/100k
U.S. = 4.7-6.6/100k
It's amazing how some people will defend the American way of life while being completely blind to the American way of death.
I have generally found that most foreigners and immigrants have a much harsher perspective on handling crime than Americans. Many developed countries engage in law enforcement activity that Americans would consider the mark of a police state. I've found most of those people, however, find it outrageous that Americans would be so obsessed with perceived freedom that they'd be willing to sacrifice quality of life and overall safety. The difference is that they're focused on prevention whereas American obsess about deterrence via punishment.
I'm not arguing they're right necessarily but it's hard to argue when cities in most first world nations are safer than American cities. I was generally oblivious to this until I lived in Taiwan for several years. It was refreshing to be able to go out at 3am and not have to worry about being mugged. Not that there weren't problems, particularly in Southern Taiwan and especially seedy neighborhoods. And sometimes I suspect crime in other countries in under reported. There's a lot of petty crime that I think is not adequately represented. But even then it's nothing compared to how rough things can get in the US. And to think that Japan somehow manages to be on another level.
Crime also doesn't tell the whole story. In Taiwan, if you really had to go looking for trouble. Otherwise no one gave you a hard time, even as a foreigner. In America, however, wander into certain neighborhoods with the wrong skin color and it's a near inevitability you'll get harassed. And usually the harassment comes from some punk teenager, which is a bit of a concerning trend. Where I used to live in the US was a borderline neighborhood that straddled the line between okay and bad neighborhoods. A week didn't go by that some asshole didn't make remarks about me, as a white guy, being out for a jog.
Inevitably, you learn to avoid trouble areas and I think Americans as a culture do that constantly. The problem is that it's the equivalent to sweeping the problem under the rug. And Americans seem to have a habit of reinterpreting statistics to suit some deluded world view. Take incarceration stats. People look at the numbers and assume there's some grand conspiracy. Doesn't it occur to people that more people are in jail because there's generally more crime? Certainly, the crime statistics corroborate that.
Now, the interesting thing I've found, is that American police departments are far more militaristic than anything I've seen overseas. In Taiwan, more than once I've seen a drunk woman slap a police officer and he just stands there and takes it, waiting for her to calm down. In the US they would have tased her and smashed her face into the pavement, assuming someone more gung ho didn't just pump a few rounds into her claiming probable cause.
On the other hand, I found the authorities there much more comfortable with continued surveillance. Here, it's all reactionary aggression. The rare police car I see is busy blowing through stop lights supposedly on the way to an incident. In Taiwan, however police presence was more persistent and reliable. Not that cops were personable there, but there was a lot more interaction. The only time people ever see cops in America, other than directing traffic, is when something has gone wrong. No wonder people develop a negative impression.
If I had to attribute crime in America with a cause, I think the single largest problem is irresponsible and shit parenting. If that were addressed I think so many other things would start falling into place. There are so many cultural problems endemic to America that you just don't see overseas, at least not to the extent they exist here.
A committee takes root and grows, it flowers, wilts and dies, scattering the seed from which other committees will bloom. -- Parkinson


text:
those kinds of rides.
Beer Stop!
Matt determined to make the empty can fit into his pack.
Circle K number 2 and time for more beers. After all, it was on our way to more trail.
Still raining back in town, and hey, I have one more beer in my pack...
I've ridden TMP for years and never knew about this rock wall/dam, nor the single track leading you there.
We rode out 36th St. and headed for more dirt. Riding thru an open gate led to some washes, some random desert trails, a stint in the ghetto and more washes.
Riding thru this random storm drain/wash led us to a catwalk. Some guy leaned over the fence upon hearing us below and recognized Matt. Wha?
Turns out the guy was instrumental in building/developing the Robles Trails and led us thru his property to more washes!
We popped out by the Pima County jail and took the Santa Cruz river path back to town.
Then on Sunday Libby and I headed out to the Pistol Hill section of the AZ Trail where we met up with my Dad and Spiker.


text:
NAME: Lia Lor
HAIR: Blonde
EYES: Green
BUTT: Still there
We here at We Live Together have just one rule; Don't feed the animals. Especially sexy sex animals like this Lia Lor babe. In this latest episode of Free We Live Together porn, we managed to rope Lia and two of her best buddies into having a fun weekend out in the hiking trails of LA to break out into a sexy all-lesbian orgy that is so hot that it will blow your mind!
I really love this Texas sweetie Lia Lor. Also known as Brady Paige, this babe is one of the best new cummers to the porn industry. She reminds me a lot of the world-famous porn star Shyla Stylez in the fact that she has a tight 34B-25-34 frame, a beautiful pair of eyes, and a sex drive that is on overdrive! See her awesome work today!
If you like hot porn, check out this shit right now!


text:
Top 7 Things System Administrators Forget to Doby Tom Adelstein
Out of the plethora of chores that we do each day, which ones make up the top seven activities of forgetful system administrators? To begin, you might ask yourselves if the answer is quantitative or qualitative. Let's think about it for a minute.
You could look at the number of times you forget something. If you did that, you might get a list of things like forgetting to set your alarm clock or showing up to work with unmatched socks. We need something scarier, like forgetting to turn off remote access through a VPN to an employee that just left the company.
In writing this article, I felt like the Simon Cowell of technologists, but in reverse. Out of many worthy candidates I could only pick seven, and Paula Abdul couldn't vote. Beside my own subjective view, I decided to consult other engineers. The men and women I consulted felt the criterion was obvious: administrators forget to do things that matter.
I could cite many reasons why they forget some critical tasks. Those reasons include doing jobs that normally take two or more people, having to provide break-fix services on hardware, covering for absentee help desk personnel or getting involved in pre-sale activities. Regardless, here is the compilation of the top seven things system administrators forget to do.
1. Forgetting to Delete a Former User's Account
When IBM, Novell, and HP hold seminars in the same city around the same week, you find out why you need their identity management systems. Some unnamed Fortune 50 companies forgot to delete former user accounts for five years. Those former employee accounts existed in the human resource and payroll databases, in the computer directory, address book in the SID, SAM, and AD. The vendors will say, you don't have enough system administrators, will never find enough available, and therefore need Tivoli, eDirectory, or OpenView.
Who really knows if the workforce has enough system administrators? In my survey, system administrators complained about their workload, lack of time to plan, and a need to prioritize their tasks. I asked many if they kept a list of their tasks and few did. About 90 percent of the engineers surveyed went to work with their daily schedule in their heads. I counted that as forgetfulness.
I rarely go to the grocery store without a list because I cannot recall what I need. I forget the laundry detergent or some obvious item like vitamins. If I can't remember 15 items on a grocery list, how do I expect to remember the things I need to do at work? I function poorly without a list.
We have to close the door when a user leaves. We also need a checklist to follow and a way to find out who left. You cannot justify leaving former user accounts active. Some things to remember include disabling the user's password. I like to preserve her directory, since someone else may take the her place. I typically move the directory and rename it. We often want to keep the contents of the old user's directory intact.
Depending on your organization's IT policies, you'll want to create a list of actions to take. Remember that you need to do more than simply changing a user's password. If this user ever had root access you might find anything from a trojan system binary to an unknown kernel module. With that in mind we can move on to Rootkits.
2. Forgetting to Regularly Search for Rootkits
Rootkits allow an unauthorized person to gain access to the superuser or domain administrator's account. The same software can let an intruder hide his or her tracks, steal or remove files on a system and so forth. A rootkit can allow someone to maintain access to a hijacked computer. A programmer can write a rootkit for any type of operating system. If you have read about companies losing 40,000 customer files, then you will usually find a rootkit to blame.
User-level rootkits are easy to detect and remove. At this level, the software replaces one or more of a legitimate user's applications with a modified program. On Unix-style and newer proprietary systems you can detect a user-level rootkit if you trust the kernel. Programs like AIDE and Tripwire can detect this type of rootkit.
Kernel level rootkits are difficult to find, since you cannot trust the kernel on which the rootkit exists. We've seen kernel-level rootkits delete logs to hide an intruder's tracks and replace system calls. Kernel level rootkits can exist as a Linux Kernel Module (LKM) or a service on a Windows server. Recently, I found a rogue service running on a Windows 2003 R2 server in a test environment. Some examples of LKM rootkits are Afhrm and Synapsis. Earlier Windows kernel mode Trojans included Slanret, IERK, and Backdoor-AL.
Since you cannot trust the kernel, security specialists install packet sniffers on unaffected machines. The specialists look at packets sent to and from the machine on which they expect a rootkit exists. Another way to detect kernel level rootkits involves booting from a live CD. The live CD has a kernel you can trust and will allow you to investigate the drives.
Monitor your system with file integrity checks by looking at the machine for changes. Make a fingerprint of a newly installed OS image or after adding new software. A fingerprint uses cryptography to make a hash of all the data in a file. Once you have the hash you can compare a stored hash value with the running hash value. You can then detect changes and see if someone put a rogue program on your system.
3. Forgetting to Use a Trouble Ticket Tracking System
Did you know that an RFC exists for a trouble ticketing system? RFC 1297, NOC Internal Integrated Trouble Ticket System Functional Specification Wish List, is an Internet Engineering Task Force specification. The author of the RFC compares a trouble ticket to a patient's hospital chart. Both define a problem and assist in coordinating the solution with people working on it at different times.
Initially, an internal client creates a ticket that moves though a support system. The ticket identifies an issue and helps determine the skills and expertise needed to solve the problem. Until the person or persons assigned to the ticket resolves the issue, the ticket remains open.
A trouble ticket or trouble report tracks the actions performed by the experts and reports to a case manager on the progress of the problem's solution. In tracing the origins of trouble ticketing systems I found they originated in manufacturing as a paper-based reporting system.
Today, almost all trouble tracking systems are web-based applications. Forgetting to use a trouble tracking system leads to the kinds of problems I describe below.
4. Forgetting to Set Up Technical Documentation and Creating a Knowledge Base
Back in February, I interviewed for a job as a Linux system administrator. The company had 30 Linux boxes running mission-critical applications for a global VoIP network. I came close to accepting the position, until I asked for technical documentation. The resigning system administrator replied that they had the code, what else did I need? I asked the managing director to refrain from making me a job offer after learning the state of the company's documentation.
I wonder how many times I've forgotten the solution to problems I would ultimately see again. It seems silly when you realize you could have just written it down and filed it away. Instead, we duplicate the same effort it took to find the answers we need.
In November 2001, I discovered that our support staff had a backlog of 85 days. After that, support simply deleted any emails requesting customer service. I took the issue to our system administrators and development team and declared the situation a crisis. I also found out that our system administrators had responsibility for backing up our customer service department. The programming team stopped all development and looked for a quick solution to this fiasco. We found Request Tracker (RT) from Best Practical Solutions LLC and implemented the system. Within 10 days, we cleared every item on our list and turned RT over to our newly hired customer service representatives.
While looking for solutions to our ticket tracking system, we realized that any traditional knowledge base system wouldn't work for our company even with RT in place. We could not afford trained authors to write the content we needed. At that time, Practical Solutions did not have their RTFM knowledge management system available.
Our solution involved automating a bridge between closed trouble tickets and a web-based FAQ software system. After our customer service crisis, we couldn't afford to allow a technical issue to go unnoticed again.
Pages: 1, 2


text:
This is a beta release of the Winstone Servlet Container. The homepage for this project is at 'http://winstone.sourceforge.net'
Author: Rick Knowles (contact details below)
Winstone is a servlet container that was written out of a desire to provide servlet functionality without the bloat that full J2EE compliance introduces.
It is not intended to be a completely fully functional J2EE style servlet container (by this I mean supporting extraneous APIs unrelated to Servlets, such as JNDI, JavaMail, EJBs, etc) - this is left to Tomcat, Jetty, Resin, JRun, Weblogic et al.
Sometimes you want just a simple servlet container - without all the other junk - that just goes. This is where Winstone is best suited.
The original goals in writing Winstone were:
The short version (because the long version is way too politically incorrect) is as follows:
Winstone is the name of a rather large Jamaican man a friend of mine met one night, while he was out clubbing in the Roppongi area of Tokyo. He (my friend) was a little liquored up at the time, and when Winstone suggested they head to "this really cool club" he knew, he didn't think anything was wrong. It wasn't until Winstone led him down a dark stairwell and dropped his trousers that my friend clued in and ran like hell.
It was too good a story to let die, so I named this project Winstone so that said friend will continue to be reminded of it. Heheheh ....
The Web-App DTD files (everything in the src/javax/servlet/resources and src/javax/servlet/jsp/resources folders) are covered by the licenses described at the top of each file (usually as licensed by Sun Microsystems).
As of v0.8.1, all other files are dual-licensed, under either the Lesser GNU Public License (LGPL) as described in LICENSE-LGPL.txt, or the Common Development and Distribution License (CDDL) as decribed in LICENSE-CDDL.txt. Until v0.8, the license used was the GNU Public License (GPL).
The goal of dual-licensing is to make Winstone as attractive as possible to distributors of commercial webapps, while ensuring everyone benefits from any improvements. The CDDL allows free distribution with any commercial applications, while distribution with a GPL licensed webapp is also possible under the LGPL. If you are unclear about which license applies to an application you wish to distribute or sell, please contact me.
You can contact me through the Winstone development list at sourceforge (winstone-devel AT lists DOT sourceforge DOT net). If you have any general comments or questions about Winstone please mail me on that list - I'll try to start a faq soon.
I'm open to help from anyone who's willing to help me meet the above goals for Winstone. Just mail me at the list (winstone-devel AT lists DOT sourceforge DOT net)
If you want to build from source code, you will need to download and install Apache Maven (v1.x). The following instructions assume you have already installed Maven and have the maven shell script in your path (to get Maven, see http://maven.apache.org/).
To build Winstone, unpack the tree:
tar zxf winstone-src-0.9.10.tar.gz
Then build it:
cd winstone
maven clean jar
The winstone.jar file will be in the target directory after the build is complete.
To run it:
java -jar target/winstone-0.9.10.jar --webroot=<location of webroot> (+ other options)
java -jar target/winstone-0.9.10.jar --warfile=<location of warfile> (+ other options)
java -jar target/winstone-0.9.10.jar --webappsDir=<location of webapps directory> (+ other options)
java -jar target/winstone-0.9.10.jar --hostsDir=<location of hosts directory> (+ other options)
Syntax: java -jar winstone-0.9.10.jar [--option=value] [--option=value] etc Required options: either --webroot OR --warfile OR --webappsDir OR --hostsDir --webroot = set document root folder. --warfile = set location of warfile to extract from. --webappsDir = set directory for multiple webapps to be deployed from --hostsDir = set directory for name-based virtual hosts to be deployed from Other options: --javaHome = Override the JAVA_HOME variable --toolsJar = The location of tools.jar (default is JAVA_HOME/lib/tools.jar) --config = load configuration properties from here(if supplied). --prefix = add this prefix to all URLs. (eg http://host/prefix/etc). --commonLibFolder = folder for additional jar files. Default is ./lib --logfile = redirect winstone log messages to this file --logThrowingLineNo = show the line no that logged the message (slow). Default is false --logThrowingThread = show the thread that logged the message. Default is false --debug = set the level of debug msgs (1-9). Default is 5 (INFO level) --httpPort = set the http listening port. -1 to disable, Default is 8080 --httpListenAddress = set the http listening address. Default is all interfaces --httpDoHostnameLookups = enable host name lookups on http connections. Default is false --httpsPort = set the https listening port. -1 to disable, Default is disabled --httpsListenAddress = set the https listening address. Default is all interfaces --httpsDoHostnameLookups = enable host name lookups on https connections. Default is false --httpsKeyStore = the location of the SSL KeyStore file. Default is ./winstone.ks --httpsKeyStorePassword = the password for the SSL KeyStore file. Default is null --httpsKeyManagerType = the SSL KeyManagerFactory type (eg SunX509, IbmX509). Default is SunX509 --ajp13Port = set the ajp13 listening port. -1 to disable, Default is 8009 --ajp13ListenAddress = set the ajp13 listening address. Default is all interfaces --controlPort = set the shutdown/control port. -1 to disable, Default disabled --handlerCountStartup = set the no of worker threads to spawn at startup. Default is 5 --handlerCountMax = set the max no of worker threads to allow. Default is 300 --handlerCountMaxIdle = set the max no of idle worker threads to allow. Default is 50 --directoryListings = enable directory lists (true/false). Default is true --useJasper = enable jasper JSP handling (true/false). Default is false --useServletReloading = enable servlet reloading (true/false). Default is false --preferredClassLoader = override the preferred webapp class loader. --useInvoker = enable the servlet invoker (true/false). Default is true --invokerPrefix = set the invoker prefix. Default is /servlet/ --simulateModUniqueId = simulate the apache mod_unique_id function. Default is false --useSavedSessions = enables session persistence (true/false). Default is false --usage / --help = show this message Cluster options: --useCluster = enable cluster support (true/false). Default is false --clusterClassName = Set the cluster class to use. Defaults to SimpleCluster class --clusterNodes = a comma separated list of node addresses (IP:ControlPort,IP:ControlPort,etc) JNDI options: --useJNDI = enable JNDI support (true/false). Default is false --containerJndiClassName = Set the container wide JNDI manager class to use. Defaults to ContainerJNDIManager --webappJndiClassName = Set the web-app JNDI manager class to use. Defaults to WebAppJNDIManager --jndi.resource.<name> = set the class to be used for the resource marked <name> --jndi.param.<name>.<att> = set an attribute <att> for the resource marked <name> Security options: --realmClassName = Set the realm class to use for user authentication. Defaults to ArgumentsRealm class --argumentsRealm.passwd.<user> = Password for user <user>. (for ArgumentsRealm) --argumentsRealm.roles.<user> = Roles for user <user> (comma-separated) (for ArgumentsRealm) --fileRealm.configFile = File containing users/passwds/roles. Only valid for the FileRealm realm class Access logging: --accessLoggerClassName = Set the access logger class to use for user authentication. Defaults to disabled --simpleAccessLogger.format = The log format to use. Supports combined/common/resin/custom (SimpleAccessLogger only) --simpleAccessLogger.file = The location pattern for the log file(SimpleAccessLogger only)
You don't really need a config file, but sometimes it's handy to be able to use the same settings each time without running through the command history.
Winstone looks for a config file
winstone.properties in the current directory (or in the location
specified with --config) at startup. It loads the properties in this file, overrides them with any
supplied command line properties, and then starts itself.
This is just intended as a handy feature for people who want to cache regular startup options, rather than using batch files.
The simplest way to use winstone is with a single webapp. To do this, just supply the warfile or webroot directory as an argument:
java -jar winstone.jar <webroot or warfile>, (this method auto-detects the type) or
java -jar winstone.jar --webroot=<webroot>, or
java -jar winstone.jar --warfile=<warfile>
If you need to support multiple webapps, use the
--webappsDir switch, to which you pass a
directory that contains multiple warfiles/webroots.
java -jar winstone.jar --webappsDir=<dir containing multiple webroots>
The directory becomes the prefix name for that webapp (so hello becomes /hello, etc). The directory named ROOT becomes the no-prefix webapp.
So, for example, if you had a directory /usr/local/webapps which contained sub-directories ROOT
and test, if you executed
java -jar winstone.jar --webappsDir=/usr/local/webapps, you would
find that the test folder would act as a webroot for requests prefixed with
/test, while
other requests would go to the webapp in the ROOT folder
From v0.8, if you need multiple hosts (sometimes called name-based virtual hosting), there is a
new option
--hostsDir. This acts in a similar way to the
--webappsDir switch,
but it defines an extra level of sub-directories, the top being a per-host directory and the second a
per-webapp directory as with
The directory name becomes the host name: that is, a directory named "www.blah.com" will only serve requests with the host header www.blah.com, unless it is the default host. If a directory named "default" is found, it becomes the default host. If no default directory is found, the first directory in the list (alphabetically) becomes the default host.
java -jar winstone.jar --hostsDir=<dir containing multiple host directories>
As a result of the design goals, there are some things Winstone doesn't do:
If you enable the controlPort, be aware that there is no password protection at all on this port. Anyone who can get access to this port can stop or restart the server. I plan to add some simple authentication to this at some point, but I'll wait until someone asks for it.
The controlPort is disabled by default. If you choose not to enable it, the only way to shut Winstone down is to kill the process (either by Ctrl-C or kill command).
New features in v0.9:
New features in v0.8:
--hostsDir switch, you can define a
directory that contains directories named by hostname, each of which acts like a
See above for more details.
--accessLoggerClassName=winstone.accesslog.SimpleAccessLogger. You can provide your
own logging implementation, but the simple access logger contains Apache Combined/Common format
logging and Resin format logging, so it should suffice for most cases. See
below for more details.
New features in v0.7:
New features in v0.6:
New features in v0.5:
<env-entry> and
<resource-ref> references, but
it also includes a pooling JDBC DataSource object .... it's funny how you don't realise how important some
things are until you go without them ....
New features in v0.4:
--useServletReloading=true at startup)
AuthenticationRealm and
Currently Argument-based and File-based realms (ie user/password details supplied via command-line args
or XML files) and HTTP BASIC and FORM authentication are implemented, but the others (DIGEST and
CERT authentication forms) will come soon.
New features in v0.3:
As part of the upgrade in the servlet specification, the v2.4 incarnation of the web.xml file is validated using XML Schema Documents (XSD) as opposed to Document Type Definitions (DTD). While I still have no idea why such a change was necessary - especially given that DTD validation seems to be more than enough in this case - I did implement it. Perhaps the people on the specification committee might want to give a thought to container size next time round, as this one change multiplies the size of the distribution by five.
Anyway, to use Xerces, you'll need to download the latest Xerces-J parser from here, and copy xercesImpl.jar and xml-apis.jar into a folder somewhere (name it "endorsed"). Putting them in the winstone/lib folder will not work, because they must be in the system endorsed classpath to override the JDK internal XML parser.
Then add
-Djava.endorsed.dirs=<endorsed dir name> as a JVM arg to your
command line for starting winstone, eg:
java -Djava.endorsed.dirs=/jdk/endorsed -jar winstone.jar --webroot=...
Winstone supports JSPs using Apache's Jasper JSP compiler. Thanks to a rather clever design by the Jasper team, this was much less work than I expected - well done Jasper guys.
Required steps:
Both the v1.x and v2.x versions of Jasper are supported. In order to turn on JSP compilation in Winstone, you'll need to place the following jar files into the lib folder under the current directory (or the folder identified by the --commonLibFolder directive).
All of these are available from the Jakarta download site
You'll also need tools.jar, and this is handled a little differently. The ant javac compile task needs this to turn the generated .java files into .class files at runtime. You should already have this in the <java_home>/lib folder of your jdk.
There are two new startup arguments for Winstone --javaHome and --toolsJar. You should only need to set --javaHome to make Jasper work properly. Your startup might look like this:
java -jar winstone.jar --useJasper \ --javaHome=c:\java\jdk1.4.2 \ --webroot=...
Additionally, you can specify the exact location of the toolsJar file like this:
java -jar winstone.jar --useJasper \ --javaHome=c:\java\jdk1.4.2 \ --toolsJar=c:\tools.jar \ --webroot=...
Newer versions of Jasper seem to use the Eclipse JDT compiler, and therefore don't require tools.jar. You might want to try deploying the jasper related jars yourself - see if you can get it running with just a JRE configuration. Shouldn't be difficult, just a little debugging of which jar files are necessary.
CHANGED: Until v0.9.5, it wasn't necessary to add the jsp-api.jar, because winstone included it's own copy of the JSP API classes. However, the JSP v2.1 spec mandates the use of JDK1.5 generics in the API classes, so in order to continue supplying the API classes, Winstone would have to require JDK1.5 compilation as a minimum. Since a large percentage of people use Winstone for it's small footprint, and PDAs running on older spec JVMs are affected by this, it seemed more reasonable to just drop the JSP API classes and maintain the backwards compatibility.
I disagree with the Expert Group's penchant for trading away backwards compatibility in exchange for spec features that are unnecessary (such as generics and XSD support). But at the end of the day, they call the shots, so I just do what I can to minimize the downsides in practice.
These instructions are for beginners: if you know your way around Apache and Tomcat, you'll know what's going on here.
Download and install Apache for your platform (and obviously Winstone too), then follow these steps:
LoadModule jk_module modules/mod_jk.dll <Location "/<Winstone Prefix>/*"> JkMount /* ajp13 </Location>
worker.list=ajp13 worker.ajp13.port=8009 worker.ajp13.host=localhost worker.ajp13.type=ajp13
Please note this is not an optimal configuration for production uses. This is provided purely for those who need some help to get started. Read the mod_jk documentation with Tomcat for more detailed info. Additionally, Costin Manolache of the Tomcat team suggested I point out that the "jvmRoute" feature (used for managing sticky session behaviour when clustering multiple Winstone's behind a single Apache) is not supported. This may change in the future - we'll see how it goes.
The process here is almost identical to that of Tomcat (I know this because I used the Tomcat examples webapp to develop against). There are two components - the web.xml component and selecting/configuring an AuthenticationRealm class.
<login-config> elements as required, eg (from the Tomcat examples web.xml):
<security-constraint> <display-name>Example Security Constraint</display-name> <web-resource-collection> <web-resource-name>Protected Area</web-resource-name> <url-pattern>/jsp/security/protected/*</url-pattern> <http-method>DELETE</http-method> <http-method>GET</http-method> <http-method>POST</http-method> <http-method>PUT</http-method> </web-resource-collection> <auth-constraint> <role-name>tomcat</role-name> <role-name>role1</role-name> </auth-constraint> </security-constraint> <login-config> <auth-method>FORM</auth-method> <realm-name>Example Form-Based Authentication Area</realm-name> <form-login-config> <form-login-page>/jsp/security/protected/login.jsp</form-login-page> <form-error-page>/jsp/security/protected/error.jsp</form-error-page> </form-login-config> </login-config>
and roles are added with
tomcat-users.xml file.
Pass in the command line arguments
--fileRealm.configFile=<filename>, and it should work exactly the way Tomcat does by default.
winstone.AuthenticationRealm class,
and override the appropriate methods (as the File and Arguments Realms do), and specify the class name in
This component is left intentionally fairly simple, and relatively extracted. I'm planning to break the realm and authentication stuff into an optional jar later, since not many webapps I've seen use it.
It should be pointed out in the beginning that the Cluster support currently implemented in Winstone is actually just session sharing. If a request comes to a node in the cluster that doesn't recognise the session ID supplied, that node simply asks the others "Do you know this session ?". If one does know it, it transfers the session to the requesting node, and the requesting node carries on as if it had always had the session in the first place.
If a specific node in the cluster goes offline, so do all the sessions that it was holding. There is no active "push" of sessions to other nodes, so as far as resilience to failure goes, this cluster is fairly weak. The clustering provided here is meant to allow a dumb load balancer to redirect requests randomly across a cluster of Winstone instances without requiring it to be "session sticky".
That said, the configuration is fairly simple. The only information you need is the IP address and control port of at least one other active node in the cluster. Once you have that, add the following options to the command line startup:
java -jar winstone.jar ...< other options > ... \ --controlPort=<myControlPort> \ --useCluster \ --clusterNodes=<IP1:controlPort1>
where IP1 is the IP address of the other node in the cluster, and myControlPort and controlPort1 are the port numbers to use for the control ports of this instance and the other node respectively. Note that it is necessary to actively set the controlPort on this instance, since it is disabled by default.
You would likewise set up the other instance with reciprocal options (ie changing the IPs and controlPort values appropriately.
NOTE: There are some additional requirements on your web application for Clustering of sessions to be successful.
From v0.5, the behaviour of the control port changes slightly. Due to increased usage of the control port by the clustering function, a rudimentary protocol has been added.
The protocol is very simple. The first byte sent to the server is a flag indicating what type of request is being issued. Beyond that the protocol varies for each request type, but the request type flag options are listed below:
Obviously, unless you're planning to write your own cluster extensions, the only two you will be interested
in are the shutdown and reload options. Luckily there is a wrapper class for accessing these functions, named
winstone.tools.WinstoneControl. Try the following to get a usage statement:
java -cp winstone.jar winstone.tools.WinstoneControl
I know that in the introduction I said that Winstone was only going to support the core servlet APIs, but I've since discovered that most people use just a little more than the core servlet API offers. For example, some people use just a JNDI JavaMail session to send administrator error mails, while others want to offer a simple servlet over SSL (and hence need Apache), still others use just a JNDI DataSource to keep a reference to the connection pool.
For this reason I've included a really basic optional JNDI service within Winstone. For the moment, it supports simple operations (such as bind, lookup, rebind, etc) and allows you to store references to environment variables (drawn from the env-entry elements in web.xml and/or command line arguments).
NOTE: JNDI support is disabled by default. It must be enabled using
Configuration can be done in two ways:
<env-entry> <env-entry-name>test/hello</env-entry-name> <env-entry-type>java.lang.Integer</env-entry-type> <env-entry-value>45</env-entry-value> </env-entry>
--jndi.resource.<resName>=<className> for each object to create,
followed by
--jndi.param.<resName>.<attName>=<attValue> for each
attribute required. For example:
java -jar winstone.jar ...< other options > ... \ --useJNDI=true \ --jndi.resource.test=java.lang.Float \ --jndi.param.test.value=45.56
Additionally, it includes a JDBC DataSource object which can be used as a wrapper around normal JDBC drivers. This is fairly simple for now, but it meets the requirements I mentioned above. Options are as follows:
For example to create a DataSource object at the JNDI location java:/comp/env/jdbc/connPool, use the following command line (or config file) options:
java -jar winstone.jar ...< other options > ... \ --useJNDI=true \ --jndi.resource.jdbc/connPool=javax.sql.DataSource \ --jndi.param.jdbc/connPool.url=jdbc:mysql://db.widgets.com/db \ --jndi.param.jdbc/connPool.driverClassName=com.mysql.jdbc.Driver \ --jndi.param.jdbc/connPool.username=foo \ --jndi.param.jdbc/connPool.password=bar
Somebody asked me to add HTTPS support, using the JDK 1.4 SSL socket classes, and so I decided to give it a try. It was a lot easier than expected - the API was really nice to use. Unfortunately the hard work seems to be in the configuration, rather than the programming.
I recommend using a shareware tool called KeyStore Explorer, available here. It's much easier than all that messy CLI stuff.
The steps are basically as follows:
java -jar winstone.jar --webroot=<webroot> --httpsPort=443 --httpsKeyStore=<keystore file> --httpsKeyStorePassword=<password>
From v0.8, there's an option to allow access logging. It's disabled by default, but can be enabled by defining a logging implementation class, with --accessLoggerClassName. The class defined must be an implementation of the interface winstone.AccessLogger, and is defined container wide, but instantiated once per webapp.
The supplied logger is called winstone.accesslog.SimpleAccessLogger. It supports Apache style combined/common format logs, as well as Resin format (which is actually just Apache common style plus a user agent). Configuration options are:
###ip### - ###user### ###time### "###uriLine###" ###status### ###size### "###referer###" "###userAgent###"but you can re-arrange this to be any pattern of the above wildcards with the --accessLoggerFormat switch. Defaults to "combined"
logs/###host###/###webapp###_access.log, which splits the log files for different webapps
and hosts into directories. The wildcards
###host### and
###webapp### can be
moved around or even omitted. Omitting the wildcard will mean the access logs will be combined into
shared files (since the file name will be the same)
For example, to enable Apache Combined style logging to separate files, use a command line like:
java -jar winstone.jar --hostsDir=<vhostsDir> --accessLoggerClassName=winstone.accesslog.SimpleAccessLogger
Or to log just the date and URI for all hosts/webapps to a single file, use a command line like:
java -jar winstone.jar --hostsDir=<vhostsDir> --accessLoggerClassName=winstone.accesslog.SimpleAccessLogger --simpleAccessLogger.format=###date###\ ###uriLine### --simpleAccessLogger.file=/mylogs/access_log.txt
The design of Winstone has always allowed its easy embedding within another application. It's as simple as:
// at startup Map args = new HashMap(); args.put("webroot", "<my webroot dir>"); // or any other command line args, eg port Launcher.initLogger(args); Launcher winstone = new Launcher(args); // spawns threads, so your application doesn't block ... (your application code) // before shutdown winstone.shutdown();
From v0.8 though, there is also the ability to embed in the opposite direction: that is, to embed your warfile into the winstone JAR itself. This allows an all-in-one container plus web-application JAR file to be downloaded, and then unpacked at execution time.
To use this, simply unpack the winstone JAR, and place your WAR file inside the unpacked folder at the top level (with the same parent as the folder named "winstone"). Then rename your WAR file to "embedded.war", and repack the jar as before (make sure to preserve the META-INF and manifest).
Now if you type:
"java -jar winstone.jar", your application should
automatically deploy as the ROOT web application. Try
http://localhost:8080/ to
check it out.
If you need to add any default command-line arguments (eg ports or prefixes), you can embed a properties file in exactly the same way, except that the file must be named "embedded.properties".
From v0.9.5, if you start with --useSavedSessions as an argument, all sessions in the container will be saved to disk after each request, and loaded on container startup. The effect is that sessions will persist across reboots, instead of being lost (which is the default behaviour, or --useSavedSessions=false).
This is useful for development time, if only to prevent you from having to log in to your webapp every time you restart the container. It does however come with a few costs / side effects to think about:
Please give this feature a try if you can, and let me know if you hit any problems. It is still a little green around the edges, so any feedback or corrections will be appreciated.


text:
BROOKLYN, N.Y. - The Columbia men's basketball team dropped a 70-61 decision at LIU Brooklyn on Wednesday night. Senior Mark Cisco had his best game of the season, leading the Lions (4-3) with 18 points, tying a career-high to go with 13 boards.
First-year Grant Mullins added 15 points, while senior Brian Barbour chipped in 12 to push his career total to 978 as he marches toward the 1,000-point club.
The Blackbirds (1-4) shot a scorching 61.1 percent from the floor in the second half, including a 5-of-6 mark from downtown to preserve a five-point halftime lead. LIU also shot 20-of-36 from the free-throw line, while Columbia went 6-of-9.
The Blackbirds' Julian Boyd lifted his team to an early 8-2 lead with a pair of dunks, but Barbour got Columbia going with a trio of three-pointers to put the Lions on top, 11-10, at the 11:25 mark of the opening stanza.
From there, the first half was a defensive struggle with both teams working hard to get off quality shots until a 7-2 run in the final 3:39 by LIU gave the Blackbirds a 24-19 advantage at the half.
Columbia's frontcourt of John Daniels and Cisco set the tone in the second half, working the high-low game and getting after it on the glass. Cisco scored eight points in the first five minutes to erase the deficit and give the Lions a 31-30 lead with 15:18 to go.
However, LIU scored seven unanswered to regain the momentum, but Columbia was able to break off the next five to pull within 38-36. After a Cisco tip-in closed the gap to one point, the Blackbirds knocked down a pair of free-throws and received a clutch three from the left wing by Jason Brickman to make it 47-41 at the 9:25 mark.
LIU extended the cushion to 53-44 after Brickman converted on 1-of-2 from the charity stripe with 6:10 left. Columbia pulled within six on several occasions over the next several minutes, but LIU's attacking offense drew a plethora of fouls to keep the Lions at bay, and remain in front the rest of the way.
The Lions will return home to Levien Gymnasium to face Bucknell in conjunction with Blue Zone - Prostate Cancer Awareness night on Saturday, Dec. 1. Tip-off is set for 7:00 p.m. Tickets can be purchased by clicking here or calling (888) LIONS-11.