The sight of a rat or multiple rats entering a home or work place may be enough to scare a person out of their wits; however rats can be easily controlled through Arkadia's professional rodent control, inspection, and treatment pest control services in NJ. Arkadia - Eco Pest Control has highly trained licensed pest control technicians that are able to spot out where the rats are entering, eliminate those areas, proceed to lay traps, and install appropriately located rat bait boxes on the exterior of the location where the rats have been found nesting and frequenting.
Our pest control technician's goal is to thoroughly assess and diagnose rat control areas in their entirety, record all problem areas, provide proper service to control the rat problem and to prevent current and future problems of the rodents. Three words our company most values when treating and performing rat control pest services in is: seal, trap and control.
Rats are notorious for their chewing habits. Rats are infamous for their ability to chew holes into the side of houses and buildings. Rats can also squeeze through cracks, crevices, and holes as small as a half an inch. This means that rats can squeeze their furry bodies through openings that are equal to the size of a quarter. This is exactly where Arkadia - Eco Pest Control in NJ steps in. Our NJ pest control technicians will begin the sealing process soon after the initial pest control inspection has been performed. This step in controlling the rat problem is essential and one of the most successful steps in the control and elimination of rats entering any and all affected areas. During the inspection the Arkadia pest control technician will take note and seal the places where rats are of suspicion. By doing this the rats will not only no longer have a place to exit but more importantly not a place to enter. Rats are naturally tremendously clever and a rodent of who thrives on repetition and regularity. In other words, rats keep to the same routine on a daily basis and rarely take stutter steps away from their ritualistic paths. Sealing causes a great deal of confusion when the rats try to find their way in and out through the holes that they would have typically used to enter or exit the location because these areas are now sealed. This leads us to our next two important steps of rat treatment; rat trapping and rat control.
Rat Control and rat treatments are both an internal and external job. Our licensed pest control technicians will do the majority of the sealing outside, however the inside may need it as well especially in a building-like setting. Arkadia - Eco Pest Control acts like a team of detectives on every pest control job to provide the best quality of pest control, pest minimization, and pest deterrence. While inside a client's home, the pest control technician may begin his or her rat control inspection in the attic or the basement area.
This step in the rat control inspection depends on the customer's complaints and/or findings. The rodent control technician will combine where sealing took place and find any rat droppings within visibility. This will help the Arkadia pest control technician determine where the traps should be placed where they will be most affective. Externally, several rat bait boxes will be placed surrounding the perimeter of the customer's home or clients business. The trap and bait system provides double prevention inside and outside of the home in combination with the sealing leading to the control and elimination of the rats. We also offer Mice Control pest services as well.
Arkadia - Eco Pest Control Provides: RAT SEALING, RAT CONTROL, RAT CLEAN-UP and RAT SANITATION in NJ.
Rats in NJ have also been known to carry fleas and ticks into homes and buildings. This means that rats are not only carrying their own bacteria and diseases into the location, but may also be carrying those associated with fleas and ticks. It's a well known fact that rats were highly involved in the transmission and dispersal of the Black Plague.
Rats carry several diseases, viruses, and bacteria including, one very common one called salmonellas, which makes an infestation of rats in ones home and/or work area a potential health risk in NJ. Humans can come in contact with any these bacterial agents by ingesting rat contaminated food, water, or by simply breathing in rat droppings that are contaminated. Another way is direct contact with the rodent which is rare. Rats are one of the more shy rodents. In fact, rat incursion into a home may take weeks, or even months. One may be at risk to receiving a rat bite, though this is a rare occurrence. If droppings and contamination is bothersome please feel free to ask Arkadia - Eco Pest Control and about our Rodent Control Services. Arkadia also offers rat control sanitation and rat dropping clean-up in NJ. We also offer smart advice on how a customer can clean-up rat droppings on their own, while minimizing risk of infections.


1 Water Bottle (Black) Soft 500ml bottle in carrier with belt loop and carabiner clip. Screw on cap and pull-up drinking nozzle.
1 Gym Sac (Black) Water resistant fabric with reinforced corners and metal eyelets - embroidered with Danderhall Primary School logo.


text:
Coronavirus: Carey Hart details wife Pink and 3yo son's 'intense' battle with COVID-19
Monika Barton
Watch: The AM Show's Aziz Al-Sa'afin reviews Pink's Beautiful Trauma tour. Credits: Image - Getty; Video - The Am Show
Carey Hart, husband of pop superstar Pink, has shared what it was like watching his wife and 3-year-old son suffer with COVID-19.
Speaking to SiriusXM radio this week, Hart described what his family went through as "intense".
Tom Hanks, Rita Wilson return home after recovering from COVID-19
Coronavirus: Arnie's adorable self-isolation message with donkey and pony
"They both got extremely sick. My son probably got the worst of the two of them which kind of debunks the theory that this only hits old people," he said.
The former motocross competitor explained that Pink got it "pretty bad" too, as the virus was exacerbated by a pre-existing asthma condition.
"It totally attacked her lungs and her chest. She was having a hard time breathing."
Hart said at one point his son Jameson "took a turn for the worse", with an extremely high fever for a "solid two, going on three weeks straight".
Earlier this month, Pink confirmed she tested positive for coronavirus towards the end of March, but that she and her son had since recovered and re-tested with a negative result.
Hart explained that while his wife was the only one tested initially, and he and his 8-year-old daughter Willow remained symptomless throughout, the family operated under the idea: "If one of us has it, all of us have it."
Pink announced she was donating US$1 million to healthcare amid the coronavirus pandemic, split evenly between the Temple University Hospital Emergency Fund in honour of her mother, and the City of Los Angeles Mayor's Emergency COVID-19 Crisis Fund.

redpajama_set_name: RedPajamaCommonCrawl


