text:
Support Human Rights And Democracy Overseas
NASUWT is committed to supporting trade unions in developing countries abroad. The Union's National Executive has officially approved supporting four nations: Iraq, Colombia, Zimbabwe and Burma but has hosted and participated visits to many others, particularly Bahrain. The NASUWT is committed to the 'Education For All' agenda and believes that education and a thriving trade union movement are fundamental to these aims.
Download the international solidarity magazine containing the latest news and information about the Union's work to support trade unionism overseas.
Related Links
Appeal Updates
NASUWT urges members to support appeals in the following countries by taking the actions specified
- Colombia
- Bahrain - Free Mahdi
- Burma
- Iraq
- Zimbabwe
- Venezuela
- Uganda
- NASUWT-supported international 'Designated Days'
- TUC campaign to ask high street brands to commit to accord on safety in their Bangladesh factories
If you are an NASUWT member working as a teacher in an international capacity. Let us know at email@example.com. The Union is eager to build its database of members involved in work to improve access to education overseas.
International Development
This Report provides an overview of the Department for International Development's (DFID's) international development strategy and activities since 2010. It pays particular attention to DFID's strategy and activities that relate to education, including DFID-funded education programmes in the UK and education-related research commissioned by the Department.
NASUWT continues to campaign for teachers across the globe. As a member of the global federation of trade unions, Education International (EI)(new window), Deputy General Secretary Dr Patrick Roach is a member of its Executive Board.
The NASUWT offers legal services to overseas members and is also committed to improving the experiences of overseas-trained teachers.
Keep in touch below with the latest developments, learn about how the Union actively campaigns for global access to education for all.
The importance of remaining in the EU
Membership of the EU brings many benefits particularly with regard to rights for working people. An exit from the EU would lead to many vital protections being lost.
Many of those who wish to leave the EU, wish to do so to take away rights from working people in order to make labour laws easier and cheaper for businesses.
Find out what would be lost if the UK left the EU by reading our campaign leaflet.
Aims and Objectives
The purpose of the Union's international activity in all cases is that it should contribute to the following policy aims:
(i) Building the capacity of teacher trades in other countries;
(ii) Defending the human and trades union rights of teachers around the world;
(iii) Achievement of the Education Millennium Development Goals, as follows:
Achieve Universal Primary Education
Ensure that, by 2015, children everywhere, boys and girls alike, will be able to complete a full course of primary schooling;
Promote Gender Equality and Empower Women
Eliminate gender disparity in primary and secondary education, preferably by 2005, and in all levels of education no later than 2015
In determining and reviewing the nature and extent of international work undertaken by the Union, activity contributing towards these strategic aims will continue to be prioritised by the NASUWT.
The NASUWT offers legal services to overseas members and is also committed to improving the experiences of overseas-trained teachers.


text:
Created in this Craftsy class
Creative Quilting With Your Walking Foot taught by Jacquie Gering
Finish fabulous, fulfilling quilts at home with your walking foot. Tap into the creative power of your walking foot as you quilt linear, curved and concentric designs.
Other projects made as part of this class:
QuiltingDapper diamonds
QuiltingMy 70's sofa
QuiltingTriangle triumph
Offer some kudos...
Join the conversation...
Ask a question...
Add your comment...
I don't know where you found this great nursing fabric, but it's awesome! Love the double focal point.
04/30/2014 Flag
Love the quilting, I am looking for a project to use this on. I loved this class
05/09/2014 Flag
fabric can be gotten at http://www.loraliedesigns.com/ LORALIE was the original designer try googling NURSE FABRICS .. that was how I got mine there are lots of fabrics out there
05/26/2014 Flag
as of MAY 26TH ebay has some panels available for decent prices
05/26/2014 Flag

subset: commoncrawl


text:
amazing details!!! haha another Pinoy here! yay! congrats
marcatalyst Artist from United States
wooow i want this one :)
gilmoreart Artist from United States
Great art!
gilmoreart Artist from United States
...2nd picked winner…I'm saving some money now to buy those picked winners… :D
bitifirefly Human
GREAT!I want this
yay…congrats… really amazing print.
congrats again kabayan!!=)
I missed this one. Excellent style!
lhifx said: congrats again kabayan!!=)salamat parekoy, apir!
ritzh said: Wow! Congrats, I guess DBH heard the humans. great printsalamat tsong, cguro dahil sa request nila.heheh! apir!
congrats tol!
congrats sir! galing ng mga pinoy! :D
wow this is very pretty
junioraltoe Artist from Brazil
Amazing !!!!!!!!
kooky-love Artist from Semarang, Indonesia
Toxic_Love Artist
this is fierce!!!!!!!!
jimiyo said: The print on this thing is beautiful, truly some awesome art, and printing.thanks jim, really appreciated.
collisiontheory Artist from Philippines
ayus sir ganda!
collisiontheory said: ayus sir ganda!
oi aj salamat bro!


