text:
Holocaust memorial honors Rabbi Lau's savior
JERUSALEM (AP) – After surviving the Holocaust as a child, Israel Meir Lau — a former Israeli chief rabbi — spent decades searching for the man who saved his life.
That journey ended with an Associated Press report about a recently discovered Nazi document confirming the identity of the teenager who shielded him from German gunfire when his concentration camp was liberated.
In an emotional ceremony on Tuesday, the Holocaust memorial Lau now chairs posthumously granted Feodor Mikhailichenko Israel's highest honor for non-Jews.
"This closes a circle of 64 years. You look for this person, to whom you owe your life, and you don't know whom to thank," said Lau, 72. "He was my childhood hero. A man with a huge soul and a heart of gold."
Lau had previously identified a fellow inmate, a non-Jewish Russian named Feodor, as his savior in the Buchenwald concentration camp, but he never learned the 18-year-old's full name. He said Feodor stole and cooked potatoes for him, knitted him wool earmuffs to protect him from the bitter cold and lay on top of him as gunfire erupted when the camp was liberated on Apr. 11, 1945.
At the time, Lau was an eight-year-old boy nicknamed Lulek.
"Feodor, the Russian, looked after me in the daily life like a father would for a son. His concern and feeling of responsibility gave me a sense of security," Lau wrote in his 2005 autobiography.
Mikhailichenko grew so close to Lau that he wanted to adopt him as a son. But Lau kept his word to his murdered family and emigrated to pre-state Israel on a ship of orphaned refugee children. He lost track of Mikhailichenko and despite many efforts could never trace him again.
The mystery began to unfold in June 2008 when Holocaust researcher Kenneth Waltzer of Michigan State University discovered the man's true identity through a Nazi document he discovered in a recently opened secret archive in the small German town of Bad Arolsen.
The document had been stashed away for more than six decades.
Lau first learned the full name of his rescuer through an AP report about the discovery.
Mikhailichenko returned to Russia where he became a prominent geologist. He died of cancer in 1993 at the age of 66. But his daughters, Yulia Selutina and Yelena Belayaeva, were quickly tracked down and confirmed that their father often spoke lovingly about a young Jewish boy name Lulek in Buchenwald.
After last year's discovery, Lau invited both daughters to Israel and had them at his home for dinner. There, he introduced them to many of his eight children, 50 grandchildren and five great-grandchildren.
"I told them, 'all of this I owe to your father. If it wasn't for your father, none of them would exist,"' he said. "I looked for him for decades and I never forgot him for a single day."
Selutina teared up Tuesday as she accepted a medal and a certificate on her father's behalf. She said her father never forgot Lulek either, and traveled to Buchenwald a year before his death seeking information about him.
Mikhailichenko was featured in a 1992 Russian documentary detailing how he and other Russian inmates helped Lau survive by doing his chores and protecting him from the wrath of German guards.
Mikhailichenko's daughters met with Israeli President Shimon Peres on Tuesday.
"There are not a lot of daughters in the world who can be as proud of their father as you can. Your father acted with ultimate humanity when he saved one soul and risked his life," Peres told them. "The entire state of Israel is proud of you and your family and will be grateful to you our entire lives."
Nearly all of the Polish-born Lau's family members were exterminated in Nazi concentration camps. Lau's older brother Naftali cared for the young boy until the two were separated upon arrival at Buchenwald in January 1945.
Mikhailichenko was already a veteran inmate of the camp, having been arrested by the Gestapo in 1942 for robbery. He knew the ropes and watched over Lau.
When Buchenwald was liberated by American troops, Lau was among its youngest surviving prisoners. He went on to become one of Israel's most prominent spiritual leaders. He served as the country's chief rabbi between 1993-2003 and is currently the chairman of the Yad Vashem Council, an advisory board to Israel's official Holocaust memorial.
Over 22,700 non-Jews have been recognized by Yad Vashem as "Righteous Among the Nations" since the designation was created in 1963. Those include Oskar Schindler, whose efforts to save more than 1,000 Jews were documented in the film "Schindler's List," and Raoul Wallenberg, a Swedish diplomat who is credited for having saved at least 20,000 Jews.
Mikhailichenko's name is now engraved alongside theirs in a garden at the memorial honoring their roles.
About 6 million European Jews were killed by German Nazis and their collaborators during World War II.
Lau said Mikhailichenko proved the goodness that exists in humans, regardless of nationality, religion or gender.
"You see through him that there is a chance for humanity, there is hope for the world," he said. "Feodor is a lesson of morals, of ethics, of humanity."
"Now we know the lesson that even in a dark tunnel, in the midst of the dark tunnel, there is a light. The light is Feodor."
Copyright 2009 Associated Press.


text:
I'm working on a ui for a page in an application that is essentially an image library. The mocku shown below is the page the user sees when they have performed a search for items to update in bulk (by update I mean edit the metadata of). ANyway the functionality has grown so the user can now run a find and replace against the selected items and delete the items from the system. Most of the time the user will be performing a standard bulk update, so I favoured a primary/secondary actions approach (option 1 below).
My colleague though likes the idea of lots of buttons as it makes the page look more 'feature rich'.
Which do you prefer and why?

subset: commoncrawl


text:
Mallets on Wheels
Sara D. Roosevelt Park on the Lower East Side has an odd, all-purpose play space at the center. It's a sunken concrete shell, with markings at mid-court, metal railings, and benches along the tops of its shoulder-height walls. It might be ideal for basketball, kickball, or Tai Chi. Every Sunday and Thursday afternoon, it's used for bike polo. Those who meet here in all weather for pickup games of three-on-three call it The Pit.
Bike polo is played with a hard rubber ball, the kind used in roller hockey, and improvised mallets. You saw off both ends of a ski pole and wrap one in hockey tape. To the other you bolt a small length of high-density polyethylene plastic pipe, the kind ConEdison uses for gas lines. You can use the wide part of the pipe, the part perpendicular to the shaft, to pass and handle the ball, but an actual goal shot must be made with the narrow end of the mallet, otherwise it's called a shuffle and it doesn't count. The only other rule in basic play is that you have to stay on your bike at all times. If you put a foot down, you ride to the side of the court and "dab back in." The first time I watched the game, one player in particular kept on riding over to me and thwacking his mallet against the wall by my feet—I thought he was flirting with me.
I'd never seen or heard of bike polo before I wandered up to The Pit one evening, but it didn't occur to me to describe what I was seeing in any other way. When I told people about it I said, "It's exactly what it sounds like," but of course that's not quite true. Urban bike polo—also known as hardcourt bike polo—is always played on asphalt or concrete, usually at an unused playground. Hockey rinks are ideal, but those are hard to come by in New York. The landscape of the court can have a huge impact on the quality of the game.
The NYC Bike Polo League holds a practice in Brooklyn, in addition to the twice-weekly meetings at The Pit, on the playground of Junior High School 265 near the Brooklyn Navy Yard. It lacks The Pit's concrete walls—instead, the space is surrounded by a high chain-link fence, and the ball often rolls out of bounds and into the dried leaves and trash at the bottom. It makes for a slower game when play has to stop so that someone can fish the ball out from behind a Pringles can, and regulars at the Brooklyn court tend to play less aggressively, taking softer shots and passing more, in order to keep the ball in bounds. For this reason, total beginners seem to prefer to get their feet wet in Brooklyn. I met Taylor Antrim, novelist, journalist, and raw polo rookie, at the Brooklyn practice (it was his second time ever). His first day on the court, he collided with a fellow player and knocked his glasses off. "I felt really badly about it," he said. Taylor has yet to make a mallet—he has to find a ski pole first. "I looked in my parents' attic, but I couldn't find one. I'll probably have to buy one on eBay," he said. He thought for a minute. "Actually, I'll probably have to buy two."
The crowd at The Pit is bigger and rowdier. They're intimidating to approach. It isn't their clothing or tattoos—it's their body language. They are frank and relaxed, completely at home. Sidling over to talk to them one Sunday afternoon, I felt like somebody's kid sister. I asked a few lame questions; everybody told me I should go find Doug. Doug (Doug Dalrymple, six years playing bike polo, native to Ohio) was wearing a T-shirt with a picture of a fully naked woman. He's handsome in an Ed Harris kind of way. When I asked him about the worst injury he's ever gotten playing polo, he looked deeply offended. "Why would you even ask me that?" he wanted to know. He asked me if I'd ever been hurt; I admitted that when I was little I crawled into a chair and busted my head open. "Well, I think being a little kid and crawling into chairs is probably a lot more dangerous than bike polo," he pronounced.
I thought the interview was over; then I asked him to show me the modifications he'd made to his bike. A good polo bike should have narrow handlebars that won't get in the way of your swing. The ends of the bars should be capped with metal discs, so no one gets impaled on them (I think the phrase Doug used was "core sample"). Many polo bikes have one hand-brake (on the left, or steering hand) which stops both wheels, leaving the right hand free to wield the mallet. A circular piece of plastic or cardboard covering the spokes in the front wheel is a dead polo bike give-away. A low gear ratio—small front cog, large back cog—gives your polo bike quick acceleration and a low top-speed. And most serious players cover their chain rings with a circular piece of metal made special by a company in Milwaukee. It's called a polo guard, and it keeps you from getting cut on the chain ring's sharp teeth in the very likely event of a collision on the court.
There is a grass version of bike polo, inspired by horse polo, that's been around since the early 20th century, but it bears almost no relation to the city-bred variety—invented, most agree, by bike messengers in the early '90s—and hardcourt polo players don't consider themselves its heirs. Many are barely aware that it exists. "I've never seen it. I think it's more structured?" said Mitchell Levine, a touring promoter rep from Pittsburgh who plays at The Pit when he's not on the road. This unformed, unstructured quality seems to be one of bike polo's biggest draws. The sport is getting a lot of media attention, especially in New York, and over the last few years clubs have been popping up in cities all over the U.S., Canada, and Europe. Each city has its own rules and style of play. According to Doug, New York City polo used to be notorious for aggressive checking. "Some cities play nicer, a lot of passing," he said over the phone. "We were very rough and tough players, a lot of physical hits, and definitely not bringing a game that was very graceful. That reputation is still with us, even though New York City players are not as directly physical as they used to be."
Partly because of this new diversity and popularity, the game is accumulating a set of standardized rules—perhaps more broad and obvious than before—so that teams from different clubs can play one another. At the East Side Polo Invite, a New York City tournament in June that drew teams from as far away as Paris, new rules were a source of constant debate, even as the games were in progress. The very notion of impartial reffing seemed to stick in a few craws. "That woulda counted in Portland," somebody yelled when a no-goal was called. "Some people have been playing for a long time and they don't like the new rules, they like it the way it was," Doug said. "And some of them have been playing for a long time and they're just tired of this lawless renegade sport where there's no penalties and people can do whatever they want."
Brian Whitmore, one of the refs at ESPI, said that polo players police themselves. They own up to rule-breaking, and when they fall, there's none of the grimacing and play-acting you see in soccer—they fly onto their bikes and ride hard to dab back in. "There's an etiquette to bike polo," Brian said. "Nobody wants it to turn into a rigid sport."
What Brian said about etiquette reminded me of something I saw at The Pit—a player taking to the court with a lit cigarette dangling from his lips. There's an air of deliberate casualness about bike polo. Surely this is part of the reason you have to be penalized for putting your foot down: it's just not cool. The awkward politeness of bike polo—apologizing to an opponent as you check him violently into the boards—is one of its most charming contradictions. It's a rough, physical sport, and a gentleman's game. It's fluid, chaotic, and most of the time, deeply civilized.