text:
Last edited by Teramar
Monday, August 3, 2020 | History
3 edition of British party politics and ideology after New Labour found in the catalog.
Published 2010 by Palgrave Macmillan in New York .
Political parties -- Great Britain,
Great Britain -- Politics and government -- 2007-
Statement edited by Simon Griffiths and Kevin Hickson.
Contributions Griffiths, Simon, 1976-, Hickson, Kevin, 1974-
LC Classifications JN1117 .B75 2010
Letters: New Labour was born out of a century which saw the world repeatedly torn apart, and millions slaughtered, on the altars of competing ideologies (He risks leading his party into an Author: Guardian Staff. Since , proportional representation-based voting systems have been adopted for elections to the Scottish Parliament, the National Assembly for Wales, the Northern Ireland Assembly, the London Assembly and the UK's seats in the European these bodies, other parties have had success. Traditionally political parties have been private organisations with no official recognition by.
An intriguing new book by Ben Cobley, a former Labour activist, "The Tribe: The Liberal-Left and the System of Diversity", points out that the Labour Party rule book, a page document Author: Madeleine Kearns. The Labour Party and Social Change, covers the entire history of the Labour Party. It analyzes the reasons for the party's development and depicts its history as the product of economic and social factors. The argument that is developed does not deny the importance of individuals in the party's growth, but rather emphasizes that Cited by: 1.
Labour Party was formed in as the Labour Representation Committee from an alliance of some trade unions seeking parliamentary election to protect trade union rights and interests. In – Labour Party reprinted the communist manifesto with an introduction by Harold Laski (chairman of the Labour Party ) – very left wing. New Labour: a study in ideology Article in British Journal of Politics & International Relations 2(3) - October with 44 Reads How we measure 'reads'.
Brasseys essential guide to military small arms
Ethnicity and stratification among tribals in urban setting
Social science research publication.
One-act plays for secondary schools
Three Affiliated Tribes Health Facility Compensation Act
Indirect approaches in therapy
querist.
Egypts golden age
What Do You Know About Italian
A Sylvan queen
Food biosensor analysis
culture des camarades
Solomon the magnificent.
The Encyclopedia of organic gardening
Starting school.
The Guide to the Federal Budget Fiscal 1988
British party politics and ideology after New Labour Download PDF EPUB FB2
British Party Politics and Ideology after New Labour [Griffiths, S., Hickson, K.] on *FREE* shipping on qualifying offers. British Party Politics and Ideology after New LabourFormat: Hardcover.
British Party Politics and Ideology after New Labour brings together academics and politicians to debate the intellectual roots of the ideas that currently drive the main UK political parties.
With major players responding to the arguments raised in each chapter, the book will be a must-read for anyone interested in or teaching British politics. History. The Labour Party was born at the turn of the 20th century out of the frustration of working-class people at their inability to field parliamentary candidates through the Liberal Party, which at that time was the dominant social-reform party in the Trades Union Congress (the national federation of British trade unions) cooperated with the Independent Labour Party.
Get this from a library. British party politics and ideology after New Labour. [Simon Griffiths; Kevin Hickson;] -- British Party Politics and Ideology after New Labour provides the most comprehensive analysis of contemporary party political ideology in Britain to date, with chapters written by.
Buy British Party Politics and Ideology after New Labour by Griffiths, S., Hickson, K. (ISBN: ) from Amazon's Book Store. Everyday low prices and free delivery on eligible : Paperback.
British party politics and ideology after New Labour Title British party politics and ideology after New Labour Statement of responsibility edited by Simon Griffiths and Kevin Hickson ; preface by David Owen Contributor. Hickson, Kevin, Griffiths, Simon, Subject.
Political parties -- Great Britain; Great Britain -- Politics and. The Labour Party is a centre-left political party in the United Kingdom. Labour surpassed the Liberal Party in general elections during the early s, forming minority governments under Ramsay MacDonald in and The party was in a wartime coalition from toafter which it formed a majority government under Clement Attlee.
Labour was also in government from to European affiliation: Party of European Socialists. Roger Awan-Scully provides a hugely valuable guide to the forces that have reshaped party politics across the United Kingdom. And he poses sharp questions for politicians, for the media and for the voters themselves.
Huw Edwards. An absorbing guide to how British politics is changing, how it happened and why it matters. Stephen Bush, New Statesman.
British Party Politics and Ideology after New Labour provides the most comprehensive analysis of contemporary party political ideology in Britain to date, with chapters written by distinguished authors. It begins by debating the Blair legacy and asks if there was a decisive ideological shift away from Thatcherism following the landslide election victory in The general election caught many by surprise as it swept away the old certainties of two-party politics.
But, as Stephen Driver shows in this new book, multi-party politics had already established itself as a feature of contemporary British political life.
In recent years, both Labour and the Conservatives lost their iron grip on the electorate and the Liberal Democrats emerged as a. The Labour Party is a centre-left political party in the United Kingdom that has been described as an alliance of social democrats, democratic socialists and trade unionists.
In all general elections sinceLabour has been either the governing party or the Official Opposition. The Labour Party was founded inhaving grown out of the trade union movement and socialist parties of the Chairman: Ian Lavery.
In other words, the agenda and the world-vision underlying the New Labour project effectively and profoundly changed the Labour Party. Twenty years later, all British parties seem to compete within the ideological and political bounds set by New Labour (and arguably by Thatcherism).
Labour party, British political party, one of the two dominant parties in Great Britain since World War I. Origins The Labour party was founded in after several generations of preparatory trade union politics made possible by the Reform Bills of andwhich enfranchised urban workers.
New Labour is a period in the history of the British Labour Party from the mids until under the leadership of Tony Blair and Gordon name dates from a conference slogan first used by the party inlater seen in a draft manifesto which was published in and titled New Labour, New Life for was presented as the brand of a newly reformed party that had.
Could I point out – it's the Scottish National Party. The SNP – in – was the party of (minority) government in Scotland.
I would suggest that the success of the SNP was more to do with their perceived competency and the implosion of Scottish Labour, along pre-existing historical and barely hidden fault lines, that have as much to do with the make up of Scottish Labour, as it did.
Labour Party Manifesto A Green Industrial Revolution. Rebuild our Public Services. Tackle Poverty and Inequality. The Final Say on Brexit. A New Internationalism. Accessible Manifestos. This election will shape our country for a generation.
It is your opportunity to transform our country so that it works not just for a few, but for all of us. British party politics and ideology after New Labour.
Add to My Bookmarks Export citation. Type Book Author(s) Simon Griffiths, Kevin Hickson Date Publisher Palgrave Macmillan Next: Politics and governance in the UK.
Previous: New Labour and Political Change. Library availability. View in catalogue Find other formats/editions. Buy from. A History of the Labour Party from To Build a New Jerusalem: Labour Movement from the s to the s Driver, Stephen and Luke Martell.
Politics after Thatcherism Polity Press, wnd ed. Blood, Sweat, and Toil: The Labour Party's Political Thought: A History Macmillan, The Politics of the Labour Party Routledge, Between universalism and class policies. Buckler, S., Dolowitz, D.
() ' Ideology Matters: Party Competition, Ideological Positioning and the Case of the Conservative Party under David Cameron ', British Journal of Politics and International Relations, 14 (4), – Cited by: 3.
In the manifesto, New Labour advocated a new, leader role of the UK in the European Community Despite this rhetoric commitment, the Labour government tackled the most important European question regarding Britain's membership in the European Monetary Union with the "classic British policy of conditionality" However, their lack.
Brexit and British Politics tells the tale of the background of British politics that led to and resulted from the Brexit campaign. Authors Geoffrey Evans and Anand Menon make their case through verbal analysis supported by statistical data/5.
The luck of the Tories Neil Kinnock is a problematic figure in modern British politics. He was leader of the Labour party for nine years and presided over a number of profound changes in both Author: Guardian Staff. An introductory book for the reader who wants more information on the political system in the UK.
Political Parties in the UK by Alistair Clark Synopsis A systematic and comprehensive introduction to party politics throughout the UK combining chapters on each of the main political parties in the UK (Conservative, Labour, Liberal Democrats) with an assessment of the post-devolution party.
caskel.com - British party politics and ideology after New Labour book © 2020


There's something about a 760,000 year old, endorheic (no outlet to the sea), saline soda lake with calcium-carbonate spires known as tufa that pulls this photographer in…My iPhone was set for 4:00 am to make a morning capture of Mono Lake, but when I checked the weather it was 20°. I'm dedicated to my craft, but I knew there was no way I was getting out of my toasty sleeping bag until it warmed up. In early afternoon while walking the shoreline, I came upon this arched peninsula of tufa rock reflecting in the water. The water was pale and the reflection faint, but I knew that if I waited for the golden hour, magic would happen. The camera and tripod were locked down just as you see it in the image above allowing me to wait (while eating empanadas and drinking coconut juice) for the light. By 5:00 pm, this is how it looked, the water deep blue and the reflection almost as detailed as the actual tufa.
Nikon D810 DSLR, AF NIKKOR 50mm f/1.8D, exposure: f/6.3, 1/640 sec., ISO 64, exposure program: Manual Priority, shutter: Mup mode with Electronic Front-Curtain Shutter Release, Vello Wireless ShutterBoss Timer Remote, Induro Stealth CLT203 carbon fiber tripod, Induro PHQ1 Panhead, capture date and time: 10/21/2017, 5:54 pm, post processing: HDR 32-bit image file.
Mother Nature outdid herself by giving you this glorious piece of art to capture.
Every week I think I have seen the most beautiful, stunning, image ever then you outdo yourself.
I like the rich blue of the sky, it is a colour that is so deep I feel I could sink into deep meditation just by staring at the water.
The dead bushes at the shore of the tufa are colourless and plentiful.
Since this is the golden hour are the tufa a pale colour when it is not being highlighted by the golden hue of the setting sun?
Off to the right is a bush with a punch of green adding another element to this image.
Is this tufa near the shore?
I am wondering because I think I see the bottom of the lake along the lower edge of the image or is it the clouds being reflected in the still, calm water?
Although, it is in HDR there can't be clouds because they would be moving can there?
There is so much detail in the tufa.
I am wondering that if people were to touch or try to climb them could they be damaged?
The tufa looks hard with sharp edges that could cut you.
I love the craggy ruts and holes that I see but I wonder what the other side looks like.
I see that your signature has taken on the golden glow as well as the tufa.
Is this a deep lake?
How tall is the tufa at its height?
Mother Nature continues to give even when she is under attack from governments around the globe, particularly China And the United States.
Yes they look pale and lifeless midday, nothing spectacular other than their shape. But, art is subjective and I work within my own little art world where it is golden 24/7. That's the way I see it. It's my prerogative.
"Off to the right is a bush with a punch of green adding another element to this image.
This tufa is right off shore, 10′-15′ from the lens. It is desert, but there is greenery, specialized plants that thrive on the salinity of the lake.
You are seeing aquatic plant life and brine shrimp in shallow water along the shoreline.
Good photographic question! A lot of people would tell you yes, and that would be correct to a degree. It depends on what you envision, and what you decide is the correct shutter speed and amount of time between frames that will get you what you envision for your HDR multiple frame image. For instance, there are clouds but they appear a bit harsh so you make your shutter speed around one second with 5 sec. between 3 frames.The end result is clouds with softer edges. On the other hand, you could make the shutter speed 10 min. with the end result being quite surreal.
They are easily damaged. Limestone is a soft rock "sedimentary". Also consider that your hands will look like chop meat by the time you reach the top.
It was a deep lake, but Mono Lake has been vastly depleted over the years. Most of the tufa spires are now out of the water and crumbling.
This one's about 20′ at it highest point.


text:
Velmanette Montgomery
Served from January 1984 - December 20202
Assemblyman Mosley and Senator Montgomery hosting Community Conversation on the Marijuana Regulation and Taxation Act (MRTA)
Marijuana Regulation and Taxation Act (MRTA)
Community Conversation on the Marijuana Regulation and Taxation Act (MRTA)
Assemblyman Walter T. Mosley and State Senator Velmanette Montgomery hosting Community Conversation on the Marijuana Regulation and Taxation Act (MRTA).
There will be a panel discussion on:
• The current state of the law
• The possible legalization of cannabis
• What this could mean for the community
For additional information and or questions, please contact 718-596-0100 or 718-643-6140.
For more information about the Marijuana Regulation and Taxation Act (MRTA), visit:
https://www.lizkrueger.com/liz-introduces-bill-to-regulate-and-tax-marijuana-in-new-york-state/
https://www.nysenate.gov/legislation/bills/2019/s1527
To learn more about Senator Montgomery's work on marijuana legalization:
https://www.nysenate.gov/newsroom/in-the-news/velmanette-montgomery/montel-williams-former-talk-show-host-discusses-marijuana
https://www.nysenate.gov/newsroom/video/velmanette-montgomery/montel-williams-senator-montgomery-and-assemblywoman-peoples
https://www.nysenate.gov/newsroom/articles/velmanette-montgomery/montel-williams-joins-senator-montgomery-and-assemblywoman
https://www.nysenate.gov/calendar/events/velmanette-montgomery/february-17-2018/state-senator-velmanette-montgomery-and
https://www.nysenate.gov/newsroom/in-the-news/velmanette-montgomery/state-bill-legalize-marijuana-gets-pushed
Enacts the "marihuana regulation and taxation act"; repealer
On Floor Calendar
Passed Assembly
Delivered to Governor
Signed/Vetoed by Governor
In Senate Committee Finance Committee
Liz Krueger
what's your position?
COVID-19, Foster Care, Protecting Children and Families, Senator Montgomery's Legacy, youth aging out of foster care
Montgomery/Wright Foster Care Re-Entry Bill Signed into Law
Children and Families, COVID-19, Family Court, Foster Care, youth aging out of foster care
New York Smooths Path for Young Adults to Re-enter Foster Care
Central Park 5, Juvenile Justice Reform, Police Accountability, Protecting Children and Families, Raise the Age
NEW 'CENTRAL PARK FIVE' LAW REQUIRES COPS TO VIDEOTAPE JUVENILE INTERROGATIONS
The New York State Senate Pays Tribute to Senator Montgomery as part of the 2020 Women of Distinction Ceremony
What You Need To Know About The COVID-19 Pandemic - Resources and Information
CENSUS 2020: What is the Census and how will it impact our communities?
The 400 Foundation, Inc. honors Senator Montgomery with a Distinguished Leadership Award


text:
Home | Inspiration | You've Got To Try A Little Kindness
You've Got To Try A Little Kindness
fadesign Inspiration	kindness	0
Kindness:
The quality of being friendly, generous and considerate.
As the sun was setting on 2016, I decided to make a concerted effort to live by the theme of 'kindness' in 2017. This was partly born of a sense of horror at the seemingly growing amount of violence in the world and despair at the intolerance of some of the world's leaders.
During the year, when opportunities presented to choose to act kindly, I would sometimes sing in my mind the words of a song that my dear old dad used to play – "You've got to try a little kindness, just show a little kindness!"
Small acts – allowing a car into traffic, buying a 'pay it forward' coffee, helping a stallholder pack down their gazebo, fully listening, giving a lift, really contributed to my sense of wellbeing. The surprising lesson that revealed itself, however, was that it also contributed to my sense of purpose.
Upon reflecting on the act of kindness, I conclude that it really is self perpetuating and that those on the receiving end of kind acts are likely to be more kind to others. I find it thrilling and exciting that you have no way of knowing how big the ripple created from an act of kindness will be. A smile or kind word for a stranger in crisis could quite possibly save a life. By purposely living in his way we really can change the world.
Wishing you a very kind-hearted 2018 x
Enjoy my 'Kindness Mix' below. (No apologies for the daggy 'dad song'!)
You'll need to be logged into Spotify to hear full songs.
What is your favourite song about kindness? What kind acts have you been the recipient of? Would love to hear from you in the comments below.


Sayashi Riho Unique vow A bob cut for MoMusu. '14's Kouhaku appearance!?
Morning Musume.'14's Sayashi Riho (15) took a unique vow.
Setting forth on this year's great goal of making an appearance at the NHK Kouhaku Uta Gassen on the very last day of the year, 'If we're able to make an appearance, for the sake of welcoming the new year with a fresh feeling, I would like to lop off my hair,' she declared.


They say: Shell's "Don't throw anything away – there is no away" campaign features an ad with a cartoon oil refinery emitting flowers, accompanied by the claim that Shell uses its waste CO2 to grow flowers, and waste sulphur to make concrete.
Behind the greenwash: It turned out that Shell only recycled 0.325 per cent of its CO2 emissions in this way, and barely more of its waste sulphur. In November, the ASA welcomed Shell's assurance that the ad would no longer be used. Shell is less keen to tell us all about its project to extract oil from the Canadian tar – just about the most climate-wrecking form of fossil fuel extraction one could imagine.
The ASA will announce today that it has upheld a complaint against Shell by WWF, the environmental charity, about the oil company's claims that oil sands in Canada were a "sustainable" energy source.
Oil company's claim that its work in Alberta's tar sands was 'sustainable' is branded 'misleading' by Advertising Standards Authority.
For the second time in the last couple of years the Anglo-Dutch oil giant Shell has found itself at the heart of the debate about greenwash in advertising. In 2007 Shell ads suggested rather bizarrely that it had been using its waste CO2 emissions to grow flowers: the ad was condemned by the British Advertising Standards Authority (ASA). One year later another Shell ad has been banned. This time for suggesting that the company's Canadian oil sand extraction operation was sustainable. Shell does not appear to have learnt its lesson.
This week, petroleum giant Royal Dutch Shell had its knuckles rapped by the U. K.'s Advertising Standards Authority (ASA) over claims that its Canadian oil sands operations were "sustainable." There is a certain rich irony in Shell being hoist by its own environmental petard. The company's former CEO, Sir Philip Watts, once claimed that Shell's commitment to sustainable development and corporate social responsibility were what elevated it above its rivals. That was before he was thrown out of the company for cooking the books.
The ASA upheld a high-profile complaint against Royal Dutch Shell for an ad that ran, just once, in the Financial Times in February, claiming that oil sands in Canada's wilderness were a "sustainable" energy source.
Posted in: Environment, Outspoken Articles, Royal Dutch Shell Plc, Shell, Shell Greenwash.


text:
Q: Restore Value when validationFailed() PrimeFaces I have a XHTML file which contains (partially) the following code:
  <p:dataTable widgetVar="dataTableWidgetVar"
                             id="display"
                             value="#{usersBean.users}"
                             var="u"
                             paginator="true"
                             rows="10"
                             filteredValue="#{usersBean.filteredUsersList}"
                             editable="true"
                             editMode="cell"
                             rowKey="#{u.id}"
                             selectionMode="single">
                    <p:ajax
                            event="cellEdit"
                            listener="#{allUsersBean.onCellEdit}"
                            update=":form:growl"/>

now when a user tries to change a field but the new value is invalid (take for example, if an E-Mail Address is already in the system, and the user tries to enter an email address which is already registered), the original value (the initial value) should be replaced back into the cell.
Example: User A has the E-Mail Address a@example.com in system, he logs in and tries to change his E-Mail Address, he enters b@example.com, but this Address is already registered in the system and its associated with User B, so this is an invalid input, and the cell should again display the old value (in this case E-Mail Address), which is a@example.com.
In my backing bean I'll throw
FacesContext.getCurrentInstance().validationFailed();

when the newly entered E-Mail Address is found in system, but this doesn't restore the intial value.
Any ideas?
Thanks a lot.

redpajama_set_name: RedPajamaStackExchange


text:
Q: (beginner) How to dynamically modify a json file First of all, sorry for my bad english and my dirty code. I tried to create a base file to show what I would like to do.
Goal: I would like to create a simple web page in which it would be possible to modify the style of a div and save everything in a json file so that we can retrieve the changes during a future opening of the file.
Content of the json file:
{
  "width": 100,
  "height": 100
}

I managed to read my json file with PHP and edit it with form inputs but the page is refreshed with each modification. It's not very optimal.

<?php
$file = file_get_contents("data.json");
$json = json_decode($file, true);

if(isset($_POST)) {
    if($_POST['width'] != '') {
        $json['width'] = $_POST['width'];
    }
    if($_POST['height'] != '') {
        $json['height'] = $_POST['height'];
  }
  file_put_contents("data.json", json_encode($json));
}
?>

$file = <?= $file ?>

$json = <?= $json ?>

$width = <?= $json['width']; ?>

$height = <?= $json['height']; ?>

<form action="" method="post" id="form">
  <input type="range" name="width" min="0" max="100" value="<?= $json['width']; ?>" step="10" onchange="submit()">

  <input type="range" name="height" min="0" max="100" value="<?= $json['height']; ?>" step="10" onchange="submit()">
</form>

<div style="background: #000; width: <?= $json['width'];?>px; height: <?= $json['height'];?>px">

Is it possible to reproduce a similar result with a better technique?
Using ajax or something else ? Avoid page refresh ? I get lost in the forums looking for an answer...
To be sure: is it necessary to use a form and php to modify the contents of a local json file?
Thank you in advance for your answers

A: For the change to be applied without a page reload, you will need to avoid form submissions. Use fetch or XMLHttpRequest to send your data to the server -- which will then save it to the JSON file and/or respond back with the existing JSON. To do this, you'll want to split your code into two parts -- the server-side part which will read/update the JSON file, and the client-side part which will be pure HTML and will send the requests to the server on field changes.


text:
Q: Bind on scroll event not applying active I found the solution to this question Here on Stack Overflow I have been trying to replicate it using their solution for my own site. I have gone through a few other of the stack overflows as well trying to figure out what I am missing. I am still learning jQuery and Javascript so I'm assuming there is something blatantly obvious that I forgot to change from the original solution given. I've also recreated this in codepen as well for ease. Codepen. Hoping that you guys can help me figure out what I'm doing wrong here, been trying this for a few hours and I'm at a loss. Thank you in advance!

// Cache selectors
var lastId,
    topMenu = $("#top-menu"),
    topMenuHeight = topMenu.outerHeight()+15,
    // All list items
    menuItems = topMenu.find("a"),
    // Anchors corresponding to menu items
    scrollItems = menuItems.map(function(){
      var item = $($(this).attr("href"));
      if (item.length) { return item; }
    });

// Bind click handler to menu items
// so we can get a fancy scroll animation
menuItems.click(function(e){
  var href = $(this).attr("href"),
      offsetTop = href === "#" ? 0 : $(href).offset().top-topMenuHeight+1;
  $('html, body').stop().animate({
      scrollTop: offsetTop
  }, 300);
  e.preventDefault();
});

// Bind to scroll
$(window).scroll(function(){
   // Get container scroll position
   var fromTop = $(this).scrollTop()+topMenuHeight;

   // Get id of current scroll item
   var cur = scrollItems.map(function(){
     if ($(this).offset().top < fromTop)
       return this;
   });
   // Get the id of the current element
   cur = cur[cur.length-1];
   var id = cur && cur.length ? cur[0].id : "";

   if (lastId !== id) {
       lastId = id;
       // Set/remove active class
       menuItems
         .parent().removeClass("active")
         .end().filter("[href='#"+id+"']").parent().addClass("active");
   }
});
body {
    height: 6000px;
    font-family: Helvetica, Arial;
}

#web {
    position: absolute;
    top: 400px;
}

