A guide to building the Pass F4 amplifier.
Interesting - board is $7. I have not looked the the BAs that closely. Anyone post one of those to make standalone preamp? Need to add some sort of attenuation for volume. I am sure there are a few other details.
Build two F4's and go balanced with BA3 and you have something very nice. Has P3 to adjust sound to your liking. No feedback is special sound.
...Shape the sound , Man!
Last edited by Zen Mod; 18th April 2013 at 09:50 AM.
Like anything, put your selector switch then your pot/stepped attenuator before the input of the gain stage. Easy!
PSU could be done a million different ways, choose your preferred flavor.
I would be happy to help, if you would like a nudge in the right direction.
Order complete - F4 and BA3 front end boards.
You can go naked with f4 if using Ba3 FE.
1/3 up from the bottom is a nice place to start.
It sounds that good that I would want to get naked. Sorry - could not resist. Not sure I quite follow. I would be using with Pearl 2/TT, CD and Sonos. If I only had a DAC or digital source I could go naked - just use the BA3 board as is between the source and F4. Use source to attenuate.
Dropping the Jfet FE on F4. Basically complete BA3. You can wire F4 with switchable input so that it can be used as plain F4 or Naked F4.
It's quiet and I had it on hand.
The next DIYaudio PSU circuit board will be able to hold (8) caps with 35mm diameter - Once those are available I will make a big Brutus cap bank.
Papa uses (8) 15,000uf, so he must be sissy as well? LOL!
However, there are no holes drilled in it except big one for transformer, so flipping the sub-plate will actually be easy. I need to take it apart anyway to attach the rest of the chassis pieces.


text:
Yeovil Town confirm they are in talks with potential investors
A possible US banker is thought to be in discussions with The Glovers' board with a view to a takeover
Daniel EvansHead of digital sport
Yeovil Town manager Darren Way (Image: Tom Sandberg/PPAUK/Pinnacle Photo Agency Ltd)
Yeovil Town have confirmed they are in talks with possible investors.
As previously reported, potential backers from the US are thought to be on the brink of buying a controlling share of The Glovers, subject to FA and EFL approval.
In a statement, the club said: "With respect to rumours which have been circulating, Yeovil Town Football Cub can only confirm that confidential discussions have been taking place with certain potential investors.
"No further comment will be made unless, and until, these discussions result in agreement(s) being reached which are approved by the relevant authorities.
"The board of directors is continuing to manage the club with the emphasis, at the moment, on working with the first-team manager to consolidate and improve the playing squad to secure consistently improved results."
Rumours gather pace that Yeovil Town are on brink of takeover by US backer
On Tuesday Chris Spittles, who commentates for the BBC and provides match reports for Somerset Live, tweeted: "I understand that a takeover at YTFC is imminent and could be completed this week.
"(The) deal has been agreed with an American buyer and now just needs to be ratified by FA and EFL. Club advisor Mark Palmer has been key to facilitating the deal.
"This deal has been in the offing for some time and is NOT the previous consortium who tried to buy YTFC just over a year ago.
"The new owner will take over a controlling interest in the club from Norman Hayward."
A sunset over Huish Park (Image: Cameron Geran/PPAUK)
Glovers Trust 'cautiously optimistic' about potential Yeovil Town takeover
Former Yeovil Town board member Andy Rossiter has been trying for some time to lead a consortium to buy the club from owner Hayward and chairman John Fry.
The interest from the US is thought to be completely different to that endeavour and, for a club that has been struggling for cash and scrapping at the bottom of League Two for a number of seasons, new investment would surely be seen as a positive by the Green and White faithful.
The Glovers Trust are "cautiously optimistic" that any takeover would lead to a bright future for the club and its supporters.

redpajama_set_name: RedPajamaCommonCrawl


The European Ideas Network is an open pan-European think-tank process designed to promote new thinking on the key challenges facing the countries of the European Union. Sponsored by the EPP Group, the largest political group in the European Parliament, the network was launched in the summer of 2002 and has rapidly emerged as an important meeting-point and intellectual cross-roads for the centre-right in European politics.
With an active membership of around 3000 policy-makers and opinion-shapers across the European Union, the EIN brings together politicians, businessmen, academics, policy advisers, think tankers, journalists and representatives of civil society who share a common outlook Europe-wide, as well as outside non-party experts and commentators interested in the public policy issues being addressed. The network offers a unique forum in which to develop innovative ideas about the policy challenges facing Europe in the years ahead and to evolve practical solutions to help to address them.
The EIN operates through twelve working groups on broad policy questions and a large annual conference - the EIN Summer University - normally held each September. The network also serves as a framework for national think tanks and political foundations of the centre-right to work together at European level. Currently 264 such organisations are associated with the EIN in this way.
The policy statements contained on this website are generated by working groups within the European Ideas Network. As such, they do not necessarily represent the views of all EIN members, nor are they official positions of the EPP Group which sponsors the network.
organise conferences and seminars across Europe, backed up by a conscious strategy of exploiting new technology to promote the exchange of ideas.
The European Ideas Network is organised, administered and funded by the EPP Group in the European Parliament. The Presidency of the Group appoints its Chairman and Board, and assigns staff support to its operations.


What bands or types of music do you listen to when you exercise?
What are some possible causes of earlobe cramps?
Do you burn more fat when you exercise with an empty stomach?
Which takes longer .. asking your question, or trying to find an appropriate category to put it in ?
How do I exercise in bed?
How do i get a flat tummy?
What is it exactly about female bodybuilders that bothers you?
Can anyone reading this bench press 300 pounds in one rep?
Have you ever used a rebounder & was the results good for tone & fitness ?
40% of people who exercise have tried to improve their workouts by spending $100 or more on THIS, what is it?
Honestly, what is the best way for a woman to get rid of belly fat?
What is the ideal weekly workout for a teenage boy wanting a better chest, biceps, triceps, shoulders, and forearms?
I am 24 years old 6'2 180 lbs I lift weights at home using my bench and free weights,for about 1.5 - 2 hrs. rest then run 5 miles I do this every M W F while also eating right. I don't wanna be huge just toned and lose extra lil fat and gain muscle, work?
Whats the best thing to start off a teenager recovering from a broken arm to work out? He just got his cast off but wants to start working out and look better before freshman year starts for him this august.
What type of cardio exercise is the most effective to lose weight fast?
What's the fastest way to tone your abs and hips? I run but I need more routine!
Can excessive weightlifting in teenagers 14 and up stunt their growth?
How can a pre-teen tone his/her stomach?
I have to run a mile in less than 8min 30sec, but I am not getting there, any suggestions?
What are good streches or yoga poses for forward head posture?
If i exercise daily will my cup size decrease?i dont want it to.
How long did it take you to get back into shape?
I'm a 13 year old girl who would like to lose some weight ...I am 4'11'' and weigh 120 pounds any suggestions?
After lifting 8 pound weights( i know its not allot but im 13 and im weak) how much would you think it would take to actually notice that my muscles are bigger?
Does anyone know how much a personal trainer cost. Nothing fancy just someone to help me work out.
Should i take protein supplement only on workout days or on rest days too? How often?
What's the fastest way to lose thigh weight and/or tone thighs?
Do you run for ecercise, or fun?
Do you go to the gym? If so, how many times a week and for how long?
I wanna tone my belly for the summer,does anyone got any good advice/techniques on this tip?
Will running 30 minutes 3 days a week on an elyptical machine make my legs bigger, thinner, or neither? I have chicken legs and don't want to get any worse, but, I kinow I need cardio for overall health.
What muscles does an ab roller workout?
What are the best excersises to build up my upper pectoral muscles? I am pretty happy with the rest of my body, but my upper pecs are very small, or just don't stick out enough.
Can anyone reccomend exercises i can do at home to tone my stomach?
I have been doing cardio(1 hour on eliptical) 3-4 X a week and weight lifting 2X a week and i have lost weight and feel great. The problem is i am in a rut.I am so bored with the cardio. I need something to get me pumped up again...any suggestions?
Are the hamstrings all that important for your vertical leap?
What exercise can I do to gain strength for breakdancing? Is the pushups,pullups and situps that I do enough or is there some other stuff that work better?


This 14-acre secluded estate on the top of Scott Hill on Orcas Island is truly an oasis. It has over 180 degrees of magnificent marine and mountain views. Enjoy the many luxury amenities like our 70-foot lap pool, complete exercise room, and hot tub -- all with fantastic views. Or listen to the birds sing while you relax in a hammock next to the ponds set in a peaceful opening in Douglas fir forests. Then sit back, at the end of the day, with a drink and your friends and watch the sunset over the Gulf Islands. Orcas Oasis also has a picnic area with a fire ring; a lovely meadow with wildflowers; and two peaceful ponds. Explore our woods; pick fresh fruits, herbs, and greens in our organic garden; or just pick your favorite spot to relax.
Our 3-bedroom main house has vaulted beamed ceilings, stone counters, elegant built-in cabinets, a large dining table, a spacious gourmet kitchen. and a view from every room. Many decks and patios add space to enjoy the peaceful views. Our guest house design & accommodations are as nice as the main house -- just smaller. You also will have access to the lower spa level which contains a 70-foot lap pool, a 3/4 bath, pool table area with wet bar, and a fully-equipped exercise room. The jacuzzi is right outside the pool room. The entire spa level has marvelous views to the south and west.


text:
package com.supyuan.jfinal.component.oauth;

import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.security.KeyManagementException;
import java.security.NoSuchAlgorithmException;
import java.security.NoSuchProviderException;
import java.util.HashMap;
import java.util.Map;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.jfinal.log.Log;
import com.supyuan.jfinal.component.oauth.util.OathConfig;
import com.supyuan.jfinal.component.oauth.util.TokenUtil;
import com.supyuan.util.StrUtils;

public class OauthDouban extends Oauth {

	private static final long serialVersionUID = 1L;
    private static final Log logger = Log.getLog(OauthDouban.class);

    private static final String AUTH_URL = "https://www.douban.com/service/auth2/auth";
    private static final String TOKEN_URL = "https://www.douban.com/service/auth2/token";
    private static final String USER_INFO_URL = "https://api.douban.com/v2/user/~me";

    private static OauthDouban oauthDouban = new OauthDouban();

    /**
     * 用于链式操作
     * @return
     */
    public static OauthDouban me() {
        return oauthDouban;
    }

    public OauthDouban() {
        setClientId(OathConfig.getValue("openid_douban"));
        setClientSecret(OathConfig.getValue("openkey_douban"));
        setRedirectUri(OathConfig.getValue("redirect_douban"));
    }

    /**
     * @throws UnsupportedEncodingException
     * 获取授权url
     * @param @return    设定文件
     * @return String    返回类型
     * @throws
     */
    public String getAuthorizeUrl(String state) throws UnsupportedEncodingException {
        Map<String, String> params = new HashMap<String, String>();
        params.put("response_type", "code");
        params.put("client_id", getClientId());
        params.put("redirect_uri", getRedirectUri());
        if (StrUtils.isNotEmpty(state)) {
            params.put("state", state); //OAuth2.0标准协议建议,利用state参数来防止CSRF攻击。可存储于session或其他cache中
        }
        return super.getAuthorizeUrl(AUTH_URL, params);
    }