text:
An interview with Tunisia's Rachid Ghannouchi, three years after the revolution
By Lally Weymouth, Available at: http://www.washingtonpost.com/opinions/an-interview-with-tunisias-rachid-ghannouchi-three-years-after-the-revolution/2013/12/12/7aaaaa5a-62cf-11e3-a373-0f9f2d1c2b61_story.html
The Arab Spring began in Tunisia on Dec. 17, 2010, when a fruit vendor named Mohammed Bouazizi set himself on fire , sparking a revolt that spread across the Arab world. Beginning with Tunisia's Zine el-Abidine Ben Ali, dictators fell from power, and it seemed that a democratic revolution might transform the region. Yet now, on the third anniversary of that catalyzing moment, the outcome seems far less promising. The Washington Post's Lally Weymouth spoke with Tunisian leader Rachid Ghannouchi on Tuesday, as his Islamic Ennahda party and the opposition struggled to agree on a new interim prime minister . Excerpts:
Can the parties in the long-running national dialogue — including yourself and the other political parties — decide on a new prime minister this week?
I believe that we will be reaching an agreement before the end of this week.
Can you and opposition leader Beji Caid Essebsi Essebssi agree on a prime minister?
Ennahda and Nida Tounes are the largest parties in the country, so definitely an agreement between these two parties would facilitate an agreement with the other parties.
Reportedly, Ennahda is seeking certain guarantees in order to leave power — it wants guarantees that its members won't be prosecuted for anything they might have done.
No, we haven't asked for what you call guarantees. These are our conditions: We will resign from government [and turn over power to a technocratic government], but the price we ask for is that the country gets a democratic constitution that enshrines and protects freedoms and rights, and secondly that they give the people an election date and an election commission. But we are not asking for any protection for ourselves because we haven't done anything wrong.
Things haven't gone well in the past two years while you've ruled this country. The economy is in terrible shape. There is a security problem — two secular politicians have been killed. Your army is now fighting the jihadis at the Algerian border. You've had serious problems ruling the country, isn't that correct?
I'm not going to say that we have achieved great successes over the last two years, but we have to remember the country is going through a transitional period after the revolution. Compare our situation to other countries in a similar situation — Libya, Syria, Yemen, Egypt and other Arab Spring countries. Tunisia is obviously faring much better. It is the last candle still shining in the Arab Spring despite all the winds that are blowing at it.
Let us look at the economy. There are some exaggerations in what the opposition is saying. We have dedicated over a fifth of the budget to developing the areas inside the country that have suffered most in the past. One of the reasons the revolution happened is because of inequality. For the last 60 years, the areas inside the country didn't receive much development. If you look at the constitution — which is nearly ready now after two years — it enshrines all the values of the revolution, like freedom of association, freedom of expression and equality for women.
Does it really? Because you wanted to make women "complementary" to men, rather than equal — second-class citizens.
We took everything that is contentious out of the constitution.
But you took it out under pressure.
This [term] "complementary" goes both ways: Man complements woman. A woman complements man.
Who has the power if the woman wants to own land or divorce her husband?
Under Tunisian law, a woman can divorce her husband. Total equality. The constitution is nearly finished, and we worked very hard on producing a constitution that represents all Tunisians, not just a part which is the Islamists. Eighty percent of our trade is with Europe, but many countries like Italy, France and Spain are going through economic problems, and this is affecting our exports and our economy. Taking this into consideration, I don't think we have done a bad job.
Some say you have made compromises, and there are Ennahda hard-liners who are unhappy.
At least they haven't thrown me out yet. There are disagreements in the party on what decisions to make and compromises to give. In the party congress, I wasn't elected by 99 percent, like Ben Ali. Seventy percent voted for me. Maybe this 70 percent has gone down a bit because of the compromises we had to give, but I think the majority of the party still supports the choices we have made.
Why did your party do so little during the attack on the U.S. Embassy in 2012? Why did it allow the Salafist protesters to storm the embassy? It's said that the attack was permitted because your party sympathizes with the Salafists and did not want to attack them as Ben Ali used to attack protesters.
We condemned the attack on the American Embassy and consider it a big security failure on the part of the government. This incident has resulted in a complete change in our policy towards the Salafists and [the radical group] Ansar al-Sharia. Before that, we used to try to convince them to work within the law. But from this moment on, we realized these people do not accept to work within the boundaries of the law, and that is why we started cracking down on them. The government later designated them as a terrorist organization, and the security forces have been working hard against them.
When did the government classify them as terrorists? After the assassination of the opposition leader Mohamed Brahmi in July?
After the assassination of Brahmi last July. But the war against them started months before — tackling their networks.
Are there jihadi training camps in Tunisia?
No. There have been rumors about them training in Iraq, and some have fought in Iraq and Afghanistan. Some people say that because of the lawlessness in Libya, some are training there. And maybe in Mali as well.
Is Tunisia the only place where the Arab Spring might succeed? It has failed in Egypt. In order to succeed, will whichever party is in power have to make compromises?
I believe democracy will succeed in Tunisia, but I also believe that it will succeed in the other Arab Spring countries. In our modern age — in the age of free information — I don't think there is any place for dictatorships. You can see this very clearly in Egypt after the coup.
When you saw the coup in Egypt, were you concerned that this could happen to you here in Tunisia?
Some people in the opposition hoped that what happened in Egypt would happen in Tunisia. But then when they saw the massacres on TV, the opposition started distancing themselves from the Egypt scenario. We have exported revolution — the Arab Spring — to Egypt, and we don't want to import from Egypt a coup. I hope that with the success of the transition to democracy in Tunisia that we will export to Egypt a working democratic model.
Some argue that former Egyptian president Mohamed Morsi made mistakes: giving himself immunity from prosecution, refusing to compromise with secular groups.
Morsi committed mistakes, but they don't justify a military coup. And whatever mistakes were committed do not justify Western countries staying silent about the dictatorship that is being built in Egypt.
You mean the United States?
The West shouldn't say silent about the massacres, the repression and the beginnings of a dictatorship that are being built.
Morsi put himself above the law; he refused to talk to any of the secular groups.
Despite everything we say about Morsi — and he has committed mistakes — not a single massacre was committed, not a single journalist was imprisoned. The media now is being controlled by the military junta to be a mouthpiece for them.
Did you have a good relationship with President Morsi?
I know him. Yes, I respect him.
You are a senior member of the international Muslim Brotherhood?
We [Ennahda] are a Tunisian party.
Aren't you the head of the political bureau of the international Muslim Brotherhood?
No, you are talking about the International Union of Muslim Scholars. It's not political.
It is run by Sheikh Yusuf al-Qaradawi
It is not a coincidence that Tunisia was the first country of the Arab Spring. I believe that Tunisia will be successful in presenting a successful democratic model because we have a homogenous society, with a small Jewish minority. Education is widespread; we have a large middle class which supports democracy. We have a moderate Islamic party, which has been one of the champions of the idea of the compatibility between Islam and democracy.
We could have written the constitution on our own, but we didn't do this because we wanted the constitution to be written not just by Islamists but by everyone. After the elections, we chose to form a coalition government not with other Islamists but with other secular parties because we wanted to send a message that the country is for everyone.
Many believe Ennahda is not moderate — that it is a party with a serious Islamist agenda.
Many tried to scare people off Ennahda by claiming Ennahda would impose strict dress rules. But if you walk around the streets, you find women choosing whether they want to wear a scarf or not. The opposition also tried to scare the West by saying that if an Islamic party comes to power, it would cut off relations with the West. After two years, we have a much more developed relationship with Europe and the U.S.
In 2011, you predicted the end of Israel. Do you expect this to come true?
This is the first time I've heard about this.
What do you think of Israel?
There is a problem there that hasn't been solved yet. There is a problem with occupation. So far, Israel has failed to reach an agreement — with [Yasser] Arafat in the past and Abu Mazen [Mahmoud Abbas] now. We hear that even Hamas is supporting the idea of a two-state solution, but we don't see Israel going towards this solution.
So you're not trying to create an Islamic state with Islamic laws here?
Tunisia, under the existing constitution ratified in 1959, is an independent state — Islam is its religion, and Arabic is its language. This is enough for us. In a democracy, it is parliament that makes the laws. We don't want a theocracy on top of parliament. Some people tried to add sharia to the new constitution, and we have rejected these calls. People don't agree on sharia, so we should leave it out.
Why was nothing done to arrest the people who assassinated secular opposition politicians Chokri Belaid and Mohamed Brahmi this year?
A number of the people who took part in the assassinations have been arrested by security forces. These assassinations were done by professionals, so it is difficult to arrest them. In the U.S., it's still not clear who actually killed Kennedy.
When and why did you create the party?
In 1981. Here in Tunisia. It became the main opposition party.
What happened when you founded the party?
They threw me in prison in 1981 and sentenced me to 11 years. President Habib Bourguiba thought I insulted him and his government, and [that I] encouraged people to revolt.
I spent four years in prison and was released and continued my activities, and in March 1987, I was arrested again and sentenced to life in prison. I was nearly sentenced to death. Bourguiba wanted me to get the death sentence, but then he was overthrown. I left prison in 1988.
And then?
In 1989, general elections happened, and we participated and gained the majority. Prime Minister Ben Ali decided to falsify the results and to arrest me again. So I fled the country. I continued my campaign against the Ben Ali regime from outside until the revolution started. I was received again in Tunisia by thousands in January 2011.
Why did you decide not to become prime minister?
I prefer to leave the opportunity to the young people and my colleagues who suffered more than me. Ali Laarayedh, the prime minister, was sentenced to death two times.
Zulkifli Hasan