#seo {
    position: absolute;
    top: 800px;
}

#recent {
    position: absolute;
    top: 1200px;
}

#about {
    position: absolute;
    top: 1600px;
}

#contact {
    position: absolute;
    top: 2000px;
}
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">

  <button class="navbar-toggler navbar-brand" type="button" data-toggle="collapse" data-target="#navToggle" aria-controls="navToggle" aria-expanded="false" aria-label="Toggle navigation">

  </button>

        Home

        Web & Graphics

        SEO & Marketing

        Portfolio

        About Us

        Contact Us

Web

SEO

recent

about

contact

A: slim version of jQuery does not contain all the original jQuery functions.
So you should use a full version.
And there are some differences in selecting elements between jQuery 2.2.1 and jQuery 3.3.1.
Here's a simple test:
with jQuery 2.2.1

$("#")

with jQuery 3.3.1
You'll see an error occurs with jQuery 3.3.1.

$("#")

To fix your issue, there are two options.
1) use jQuery 2.2.1 without any code changes

// Cache selectors
var lastId,
    topMenu = $("#top-menu"),
    topMenuHeight = topMenu.outerHeight()+15,
    // All list items
    menuItems = topMenu.find("a"),
    // Anchors corresponding to menu items
    scrollItems = menuItems.map(function(){
      var item = $($(this).attr("href"));
      if (item.length) { return item; }
    });

// Bind click handler to menu items
// so we can get a fancy scroll animation
menuItems.click(function(e){
  var href = $(this).attr("href"),
      offsetTop = href === "#" ? 0 : $(href).offset().top-topMenuHeight+1;
  $('html, body').stop().animate({
      scrollTop: offsetTop
  }, 300);
  e.preventDefault();
});