    /**
     * @throws NoSuchProviderException
     * @throws NoSuchAlgorithmException
     * @throws KeyManagementException
     * 获取token
     * @param @param code
     * @param @return    设定文件
     * @return String    返回类型
     * @throws
     */
    public String getTokenByCode(String code) throws IOException, KeyManagementException, NoSuchAlgorithmException, NoSuchProviderException {
        Map<String, String> params = new HashMap<String, String>();
        params.put("code", code);
        params.put("client_id", getClientId());
        params.put("client_secret", getClientSecret());
        params.put("grant_type", "authorization_code");
        params.put("redirect_uri", getRedirectUri());
        String token = TokenUtil.getAccessToken(super.doPost(TOKEN_URL, params));
        logger.debug(token);
        return token;
    }

    /**
     *  获取用户信息
     * @param accessToken
     * @return
     * @throws IOException
     * @throws NoSuchProviderException
     * @throws NoSuchAlgorithmException
     * @throws KeyManagementException
     */
    public JSONObject getUserInfo(String accessToken) throws IOException, KeyManagementException, NoSuchAlgorithmException, NoSuchProviderException {
        Map<String, String> params = new HashMap<String, String>();
        params.put("Authorization", "Bearer " + accessToken);
        String userInfo = super.doGetWithHeaders(USER_INFO_URL, params);
        JSONObject dataMap = JSON.parseObject(userInfo);
        logger.debug(dataMap.toJSONString());
        return dataMap;
    }

    /**
     * @throws NoSuchProviderException
     * @throws NoSuchAlgorithmException
     * @throws KeyManagementException
     * 根据code一步获取用户信息
     * @param @param args    设定文件
     * @return void    返回类型
     * @throws
     */
    public JSONObject getUserInfoByCode(String code) throws IOException, KeyManagementException, NoSuchAlgorithmException, NoSuchProviderException{
        String accessToken = getTokenByCode(code);
        if (StrUtils.isEmpty(accessToken)) {
            return null;
        }
        JSONObject dataMap = getUserInfo(accessToken);
        dataMap.put("access_token", accessToken);
        logger.debug(dataMap.toJSONString());
        return dataMap;
    }
}

redpajama_set_name: RedPajamaGithub