text:
Vecto - Simple Vector Drawing with Common Lisp
Vecto is a simplified interface to the powerful CL-VECTORS vector rasterization library. It presents a function-oriented interface similar to CL-PDF, but the results can be saved to a PNG instead of a PDF file. Since Vecto and all supporting libraries are written completely in Common Lisp, without depending on external non-Lisp libraries, it should work in any Common Lisp environment. Vecto is available under a BSD-like license. The latest version is 1.6, released on December 30th, 2021.
Vecto is used by Easystreet and Movie Charts.
The canonical location for Vecto is http://www.xach.com/lisp/vecto/.
Download shortcut:
- Overview and Limitations
- Examples
- Dictionary
- Canvases
- Graphics State
- Paths
- Painting
- Text
- Miscellaneous
- References
- Acknowledgements
- Feedback
Overview and Limitations
Vecto is a library that provides a simple interface to the the CL-VECTORS vector drawing library. It supports drawing on a canvas and saving the results to a PNG file.
Vecto depends on the following libraries:
The easiest way to install Vecto and all its dependencies is with Quicklisp.
Vecto's function interface is similar to the PDF vector description and painting interface: you create images by describing vector paths, then using stroke or fill operations to paint to the canvas.
Vecto's color system uses red, green, blue, and alpha color components for drawing. The results can be be saved to a PNG with an alpha channel.
Vecto's coordinate system starts at the lower-left corner of the image, and increases rightwards along the X axis and upwards along the Y axis.
All measurements are in pixels.
PDF is a feature-rich system. Vecto supports a small subset of PDF-style operations. In particular, it does not support:
- sampled images
- pattern or functional fill
- complex layout of text
- PostScript fonts
- non-RGB color spaces
Other limitations:
- No output formats other than 8-bit, truecolor-alpha PNGs
- No access to underlying pixel data
Related libraries:
All examples are available in doc/examples.lisp in the Vecto distribution. That file starts with:
(defpackage #:vecto-examples (:use #:cl #:vecto)) (in-package #:vecto-examples)
(defun radiant-lambda (file) (with-canvas (:width 90 :height 90) (let ((font (get-font "times.ttf")) (step (/ pi 7))) (set-font font 40) (translate 45 45) (draw-centered-string 0 -10 #(#x3BB)) (set-rgb-stroke 1 0 0) (centered-circle-path 0 0 35) (stroke) (set-rgba-stroke 0 0 1.0 0.5) (set-line-width 4) (dotimes (i 14) (with-graphics-state (rotate (* i step)) (move-to 30 0) (line-to 40 0) (stroke))) (save-png file))))
(defun feedlike-icon (file) (with-canvas (:width 100 :height 100) (set-rgb-fill 1.0 0.65 0.3) (rounded-rectangle 0 0 100 100 10 10) (fill-path) (set-rgb-fill 1.0 1.0 1.0) (centered-circle-path 20 20 10) (fill-path) (flet ((quarter-circle (x y radius) (move-to (+ x radius) y) (arc x y radius 0 (/ pi 2)))) (set-rgb-stroke 1.0 1.0 1.0) (set-line-width 15) (quarter-circle 20 20 30) (stroke) (quarter-circle 20 20 60) (stroke)) (rounded-rectangle 5 5 90 90 7 7) (set-gradient-fill 50 90 1.0 1.0 1.0 0.7 50 20 1.0 1.0 1.0 0.0) (set-line-width 2) (set-rgba-stroke 1.0 1.0 1.0 0.1) (fill-and-stroke) (save-png file)))
(defun star-clipping (file) (with-canvas (:width 200 :height 200) (let ((size 100) (angle 0) (step (* 2 (/ (* pi 2) 5)))) (translate size size) (move-to 0 size) (dotimes (i 5) (setf angle (+ angle step)) (line-to (* (sin angle) size) (* (cos angle) size))) (even-odd-clip-path) (end-path-no-op) (flet ((circle (distance) (set-rgba-fill distance 0 0 (- 1.0 distance)) (centered-circle-path 0 0 (* size distance)) (fill-path))) (loop for i downfrom 1.0 by 0.05 repeat 20 do (circle i))) (save-png file))))
The following symbols are exported from the VECTO package.
with-canvas (&key width height) &body body
Evaluates body with a canvas established with the specified dimensions as the target for drawing commands. The canvas is initially completely clear (all pixels have 0 alpha).
clear-canvas => |
Completely fills the canvas with the current fill color. Any marks on the canvas are cleared.
save-png file => truename
Writes the contents of the canvas as the PNG file, and returns the truename of file.
save-png-stream stream => |
Writes the contents of the canvas as a PNG to stream, which must accept (unsigned-byte 8) data.
Graphics State
The graphics state stores several parameters used for graphic operations.
with-graphics-state &body body
Evaluates the forms of body with a copy of the current graphics state. Any modifications to the state are undone at the end of the form.
set-rgba-fill r g b alpha => |
set-rgb-fill r g b => |
Sets the fill color. r, g, b, and alpha should be in the range of 0.0 to 1.0.
set-rgb-fill is the same as set-rgba-fill with an implicit alpha value of 1.0.
The fill color is used for CLEAR-CANVAS, FILL-PATH, EVEN-ODD-FILL, FILL-AND-STROKE, EVEN-ODD-FILL-AND-STROKE, and DRAW-STRING.
set-gradient-fill x0 y0 r0 g0 b0 a0 x1 y1 r1 g1 b1 a1 &key (extend-start t) (extend-end t) (domain-function 'linear-domain)
Set the fill color source to an axial gradient. The start point is x0,y0 and the start color is r0,g0,b0,a0. The end point is x1, y1 and the end color is r1,g1,b1,a1.
Two domain functions are available:
- LINEAR-DOMAIN, the default, makes a transition from the start color to the end color along the axis between the start and end points
- BILINEAR-DOMAIN makes a transition from the start color to the end color from the start point to the midpoint, then back to the start color from the midpoint to the end point
Two coordinate functions are available:
- CARTESIAN-COORDINATES, the default, creates a linear gradient.
- POLAR-COORDINATES creates a radial gradient with the start point denoting the start of the circle and the end point denoting the ending circle.(defun gradient-example (file) (with-canvas (:width 200 :height 50) (set-gradient-fill 25 0 1 0 0 1 175 0 1 0 0 0) (rectangle 0 0 200 50) (fill-path) (save-png file)))(defun gradient-bilinear-example (file) (with-canvas (:width 200 :height 50) (set-gradient-fill 25 0 1 0 0 1 175 0 1 0 0 0 :domain-function 'bilinear-domain) (rectangle 0 0 200 50) (fill-path) (save-png file)))
set-rgba-stroke r g b alpha => |
set-rgb-stroke r g b => |
Sets the stroke color. r, g, b, and alpha should be in the range of 0.0 to 1.0.
set-rgb-stroke is the same as set-rgba-stroke with an implicit alpha value of 1.0.
The stroke color is used for STROKE, FILL-AND-STROKE, and EVEN-ODD-FILL-AND-STROKE.
set-line-cap style => |
Sets the line cap style to style, which must be one of :BUTT, :SQUARE, or :ROUND. The initial value is :BUTT.
set-line-join style => |
Sets the line join style to style, which must be one of :MITER, :BEVEL, or :ROUND. The initial value is :MITER.
set-line-width width => |
Sets the line width for strokes to width.
set-dash-pattern dash-vector phase => |
Sets the dash pattern according to dash-vector and phase.
dash-vector should be a vector of numbers denoting on and off patterns for a stroke. An empty dash-vector is the same as having no dash pattern at all.
phase is how far along the dash pattern to proceed before applying the pattern to the current stroke.
Appearance Dash Vector and Phase #() 0 #(30 30) 0 #(30 30) 15 #(10 20 10 40) 0 #(10 20 10 40) 13 #(30 30) 0, :ROUND line caps
translate x y => |
Offsets the coordinate system by x units horizontally and y units vertically.
rotate radians => |
Rotates the coordinate system by radians.
scale sx sy => |
Scales the coordinate system by sx horizontally and sy vertically.
skew ax ay => |
Skews the X axis of the coordinate system by ax radians and the Y axis by ay radians.
clip-path => |
Defines a clipping path based on the current path. It is not applied immediately, but is created after after the painting is done in the next call to one of FILL-PATH, EVEN-ODD-FILL, FILL-AND-STROKE, EVEN-ODD-FILL-AND-STROKE, or END-PATH-NO-OP.
The clipping path initially covers the entire canvas; no clipping is done. Subsequent calls to CLIP-PATH set the clipping path to the intersection of the established clipping path and the new clipping path, and all drawing will be done within the outline of the clipping path.
The outline of the clipping path is defined with the nonzero winding rule, as with FILL-PATH.
There is no way to enlarge the clipping path. However, the clipping path is part of the graphics state, so changes may be localized by using WITH-GRAPHICS-STATE.
A filled red rectangle, not clipped The same rectangle drawn with a circle clipping path in effect Clipped to a rounded rectangle clipping path Clipped to the intersection of the circle and rounded rectangle clipping paths
even-odd-clip-path => |
Like CLIP-PATH, but uses the even/odd fill rule to determine the outline of the clipping path.
Paths are used to create lines for stroking or outlines for filling. Paths consist of straight lines and curves. Paths consist of one or more subpaths.
move-to x y => |
Starts a new subpath at (x,y). move-to must be the first step of constructing a subpath.
line-to x y => |
Appends a straight line ending at (x,y) to the current subpath.
curve-to cx1 cy1 cx2 cy2 x y => |
Appends a cubic Bézier curve ending at (x,y) and with control points (cx1,cy1) and (cx2,cy2) to the current subpath.
quadratic-to cx cy x y => |
Appends a quadratic Bézier curve ending at (x,y) and with the control point (cx,cy) to the current subpath.
arc x y radius angle1 angle2 => |
Appends an arc of a circle to the current path. The center of the arc is at (x,y). The arc begins at point at a distance radius from the center and with an angle angle1 radians from the positive x axis, and ends at the point with angle2 radians. If angle2 is less than angle1, it is increased by increasing multiples of 2π until it is greater than or equal to angle1.
radius, angle1, angle2
If there is a current point, a straight line is added from the current point to the start point of the arc. Otherwise, a new path is started.(defun pie-wedge (file) (with-canvas (:width 80 :height 60) (let ((x 0) (y 0) (radius 70) (angle1 (* (/ pi 180) 15)) (angle2 (* (/ pi 180) 45))) (translate 5 5) (set-rgb-fill 1 1 1) (move-to 0 0) (arc x y radius angle1 angle2) (fill-and-stroke) (save-png file))))
arcn x y radius angle1 angle2 => |
Like ARC, but draws the arc clockwise instead of counterclockwise. If angle2 is greater than angle1, it is decreased by increasing multiples of 2π until it is less than or equal to angle1.(defun wiper (file) (with-canvas (:width 70 :height 70) (let ((x 0) (y 0) (r1 40) (r2 60) (angle1 0) (angle2 (* (/ pi 180) 90))) (translate 5 5) (set-rgba-fill 1 1 1 0.75) (arc x y r1 angle1 angle2) (arcn x y r2 angle2 angle1) (fill-and-stroke) (save-png file))))
ellipse-arc cx cy radius-x radius-y rotation-angle angle1 angle2 => |
Like ARC, but draws an arc from an ellipse. The arc is drawn counterclockwise.
ellipse-arcn cx cy radius-x radius-y rotation-angle angle1 angle2 => |
Like ELLIPSE-ARCN, but draws the arc clockwise.
close-subpath => |
Closes the current subpath. If the current point is not the same as the starting point for the subpath, appends a straight line from the current point to the starting point of the current subpath.
Subpaths with start and end points that coincidentally overlap are not the same as closed subpaths. The distinction is important when stroking:
Open subpath Closed subpath
If the subpath is not closed, the start and points of the subpath will be drawn with the current line cap style. If the path is closed, the start and endpoints will be treated as joined and drawn with the line join style.
stroke-to-paths => |
Sets the current active paths to the paths that would result from outlining a STROKE operation.
rectangle x y width height => |
Creates a rectangular subpath with the given width and height that has its lower-left corner at (x,y). It is effectively the same as:(move-to x y) (line-to (+ x width) y) (line-to (+ x width) (+ y height)) (line-to x (+ y height)) (close-subpath)
rounded-rectangle x y width height rx ry => |
Like RECTANGLE, but rounds the corners of the rectangle paths by the x radius rx and the y radius ry.
centered-ellipse-path x y rx ry
Adds a closed subpath that outlines an ellipse centered at (x,y) with an X radius of rx and a Y radius of ry.
centered-circle-path x y radius => |
Adds a closed subpath that outlines a circle centered at (x,y) with a radius of radius. It is effectively the same as:(centered-ellipse-path x y radius radius)
After a path is defined, filling, stroking, or both will use the path to apply color to the canvas. After a path has been filled or stroked, it is no longer active; it effectively disappears.
fill-path => |
Fills the current path with the fill color or gradient. If the path has not been explicitly closed with CLOSE-SUBPATH, it is implicitly closed before filling. The non-zero winding rule is used to determine what areas are considered inside the path.
even-odd-fill => |
The same as FILL-PATH, but uses the even/odd rule to determine what areas are considered inside the path.
stroke => |
Strokes the current path. The line width, stroke color, line join style, line cap style, and dash pattern and phase determine how the stroked path will appear on the canvas.
fill-and-stroke => |
Fills the current path, then strokes it.
even-odd-fill-and-stroke => |
Fills the current path using the even/odd rule, then strokes it.
end-path-no-op => |
Ends the current path without painting anything. If a clipping path has been specified with CLIP-PATH or EVEN-ODD-CLIP-PATH, it will be created by end-path-no-op.
Vecto can draw text to a canvas. It loads glyph shapes from TrueType font files with ZPB-TTF.
get-font font-file => font-loader
Creates and returns a ZPB-TTF font loader object from font-file. Any font loader created this way will automatically be closed at the end of its enclosing WITH-CANVAS form.
set-font font-loader size => |
Sets the active font to the font associated with font-loader, scaled to size units per line.
The first argument can be any ZPB-TTF font loader; it need not be created via GET-FONT. However, only font loaders created via GET-FONT will be automatically closed at the end of WITH-CANVAS.
set-character-spacing spacing => |
Sets the scale of the spacing used between characters when drawing text with DRAW-STRING and related functions.
Normally, the character spacing for drawing text is taken directly from a font's advance-width and kerning metrics. SET-CHARACTER-SPACING can be used to adjust this spacing; for example, a character spacing of 2.0d0 would double the normal space between characters, and 0.5d0 would halve it.
[Special variable]
The default scale for character spacing when drawing text with DRAW-STRING and related functions. Initial value is 1.0d0.
Changes to this variable affect the next WITH-CANVAS form. To affect the spacing within the current WITH-CANVAS form, use SET-CHARACTER-SPACING.
draw-string x y string => |
Draws string on the canvas with the active font. The glyph origin of the first character in the string is positioned at x and the baseline of the string is positioned at y. The text is filled with the current fill color.
The string may be a specialized vector of characters (a true CL string) or a vector containing characters, Unicode code-points, or both. For example, #(#\L #\a #\m #\b #\d #\a #\= #x3BB) is a valid argument for DRAW-STRING.
The horizontal space between characters is determined by the advance-width and kerning metrics of the font, then multiplied by the current character spacing. At the default character spacing of 1.0d0, the spacing is not adjusted at all. SET-CHARACTER-SPACING can be used to increase or decrease the character spacing.
string-paths x y string => |
Like DRAW-STRING, but instead of drawing the text, adds the subpaths that make up the string glyphs to the graphics state. This can be used to stroke, fill, or clip based on the outlines of a string.
draw-centered-string x y string => |
Draws string on the canvas with the active font. The horizontal center of the string is positioned at x and the baseline of the string is positioned at y.
centered-string-paths x y string => |
Like DRAW-CENTERED-STRING, but adds subpaths instead of painting. See also STRING-PATHS.
string-bounding-box string size loader => #(xmin ymin xmax ymax)
Calculates the bounding box of string for font-loader at size.
+kappa+ => 0.5522847498307936d0.
This constant is useful to draw portions of a circle.
- Adobe Systems Inc., PDF Reference, Sixth Edition, Version 1.7
- Lawrence Kesteloot, Alpha Premultiplication
- Dr. Thomas Sederberg, Bézier curves
- Alvy Ray Smith, Image Compositing Fundamentals
- G. Adam Stanislav, Drawing a circle with Bézier curves
- Alexander Thomas, The Inverse and Determinants of 2x2 and 3x3 Matrices
- Wikipedia, Bézier curve
Many thanks to Ben Deane for permission to adapt code from his curve library for drawing arcs.
Ryan Davis helped fix my adaptation of the arc drawing.
If you have any questions, comments, bug reports, or other feedback regarding Vecto, please email Zach Beane.


text:
Continue Shopping
Honeycomb Color Stretch Color Cap Spoon by Pat Taylor
Colors are assorted - no guarantee to picture. If you have a color preference, please email firstname.lastname@example.com before you place your order or we will choose for you based upon availability.
Must be 21+ to purchase.
If you purchase this item, there will be an Adult Signature Required on your shipment. If you decline your shipment, we will NOT refund shipping charges.
335 Main Street,
Racine, WI 53403
(262) 633-1420


text: Prepare for a rainy day with Women's Rubber Boots & Rain Boots from Sportsman's Guide. We offer a variety of colors, patterns, styles, and brands that are sure to look great and keep you dry. Some of our best selling patterns include camouflage and pink. Browse through trusted brands that you trust. These quality rubber boots are sure to keep your feet dry even on the rainiest days of the season.


text:
Virtual CAO Guidance
Book a Virtual CAO Guidance Appointment
AIT offers guidance and support throughout the CAO decision-making process. Prospective students, parents and guardians are encouraged to book in for a free 30-minute session (via Zoom or telephone) with a member of the #AskAIT team. This is an opportunity to ask questions about courses, supports, scholarships, accommodation and lots more. Click the link below to book an appointment. For more information, please email firstname.lastname@example.com or contact us on +353 (86) 0755434.


text:
Shell's role in the race
Shell's Track Lab team is trackside for every race, sampling and testing the fuels and lubricants throughout race weekend. The adrenalin flows trackside as we help power the team to success.
The buzz of the lab
F1 is all about adrenalin. It's everywhere. Including the laboratory. More specifically the Shell Track Lab - a mobile, trackside lab that houses the Shell analysts during each Grand Prix. It's here they work tirelessly with the Scuderia Ferrari engineers, developing the world class fuels and engine oils that power Ferrari's F1 cars.
They're integral to the Scuderia Ferrari team. So we caught up with them to find out how they deal with the pressure.
"To be in this team you have to be passionate. If you're not, the demands combined with the expectations and workload will catch up with you." That's Guy Lovett, Trackside and Logistics Manager, who (along with his team) is responsible for testing the fuels and engine oils for each race.
A good fuel will give the car's engine the power it needs to compete, while the oils (or lubes as they're known) help keep the engine clean and efficient. The Track Lab team takes samples of the fuel and oil throughout race weekend and tests them to provide reports for the Ferrari engineers. As a result of this testing the Ferrari engineers can tell from the metallurgic samples in the oil what part of the car needs attention. That's what makes the Shell samples and analysis so invaluable.
Dan Jamieson explains the sheer intensity of the task at hand. "On any given race weekend the team can conduct up to 40 tests for the Ferrari engineers. If there's a problem trackside, the knock on effect will impact the Ferrari engineers which, of course, then impacts Ferrari's overall performance. That's where the pressure comes in. We don't want to let the team down."
The line between success and failure is incredibly fine in F1. That's why the Shell Fuel Development team works all year round to refine its products. As Drew explains:
"The improvements we're looking to make are minimal - but hugely significant. With each blend we're looking for better results, however small. The difference between 1 or 2 horsepower could be as much as 12 metres. That gain could make all the difference by the end of the race."
But before the team can work on the fuel they have to make sure the kit arrives at the track in full working order. "That's not as easy as it sounds," Dan laughs.
At this, Alan Wardle and Louise Coppack (fellow trackside analysts) smile. "At Spa we had a set up that, instead of the usual 4 hours, took 12 hours. Certain pieces of kit failed, we had power supply problems – even the spare kit didn't work. Whatever could go wrong…did. You have to think on your feet, come up with solutions, have contingency plans – it's a pressure but it's part of the job."
"Failure is not an option," says Dan, causing the whole team to nod in agreement. "The pressure is intense – especially when it comes to fly-aways (races outside of Europe). We don't know what we're going to find on the other side sometimes. We've learnt to expect the unexpected."
But the whole team is adamant that's a small price to pay for being part of motorsport's most iconic institution.
Ian Albiston is the trackside and logistics manager. "We're made to feel a massive part of the Ferrari family. I'll never forget Japan 2003 when Schumacher won the title - I didn't sleep night before. There was so much apprehension. The race itself was torture. We got there in the end but it was a really tough race. But then what a night!"
Mark Wakem (Project leader Lubes) and Mike Evans (Project leader Fuels) are responsible for product development in the build up to each race. It's a demanding job but when they get it right, there's no better feeling.
"Ferrari's Team Principal," Mark reveals, "personally thanked Shell for the process and delivery of the new fuel in Spain. Even the drivers thanked us. It's great just being part of the team and having our work acknowledged. We know that a team is only as strong as its weakest link. That's why we strive to develop better products all year round."
Mike agrees and says that it's not uncommon to hear analysis of the fuel mix in the media nowadays. "The 2014 regulations have put greater emphasis on our work. We heard David Coulthard talk about the Shell oil analysis recently. It shows how integral we are to the process. It's such a rewarding job."
With the recent change in regulations, the fuel and oil mix has never been a bigger part of the equation. It's just as well that this team is up to the challenge.
More in Motorists
Shell's technical partnership with Ferrari
Learn about the remarkable moments and celebrated victories in the history of Shell's technical partnership with Ferrari.
From racetrack to roadside
Discover how the technological advances that power Scuderia Ferrari Formula 1 cars find their way into your vehicle via Shell V-Power and Shell Helix.


text:
EU citizens working in one country but living across the border are at the heart of an EU-funded project called SSCALA, on the coordination of social security systems in the France-Belgium-Luxembourg-Germany border regions.
Keyina Mpeye, responsible for designing the project at the Belgian Social Security Agency FPS, explains.
What is the aim of this project?
SSCALA stands for Social Security Coordination: Activating Local Actors… But "scala" is also the Latin word for stairs! It reflects the main feature of the project, which is feedback rising from the bottom to the top. In the face of a very complex EU regulatory framework, this project indeed aims to better listen to the practitioners on the ground and to the citizens, in order to involve them more in the policy process. To start with, we decided to look at the sickness benefits of cross-border workers living in the France-Belgium-Luxembourg-Germany border areas.
Concretely, what are the main actions you carry out?
An information brochure has been drawn up, explaining the cross-border social security rights of cross-border workers. A satisfaction survey will be launched soon, in order to receive feedback on how the current rules are perceived by the target population, the difficulties experienced, the expected improvements… The outcome of this survey will be brought to the attention of the policy makers. This information process will be supported by a media campaign (radio spots, Internet animations), raising awareness of the target audience in a fun way. At the institutional level, we created a structured network, supported by an e-workspace, which allows experts from all the countries involved to exchange experiences. The idea is to directly connect the field actors to the national and EU policy makers, allowing them to submit feedback and improvement proposals. Finally, the outcome of this experience will be fed into a European conference, which aims to spread good practices and to capitalise on the lessons learned.
What are the benefits you expect?
Our ambition is to develop an innovative model of cooperation between institutions, better relying on the capacity of the field practitioners to address the legal issues raised by the EU regulations, with concrete and practical solutions. We hope that this project will demonstrate the interest to further develop this kind of user-oriented initiatives, closer to the daily reality experienced by the practitioners and the European citizens.


text:
Linux kernel version 2.6.26 Released 13 July 2008 (full SCM git log)
Summary: 2.6.26 adds support for read-only bind mounts, x86 PAT (Page Attribute Tables), PCI Express ASPM (Active State Power Management), ports of KVM to IA64, S390 and PPC, other KVM improvements including basic paravirtualization support, preliminary support of the future 802.11s wireless mesh standard, much improved webcam support thanks to a driver for UVC devices, a built-in memory tester, a kernel debugger, BDI statistics and parameters exposure in /sys/class/bdi, a new /proc/PID/mountinfo file for more accurate information about mounts, per-process securebits, device white-list for containers users, support for the OLPC, some new drivers and many small improvements
- Important features (AKA: the cool stuff)
- Subsystems
- Architecture-specific changes
- Drivers
1. Important features (AKA: the cool stuff)
1.1. Read-only bind mounts
Recommended LWN article: "Read-only bind mounts"
Since 2.4.0 Linux has supported bind mounts. Bind mounts are a sort of directory symlinks that allow to share the contents of a directory in two different paths. For example, "mount --bind /foo /bar" will "bind" the contents of /foo not only to /foo, but also /bar. IOW, /foo and /bar would have the same content - and any modification in one directory is visible in the other. This has been useful for things like chroots or ftp/webservers, but until now, if /foo was writable, there was no way to stop /bar from being also writable.
In Linux 2.6.26, you can make those bind mounts read-only. If we made the bind mount in the previous example read-only, the contents of /foo would show up in /bar - but an application trying to modify a file in /bar will not be able to do it (/foo could continue being writable, of course). This has a number of uses. It allows chroots to have parts of filesystems writable. It's useful for containers because users may have root inside a container, but should not be allowed to write to some filesystems. It allows security enhancement by making sure that parts of your filesystem read-only (such as when you don't trust your FTP server), when you don't want to have entire new filesystems mounted, or when you want atime selectively updated.
(The current implementation does not allow to make a bind mount directly read-only: you need to make the bind mount first - mount --bind /foo /bar - and then remount the bind as ro - mount -o remount,ro /bar)
Code: commit 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22
1.2. KVM ported to IA64, PPC and S390
KVM, the virtualization solution included in Linux 2.6.20, has been rearchitected to give support to architectures other than x86: IA64 (Itanium), S390 and PPC
S390: (commit 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
IA64: (commit 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
PowerPC 440: (commit)
1.3. Improved webcam support
2.6.26 includes a driver that supports video input devices compliant with the USB Video Class specification. This means lots of currently manufactured webcams, and probably most of the future ones (commit)
1.4. Wireless mesh networking (802.11s) draft support
A year ago, in Linux 2.6.22, Linux included a new wireless stack. In 2.6.26 that stack is adding support for the draft of wireless mesh networking (802.11s), thanks to the open80211s project
Code: (commit 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
1.5. x86 PAT support
PAT (Page Attribute Table) is a feature found in x86 processors that allows for setting the memory attribute at the page level granularity. PAT is complementary to the MTRR settings which allows for setting of memory types over physical address ranges. However, PAT is more flexible than MTRR due to its capability to set attributes at page level and also due to the fact that there are no hardware limitations on number of such attribute settings allowed. It's not a very new feature: the Linux support for this has been in the works for a long time: the current patches are evolved from ones started in 2006, and there're traces of preliminary patches in 2001. Probably because it's not a critical feature and MTRRs did the job.
Documentation (commit) Code: (commit)
1.6. Per-process securebits
Recommended LWN article: "Per-process securebits"
Filesystem capability support makes it possible to do away with (set)uid-0 based privilege and use capabilities instead. That is, with filesystem support for capabilities but without this present feature, it is (conceptually) possible to manage a system with capabilities alone and never need to obtain privilege via (set)uid-0. Of course, conceptually isn't quite the same as currently possible since few user applications, certainly not enough to run a viable system, are currently prepared to leverage capabilities to exercise privilege. Further, many applications exist that may never get upgraded in this way, and the kernel will continue to want to support their setuid-0 base privilege needs. Where pure-capability applications evolve and replace setuid-0 binaries, it is desirable that there be a mechanisms by which they can contain their privilege. In addition to leveraging the per-process bounding and inheritable sets, this should include suppressing the privilege of the uid-0 superuser from the process' tree of children. The feature added in 2.6.26 can be leveraged to suppress the privilege associated with (set)uid-0. This suppression requires CAP_SETPCAP to initiate, and only immediately affects the 'current' process (it is inherited through fork()/exec()). This reimplementation differs significantly from the historical support for securebits which was system-wide, unwieldy and which has ultimately withered to a dead relic in the source of the modern kernel.
Code: (commit)
For many years Linux has not included a kernel debugger. Linus Torvalds vetoed them for years, for reasons that he explained quite well in a known email: "When things crash and you fsck and you didn't even get a clue about what went wrong, you get frustrated. Tough. There are two kinds of reactions to that: you start being careful, or you start whining about a kernel debugger [...] I happen to believe that not having a kernel debugger forces people to think about their problem on a different level than with a debugger. I think that without a debugger, you don't get into that mindset where you know how it behaves, and then you fix it from there. Without a debugger, you tend to think about problems another way. You want to understand things on a different _level_."
Despite of those objections, many people wanted a debugger and KGDB is finally going in. It's a remote debugger, it needs two machines. x86 and sparc machines are supported
Code: (commit 1, 2, 3, 4, 5, 6, 7, 8)
1.8. Device whitelist on cgroups
Recommended LWN article: "Device whitelist on cgroups"
This feature implements a functionality wanted by some virtualization users: The ability to control the access to devices in a per-container basis. A cgroup is used to track and enforce open and mknod restrictions on device files. More details can be found in the commit link.
Code: (commit)
1.9. Memtest
Memtest is a commonly used tool for checking your memory. In 2.6.26 Linux is including his own in-kernel memory tester. The goal is not to replace memtest, in fact this tester is much simpler and less capable than memtest, but it's handy to have a built-in memory tester on every kernel. It's enabled easily with the "memtest" boot parameter.
1.10. Export BDI attributes in sysfs
Linux 2.6.24 merged per-device dirty thresholds: The limits that the kernel put to the amount of memory that a process can "dirty" changed from being global to be per-device. 2.6.26 exposes a interface in /sys/class/bdi that allow to set several parameters. There's another set of read-only parameters that are exposet in debugfs (debug/bdi/<bdi>/stats)
Code: (commit 1, 2, 3, 4, 5, 6)
1.11. /proc/pid/mountinfo
The work being done these days in the VFS like per-process namespaces and such is obsoleting some things, like /proc/mounts (which is always a link to /proc/self/mounts). In its current form lacks important information and suffers some problems (see the code link). 2.6.26 introduces /proc/PID/mountinfo which addresses these deficiencies. Information about the information that can be found on these new files is explained in the commit links.
Code: (commit 1, 2, 3, 4, 5, 6, 7)
1.12. Generic semaphores
Since the introduction of mutexes, semaphores are no longer performance-critical, so the architecture-specific (and often asm-handcoded) implementation -that was needed when semaphores were really important for performance- has been reemplaced by a generic one written in C for maintainability, debuggability and extensibility. It removes 7365 LoC
Code: (commit)
2. Subsystems
2.1. Various
- CPU scheduler
- Core
ipc: implement sys_unshare(CLONE_SYSVSEM) (commit), refuse clone(CLONE_SYSVSEM|CLONE_NEWIPC) (commit), force unshare(CLONE_SYSVSEM) when CLONE_NEWIPC (commit)
Removal of FUTEX_FD (commit)
Infrastructure to debug (dynamic) objects (commit), (commit)
make /dev/kmem a config option (commit)
sysrq: add show-backtrace-on-all-cpus function (commit)
sysfs: Allow removal of symlinks in the sysfs root (commit)
quota: quota core changes for quotaon on remount (commit)
ptrace: permit ptracing of /sbin/init (commit)
consoles: polling support, kgdboc (commit)
UIO: Implement a UIO interface for the SMX Cryptengine (commit)
- Memory management
fuse: support writable mmap (commit), implement perform_write. With fusexmp (a passthrough filesystem), large (1MB) writes into a backing tmpfs filesystem are sped up by almost 4 times (256MB/s vs 71MB/s). But it's disabled by default. (commit), (commit)
mempolicy: use MPOL_PREFERRED for system-wide default policy (commit), use MPOL_F_LOCAL to Indicate Preferred Local Policy (commit), support mpol=local tmpfs mount option (commit)
vmalloc: show vmalloced areas via /proc/vmallocinfo (commit), (commit)
slub: Make the order configurable for each slab cache (commit)
smaps: account swap entries (commit)
xip: support non-struct page backed memory (commit)
Cpuset hardwall flag: add a mem_hardwall flag to cpusets (commit)
- Block
cfq-iosched: make io priorities inherit CPU scheduling class as well as nice (commit)
brd: modify ramdisk device to be able to manage partitions (commit)
loop: manage partitions in disk image (commit)
block: add large command support (commit)
NBD: allow nbd to be used locally (commit), add partition support (commit)
udf: Add read-only support for 2.50 UDF media (commit)
2.2. Filesystems
Barriers on by default (WARNING: It hurts performance to provide reliability that many people doesn't need. IOW: if you plan to benchmark ext4, try as well with barriers turned off) (commit)
Enable extent format for symlinks. (commit)
fdatasync should skip metadata writeout when overwriting (commit)
fdatasync should skip metadata writeout when overwriting (commit)
- eCryptfs
IPv6 support for NFS server export caches (commit)
2.3. Networking
- wireless
mac80211: Support more HT (802.11n) features (commit 1, 2, 3, 4, 5, 6, 7, 8, 9)
mac80211: allow WDS mode (commit), allows driver to request a Phase 1 RX key (commit), use monitor configuration flags (commit), add cooked monitor mode support (commit), allow sending multicast frames through virtual ports (commit), enable IBSS merging (commit)
cfg80211 API for channels/bitrates, mac80211 and driver conversion (commit),
nl80211: export hardware bitrate/channel capabilities (commit), nl80211: Add monitor interface configuration flags (commit),
TCP cubic v2.2 (commit)
Netlink: Use generic LSM hook (commit)
Add compat support for getsockopt (MCAST_MSFILTER) (commit)
Syncookies: Add support for TCP options via timestamps. (commit)
2.4. Crypto
sha512: Hardware acceleration for s390 (commit)
sha384: Hardware acceleration for s390 (commit)
cts: Add CTS mode required for Kerberos AES support (commit)
Make the crypto subsystem fully modular (commit)
keys: add keyctl function to get a security label (commit)
keys: make the keyring quotas controllable through /proc/sys (commit)
2.5. Security
Introduce security= boot parameter (commit)
- Audit:
- SELinux
Add trace markers. Trace markers allow userspace to trace execution of a virtual machine in order to monitor its performance (commit), (commit)
paravirtualized clocksource: host part (commit), paravirtualized clocksource: guest part (commit)
VMX: Enable MSR Bitmap feature (commit), enable Virtual Processor Identification (VPID) (commit), EPT Feature Detection (commit), enable EPT feature for KVM (commit)
SVM: add detection of Nested Paging feature (commit), enable LBR virtualization (commit), add support for Nested Paging (commit)
Add TDP support to the KVM MMU (commit)
Increase vcpu count to 16 (commit)
Increase the number of user memory slots per vm (commit)
In kernel PIT model (commit)
x86: hardware task switching support (commit)
3. Architecture-specific changes
- x86
Lazy allocation of FPU struct: Only allocate the FPU area when the application actually uses FPU, i.e., in the first lazy FPU trap. This saves memory for non-fpu using apps. For example: on a test system after boot, there are around 300 processes, with only 17 using FPU.(commit), (commit)
Add One Laptop Per Child architecture support (commit)
Support for new UV apic (commit), (commit), (commit), (commit), (commit)
Allow gcc to optimize the kernel image's size by uninlining functions that have been marked 'inline' (commit), (commit)
Use ELF format in compressed images (commit)
Increase max physical memory size of 64-bit from 40 to 44 bit, in preparation for future chips that support larger physical memory sizes (commit)
Do kernel direct mapping at boot using GB pages (commit)
Add gbpages switches (commit)
Validation of the MMCONFIG table against the ACPI reserved motherboard resourcesvalidate against acpi motherboard resources (commit)
Add pci=check_enable_amd_mmconf and dmi check (commit)
x86_64: check and enable MMCONFIG for AMD Family 10h (commit), (commit)
Enable ACPI extended century handling for 32bit (commit)
Add support for nodes spanning other nodes (ACPI SRAT) (commit)
Increase the kernel text limit to 512 MB (commit)
Add code to dump the kernel page tables for visual inspection by kernel developers (commit)
apic: extended interrupt LVT support for AMD (commit)
rdc321x: remove watchdog file (commit)
Enhance DEBUG_RODATA support for hotplug and kprobes (commit) and alternatives (commit)
Centaur Isaiah processor to use sysenter in 64-bit compatibility mode rather than syscall (commit)
Move suspend wakeup code to C (commit)
x86: add prctl commands PR_GET_TSC and PR_SET_TSC (commit), (commit)
x86: introduce /dev/mem restrictions with a config option (commit)
Add IRQSTACKS support on ppc32 (commit)
Stacktrace support for lockdep (commit)
irqtrace support for 64-bit powerpc (commit)
Add fast little-endian switch system call (commit)
Hypervisor-assisted Dump: The goal of hypervisor-assisted dump is to enable the dump of a crashed system, and to do so from a fully-reset system, and to minimize the total elapsed time until the system is back in production use. As compared to kdump or other strategies, hypervisor-assisted dump offers several strong, practical advantages, see more details in the links (commit), (commit), (commit), (commit), (commit), (commit), (commit), (commit), (commit), (commit)
4xx: Add 460EX PCIe support to 4xx pci driver (commit), add AMCC Canyonlands 460EX eval board support to platforms/44x (commit), add platform support for the AMCC Yosemite board (commit), add PPC4xx L2-cache support (440GX) (commit)
PS3: Sys-manager Wake-on-LAN support (commit), Gelic network driver Wake-on-LAN support (commit)
85xx: Emerson KSI8560 base support (commit), add support for relocatable kernel (and booting at non-zero) (commit)
86xx: Add support for Wind River SBC8641D board (commit), mpc8610_hpcd: add support for PCI Express x8 slot (commit)
bootwrapper: Add a firmware-independent simpleboot target. (commit)
celleb: Add support for PCI Express (commit)
Xilinx: boot support for Xilinx uart 16550. (commit), of_serial support for Xilinx uart 16550. (commit)
Add DIU platform code for MPC8610HPCD (commit)
mpc5200: add Phytec pcm030 board support (commit)
Hotplug memory remove notifications for powerpc (commit)
Update lmb data structures for hotplug memory add/remove (commit)
Remove mpc8272 ads (commit) and mpc885ads and mpc86x ads boards (commit) from arch/ppc, since there's a port in arch/powerpc
Make PowerPC LMB code generic so sparc64 can use it too (commit)
Add initial sparsemem support (commit)
SAM9/CAP9 memory controller header (commit), SAM9/CAP9 system shutdown (commit), SAM9/CAP9 basic power-management (commit), SAM9/CAP9 reset reason (commit), add KB9260 (CAM60) board support (commit), add Olimex SAM9-L9260 board support (commit), add emQbit ECB_AT91 board support (commit), add SAM9 ClockSource / ClockEvents (commit)
Pass ECC controller to NAND driver (commit)
Adds support for YL9200 board (commit)
sa1100: add clock event support (commit)
ARMv7: Add support for the ThumbEE state saving/restoring (commit)
Add support for the CLK_POUT pin on PXA3xx CPUs (commit)
pxa: add keypad support for zylonite (commit) and for the littleton (commit)
Adds flash, udc, mci support for gumstix F boards (commit)
magician: enable external power supply (pda_power) driver (commit), enable flash VPP GPIO and build in MTD, physmap-flash and JFFS2 (commit), enable MMC support (commit), add LCD detection, LCD power switching, update pxafb settings (commit)
Add GPIO lib support to the EP93xx (commit)
Orion: Support the Buffalo Linkstation Pro/Live Platform (commit)
OMAP2: Add common clock framework for 24xx and 34xx (commit), add 34xx clock code (commit), new DPLL clock framework (commit), add 34xx clocks (commit)
Added cpufreq support for pxa27x CPU (commit)
Linux Thumb-2 support for user-space applications (commit)
Realview platform support (commit), (commit), (commit), (commit), (commit), (commit), (commit), (commit), (commit), (commit)
ns9xxx: prepare for adding support for Digi ns921x processors (commit)
atmel_tc library (commit), clocksource/clockevent code (commit)
VIRT_CPU_ACCOUNTING (accurate cpu time accounting) (commit)
regset: 64-bit support (commit)
regset: 32-bit support (commit)
Multiple outstanding ptc.g instruction support (commit)
Kernel parameter for max number of concurrent global TLB purges (commit)
kprobes: kprobe-booster for ia64 (commit)
SGI Altix mmtimer: allow larger number of timers per node (commit)
Convert to SPARSEMEM & SPARSEMEM_VMEMMAP (commit)
System z large page support. (commit)
Guest page hinting_ Notification of unused pages to the hypervisor (commit)
Convert s390 to GENERIC_CLOCKEVENTS. (commit)
Vertical cpu management. (commit)
cpu topology support for s390. (commit)
zcrypt: add support for large random numbers (commit)
qdio (new feature): enhancing info-retrieval from QDIO-adapters (commit)
Add support for SH7723 CPU subtype. (commit)
Add support for Solution Engine SH7721 board (commit)
Initial support for the MX-G CPU. (commit)
Add rs5c732b RTC support to MigoR (commit)
Remove the broken SH_MPC1211 support (commit)
- Blackfin
Generic time and clock sources (commit)
Support for CPU_FREQ and NOHZ (commit)
EMAC Driver: Initial version of ethtool support (commit)
Blackfin char driver for Blackfin on-chip OTP memory (v3) (commit)
Blackfin serial driver: this driver enable SPORTs on Blackfin emulate UART (commit)
Add Blackfin on-chip SIR IrDA driver support (commit)
Add CPU and platform voltage scaling support (commit)
- m68knommu
Add WilFire and WildfireMod board support (commit)
Generic clockevents support (commit)
4. Drivers
Add warm-plug support for IDE devices (commit)
Mark "idebus=" kernel parameter as obsoleted (take 2) (commit)
Remove ide=reverse IDE core (commit)
Add "vlb|pci_clock=" parameter (commit)
Add "noacpi" / "acpigtf" / "acpionboot" parameters (commit)
Add "cdrom=" and "chs=" parameters (commit)
Add "nodma|noflush|noprobe|nowerr=" parameters (commit)
Add Intel SCH PATA driver (commit)
Add ide-4drives host driver (take 3) (commit)
gayle: add "doubler" parameter (commit)
Remove the broken ETRAX_IDE driver (commit)
sata_inic162x: add cardbus support (commit)
libata: prefer hardreset (commit)
ata: SWNCQ should be enabled by default (commit)
Make SFF support optional (commit)
libata: make PMP support optional (commit)
sata_mv: disable hotplug for now (commit), enable NCQ on SOC (commit), add basic port multiplier support (commit)
sata_fsl: Fix broken driver, add port multiplier (PMP) support (commit)
4.2. Networking
ssb: add a new Gigabit Ethernet driver to the ssb core (commit)
Add new ctcm driver that reemplaces the old ctc one (commit), (commit)
New driver "sfc" for Solarstorm SFC4000 controller. (commit)
Driver for IXP4xx built-in Ethernet ports (commit)
Add support the Korina (IDT RC32434) Ethernet MAC (commit)
iwlwifi: Support the HT (802.11n) improvements (commit), (commit), (commit), (commit), add default WEP key host command (commit), add 1X HW WEP support (commit), add default WEP HW encryption (commit), use HW acceleration decryption by default (commit), hook iwlwifi with Linux rfkill (commit), add TX/RX statistics to driver (commit), add debugfs to iwl core (commit), enables HW TKIP encryption (commit), add led support (commit), enables RX TKIP decryption in HW (commit), remove IWL{4965,3945}_QOS (commit)
ath5k: Add RF2413 srev values (commit), add RF2413 initial settings (commit), identify RF2413 and deal with PHY_SPENDING (commit), more RF2413 stuff (commit), port to new bitrate/channel API (commit), use software encryption for now (commit)
pasemi_mac: jumbo frame support (commit), enable GSO by default (commit), basic ethtool support (commit), netpoll support (commit)
rt2x00: Add per-interface structure (commit), enable master and adhoc mode again (commit), enable LED class support for rt2500usb/rt73usb (commit)
e1000e: Add interrupt moderation run-time ethtool interface (commit), add support for BM PHYs on ICH9 (commit)
niu: Add support for Neptune FEM/NEM cards for C10 server blades (commit), add Support for Sun ATCA Blade Server. (commit)
gianfar: Support NAPI for TX Frames (commit)
ehea: Add DLPAR memory remove support (commit)
sfc: Add TSO support (commit)
b43: Add QOS support (commit), add HostFlags HI support (commit), use SSB block-I/O to do PIO (commit)
S2io: Multiqueue network device support implementation (commit), (commit), enable multi ring support (commit), added napi support when MSIX is enabled. (commit)
ixgbe: Introduce MSI-X queue vector code (commit), introduce Multiqueue TX (commit), add optional DCA infrastructure (commit), introduce adaptive interrupt moderation (commit)
uli526x: add support for netpoll (commit)
zd1211rw: support for mesh interface and beaconing (commit)
libertas: implement SSID scanning for SIOCSIWSCAN (commit)
ethtool: Add support for large eeproms (commit)
The scheduled bcm43xx removal (commit)
The scheduled ieee80211 softmac removal (commit)
The scheduled rc80211-simple.c removal (commit)
Remove obsolete driver sk98lin (commit)
Remove the obsolete xircom_tulip_cb driver (commit)
4.3. Graphics
intel_agp: Add support for Intel 4 series chipsets (commit)
i915: Add support for Intel series 4 chipsets (commit)
Add support for Radeon Mobility 9000 chipset (commit)
fb: add support for foreign endianness (commit)
pxafb: preliminary smart panel interface support (commit), (commit)
Driver for Freescale 8610 and 5121 DIU (commit)
intelfb: add support for the Intel Integrated Graphics Controller 965G/965GM (commit)
Add support for Blackfin/Linux logo for framebuffer console (commit)
4.4. Sound
hda-codec - Allow multiple SPDIF devices (commit), add SI HDMI codec support (commit), add support for the OQO Model 2 (commit), add support of Zepto laptops (commit), support RV7xx HDMI Audio (commit), add model=mobile for AD1884A & co (commit), add support of AD1883/1884A/1984A/1984B (commit), add model for cx20549 to support laptop HP530 (commit), add model for alc883 to support FUJITSU Pi2515 (commit), add support for Toshiba Equium L30 (commit), Map 3stack-6ch-dig ALC662 model for Asus P5GC-MX (commit), support of Lenovo Thinkpad X300 (commit), add Quanta IL1 ALC267 model (commit), add support of AD1989A/AD1989B (commit), add model for alc262 to support Lenovo 3000 (commit), add model for ASUS P5K-E/WIFI-AP (commit), added support for Foxconn P35AX-S mainboard (commit), add drivers for the Texas Instruments OMAP processors (commit), add support of Medion RIM 2150 (commit), support IDT 92HD206 codec (commit)
ice1724 - Enable AK4114 support for Audiophile192 (commit)
ice1712: Added support for Delta1010E (newer revisions of Delta1010) (commit), added support for M-Audio Delta 66E (commit), add Terrasoniq TS88 support (commit)
Davinci ASoC support (commit)
intel8x0 - Add support of 8 channel sound (commit)
ASoC: WM9713 driver (commit)
Emagic Audiowerk 2 ALSA driver. (commit)
Add PC-speaker sound driver (commit)
oxygen: add monitor controls (commit)
virtuoso: add Xonar DX support (commit)
soc - Support PXA3xx AC97 (commit)
pxa2xx-ac97: Support PXA3xx AC97 (commit)
4.5. Input
Add support for WM97xx family touchscreens (commit)
WM97xx - add chip driver for WM9705 touchscreen (commit), add chip driver for WM9712 touchscreen (commit), add chip driver for WM97123 touchscreen (commit), add support for streaming mode on Mainstone (commit)
wacom: add support for Cintiq 20WSX (commit)
xpad: add support for wireless xbox360 controllers (commit)
Add PS/2 serio driver for AVR32 devices (commit)
aiptek: add support for Genius G-PEN 560 tablet (commit)
Add Zhen Hua driver (commit)
HID: force feedback driver for Logitech Rumblepad 2 (commit), Logitech diNovo Mini pad support (commit)
V4L2 soc_camera driver for PXA270 (commit), (commit), (commit)
Add support for the MT9M001 camera (commit)
Add support for the MT9V022 camera (commit)
Add support for the ISL6405 dual LNB supply chip (commit)
Initial DVB-S support for MD8800 /CTX948 (commit)
cx23885: Add support for the Hauppauge HVR1400 (commit), add generic cx23417 hardware encoder support (commit)
Add mxl5505s driver for MaxiLinear 5505 chipsets (commit), basic digital support. (commit)
cx88: Add support for the Dvico PCI Nano (commit), add xc2028/3028 boards (commit), add support for tuner-xc3028 (commit)
saa7134: add support for the MSI TV@nywhere A/D v1.1 card (commit), add support for the Creatix CTX953_V.1.4.3 Hybrid (commit)
saa717x: add new audio/video decoder i2c driver (commit)
Support DVB-T tuning on the DViCO FusionHDTV DVB-T Pro (commit)
Add support for xc3028-based boards (commit)
ivtv: add support for Japanese variant of the Adaptec AVC-2410 (commit)
Add basic support for Prolink Pixelview MPEG 8000GT (commit)
bttv: added support for Kozumi KTV-01C card (commit)
Add support for Kworld ATSC 120 (commit)
CX24123: preparing support for CX24113 tuner (commit)
Added support for Terratec Cinergy T USB XXS (commit)
budget: Add support for Fujitsu Siemens DVB-T Activy Budget (commit)
Support for DVB-S demod PN1010 (clone of S5H1420) added (commit)
Added support for SkyStar2 rev2.7 and ITD1000 DVB-S tuner (commit)
em28xx-dvb: Add support for HVR950 (commit), add support for the HVR-900 (commit)
Add support for Hauppauge HVR950Q/HVR850/FusioHDTV7-USB (commit)
HVR950Q Hauppauge eeprom support (commit)
Adding support for the NXP TDA10048HN DVB OFDM demodulator (commit)
Add support for the Hauppauge HVR-1200 (commit)
pvrusb2-dvb: add DVB-T support for Hauppauge pvrusb2 model 73xxx (commit)
Add support for Beholder BeholdTV H6 (commit)
cx18: new driver for the Conexant CX23418 MPEG encoder chip (commit)
s5h1411: Adding support for this ATSC/QAM demodulator (commit)
zfcp: Add trace records for recovery thread and its queues (commit), add traces for state changes. (commit), trace all triggers of error recovery activity (commit),register new recovery trace. (commit), remove obsolete erp_dbf trace (commit), add trace records for recovery actions. (commit)
qla2xxx: Add support for host supported speeds FC transport attribute. (commit), add FC-transport Asynchronous Event Notification support. (commit), add hardware trace-logging support. (commit), add Flash Descriptor Table layout support. (commit), add ISP84XX support. (commit), add midlayer target/device reset support. (commit)
iscsi: extended cdb support (commit), bidi support at the generic libiscsi level (commit), bidi support for iscsi_tcp (commit)
scsi_debug: support large non-fake virtual disk (commit)
gdth: convert to PCI hotplug API (commit)
st: add option to use SILI in variable block reads (commit)
megaraid_sas: Add the new controller(1078DE) support to the driver (commit)
m68k: new mac_esp scsi driver (commit)
bsg: add large command support (commit)
Add support for variable length extended commands (commit)
aacraid: Add Power Management support (commit)
Firmware: add iSCSI iBFT Support (commit)
Add a watchdog driver based on the CS5535/CS5536 MFGPT timers (commit)
Add ICH9DO into the iTCO_wdt.c driver (commit)
thermal: add hwmon sysfs I/F (commit)
ibmaem: new driver for power/energy/temp meters in IBM System X hardware (commit)
i5k_amb: support Intel 5400 chipset (commit)
ISP1760 HCD driver (commit)
pxa27x_udc driver (commit)
CDC WDM driver (commit)
Add Cypress c67x00 OTG controller core driver (commit), (commit), (commit)
Add HP hs2300 Broadband Wireless Module to sierra.c (commit)
Partial USB embedded host support (commit)
Add usb-serial spcp8x5 driver (commit)
r8a66597-hcd: Add support for SH7366 USB host (commit)
Add Zoom Telephonics Model 3095F V.92 USB Mini External modem to cdc-acm (commit)
Support for the ET502HS HDSPA modem (commit)
atmel_usba_udc: Add support for AT91CAP9 UDPHS (commit)
4.11. FireWire
release notes at linux1394-user
4.12. Infiniband
IPoIB: Use checksum offload support if available (commit), add LSO support (commit), add basic ethtool support (commit), support modifying IPoIB CQ event moderation (commit), handle 4K IB MTU for UD (datagram) mode (commit)
ipath: Enable 4KB MTU (commit), add code to support multiple link speeds and widths (commit), EEPROM support for 7220 devices, robustness improvements, cleanup (commit), add support for IBTA 1.2 Heartbeat (commit)
Add support for IBA7220 (commit), (commit), (commit), (commit), (commit), (commit), (commit), (commit), (commit), (commit)
mthca: Add checksum offload support (commit)
mlx4: Add checksum offload support (commit), add IPoIB LSO support to mlx4 (commit), (commit)
RDMA/cxgb3: Support peer-2-peer connection setup (commit)
4.13. ACPI and Power Management
ACPICA: Disassembler support for new ACPI tables (commit)
eeepc-laptop: add base driver (commit), add backlight (commit), add hwmon fan control (commit)
thinkpad-acpi: add sysfs led class support for thinklight (v3.1) (commit), add sysfs led class support to thinkpad leds (v3.2) (commit)
Remove legacy PM (commit)
m25p80: add FAST_READ access support to M25Pxx (commit), add Support for ATMEL AT25DF641 64-Megabit SPI Flash (commit)
JEDEC: add support for the ST M29W400DB flash chip (commit)
NAND: support for pxa3xx (commit)
NOR: Add JEDEC support for the SST 36VF3203 flash chip (commit)
NAND: FSL UPM NAND driver (commit)
AR7 mtd partition map (commit)
NAND: Hardware ECC controller on at91sam9263 / at91sam9260 (commit)
Add support for device alias names (commit)
Convert most new-style drivers to use module aliasing (commit)
Renesas SH7760 I2C master driver (commit)
New driver for the SuperH Mobile I2C bus controller (commit)
Convert remaining new-style drivers to use module aliasing (commit)
4.16. Various
MMC: OMAP: Add back cover switch support (commit)
MMC: OMAP: Introduce new multislot structure and change driver to use it (commit)
mmc: mmc host test driver (commit)
4981/1: [KS8695] Simple LED driver (commit)
leds: Add mail LED support for "Clevo D400P" (commit)
leds: Add support to leds with readable status (commit)
leds: Add new driver for the LEDs on the Freecom FSG-3 (commit)
edac: new support for Intel 3100 chipset (commit)
Basic braille screen reader support (commit)
ntp: support for TAI (commit)
RTC: Ramtron FM3130 RTC support (commit)


text:
Regrets, sometimes general managers have a few.
What they wish they had thought of in November, December, and January that would have made their lives so much easier in August and September.
Ben Cherington wishes he had solidified the Red Sox' starting pitching more. He and his staff decided that Daniel Bard was going to make the transition from reliever to starter. He thought Alfredo Aceves would also be in the starting mix, but closer Andrew Bailey got hurt, leaving him with veteran Aaron Cook and Daisuke Matsuzaka — and you know the rest of the story. He probably thought Andrew Miller might protect him in the rotation, and Miller got hurt. Miller wound up being Boston's best and most consistent reliever.
Jerry Dipoto worked his rear end off last offseason. The first-year Angels GM signed Albert Pujols and C.J. Wilson, both worthwhile acquisitions. But he left one area untouched — the bullpen. He made a nice acquisition for the bullpen in Ernesto Frieri, but it wasn't enough as Frieri eventually showed warts after an amazing start.
As far as regrets by Colorado GM Dan O'Dowd, he said, "How long is this article? Just kidding. We all have regrets. When you make the amount of decisions we do, you make mistakes. So this year [Jeremy] Guthrie was acquired to give us innings, but Coors [Field] got him and that hurt us. We had such a lack of experience everywhere else. There was no margin for error, and I screwed up."
In Milwaukee, Doug Melvin's team made a run at the end after a slow start, but 83 wins weren't enough. Melvin regrets the lack of flexibility he had to improve his bullpen after Francisco Rodriguez surprisingly accepted their $8 million offer. Melvin had extended the offer so the Brewers would be protected and receive a No. 1 draft pick if K-Rod didn't accept. But he did.
"You always go back and see things that worked out and things that didn't based on the decisions you made," said Melvin, a two-time executive of the year. "People said we wouldn't be able to score runs losing Prince [Fielder], but we led the league in runs scored, home runs, and doubles. We expected 64 starts out of Shawn Marcum and Zack Greinke and we got 44, but one thing we did do is give our young starters a chance to pitch, and all three of them showed that they're going to be good major league pitchers."
Tampa Bay has always stuck to its philosophy of pitching first, but the regret of not trading some of its pitching for a hitter at the deadline has to be there. The Rays needed offense as Carlos Pena and Luke Scott struggled, and Evan Longoria missed so much time because of injury.
"If they had traded for a hitter they'd be in the playoffs right now," said one American League East official. "They had the best pitching. They were one hitter away and they didn't do it."
The Indians were heavily lefthanded, feeling that's the way to go at Progressive Field, yet the 81 games they played on the road surely meant they needed more righthanded pop. If Chris Antonetti had a regret one would think it was not signing Josh Willingham and allowing him to sign with the Twins. The Indians offered two years and the Twins went three, and that's where Willingham went. He would have made a big difference in the middle of that Cleveland order.
The Blue Jays would have added more depth to their starting rotation with a veteran pitcher and perhaps traded some of their top prospects in order to add more depth to a staff that was decimated with injuries.
The Phillies toyed with the idea of adding more thump to the lineup to replace the injured Ryan Howard and Chase Utley, both of whom missed much of the first half of the season. If they had, maybe the Phillies would have snuck into the playoffs after they made their late-season push.
The Dodgers would have improved their starting pitching sooner — pre-Josh Beckett — but they don't seem to regret the trade with the Red Sox in which they took on $264 million in payroll. It would appear they will be a big player for a starting pitcher this offseason, whether it be in free agency or in trade.
The Pirates probably would have put the Willie Stargell and Roberto Clemente statues in the lineup if they could have to improve their OBP (they failed to acquire Kevin Youkilis, who would have helped), but they're another team who didn't trade for a bat or put more depth in their bullpen. First baseman Gaby Sanchez and reliever Chad Qualls just didn't cut it. Nor did they try to get another starter when James McDonald went south in the second half.
The Tigers probably should have sought one more reliever.
And there are always teams with no regrets.
Brian Cashman said he didn't have any regrets to speak of, and why not? His Yankees won the AL East.
The Braves are glad they didn't mess up their team by making major changes after their 2011 collapse, but probably would have liked to have added another pure hitter.
The Giants probably struggled with keeping expensive Barry Zito over the years and probably had the same thoughts when Tim Lincecum was struggling. When Melky Cabrera tested positive for performance-enhancing drugs, GM Brian Sabean could have thought big to replace Cabrera, but he thought smaller and it turned out Marco Scutaro was a gem and helped add a clutch element to the lineup.
Nationals GM Mike Rizzo never got that center fielder/leadoff hitter he wanted, but you know, it didn't turn out so bad. Will he regret the decision to shut down Stephen Strasburg? Who knows? Probably depends on whether the Nationals lose a Game 7 because they have someone less competent on the mound.
The A's have no regrets. They stripped their team of three All-Stars – Bailey, Gio Gonzalez, and Trevor Cahill — and wound up winning the AL West. How many teams regret not going the extra mile to sign A's outfielder Yoenis Cespedes? And how many teams regret (hello, Red Sox) not even bidding on him because they feared his skills wouldn't translate to the major leagues?
Regrets, yes, there have been a few.
Apropos of nothing
1. A reader suggested Dustin Pedroia should be the Red Sox' player-manager, and I couldn't disagree. But I'll bet the players wouldn't like him because he'd be too tough on them. I see how he speaks to them now as a teammate and I know he's kidding half the time, but he wants everyone to play the game 100 percent and take pride in every movement they make on the field. He had a long, heated chat with Ben Cherington the next-to-last game of the season about changing the culture of the clubhouse. I'll bet you he could do it. By the way, Pedroia said he's staying out of the managerial search. Pedroia became a Bobby Valentine ally and was certainly a Terry Francona ally and friend. Don't sense that he's too big on the revolving door of managers.
2. It's got to be tough for the Rangers to have short winters in Texas and to go all the way to the World Series the past two years and now into their third straight postseason. It takes its toll, more so on a mental basis than on a physical basis.
3. Adding Rick Peterson as their pitching coach makes so much sense for the Red Sox that they probably won't do it.
4. Have received inquiries lately about whether it's time for the Red Sox to select a minority manager. Of course it is.
5. Heard a charge that Valentine didn't use his advance scouting reports, except every time I visited him in his office he was reading scouting reports.
6. As good as the A's young pitching is (they made 101 starts with rookies), I don't expect them to be as good next season. As one NL executive said, "Sometimes it's all about expectations. The expectations for the A's were very low and the expectations for the Red Sox were very high. One team played loosey-goosey and the other played up tight. Pressure is an amazing thing. There was no pressure on Oakland and all the pressure on Boston."
7. The Orioles won 69 games last season, same as the Red Sox this season. Think the Red Sox can do next season what the Orioles did?
8. Comparing September 2011 collapses: The Braves collapsed, remained status quo, and rebounded by making the playoffs. The Red Sox collapsed, made some changes, and won 69 games.
9. Found it odd that Carl Crawford, even though he had Tommy John surgery, never visited Los Angeles after the deal from Boston.
10. I'd pick up impending free agent Derek Lowe if I were the Red Sox. He can protect you in the starting rotation and bullpen, and he would love to continue his career in Boston.
11. Still think trying to get the Twins to trade Joe Mauer to the Red Sox makes sense. Pure hitter who can catch and play first. Twins can take on some money and take one of Boston's catchers and another prospect or two.
Apropos of something
MLB Network analyst Larry Bowa remains very close to Joe Torre. Asked whether Torre might be a good fit for the Boston job, Bowa said, "He'd be great there. I've seen Joe take young teams and make them better and seen him take veteran teams and get the most out of them. He has the amazing ability to bring people together for a common goal. I have no idea if he wants to manage again, but if he does, he's a great manager."
Bowa was a tough manager and he was one tough coach. He was Torre's enforcer, the bad cop who would get in players' faces if he felt they weren't doing their part. Every manager needs this type of guy. Obviously, Terry Francona had Brad Mills and then DeMarlo Hale.
Bowa, who recently interviewed for the Astros managerial opening, has been around long enough to know how it all needs to work for an organization to come together.
Bowa doesn't believe in player's managers being the way to go, even in this day and age when players have become more sensitive than ever.
"I think what you need to do is get your core players together and say to them this is what I want to do and this how I want to do it," said Bowa. "If you can get them on board, then the rest of the players will follow them. The players just need to know what you're all about and if you do that well, they'll perform and they'll get everyone else to perform."
Updates on 9
1. Brad Ausmus, special assistant to GM, Padres —
2. Ryne Sandberg, third base coach, Phillies —
3. Chili Davis, batting coach, A's — It's amazing how you either click or don't with batting coaches. What Davis has done with A's hitters this season is remarkable. Davis was in the Red Sox employ at Pawtucket, but the Sox couldn't keep him from joining the A's. His recommendation to get Josh Reddick from the Sox, predicting he would hit for power, has really fueled the A's season.
4. Alfonso Soriano, OF, Cubs — After finishing with 32 homers and 108 RBI, it appears the Cubs should have suitors for him this offseason. Soriano makes so much sense for a team like the Rays as their DH, especially since Theo Epstein would pick up most of the final two years of Soriano's deal. Soriano could also help the Blue Jays, Orioles, or Indians.
5. Shin-Shoo Choo, OF, Indians — Chris Antonetti has said he expects Choo, 30, to be his right fielder next season, but it appears the Indians GM will also listen to overtures for the lefthanded hitter. Choo is the type of player the Red Sox might go after — entering his final arbitration season and may not be a long-term possibility for the budget-conscious Tribe. Choo is represented by Scott Boras, who will have the same dilemma with Jacoby Ellsbury. The Sox will likely seek an outfielder in the offseason, and Cleveland is ripe for a trade with Boston, in which a pitcher like Justin Masterson could also be involved.
6. Josh Hamilton, OF, Rangers —
7. Jake Peavy, RHP, Chicago — His $22 million option will not be picked up by the White Sox, but the righthander should make a nice payday in free agency, perhaps even remaining with the White Sox. Peavy was 11-12 with a 3.37 ERA and a low 1.096 WHIP in 219 innings. He finally seems to be over his injury issues. It would appear, at age 31, Peavy would be a target for the Red Sox. Peavy may also prefer going back to the NL.
8. Felix Hernandez, RHP, Seattle — The Mariners feel they have an excellent young team, and they're moving the fences in, which should help their terrible offense. The bottom line: While teams have offered the moon for King Felix in the past, there's no chance Jack Zduriencik is going to trade him now. Hernandez is under contract through 2014, and after that the Mariners ownership has gobs of money to be able to re-sign him. He'll make $19.5 million next season and $20 million in 2014. He's got the money already, and he really loves playing in Seattle.
9. Josh Johnson, RHP, Marlins —
Short hops
From the Bill Chuck files: "Kevin Youkilis, Prince Fielder, and Carlos Quentin led the majors with 17 times each getting hit by a pitch." And, "Derek Jeter led the majors with 169 singles, followed by Marco Scutaro with 147." . . . One more name to consider for Boston's managing job: ESPN's Orel Hershiser. Smart, pitching oriented, he'd be terrific . . . Happy birthday to Butch Henry (44), and belated birthday wishes (Saturday) to Oil Can Boyd (53) and Darren Oliver (42).
Nick Cafardo can be reached at firstname.lastname@example.com or Twitter @email@example.com. Follow him on Twitter @nickcafardo. Material from interviews, wire services, other beat writers, and league and team sources was used in this report.