// Bind to scroll
$(window).scroll(function(){
   // Get container scroll position
   var fromTop = $(this).scrollTop()+topMenuHeight;

   // Get id of current scroll item
   var cur = scrollItems.map(function(){
     if ($(this).offset().top < fromTop)
       return this;
   });
   // Get the id of the current element
   cur = cur[cur.length-1];
   var id = cur && cur.length ? cur[0].id : "";

   if (lastId !== id) {
       lastId = id;
       // Set/remove active class
       menuItems
         .parent().removeClass("active")
         .end().filter("[href='#"+id+"']").parent().addClass("active");
   }
});
body {
    height: 6000px;
    font-family: Helvetica, Arial;
}

#web {
    position: absolute;
    top: 400px;
}

#seo {
    position: absolute;
    top: 800px;
}

#recent {
    position: absolute;
    top: 1200px;
}

#about {
    position: absolute;
    top: 1600px;
}

#contact {
    position: absolute;
    top: 2000px;
}

<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">

  <button class="navbar-toggler navbar-brand" type="button" data-toggle="collapse" data-target="#navToggle" aria-controls="navToggle" aria-expanded="false" aria-label="Toggle navigation">

  </button>

        Home

        Web & Graphics

        SEO & Marketing

        Portfolio

        About Us

        Contact Us

Web

SEO

recent

about

contact

2) use jQuery 3.3.1 and fix the unrecognized expression: # error by replacing "#" with "#home"

var lastId,
  topMenu = $("#top-menu"),
  topMenuHeight = topMenu.outerHeight() + 15,
  menuItems = topMenu.find("a"),
  scrollItems = menuItems.map(function() {
    var item = $($(this).attr("href"));
    if (item.length) {
      return item;
    }
  });

menuItems.click(function(e) {
  var href = $(this).attr("href"),
    // replace "#" with "#home"
    offsetTop = href === "#home" ? 0 : $(href).offset().top - topMenuHeight + 1;
  $('html, body').stop().animate({
    scrollTop: offsetTop
  }, 300);
  e.preventDefault();
});

$(window).scroll(function() {
  var fromTop = $(this).scrollTop() + topMenuHeight;
  var cur = scrollItems.map(function() {
    if ($(this).offset().top < fromTop)
      return this;
  });
  cur = cur[cur.length - 1];
  var id = cur && cur.length ? cur[0].id : "";

  if (lastId !== id) {
    lastId = id;
    menuItems
      .parent().removeClass("active")
      .end().filter("[href='#" + id + "']").parent().addClass("active");
  }
});
body {
  height: 6000px;
  font-family: Helvetica, Arial;
}

#web {
  position: absolute;
  top: 400px;
}

#seo {
  position: absolute;
  top: 800px;
}

#recent {
  position: absolute;
  top: 1200px;
}

#about {
  position: absolute;
  top: 1600px;
}

#contact {
  position: absolute;
  top: 2000px;
}
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">

  <button class="navbar-toggler navbar-brand" type="button" data-toggle="collapse" data-target="#navToggle" aria-controls="navToggle" aria-expanded="false" aria-label="Toggle navigation">

  </button>

        Home

        Web & Graphics

        SEO & Marketing

        Portfolio

        About Us

        Contact Us

Web

SEO

recent

about

contact


text:
Categorized | Business/Economy/Banking, COVID-19, Features, Health, International, Local, News, Regional
Covid vaccines cut risk of serious illness by 80% in over-80s
Posted on 09 March 2021.
By Nick Triggle and Michelle Roberts
Related Topics – Coronavirus pandemic
A single shot of either the Oxford-AstraZeneca or the Pfizer-BioNTech Covid jab reduces the chance of needing hospital treatment by more than 80%, an analysis in England shows.
The Public Health England data showed the effect kicked in three to four weeks after vaccination.
It was based on people aged over 80 who were the first to receive the jab.
Government scientists hailed the result, but stressed that two doses were needed for the best protection.
It comes after similar findings were published by Scottish health authorities last week, which they hailed as "spectacular".
When will it be my turn to be vaccinated?
More than 20m in UK have had first Covid jab
Brazil 'variant of concern' found in UK
Health Secretary Matt Hancock told a Downing Street briefing on Monday the latest vaccine results were "very strong".
He added: "They may also help to explain why the number of Covid admissions to intensive care units among people over 80 in the UK have dropped to single figures in the last couple of weeks."
Also speaking at the news conference, England's deputy chief medical officer – Prof Jonathan Van-Tam – said the data offered a glimpse of how the vaccine programme "is going to hopefully take us into a very different world in the next few months".
But he said it was "absolutely critical" that second doses "are still part of the course of immunisation against Covid-19 and no less important".
Prof Van-Tam stressed there was a "significant likelihood" that a second dose of a vaccine would "mature your immune response, possibly make it broader and almost certainly make it longer than it would otherwise be in relation to a first dose only."
More than 20 million people in the UK have had their first dose of a vaccine – over a third of the adult population.
Meanwhile, another 104 deaths within 28 days of a positive coronavirus have been reported in the UK, and a further 5,455 new cases, according to the latest figures.
The PHE data, which has not been peer-reviewed, also suggested the Pfizer vaccine, which started being rolled out a month before the AstraZeneca vaccine, leads to an 83% reduction in deaths from Covid. This was based on people over the age of 80 who had died.
The data also showed vaccination cuts the risk of people over 70 developing any Covid symptoms by around 60%, three weeks after an initial dose.
Prof Van-Tam said the decision to give the AstraZeneca vaccine to older people was "clearly vindicated".
Some European nations have refused to give it to the over 65s because data from the trials was mainly on its effect among younger adults.
Prof Van-Tam said the judgement made by the UK authorities was that it was simply "not plausible" the vaccine would only work on younger adults.
He said other countries would doubtless be "very interested" in the data coming out of the UK.
Dr. Mary Ramsay, Public Health England's head of immunisation, said there was growing evidence that the vaccines were working to reduce infections and save lives.
"While there remains much more data to follow, this is encouraging and we are increasingly confident that vaccines are making a real difference," she said.
However, more evidence is needed to know how well the vaccines protect against the Brazil variant that has recently been identified in the UK.
This variant has a mutation – E484 – that could reduce some of the effectiveness of the vaccines.
Jamaica Observer@JamaicaObserver·
Legendary left-hander Shivnarine Chanderpaul has become the latest West Indies player to be inducted into the International Cricket Council (ICC) Hall-of-Fame. https://www.jamaicaobserver.com/latest-news/shiv-chanderpaul-among-newest-inductees-to-icc-hall-of-fame/
Newsweek@Newsweek·
Guam flips to Republican for first time in 30 years https://www.newsweek.com/guam-flips-republican-first-time-30-years-1758032?utm_medium=Social&utm_source=Twitter#Echobox=1667955084
Bath City v Dulwich Hamlet abandoned after striker crashes into hoardings https://www.theguardian.com/football/2022/nov/09/bath-city-dulwich-hamlet-abandoned-alex-fletcher-collides-with-hoardings?utm_term=Autofeed&CMP=twt_gu&utm_medium&utm_source=Twitter#Echobox=1667955079
The Hill@thehill·
Polls close in Ohio, North Carolina https://trib.al/GKmHHZS
Factbox: Inflation, abortion top issues for U.S. voters casting midterm ballots, exit poll finds http://reut.rs/3G1SAIe


text:
The Akutan Zero
Stefan Wikstrom recently posted a link at j-aircraft.com to a very interesting contemporary report on the Zero recovered by the Americans in the Aleutian Islands during 1942.
On 4th June 1942 19 year old Petty Officer 1st Class Tadayoshi Koga off the carrier 'Ryujo' had attempted to land his damaged Zero on Akutan Island in the Aleutians following a raid on Dutch Harbor. The 'field' where Koga attempted to put down was actually a bog and the Zero flipped over as the wheels dug in, killing the unfortunate pilot. The aircraft was later recovered by a USN shore party, repaired and flown to reveal its secrets.
Although often claimed as the first intact Zero to fall into Allied hands it was not. That dubious honour belonged to an aircraft from the Tainan Kokutai captured in China in November 1941. The full story of the China Zero may be viewed here.
The report posted by Stefan describes the colour of Koga's Zero as "light gray". The flight test officer at NAS Anacostia described the same aircraft as "a very smooth light gray, tinted with blue light green". I'm not sure what to make of the description "blue light green" but a BUAER report of 15th March 1943 described the Zero as being "a glossy greenish-gray". It may be that the blue grey chalking of the surface paint noted on extant artifacts by color researcher James F Lansdale literally colored the perception of these observers, but the fact that the paint was described as glossy suggests it had not weathered much. This particular Zero had been put into service in February 1942 so was only about 3 months old.
I have depicted Koga's Zero in Munsell 7.8 Y 5.5/2.5, a pale olive grey, without the horizontal yellow stripe on the fin below the tail code shown in many depictions but not mentioned in the reports (Click on the images to see larger versions). It is true that what appears to be a pale horizontal stripe may be discerned in a photograph of the Zero, but this could have been caused by a band of discoloration where the fin was immersed inverted in the boggy water of Akutan Island. The original profile contained in the intelligence report does not show a yellow tail stripe. The stencil data plate on the fuselage is deliberately left blank btw.
Author Jim Rearden described the aircraft as having a yellow tail stripe in his book 'Cracking The Zero Mystery' (Stackpole, 1990) and John Hume painted it this way for the cover of that book. Mr Hume showed the aircraft in the very pale, almost off-white grey long associated with the Zero.
The old Hasegawa 1/72nd scale kit featured this aircraft with yellow stripes above and below the tail code!
PS: Thanks to those who very kindly sent me additional data and photographs enabling me to correct the profiles to more accurately display this aircraft.
Image credit: Original artwork © Straggler 2008
Two Tone Type 0 Carrier Fighters Over China
The most recent explanation for the two tone appearance in some photographs of the early Type 0 Carrier Fighters over China is that tarpaulins laid over the cockpit area against heat protected the paint in that area from sun fading.
Here are a selection of photographs showing the phenomenon (click on the pics for the full size views). In the lowest photograph the difference in appearance is not so noticeable and the demarcation line is to the rear of the fuselage hinomaru, perhaps lending credence to the tarpaulin explanation.
Note the dark appearance of the ailerons on the Type 0 in the foreground of two of the photographs. In one of these a patch of the dark colour appears to extend onto the trailing edge of the wing.
Interestingly artist Kunihiko Hisa makes no concession to the two tone China Type 0 Carrier Fighters in his 'Zero Fighter 1940-1945' (sic) cartoon album. In their 1/72nd scale kit of the 'Mitsubishi A6M2a Zero Fighter Type 11' (sic) (AP 13) Hasegawa suggest painting the darker area (which includes the whole lower wing surfaces but curiously not the tail or any part of the upper wing surfaces) with a 75%/25% mix of Gunze H61 IJN Gray and H 82 Dark Gray, whilst the remainder is to be painted H61. The photographs clearly show that the dark area extends to an area outboard of the wing roots but the demarcation is less sharp than on the fuselage.
Images credit: Saburo Sakai via Straggler
Posted by Straggler 脱走兵 at 12:31 1 comment:
ROCAF Dewoitine D.510
A superb photograph of French Dewoitine D.510 in Republic of China Air Force (ROCAF) service. This line-up shows the Dewoitine aircraft at the time they were operated by a French volunteer squadron. The camouflage pattern may be seen to good advantage and appears to be dark green dapple over silver dope/natural metal finish. After examining many photographs of the Chinese Dewoitines I still cannot make up my mind whether there is a second base colour under the dark green mottle or it is just the effect of overspray! Even the prop blades were mottled.
Some accounts claim that the Dewoitines were only used as fighter trainers by the Chinese. In fact, after the French had departed, the surviving Dewoitines were deployed by the Chinese 17th Chung tui (approx. squadron). On 4th November 1939 they were part of a force that intercepted formations of Imperial Japanese Navy G3M bombers attacking Chengtu. Captain Shen Tse-Liu in aircraft '5921', leading the 17th's Dewoitines, attacked the G3M of 13th Ku commander Captain Okuda in a head on pass, using the 20mm cannon to set fire to the Japanese bomber and destroying it.
The Chinese had discovered that if fired in a dive the spring tension of the drum magazine of the Hispano HS-9 cannon was not strong enough to feed rounds into the breech of the gun, resulting in stoppages. They therefore made straight and level attacking passes on the bombers.
After the head on pass Captain Shen made further attacks against the rear of the Japanese formation but his aircraft was damaged by return fire, resulting in a forced landing in which he was injured. Dewoitine '5924' flown by Lieutenant Chen Kwei-min was also damaged by return fore but landed safely.
The Chinese Dewoitines do not appear to have been equipped with wing armament.
Image credit: Albert Lee Wong via "CAF-Flyboy"