In his first musical since GREASE, John Travolta returns to the dance floor with HIGH SCHOOL MUSICAL's Zac Efron in this summers highly anticipated musical comedy HAIRSPRAY, a feature film adaptation of the Tony award-winning Broadway production Hairspray to life. Featuring new and original material based on John Waters' 1988 cult classic about star-struck teenagers on a local Baltimore dance show.
Tracy Turnblad, a big girl with big hair and an even bigger heart, has only one passion - dancing. Her dream is to appear on "The Corny Collins Show," Baltimore's hippest dance party on TV. Tracy (Nikki Blonsky) seems a natural fit for the show except for one not-so-little problem - she doesn't fit in. Her plus-sized figure has always set her apart from the cool crowd, which she is reminded of by her loving but overly protective plus-sized mother, Edna (John Travolta). That doesn't stop Tracy because if there is one thing that this girl knows, it's that she was born to dance. As her father Wilbur (Christopher Walken) tells her, "Go for it! You've got to think big to be big."
After wowing Corny Collins (James Marsden) at her high school dance, Tracy wins a spot on his show and becomes an instant on-air sensation, much to the chagrin of the show's reigning princess, Amber Von Tussle (Brittany Snow), and her scheming mother, Velma (Michelle Pfeiffer), who runs television station WYZT. Even worse for Amber is the fact that it's not just the audience who loves the new girl in town; Amber's sweetheart, Link Larkin (Zac Efron), seems to be smitten with Tracy's charms as well. This dance party gets personal as a bitter feud erupts between the girls as they compete for the coveted "Miss Teenage Hairspray" crown.
At school, however, a short stint in detention and raised-eyebrows caused by the budding relationship between her best friend Penny Pingleton (Amanda Bynes) and Seaweed (Elijah Kelley) opens Tracy's eyes to a bigger issue than the latest dance craze or the coolest hairdo - racial inequality. Throwing caution to the wind, she leads a march with Motormouth Maybelle (Queen Latifah) to fight for integration and winds up with an arrest warrant instead. Tracy is on the lam now and goes underground, literally, to her best friend Penny's basement.
Has Tracy's luck finally run out? Will she miss the final dance-off against Amber and forfeit the title of "Miss Hairspray," or will she sing and dance her way out of trouble again?
When big hair meets big dreams anything can happen - and does - in this high-energy comedy that proves you don't have to fit in to win.
HAIRSPRAY is directed and choreographed by Adam Shankman (BRINGING DOWN THE HOUSE, THE PACIFIER) from a screenplay by Leslie Dixon (FREAKY FRIDAY, MRS. DOUBTFIRE). The comedy features a remarkable collection of talent including 18 year-old newcomer Nicole Blonsky as Tracy Turnblad, John Travolta (PULP FICTION, GREASE) as her mother Edna Turnblad, Zac Efron (HIGH SCHOOL MUSICAL) as Link Larkin, Amanda Bynes (SHE'S THE MAN, WHAT A GIRL WANTS) as Penny Pingleton, Michelle Pfeiffer, (WHAT LIES BENEATH, FABULOUS BAKER BOYS) as Velma Von Tussle, Queen Latifah (CHICAGO) as Motormouth Maybelle, Christopher Walken (WEDDING CRASHERS) as Wilbur Turnblad, Brittany Snow (JOHN TUCKER MUST DIE) as Amber Von Tussle and James Marsden (SUPERMAN RETURNS) as Corny Collins.
Feature can be played alone or with a 'sing-a-long' lyric track option.
5 Deleted scenes including Tracy's never-before-seen musical number "I Can Wait"
"Hairspray Extensions: Breakin' Down the Dance scenes"
"The Roots of Hairspray - From Buddy Deane to Broadway!"


During your last week of pregnancy, your baby now occupies all your uterus and compresses the vessels, the viscera and all the organs of your abdomen. Patience, in a few days, all this will only be a distant memory and you will marvel at his little bouille.
From the first contractions to birth, your childbirth will last several hours. The medical team has many ways to direct the work so that it takes place under the best conditions for the mother and the child.
Mother-baby groups, to exchange and support young mothers.


text:
Tag Archives: Nabih
Brothers in Arms: the papers of Nabih and Adil Al-Azmah (EUL MS 215)
The Al-Azmah papers are unusual amongst our collections in that they document the political careers of two brothers, both of whom – in related and overlapping spheres of activity – played a major role in the development of Arab nationalism in the Middle East. Although much of their lives were spent in their native Syria, the Al-Azmah brothers were active across Palestine, Transjordan and Egypt, were involved in training the ikhwahn troops of King Ibn Saud, and also held important political positions in the Syrian government during the eras of the French mandate as well as postwar independence.
Nabih and Adil were was born in Damascus to Abdel Aziz Al-Azmah, and belonged to a distinguished Damascene family who traced their origins back several centuries to Hasan Bey al-Azma, a Turkmen military leader who had settled in Syria. Many family members attained prominent positions in Syria as merchants, landowners, administrators, military and political leaders, as well as in the arts and sciences. These include Nabih and Adil's uncles, Zaki, Taher and Yusuf Al-Azma, who were all respected army officers, Bashir al-Azma (1910–1992), who was briefly Prime Minister of Syria in 1962, Malak al-Azma, a successful banker whose son Professor Aziz al-Azma, donated the papers of his grandfather and great-uncle Adil and Nabih to the University of Exeter.
نبية العظمة Nabih Al-Azmeh (1886-1972)
Nabih was educated at the Al-Rashdiya Military School in the Yalbugha Mosque in the Al-Bahsa neighborhood of Damascus before travelling to Yemen at the age of twelve where his father had been appointed as an administrator in the Hodeidah district. After returning from Yemen, he joined the Istanbul Military Academy in 1905, graduating two years later with the rank of lieutenant. During the First World War he fought with the Ottoman forces, taking part in the attack on the Suez Canal in 1915 as well as the campaign in Palestine.
Following the defeat of the Ottoman forces at the end of the war, the British took control of Palestine, Iraq and Transjordan, while France took over Syria in 1920. King Faisal was appointed head of the Arab Kingdom of Syria in March 1920 and during his short reign Nabih Al-Azmah served as director of police in Aleppo, while his uncle Yusuf Al-Azmah was Minister for War. However, in April 1920 the League of Nations gave France a mandate over Syria. A few Syrians were prepared to accept French rule, but the majority were strongly opposed to the idea and Yusuf Al-Azmah was one of the foremost advocates of armed resistance. When the French invaded with a force comprising several thousand troops, supported by tanks, artillery and aircraft, Yusuf died a heroic death in the Battle of Maysalun in July 1920. The Arab government in Syria was dissolved and King Faisal was expelled from Syria, although the following year the British had him installed as King of Iraq, an office he fulfilled until his death in 1933.
Following the death of his uncle and the French take-over of Syria, Nabih Al-Azmah left Syria and remained in exile for the next two decades. He moved first to the Druze city of as-Suwaydā' in southwestern Syria, close to the border with Jordan, and then took up a role as advisor to King Faisal's brother, Prince Ali bin Al Hussein, the Emir of Jordan. He later moved to Egypt where he worked with King Abdul Aziz in establishing and training the Ikhwan forces in the Saudi army. During the 1930s he was active in Palestine, beginning with the Islamic Conference in Jerusalem December 1931, which had been organised by the Grand Mufti of Jerusalem, Hajj Amin al-Husayni (1895–1974) and Indian Pan-Islamist Shawkat 'Ali (1873–1938) and reflected the growing interest of Muslims in Palestine and the threat of Zionism – a topic explored in depth in the archive of Abd al-Fattah Al-Awaisi (EUL MS 216). Nabih Al-Azmah became close to the Grand Mufti (who was also a friend of Ernest Tatham Richmond) and there are photographs of them together during this period.
Cover of a pamphlet published by the Hizb al-Istiqlal al-Arabi (Arab Independence party) in 1932 EUL MS 215/7/6
In 1932 he helped establish Palestine's first political party, Hizb al-Istiqlal, modelled in part on the Syrian nationalist party Hizb al-Istiqlal al-'Arabi to which he belonged. The following year he was appointed director of the first Arab Exhibition, held in Jerusalem, and he continued in this role for the second Exhibition in 1934.
Al-Azmah also participated in the Great Revolt of 1936-39, a nationalist uprising by Palestinian Arabs against the British administration of the Palestine Mandate. He became head of the 'Committee for the Defense of Palestine', providing support and assistance between the mujahideen in Syria and those in Palestine. As head of the Syrian Palestine Defence Committee he attended the General Arab Congress at Bludan in 1937, which strove to strengthen Pan-Arab feeling in the region in support of Palestine.
Letter from Fawzi al-Qawuqji , Commander of the Society for the Defense of Palestine. EUL MS 215/10/1
Like al-Husayni, Al-Azmah's opposition to the British and the French led him to consider supporting the Nazis during the Second World War, on the basis of 'my enemy's enemy must be my friend', but unlike some other Arab nationalists he remained very wary of such an alliance; after some initial contact with Axis forces, he withdrew all ties. When the Allied forces arrived in Syria in 1941 he was forced once more to go into exile. He refused to go to Berlin, however, unlike his brother Adil who took refuge in the German capital with the Iraqi Prime Minister Rashid Ali al-Gaylani. After the war Nabih returned to Syria where he was appointed Minister for Defence in the new independent government of Saadallah Al-Jabri. This only lasted for a brief period, after which he held the position of Chairman of the National Party until his retirement in the early 1950s. He died in 1972.
Conference pamphlet published by the League of Nationalist Action. EUL MS 215/7/6
عادل العظمة Adil Al-Azmeh (1888-1952)
Portrait of Adil Al-zmah, from a newspaper report on his death EUL MS 215/6/2
Adil did not share his older brother's military background, but he was equally active in his work for Arab nationalism. He graduated from the Royal Academy in Istanbul and practised for some time as a lawyer in the early 1920s before joining Nabih in Transjordan, where he campaigned against Jewish immigration into Palestine. Following the failure of the Great Revolt he was one of many Arab nationalists, led by the Grand Mufti, who took refuge in Iraq and supported the pro-German coup d'etat in March 1941. He lived in Iraq in the early 1940s and participated in similar political activities to his brother, including a spell spent in Iraq in the early 1940s. After independence, he occupied various posts of government, including Governor of Latakia (1944-46?) – during which time he played a role in the arrest and execution of Sulayman al-Murshid – Governor of Aleppo (1946-49) and Minister of the Interior. The archive contains copies of his diaries for the years between 1946 and 1948 (EUL MS 115/1/11-14), providing a fascinating glimpse into his political and administrative duties. He died in Beirut in 1952.
EUL MS 215/5/4
Cover of a booklet published by the Governorate of Aleppo in 1947, with an image showing the city's famous Bab al-Faraj Clock Tower and – in the distance – the 13th century citadel. EUL MS 215/5/4
Although these papers are all photocopies – the original documents are held in Damascus, with the Saudi papers now housed at the Darat al-Malik Ábd al-Áziz in Riyadh – they provide a wealth of information on topics such early Arab nationalism, political networks in the Levant, the activities of Islamic movements in Palestine, and the history of Syria during the transition from the French Mandate to independence. The documents include political correspondence with Arab leaders and key figures such as Fawzi Al-Qawuqji, Hashim al-Atassi, Husni al-Za'im, Fakhri el-Nashashibi, Rashid Rida, Mohamed Ali Ettaher, Asad Daghir, Wajih Al-Haffar, Dr Abd al-Rahman al-Kayyali, Muhammad 'Izzat Darwazeh and others, state papers, political manifestoes and conference booklets for various political parties, as well as campaign material directed against the French administration in Syria and the British administration in Palestine. There are four indexes to the papers (EUL MS 215/6/4, 215/8/8, 215/11/3 and 215/12/13, which should probably be the starting point for researchers seeking to work with the collection.
The catalogue entries for the Al-Azmah papers can be consulted here


text:
\section{Motivation} \label{sec:background}

DCTCP is a pioneering work that made a key insight that an accurate, proportional response to congestion using ECN could improve both flow completion times and throughput. DCTCP assembles 1-bit ECN marks at the end-host for a sequence of packets to infer accurate queue length at the bottleneck switch and uses the information to modulate the sending window~\cite{dctcp-analysis} accordingly. DCTCP performs well for long flows or when incast is somewhat mild. However, DCTCP's performs poorly with an incast-heavy traffic with many short flows. The queue size would increase rapidly during incast, and therefore, it is essential to \textit{drastically} slow down all senders in order to avoid packet loss. However, DCTCP's proportional response would require a few round-trips (RTTs), which is sub-optimal for incast.

Our at-scale ns-3 simulations capture this behavior. Figure~\ref{fig:dctcp} shows the evolution of a specific switch's queue length (red line) over time (X-axis). Figure~\ref{fig:dctcp} also shows DCTCP's reaction (green line), which is either 0 (DCTCP does not slow down) or 1 (DCTCP slows down due to ECN). We clearly see that even though incast starts at $time=10$, DCTCP does not react until $time=210$ when it is too late (i.e., DCTCP does not reduce its congestion window to the desired level until $time=210$). Please see section~\ref{sec:sims-results} for topology and workload details. While one could think of reducing ECN threshold to improve DCTCP's reaction to incasts, past papers have shown that smaller ECN thresholds detect incast spuriously and cause throughput loss~\cite{ecn-multiqueue, dctcp}. Later, we show that {Pulser}\xspace is able to react much faster than DCTCP (section~\ref{sec:sims-results}).

\figput[0.85\linewidth]{dctcp_reaction}{}{Incast detection in DCTCP using ECN}

Though datacenter traffic is heavy tailed with a small fraction of long flows accounting for the majority of bytes transferred, the growing popularity of online services (e.g., Google Search, Facebook) implies that the fraction of short flows and the intensity of incast is bound to increase. While the performance of all end-to-end rate control schemes degrade as the fraction of short flows increase, we contend that an AQM scheme that is customized for incast detection and a congestion control algorithm that leverages the scheme could substantially improve performance over the current state-of-the-art.

\section{Conclusion} \label{sec:conclusion}
Incast congestion is a dominant form of congestion in datacenter networks. Prior approaches do not isolate and detect incast in the network, and, therefore, existing end-host congestion control could not aggressively respond to incast without losing throughput. We proposed Explicit Incast Notification (EIN), a gradient-based incast detection at network switches, which is both fast and accurate. Leveraging EIN, we introduced our congestion control scheme, called {Pulser}\xspace, which quickly backs off during incast for short time intervals without hurting latency and ramps up soon after without losing throughput. Using simulations and a real implementation, we showed that {Pulser}\xspace outperforms DCTCP and ICTCP. As data and Internet traffic continue to grow exponentially, incast is likely to become even more dominant in datacenters, requiring an incast-specific AQM such as EIN and a congestion-control schemes such as {Pulser}\xspace.
\section{{Pulser}\xspace} \label{sec:design}

{Pulser}\xspace consists of two parts: (1) fast and accurate incast detection and (2) end-to-end congestion control that leverages incast detection. We describe our novel incast detection in section~\ref{sec:design-ein} and our congestion control in section~\ref{sec:design-cc}.

\subsection{Explicit Incast Notifications (EIN)} \label{sec:design-ein}

\begin{algorithm}
\DontPrintSemicolon
\SetAlgoLined
\KwResult{Set or Reset EIN}
\SetKwInOut{Input}{Input}\SetKwInOut{Output}{Output}
\Input{$Qlen$}
\Output{EIN}
\BlankLine

\For{Each packet ``P'' at dequeue}
{
    $Gradient = (Qlen - Qlen_{prev}) / (T - T_{prev})$\;
    $Qlen_{prev} = Qlen$\;
    $T_{prev} = T$\;
    Store $Gradient$ in a sliding window\;
    Calculate $Average~Gradient$ for ``N'' samples\;
    \eIf{$Average~Gradient > EIN_{threshold}$}
    {
        Set EIN\;
        $EIN_{prev} = 1$\;
    }
    {
        \eIf{$EIN_{prev} == 1$}
        {
            \If{$Qlen > HighWaterMark$}
            {
                Set EIN\;
            }
        }
        {
            Reset EIN\;
            $EIN_{prev} = 0$\;
        }
    }

}
\caption{EIN generation at switches}\label{alg:incast-detection}
\end{algorithm}
\bigskip

During incast, data from multiple input ports (e.g., > 8) gets forwarded to the same output port within a switch, which cause a steep increase in the output port's queue length. Therefore, our incast detection logic uses the gradient of queue length as opposed to the queue length itself.

Similar to most ECN implementations, we perform incast detection at the dequeue side. At a high level, we calculate the gradient during each dequeue event w.r.t to previous event (i.e., slope between two consecutive packets that were dequeued). We maintain a sliding window of past $N$ samples of gradient, where $N$ is configurable. If the average gradient is more than a configurable threshold, then we mark outgoing packets by setting the new Explicit Incast Notification (EIN) bit. EIN requires one additional bit in the IP header (similar to CE bit for ECN), which is set by the switches and another bit in the TCP header for notify senders (similar to ECE for ECN).

Algorithm~\ref{alg:incast-detection} shows our complete algorithm. In our implementation, we also set EIN when the current queue length exceeds a configurable $HighWaterMark$, which serves as hysteresis (see lines 11-18). We set $HighWaterMark$ to be higher than ECN threshold to avoid throughput loss. Our incast detection has two main parameters, $N$ and $EIN_{threshold}$. We empirically found that using $N=50$ and $EIN_{threshold}=0.25 \times Line~Rate$ provides optimal performance. Intuitively, our parameter settings mean that if the queue is building at the rate of $0.25 \times Line~Rate$ for the past $50$ samples on average, then we detect an incast episode. Consequently, we detect incast if either the queue builds up steeply in a very short time window or if the queue consistently builds up over a long time window. In either case, it is is desirable to react strongly by setting the EIN bit to avoid buffer overflow. We also performed an exhaustive sensitivity study but do not show due to space constraints. Our incast detection is fast and accurate, as we show in section~\ref{sec:sims-results}.

\subsection{Congestion control} \label{sec:design-cc}

We design {Pulser}\xspace's congestion control by leveraging EIN. If a {Pulser}\xspace sender gets a packet with EIN mark, the sender reduces its congestion window to a configurable, \textit{safe} value after saving the current congestion window. Such a drastic response to incast congestion would likely ease congestion. Once incast finishes, the sender would stop receiving EIN marks. If the sender doesn't not observe any EIN marked packets for the current batch of packets, then the sender restores the window to its previous \textit{saved} value. Equations~\ref{eq:cc-set} and~\ref{eq:cc-reset} show how we modify the congestion window at the beginning and end of an incast episode, which we infer via EIN marks.

\begin{equation}\label{eq:cc-set}
\begin{split}
  cwnd_{prev} \gets cwnd \\
  cwnd \gets cwnd_{safe}
\end{split}
\end{equation}

\begin{equation}\label{eq:cc-reset}
  cwnd \gets cwnd_{prev}
\end{equation}

We empirically found out that setting $cwnd_{safe}=4 \times MSS$ provides optimal performance. We did a sensitivity study but do not show due to lack of space. As you can see, our congestion control is only a handful lines of code change over existing DCTCP implementation and is deployment friendly.

\begin{comment}
\begin{algorithm}
\SetAlgoLined
\caption{{Pulser}\xspace's congestion control algorithm} \label{alg:cc}
\For{Each received packet "P"}{
  Check the {Pulser}\xspace's tag\;
  \eIf{The tag is set\\}{
    Set the congestion window to 4 MSS\;
    Set tag-seen flag up\;
    Store the normal congestion window\;
    Break\;}
    {\eIf{tag-seen flag is not up\\}{Transmit using normal congestion window\;
    Break\;}{Use the stored normal congestion window in line 7}}
}
\end{algorithm}
\end{comment}

\section{Introduction} \label{sec:introduction}

Datacenters provide fast, curated access to vast amounts of Internet data. Today's datacenters host a mix of applications -- foreground applications perform distributed lookup in response to user queries and background applications perform data update and reorganization. While foreground applications predominantly generate short flows and the nature of distributed lookup implies that their performance is sensitive to higher percentiles (i.e., tail) of short-flow completion times~\cite{tail-cacm}, background applications generate long lasting flows and require high throughput. Therefore, today's datacenter networks optimize short-flow completion times and long-flow throughput.

The key to optimizing both flow completion times (of short flows) and the throughput (of long flows) fundamentally lies in \textit{accurately} and \textit{quickly} responding to congestion. Traditional TCP uses packet loss to modulate its sending rate and relies on duplicate ACKs and timeouts to infer packet loss. Because packet loss is often a late indication of congestion, today's datacenter networks leverage some form of Active Queue Management (AQM) such as Explicit Congestion Notification (ECN), to quickly infer congestion. Current state-of-the-art datacenter networks use variants of DCTCP~\cite{dctcp}, which leverages ECN. ECN-enabled routers mark packets if their instantaneous queue length exceeds a predefined threshold and DCTCP senders modulates their sending rate proportional to the fraction of observed ECN marks in the ACK packets.

While DCTCP senders respond to congestion faster than traditional TCP using early network feedback (i.e., ECN), DCTCP incurs packet drops when network queues buildup at a much faster \textit{rate} than DCTCP senders can respond; we show this phenomenon later in our results. Indeed, many foreground datacenter applications that, by design, perform distributed lookup for small data items spread across hundreds or thousands of servers, and, therefore, cause frequent \textit{incasts} (i.e., data from many input ports converges to one output port and cause rapid queue buildup). Today's incast-heavy applications (e.g., Web Search) and high-bandwidth network topologies (e.g., fat-trees with low over-subscription factors) imply that congestion often happens \textit{due to incasts} at the network edge, as reported by Google~\cite{google-dc} and Microsoft~\cite{microsoft-dc}. Because incast causes a rapid queue buildup in a short time, DCTCP's iterative, gradual window adaptation might not prevent buffer overflow. A more aggressive window adaptation algorithm or lower ECN threshold at the switch would cause throughput loss~\cite{ecn-multiqueue}.

In this paper, we make the case for isolating incast from other general cases of congestion. Because incast congestion is the common case, accurate detection and timely response to incast can significantly improve network performance, as our results show. Because detecting incasts at the end-hosts would require multiple roundtrips and would be significantly less efficient due to the short incast time scales, we argue for detecting incasts at switches, as opposed to detecting at end-hosts. We present a novel algorithm for detecting incasts in a short time interval by monitoring the gradient of queue length over small time windows. Similar to ECN, switches set an Explicit Incast Notification (EIN) mark upon detecting incasts. Switches detect incast per output port and mark packets traversing through those ports.

We propose a DCTCP variant, called \textit{{Pulser}\xspace}, which leverages EIN for window adaptation. {Pulser}\xspace resets the congestion window to a small value upon observing EIN marked ACKs. While incasts last only for a short time and contribute to a small fraction of the overall network load, drastically resetting the congestion window only to ramp-up soon after would cause throughput loss. Therefore, {Pulser}\xspace restores the congestion window to its pre-incast value if subsequently received ACKs do not have EIN marks. The net effect is that {Pulser}\xspace has a braking phase when EIN marks are observed, which only lasts for a short time; after the incast episode, {Pulser}\xspace restores its pre-incast sending rate instead of a gradual increase. Fast and accurate incast detection is key to {Pulser}\xspace's design, and without such detection, {Pulser}\xspace (or DCTCP) would lose throughput. ICTCP~\cite{ictcp} addresses incast at the receiver without adding network support. Consequently, ICTCP's end-host detection is slow and {Pulser}\xspace outperforms ICTCP (see section \ref{sec:sims-results}).

In summary, we make the following contributions:
\begin{itemize}[noitemsep,topsep=0pt,parsep=0pt,partopsep=0pt]
\item We propose a combination of in-network and end-host mechanisms that specifically target incast congestion, which is common but not efficiently handled by existing proposals.
\item We introduce a novel, gradient-based incast detection logic in switches, which is fast and accurate.
\item We propose a congestion control scheme that uniquely leverages our incast detection to improve both short-flow completion times and long-flow throughput.
\end{itemize}

Using a combination of real testbed and ns-3~\cite{ns3} simulations, we show that {Pulser}\xspace improves both $99^{th}$-percentile short-flow completion times and long-flow throughput:

\noindent \textbf{With simulations}, {Pulser}\xspace:
\begin{itemize}[noitemsep,topsep=0pt,parsep=0pt,partopsep=0pt]
\item achieves $10\%$ (1.12x) reduction in median and $50\%$ (2x) reduction in $99^{th}$ percentile FCT than DCTCP and ICTCP, on average, for loads greater than $20\%$. At higher loads, {Pulser}\xspace achieves up to $25\%$ and $70\%$ reduction in median and $99^{th}$ percentile FCT, respectively.
\item achieves $20\%$ higher long-flow throughput than DCTCP and ICTCP, on average, for loads greater than $20\%$. {Pulser}\xspace achieves up to $50\%$ higher throughput at higher loads.
\end{itemize}

\noindent \textbf{With real testbed}, {Pulser}\xspace:
\begin{itemize}[noitemsep,topsep=0pt,parsep=0pt,partopsep=0pt]
\item outperforms DCTCP by about $26\%$ in $99^{th}$ percentile flow completion times.
\item achieves about $25\%$ higher throughput than DCTCP.
\end{itemize}

The remainder of the paper is as follows. We start the motivation for our paper in section ~\ref{sec:background}, following by our design in section~\ref{sec:design}. Sections~\ref{sec:sims-results} and ~\ref{sec:results-real} present our experimental methodology and results. We discuss related work in section~\ref{sec:related} and conclude in section~\ref{sec:conclusion}.

\section{Related work} \label{sec:related}

While Internet Congestion control is a well-studied research area, datacenter congestion control continues to garner interest in the networking community and there are a number of recent papers on datacenter congestion control. We have discussed DCTCP and ICTCP in earlier sections. We will summarize other related work in this area.

Rate Control Protocol (RCP)~\cite{rcp} is an alternative to window-based TCP protocols in which switches directly inform the senders of their fair share sending rate by observing the rates of all intervening flows. But, RCP does not isolate incast, and requires switch support, which is not available today.
Similar to {Pulser}\xspace, TIMELY~\cite{timely} uses a gradient-based approach. However, unlike {Pulser}\xspace, TIMELY is RTT-based, its detection logic is not customized for incast, and it is implemented at end-hosts. Therefore, TIMELY's detection is unlikely to be as fast and as accurate as our approach.
DCQCN~\cite{dcqcn} leverages ECN for RDMA and performs rate-based congestion control. Our incast detection and congestion control ideas are complimentary to DCQCN and they would likely improve DCQCN's incast performance.
QCN~\cite{qcn} provides congestion control based on network feedback (similar to DCTCP/ECN) but operated at the Ethernet layer and doesn't isolate incast.
NumFabric~\cite{numfabric} provides other more flexible bandwidth allocations other than TCP's fair share.
ExpressPass~\cite{expresspass} and NDP~\cite{ndp} provide receiver-driven congestion control; {Pulser}\xspace, in contrast, is switch-driven and isolates incast congestion from other forms of congestion (e.g., congestion in network caused by flow collisions).
A number of proposals~\cite{d2tcp,pdq,detail,pfabric,karuna, ups, phost} focus on flow scheduling and prioritize critical flows (e.g., short flows) whereas our main focus is on incast congestion control. Similarly, other load balancing proposals~\cite{MPTCPSIGCOMM11,presto16,CONGA} are complimentary to {Pulser}\xspace.

\section{Simulation Methodology}\label{sec:sims-method}

We use ns-3 \cite{ns3} to simulate a leaf-spine datacenter topology, which is commonly used in today's datacenters~\cite{CONGA}. In our topology, the fabric interconnects $400$ servers using $20$ leaf switches with each leaf switch connecting to 20 servers. The leaf switches are connected to 10 spines, resulting in an over-subscription factor of $2$. The servers and switches are connected by $10~Gbps$ links with an unloaded link delay of $10~{\mu}s$; the unloaded Round-Trip Time (RTT) for the longest path (i.e., $4$ hops) is 80 $\mu$s.

We model our workloads based on reported results~\cite{benson}, with a mix of short and long flows. Flow arrivals follow a Poisson distribution and the source and destination for each flow is chosen uniformly randomly. Our short flows' sizes are randomly chosen from $8~KB$ to $32~KB$ and we set long flow sizes to $1~MB$. As as typical, long flows contribute to $30~\%$ of the overall network load, which we vary in our experiments~\cite{pfabric}. We also model incast traffic as per~\cite{incast2009safe}. The flows and their destinations are chosen randomly and are varied during the experiment. Our default incast degree is $24$ but vary it in our sensitivity analysis~\ref{sec:sims-sens}.

We compare four schemes: DCTCP, ICTCP, {Pulser}\xspace, and \textit{Ideal}. Our DCTCP and ICTCP implementations use their recommended parameter settings (e.g, ECN threshold) and our results match their reported numbers. We implemented {{Pulser}\xspace} on top of DCTCP \cite{dctcp}. We implemented algorithm~\ref{alg:incast-detection} in switches and our congestion control in end-hosts. We set: $cwnd_{safe} = 4 \times MSS$, $EIN_{threshold} = 0.25 \times Line~Rate$, and $N = 50$ as default, after sensitivity studies (not shown due to lack of space). We also implemented an \textit{Ideal} congestion control scheme where senders have \textit{oracular} global knowledge and send at optimal sending rate. While the Ideal scheme is not practical, we show its results to set reasonable upper bounds on performance.

\section{Simulation Results} \label{sec:sims-results}

We summarize our evaluation of {Pulser}\xspace as follows:
\begin{itemize}
    \item \textbf{Flow Completion Time (FCT)}: We compare the median and $99^{th}$ percentile short-flow completion times of {Pulser}\xspace with DCTCP, ICTCP, and Ideal. {Pulser}\xspace achieves $10\%$ (1.12x) reduction in median and $50\%$ (2x) reduction in $99^{th}$ percentile FCT than DCTCP and ICTCP, on average, for loads greater than $20\%$. At higher loads, {Pulser}\xspace achieves up to $25\%$ and $70\%$ reduction in median and $99^{th}$ percentile FCT, respectively.
    \item \textbf{Throughput}: We compare the long-flow throughput of {Pulser}\xspace with DCTCP, ICTCP, and Ideal. {Pulser}\xspace achieves $20\%$ higher long-flow throughput than DCTCP and ICTCP, on average, for loads greater than $20\%$. {Pulser}\xspace achieves up to $50\%$ higher throughput at higher loads.
    \item \textbf{Queue length analysis}: We analyzed how the queues buildup in {Pulser}\xspace and DCTCP. {Pulser}\xspace reduces queue lengths drastically (by up to 2x) compared to DCTCP.
    \item \textbf{Sensitivity to incast}: {Pulser}\xspace's improvements increase with increasing incast degree and is robust across a range of typical incast degrees.
\end{itemize}

We provide a more exhaustive analysis below.

\subsection{Flow Completion Time}

\figput[0.75\linewidth]{50th}{}{Median flow completion time}
\figput[0.75\linewidth]{99th}{}{$99^{th}$ \%-ile flow completion times}

Figure ~\ref{fig:50th} and figure ~\ref{fig:99th} compare the median and tail ($99^{th}$ percentile) flow completion times of DCTCP, ICTCP, {Pulser}\xspace, and Ideal. We show flow completion times along Y-axis versus network load on X-axis. As load increases, all schemes incur more queuing and their FCTs degrade. While {Pulser}\xspace achieves reduction in both median and tail FCT, {Pulser}\xspace's achieves better reduction in tail flow completion times than in median flow completion times. Because datacenter applications are more sensitive to tail FCT than median, {Pulser}\xspace's makes the right trade-off.

Compared to DCTCP, {Pulser}\xspace reduces tail flow completion time of about 51\% for loads greater than 40\% (typical operating point of most datacenters). Compared to ICTCP, {Pulser}\xspace reduces flow completion time by about 46\% at higher loads. Because incast congestion is not an issue at lower loads, {Pulser}\xspace does not significantly outperform at lower loads. \textit{Ideal} method outperforms all other schemes, which shows that there is significant improvement to be achieved.

\subsection{Throughput}

\figput[0.75\linewidth]{throughput}{}{Throughput comparisons}

In this section we compare {{Pulser}\xspace}'s throughput with ICTCP, DCTCP and ideal scheme. Long flow throughput suffers for all schemes at higher loads due to increased (incast) congestion at higher loads.  As we can see from figure~\ref{fig:throughput}, {Pulser}\xspace achieves higher throughput across all loads: First, {Pulser}\xspace reduces the number of packet drops of those background flows that share links that experience high incast congestion, as compared to other schemes. Second, when incast is finished, {Pulser}\xspace uses the last congestion window before incast as the new congestion window, without resorting to gradual window increase (e.g., slow start). {Pulser}\xspace's ON/OFF window modulation helps senders to restore their pre-incast sending rate pretty quickly.{Pulser}\xspace achieves 16\% and 22\% higher throughput compared to ICTCP and DCTCP respectively (in 40\% load and beyond).

\subsection{Queue length}

\figput[0.75\linewidth]{qlen}{}{Queue length over time}
\figput[0.75\linewidth]{cwnd}{}{Congestion window at a long flow sender}

In this section, we analyze the queuing behavior of {Pulser}\xspace and relate it to {Pulser}\xspace's congestion control (i.e., evolution of congestion window over time). For this experiment, we run our workload with $60\%$ load. Figure~\ref{fig:qlen} shows the queue length at an aggregator switch's output port (Y-axis) over time (X-axis). We analyze DCTCP (red) vs. {Pulser}\xspace (green). We see that, {Pulser}\xspace reduces the queue buildup by as much as $50\%$ (2x).

To connect {Pulser}\xspace's queuing behavior to our congestion control, we compare the congestion window evolution versus time (at the sender) for DCTCP and {Pulser}\xspace in figure~\ref{fig:cwnd}. At $time = 120{\mu}s$, incast starts. While DCTCP gradually reduces the congestion window and oscillates around due to the absence of a precise signal that indicates incast, {Pulser}\xspace leverages a more precise EIN to backup almost instantly. When the incast finishes at $time = 300{\mu}s$, {Pulser}\xspace instantly recovers. By instantly backing off, the {Pulser}\xspace's long-flow sender minimizes queuing delay, which helps short flows. By restoring its previous sending rate after incast, {Pulser}\xspace sender achieves better throughput.

\subsection{Sensitivity to incast degree}\label{sec:sims-sens}
We analyze the sensitivity of our results to different incast degrees. For this study, we compare {Pulser}\xspace's tail flow completion time to those of DCTCP and ICTCP for varying incast degrees. We vary incast degree as 24 (default), 32, and 40. Figure~\ref{fig:sensitivity} shows the $99^{th}$ percentile flow completion times for varying incast degrees, normalized to our default case (i.e., incast degree of 24).

\figput[0.75\linewidth]{sensitivity}{}{Sensitivity of $99^{th}$ percentile flow completion times to incast degree}

As expected for both incast degrees, all methods experience increasing tail flow completion time with load increments. In both cases, {Pulser}\xspace outperforms DCTCP and ICTCP with a substantial margin of at least 2X for 60\% and 80\% loads. Lower loads do not suffer from high incast congestion, and, therefore, there is limited opportunity for improvement. Similar to higher loads, higher incast degree provide more opportunity for {Pulser}\xspace. Nevertheless, {Pulser}\xspace's relative performance improvement remains robust across varying loads and incast degrees.

\section{Real implementation} \label{sec:results-real}

Our real testbed consists of three Dell 7040 \textit{Optiplex} servers with 32 GB of memory, Intel Quad core processors (3.4 GHz i7) and 1 Gbps NICs. Two servers act as clients and generate traffic to the third server, which acts as an aggregator (leaf server). Because EIN requires switch support, we use another server with two network interfaces as a software switch (kernel version 4.4.0). The two client servers are connected by a physical Netgear \textit{Prosafe} switch to our software switch, which connects to the aggregator. Further, to generate a realistic incast scenario with only two servers, we place 8 VMs in each of the two client servers; the VMs run Ubuntu 12.04 LTS (kernel version 3.2.18) with 2GB of memory. We rate limit the client VM's NICs to 50 Mbps.The two client machines each generate $50 \times 8 = 400 Mbps$ of traffic to the physical switch, which connects to the software switch over a 1 Gbps link (i.e., there is no bottleneck). However, the link between the software switch and the aggregator is rate limited to 50 Mbps, creating a realistic incast (i.e., there is 800 Mbps of incoming traffic into the software switch but the outgoing port is only 50 Mbps, which creates a realistic incast degree of 16). We use \textit{iperf3} to generate traffic. We generate a background 40 MB long flow from one of the client VMs. The other 15 client VMs generate synchronous bursts of short 100KB flows, with random jitter. We run the experiment for 80 minutes and measure the flow completion times of short flows and throughput of long flows.

Table~\ref{tab:table-real} shows the flow completion times -- both average (not median) and $99^{th}$ percentile -- and throughput comparison between DCTCP and {Pulser}\xspace in our real testbed. Our real testbed is smaller in scale, and, therefore, the intensity of incast and the corresponding tail effects are somewhat less pronounced in our real testbed than in our at-scale simulations. Nevertheless, {Pulser}\xspace outperforms DCTCP by about $20\%$ and $26\%$ in average and $99^{th}$ percentile flow completion times, respectively. Similarly, {Pulser}\xspace achieves about $25\%$ higher throughput than DCTCP. While we do not have access to a datacenter-scale testbed, our substantial performance gains in the small testbed shows the potential of {Pulser}\xspace in a more realistic setting.

\tabput{table-real}{
\small
\begin{tabular}{|c"c|c|}
 \thickhline
 \textbf{Metric} & \textbf{DCTCP} & \textbf{Pulser}\\
 \thickhline
 \textit{Avg. flow completion time} (s) & $1.99$ & $1.59$\\
 \hline
 \textit{$99^{th}$ percentile flow completion time} (s) & $13.32$ & $9.85$\\

 \thickhline
 \textit{Throughput} (Mbps) & $28$ & $35$\\
 \thickhline
\end{tabular}
}{Real implementation results}

redpajama_set_name: RedPajamaArXiv


Seven in ten adults are at greater risk of stroke or heart attack because their blood pressure is too high, a study has found.
Senior doctors said unhealthy lifestyles were to blame. Desk jobs, lack of exercise and feasting on salty fast foods have contributed to the problem, even among the young.
Almost half of under-35s have blood pressure above healthy limits and a third are in the high to very high range, figures from LloydsPharmacy show.
Results of the more than 100,000 blood pressure tests it has carried out since 2003 show that 70 per cent of all adults are in the unhealthy range.
Leslie Hamilton, a consultant cardiac surgeon at the Freeman Hospital in Newcastle, said: 'These figures are a real concern and a stark reminder that high blood pressure is a major issue in the UK.
'The number of people suffering from high blood pressure is increasing and the age at which people develop it is getting ever younger.
'In my job as a heart surgeon, I see the effects of high blood pressure and heart disease every day.
'High blood pressure can lead to debilitating strokes and fatal heart attacks.
'Many people put their heart problems down to genetics, but your blood pressure is one area that you can control with lifestyle changes and medicine.
'It can be caused by smoking, salty diets, being overweight, not taking enough exercise, high cholesterol and diabetes.
'Although less people now smoke, modern lifestyles mean people are eating more high-salt junk food and doing less exercise.
'By making positive changes, people can help combat high blood pressure.
Blood pressure is reported as two numbers – the first when the heart is contracting, known as the systolic pressure, and the second when the heart is releasing, known as the diastolic pressure.
It is measured in millimetres of mercury, or mmHg.
Shafeeque Mohammed, heart health expert at LloydsPharmacy, said a blood pressure of 120/80 was good.
He added: 'Anybody with a blood pressure of more than 140/90 should be concerned and needs to make lifestyle changes.
'Modern lifestyles are largely to blame for the upward trend in people suffering from high blood pressure.
'Many people have sedentary jobs, work long hours and leave little time to eat healthily or take exercise.
'However, it is important people are educated to the risks so they can do something about it.


text:
'This is an important victory for Kentucky's farmers,' said McConnell. | JAY WESTCOTT/POLITICO
McConnell high on hemp provision
By JENNY HOPKINSON
The cannabis universities and colleges across the country could soon start growing isn't the kind that tie-dye clad, 4/20-observing coeds might have hoped for.
But Senate Minority Leader Mitch McConnell is pretty high on it.
The five-term Kentucky senator today is celebrating the inclusion, in the farm bill conference report, of language he promoted that would allow colleges, universities and state departments of agriculture to grow test plots of hemp for industrial uses. It's a move that proponents are calling a first step toward large-scale cultivation of the crop.
Kentucky is on the top of the list of states to benefit from the change.
( Also on POLITICO: House clears farm bill)
"This is an important victory for Kentucky's farmers, and I was pleased to be able to secure this language on behalf of our state," McConnell said in a statement issued Tuesday. By giving states "the go-ahead to cultivate hemp for pilot programs, we are laying the groundwork for a new commodity market for Kentucky farmers. By exploring innovative ways to use hemp to benefit a variety of Kentucky industries, while avoiding negative impact to Kentucky law enforcement's efforts at marijuana interdiction, the pilot programs authorized by this legislation could help boost our state's economy."
The research title of the farm bill conference report, released Monday, allows for colleges, universities and agriculture departments in states that have legalized the cultivation of industrial hemp to grow the crop for research purposes.
Industrial hemp is defined by the bill to contain no more than 0.3 percent tetrahydrocannabinol — the mind-altering ingredient contained in its even more controversial cousin, marijuana.
( Also on POLITICO: Puff, puff: pass the tax break)
Any kind of boost to Kentucky's economy that McConnell can put his name next to could come in handy for the 71-year-old Republican, who could face a tough reelection bid this year as both Democrats and members of his own party seek to take his seat.
McConnell won't get all of the credit for taking the steps needed to legalize hemp research, however. His hemp provision in the farm bill conference report stems from an amendment to the House version of the bill championed by Reps. Jared Polis (D-Colo.), Thomas Massie (R-Ky.) and Earl Blumenauer (D-Ore.), though their language only granted permission to colleges and universities, not state agriculture departments.
McConnell was made aware of the House amendment as the two farm bills were headed to conference, a source with knowledge of the farm bill negotiations told POLITICO. It is one of very few provisions that was not in both the House and Senate versions of the legislation that made it into the final bill, added the source, who has requested anonymity.
( Also on POLITICO: Holder: Pot can be harmful)
Getting a hemp measure included in the farm bill took considerable effort, the source said. Staff from McConnell's office and the House sponsors of the amendment had to educate other lawmakers who were often skeptical about allowing what has been long considered a controlled substance to be cultivated even for research purposes.
The cultivation of industrial hemp has become a pretty weedy topic in recent years.
Hemp is bred to contain far less tetrahydrocannabinol than marijuana and was widely grown in the United States until the mid-1900s. The plant, which historians say was grown by George Washington and Thomas Jefferson, was cultivated mainly for rope fibers, paper and textiles that were often used as ship sails.
Farmers abandoned hemp in the mid-1900s due to stringent federal restrictions. And lawmakers failed to include an exemption for hemp in the Controlled Substances Act of 1970, sounding a death knell for domestic production of the crop.
But interest in industrial hemp has grown in recent years, following the discovery of its potential nutrition benefits in food and as a component in composite materials and biofuel source material. Sales of hemp products in the U.S. reached $500 million in 2012, according to Eric Steenstra, president of Vote Hemp, which lobbies for the legalization of the product.
"All of that's coming from imported material," Steenstra said. "It doesn't make a whole lot of sense that really all our trading partners can grow these crops [but U.S. farmers can't]. I think there is no question that hemp could be a multibillion-dollar market [in the United States]."
Already 10 states have legalized cultivation of hemp — including Kentucky, Colorado and California — and 11 more are set to consider bills on the issue during their 2014 legislative sessions. The initiatives follow an August 2013 Justice Department memo in which the Obama administration left policing the cultivation of industrial hemp off a list of marijuana enforcement priorities. Since then, states have been quick to interpret that as a green light to move ahead with laws allowing the crop.
However, it's not quite that simple. Hemp and hemp seeds are still considered a controlled substance and cannot be imported — meaning farmers in states that have industrial hemp laws on the books have no access to the crop, Steenstra said. Farmers also can't insure hemp crops because of the federal restrictions. Complicating the issue further are concerns that new strains of hemp need to be developed to best grow in U.S. soils, given no work has been done domestically on the crop for more than a half-century.
That's where the farm bill provision comes in.
"We feel like this is an important first step" to large-scale cultivation, Steenstra said. "I don't think there is much question that there is a market, that it can be grown here. … At this point, I think the need is for research" and answering the question of "how we can get back into the game."


* Fix incorrect version display inside openscad.
* Fix python3 exception at the end of test run.
* Add missing files for `debian/rules clean`.
* Update VCS link in debian/control.
aspects rather than artistic ones.
process or make designes that are defined by configurable parameters.
This package contains debugging information stripped from the binaries.
This package contains all programs required to run the test suites.


To celebrate their 50th release, n5MD have pulled out all the stops with a double-disc label overview. This collection shows how far the label has come from its MiniDisc-only days. Unfortunately, it also shows how much the IDM scene has been transformed into instrumental indie rock.
Buy Phentermine Kvk Tech Keef Baker's "Never" starts with aquatic synthesizers and heavy breathing, but slowly builds into a rock opera crescendo of live drums and power chords. It sounds like a trip to the dentist with some heavy drugs kicking in at the end. Tobias Lilja contributes three pop songs with vocals. (The last of which features an amusing echo effect which makes the singer sounds like Kermit the Frog repeatedly croaking phrases such as, "Open arms"!) Even http://charlotteskitchendiary.com/2017/12/21/last-minute-christmas-wishlist/ SubtractiveLAD incorporates electric guitar.
A handful of tracks showcase strictly electronic offerings. Funckarma's "Skaind" sounds like a Shadow Huntaz instrumental but for its glossy melody. "Chaika" by http://charlotteskitchendiary.com/tag/family-friendly-pasta-recipes/ Vesna is also good, with distressed beats and sumptuous bass. These two tracks have been growing on me after repeated listens. By contrast, http://charlotteskitchendiary.com/2015/10/29/fattoush/ Another Electronic Musician's contribution borders on banal. Perhaps his pseudonym works against him psychologically! Likewise, the http://charlotteskitchendiary.com/?author=1 Loess remix of "Bud" by Quench is pleasant but it dissolves from dubby to nondescript. I'm afraid the Run_Return and Proem tracks strike me as similarly forgettable.
On disc two, there's another smattering of acoustic tracks, like Bitcrush's "What Would Hope Be Without Disappointment." Its reverberating guitar and drums remind me of Ulrich Schnauss' Goodbye (which is not a good thing). Lights Out Asia's "Psiu! Puxa!" seems similarly easy-listening. Damiak plucks a guitar and sings on "Field Lights," but at least the beat is clever.
It's never a good sign when (after a couple of listens) I find myself skipping entire tracks on a compilation. It's not just that I'm nostalgic for nineties IDM. That day is clearly past. I just pine for more experimentation. Adding echo to slow guitar strumming has been done to death now. What I'd really like to hear is a virtuoso playing as fast as Tom Jenkinson on the electric bass. What happened to speed, edginess, and urgency? Most of this music sounds like it could be played on a UPN teen drama when two characters break up. I won't write off n5MD yet, but this collection, which is meant to build excitement about the label roster, just makes me sleepy.


On Wednesday, the High Court ruled in favour of the school governing body (SGB)'s application for the place of learning to remain open pending the outcome of a Supreme Court appeal.
UITSIG - Parents of Uitsig High School learners say they want the Western Cape Education Department to upgrade the institution instead of shutting it down.
The SGB is challenging a High Court ruling which upheld the department's decision to close the school because it is structurally unsafe.
During an interval, the school learners loudly declare their excitement at being able to continue being taught here.
"It's too far, and you must have travel every day and it's dangerous," one pupil said.
School governing body officials say about 70 learners showed up on Thursday.
These parents explain why they are adamant the school should be reopened, saying it's safer and closer for the pupils.
On Wednesday, the Education Department explained it would be too costly to upgrade the school.
Were parents forced to rent textbooks at a CT school?


text:
//
//  MockingUserDefaults.m
//  MockingUserDefaults
//
//  Created by Eike Klenk on 05/08/15.
//  Copyright (c) 2015 Eike Klenk. All rights reserved.
//

#import "MockingUserDefaults.h"

#pragma mark - NSUserDefaults Category

@implementation NSUserDefaults (Mocking)

+ (NSUserDefaults *)mockingDefaults
{
    return (id)[[MockingUserDefaults alloc] init];
}

@end

/**
 Inline method to check if the object has a valid type for NSUserDefaults
 @param object The object to check the type for
 @return BOOL Whether object is a plist type or not
 */
static inline BOOL IsPlistType(NSObject *object)
{
    if ([object isKindOfClass:[NSString class]] ||
        [object isKindOfClass:[NSNumber class]] ||
        [object isKindOfClass:[NSDate class]] ||
        [object isKindOfClass:[NSData class]])
    {
        return YES;
    }
    else if ([object isKindOfClass:[NSArray class]])
    {
        for (id item in (NSArray *)object)
        {
            if (!IsPlistType(item))
            {
                return NO;
            }
        }
        return YES;
    }
    else if ([object isKindOfClass:[NSDictionary class]])
    {
        for (id key in (NSDictionary *)object)
        {
            if (!IsPlistType(key))
            {
                return NO;
            }
            if (!IsPlistType([(NSDictionary *)object objectForKey:key]))
            {
                return NO;
            }
        }
        return YES;
    }
    return NO;
}

@interface MockingUserDefaults ()

@property (nonatomic, strong) NSMutableDictionary* mockingData;

@end

@implementation MockingUserDefaults

#pragma mark - Initializers

- (id)init
{
    self = [super init];
    if (self) {
        self.mockingData = [NSMutableDictionary dictionary];
    }
    return self;
}

#pragma mark - Writing Methods

- (void)setObject:(id)value forKey:(NSString *)defaultName
{
    if (value == nil) {
        return;
    }

    if (value != NULL && !IsPlistType(value))
    {
        NSLog(@"%@ is not a valid type to set in NSUserDefaults", value);
        return;
    }

    self.mockingData[defaultName] = value;
}

- (void)setInteger:(NSInteger)value forKey:(NSString *)defaultName
{
     [self setObject:[NSNumber numberWithInteger:value] forKey:defaultName];
}

- (void)setFloat:(float)value forKey:(NSString *)defaultName
{
    [self setObject:[NSNumber numberWithFloat:value] forKey:defaultName];
}

- (void)setDouble:(double)value forKey:(NSString *)defaultName
{
    [self setObject:[NSNumber numberWithDouble:value] forKey:defaultName];
}

- (void)setBool:(BOOL)value forKey:(NSString *)defaultName
{
    [self setObject:[NSNumber numberWithBool:value] forKey:defaultName];
}

- (void)setURL:(NSURL *)url forKey:(NSString *)defaultName
{
    if ([url isFileURL] || [url isFileReferenceURL])
    {
        [self setObject:[[url absoluteURL] path] forKey:defaultName];
    }
    else
    {
        [self setObject:[NSKeyedArchiver archivedDataWithRootObject:url] forKey:defaultName];
    }
}

#pragma mark - Reading Methods

- (id)objectForKey:(NSString *)defaultName
{
    return self.mockingData[defaultName];
}

- (NSString *)stringForKey:(NSString *)defaultName
{
    id stringObject = self.mockingData[defaultName];

    if (![stringObject isKindOfClass:[NSString class]]) {
        return nil;
    }

    return stringObject;
}

- (NSArray *)arrayForKey:(NSString *)defaultName
{
    id arrayObject = self.mockingData[defaultName];

    if (![arrayObject isKindOfClass:[NSArray class]]) {
        return nil;
    }

    return arrayObject;
}

- (NSDictionary *)dictionaryForKey:(NSString *)defaultName
{
    id dictionaryObject = self.mockingData[defaultName];

    if (![dictionaryObject isKindOfClass:[NSDictionary class]]) {
        return nil;
    }

    return dictionaryObject;
}

- (NSData *)dataForKey:(NSString *)defaultName
{
    id dataObject = self.mockingData[defaultName];

    if (![dataObject isKindOfClass:[NSData class]]) {
        return nil;
    }

    return dataObject;
}

- (NSArray *)stringArrayForKey:(NSString *)defaultName
{
    NSArray* arrayObject = [self arrayForKey:defaultName];

    if (arrayObject == nil) {
        return nil;
    }

    for (id stringObject in arrayObject) {
        if (![stringObject isKindOfClass:[NSString class]]) {
            return nil;
        }
    }

    return arrayObject;
}

- (NSInteger)integerForKey:(NSString *)defaultName
{
    id object = [self objectForKey:defaultName];

    if (object == nil) {
        return 0;
    }

    if (![object respondsToSelector:@selector(integerValue)]) {
        return 0;
    }

    return [object integerValue];
}

- (float)floatForKey:(NSString *)defaultName
{
    id object = [self objectForKey:defaultName];

    if (object == nil) {
        return 0;
    }

    if (![object respondsToSelector:@selector(floatValue)]) {
        return 0;
    }

    return [object floatValue];
}

- (double)doubleForKey:(NSString *)defaultName
{
    id object = [self objectForKey:defaultName];

    if (object == nil) {
        return 0;
    }

    if (![object respondsToSelector:@selector(doubleValue)]) {
        return 0;
    }

    return [object doubleValue];
}

- (BOOL)boolForKey:(NSString *)defaultName
{
    id object = [self objectForKey:defaultName];

    if (object == nil) {
        return NO;
    }

    if (![object respondsToSelector:@selector(boolValue)]) {
        return NO;
    }

    return [object boolValue];
}

- (NSURL *)URLForKey:(NSString *)defaultName
{
    id object = [self objectForKey:defaultName];

    if ([object isKindOfClass:[NSString class]])
    {
        return [NSURL fileURLWithPath:[object stringByExpandingTildeInPath]];
    }
    else if ([object isKindOfClass:[NSData class]])
    {
        object = [NSKeyedUnarchiver unarchiveObjectWithData:object];
        if ([object isKindOfClass:[NSURL class]])
        {
            return object;
        }
    }
    return nil;
}

#pragma mark - Deletion Methods

- (void)removeObjectForKey:(NSString *)defaultName
{
    [self.mockingData removeObjectForKey:defaultName];
}

#pragma mark - Additional Methods

- (BOOL)synchronize
{
    // No need to synchronize anything while mocking
    return YES;
}

- (NSDictionary<NSString *,id> *)dictionaryRepresentation
{
    return [NSDictionary dictionaryWithDictionary:self.mockingData];
}

@end


text:
Home / School / The President's foreword
The Association des Arts Décoratifs is an institution, which undoubtedly seeks to remain up to date. In today's post-industrial civilisation, where objects are everywhere but also trivialized, dematerialised and obsolescent, it is our duty, more than ever, to have a reflection on the sense of everyday commodities. The object conceived in the fields of crafts, fashion, applied arts and industrial design is at the heart of our institution's concern. There lies the Ecole Camondo's mission and raison d'être: to define an object's origin, its birth, its uses, its shape and its purpose, but also its ultimate end in the space which it will help define and construct.
Pierre-Alexis Dumas, President of Les Arts Décoratifs
Share "The President's foreword"


Codulab is a technology company that creates innovative and powerful solutions to global development problems. Our products make your everyday easier and have an awesome look and feel. And it works!
Every line of code we write at Codulab has an impact. We build products, tools and websites that focus on solving problems by providing tailored and innovative solutions which work for your local context. By taking the time to understand the real needs of your end users, we never fail to build products which will be both used and useful.


Mayor Rahm Emanuel said Monday the Cubs should "take yes for an answer" and go along with rules he has proposed to govern an outdoor drinking area and event plaza next to Wrigley Field that fall short of what the team wants.
Emanuel said the City Council will pass a new ordinance this month with or without the team's support. It would allow the Cubs to sell beer and wine until one hour after day games end in the courtyard the team is building on Clark Street next to the park, and only until the end of night games. Game tickets would be required to enter the plaza on game days, according to the Emanuel administration.
In addition to concerts at the ballpark approved in advance, the Cubs would be allowed to hold 12 other "special events" in the plaza, defined as either having more than 1,000 people in attendance or one where alcohol is sold. The ordinance will lapse in three years.
The plaza has been the latest battle line in the ongoing fight between the Ricketts family and neighborhood groups about how much the team owners should be allowed to do as part of its massive renovation project at the historic ballpark and its surrounding neighborhood.
The Cubs want considerably more control over the plaza than what they are given in the ordinance backed by Emanuel and Wrigleyville Ald. Tom Tunney, 44th.
In late 2013, the team introduced a measure to the City Council to create a sports plaza designation in city code. That would have allowed the Cubs to sell beer and wine on the plaza until 11 p.m. on weekdays and midnight on weekends, with no game-day restrictions. But the proposal went nowhere.
On Monday, Emanuel said he and Tunney compromised with the team. "As a party to this, I know what they wanted by the ninth inning, I know what they wanted on day games afterward, I know they wanted more. In two years they wanted more than eight (additional) events, and that has been, by Ald. Tunney and myself, agreed to," he said.


text:
Q: Zip all parent folders and subdirectories separate. Ubuntu So I have a bash I use to zip each folder as its named.zip. However it zips sub folders into the same as its parent.
Example
  Example 1
  Example 2
  Example 3
Example-me
  Example 12
  Example 21
Example-nosubdir

All end up in Example.zip or as Example-me. How can I make it zip directories with no sub directory as well as recognizing a sub directory and only zipping the sub directories?
Here is what I have been using.
for i in */; do zip -r "${i%/}.zip" "$i"; done

Trying to make that work to do what is specified above.
Thanks

redpajama_set_name: RedPajamaStackExchange


Extreame Savings! Up to 44% off on Decorations at Gooki Trading. Top brands include Talking Tables, House, Home and More, Ving, Mosoan, Seda France, Rogue River Tactical, Event Decor Direct, Home Kitty, Authentic Models, Morris Costumes, ShiDianYi, Fun Express, JIALI, Firefairy, Rubie's, Monkey Home, Together Forever Puzzle, Treasures Gifted, & 3eHome. Hurry! Limited time offers. Offers valid only while supplies last.


In British Columbia we have multiple levels of government. In this post we will be dealing with the municipal, provincial and federal governments in BC generally. I have drafted City policies, have worked for the City of Richmond and Surrey Bylaw Departments, and the Provincial Translink department, and as such, have a sense of the inner workings of many levels of government.As a law firm and a lawyer, I (we) have represented clients dealing with all levels of governments in B.C. and there are some very practical realities that someone should keep in mind when "fighting City Hall".
First, it should be noted that the front line government employees deal with a lot of difficult situations and often have little authority to make specific decisions related to your particular case.
Generally, when you sue someone in court you have something to lose or win (business or personal) and they have something to lose. When you sue or fight the government, the people you are dealing with are not playing with their money; they are playing with yours (indirectly). This makes for a very different type of adversary. I do not believe that government employees are bad people but one has to agree that decisions are made differently when you have nothing to lose personally and are unhappy with your job. I have heard government employees repeatedly state or certainly their actions suggest 'I do not care if this goes to court'.
Another difficulty government employees face is that the rules they have to enforce apply to hundreds, if not millions, of people and can often only be changed by a challenge to legislation. Thus, they have little actual authority and you can appreciate how that may be frustrating.
Governments are given their powers or authority by The Constitution Act 1867 (the "Constitution") and to a large degree by the Court's interpretation of the Constitution.
Section 92 and 91 split the powers between the Provincial Government and the Federal Government. If it is not a listed in 91 or 92, the Federal Government gets jurisdiction. The Municipal governments obtain their powers from the Provincial government under the applicable acts. For example the BC Government gives the City of Vancouver its powers from the Vancouver Charter, [SBC 1953] Ch. 55 (the "Vancouver Charter"). If it is not in the Vancouver Charter, the City of Vancouver does not have the authority to deal with it, period.
If the City tries to pass a bylaw outside of this definition (that is not captured under another section of the Vancouver Charter) they are outside their authority and the Court may rule the bylaw of no force and affect or ultra vires. Bylaws can be challenged many ways but you should look to the bylaw empowering the government when dealing with government.
One thing I recommend to clients when dealing with the government is ask the government official to send you everything in writing (which is reasonable) and ask them where they get their authority (what law). Many times my clients have gotten themselves into a bind because the situation has become personal between themselves and the person they are dealing with. Then the government employee digs their heelsin and it becomes a matter of egos.
One should always remember; a fight with the government is not going to be pleasant, it will be costly and even if you get what you want you will most likely not be happy with the end result.
Remember the government has to follow the law as well. They have to honour contracts and follow other laws (like privacy laws). In many cases, governments have more laws that they have to follow than you as an individual. Be reasonable but make them do the right thing. You can request all of the information / file under the applicable privacy law and most if not all government agencies have privacy officers you can contact. In addition, government decisions can most often be appealed. Looking at the applicable law should tell you when the limitation period for an appeal runs out. Many government agencies have helpful webpages that will show you how to appeal the decision. As they say, 'knowledge is power', get it and use it to stand up for your rights and what is right.
Fighting with the government is an uphill battle that can leave many scars, so if you can avoid the fight I would recommend you do so. If you cannot or what they have done is wrong, do it right from the beginning, know your rights and hold the government accountable. Ultimately they should be working for you.


David Aguilar was born without a right forearm due to a rare genetic condition.
He didn't let that stop him from living life, in fact, it inspired him to use his imagination and a few Lego bricks to create something really awesome.
David built himself a robotic prosthetic arm using Lego pieces.
David currently studies bioengineering at the Universitat Internacional de Catalunya in Spain and hopes to use his arm and it's model to help build affordable prosthetics for other people in need.


CHEVY CHASE, MD — (MARKET WIRE) — 04/12/2006 — For the second year in a row, The Ritz-Carlton Hotel Company, L.L.C. has been ranked first as the most prestigious brand by The Luxury Institute's Luxury Brand Status Index Survey. The award-winning hotel company took top honors over 18 other hospitality corporations among consumers with a minimum net worth of $750,000.
"At a time when many brands claim to offer their customers luxury, it is very gratifying to see that the truly discerning and sophisticated traveler selected The Ritz-Carlton brand as their number one choice. We are especially pleased that we were rated highest for superior quality and making our customers feel special across all of their experiences," said Simon F. Cooper, president and chief operating officer of The Ritz-Carlton Hotel Company. "It is a tribute to the commitment to our guests from our ladies and gentlemen at our hotels and resorts around the world," he noted.
The Luxury Institute is the uniquely independent and objective research institution that is the trusted voice of America's wealthy. The Institute provides a portfolio of proprietary publications and research that guide and educate high net-worth individuals and the companies that cater to them on leading edge trends, wealthy consumer rankings and ratings of luxury brands, and best practices. Publications include the monthly Wealth Report, the Luxury Brand Status Index surveys, the Luxury Best Practice surveys and the Luxury Consumer Experience Index surveys. To reach the Luxury Institute, please call 646-792-2669 or go to www.luxuryinstitute.com.
The Ritz-Carlton Hotel Company, L.L.C. of Chevy Chase, Md., (USA) currently operates 61 hotels in the Americas, Europe, Asia, the Middle East and Africa. Over 20 projects are under development around the globe with hotel openings planned for Moscow, Ireland, and two in Beijing over the next year. The Ritz-Carlton is the only service company to have twice earned the prestigious Malcolm Baldrige National Quality Award, which recognizes outstanding customer service.
For more information contact The Ritz-Carlton toll free reservations at 1 (800) 241-3333, your travel consultant or visit www.ritzcarlton.com.


text:
Het Heuvelland (in Engelstalige publicaties: Dutch Hills) is een streek in het zuiden van Nederland, die gekenmerkt wordt door een heuvelachtig landschap. Het Heuvelland in de meest gebruikte betekenis omvat het niet-verstedelijkte zuidelijk deel van Zuid-Limburg. Ter nadere identificatie wordt ook de aanduiding 'Limburgs Heuvelland' gebruikt.

Definities
De begrenzing van het Limburgse Heuvelland is formeel niet vastgelegd en er bestaan uiteenlopende opvattingen over welke gebieden wel en niet tot het Heuvelland gerekend moeten worden. Het Heuvelland in engere zin is de streek ten oosten van de A2, ten zuiden van de A79 en ten zuidwesten van de A76, en komt min of meer overeen met het Mergelland of Krijtland. Soms wordt een ruimere definitie gehanteerd, waarbij het Heuvelland verwijst naar het landelijke deel van Limburg ten zuiden van Sittard, waar het landschap enigszins heuvelachtig is, inclusief de tamelijk vlakke plateaus. Bij deze laatste definitie worden het Centraal Plateau, het Plateau van Doenrade en het Plateau van Ubachsberg, alsmede de niet-stedelijke delen van de regio's Maastricht, Westelijke en Oostelijke Mijnstreek (Parkstad Limburg) meegerekend. In de ruimste definitie worden ook de verstedelijkte gebieden gezien als deel van het Heuvelland.

In de jaren 1980 ontstond er in het zuidelijk deel van Zuid-Limburg een bestuurlijk samenwerkingsverband tussen Maastricht en de zogenaamde 'Heuvellandgemeenten'. Tot deze Heuvellandgemeenten in-engere-zin behoren de gemeenten Meerssen, Valkenburg aan de Geul, Eijsden-Margraten, Gulpen-Wittem en Vaals.

Geografie
Het Heuvelland wordt gevormd door uitlopers van de Belgische Ardennen en de Duitse Eifel. In het zuidwesten gaat het Heuvelland over in de Belgische Haspengouw; in het zuiden in de Voerstreek en het Land van Herve, waar het qua landschap veel op lijkt. De hoogste toppen reiken net boven de driehonderd meter. De Vaalserberg is met 322,4 meter boven NAP het hoogste punt van (het Europees deel van) Nederland. De bekende Cauberg in Valkenburg is 133,7 meter hoog; de Sint-Pietersberg slechts 108 m. Interessant zijn twee kunstmatige heuvels: de Wilhelminaberg in Landgraaf is 225 meter hoog; D'n Observant bij Maastricht 170,8 meter. Het dorp Vijlen (200 meter NAP) noemt zichzelf het hoogst gelegen dorp van Nederland.

Geologie

In de ondergrond van Zuid-Limburg bevinden zich meerdere lagen uit verschillende periodes, waarvan een aantal aan de oppervlakte komen. De bovenste laag is op veel plekken een lösspakket, een eolische afzetting van het Laagpakket van Schimmert uit de Formatie van Boxtel. Daaronder bevindt zich vaak zand en grind, fluviatiele afzettingen van kleine beken (Laagpakket van Hoogcruts) en Maasafzettingen (Maasgrind en zand) van de Oostmaas en Westmaas die behoren tot de Formatie van Beegden en afzettingen van de Oermaas die behoren tot het Laagpakket van Waubach. Daaronder bevinden zich aan de noordkant zanden en zuidelijker meerdere kalksteenlagen, vaak aangeduid als mergel. Deze kalksteenlagen zijn van de Formatie van Houthem, Formatie van Maastricht en Formatie van Gulpen. Verschillende van deze kalksteenlagen zijn rijk aan vuursteen. Onder de kalksteenlagen zit er dan weer de Formatie van Vaals en de Formatie van Aken. Anno 2019 wordt er kalksteen gewonnen in de Sibbergroeve en de Kunradersteengroeve. Met name in de periode van de Eerste Wereldoorlog bevonden zich er tientallen kalkbranderijen om kalk te branden, waarvan er nog een twintigtal resteren (lijst).

Natuur
De Natura 2000-gebieden Geleenbeekdal, Bunder- en Elslooërbos, Brunssummerheide, Kunderberg, Bemelerberg & Schiepersberg, Geuldal, Savelsbos, Sint Pietersberg & Jekerdal en Noorbeemden & Hoogbos liggen alle in het Zuid-Limburgse Heuvelland.

Het natuurlijke landschap in het Heuvelland wordt gekenmerkt door een afwisseling van bossen, heidevelden, akkers, weilanden en boomgaarden. In grote delen van het gebied wordt de natuur bedreigd door oprukkende verstedelijking en delfstoffenwinning (zand, grind, mergel). Het traditionele coulisselandschap met hoogstamfruitbomen en meidoornhagen dreigde door de rationalisatie in de landbouw te verdwijnen, maar wordt de laatste jaren krachtig beschermd (onder andere door nieuwe aanplant door het IKL Limburg).

Cultuurhistorie
Het Limburgse Heuvelland is niet alleen bekend vanwege het natuurschoon, maar ook vanwege de rijke cultuurhistorie. Vanwege de hoge landschappelijke waarde van het gebied is het Heuvelland in 2005 door de overheid aangewezen als Nationaal Landschap. Diverse plaatsen hebben een beschermd dorps- of stadsgezicht. Talloze kerken, kastelen, boerderijen en watermolens zijn rijksmonumenten. Een deel van de oudere gebouwen is uit lokale Limburgse mergel opgetrokken. Ook treft men er de typisch Zuid-Limburgse carréboerderijen en vakwerkhuizen aan. Typisch Limburgs zijn ook de wegkruisen en wegkapelletjes, die langs veel wegen (soms holle wegen) te vinden zijn.

Bijzonder zijn ook de ondergrondse gangenstelsels die door mergelwinning ontstaan zijn, soms in totaal honderden kilometers lang. Deze Limburgse mergelgroeven, beter bekend als "mergelgrotten", zijn onder andere te vinden in de Cannerberg, de Sint-Pietersberg en in de omgeving van Geulhem en Valkenburg. In die laatste plaats en in de buurt van Rijckholt bevinden zich enkele vuursteenmijnen.

Toerisme en recreatie
Het Heuvelland is een belangrijke toeristische regio. Vooral Maastricht en Valkenburg zijn vanouds trekpleisters met een groot aanbod van toeristische attracties, hotels, cafés en restaurants. Gulpen, Epen, Mechelen, Vijlen, Slenaken, de aangrenzende Voerstreek en Vaals zijn secundaire toeristische centra. In de hele regio zijn hotels, pensions, vakantieparken, kampeerboerderijen en campings vertegenwoordigd.

Door de ANWB is in Zuid-Limburg de Mergellandroute uitgezet, die zowel per auto of motor als per fiets kan worden afgelegd. De route voert door heel Zuid-Limburg langs de mooiste landschappen en dorpsgezichten, en vermijdt waar mogelijk de drukste wegen. Het Krijtlandpad is een populaire wandelroute door het Mergelland, terwijl ook het Pieterpad en het Pelgrimspad delen van het Heuvelland doorkruisen. Daarnaast zijn er tal van lokale wandel- en fietsroutes uitgezet.

Zie ook
 Zuid-Limburg (Nederland)
 Nationaal Landschap Zuid-Limburg
 Mergelland
 Krijt-lösslandschap
 Lijst van heuvels in Zuid-Limburg (Nederland)
 Heuvellandlijn

Externe links
 Kunst en cultuur in het Heuvelland
 Website heuvelland.com
 Portal zuidlimburg.nl
 Geologische kaart van Zuid-Limburg

redpajama_set_name: RedPajamaWikipedia


text:
Q: Hide NavigationBar when MediaController is shown I am using MediaController with VideoView. I am using the following solution to keep the app in immersive mode and it works.
activity.getWindow().getDecorView().setSystemUiVisibility(
                View.SYSTEM_UI_FLAG_LAYOUT_STABLE |
                        View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION |
                        View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN |
                        View.SYSTEM_UI_FLAG_HIDE_NAVIGATION |
                        View.SYSTEM_UI_FLAG_FULLSCREEN |
                        View.SYSTEM_UI_FLAG_IMMERSIVE);

It doesn't work when the MediaController shows up on the screen. I have tried putting up some listeners like when the media controller is shown, trigger the hide nav bar solution. But it does't work. Is there any workaround for this.

A: Try this out!
@Override
public void onWindowFocusChanged(boolean hasFocus) {
    super.onWindowFocusChanged(hasFocus);
    if (hasFocus) {
        hideSystemUI();
    }
}

private void hideSystemUI() {
    // Enables regular immersive mode.
    // For "lean back" mode, remove SYSTEM_UI_FLAG_IMMERSIVE.
    // Or for "sticky immersive," replace it with SYSTEM_UI_FLAG_IMMERSIVE_STICKY
    View decorView = getWindow().getDecorView();
    decorView.setSystemUiVisibility(
            View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
            // Set the content to appear under the system bars so that the
            // content doesn't resize when the system bars hide and show.
            | View.SYSTEM_UI_FLAG_LAYOUT_STABLE
            | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
            | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
            // Hide the nav bar and status bar
            | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
            | View.SYSTEM_UI_FLAG_FULLSCREEN);
}

// Shows the system bars by removing all the flags
// except for the ones that make the content appear under the system bars.
private void showSystemUI() {
    View decorView = getWindow().getDecorView();
    decorView.setSystemUiVisibility(
            View.SYSTEM_UI_FLAG_LAYOUT_STABLE
            | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
            | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
}

Hope it helps!


This time of year mowing the lawns in the cemetery is a full-time job for a whole crew of (mostly) guys.
The cemetery is approximately 106 acres and runs north-south for 10 city blocks.
If we include the 1919 section it would be 12 city blocks.
That is a huge cemetery. The ones in Haninge are much more compact and they don't have big empty lawns like this one.


Pomona 6 Lapsteel. For safe and stylish transportation. Ultra-stable design with black tweed cover, all-round edge protection, wide, padded neck support, quality closures, accessory pocket and a sophisticated, embroidered "D" logo in silver. Inside and outside an adornment!


text:
Clyde Molesworth Jeffery  (26 February 1917 – 23 June 2002) was the Mayor of Napier, New Zealand from 1974 to 1983, having been a Napier City Councillor from 1962 to 1974.

He was born in Napier and educated at Napier Boys' High School. He married Sybil Nicol in 1951, and was employed in the menswear industry.

He was in the RNZAF as a flight sergeant for six years in World War II, being awarded the British Empire Medal for outstanding service in Bougainville in 1945. He was awarded the Queen Elizabeth II Silver Jubilee Medal in 1977, and in the 1985 New Year Honours he was appointed a Companion of the Queen's Service Order for public services. In 1989, he was made freeman of Napier.

References

1917 births
2002 deaths
20th-century New Zealand businesspeople
Mayors of Napier, New Zealand
New Zealand military personnel of World War II
Royal New Zealand Air Force personnel
People educated at Napier Boys' High School
Companions of the Queen's Service Order
New Zealand recipients of the British Empire Medal
Napier City Councillors
20th-century New Zealand politicians
New Zealand justices of the peace