text:
Ze'ev (Vladimir) Jabotinsky…In Honor of His Memory
Ze'ev (Vladimir) Jabotinsky…In Honor of
His Memory
By Gerald A. Honigman
Special to
21, 2012
Doris Wise Montrose, my friend at Children Of Jewish
Holocaust Survivors--Never Again Is Now, sent me a
great article by Daniel Tauber to commemorate July
19th's 72nd anniversary of the death of one of the
most important modern
Zionist leaders, Ze'ev
(Vladimir) Jabotinsky…
There is no doubt that Jabotinsky was both brilliant
and essential in the human aspects of Israel's
resurrection and survival. The above essay gives
some quick, useful facts about his too short life.
During my own graduate study days in the late '70s,
I will never forget a conversation I had with the
tenured chief honcho professor of one of the doctor
seminars. He would later see to it that my own
academic career would be nipped in the bud by
denying me a Ph.D. dissertation advisor. I was the
most advanced doctoral student in the program and
the department used me to secure additional funding.
But, I asked too many of the wrong questions.
Professor Daniel Pipes' organization, Campus Watch,
Professor Martin Kramer's book, Ivory Towers On
Sand…, and a brand new, break away academic
organization from MESA, ASMEA, would later emerge
over the same issues--all too late to help me,
After hearing a fellow doctoral student's oral
summary of her own research project covering the
Grand Mufti of Jerusalem (Amin al-Husseini), it was
my turn to do likewise with the extensive research I
had done on Jabotinsky.
At no time during the presentation about the Mufti
was it reported that Hitler had made him the leader
of the Waffen SS Division in the Balkans in charge
of atrocities against Serbs, Gypsies, and Jews. And
the professor asked no prodding questions about such
things afterwards as well. He simply went along with
the whitewash.
Yet, after my discussion about Jabotinsky, the same
professor was quick to question about his alleged
"fascist connections."
Alas, such experiences were and still are quite
common in too many duplicitous MESA-run classrooms
where one set of lenses is used to scrutinize Israel
and Zionism and quite a
different set--if any at all--is used to critique
the "Arab" world.
Chapter # 17 of my own book
(http://q4j-middle-east.com) is completely devoted
to Jabotinsky (along with other references to him in
the book as well), and his famous 1937 quote to the
Palestine Royal Commission in London prominently
graces the back jacket cover.
In honor of the memory of this amazing man, a timely
gift from G_d for sure, please allow me to share
with you an earlier version of that chapter from my
book. It follows below…
Appetite Versus Starvation and Some Other Eternal
Truths (7/6/05)
Arabs have spent decades trying to convince the
world that they are both the old and the new Jews.
Arafat and others have claimed that Jesus, Peter,
and their comrades were actually
Arabs--"Palestinians" to be exact--and not Jews.
It seems that planes were not the only things that
Arafat's crew decided to hijack.
Too bad that besides the Jews themselves, the
Romans, who ruled the land in Jesus' day, also left
a clear record of the land belonging to the Jews--
whom they were in the process of conquering--and
also made a clear distinction between Jews and Arabs
as well.
Tacitus and Dio Cassius were famous Roman historians
who wrote extensively about Judaea's attempt to
remain free from the Soviet Union of its day, the
conquering Roman Empire. They lived and wrote
during, or not long after, the two major revolts of
the Jews for independence in 66-73 C.E. and 133-135
C.E. They make no mention of this land being Arab,www.ekurd.net
of it being called "Palestine," or its people
"Palestinians." On the contrary, they detailed the
difference between the native Jews Rome was fighting
and the Arabs from surrounding lands who decided to
join the massive Roman assault on their Jewish
Listen to this quote from Vol. II, Book V, The Works
of Tacitus:
...Titus was appointed by his father to complete the
subjugation of Judaea... he commanded three legions
in Judaea itself... To these he added the twelfth
from Syria and the third and twenty-second from
Alexandria... amongst his allies were a band of
Arabs, formidable in themselves and harboring
towards the Jews the bitter animosity usually
subsisting between neighboring nations...
After the 1st Revolt, Rome issued thousands of
Judaea Capta coins which can be seen in museums all
over the world today. Notice, please...Judaea Capta...not
" Palaestina "Capta. Additionally, to celebrate this
victory, the Arch of Titus was erected illustrating
legionnaires carrying away the spoils of the Jewish
Temple in Jerusalem. It stands tall in Rome to this
very day. The late Egyptian ghoul himself (Arafat)
and his buddies deny that such a Temple ever
When, some sixty years later, Emperor Hadrian
decided to further desecrate the site of the
destroyed Temple by erecting a pagan structure
there, it was the grandchildren's turn to take on
their mighty conquerors.
The result of the struggle of this tiny nation for
its freedom and independence was, perhaps, as
predictable as that which would have occurred had
Lithuania taken on the Soviet Union during its
heyday of power. Listen next to this next quote from
Dio Cassius:
...580,000 men were slain, nearly the whole of
Judaea made desolate. Many Romans, moreover,
perished in this war (the Bar Kochba Revolt).
Therefore Hadrian, in writing to the senate, did not
employ the opening phrase commonly affected by the
emperors, ' I and the legions are in health.'
The Emperor was so enraged at the Jews' struggle for
freedom in their own land that, in the words of the
esteemed modern historian, Bernard Lewis, "Hadrian
made a determined attempt to stamp out the embers
not only of the revolt but also of Jewish nationhood
and statehood... obliterating its Jewish identity."
Wishing to end, once and for all, Jewish hopes,
Hadrian renamed the land itself from Judaea to
"Syria Palaestina" -- Palestine -- after the Jews'
historic enemies, the Philistines, a non-Semitic sea
people from the eastern Mediterranean or Aegean
area. So, sorry Arafatians...Trying to hijack the
latter's identity, as you have tried to do with that
of the Jews, won't work either.
The reality, of course, is that the vast majority of
Arabs did not even begin to enter into the picture
regarding the land of Israel / Judaea / Palestine
until almost seven centuries after the fall of
Jewish Jerusalem--during the beginning of the Arabs'
own extensive imperial conquest, forced Arabization,
and settlement of much of the region. Imperialism is
evidently only nasty when non-Arabs so indulge.
Ditto for settlement and such. Most so-called
"native Palestinians" today came into the land only
recently themselves, beginning with thousands of
Egyptian troops who stayed after the invasion of
Muhammad Ali's army in the 19th century, and
ballooning after Jewish capital began to develop the
land soon afterwards. The records of the Permanent
Mandates Commission of the League of Nations and
other evidence document Arabs flooding into
Palestine after 1920. It is believed that many
others entered under cover of darkness and were
simply never recorded.
While the story of the Arabs' attempt at
establishing themselves as the "aboriginals" of the
land could be developed further, I'll let it rest
for now. So much for their attempt at becoming the
old Jews.
Let's next turn to the Arab attempt to become the
new Jews...
After Judaea's fight for freedom against the mighty
Roman Empire and the conversion of the latter to
Christianity, forced conversions, being branded the
deicide people (and treated accordingly),
inquisitions, demonization, dehumanization, ghettos,
blood libels, massacres, expulsions, and existence
as perpetual stranger in someone else's land became
the plight of the stateless, "Wandering Jew."
Estimates have placed the number of Jews murdered as
a result of these experiences, prior to the
Holocaust, in both the Christian West--where they
were considered to be "G_d killers"--or in the
Muslim East, where there was no Holocaust per se,
but where Jews were still frequently regarded as
"killers of prophets' and kilab yahud "Jew dogs," in
the millions. And this was without the benefit of
20th century methods of mass destruction aiding the
Arabs have tried to convince the world that their
experiences and the plight of Arab refugees is
somehow the equivalent of that of the Jews. It has
worked to a great extent with a world largely--and
willingly-- deaf, dumb, and blind to the obvious
Let's turn the clock back some seventy years to hear
how one great Jewish leader explained these
differences in his Evidence Submitted To The
Palestine Royal Commission in London in 1937. Still
recovering from the murderous pogroms and massive
Jewish refugee problem which accompanied them just a
bit earlier, it had by now become evident that even
worse was yet to come. Let's listen to how this
Zionist leader dealt with all of this:
Three generations of Jewish thinkers...have come to
the conclusion that the cause of our suffering is
the very fact of the Diaspora, the bedrock fact that
are everywhere a
minority...The phenomenon called Zionism may include
all kinds of dreams...but all of this longing for
wonderful toys of velvet and silver is nothing
compared with that tangible momentum of irresistible
distress and need by which we are propelled and
Whenever I hear a Zionist...accused of asking too
much...I really cannot understand it...Yes we do
want a State; every nation on earth...they all have
States of their own...the normal condition of a
people. Yet, when we, the most abnormal of peoples,
and therefore the most unfortunate, ask for only the
same...then it is called too much...We have got to
save millions, many millions. I do not know whether
it is a question of one third...half...or a quarter
(indeed, one third of world Jewry would be
eliminated within just a few years of his remarks).
I have the profoundest feeling for the Arab case, in
so far as that case is not exaggerated...I have also
shown to you...that...there is no question of
ousting the Arabs. On the contrary, the idea is that
Palestine on both sides of the Jordan should hold
the Arabs...and...Jews. What I do not deny is that
in that process the Arabs of Palestine will
become...a minority...What I do deny is that that is
a hardship.
It is not a hardship on any race, any nation
possessing so many National States now and so many
more National States in the future. One fraction,
one branch...and not a big one, will have to live in
someone else's State: Well, that is the case with
all the mightiest nations of the world...That is
only normal and there is no "hardship" attached to
that. So when we hear the Arab claim confronted with
the Jewish claim, I fully understand that any
minority would prefer to be a majority.
It is quite understandable that the Arabs...would
also prefer Palestine to be the Arab State No. 4,
No. 5. or No. 6...but when the Arab claim is
confronted with our Jewish demand to be saved, it is
like the claims of appetite versus...starvation.
The presenter of this evidence was Ze'ev Vladimir
Jabotinsky, the patron saint of Israel's modern
Likud Party. And, as can be seen above, unlike too
many other Zionist thinkers, he was a realist
regarding what could and what could not be expected
in the Jews' relationships with Arabs.
As Jabotinsky correctly forecasted, Arabs made out
quite well after the breakup of the Turks' four
century-old Empire at the end of World War I. To
date, they have almost two dozen states. And most of
those were conquered and forcibly Arabized from
millions of Imazighen/"Berbers," Copts, Kurds, Jews,
black Africans, and other non-Arab peoples.
Appetite, indeed, Mr. Jabotinsky...and at everyone
else's expense.
Arabs declared the region to be purely Arab
patrimony, frequently outlawed others' languages and
cultures, and killed anyone who stood in their
way...literally, millions to date.
In failing repeated attempts to destroy militarily
the sole, minuscule state the Jews managed to get as
a refuge, the Arabs next turned to another ploy. In
the quest to defeat Israel on the battlefield of
ideas, the Arabs virtually transformed themselves
into the new stateless Jews. In a like manner,
Israel's attempts to survive and suppress repeated
acts of terrorism and Arab assaults on its life were
also twisted to be equated with the Nazis' treatment
of the Jews. Arabs became the new David to Israel's
Goliath, despite the fact that there are some 300
million of them on over six million square miles of
territory and there are five million Israeli Jews in
a state that one practically needs a magnifying
glass to locate on a map of the world.
Along these lines, there are those who make the
argument, "if Jews can have a state, why not
Palestinians?" For some, this is simply ignorance.
But for too many others--academics included--it
represents something far worse, for they know
While I won't get into argument over whether a
distinct Palestinian Arab nationalism exists today,
it certainly did not exist before the rise of modern
political Zionism a little over a century ago. In
fact, the former arose specifically to negate the
latter. There are volumes of evidence to support
this. Virtually all the writings of politically
conscious Arabs on the eve of the collapse of the
Ottoman Turkish Empire spoke of a greater Syrian
Arab or Pan Arab identity. And there never was an
Arab country, state, or nation of "Palestine."
Indeed, the "Palestinians" were the Jews.
As in Jabotinsky's day, now, and before, this
conflict has never been about Jews wanting to deny
Arabs their just rights. On the contrary, it's
always been about Arabs not allowing any one else
even a tiny sliver of those very same rights they so
fervently demand for themselves.
In the war of ideas, the Arabs realized that the
very identity of the conflict would have to undergo
a major change.
In their attempt to create their 22nd state--on the
ashes of Israel, not along side of it--Arabs came to
realize that it would make better press and public
relations to speak in terms of creating a state for
"stateless Palestinians" rather than calling for the
creation of yet an additional Arab state at the
expense of the one of the Jews.
Hocus pocus, alakazam !
Arabs, with some two dozen states, would next be
magically transformed into the likes of previously
starving, stateless Jews.
This has manifested itself in many ways over the
Not that long ago, a United Nations and
International Court Of Justice that keep silent over
security fences being set up all around the world
(including some on disputed territories)--along the
Saudi-Yemen and Indo-Pakistani borders, in America,
and elsewhere as well--declared Israel's version,
designed to keep Arabs from deliberately blowing up
its kids, illegal. Leading specialists on
international law beg to differ.
That same court--which says nothing about Arabs
deliberately murdering Jewish civilians--insists
that some Arab inconvenience created by the fence is
more of an issue than the saving of Jewish lives.
Not to mention the fact that without Arab terrorism,
there would be no security fence.
Notice the pattern here. The same hypocrisy and
double standards which have allowed for the Arabs'
success at transforming themselves into the "new
Jews" constantly works to undermine the sole, real
Jewish State.
Listen to Zuheir Mohsein, official with the PLO's
military wing and Executive Council, in his
interview with the Dutch newspaper, Trouw, on
3/31/77, to see how Arabs themselves have explained
this identity transformation strategy:
There are no differences between Jordanians,
Palestinians, Syrians, etc...It is only for
political reasons that we now carefully underline
identity....this serves
only a tactical purpose...a new tool in the
continuing battle against Israel.
Despite the passage of time, these basic truths do
not change.
The Arab-Jewish (or Arab-Kurdish, Arab-Berber,
Arab-black African, and so forth) conflict is still
all about Jabotinsky's appetite versus
starvation...a conquering, subjugating appetite on
the part of the Arabs to deny any one else their own
share of justice in the region.
By rejecting repeated compromises over the 20% of
the Mandate of Palestine left after they had already
received the lion's share of it in 1922 with the
creation of purely Arab Transjordan (some 80% of the
whole), the Arabs created the impasse we are still
living with today. They invaded a reborn Israel in
1948 in an attempt to nip it in the bud...thereby
creating two refugee crises in the process: Arabs
who fled Israel and a like number of Jews who fled
"Arab "/ Muslim lands. But, unlike the Arabs, the
Jews didn't have other multiple states of their own
to potentially choose from.
What's even more depressing is that, in many crucial
ways, nothing has really changed for well over a
half century, as a look at Arab websites, textbooks,
maps, television programs, and such illustrates.
Israel simply does not (or shouldn't) exist. And the
most that will be offered to it will be a temporary
respite, a hudna, like that the Prophet of Islam,
Muhammad, allowed his enemies until he could muster
the strength to deal them the final blow...Arafat's
so-called "Peace of the Quraysh." Even the Arabs'
own moderates have admitted to this, calling any and
all such moves for "peace" a Trojan Horse.
Once again...the basic truths of this struggle do
not change. They are eternal.
And the Arab-Jewish conflict is still all about
appetite versus starvation.
By Gerald A. Honigman for EKurd.net, July 21, 2012. You may reach the
author via email at: honigman6 (at) msn.com.
Gerald A. Honigman is a Florida educator who has
done extensive doctoral studies in Middle Eastern
Affairs. He has created and conducted counter-Arab
propaganda programs for college youth, has lectured
on numerous campuses and other platforms, and has
publicly debated many Arab spokesmen. His articles
and op-eds have been published in dozens of
newspapers, magazines, academic journals and
websites all around the world. Visit his
website at
Gerald A. Honigman, a longtime contributing writer
and columnist
for Ekurd.net. Honigman has published a major book,
Quest For Justice In The Middle East--The
Arab-Israeli Conflict In Greater Perspective."
Copyright © 2012 Ekurd.net.
All rights reserved
Read more
Gerald A. Honigman
Blowin' Hot Air...
Dear Governor Romney...
The SNC, SDC, and
Timbuktu's Warnings For Syria and Beyond...
A Temporary Escape From
The Middle East: Close Encounters Of The Florida
Kind… 1.7.2012
Qassam, Kassam...So
What's In A Name? 21.6.2012
President Obama's
Much-Needed Walk Down Memory Lane 10.6.2012
Arabs, Turks, & The
Language Of Cultural Genocide 31.5.2012
Please Join Me For The
Nakba Day Festivities... 15.5.2012
Remembering My Father
Revisiting the Cattle
Cars… 7.5.2012
Azawad: Why Is It That…
The President, The
Holocaust, And The Redemption Of Elie Wiesel
The Virtues Of Hamastan…
Tales (Tails?) Of Binx
and Jahandir… 20.4.2012
The opinions
expressed in this commentary are solely those of the
Copyright © 1998-2016
Kurd Net®
. All rights reserved Ekurd.net
All documents and images on
this website are copyrighted and may not be used without the
permission of the copyright holder.


text:
Nike+ Kinect Training
(Xbox 360)
Get fitter, faster and stronger with Nike+ Kinect Training, a personalized training experience built for Kinect for Xbox 360.
User Reviews> Write a Review of This Game
so far so good
Score: B+
by brett sinclair
December 17, 2012 0 0
Submit a Review for Nike+ Kinect Training
Here is where you can write your own Nike+ Kinect Training Xbox 360 review. Please make your review as honest and well written as possible -- remember, someone else may read your review to decide whether to buy this game! This is not the place for you to respond to 1UP's or other peoples' reviews, this is where you should write your own thoughts on the game. What did you like or dislike? What did you think of the graphics? How about the gameplay? What could the developers have done better? You must include a rating with your review, and don't even think about reviewing this game unless you've played it for several hours!


text:
Lawmakers to hear about plant closing's impactOctober 22,2013Lawmakers to hear
Yankee concerns
VERNON — Two Vermont House committees are planning a special trip to the state's southeast corner to hear about the impact of the impending closing of the Vermont Yankee nuclear plant.
Lawmakers travel to Vernon Elementary School to hear from business and other local leaders from 1:30 to 4:30 p.m. Monday and from the general public from 5 p.m. to 7 p.m.
House Speaker Shap Smith says he hopes lawmakers will gather information that will help them minimize the impact of the plant's closing, which is scheduled late next year. Vermont Yankee employs more than 600 people.
Members of the Commerce and Economic Development and Natural Resources and Energy Committees of the Vermont House of Representatives will participate in the events.MORE IN This Just InRutland got two goals from Eli Henni and Ryan McKay made three saves in notching the shutout as... Full StoryA New York woman allegedly told police she stole money from her sister to fund her drug habit. Full StoryA homeless man denied stealing his mothers wallet and using her credit cards to buy items to... Full Story
- Most Popular
- Most Emailed


text:
The city of Angels deserves an NFL team. They haven't had a team since 1994. With some of the teams in the NFL getting such poor attendance levels, it is time to send an NFL back out west to Los Angeles.
The city itself has 3,792,621 people without including the suburbs; that makes it the largest city in the state of California and the second most populous city in the United States after New York City. The city itself is the focal point of the larger Los Angeles-Long Beach-Riverside area, which combined has a population of 17.8 million people. That is a ton of people who all enjoy football, based on the fact that the plan was to have USC play on Sunday's if there was not an NFL season.
Finally, yesterday the developers that have been seeking to build an NFL stadium in downtown Los Angeles were granted a City Council endorsement. This puts the city of Los Angeles one step closer to acquiring the team that has long deserved to be there.
"Anschutz Entertainment Group president and chief executive Tim Leiweke said that the council's 12-0 vote in favor of a framework deal on the project's funding and time line sends a strong message to the NFL that the city is behind the proposal for a 72,000-seat NFL stadium on the city's convention center campus." (Citation credited to CBS, http://www.cbssports.com/nfl/story/15417842/la-council-approves-framework-to-build-nfl-stadium.)
The agreement currently has the insurance of $275 million in tax-exempt bonds for the relocation of a convention center hall to accommodate the proposed $1.2 billion football venue, which would then become known as Farmers Field, the new stadium for the city of Los Angeles.
At least five franchises have been linked to a possible move to Los Angeles; those include the Raiders, Rams, Vikings, Bills, and Jaguars.


text:
Sneak Peek: Creepy Creatures
Come and meet our creepy creatures and find the fantastical beasts in our wildlife park this Halloween!
This half term you can have a sneak peek of our new wildlife park, and enjoy our Halloween events and activites.
So if you fancy facing your fears or meeting a mythical beast book today.
Open from 10.00am - 5.00pm (Last Entry 4.00pm).
Pre-booked tickets only.
Adult £6.50
Concession £5.50
Child (aged 3-15) £4.50
Child Under 3 FREE
Family (2 adults & 2 Children) £20.00
- Date and Time
- Location
Askham Bryan Wildlife & Conservation Park
Askham Bryan College
Askham Bryan
York, United Kingdom
None yet
- Settings
Whoops! Couldn't connect
- Settings
Friends Who Are Going
Connect to Facebook


text:
Deniz Houses places you in Sultanahmet, within a leisurely stroll of popular sights such as Hippodrome and Basilica Cistern. This 18-room hotel has free breakfast along with conveniences like free in-room WiFi and free self parking. Hagia Sophia and Blue Mosque are a short walk from the hotel, which is in the historical district.
Start your day off right with a free continental breakfast, served each morning from 8 AM to 10:30 AM.
Deniz Houses's 18 air-conditioned rooms provide minibars and phones. Guests can expect free WiFi and 42-cm LCD TVs with cable channels. Bathrooms offer hair dryers and slippers.
Property features
At Deniz Houses, guests have access to free WiFi in public areas, express check-in, and express check-out. You can take advantage of free parking, along with an airport shuttle (available on request) for TRY 80 per vehicle one way. The front desk has multilingual staff on hand 24/7 to help with dry cleaning/laundry, tours or tickets, and securing valuables.
- Walking distance to Hippodrome and Basilica Cistern
- Free continental breakfast
- Free WiFi in rooms and public areas
- Free parking
Deniz HousesCayiroglu Sok. No:14 Sultanahmet Istanbul 34400
Hotel Amenities
Hotel Amenities
Guests can enjoy a complimentary breakfast each morning. Public areas are equipped with complimentary high-speed wireless Internet access. For a surcharge, a roundtrip airport shuttle (available on request) is offered to guests. This Istanbul hotel also offers tour/ticket assistance, multilingual staff, and dry cleaning/laundry services. Complimentary self parking is available on site.
Deniz Houses is a smoke-free property.
- Express check-in
- Express check-out
- 24-hour front desk
- Number of floors - 4
- Free breakfast
- Airport transportation (surcharge)
- Total number of rooms - 18
- Safe-deposit box at front desk
- Free self parking
- Dry cleaning/laundry service
- Tours/ticket assistance
- Free WiFi
- Multilingual staff
- Year Built 2010
- Smoke-free property
- Number of buildings/towers - 1
Available in all rooms: Free WiFi
Available in some public areas: Free WiFi
Free self parking
Room Amenities
- Air conditioning
- Minibar
- Daily housekeeping
- Private bathroom
- Hair dryer
- Slippers
- Shower only
- Phone
- Cribs/infant beds available
- Cable TV service
- Free WiFi
Where to Eat
A complimentary continental breakfast is served each morning between 8 AM and 10:30 AM.
Start your day with a free continental breakfast, available daily from 8 AM to 10:30 AM.
Hotel Policies
Check-in time starts at noon
Special check-in instructions:
Check-out time is 11 AM
Payment types
- Pets not allowed
You need to know
Extra-person charges may apply and vary depending on hotel policy.
Government-issued photo identification and a credit card are required at check-in for incidental charges.
Special requests are subject to availability upon check-in and may incur additional charges. Special requests cannot be guaranteed.
No elevators
Optional extras
- Airport shuttle fee: TRY 80 per vehicle (one way)
Hotel Name
- Hotel Deniz Konak
- Deniz Houses
- Deniz Houses Hotel
- Deniz Houses Hotel Istanbul
- Deniz Houses Istanbul
- Deniz Konak Istanbul


text:
Kubota Corporation: A Good Play in Japan's Reconstruction 1 comment
After steering away from the Japanese stock market for almost twenty years, foreign investors are buying Japanese stocks to take advantage of the country's reconstruction boom that is expected to follow the March 11th earthquake.
As I discussed in a posting on BubbleBustInvesting.com, investors shouldn't bet on a robust Japanese recovery. As it was the case in the aftermath of the Kobe earthquake, this disaster isn't going to change economic fundamentals. Monetary authorities can do very little to stimulate aggregate demand because they are in a dire situation. Thanks to several rounds of quantitative easing both short-term and long-term rates have hovered near zero levels for a prolonged period of time. This means that investors who buy into Japanese stocks now shouldn't expect a boost from lower rates, and a boost from fiscal policy should be minimal, as money is expected to shift from building bridges to nowhere to repairing bridges to somewhere.
There is one company, however, that may be benefited even from a minimal boost in infrastructure spending, Kubota Corporation. The company is a manufacturer of a broad array of construction equipment, agricultural, machinery, waste and environmental gear, including iron and plastic pipes and filters, water treatment systems, drainage systems, water supply systems, etc. The company is further expected to benefit from a weakening yen that makes its products more competitive in world markets. Trading at around $46, Kubota's stock has almost tripled since 2002, while the Nikkei lost almost half of its value. And although its fundamental lag behind those of its US counterparts, reconstruction spending and a weaker yen can reverse fortunes.
Stock Recent Price Forward PE QoQ Earnings Growth Oper. Margin KUB $46 15 58% 9.28% CAT 110 13 317 9.38 DE 97 13 111 13.13
Disclosure: Long KUBBack To BubbleBustInvesting's Instablog HomePage »
Instablogs are blogs which are instantly set up and networked within the Seeking Alpha community. Instablog posts are not selected, edited or screened by Seeking Alpha editors, in contrast to contributors' articles.Comments (1)Track new commentsFull index of posts »
5 Reasons To Buy Qualcomm $QCOM http://seekingalpha.com/a/18a8v Mar 4, 2014
Why Baidu Stands Out $BIDU http://seekingalpha.com/a/17zhx Feb 26, 2014
2 Problems With Hewlett-Packard's Turnaround $HPQ http://seekingalpha.com/a/17qqd Feb 22, 2014
Latest Comments
- tuliptown on Kubota Corporation: A Good Play in Japan's Reconstruction you are long cyclicals but afraid that the econ...
Most Commented


text: Review Content Perfect Absolutely perfect. I was hesitant about buying this, as I couldnt see how it would work, but it does. And it does it perfect. It doesnt make you uncomfortably cold on your neck where the pads are, just perfect, and the evaporation system is amazing. I run 6 miles a day, it would take me hours to cool off before I could take a shower, in 100 degree and sunny weather. When I get home I put this on, it keeps me not too hot and not too cold, and 10 minutes later there isnt a drop of sweat on me, and Im cool. Its amazing. It looks weird and it sounds goofy, but as soon as someone makes fun of you, let them try it, theyll want to use it all the time. could be a little more cooler This iteam would be better if it can actually get cooler This is Really cool AND Cooling ! Bought this for both my husband and son. My husband does a lot of yard work, stacking firewood and many other outside jobs which make him over heated. My son builds swimming pools for our company and is in the heat all day with no chance of shade. Today is my sons birthday so Ill have to get feedback from him in a couple days, but my husband says its very comfortable and really does make him feel better in the heat. Keep cool I work in a warehouse and it gets hot so this keeps me cool when I cant get indoors in the air conditioning Nice product it needs more fan power. I use the product when walking and in my van to because there is no air conditoner.It really helps in this heat were having.I also discovered you can use it for hot flashes to.The only thing it needs is more air flow power in the back of it. CoolWare Personal Cooling System This is great for my husband who works in South America as the heat there is unbearable. personal cooling system I use it only when I can sit still without bending over, it drips on my shirt. I would suggest to a friend The cooling product was used on the golf course in Las Vegas Two weeks ago when the temperature was 110 degrees and it performed excellent and kept me very cool. Neck cooler helps keep heat off your nec I use it at work where the ac doesnt work and there is no air flow Coolware Personal Cooling System I purchased the Cooling System for my husband. He is a surgeon and in the operating room, he sweats alot. He used this before at another hospital and loved it! And since it was buy one, get one half off, he can use one in the operating room and one at home when he is cutting the grass or at the beach. Definitely a great choice of gifts for him! Hot Flashes Beware! This really helps my awful hot flashes. Personal cooling Works well. I was unsure about the dust clogging the filter. Cooling System-OK Was intended to help cool down waterproofing employee who works outside on tall buildings all day in the summer heat of Houston. A wet rag over the head worked better than the CoolWear. You would probably be happier using this at a Soccer Game. The CoolWare System is AWESOME! I live in the Sonoran desert and the CoolWare system really helps me stay cool when I am outside in 110 degrees plus temps. It really works. Does the trick Purchased to use it when working outside doing yard work to keep my husband cool during the hot summer months This is awesome I use this while golfing, riding in the cart. Also good for mowing on hot days. Really seems to work. Cool coolware Bought one for my husband and his brother for his birthday. My husband loves it and it will come in very handy when he is working in the yard during the hot summer. Its awesome. Easy to use. 111 degrees and did sweat at all. A real help for MS heat fatigue! I have Multiple Sclerosis, and the heat intolerance can really limit my summer activities. I purchased this device several years ago, and have been able to accompny my family to events in the desert Southwest without any heat related discomfort. I highly recommend this device to ANYONE with heat sensitivity. One caveat: the drier the climate, the more effective the cooling. Cooling while visiting family in the Midwest (with 90+ humidity) was markedly less dramatic. But still helpful! Outdoor airconditioner works. For those prone to fainting in 100 degrees days of summer this is the fix. Fill with water, put a battery in it, turn it on, and put it around your neck. Your ready for the game and the heat. Really does cool you off. Walk a mile to work and back and this really helped to keep me cool on the 90 degree days. I love this product. I use it everyday. I love this product. I use it while getting ready in the morning. It helps with hot flashes, etc. Dont judge a book by its cover This is the best thing I,ve ever tryed it can get very hot in seattle and eastern washington, even driving can be very hot just fill it up put it on and your ready to go I would tell anyone who gets hot to try it you,ll love it the fan is quiet,the cold air is great.if you got a bad one take it back you wont be sorry thank you. Jill D Knels. works great! use it while walking dog or in the car since my car AC is not working. Im not crazy about how it looks. I feel a little embarrassed like Im wearing a medical device for my neck and people stare at it. Also after filling and shaking the drips, so much water comes out I feel unsure much water is left in the device. Keeps Me Cool Helps me keep cool when Im outside working. Actually works You might look silly while wearing it, but it does work nicely. It actually gets cold, not just cool if you wait a few minutes to put it on while its running.. One size does not fit all... I cannot accurately rate this product due to not being able to use it. I work outdoors, it has been extrememly hot. I was very excited to get this and try it out. As soon as I put went to put it on, I realized that it was too large for my neck. Therefore, I am unable to use it and am very disappointed. If you are a petite person, I would not recommend it. I bought 2 of this product. I work in a food truck and it gets really hot in there and this helps alleviate the heat. BEATS THE OLD WET SCARF AROUND NECK Got it in the mail through a catalog order. Thought it would be complecated to use, it was not. We are currently going through the tripple digits heatwave here in far Northern California. Just got it the other day. I could not wait to jump on the easy to use directions to get it working. Next day went out walking on our river trail system and what a blessing it is to have! I am still waiting for somebody to ask me what that thing around my neck is. I have got some looks. Glad when I saw it in a recent catalog (I may not be able to mention here)had to jump on it and place my order. Id highly recommend it to others, yes indeedee!! Get one people. Keep your cool! This is one of the best purcchases I have ever made. It keeps you cool in the hottest weather, such as on a soccer field in the middle of summer in Eastern Washington. Every time I show it to someone, they want to keep it on. I only wish it kept you cooler for a longer time, although the refill bottle that comes with it fits well in your purse or pocket. It is the best! I wouldnt ever be without it. does not work I have followed the instructions to the letter and gotten no results. This item has no power and does not cool, even with ice cold water. Its going back!! Cool indeed I have had one of these cooling devices for several years now and use it while hiking and motorcycling. It really works in the Atlanta heat, which has exceeded 100 degrees most summers in addition to the high humidity. We are considering purchasing one for my wife and in-laws. It Works Its not earth shaking coldness, like sticking your head in the freezer, but my device works ok. I get a definite cold surface near the ends of the two arms of the device when the fan is on. These cold surfaces cover the jugular veins and carotid arteries in the neck, cooling your blood a few degrees and making you feel generally cooler. The fan doesnt seem very loud to me, just a quiet hum behind my neck. Make sure you get rid of the excess water after filling; some of the other reviews sound like they were trying to fill the device. The fan blows hot air over wet internal sponges, which cools the metal arms via evaporative effect. If you have too much water inside the device, the water cant evaporate properly; the sponges merely need to be moist. Fill the device and shake out all the water, leaving the damp sponges inside, and I think your results will be good. SAVE GRANDMA AT KIDS OUTDOORS GAMES I first bought one for my best friend, shes going through the HOT FLASHES and she would sweat at a drop, so I gave it to her for Xmas, she loves it, so I am at my grands softball and football, and that sun is hot..what a wonderful cool down. I love the Braves, and guest what will be in my bags on those hot, hot days here in Atlanta.... Poor product! Poor service! This is the biggest scam! It doesnt cool..the fan is loud and its bulky and heavy. I opened it and only had to try it on for a few minutes to experience this disappointment. Texas Heat My son and i go Scout camping every year in Texas in July! Are we crazy?!? Anyway, weve been using these neck coolers on our trips for the past 5 years. They work. Theyre not like, flipping on the A/C and blowing your hair back, but they do cool your neck and body. The reviewer that said, they put it on for a couple minutes and gave up, thats too bad, perhaps yours was defective, but the two we have [silver & blue] work, and give us a cool spot in the heat. Without the fan on the two inner sides are still cooler than normal without anything blowing on them. It Works! Evaporation happens when the air is allowed to interact with the water on the sponges. dont use a full tank of water. It Works! CoolWare 2 I have one of those devices myself, and I like it. the one I bought was a gift for my brother-in-law. A real "cool" device The silly thing really works! I have a health condition worsened by hot weather. Ill be ordering another one soon. It really helps me.


text:
The 3 most recent posts (archive)
Self hosting with cgit using Spiffy Posted on 2016-03-07
The recent trouble at GitHub, both cultural changes within the company and criticism from the community, reminded me how unstable the whole "free as in beer code hosting for the public good" idea really is. The good part is that it motivated me to finally look into setting up personal hosting for my own projects, because how hard can it be, really?
History shows: code hosting is unreliable
GitHub isn't unique in its problems, and switching away to a competitor with less problems isn't going to help in the long run. Besides, dormant projects will be irretrievably lost if GitHub ever shuts down unless someone happens to have a recent clone. To show that the problem is bigger than GitHub, let's look at some events that I remember:
- Ages ago in internet time, in 2005, the Dutch government set up a forge website to foster open source usage within the government. In 2009, it went offline. Most projects crawled off to SourceForge to die (including mine), but some survive to this day.
- The year 2012 is actually not that long ago, and I clearly remember when BerliOS shut down. I had used it for a project or two back when Subversion was brand new. They offered Subversion hosting when SourceForge and Savannah only offered CVS.
- In 2014, I found out the hard way that RubyForge had shut down a few months earlier. I lost the complete commit history for a maintenance-mode project at work.
- In 2015, Gitorious got assimilated and subsequently shut down by GitLab. At least, projects that didn't opt-in to a GitLab migration are available in read-only from their archive.
- Also in 2015, it became known that SourceForge was adding malware to popular free software downloads and lost all remaining goodwill from the community. It's probably a matter of time before it dies completely, taking down with it an Alexandrian wealth of source code.
- At work, we experienced some frustration when Bitbucket was having availability issues last year. They had issues several times in a short time span.
- At the beginning of this year, Google Code shut down. Tarballs of archived projects will stay available until the end of the year, but after that the code will probably be gone forever.
Except for Gitorious/GitLab, I have used and relied on every single one of these code hosting sites, either for personal or work-related projects, or as a contributor to someone else's project.
Is your code for the public good?
As a community, we take too much for granted: Code hosting, free of charge, is regarded almost as a public utility. But in reality, it's far from that: we are relying on untrustworthy companies, assuming they won't tamper with our code and keep their servers up and running forever, free of cost.
And to top it all off, there's the irony, or should I say hypocrisy, of the free software community's dependence on proprietary software for critical project infrastructure. At the same time, some of us are trying to explain to people why proprietary software is harmful to society. Most people just choose what's most convenient when deciding where to host code. We need to realise that this decision can be a political, philosophical and ethical choice. This is my main motivation to move all my personal projects away from Bitbucket.
There are basically two ways to achieve code hosting freedom: The first is to entrust your code to a nonprofit organisation which is committed to supporting free software projects without commercial interference. For instance, the Free Software Foundation offers Savannah. There are more specific hosting sites, like those from the Debian, Apache, GNOME and KDE foundations, but they don't accept all projects. So, for small and personal projects it is probably easier to self-host.
Now, I know I can't completely avoid proprietary code hosting sites due to the network effect of contributing to free software projects, but for projects I control, I can at least do better. With CHICKEN we're already hosting our own code (with mailing lists provided by Savannah). I decided to host my personal projects on a VPS of my own, which is a good dog fooding opportunity: I found and fixed a bug in the spiffy-cgi-handlers egg while setting this up.
The rest of this blog post will explain how I set up code.more-magic.net. It's not difficult, so hopefully I can inspire you to consider hosting your own code too.
Installing Git, cgit and CHICKEN
I knew right away that I didn't need all the bells and whistles that GitLab or Phabricator provide. I just want to host a few small personal projects, and if ever one really did become popular (ha ha), it would make sense to set up a dedicated server like we have for CHICKEN.
I also decided to convert my Mercurial repositories to Git, to consolidate my VCS usage: At work we're using it, CHICKEN is using it, and so are other projects I contribute to. I'm tired of context-switching all the time, and I'm finally acclimated to magit.
Since I'm only using Git, I don't need to worry about VCS independence of the code hosting tool. Preferably it shouldn't need much RAM, to keep hosting costs down. I narrowed it down to gitweb or cgit. I chose the latter because its UI is less messy and confusing than the former (to me, at least).
Installing cgit is easy as 1, 2, 3:
$ sudo apt-get install git cgit
It is possible to install CHICKEN from its Debian package, but as a core developer I always want the latest version. Besides, CHICKEN only depends on libc, so it's no big deal:
$ sudo apt-get install gcc make libc-dev $ wget https://code.call-cc.org/releases/4.10.0/chicken-4.10.0.tar.gz $ tar xzf chicken-4.10.0.tar.gz $ cd chicken-4.10.0
By installing it into /usr/local/chickens/4.10.0, you can have multiple versions of CHICKEN installed at the same time:
$ make PLATFORM=linux PREFIX=/usr/local/chickens/4.10.0 $ sudo make PLATFORM=linux PREFIX=/usr/local/chickens/4.10.0 install
A nice trick to help us remember which CHICKEN is being used for Spiffy is to symlink it by usage:
$ sudo ln -s /usr/local/chickens/4.10.0 /usr/local/chickens/spiffy
Setting up Spiffy under systemd
Let's start by installing the Spiffy egg. We'll also need a CGI handler to use cgit from Spiffy:
$ /usr/local/chickens/spiffy/chicken-install -s spiffy spiffy-cgi-handlers
First, we must create a small script to run Spiffy. Put this in /usr/local/libexec/spiffy.scm and make it executable:
#!/usr/local/chickens/spiffy/bin/csi -s (use data-structures spiffy uri-common intarweb cgi-handler) (spiffy-user "www-data") (spiffy-group "www-data") (server-port 80) (root-path "/usr/share/cgit") (error-log "/var/log/spiffy/error.log") (access-log "/var/log/spiffy/access.log") ;(debug-log "/var/log/spiffy/debug.log") (define cgit (cgi-handler* "/usr/lib/cgit/cgit.cgi")) ;; cgit expects its PATHINFO to contain the full request URI path. ;; However, this is a 404 handler, so we haven't resolved the path ;; to a final file. This means we don't know what part of the URI ;; is the "script path" and which is the remainder (the pathinfo). (handle-not-found (lambda (p) (let* ((uri (request-uri (current-request))) (path (string-intersperse (cdr (uri-path uri)) "/"))) (parameterize ((current-pathinfo (string-split path "/"))) (cgit path))))) ;; For the root request (otherwise you'll get 403 forbidden) (handle-directory cgit) (start-server)
Now, teach logrotate about the log files we configured, by saving this as /etc/logrotate.d/spiffy:
/var/log/spiffy/access.log /var/log/spiffy/error.log /var/log/spiffy/debug.log { daily missingok rotate 10 compress delaycompress notifempty # If you're in the adm group, you can read logs without sudo create 640 www-data adm }
This rotates logs daily, going back 10 days. Spiffy won't create the directory, and needs to be able to write to the file as www-data, so let's create the files and the directory:
$ sudo mkdir /var/log/spiffy $ sudo touch /var/log/spiffy/{access,error,debug}.log $ sudo chown -R www-data:adm /var/log/spiffy
The systemd script from our wiki is a bit too complicated, so I based mine on a simpler example from Python's Gunicorn documentation.
Put the following in /etc/systemd/system/multi-user.target.wants/spiffy.service:
[Unit] Description=Spiffy the web server After=network-online.target [Service] User=root Group=www-data WorkingDirectory=/usr/share/cgit/ ExecStart=/usr/local/libexec/spiffy.scm ExecStop=/bin/kill -s TERM $MAINPID [Install] WantedBy=multi-user.target
Note that we need to run it as root so that it can bind to port 80. It will drop the privileges itself. To register this unit file immediately, you'll need to reload systemd:
$ sudo systemctl daemon-reload
Now you can start Spiffy simply by typing:
$ sudo systemctl start spiffy
If you visit the website with a browser, you'll notice that the styling doesn't work yet. To fix that, we'll turn to the cgit configuration.
Configuring cgit
The default configuration puts cgit's assets at /cgit-css. You could set up Spiffy so that this is handled from /usr/share/cgit, but it's much simpler to remove the prefix from the configuration. While we're at it, let's add some Git repositories as well. Open up /etc/cgitrc and put this in there:
# cgit config, see cgitrc(5) for details css=/cgit.css logo=/cgit.png repo.url=testrepo1 repo.path=/srv/git/test1 repo.desc=This is my first git test repository section=A section for repo 2 repo.url=testrepo2 repo.path=/srv/git/test2 repo.desc=This is my second git test repository
Let's make sure the git repos exist:
$ sudo mkdir /srv/git $ sudo chown user:user /srv/git $ sudo chmod 755 /srv/git $ git init --bare /srv/git/test1 $ git init --bare /srv/git/test2
If you now visit the web site (no reload/restart necessary), you should see a fully functional cgit installation.
Improving the cgit configuration
The above is a simple configuration. My configuration currently looks more like the following:
# cgit config, see cgitrc(5) for details css=/cgit.css logo=/cgit.png root-title=My repositories root-desc=This is my repo browser. There are many like it, but this one is mine. # This will show a "clone" section at the bottom of each repo. clone-prefix=http://code.example.com ssh://code.example.com # If you don't want clones to be made over HTTP, you must disable it! #enable-http-clone=0 # When you want to serve eggs from cgit, snapshot links are helpful. # Note that snapshots can be downloaded even when links are not shown! snapshots=tar.gz # Show readme files in "about" tab. The colon tells cgit to take the # file from the default branch (usually master). IMPORTANT: See below! readme=:README readme=:readme readme=:readme.txt readme=:README.txt readme=:readme.md readme=:README.md # Process readme files with a file extension-specific formatter. # Be *very* careful with this! The default filter allows arbitrary # HTML which means XSS, cookie hijacking and other tricks, so either # run this on a sand-boxed domain or be careful who gets commit access. about-filter=/usr/lib/cgit/filters/about-formatting.sh # Highlight source files. This requires the "python-pygments" package. # For maximum dog fooding, I should use the colorize egg here :) source-filter=/usr/lib/cgit/filters/syntax-highlighting.py # Automatically scan /srv/git for repos. If you want to de-list some, # simply make them unreadable for the www-data user. Important: this # must be the last statement: everything after it is ignored! section-from-path=1 scan-path=/srv/git
Many thanks to this guide for pointing out the paths and configuration settings that cgit uses on Debian. There are two follow-up posts that are useful too. There's one with tips on how to use cgit in practice and one about how to tweak the layout.
Now go forth and host your own code!
Let's add a statistical profiler to CHICKEN! Posted on 2016-01-04
I just submitted a patch to add a statistical profiler to CHICKEN. In this post, I'll explain how it works. It's easier than you'd think!
Instrumentation-based profiling
There are two major ways to profile a program. The first way has been supported by CHICKEN as long as I can remember: You add instrumentation to each procedure. This counts how often the procedure is called, and how much time is spent in it.
You've probably done this by hand: You check the clock before and after calling a procedure, and print the difference. This can be useful when whittling down a specific procedure's run time. But when you want to know where the bottlenecks are in the first place, it's less practical. You don't want to manually add this stuff to all your procedures!
In order to easily instrument each procedure, you'll need language support, either in the compiler or in the run time. Unfortunately, the instrumentation itself will cause your program to slow down: all this tracking takes some time! That's why CHICKEN's profiler is part of the compiler: Instrumentation is emitted only when you compile with -profile. This option adds wrappers around each procedure, which look like this:
;; Original source code: (define (foo a b c) (print (+ a b) c)) ;; Instrumented version created by -profile: (define foo (lambda args (dynamic-wind ; Explained later (lambda () (##sys#profile-entry 0 profile-info-1234.4567)) (lambda () (apply (lambda (a b c) (print (+ a b) c)) args)) (lambda () (##sys#profile-exit 0 profile-info-1234.4567)) ) ) )
In the above code, ##sys#profile-entry starts the clock and increments the call count for this procedure, and ##sys#profile-exit stops the clock. The profile-info-1234.4567 is a global vector in which each procedure of this compilation unit is assigned a unique position.
To create the vector and assign the positions, a prelude is added to the compilation unit. This defines the vector and registers a position for each procedure:
;; Prelude for entire program: (define profile-info-1234.4567 (##sys#register-profile-info 1 #t)) (##sys#set-profile-info-vector! profile-info-1234.4567 0 'foo) ;; Not exactly true, but let's pretend because it's close enough: (on-exit ##sys#finish-profile)
This simply creates a vector of size one, and assigns the foo procedure to position zero. Then it requests ##sys#finish-profile to run when the program exits. This will write profile information to disk on exit.
We need dynamic-wind, but it creates problems
If you're not familiar with it, dynamic-wind is a sort of "guard" or "try/finally". Whenever the second lambda is entered, the first lambda ("before") is invoked, and when it is left, the third lambda ("after") is invoked. To understand why we need a dynamic-wind in the code presented earlier, consider the naive, incorrect implementation:
;; INCORRECT expansion: (define foo (lambda args (begin (##sys#profile-entry 0 profile-info-1234.4567) (apply (lambda (a b c) (print (+ a b) c)) args) ;; Not reached if + throws an exception. This ;; will happen when a or b are not numbers! (##sys#profile-exit 0 profile-info-1234.4567) ) ) )
Here, the "after" part will be skipped if the procedure raises an exception. Furthermore, a continuation might be captured or called in the procedure, even multiple times. This would cause the code to jump in and out of the procedure without neatly going over the before/after bits every time. Because of this, the profiler would miss these exits and re-entries, and hence it would not be able to accurately keep track of the time actually spent in this procedure.
The code with dynamic-wind will take care of non-local exits, stopping the clock whenever we jump out of the procedure, and starting it when we jump in again via a captured continuation.
While dynamic-wind is necessary, it also implies quite a heavy hit on performance: dynamic-wind isn't cheap. Even worse is the fact that it prevents the compiler from inlining small procedures in larger ones. Furthermore, the use of apply implies we'll need to cons up an argument list. Normally, arguments aren't put into a Scheme list, because doing so results in more garbage being created. This means that the performance shape of the profiled application can be quite different from the original, non-profiled application!
Statistical profiling
I've always wanted to look into fixing the profiler, but never had the energy to do so. Now that Felix wrote an entire graphical debugger for CHICKEN, I thought maybe I could lean on the debugger's infrastructure to make a better profiler. But it turned out I didn't have to!
First, I should explain statistical profiling. The basic idea is that the process is periodically sampled while it's running. These samples are taken by inspecting the instruction pointer and mapping it to a procedure. If you do this often enough (every 10 ms or so), you can get a pretty good idea of where the program is spending most of its time.
CHICKEN's trace buffer
Looking at the instruction pointer or C function is not very useful in CHICKEN, unless you like to pore over endless piles of machine-generated C code and to mentally map it back to Scheme. It can be educational and even fun, just like it can be fun and educational to read the assembly output of a C compiler, but it is generally unproductive and gets frustrating quickly.
So how can we take a snapshot of what a Scheme program is doing at any given time? It turns out that CHICKEN already does this: when a Scheme program raises an exception, the interpreter will show you a call trace. This is a bit like a stack trace in a "traditional" language, only it shows a trace of the execution flow that led to the error. Let's look at a contrived example:
(define (fib n) (if (< n 2) n (+ (fib (- n 1)) (fib (- n 2))) ) ) (define (run-fib) (let* ((n (string->number (car (command-line-arguments)))) (result (fib n))) ;; This line is wrong: It tries to append a number to a string (print (string-append "Result: " result)) ) ) (run-fib)
When you compile the program and run it, you'll see the output:
$ csc -O3 fib.scm $ ./fib 3 Error: (string-append) bad argument type - not a string: 2 Call history: fib.scm:12: run-fib fib.scm:7: command-line-arguments fib.scm:8: fib fib.scm:4: fib fib.scm:4: fib fib.scm:4: fib fib.scm:4: fib fib.scm:10: string-append <--
In a stack trace you would see only two lines, mentioning run-fib and string-append. Here we can see the trace of execution through the program, where it entered run-fib, then called command-line-arguments, proceeded to invoke fib five times in total, and finally it invoked string-append with the result.
There are advantages and disadvantages to either approach, but a trace makes more sense in languages with full continuations. It is the natural thing to do in a compiler that converts all programs to continuation-passing style. It does tend to confuse beginners, though!
So, these trace points are already inserted into every program by default. This happens even in programs optimised with -O3, because trace points have very little overhead: It's just a pointer into a ring buffer that gets updated to point to the procedure's name. You can choose to omit traces completely via -no-trace or -d0, but that's not the default.
Trace points are a good fit for our profiler: when taking a sample, we can simply take a look at the newest entry in the trace buffer, which will always reflect the procedure that's currently running!
Setting up a sampler
So how can we interrupt the program at a point in time, without messing with the program's state? This is simple: we ask for a signal to be delivered periodically. There's even a dedicated signal reserved for this very task: SIGPROF.
We'll use setitimer() to set up the timer which causes the signal to be delivered, even though POSIX says it's obsolete. It is much more convenient and more widely supported than the alternative, timer_create() plus timer_settime(). We can always switch when setitimer() is removed from an actual POSIX implementation.
The following setup code is simplified a bit (most importantly, error handling is omitted):
C_word CHICKEN_run(void *toplevel) { /* Initialisation code for CHICKEN */ /* ... a lot more code ... */ if (profiling) { struct itimerval itv; time_t freq = 10000; /* 10 msec (in usec) */ itv.it_value.tv_sec = freq / 1000000; itv.it_value.tv_usec = freq % 1000000; itv.it_interval.tv_sec = itv.it_value.tv_sec; itv.it_interval.tv_usec = itv.it_value.tv_usec; setitimer(ITIMER_PROF, &itv, NULL); signal(SIGPROF, profile_signal_handler); } /* ... a lot more code ... */ }
This sets up a profile timer. When such a timer expires, the kernel will send SIGPROF to the process. The code also registers a signal handler that will be invoked when this happens. It looks like this, much simplified:
struct profile_item /* Item in our profiling hash table */ { char *key; /* Procedure name, taken from trace buffer */ unsigned int sample_count; /* Times this procedure was seen */ struct profile_item *next; /* Next bucket chain */ }; void profile_signal_handler(int signum) { struct profile_item *pi; char *procedure_name; procedure_name = get_topmost_trace_entry(); pi = profile_table_lookup(procedure_name); if (pi == NULL) { pi = profile_table_insert(procedure_name); pi->sample_count = 1; } else { pi->sample_count++; } }
Maybe you are wondering why we're doing this in C rather than Scheme. After all, Scheme code is more readable and easier to maintain. There are a few reasons for that:
- Scheme signal handlers are blocked in some critical sections of the run time library. This would delay profiling until the program is back in user code, skewing the results.
- Core is compiled with -no-trace by default, but this can be turned off. Doing so can be useful when profiling core procedures, but not with a signal handler in Scheme. It would see its own code in the trace buffer, instead of what we want to trace!
- The profiling code should be as low-overhead as possible, to avoid affecting the results. Remember, this is one of the main problems with the instrumenting profiler! While CHICKEN produces fast code, it is faster if we do it directly in C, and it will trigger no garbage collections.
After the program has completed its run, we must write the profile to a file. I won't show it here, but the CHICKEN implementation simply writes each key in the hash table with its call count and the time spent in that procedure. The time is estimated by multiplying the sampling frequency by the call count.
This means we'll miss some calls, and therefore we'll under-represent the time taken by those procedures. On the other hand, some procedures are over-represented: if a sample is taken for a very fast procedure, we'll assign 10ms to it, even if it runs in a fraction of that. This is the essence of the statistical approach: if a program runs long enough, these measurement errors should balance out.
Comparing the two profilers
It's hard to come up with a small but representative example which is self-contained, so I'll use a few benchmarks from Mario's collection.
Low-level vs high-level
The first benchmark we'll profile is the kernwyk-array benchmark. It's taken from a historical set of benchmarks by Kernighan and Van Wyk, designed to compare the performance of various "scripting languages". This particular benchmark creates an array containing a million numbers by destructively initialising it. After that, it creates a second array into which the first is copied. This is repeated 100 times.
If we compile this with csc -O3 -profile and run it, the original profiler gives us the following breakdown:
If we compile this with csc -O3 and run it with -:p under the new profiler, we'll get a radically different result, even though the total run time did not change much:
The statistical profiler is a bit more "low-level": It tells you exactly the procedure call and line that is taking the most time. On the other hand, the instrumentation-based profiler shows us a breakdown in which procedure the most time is spent. The percentages and "seconds" column are also different: the original profiler shows us the cumulative time each procedure takes up. Thus, a main entry point will always be at 100% at the top.
But the most significant difference is in what this tells us about where the time is spent: the original profiler tells us that create-y is a little slower than create-x. Reading such output would lead me to think that probably vector-ref and vector-set! take the most time. If we remove all calls to those, the program takes 2.6 seconds, and the profiler output looks more or less the same, so they're not the biggest contributor to the total run time. Instead, make-vector is, due to the fact that it allocates, which will cause garbage collections. And garbage collections are the real time consumers in this benchmark!
Precision of the two profilers
The next benchmark we'll look at is the nfa benchmark. I'm not sure about the origins of this benchmark. It emulates a depth-first NFA search for the regular expression ((a | c)* b c d) | (a* b c). This is matched against a string containing 133 "a" characters followed by "bc".
The output of the instrumenting profiler is completely useless, because only toplevel procedures are instrumented:
This is another reason for wanting to "fix" the profiler: it doesn't give an inside view of where large procedures or closures are spending their time. You can manually tweak the programs by lifting all the inner procedures up to the toplevel. If these procedures close over some variables, you must turn those into extra arguments and pass them along when calling these procedures. It's a bit tedious, but if we do this for the benchmark, we'll get output that is more useful:
Now, if we take the original, untweaked program, and run it through the statistical profiler, we'll immediately get useful output:
This also shows a disadvantage of the statistical profiler: the call counts are all wrong! That's because the state procedures are extremely fast: in the original profiler you can see that they run 20 million times in 8 seconds or so. Because they're so fast, the average time per call is close to zero. This results in the timer being too slow for sampling each procedure while it is running. It's so slow we only see an extremely small fraction of all calls!
Nevertheless, we can clearly tell that most time is spent in state1 and state3. The calls for state2 are not even registering, because this state will return much sooner: there are almost no b, c or d characters in the input pattern, so it will just quickly "fall through" this procedure without a match. The reason it shows up in the original profiler is because the instrumentation itself is interfering with an accurate reading of time spent in the procedure.
The total run time of the instrumented and tweaked version is almost 31 seconds, while the total run time of the version with statistical profiling is less than 8 seconds on my laptop! Let's take a closer look at that overhead.
Instrumentation overhead
Having two distinct ways of gathering profile data opens up a really cool opportunity. We can measure the overhead introduced by the instrumentation profiler, by running it under the statistical profiler!
Let's do that on the "tweaked" NFA benchmark again:
$ csc -O3 -profile nfa.scm $ ./nfa -:p 30.88s CPU time, 2.404s GC time (major), 163050000/149475510 mutations (total/tracked), 5972/113664 GCs (major/minor)
And let's look at the result:
This clearly shows that the instrumentation machinery completely dominates the profile: A stunning 27 seconds are being soaked up by ##sys#profile-entry and ##sys#profile-exit!
Of course, this is just a contrived example of profiling a benchmark. An experienced Chickeneer would have been able to just tell from the output of the benchmark with and without profiling:
$ csc -O3 nfa.scm $ ./nfa 8.156s CPU time, 0.012s GC time (major), 32/6849 GCs (major/minor) $ csc -O3 -profile nfa.scm $ ./nfa 30.628s CPU time, 2.316s GC time (major), 163050000/149475510 mutations (total/tracked), 5970/113666 GCs (major/minor)
Aside from the obvious increase in CPU time, you can see that the number of mutations went from zero to more than a hundred million. The number of garbage collections is also many times higher. This would spell certain doom if you saw it in a real program!
It's too early to be sure, but it looks like a statistical profiler is a useful alternative to instrumentation. On the other hand, for some programs the situation is reversed:
- Programs blocking SIGPROF offer fewer sampling opportunities, resulting in incomplete profiles.
- If you need the exact number of procedure calls, instrumentation is your only real option.
- When there are lots of smallish procedures called by a few toplevel procedures, the noisy low-level output of the statistical profiler can drown out the useful information.
I think if we can push down the performance bottleneck caused by the instrumentation, it'll become a lot more useful again. This won't be easy, because some of the overhead is fundamental to its use of dynamic-wind and the way inlining is prevented by it. In the mean time, please test the statistical profiler and let me know how it works for you!
The Flattr "experiment" Posted on 2015-10-25
Maybe you've noticed the little Flattr icons that I've added at the bottom of each post, and now you're wondering if, and why, you should support my blogging efforts with a donation.
Let me state this first and foremost: I enjoy writing posts about subjects that interest me and I learn a lot from the research I put into my posts. So, even without donations I'd continue doing so. But, it's also a fact that many of my posts demand a lot of effort. Researching, writing and illustrating an in-depth post can take weeks, depending on my energy levels and other activities.
I hope you now understand why this blog is updated so slowly. I'm convinced that few updates with informative, long posts is better than frequent 100-word status updates of my projects. That would be a waste of your time! But because it takes so much time and effort, sometimes I struggle to find the motivation for writing new posts.
This is where Flattr comes in: a small donation is a wonderful way to express how much you liked a post, and it can really lift my spirits and motivate me to write more!
As an added advantage, by seeing which posts get Flattr'd the most I can get a better idea of what you, the readership of my blog, like and what you don't like. This will help me choose which topics to write about more.
Why I refuse to put ads on my blog
Of course, I know that placing ads on my blog would be the easiest way to get some returns from the hard work that I put into my posts. This would easily repay my hosting costs. However, in my opinion, the advertising industry is the most toxic influence on the web today. It is completely absurd that it's considered normal for companies (and individuals with blogs...) to be rewarded for filling up our screens with obnoxious garbage, and for eroding our privacy through various tracking mechanisms. They don't care that all this digital pollution is only going to be acted on by a tiny fraction of all visitors (if any). It is downright disrespectful; personally I think it's as bad as spam e-mail.
In my opinion, Flattr is a much more benign way of receiving money for my efforts. The company was created by a founder of The Pirate Bay, as a better and more direct alternative for rewarding creators than the commercial exploitation of copyright law by middle men. It's also non-unobtrusive: just a small icon in each post. The integration that I'm using is a simple hyperlink, so no nasty tracking cookies or web beacons; I'm even hosting the icon image myself.
Besides that, Flattr is completely voluntary on the visitor's part. This means that any rewards are directly linked to people's enjoyment of my posts. This encourages informative posts of substance rather than click-bait titles with disappointing content which would draw more traffic, just to get more ad impressions.
These are my views on the matter. If you're using ads on your blog, I hope I've managed to convince you to switch away from ads to visitor-supported donations. And if you like my posts, I hope you'll consider making a small donation.
Integrating Flattr into Hyde
To make this post at least a little bit on-topic, I'd like to share how I added the Flattr button to my Hyde configuration. I added the following definition to hyde.scm (slightly modified):
(use hyde uri-common) (define (flattr-button #!optional (page (current-page))) (let* ((base-uri (uri-reference "https://flattr.com/submit/auto")) (attrs `((user_id . "YOUR FLATTR ACCOUNT NAME") ;; A bit ugly, but Hyde does it like this, too (url . ,(string-append ($ 'base-uri page) (page-path page))) (category . "text") (language . ,(or ($ 'lang page) "en_GB")) (title . ,($ 'title page)))) ;; Flattr doesn't grok semicolon as query param separator... (flattr-page-uri (parameterize ((form-urlencoded-separator "&")) (uri->string (update-uri base-uri query: attrs))))) `(a (@ (class "flattr-button") (href ,flattr-page-uri)) (img (@ (src "/pics/flattr-button.svg") (alt "Flattr this!") (title "Flattr this post!"))))))
Then, in my SXML definition for article layouts which I call, surprise, surprise! article.sxml:
;; -*- Scheme -*- () `(div (@ (class "article")) ,@(prev/next-navigation) (h1 (@ (class "article-title")) ,($ 'title) " " (small (@ (class "date")) "Posted on " ,(format-seconds (page-updated)))) (div (@ (class "article-body")) (inject ,contents) ,(flattr-button)) ,@(prev/next-navigation))
The button immediately follows the contents of the blog post, which makes sense because only after reading a blog post, you'll know whether it was worth something to you.


text:
Find events, performances, things to do in Erie, Feb. 4-10
Check out some of the best works of Mercyhurst University students at the annual Juried Student Art Show in the Cummings Gallery in the university's Mary D'Angelo Performing Arts Center. The gallery is open weekdays from 9 a.m. to 4 p.m. and weekends from 2 to 5 p.m.
Cost: Free
Info: Call 824-2092.
Rock bands Daughtry and 3 Doors Down will present a concert, 7 p.m., at Erie Insurance Arena.
Cost: $34.50-$52.50
Info: Call 452-4857 or visit www.erieevents.com.
See the film "Laurence Anyways," 7 p.m., at the Erie Art Museum, 20 E. Fifth St. The film follows the 10-year relationship between a transsexual and her lover.
Cost: $5
Info: Visit www.filmsocietynwpa.org.
Work on keeping that New Year's resolution to pursue fitness this year by joining a three-mile hike through a portion of Presque Isle State Park, 6:30 to 8 p.m. Meet at the Ranger Station on Presque Isle.
Cost: Free
Info: Call 217-9638.
Those 21 and older can sample the brews of six regional microbreweries at Ales for Sails, 5:30 to 8:30 p.m., at the Bayfront Maritime Center, 40 Holland St.
The cost of admission will cover local beer samples, appetizers, a commemorative glass, music, boat-shop tours and more. Proceeds from the event will benefit the center.
Cost: $25
Info: Visit www.bayfrontcenter.org.
The Mardi Gras celebration "A Touch of New Orleans on 23rd and Reed" takes place, 5 to 10 p.m., at the Holy Trinity Parish Social Center, 2220 Reed St.
This event features music by the Dixie Doodlers, authentic New Orleans fare, games of chance and more.
Cost: Free admission
Info: Call 456-0671 or visit www.holytrinityrc.org.
Catch the Cole Porter musical "Anything Goes," starting at 2 p.m., at the Erie Playhouse, 13 W. 10th St. The musical will run through Feb. 17.
Cost: $13.50-$22
Info: Call 454-2852, Ext. 0, or visit www.erieplayhouse.org.


text:
Bagging a trophy buck is the dream of every deer hunter. Over the past 40 years, more than 6,000 have scored high enough to earn a spot in the S.C. Department of Natural Resources' list of trophy white-tailed deer, and more are expected to be added as DNR begins its annual March antler measuring campaign.
2014 Antler Measuring Sessions
March 4: 2-8 p.m., Hunters Headquarters, 1845 Calhoun Rd., Greenwood, 864-223-1911.
March 6: 2-8 p.m., Durham's Grocery, 3210 Walhalla Highway, Six Mile, 864-868-2070.
March 7: 8:30 a.m.-5 p.m., Wilson's Taxidermy, 158 Victory Lane, Bath, 803-593-3357.
March 17: 2-8 p.m., Academy Sports, 100 Peachwood Centre Dr., Spartanburg, 864-216-8960.
March 26: 9:30 a.m.-4 p.m., Dennis Wildlife Center, 305 Black Oak Rd., Bonneau, 843-825-3387.
March 28: noon-8 p.m., Palmetto Sportsmen's Classic, State Fairgrounds, Columbia, 803-734-3886.
March 29: 9 a.m.-6 p.m., Palmetto Sportsmen's Classic, State Fairgrounds, Columbia, 803-734-3886.
March 30: 1:30-6 p.m., Palmetto Sportsmen's Classic, State Fairgrounds, Columbia, 803-734-3886.
The following areas are by appointment only during March
DNR office, 311 Natural Resources Road, Clemson, 864-654-1671 ext. 16.
DNR office, 1000 Assembly St., Columbia, 803-734-8738.
DNR office, 295 S. Evander Dr., Florence, 843-661-4768.
Webb Wildlife Center, 1282 Webb Ave., Garnett, 803-625-3569.
DNR office, 124 Wildlife Dr., Union, 864-427-5140.
The record book can be found online at dnr.sc.gov and includes 5,936 typical racks and 232 non-typical racks. To qualify for the records list, typical antlers must score 125 points while non-typical antlers must score 145 points. Scoring is based on the Boone and Crockett system.
Thirteen scoring sessions have been announced across the state, with the main event being a three-day session March 28-30 during the Palmetto Sportsmen's Classic at the State Fairgrounds in Columbia. Area scoring sessions include March 26, 9:30-4 p.m. at the Dennis Wildlife Center, located at 305 Black Oak Road in Bonneau (843 825-3387). Antlers also can be scored by appointment throughout March at the Webb Wildlife Center in Garnett (803 625-3569).
"It really ramped up when the Palmetto Sportsmen's Classic began," Ruth said of the event, which is celebrating its 30th year. "One-third to one-half of all the scoring we do is in that one event."
Ruth said last year there were 607 sets of antlers scored and 246 met the minimum to be included in the records list. During the 2013 Palmetto Sportsmen's Classic, biologists scored 264 sets of antlers.
"Generally, over the last three to five years we've been doing 550 plus or minus sets of antlers with approximately 225 making in onto the list," Ruth said.
In recognizing outstanding deer, biologists also gain information about the state's deer population from the scoring sessions.
Graphs on trophy deer harvest resemble a saw blade, Ruth said, with a really good year generally followed by a couple of down years.
The top trophy deer counties are Aiken, Anderson and Orangeburg. Generally, larger deer are more abundant in areas that have fewer deer.
Hunters must provide documentation that includes the date and county of the kill and sign a "fair chase" statement. Antlers in velvet or those that are broken or repaired or antlers separated from the skull plate cannot be officially measured for the state records list.
Hunters are also asked to bring in the lower jawbone of the animal if it was extracted during taxidermy or otherwise saved. This helps biologist determine the deer's age. An accurate weight measurement is also helpful.


text:
Surprise: Disney still not ready to announce new 'Star Wars' trio
LAS VEGAS - No one really expected Walt Disney Studios to break significant news regarding "Star Wars: Episode VII" during the company's presentation at CinemaCon this morning, and studio chairman Alan Horn didn't disappoint.
Horn announced the film would begin shooting in May, but also that while they weren't ready to announce any names it would feature "a trio of new leads and some familiar faces." So, basically the standard line from last week's press release.
Actors such as "GIRLS'" star Adam Driver, Oscar nominee Lupita Nyong'o and "Breaking Bad" star Jesse Plemmons have all been rumored to be appearing in the film. Additionally, original trilogy stars Carrie Fisher, Harrison Ford and Mark Hamill have all teased publicly at one time or another over the past 18 months that they will appear in Episode VII, but Disney, Lucasfilm or director J.J. Abrams appear to have quieted their public statements over the past few months. Those icons certainly fit the "familiar faces" mention as would R2D2 or C-3PO.
With production beginning less than six weeks away it's unclear if there will be any other public event for Disney to reveal the cast of the expected blockbuster.
"Star Wars: Episode VII" will open nationwide on Dec. 18, 2015.


text:
Average customer review 4.5 out of 5 stars158 reviews
You'd be forgiven for thinking that this was an oxygen mask, but the potent powers of Doc Johnson's pussy pump are far more likely to leave you breathless than give respiratory aid. Place over your kitty and squeeze the bulb for heightened sensations.
Only: $38.99
Product Description
You'd be forgiven for thinking that this was an oxygen mask, but the potent powers of Doc Johnson's pussy pump are far more likely to leave you breathless than give respiratory aid. Place over your kitty and squeeze the bulb for heightened sensations.
When held against the labia and clitoris, the patented valve system allows you to create a vacuum seal over the vaginal area, increasing blood flow, enlarging the clitoris and labia, and wildly increasing sensitivity. And, as we all know, greater sensitivity = greater orgasms. Winner.
Detaching from the hose and pump, the patented valve system means that this hugely popular pussy pump can be worn without any annoying attachments. For a secure fit, rub some good-quality lubricant around the seal before applying.
Key Features:
- Pussy pump with palm-sized bulb and quick release valve
- Patented valve system retains vacuum without the hose
- Simple, ergonomic design for ease-of-use and comfort
- Provides gentle suction for heightened sensitivity
- Perfect for masturbation and foreplay
- Cup measures 4.2 x 3 inches
- Easy to clean
How it measures up
- Base diameter: 4
- Length: 4 inches
How it feels
- Contains latex: No
- Contains phthalates: No
- Flexibility: Rigid
- Material: Acrylic Plastic
- Waterproof: No
Product Videos
Buyer's Guide: Pussy Pumps Explained
To watch videos, you need Version 9 or greater of the Flash Player. Click here to see which Flash Version you have. If you have Version 8 or less, get the latest Flash Player here.
Intrigued by what a pussy pump could do for your sex life? Annabelle Knight explains the benefits of a pussy pump and how to get to grips with one. Read more: How to Use a Pussy Pump.
Doc Johnson Pussy Pump
To watch videos, you need Version 9 or greater of the Flash Player. Click here to see which Flash Version you have. If you have Version 8 or less, get the latest Flash Player here.
A classic quality pussy pump from Doc Johnson with a clever twist - a patented valve, allowing you to remove the hose and continue pumping even after you've created the vacuum seal! Perfect for use with a partner, you'll experience amazing heightened sensations and incredible pounding orgasms!
Buyer's Guides
Whether you want to take your first steps with a bedroom bondage kit or go the whole hog and recreate scenes from Fifty Shades of Grey, our bondage guides are here to help.
Bondage Guides > How to Use a Pussy Pump
Bondage Guides > Beginner's Guide to Bondage
Bondage Guides > How to Introduce Bondage to Your Relationship
Explore more from our collections…
Customer Reviews
Doc Johnson Pussy Pump 158 4.5 out of 5 stars
See all 158 customer reviewsOrder by:Write your own review
- 5 star
- 113
- 4 star
- 26
- 3 star
- 6
- 2 star
- 5
- 1 star
- 8
- Newest
- Most helpful
- Rating
Doc Johnson Pussy Pump
Only: $38.99
Doc Johnson Pussy Pump
Reviewed: July 30, 2016 by Heavenly elks, a Straight Single Female
I hadn't even heard of these until last week. I've been single for many years apart from a recent fling that awakened me to how much I miss sex. I have ordered a whole box full of toys recently but this my favourite.
It is so easy to use and very comfortable, even with maximum suction. It sucks my lips up and fills the cup which is a huge turn in itself. I also turned on my side and used it from behind which got a slightly lower area. This really got my insides swollen. I was then in the mood to introduce some of my other toys.
With my butt plug in I actually struggled at first to get my rabbit in. I was so swollen I had to use more force than usual and I'm a mum! I was orgasming in no time and it was mind-blowing. My clit has never been so huge. When I got dressed I could feel my pussy rubbing on my clothes.
I didn't measure my pussy first, the fact I managed to attach in different positions I really can't see anyone having a problem.
If you are thinking about buying one these, seriously do it. Amazing!
- Pros
- The swelling inside and out.
- Cons
- Nothing it's amazing, wish I had known about years ago.
- Bottom line
- Best thing ever, amazing, awesome, WOW.
- 5 people found this review helpful. Was this review helpful to you? Yes
Great pump, very durable
Reviewed: May 17, 2016 by Sexygabby69, a Bisexual Married Female
Very nice toy good quality. You've gotta get used to it, it feels weird at first then it starts feeling good after getting used to it.
I'd recommend it, it gets you more sexually aroused during its use and makes you more sexually enticed to use it more often.
Thanks, hope you enjoyed reading.
- Pros
- Good, very powerful sucking.
- Cons
- Nothing.
- Bottom line
- Great pump, very durable.
- 3 people found this review helpful. Was this review helpful to you? Yes
Order by:
Reviewed: April 26, 2016 by KKell
The husband was away and bought this to arrive on the day he got home! I was unaware of his purchase but was pleasantly surprised.
Quite happy with himself, laid me down and we started to try it out, first without lube, which wasn't bad, but then with lube, which created more comfort.
We played around using different amounts of pressure to find what was comfortable for us during foreplay. Once released you could see the effects of it and it sure did work!
Safe to say the husband done good!
- Pros
- Increased sensitivity.
- Cons
- Nothing.
- Bottom line
- Fantastic product, would recommend.
- 4 people found this review helpful. Was this review helpful to you? Yes
- Newest
- Most helpful
- Rating


text: Testing New Generation Medical Devices Medical device and materials innovation demands detailed analysis of the mechanical performance of components. Andie Davidson June 2, 2015 2 Comments It is hard to overestimate the importance of quality and reliability in the area of medical devices since the lives and well-being of individuals are at stake and the industry is so tightly regulated. Read More


text:
Elly Luxton Model
Marc HubbardPhotographer Male Birmingham, England, United Kingdom
My Website: Marc Hubbard Glamour PhotographerMy MM URL: http://www.modelmayhem.com/marczane
Mayhem # 1611748
About MeLIKE me on my facebook page: http://www.facebook.com/glamourmarc
Follow me on Twitter: http://www.twitter.com/glamourmarc
I am a full time professional photographer, fully qualified with the "British Institute of Professional Photography". I shoot glamour models on a syndication basis and have many contacts with lads mags and newspapers.
Have you worked with Marc Hubbard? Add Credits for Marc Hubbard! >>
Elly Luxton Model
Lily Douce Model
Ludella Hahn Model
Kristie08 Model
stefacos Retoucher
Hollie Zook Model
Loading Content


text:
Cheerful, Creative, Crocheter and Collector of all things Colorful describes me to a C--er, I mean a T. My sweet, left-handed granny taught me (a righty) to crochet when I was but a youngster. My ...
Cheerful, Creative, Crocheter and Collector of all things Colorful describes me to a C--er, I mean a T. My sweet, left-handed granny taught me (a righty) to crochet when I was but a youngster. My first project was a hideously long scarf for my dad. It seems I just didn't know when to stop--something my teachers told me in school, too! Although crochet and other craftiness have always been part of my life, I channeled my energy and creativity into teaching Jr. High and High School sciences for many years.
When I am not "yarning" (as described by my youngest), I treasure time with my family, friends, running, thrift store shopping, and learning new creative skills.
You can also follow me at:
Facebook: facebook.com/feltedbutton
Blog: feltedbutton.com
Pinterest: pinterest.com/feltedbutton
Etsy: feltedbutton.etsy.com
It's Stashing Tote is perfect for taking your yarny projects on-the-go with you. Use it as a diaper bag, market tote, or anything you wish. Unbutton the tabs for more room. The straps are long enough to comfortably hang on your shoulder, too. Because it is felted, it is durable, strong and holds its shape well.
The 9 page pattern includes:
--a complete materials list, including yarn quantities, color and type (feltable wool yarn required)
--stitch abbreviations, notes and suggestions, and a special stitch section
--detailed instructions for making the motifs for your bag and how to put it all together
--a color placement diagram
--thorough instructions for felting your bag
--several photos for additional clarity
This pattern has been tested and edited for errors and clarity.
Written in American English crochet terms.
Due to the nature of patterns, this pattern may not be returned or exchanged. All sales are final. This pattern may not be redistributed or copied in any way. Finished items may be sold, I just ask that you give credit to me, Susan Carlson at FeltedButton.com or feltedbutton.etsy.com for the pattern.
Gauge: small square in pattern = 5in (12.5cm)
1000 yards of Worsted weight


text:
Retort to misinformed Shiakh Mohammed Yasin
Retort to misinformed Shiakh Mohammad
By Omar Sindi - ekurd.net
Read more by Omar Sindi
Retort to misinformed
Shiakh Mohammad Yasin 6.12.2011
The Article 140 May
Prevent Iraqi State of Disintegration
Response to Article:
Omar Sendi's observations in support of KDP
Baghdad: Lesson Not
Learned 4.10.2011
In response to
Baqi Barzani's article "Who is to blame for
Turkish bombings?" 15.9.2011
Protests and Riots in Zakho-Duhok,
Iraqi Kurdistan - Related links
An Immediate Appeal to
Human Rights Organizations 6.12.2011
Barzani's KDP urges
Kurdistan Islamic Union KIU end media war
Clash Between Political
Parties In Iraq's Kurdistan 6.12.2011
Yazidis in Iraqi
Kurdistan fear attacks 5.12.2011
KDP's covert role in "
Badinan vandalism case 5.12.2011
KHRC condemns attacks
on minorities in Iraqi Kurdistan 5.12.2011
Mullah Denies
Responsibility for Kurdish Riots in Iraqi
Kurdistan 5.12.2011
More liquor stores
torched in Duhok, Iraqi Kurdistan 5.12.2011
Arsons spread across
Iraq's Kurdistan region 5.12.2011
U.S. Consul General to
Kurdistan Condemns Zakho Booze Burning
Iraq's Kurdistan president condemns violence in
Zakho, calls for calm 4.12.2011
Dictator Massoud
Barzani must go! 4.12.2011
Beware of Iran's sabotage efforts! 4.12.2011
Press freedom first
victim of political unrest in Iraqi
Kurdistan 4.12.2011
Al-Jazeera TV Channel's
staff attacked in Duhok in Iraqi Kurdistan
KIU Center of Erbil
Demonstrates: Iraqi Kurdistan 3.12.2011
Official statement by
Kurdistan Islamic Union KIU Politburo on
Bahdinan Riots 3.12.2011
Anti-KRG protests in
Zakho, Iraqi Kurdistan 3.12.2011
Iraq's Kurdistan
Islamic Union (KIU) opposition party office
attacked and set on fire in Zakho 3.12.2011
Kurdistan Islamic Union responds to attacks-
interview 10.12.2005
The opinions
expressed in this commentary are solely those of the
Copyright © 1998-2016
Kurd Net®
. All rights reserved Ekurd.net
All documents and images on
this website are copyrighted and may not be used without the
permission of the copyright holder.


text: Show transcribed image text I have included the solutions for part a, b, c for this question I just need help with d The magnetic field intensity of a linearly polarised uniform plane wave propagating in the +y direction in seawater [ epsilon r = 80, nu r = 1, sigma = 4 (S/m)[ is H rightarrow = a^z0,1 sin(1010 pi t - pi / 3) at y = 0. Determine the attenuation constant. the phase (propagation) constant, the intrinsic impedance, the phase velocity, the wavelength, and the skin depth. Final the location at which the amplitude of H rightarrow is 0.01 A/m. Write the expressions for E rightarrow (y, t) and H rightarrow(y, t) at y = 0.5 m as functions of t. Find the power loss per unit area into the seawater.


text:
US & Canada Headquarters
EMEA Headquarters
APAC Headquarters
Japan Headquarters
CALA Headquarters
The most powerful PSX on the market, now virtualized within the Sonus SBC, the ePSX (embedded PSX) provides policy management capabilities to network managers as a virtualized application in a cost effective, smaller footprint within the Sonus Series 5000 and 7000 Session Border Controller platforms. Sonus has used the same effective codebases in its hardware version PSX for enterprises and small service providers looking to centralize communications management and larger service providers looking to be able to rapidly deploy a new Point of Presence (PoP) or to augment their failover capabilities.
Bring together multi-vendor environments, create centralized dial plans and call routing through this virtualized platform.