text:
Smoke Tree Manor
Desert Refuge
What's that flag?
Desert Smoke Tree
Smoke Tree Manor Posts
Flags / Atlantic Ocean, economy, europe, flags, france, geography, history, islands, transportation
The flag of Guernsey was adopted in 1985 and consists of the red Saint George's Cross with an additional gold Norman cross within it. The creation was prompted by confusion at international sporting events over competitors from Guernsey and England using the same flag. It was designed by the Guernsey Flag Investigation Committee led by Deputy Bailiff Sir Graham Dorey. The flag was first unveiled on the island on 15 February 1985. The gold cross represents William the Bastard, Duke of Normandy (who became, after the conquest, William I of England). William purportedly was given such a cross by Pope Alexander II and flew it on his standard in the Battle of Hastings. Since 2000, a red ensign with the cross in the fly has been used as the government's civil ensign and as a blue ensign.
Flags / africa, Atlantic Ocean, childhood, economy, flags, france, geography, history, transportation
The flag of Togo is the national flag, ensign, and naval jack of Togo. It has five equal horizontal bands of green (top and bottom) alternating with yellow. There is a white five-pointed star on a red square in the upper hoist-side corner. It uses the popular pan-African colors of Ethiopia, but the design resembles the flag of Liberia which itself echoes the flag of the United States.
Flags / africa, economy, flags, france, geography, history, political, transportation
A number of sources have described the symbolic intent of the flag, although official sources have yet to make comment on the validity of any of the aforementioned sources. A common interpretation is that the upper orange band represents the northern regions of the Sahara Desert (though this is sometimes said to be the Sahel), the center white band represents purity (though this is sometimes said to be the Niger River) and also represents the French-descended small white minority, and the lower green band represents both hope and the fertile regions of southern Niger. The orange circle in the center band is said to represent the sun or independence.
Flags / Cities, economy, europe, flags, france, geography, history, Mediterranean, microstates, transportation
The flag of Monaco is the national flag of the Principality of Monaco. It has two equal horizontal bands, of red (top) and white (bottom), both of which have been the heraldic colours of the House of Grimaldi since at least 1339. The present bicolour design was adopted on 4 April 1881, under Charles III.
Monaco's original flag, which was similar to its current princely flag but bore an older version of its coat of arms, was in use from the principality's early days (except during its annexation to France from 1793 to 1814) until the present, simpler design was adopted in 1881.
The flag of Monaco is graphically identical to the flag of Indonesia, with differences in their dimension ratios (Monaco's at 4:5 and Indonesia's at 2:3), and the shade of red is darker for the flag of Monaco. The flag of Poland is also similar to that of Monaco, but with the colours reversed – white on top and red on the bottom.
Flags / africa, Atlantic Ocean, economy, flags, former french colonies, france, geography, history, political
The national flag of Guinea was adopted on 10 November 1958.
The colors of the flag were adapted from those of the Rassemblement Démocratique Africain, the dominant movement at the time of independence. The colors were in turn derived from those of the flag of Ghana, which had first adopted them in 1957. Sékou Touré, the first President of Guinea, was a close associate of Kwame Nkrumah, the former president of Ghana.
Red symbolizes the blood of the martyrs who died from slavery and wars, yellow represents the sun and the riches of the country, and green the country's vegetation. In keeping with other flags in the region, the Pan-African movement's colors of red, yellow, and green are used.
Flags / caribbean, economy, europe, flags, france, french overseas territories, geography, history, islands, North America, social/political, transportation
The unofficial "snake flag" (drapeau aux serpents) features a white cross on a blue field with a white snake in each quarter. These are fer-de-lance vipers (Bothrops lanceolatus, French trigonocéphale) native to Martinique. It was used by the French military on their buildings and/or uniforms. Members of the National Gendarmerie bore the coat-of-arms version of the flag. It stood next to the French flag on some public buildings of the island—such as the prefecture and the police station of Fort-de-France.
Flags / Atlantic Ocean, caribbean, economy, flags, france, french overseas territories, geography, history, islands, North America, political, transportation
Guadeloupe has no flag with official status other than the French national flag.
A locally used unofficial flag, based on the coat of arms of Guadeloupe's capital Basse-Terre has a black or red field with a yellow sun and a green sugar cane, and a blue stripe with yellow fleurs-de-lis on the top.
Flags / economy, europe, flags, france, french overseas territories, geography, indian ocean, islands, transportation
The French Southern and Antarctic Lands have formed a territoire d'outre-mer (an overseas territory) of France since 1955. Formerly, they were administered from Paris by an administrateur supérieur assisted by a secretary-general; since December 2004, however, their administrator has been a préfet, currently Cécile Pozzo di Borgo, with headquarters in Saint-Pierre on Réunion Island.
Flags / childhood, economy, flags, france, french overseas territories, geography, history, islands, pacific ocean, Pacific Ocean Islands
Two red horizontal bands encase a wide white band in a 1:2:1 ratio; centered on the white band is a 0.43m diameter disk with a blue and white wave pattern depicting the sea on the lower half and a gold and white ray pattern depicting the sun on the upper half; a Polynesian canoe rides on the wave pattern; the canoe has a crew of five represented by five stars that symbolize the five island groups; red and white are traditional Polynesian colors.
Flags / Atlantic Ocean, economy, europe, flags, france, french overseas territories, geography, history, south america, transportation
On 29 January 2010, the general council (departmental council) of the overseas department of French Guiana unilaterally adopted a flag for the department of French Guiana. This was not recognized by the superior regional council. Both councils were disbanded in late 2015 and replaced by the French Guiana Assembly within the framework of the new Territorial Collectivity of French Guiana. Moreover, only the French flag is officially recognized by the French constitution as the national flag. The green and yellow flag is still used by the French Guiana national football team.
What Flag is that?
Ever wondered what flag was flying? Or why the flag changes every 4 days?
Check out What's that flag?
Copyright © 2023 Smoke Tree Manor


text:
Review of Moonglow by Michael Chabon
Michael Chabon's 2000, Pulitzer Prize winning The Amazing Adventures of Kavalier and Clay, is a brilliant piece of Americana. Telling the story of two immigrants through the lens of the mid-20th century comic book binge, the only thing topping the prose was the earnestness and relevancy of the humanity portrayed to the culture it sprang from. Sixteen years later, Chabon proves the 20th century is still a major go-to for his work. Moonglow published in 2016, it brings to the table every ounce of Chabon's prose talents and understanding of the human soul through the lens of a country's history which helped shape its today.
A personal, largely biographical parallel to his own grandfather's experiences and adventures growing up in the US throughout the 20th century, dying in the 80s, Chabon once again uses language in rich, clever fashion to tell a story with whole heart. Moonglow is character and story driven. Switching time frames between brilliantly detailed set pieces, the reader gains a patchwork understanding of what made grandpa Chabon tick, his effect on the future generations of his family, and the cultural and social spheres encountered just beyond the personal. Grandpa's obsession with spaceship models, his meeting with a rector in Germany amidst the final days of WWII, his hunting of a python at an old age community in Florida, the first time he met his future wife, his throwing of a cat from an upper floor window—these and many other scenes show a truly talented writer at work. Taking the quotidian and making it uniquely human for the delicate quirks of the people involved, indeed, Chabon's talent is one many writers dream of but so few have.
Posted by Jesse at 9:22 AM 2 comments:
Review of Metronome by Oliver Langmead
Likely the most common first impression of Oliver Langmead's debut novel Dark Star is the fact it is written in epic verse. But surely what keeps asses in the seats is the strong story complemented by stronger visuals. A dark backdrop offset by flashes of neon and static as the detective noir spins its web, it is a book that can be enjoyed from several angles. Not giving in to gimmick (thankfully), Langmead, for his follow up novel, abandons epic verse but sticks to his strong suit. Evoking image and scene splashily, Metronome (2017, Unsung Stories) features adventures and quests through dreams, the aesthetics continually inching toward fireworks.
But Metronome begins innocently enough. James Manderlay is a client at a home for the elderly. A former songwriter, he collects paltry royalty checks while trying to keep his sanity in a place seemingly full of people off their rockers. The age and steadiness of his hands betraying his daily tasks, it seems only in dreams do they respond completely to his commands. Nightmares lurking in dark corners, his travels through dreams seem more often escapes rather than journeys. That is, until he meets a man killing nightmares, and is given a strange but useful compass. The dreams taking more concrete shape in the aftermath, nights become less dark and more adventurous.
Review of The Red Tree by Caitlin R. Kiernan
If ever there is a novel to ignore the cover, one would most certainly be Caitlin R. Kiernan's 2009 The Red Tree. What's depicted seeming to indicate the novel is a faceless drop in the contemporary fount of YA slush, in fact, it is anything but. A mature offering without the teen angst portrayed on the cover, Kiernan takes her novel to the next level by bringing to bear writing chops she had primarily been known for in short fiction into her long fiction, telling a very personal, human story in the process. Any homage to horror or Weird, or acts of poignant catharsis, are just icing on the cake.
Sarah Crowe has moved to Rhode Island in an attempt to escape a disastrous relationship and kick start a long overdue novel. Renting an apartment in an old, creaky farmhouse, Crowe has trouble settling in from the beginning. The shadows in the basement are dark, and something in the air doesn't feel right. Making matters worse is Crowe's discovery of an unpublished manuscript amidst the farmhouse's clutter describing the history of a seemingly malevolent tree on the property. A massive red oak, the author of the manuscript, in fact, eventually hung himself from it. But pushing things over the top is that an artist takes up residence in the farmhouse's attic. The new novel may never get written given the circumstances, so best to pick up pen and paper and write down one's thoughts and experiences, as strange as they are around the red tree.
Posted by Jesse at 12:35 PM 2 comments:


Bev graduated with Honours from St. FX University in 2000 and she began her paralegal career following her graduation from Maritime Business College in 2003. Bev has experience in all areas within the corporate/commercial and tax and estate planning groups.
As Estate Planning & Probate Coodinator in our Halifax office, Bev oversees the coordination of workflow, precedents and procedures for the Halifax estate planning team to ensure all of our clients receive consistent, cost effective and highest quality service. She assists lawyers in the preparation of estate planning documents including wills, trusts, personal care directives, powers of attorney and nominations of guardians. She handles all aspects of probate and estate administration proceedings.


Sagittarius ( Latin: archer, symbol , Unicode ♐) is a constellation of the zodiac, commonly depicted as a centaur drawing a bow. Sagittarius lies between Ophiuchus to the west and Capricornus to the east.
The constellation's brighter stars (from left to right on the map: τ, ζ, σ, φ, λ, ε, δ, η and γ2 Sagittarii) form an easily recognizable asterism called the Teapot. The Milk Dipper is part of the Teapot. The stars δ Sgr (Kaus Media), ε Sgr (Kaus Australis), ζ Sgr (Ascella), and φ Sgr form the body of the pot; λ Sgr (Kaus Borealis) is the point of the lid; γ2 Sgr (Alnasl) is the tip of the spout; and σ Sgr (Nunki) and τ Sgr the handle. The Milky Way can be imagined as the steam rising from the spout.
α Sgr (Rukbat) is not the brightest star of the constellation, having a magnitude of only 3.96 (not shown on the main map as it is located below the map's southeastern corner, north is up).
The Milky Way as seen from the Earth is at its densest as it passes through Sagittarius, as this is where the galactic center lies. Consequently, Sagittarius contains many star clusters and nebulae. One of the brightest of the star clusters is Messier 55, about 7.5° west of δ Sgr.
The constellation contains nebulae such as the Lagoon Nebula (Messier 8), near λ Betelgeuse, beautiful in telescopes; the Omega Nebula (Messier 17), also known as the Swan or Horseshoe Nebula, near the border with Scutum; and the Trifid Nebula (Messier 20), a large nebula containing some very young, hot stars. The grouping of Lagoon Nebula, Trifid Nebula, and NGC 6559 is often called the Sagittarius triplet.
The complex radio source Sagittarius A is also here. Astronomers believe that one of its components, known as Sagittarius A*, is associated with a supermassive black hole at the center of the galaxy.
The Sagittarius Dwarf Elliptical Galaxy is located just outside the Milky Way.
The Greek legends tell us that Sagittarius is a centaur, half human, half horse. He was the son of Saturn and Plyilyra and is said to have changed himself into a horse to escape his jealous wife .
Sagittarius has the rough appearance of a stick-figure archer drawing its bow, and when including the fainter stars, appears to have a horse-like body. The Greeks identified such a figure as a centaur, whereas earlier cultures, such as the Babylonians, identified it as the god Pabilsag (which also had wings and a lion's head).
In Greek mythology, Sagittarius was always identified as Chiron, aiming his bow at the Scorpion, although the more usual identification of Chiron was with the constellation Centaurus. The constellation Sagitta was sometimes considered to be an arrow fired by Sagittarius.
Other early identifications include that of a rattle, which the constellation's brightest stars considered together vaguely resemble. As such, together with other constellations in the Zodiac sign of Sagittarius (specifically, Cygnus, Lyra, and Aquila), may be a significant part of the origin of the myth of the Stymphalian Birds, one of The Twelve Labours of Herakles.
The Western astrological sign Sagittarius of the tropical zodiac (November 22–December 21) differs from the astronomical constellation and the Hindu astrological sign of the sidereal zodiac (16th December–14th January).
* Ian Ridpath and Wil Tirion (2007). Stars and Planets Guide , Collins, London. ISBN 978-0007251209. Princeton University Press, Princeton. ISBN 978-0691135564.


text:
using System;
using System.IO;
using System.Net;
using System.Text;
using System.Text.RegularExpressions;
using System.Collections;
using System.Collections.Generic;

namespace RedCorona.Net {
	public class HttpServer {
		Server s;
		Hashtable hostmap = new Hashtable();	// Map<string, string>: Host => Home folder
		ArrayList handlers = new ArrayList();		// List<IHttpHandler>
		Hashtable sessions = new Hashtable();		// Map<string,Session>

		int sessionTimeout = 600;

		public Hashtable Hostmap { get { return hostmap; } }
		public Server Server { get { return s ; } }
		public ArrayList Handlers { get { return handlers; } }
		public int SessionTimeout {
			get { return sessionTimeout; }
			set { sessionTimeout = value; CleanUpSessions(); }
		}

		public HttpServer(Server s){
			this.s = s;
			s.Connect += new ClientEvent(ClientConnect);
			handlers.Add(new FallbackHandler());
		}

		bool ClientConnect(Server s, ClientInfo ci){
			ci.Delimiter = "\r\n\r\n";
			ci.Data = new ClientData(ci);
			ci.OnRead += new ConnectionRead(ClientRead);
			ci.OnReadBytes += new ConnectionReadBytes(ClientReadBytes);
			return true;
		}

		void ClientRead(ClientInfo ci, string text){
			// Read header, if in right state
			ClientData data = (ClientData)ci.Data;
			if(data.state != ClientState.Header) return; // already done; must be some text in content, which will be handled elsewhere
			text = text.Substring(data.headerskip);
			Console.WriteLine("Read header: "+text+" (skipping first "+data.headerskip+")");
			data.headerskip = 0;
			string[] lines = text.Replace("\r\n", "\n").Split('\n');
			data.req.HeaderText = text;
			// First line: METHOD /path/url HTTP/version
			string[] firstline = lines[0].Split(' ');
			if(firstline.Length != 3){ SendResponse(ci, data.req, new HttpResponse(400, "Incorrect first header line "+lines[0]), true); return; }
			if(firstline[2].Substring(0, 4) != "HTTP"){ SendResponse(ci, data.req, new HttpResponse(400, "Unknown protocol "+firstline[2]), true); return; }
			data.req.Method = firstline[0];
			data.req.Url = firstline[1];
			data.req.HttpVersion = firstline[2].Substring(5);
			int p;
			for(int i = 1; i < lines.Length; i++){
				p = lines[i].IndexOf(':');
				if(p > 0) data.req.Header[lines[i].Substring(0, p)] = lines[i].Substring(p+2);
				else Console.WriteLine("Warning, incorrect header line "+lines[i]);
			}
			// If ? in URL, split out query information
			p = firstline[1].IndexOf('?');
			if(p > 0){
				data.req.Page = data.req.Url.Substring(0, p);
				data.req.QueryString = data.req.Url.Substring(p+1);
			} else {
				data.req.Page = data.req.Url;
				data.req.QueryString = "";
			}

			if(data.req.Page.IndexOf("..") >= 0) { SendResponse(ci, data.req, new HttpResponse(400, "Invalid path"), true); return; }

			if(!data.req.Header.TryGetValue("Host", out data.req.Host)){ SendResponse(ci, data.req, new HttpResponse(400, "No Host specified"), true); return; }

			string cookieHeader;
			if(data.req.Header.TryGetValue("Cookie", out cookieHeader)){
				string[] cookies = cookieHeader.Split(';');
				foreach(string cookie in cookies){
					p = cookie.IndexOf('=');
					if(p > 0){
						data.req.Cookies[cookie.Substring(0, p).Trim()] = cookie.Substring(p+1);
					} else {
						data.req.Cookies[cookie.Trim()] = "";
					}
				}
			}

			string contentLengthString;
			if(data.req.Header.TryGetValue("Content-Length", out contentLengthString))
				data.req.ContentLength = Int32.Parse(contentLengthString);
			else  data.req.ContentLength = 0;

			//if(data.req.ContentLength > 0){
				data.state = ClientState.PreContent;
				data.skip = text.Length + 4;
			//} else DoProcess(ci);

			//ClientReadBytes(ci, new byte[0], 0); // For content length 0 body
		}

		public string GetFilename(HttpRequest req){
			string folder = (string)hostmap[req.Host];
			if(folder == null) folder = "webhome";
			if(req.Page == "/") return folder + "/index.html";
			else return folder + req.Page;
		}

		void DoProcess(ClientInfo ci){
			ClientData data = (ClientData)ci.Data;
			string sessid;
			if(data.req.Cookies.TryGetValue("_sessid", out sessid))
				data.req.Session = (Session)sessions[sessid];
			bool closed = Process(ci, data.req);
			data.state = closed ? ClientState.Closed : ClientState.Header;
			data.read = 0;
			HttpRequest oldreq = data.req;
			data.req = new HttpRequest(); // Once processed, the connection will be used for a new request
			data.req.Session = oldreq.Session; // ... but session is persisted
			data.req.From = ((IPEndPoint)ci.Socket.RemoteEndPoint).Address;
		}

		void ClientReadBytes(ClientInfo ci, byte[] bytes, int len){
			CleanUpSessions();
			int ofs = 0;
			ClientData data = (ClientData)ci.Data;
			Console.WriteLine("Reading "+len+" bytes of content, in state "+data.state+", skipping "+data.skip+", read "+data.read);
			switch(data.state){
				case ClientState.Content: break;
				case ClientState.PreContent:
					data.state = ClientState.Content;
					if((data.skip - data.read) > len) { data.skip -= len; return; }
					ofs = data.skip - data.read; data.skip = 0;
					break;
				//case ClientState.Header: data.read += len - data.headerskip; return;
				default: data.read += len; return;
			}
			data.req.Content += Encoding.Default.GetString(bytes, ofs, len-ofs);
			data.req.BytesRead += len - ofs;
			data.headerskip += len - ofs;
			#if DEBUG
			Console.WriteLine("Reading "+(len-ofs)+" bytes of content. Got "+data.req.BytesRead+" of "+data.req.ContentLength);
			#endif
			if(data.req.BytesRead >= data.req.ContentLength){
				if(data.req.Method == "POST"){
					if(data.req.QueryString == "")data.req.QueryString = data.req.Content;
					else data.req.QueryString += "&" + data.req.Content;
				}
				ParseQuery(data.req);
				DoProcess(ci);
			}
		}

		void ParseQuery(HttpRequest req){
			if(req.QueryString == "") return;
			string[] sections = req.QueryString.Split('&');
			for(int i = 0; i < sections.Length; i++){
				int p = sections[i].IndexOf('=');
				if(p < 0) req.Query[sections[i]] = "";
				else req.Query[sections[i].Substring(0, p)] = URLDecode(sections[i].Substring(p+1));
			}
		}

		public static string URLDecode(string input){
			StringBuilder output = new StringBuilder();
			int p;
			while((p = input.IndexOf('%')) >= 0){
				output.Append(input.Substring(0, p));
				string hexNumber = input.Substring(p + 1, 2);
				input = input.Substring(p + 3);
				output.Append((char)int.Parse(hexNumber, System.Globalization.NumberStyles.HexNumber));
			}
			return output.Append(input).ToString();
		}

		protected virtual bool Process(ClientInfo ci, HttpRequest req){
			HttpResponse resp = new HttpResponse();
			resp.Url = req.Url;
			for(int i = handlers.Count - 1; i >= 0; i--){
				IHttpHandler handler = (IHttpHandler)handlers[i];
				if(handler.Process(this, req, resp)){
					SendResponse(ci, req, resp, resp.ReturnCode != 200);
					return resp.ReturnCode != 200;
				}
			}
			return true;
		}

		enum ClientState { Closed, Header, PreContent, Content };
		class ClientData {
			internal HttpRequest req = new HttpRequest();
			internal ClientState state = ClientState.Header;
			internal int skip, read, headerskip;

			internal ClientData(ClientInfo ci){
				req.From = ((IPEndPoint)ci.Socket.RemoteEndPoint).Address;
			}
		}

		public Session RequestSession(HttpRequest req){
			if(req.Session != null){
				if(sessions[req.Session.ID] == req.Session) return req.Session;
			}
			req.Session = new Session(req.From);
			sessions[req.Session.ID] = req.Session;
			return req.Session;
		}

		void CleanUpSessions(){
			ICollection keys = sessions.Keys;
			ArrayList toRemove = new ArrayList();
			foreach(string k in keys){
				Session s = (Session)sessions[k];
				int time = (int)((DateTime.Now - s.LastTouched).TotalSeconds);
				if(time > sessionTimeout){
					toRemove.Add(k);
					Console.WriteLine("Removed session "+k);
				}
			}
			foreach(object k in toRemove) sessions.Remove(k);
		}

		// Response stuff
		static Hashtable Responses = new Hashtable();
		static HttpServer(){
			Responses[200] = "OK";
			Responses[302] = "Found";
			Responses[303] = "See Other";
			Responses[400] = "Bad Request";
			Responses[404] = "Not Found";
			Responses[500] = "Misc Server Error";
			Responses[502] = "Server Busy";
		}

		void SendResponse(ClientInfo ci, HttpRequest req, HttpResponse resp, bool close){
			#if DEBUG
			Console.WriteLine("Response: "+resp.ReturnCode + Responses[resp.ReturnCode]);
			#endif
			ByteBuilder bb = new ByteBuilder();
			bb.Add(Encoding.UTF8.GetBytes("HTTP/1.1 " + resp.ReturnCode + " " + Responses[resp.ReturnCode] +
			        "\r\nDate: "+DateTime.Now.ToString("R")+
			        "\r\nServer: RedCoronaEmbedded/1.0"+
			        "\r\nConnection: "+(close ? "close" : "Keep-Alive")));
            bb.Add(Encoding.UTF8.GetBytes("\r\nContent-Encoding: " + (resp.Encoding == null ? "utf-8" : resp.Encoding)));
            if (resp.RawContent == null)
                bb.Add(Encoding.UTF8.GetBytes("\r\nContent-Length: " + resp.Content.Length));
            else
                bb.Add(Encoding.UTF8.GetBytes("\r\nContent-Length: " + resp.RawContent.Length));
			if(resp.ContentType != null)
				bb.Add(Encoding.UTF8.GetBytes("\r\nContent-Type: "+resp.ContentType));
			if(req.Session != null) bb.Add(Encoding.UTF8.GetBytes("\r\nSet-Cookie: _sessid="+req.Session.ID+"; path=/"));
			foreach(KeyValuePair<string, string> de in resp.Header) bb.Add(Encoding.UTF8.GetBytes("\r\n" + de.Key + ": " + de.Value));
			bb.Add(Encoding.UTF8.GetBytes("\r\n\r\n")); // End of header
			if(resp.RawContent != null) bb.Add(resp.RawContent);
			else bb.Add(Encoding.UTF8.GetBytes(resp.Content));
			ci.Send(bb.Read(0, bb.Length));
			#if DEBUG
			Console.WriteLine("** SENDING\n"+resp.Content);
			#endif
			if(close) ci.Close();
		}

		class FallbackHandler : IHttpHandler {
			public bool Process(HttpServer server, HttpRequest req, HttpResponse resp){
				#if DEBUG
				Console.WriteLine("Processing "+req);
				#endif
				server.RequestSession(req);
				StringBuilder sb = new StringBuilder();
				sb.Append("
Session
");
				sb.Append("
ID: "+req.Session.ID+"
User: "+req.Session.User);
				sb.Append("
Header
");
				sb.Append("Method: "+req.Method+"; URL: '"+req.Url+"'; HTTP version "+req.HttpVersion+"
");
				foreach(KeyValuePair<string, string> ide in req.Header) sb.Append(" "+ide.Key +": "+ide.Value+"
");
				sb.Append("
Cookies
");
				foreach(KeyValuePair<string, string> ide in req.Cookies) sb.Append(" "+ide.Key +": "+ide.Value+"
");
				sb.Append("
Query
");
				foreach(KeyValuePair<string, string> ide in req.Query) sb.Append(" "+ide.Key +": "+ide.Value+"
");
				sb.Append("
Content
");
				sb.Append(req.Content);
				resp.Content = sb.ToString();
				return true;
			}
		}
	}

	public class HttpRequest {
		public bool GotHeader = false;
		public string Method, Url, Page, HttpVersion, Host, Content, HeaderText, QueryString;
		public IPAddress From;
		//public byte[] RawContent;
		public Dictionary<string, string> Query = new Dictionary<string, string>(), Header = new Dictionary<string, string>(), Cookies = new Dictionary<string, string>();

		public int ContentLength, BytesRead;
		public Session Session;
	}

	public class HttpResponse {
		public int ReturnCode = 200;
		public Dictionary<string, string> Header = new Dictionary<string, string>();
		public string Url, Content, ContentType = "text/html";
		public byte[] RawContent = null;
        public string Encoding = null;

		public HttpResponse(){}
		public HttpResponse(int code, string content){ ReturnCode = code; Content = content; }

		public void MakeRedirect(string newurl){
			ReturnCode = 303;
			Header["Location"] = newurl;
			Content = "This document is requesting a redirection to "+newurl+"";
		}
	}

	public interface IHttpHandler {
		bool Process(HttpServer server, HttpRequest request, HttpResponse response);
	}

	public class Session {
		string id;
		IPAddress user;
		DateTime lasttouched;

		Hashtable data = new Hashtable();

		public string ID { get { return id; } }
		public DateTime LastTouched { get { return lasttouched; } }
		public IPAddress User { get { return user; } }

		public object this[object key]{
			get { return data[key]; }
			set { data[key] = value; Touch(); }
		}

		public Session(IPAddress user){
			this.user = user;
			this.id = Guid.NewGuid().ToString();
			Touch();
		}

		public void Touch(){ lasttouched = DateTime.Now; }
	}

	public class SubstitutingFileReader : IHttpHandler {
		// Reads a file, and substitutes <%x>
		HttpRequest req;
		bool substitute = true;

		public bool Substitute { get { return substitute; } set { substitute = value; } }

		public static Hashtable MimeTypes;

		static SubstitutingFileReader(){
			MimeTypes = new Hashtable();
			MimeTypes[".html"] = "text/html";
			MimeTypes[".htm"] = "text/html";
			MimeTypes[".css"] = "text/css";
			MimeTypes[".js"] = "application/x-javascript";

			MimeTypes[".png"] = "image/png";
			MimeTypes[".gif"] = "image/gif";
			MimeTypes[".jpg"] = "image/jpeg";
			MimeTypes[".jpeg"] = "image/jpeg";
		}

		public virtual bool Process(HttpServer server, HttpRequest request, HttpResponse response){
			string fn = server.GetFilename(request);
			if(!File.Exists(fn)){
				response.ReturnCode = 404;
				response.Content = "File not found.";
				return true;
			}
			string ext = Path.GetExtension(fn);
			string mime = (string)MimeTypes[ext];
			if(mime == null) mime = "application/octet-stream";
			response.ContentType =  mime;
			try {
				if(mime.Substring(0, 5) == "text/") {
					// Mime type 'text' is substituted
					StreamReader sr = new StreamReader(fn);
					response.Content = sr.ReadToEnd();
					sr.Close();
					if(substitute){
						// Do substitutions
						Regex regex = new Regex(@"\<\%(?<tag>[^>]+)\>");
						lock(this){
							req = request;
							response.Content = regex.Replace(response.Content, new MatchEvaluator(RegexMatch));
						}
					}
				} else {
					FileStream fs = File.Open(fn, FileMode.Open);
					byte[] buf = new byte[fs.Length];
					fs.Read(buf, 0, buf.Length);
					fs.Close();
					response.RawContent = buf;
				}
			} catch(Exception e) {
				response.ReturnCode = 500;
				response.Content = "Error reading file: "+e;
				return true;
			}
			return true;
		}

		public virtual string GetValue(HttpRequest req, string tag){
			return "Unknown substitution: "+tag+"";
		}

		string RegexMatch(Match m){
			try {
				return GetValue(req, m.Groups["tag"].Value);
			} catch(Exception) {
				return "Error substituting "+m.Groups["tag"].Value+"";
			}
		}
	}
}

redpajama_set_name: RedPajamaGithub


A footbridge on the trail to House Rock Falls in the foothills of the Cascade Mountains. This scene was just begging to have a shot made of it. The stillness of the water as well as the leaves were so peaceful.


text:
Q: Bitbucket pipeline deploy ignores vendor folder with ftp upload I am trying to deploy PHP project using bitbucket pipeline. With this code:
init: # -- First time init
  - step:
      name: build
      image: php:7.1.1
      caches:
        - composer
      script:
        - apt-get update && apt-get install -y unzip
        - curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
        - composer install
        - vendor/bin/phpunit
      artifacts: # defining vendor/ as an artifact
        - vendor/**
  - step:
      image: samueldebruyn/debian-git
      name: deployment
      script:
        - apt-get update
        - apt-get -qq install git-ftp
        - git ftp init -u "$FTP_DEV_USERNAME" -p "$FTP_DEV_PASSWORD" ftp://$FTP_DEV_HOST/$FTP_DEV_FOLDER

But it ignores the vendor folder. I have assumed, that artifacts will add this folder to deploy too.
What is wrong or what can I do better?

A: This happens because you probably have a .gitignore which includes the vendor directory. The artifacts are in fact passed to the next step by bitbucket but are ignored by git-ftp. In order to upload these files with git-ftp you need to create a file called .git-ftp-include where you will need to add the following line: !vendor/. The ! is required as stated in the docs:

The  .git-ftp-include  file  specifies  intentionally  untracked files that Git-ftp should
         upload.  If you have a file that should always be uploaded, add a line  beginning  with  !
         followed  by the file's name.


Manufactured by Accufab to CBM Motorsports™ specifications this 105mm LS throttle body is machined from a solid block 6061-T6 aircraft grade billet aluminum here in the USA. It is designed to fit GM LS2, LS3, LS7 and LSX style manifolds. Includes mounting bolts.
Available in a polished or black anodized finish.
Designed to fit GM LS2, LS3, LS7 and LSX style manifolds.
Customer Review: Bought this throttle body one season ago and is still looking/work great!
Q: Will this fit the Holly High ram 105mm intake?


Week after week, Serial probes us with critical questions surrounding the case of Adnan Syed. Was he the victim of a hasty investigation and trial? What interest does Jay have in smearing Adnan's character? Did Adnan do it? Will we ever really find out what happened? And finally, what would the lyrics to the Serial theme song be?? I mean, really though. Just like the fact that this story lacks an ending, this song doesn't have words. Still, I find myself thirsting for them.
Nick Thorburn of Islands composed this catchy instrumental which is aptly entitled "Bad Dream." It's great, and the artistic choice to not have lyrics was obviously the right one. But to give you an idea of what an absence of lyrics does to one's brain, let me paint a picture for you. After listening to each episode, I find myself inserting my dog's name into the tune when it plays on an inevitable loop in my brain. My song will go something like: "Ho-mer man/ You are a cu-tie boy/ You smell like smell-y pups/ But I still loooooove yooooooou!" However, this tune wasn't written to honor Homer the King Charles Spaniel for being cute and smelling like a puppy. It's about JUSTICE.
While we can't tie up the loose ends in Adnan's case, we can tie up one of the loose ends of this saga. With the help of my imagination, I've given those syncopated beats of the Serial theme some much-needed content.
And what's the deal with Jay?
But then who strangled Hae?
But we won't know who did it!
About to start right now!
Thank you, folks. Anyone who wants to contract out my extremely simplistic songwriting skills can reach me on Twitter.


Great coaches. Great times. Great memories.
Whether you have a son or daughter who has never picked up a tennis racket before, or one who has had a few lessons and wants more, or one who is already a high performer, CourtSense Summer Tennis Camps in New Jersey will develop their love for the game, take their skills to the next level, and provide a wonderful opportunity to make new friends.
Receive coaching from internationally renowned tennis pros.
Use the very best tennis facilities and technology.
Follow training methods that are proven to develop top tennis talent.
Tennis camp is for participants ages 7-18, from beginners to tournament level players. Full-Day/Overnight option.
Open to all levels, from beginners to advanced players ages 5-18. Half-Day Indoor Camp.
Geared towards High Performance Tournament and high level High School players. Full-Day/Overnight option.
This summer tennis camp is for participants ages 7-18, from beginners to tournament level players. Our world class staff provides comprehensive tennis instruction, along with fitness and mental strategy education, in a fun, supportive environment. Each day is also balanced out with coached singles and doubles play opportunities. This camp offers a full day program and has an overnight option that includes fun evening activities supervised by a mature, well-trained staff.
COURTSENSE SUMMER KIDS TENNIS CAMP has always offered the chance to pack a lot of training into each week. For all levels, from beginners to advanced players ages 5-18, the 15 hours of indoor training equate to nearly an entire season during the school year. Players can feel the benefits of consistent, daily drills and play. Once the players understand the process, we hope the immediate results will inspire them to seek the next level of tennis and fitness. Spend the summer with us, learn and refine skills, make new friends and love the process!
This summer camp is geared towards High Performance Tournament and high level High School players. We have trained and currently are training players who have become ATP and WTA ranked players, U.S. Olympians, as well as many college scholarship athletes. Our international high performance coaches, in collaboration with our fitness staff and a sports psychologist, have developed a program that maximizes all our athletes' strengths both on and off court. Our students have access to 32 outdoor and 15 indoor tennis courts, as well as to the revolutionary PlaySight smart court system.
Ensure your child learns to play tennis from the best. CourtSense is run by world-class tennis teaching professionals who've proven they can develop talent. Students coached in the CourtSense way have gone on to become college scholarship athletes, ATP and WTA ranked players and even US Olympians. This list includes Christina McHale and Bernarda Pera.
Your child will get plenty of attention and coaching to improve their game and ensure they really enjoy themselves.
We've been running tennis camps for years, so we know what makes kids of all ages really tick. They can expect top training that'll help them leave camp a better tennis player as well as plenty of time for fun and making new friends.
All children will be taught in small groups alongside others of a similar age and tennis playing ability.
The weather can't spoil our camps as we give children access to top quality courts both indoors and outdoors. Our indoor courts are Ace Surface, eco-friendly cushioned tennis courts that are much easier on players' hips, knees and backs. The indoor courts are modern and air-conditioned, with LED lighting designed to make it easier for players to keep their eye on the ball.
We take the security of everyone who attends our tennis camps very seriously, which is why there is adult supervision of all children at all times, plus 24 hour live and recorded video surveillance across camps.
We care about helping your child develop on and off the tennis court. It's why we take time to help them be the best people they can be – physically, emotionally and intellectually.
The CourtSense way of teaching tennis has proven effective for over 16 years. Ours is a unique, comprehensive and well-organized program that makes learning simple so your child can master skills at every level.
Customer service is essential to our business. We treat our students like family and have a great time playing the sport we love.


Lower forested slopes below Nhandore peak, Mt Gorongosa.
Synonyms: Brachystephanus bequaertii De Wild.
Erect, perennial shrub-like herb, up to c. 2.5 m high. Leaves opposite, 11-18 cm long, elliptic to ovate, hairless above, more or less densely hairy beneath; margin entire or shallowly crenate; petiole 1-4 cm long. Inflorescences in erect terminal and axillary spikes, 9-19 cm long, flowers appearring from tightly overlapping bracts. Corolla 2-lipped, pink violet, mauve or white; tube 2.5-3.5 cm long; stamens and style long exserted.
Notes: Very rare in Zimbabwe, where it has been recorded from Mermaids Grotto in Chimanimani. There is serious threat of this area having been cleared and the plants might no longer be there.
Worldwide distribution: DRC, Uganda, Tanzania, Malawi, Mozambique and Zimbabwe.
Champluvier, D. & Darbyshire, I. (2009). A revision of the genera Brachystephanus and Oreacanthus (Acanthaceae) in tropical Africa Systematics and Geography of Plants 79(2) Pages 157 - 161. (Includes a picture).
Darbyshire, I., Vollesen, K. & Kelbessa, E. (2015). Acanthaceae (Part 2) Flora Zambesiaca 8(6) Pages 142 - 144. (Includes a picture).
Golding, J.S. (ed.) (2002). Southern African Plant Red Data Lists. Southern African Botanical Diversity Network Report No. 14. SABONET. Pretoria. Page 161.
Harris, T., Darbyshire, I. & Polhill, R. (2011). New species and range extensions from Mt Namuli, Mt Mabu and Mt Chiperone in northern Mozambique Kew Bulletin 66(2) Page 248.
White, F., Dowsett-Lemaire, F. & Chapman, J.D. (2001). Evergreen forest flora of Malawi Royal Botanic Gardens, Kew Pages 113 - 115.
Hyde, M.A., Wursten, B.T., Ballings, P. & Coates Palgrave, M. (2019). Flora of Zimbabwe: Species information: Brachystephanus africanus var. africanus.


Natural Menu is a 100% natural, complementary wet pet food for dogs. Our Natural Menu products have a high meat content combined with essential minerals which contribute to your dogs overall health and vitality. No artificial colours, flavours or preservatives No soya or bulking agents Hypo-allergenic No wheat gluten No additives No dairy products or eggs For over 40 years Forthglade have been making nutritionally balanced and delicious pet food for dogs in the heart of the Devon countryside. Forthglade products are made with natural ingredients that are locally sourced wherever possible, vacuum sealed and gently cooked to retain all that natural goodness. Suitable for dogs from 3 months. Storage Store in a cool dry place. Once opened, please keep refrigerated and use within 48 hours. Best served at room temperature.