I've steered clear of the repeal debate, I haven't commented or joined in to any great extent.
There are a number of reasons why, most of them are personal, and I won't go into them in this blog. Suffice to say, anything to do with my uterus, isn't something you should be spending your time, concerned about.
A number of things have struck me though about the debate and this is looking at it purely from the perspective of a still viably reproductive female who has cancer.
I was originally diagnosed at 33, I had three young children 5,7 and 6 months old, I was attending a well-known cancer centre in north london. I don't actually remember, if I was asked, before I had my suspicious mole removed, under local anaesthetic if I was pregnant, but I certainly was asked before I had a larger operation, a month later under general anaesthetic to sign a consent that included a declaration stating I wasn't.
After this operation, I was offered an adjuvant trial, this was an experimental treatment, that I hoped would prevent the cancer from returning, no guarantees it would. With Melanoma in 2004, it's important to put into context where I was at, and how precarious a position I had found myself. If the cancer returned shortly after that surgery (quiet possible), or at any stage in the future, (up until the approval of the first new viable treatment which came about 2013 in Ireland), unless more surgery could somehow prevent it spreading further, I would have quiet simply died.
When I signed for that trial, I can remember distinctly my Oncologist at the time advising me I should not get pregnant, not then, and because of the experimental drug, not in the future. To me this wasn't a big concern, I was lucky my family was complete. Whilst still on the trial I returned to settle in Ireland, I never really gave any thought to what would happen if I did accidentally find myself pregnant while on treatment. I think I just assumed somehow naively, that I would be looked after, what that actually meant in reality wasn't so clear. Naturally, I took precautions but as we know nothing is one hundred per cent effective. Unexpected things happen.
I would attend my appointments, and scans and sign the paperwork without little thought to the consequences if I was. I mean I was always sure I wasn't pregnant, but if I had been or there was any doubt how different would things have been?
Well for a start any monitoring scans to check if the cancer had returned would have been off-limits for me. I could possibly have had an event free pregnancy, but what would the effects be on a baby born in such a scenario? there was no way of knowing. Would the pregnancy hormones drive my cancer out of remission, and make it active again, leaving me fighting for my life or my children motherless, I don't have the answer to that and neither does any oncologist? If the cancer had returned and I was pregnant living in Ireland what would I have done?
It was like a snapshot of what my fate might very well have been, in that scenario. The report was based on an interview with Prof. Louise Kenny, she felt compelled to respond to an opinion article by Prof Eamon McGuinness which had appeared in the same paper last week. I'm not going to run through the whole article but the link is above and I'd urge you to read it.
In the article Prof Kenny, states "It is an outrageous lie to say that the Eighth has never changed medical management or adversely affected the outcome of a woman with cancer," she should know she specialises in the management of high risk pregnancies.
As an example of what she meant, she gives a case history of a patient, called Michelle Harte. In 2010, Michelle a 39-year-old mother of one, was living in County Wexford, but originally from London. Michelle had Malignant Melanoma and it was classified as terminal.
Remember, this is still when there is no treatment available that works, options would have been, Chemo, which frankly is next to useless for this particular cancer and is only ever used as a palliative care option now.
Her best hope at that time, was a Clinical trial. BUT when Michelle presented pregnant for obvious reasons that excluded her from participation, in an experimental drug trial.
She was in the first trimester of her pregnancy and her obstetrician was willing to perform a termination. This would have enabled Michelle to continue on treatment, potentially buying her valuable time or maybe even remission. The termination had to be approved by Cork University Hospital ethics committee, because of the confusion surrounding the legal interpretation of the risk to Michelle's life. They ruled against the termination saying there was no immediate risk.
Her only option was to travel to the UK to seek a termination. There were further delays, because Michelle didn't have a passport or the financial means to go. She had to stop treatment, her condition deteriorated rapidly. She eventually travelled to the UK for a termination, by then she was extremely ill. There are reports of her having to be helped on to the plane.
I was the exact same age as Michelle, when this was happening to her. I too had malignant Melanoma, although mine wasn't active at the time. I was lucky (although I'd prefer the type of luck where I didn't have cancer to begin with), by the time mine decided to rear its ugly head again, there were some newly approved treatments.
BUT, I once again entered the world of being asked before each procedure was I possibly pregnant? If I had been, would there have been, no scans, no x-rays, no MRI's, no Liver biopsies, no medication, until a decision was made on what to do, about the pregnancy. Time is very precious in this scenario, I didn't have any more to waste than Michelle did, but thankfully I wasn't pregnant. I could have all the procedures I needed and start my treatment which to date has been very successful.
Having cancer is traumatic, finding out you are pregnant on top must be horrific. But expecting a woman in this condition to get on an airplane to another country, if she has made the decision to terminate, ( I am aware not all women will), or advised it is in her best medical interest to do so is, barbaric.
Next Next post: PPI – Can Patients Afford It?


zlib.* compression filters are available with PHP as of version 5.1.0 if zlib support is enabled. They are also available as a backport in version 5.0.x by installing the » zlib_filter package from » PECL. These filters are not available for PHP 4.
bzip2.* compression filters are available with PHP as of version 5.1.0 if bz2 support is enabled. They are also available as a backport in version 5.0.x by installing the » bz2_filter package from » PECL. These filters are not available for PHP 4.


This REST API enables you to add existing users to one of your existing Adaptive Campaigns. Kahuna adds the users to the campaign asynchronously using a background job, but immediately returns an identifier that lets you check the status of the job. By default, Kahuna starts scheduling pushes as it adds your users, but you can also provide a timestamp as part of the API call that Kahuna uses as the scheduled start time.
The request body is a single JSON dictionary (map) that contains configuration information for the request, a list of users you want to add, and default parameters to push to all users.
You can submit up to ten requests simultaneously. The entire request body must be smaller than 10 MB (approximately 100,000 users).
Required. The dictionary of key-value pairs that specifies how to access and manage the campaign.
Required. The identifier, assigned by Kahuna, for the campaign to which you want to add users. This is also known as the campaign group ID. You must use an identifier for an existing adaptive campaign.
From the left navigation pane of the Kahuna application, open Manage > Campaigns in the left navigation pane.
In the campaign list, click the name of your Adaptive campaign to open the Campaign Details page. The identifier appears in a gray box at the top.
Required. The Kahuna-specified field name of the user credential that you are using to identify your users. Only one value of cred_type is allowed per request. The field name must be one of the Kahuna white-listed user credentials, which are globally-unique identifiers (GUID) for a user in the Kahuna database. If the value of cred_type is not in the Kahuna white-list, the request fails.
dev_id—an identifier assigned by Kahuna to the user's device.
user_id—a user ID that you create for the user.
token—the user's push authentication token. This value is not the same as install_token.
install_token—a token that you assign to the device when the user installs your app.
target_global_control If this field is set to True, global control users are included. If this field is set to False, global control users are not included. For transactional campaigns, such as purchase confirmation, set this field to True. The default is set to false.
observe_rate_limiting If this field is set to true, and a target user is still in the notification cooldown period, users you add to the campaign using this API request do not receive another message. If the field is set to false, the campaign sends messages to all the added users, even if they are still in cooldown. The default is set to true.
Required. An array of dictionaries containing one or more Recipient Object dictionaries. Each Recipient Object identifies a user and optionally sets parameters that are sent to the user as part of the push.
Required. An array of values for the user credential you specified in cred_type. Each value specifies a different target user.
Note: The value of k_to must be specified as an array, even if you only specify a single value. All user credential values are strings.
k_send_ts The date and time at which the campaign starts for the users specified in k_to. If this field is not specified, it defaults to the value of k_send_ts specified in the default_params dictionary. The value must be specified as seconds since the POSIX epoch, 01/01/1970 00:00 GMT. Specify this value in GMT time instead of the time for your local time zone.
extra_parameter A key and value you want to send as an extra parameter in push notifications from the campaign. You can include as many extra_parameter values as you want in each recipient object. The size of a push notification and its extra parameters (values and keys) is limited to 235 characters. The extra_parameter values you specify in a recipient object override values you set for the same extra_parameter key in the default_params object.
The optional default parameters that are sent to all added users. Parameter values for an individual user override default parameter values. This dictionary also enables you to specify a default timestamp that sets the push schedule for all the users you add.
Required. The date and time at which the campaign starts for all users specified in this request. This value is overriden by a value of k_send_ts specified for an individual Recipient Object.
Note: The value must be specified as seconds since the POSIX epoch, 01/01/1970 00:00 GMT. Specify it in GMT time rather than the time for your local time zone.
extra_parameter Required. One or more keys and values you want to send by default as extra parameters in push notifications to all users specified in this request. There is no limit to the number of extra_parameter pairs you specify. However, the maximum size of a push notification, including the message and extra parameters, is 235 characters. extra_parameter values you specify in a Recipient Object override the values you set for an extra_parameter in default_params.
The following JSON demonstrates the use of campaign_config and recipient_list. Because the JSON does not include default_params, and none of the recipient objects contain extra parameters, Kahuna does not add any key:value pairs to the message it sends to the specified users.
The following JSON demonstrates the use of extra parameters in default_params, as well as extra parameters in each recipient object in recipient_list.
The second recipient object only contains "department": "writing".
In addition, default_params contains the default value "company": "Acme Steam Engine, Inc."
"company": "Acme Steam Engine, Inc."
The following JSON demonstrates the use of campaign_config and recipient_list. This example also demonstrates how to send structured extra parameters to Kahuna for use in a MailChimp Handlebars-format email template.
Note: The events extra parameter value is a string that MailChimp parses into key:value pairs. MailChimp expects keys and values in the form of strings, so you need to delimit them with quotes. To ensure that the request body is well-formed JSON, enclose the keys and values with escaped quotes using \" characters.
The response to an Adaptive Campaign request is an HTTP response code and a JSON response body. The response is immediate, even if the Kahuna servers are still processing the request. One of the values returned in the response to a successful request is a job identifier that lets you use the Job Status API to find out the status of your Adaptive Campaign request.
The servers use the following HTTP response codes.
200 Kahuna successfully parsed the request. A background job is adding users to the specified campaign. The response body contains a job identifier that you can use to track the progress of the job.
The HTTP verb specified in the request is not POST.
The request does not contain a request body JSON object.
The request body contains errors. For example, the value of campaign_id is not an existing campaign, or the specified user credential type is not in the list of white-listed credentials. Most errors are related to mistakes in the campaign_config dictionary.
The HTTP authentication header does not specify BasicAuth.
There is a syntax error in the BasicAuth Username (Secret Key) or Password (API Key).
The BasicAuth Username is not known, or the Password is invalid for the specified Username.
The request URL is missing the env= parameter.
409 The BasicAuth credentials are valid, but the namespace they represent does not have authorization to use the Adaptive Campaign API.
500 The servers encountered an internal error.
If the request fails, this field is set to false. If the request succeeds, this field is not present.
If an error occurs, a human-readable error message is provided. If no error occurs, this field is not present.
If an error occurs, provides the HTTP response code. If no error occurs, this field is not present.
If an error occurs, provides details about the error. If no error occurs, this field is not present.
A Kahuna-assigned identifier for the background job that is processing the users you specified. Use this value with the Job Status API to find out the status of the job.
The date and time that the servers created the Adaptive Campaign specified by your request in the format YYYY-MM-DDTHH:mm:ss.ssssss. The time zone is GMT.
PENDING—the job is waiting to start.
FAILED—some part of the job failed.
The servers set this value and return a response immediately. Use the Job Status API to check the status of the campaign.
campaign_id Repeats the campaign identifier you specified in the request body in campaign_config.
cred_type Repeats the user credential type specified in the request body in campaign_config.
observe_rate_limiting Repeats the value of observe_rate_limiting that you set in the request body in campaign_config.
target_global_control Repeats the value of the target_global_control that you set in the request body in campaign_config.
total_users_requested The total number of users you specified in the recipient_list array in your request object.
total_users_scheduled The total number of users that the servers actually scheduled for the campaign.
The total number of users that the servers can not locate in the database.


Welcome to the Carnival of Family Life!
Sit back, relax, and enjoy all of the wonderful posts included in this end-of-summer edition. There's a chill in the air in the mornings and evenings — the Delta breezes are bringing relief from the still-hot, sunny California afternoons. But autumn is definitely on its way . . . and we'll celebrate its arrival next Monday!
cate3 presents One of the problems with growing up posted at Why Homeschool.
Rose presents When it sounds too good to be true, save your money posted at Learning at Home.
Marjorie presents One Family's Experience at Polyface Farm posted at Life Without School.
Tom Tessin presents Top 10 Cheapest Universities for 2008 posted at FCC Student Blog.
Super Saver presents Public Education posted at My Wealth Builder.
Christy Jordan presents Southern Plate: Guest Blogger! Butterscotch Chow Mein Candy posted at Southern Plate, describing a great cooking project that any kid can complete with his/her parents.
Donna Freedman presents Safe snacks: Beyond pudding cups and tortilla chips posted at Smart Spending. "Manufacturers make a fortune on potato chips, microwave popcorn and the like. But does a snack have to be different from what's already in the cupboard?" Donna asks.
Stephanie presents This Season's Bounty. Next Season's Gifts posted at Make It From Scratch.
HowToMe presents How to Peel a Peach posted at HowToMe.
Lisa Mitchell presents Walking Together as a Family posted at Let's Talk Babies.
SeaBirdChronicles presents Did I mention the air conditioning? – To TwinFinity and Beyond: Parenting Twin Toddlers posted at SeaBird Chronicles, discussing the benefits of joining your local Children's Museum!
Riley presents Noodleboro's Learn to Listen Pizza Palace Game posted at All Rileyed Up, a review of a new children's game.
Silicon Valley Blogger presents Water Fun Activities To Cool You Off This Summer posted at The Digerati Life.
Chris presents Being Laid Off – 4 Steps to go From a Layoff to an Amazing Job. posted at ProsperingServant.com.
Kelly presents Frugal Gift Giving: Who Do You Buy Gifts For? posted at Almost Frugal.
Debt Freedom Fighter presents Cut Costs At The Grocery Store By 25% Or More With These 4 Tips posted at Discover Debt Freedom!.
The Smarter Wallet presents Ways To Save on Seasonal Purchases: Time To Shop For Halloween! posted at The Smarter Wallet.
Matthew Paulson presents Fitting Fees for a Sitter posted at American Consumer News.
Money Answer Guy presents What Are the Important Financial Lessons I Need to Teach? posted at The Money Answer Guy.
Deb Serani presents World Suicide Awareness Day is September 10th posted at Dr. Deb.
Madeleine Begun Kane presents Crafty Verse posted at Mad Kane's Humor Blog.
Stephanie presents All Hail Fuzzy Puppets and Animated Friends posted at Thrifty Wench.
Denise Swank presents Best Buy– best buy? posted at There's always room for one more.
Michael presents How to Be Barbie for a Day: The Opening of the Casa de Barbie posted at Michael Emilio. "Imagine taking your daughter to the Barbie House for a day," Michael exclaims!
Gabriel Almada presents Santi's reflections on marriage posted at Live from Waterloo.
SeanBissell presents Even Dogs Get De-Motivated posted at Yummy Fitness ~ Fitness For Fun People.
Rosalind Sedacca presents Depression and Divorce – Helping Your Children Cope With Both posted at ChildCenteredDivorce.com.
Angelawd presents Mother/Daughter Translation Guide posted at angelawd. "There's what moms and daughters say, and there's what we really mean," Angelawd says.
Laura Scarborough presents compassionate responsibility posted at Adventures in Juggling.
Amy presents A Fun Day at Creative Discovery Museum posted at The Q Family Adventure, about a fun day at the Children's Creative Discovery Museum in Chattanooga, Tennessee.
Hilary Green presents Family Friendly Kia Rondo Tops 10 Most Researched SUVs posted at Cars for Girls.
Donetta presents Carnival of Family Life * Family Travel posted at A Life Uncommon.
Matthew Paulson presents Keep Summer Vacation Memories Alive posted at The Travel Advocate.
Mother Hen presents Day 2 posted at Mother Hen.
Alisha presents No SIDS Deaths in 11 Years posted at Uber Parents.
Shen-Li Lee presents Preventing Meltdowns with Adequate Vigorous Play Time posted at Babylicious.
Alex Smith presents Shopping Tips for Child Guard Monitors posted at TBO-TECH.
To Be Debt Free presents How To Put a Household Notebook Together posted at On a Quest To Be Debt Free. . . , the third post in a series on how to create a household notebook/organizer/planner.
Katey Magill presents Old Fashioned Taffy Pull posted at Having Fun at Home, all about how to host an old fashioned taffy pull at your child's next slumber party.
Submit a blog article for the September 22, 2008, Welcoming Autumn Edition of the Carnival, hosted at Colloquium, by clicking here!
Thank you for hosting! This is a great carnival edition!
Great job and thank you for including our post.
wonderful blog , lovely relationship artilces , how it should be with family members?
Great job on the carnival. I can't wait to read through some of these great entries.


Charming Guest House La Plantation welcomes its guests in the heart of a generous nature in a creole style house facing the Indian Ocean. Located 300m above the sea level in the wild south of the Island. Kingdom of flavors and spices between the emerald green of its forest and the blue ultramarine of the Indian Ocean.
Three bedrooms and a suite tastefully decorated according to different themes. All are air-conditioning and equipped with TV and individual bathrooms.
On the terrace, in front of the ocean, you will be able to have a nice breakfast or dinner (upon reservation).


A sincere thank you to the members of the Hull Branch of the Royal Air Force Association for their donation towards the Royal Air Force Memorial Plaque at the war memorial in Richmond.
The dedication coincided with the Armed Forces Flag Raising day to ensure that the RAF 100 message could be heard by as many people as possible. Therre was an audience of over 100 present taken from contingents from RAF Leeming, Catterick Garrison, the local councils, the schools and many veterans including three WW2 veterans. Feedback from fellow RBL members and from the RAF Leeming was extremely positive.
Attach is a photograph of the Plaque in its rightful place on the War Memorial as a lasting reminder of the commitment and cost of the service given by the Royal Air Force to this country over the last 100 years.


text:
Abbas Rahim  (25 January 1979 – 10 August 2012) was an Iraqi football midfielder who played for Iraq in the 2000 Asian Cup and Al-Shorta and Al-Zawraa.

Playing career
Abbas Rahim was born on January 25, 1979, in Baghdad and started his playing career in the junior teams of Al-Nafat and Salikh. At the age of 13, he joined the Talaba youth where he spent two years before joining Al-Karkh - making his first team debut in 1995. A year later he transferred to Al-Shurta winning the league title in 1997-98. After a brief spell at Al-Karkh, he joined 'the White Seagulls' Al-Zawraa, winning the double in 2000 and scoring a remarkable seven goals in his first three league games for the club. Abbas joined Al-Shurta for the second time in 2001.

He was a prolific goal scorer at youth level and Under-19 level where he helped Iraq qualify for the AFC Asian Youth Championship in 1998. He had starred for the Iraqi Olympic side and was capable of turning a game on his own. A versatile left-sided player who could play at left-back, on the left wing, just behind the front two or as an out and out striker.

Abbas made his debut during the 1999 Pan-Arab games in Amman against Libya, scoring his first international goal in a 4–0 win against Lebanon. He played a part in the final against the hosts hitting the cross bar in extra time and was also one of three who hit the post in the penalty shoot-out.

International goals
Scores and results list Iraq's goal tally first.

Death
On 10 August 2012, Rahim died in a car crash on the road from Baghdad to Najaf. He was 33 years old.

References

External links

Sportspeople from Baghdad
Iraqi footballers
Iraq international footballers
2000 AFC Asian Cup players
1979 births
2012 deaths
Road incident deaths in Iraq
Al-Shorta SC players
Al-Karkh SC players
Al-Jaish Damascus players
Al-Zawraa SC players
Association football midfielders

redpajama_set_name: RedPajamaWikipedia


A brand new architecturally designed 3 bedroom 2 bathroom house within 200 meters of the town of Cowaramup in Western Australia s stunning South West.
Take a short stroll out the back gate and you can enjoy all the amenities Cowaramup has to offer, including Cafes, Galleries & Skate Park.
Wineries and Breweries nearby, and the beautiful Gracetown beach a short drive away.
High attention to detail in all the finishes has created a resort/relaxing feel to this contemporary design. It has off street parking with a double lock up garage and landscaped gardens.


When I was a youth director I used to get a kick out of watching the teenagers fight over the front seat of the van. They would race to the van all shouting "Shotgun!", which apparently meant the front seat alongside of the driver. I remember taking the time to teach them from this passage and others like it that we should really be fighting over the back seat and not the front. I was kidding about the fighting part, but those kids took me literally and began to race, trying to beat one another to the back of the van. I think those crazy teens just loved to fight!
What is it about our old fallen nature that we must insist on getting the preeminence? We want the front seat of the car; we want the closest parking spot in the shopping center. We will actually fight over these things. It's craziness. I have often thought it funny that people who will walk for miles in an exercise program won't walk an extra twenty feet in a parking lot.


When we think of dusting finger prints at a crime scene we tend to think of Sherlock Holmes kneeling down in a low lit room smoking a pipe with one eye gaping through a magnifying glass, slowly dusting away at the prints left behind by the soon-to-be-captured suspect. But, with the giant improvements in both the chemistry and scientific industry does this method still apply? Well, actually yes it does! That's exactly what is used by modern forensic scientists at a crime scene to this day, minus the smoking pipe and tweed deerstalker cap. The truth is, crime scene investigation is still a long, slow and painstaking task, which makes it all that more impressive. But one element which has massively improved since the early 1900's is the analysis of the evidence found at a scene once it has been taken back to the lab, this improvement can be pinned down to a few things, but chemistry is top of the list.
Crime scene investigation, particularly in a murder case, depends hugely on forensic science which then utilises methods from chemistry and bio chemical analysis for all matters of evidence collected at a crime scene.
Blood analysis from a crime scene highlights the importance of chemistry in a crime investigation. The Kestle-Meyer Blood Screening test being one of the most popular and highly relied upon tests within the industry. The Kestle-Meyer blood test is an extremely sensitive way to test for blood on a texture, or, in the event of crime scene investigation, evidence. Kestle-Meyer is a phenolphthalein indication solution which is reduced before application, usually by reacting it with powdered zinc. The idea behind the test is that the the hemoglobin in blood catalyzes the oxidation of the phenolphthalin into bright pink phenolphthalein, this is usually a strong indication that there are traces of blood in the tested area.
The more 'traditional' and old school methods are still used and relied upon even with today's technological advancements, one of these being the ability to dust for fingerprints at the crime scene and take away a sample for comparison and analysis with a database. This fantastic video from Liverpool John Moores University shows forensic science lecturer Phil Gilhooley explaining how to dust and detect fingerprints at a crime scene and what to look out for.
As Phil Gilhooley explained above, the main compound used to dust for fingerprints is an aluminium powder and a zephyr brush. This then reveals any finger prints that have come in contact with the area under investigation. In order to take the dusted fingerprint from the crime scene and pass it to forensics in the laboratory, a form of sellotape is placed over the dusted finger print, it is then removed and transfered onto a black piece of card, where it is carefully placed down and any air bubbles are removed, the finger print is then ready to be analysed back at a forensics laboratory.
Three days after we published this post, forensic scientists from Austria's University of Salzburg announced they have developed a new method of determing for "establishing an exact time of death after as long as 10 days" according to the BBC. The method consists of measuring the breakdown of muscle protein in dead pigs over time, which is a much more accurate and reliable advancement from the current method of measuring the core body temperature, which only works upto 36 hours after death.
It was determined that there was a "huge lack of reliable methods", said Dr Peter Steinbacher from University of Salzburg. He went on to say that analysing muscle protein degeneration even after the body had cooled down to environmental temperatures proved to be a very promising method. The news was annoucned at Society for Experimental Biology's annual conference in Prague.


text:
World Bank Provides $500 million to Help Bangladesh Improve Road and Digital Connectivity and Logistics in Western Region
New Delhi: The World Bank today approved $500 million to help Bangladesh improve road connectivity along the Jashore-Jhenaidah corridor covering four western districts.
The Western Economic Corridor and Regional Enhancement (WeCARE) Phase I project is the first of a multi-phased $1.4 billion World Bank program to upgrade the existing 110 KM two-lane highway, Bhomra-Satkhira-Navaron and Jahore-Jhenaidah, to a safer and climate-resilient four-lane highway in western Bangladesh. It will support the government's plan of developing a 260km economic corridor in the western part and benefit over 20 million people.
The first phase of the program will upgrade 48km of the N7 highway between Jashore and Jhenaidah and improve about 600km connecting rural roads and 32 rural markets/growth centers to stimulate the local economy. To improve road safety, the highway will have additional lanes for slow-moving vehicles and a median safety barrier to separate oncoming traffic.
"The western region of Bangladesh is endowed with many agricultural and natural produce and holds great potential of becoming a gateway for regional and international trade," said Mercy Tembon, World Bank Country Director for Bangladesh and Bhutan. "This project will unlock the region's potential by stimulating the economy of districts, linking farms to markets, connecting Dhaka with the western region as well as with neighboring countries, thus enhancing trade, transit and logistics along the corridor."
To help the country realize the 'Digital Bangladesh' vision, the project will install fiber optic cables along the highway to provide reliable and affordable Internet access, which will be critical for emergency responses and business continuities in crises similar to the COVID-19 (coronavirus) pandemic.
"The COVID-19 pandemic has hit the poorest hard with the loss of jobs and income. To help them recover from the shock, the project will support immediate social protection and livelihoods to the vulnerable rural people by engaging them in labor-intensive civil works. Even in the post-COVID period, the project will create jobs for the local communities through civil works for the national highway and connecting rural roads and markets," said Rajesh Rohatgi, World Bank Senior Transport Specialist and Project Task Team Leader. "It will also support the country's two key transport agencies—Roads and Highway Division and Local Government Engineering Department—to enhance emergency preparedness for any future pandemic or crisis."
The project will also enhance agriculture supply chain efficiency in the western region by ensuring that produce are transported to markets in less time and lower cost. For example, in Khulna Division, where about 57 percent of the population's income is generated from agricultural production, the project will build new markets and improve storage facilities along the corridor that will help farmers reduce waste, increase sales and earn more.
The credit from the World Bank's International Development Association (IDA), which provides concessional financing, has a 34-year term, including a four-year grace period. With this financing, the World Bank's total commitment in the current financial year (FY 19-20) stands at $2.27 billion.
Bangladesh currently has the largest IDA ongoing program totaling over $13.5 billion. The World Bank was among the first development partners to support Bangladesh, and has committed more than $31 billion in grants, interest-free and concessional credits to the country, since its Independence.
The World Bank Group, one of the largest sources of funding and knowledge for developing countries, is taking broad, fast action to help developing countries strengthen their pandemic response. We are supporting public health interventions, working to ensure the flow of critical supplies and equipment, and helping the private sector continue to operate and sustain jobs. We will be deploying up to $160 billion in financial support over 15 months to help more than 100 countries protect the poor and vulnerable, support businesses, and bolster economic recovery. This includes $50 billion of new IDA resources through grants and highly concessional loans.
Previous articleHighest single-day spike of 15968 new #COVID19 positive cases reported in #India in last 24 hrs
Next article#Odisha DGP urges people not to visit #Puri town in view of the curfew

redpajama_set_name: RedPajamaCommonCrawl


The average salary for a radiologist in Washington is around $228,860 per year.
This is 227% above the national average. ● Updated in 2016.
Radiologists earn an average yearly salary of $228,860. Wages typically start from $107,620.
How much does a radiologist make in Washington?
Radiologists earn about the same as related careers in Washington. On average, they make less than orthopaedic surgeons.


at the gates of heaven, heaven lift me up.
baby (baby), what you're looking for?
at the gates of heaven (heaven lift me up)Heaven lift me up.
baby (baby), (at the gates of heaven) what you're looking for?
baby (baby), (heaven lift me up) what you're looking for?


text:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">

    <group android:checkableBehavior="single">
        <item
            android:id="@+id/nav_camera"
            android:icon="@drawable/ic_menu_camera"
            android:title="Camera"/>
        <item
            android:id="@+id/nav_gallery"
            android:icon="@drawable/ic_menu_gallery"
            android:title="Gallery"/>
        <item
            android:id="@+id/nav_slideshow"
            android:icon="@drawable/ic_menu_slideshow"
            android:title="Slideshow"/>
        <item
            android:id="@+id/nav_manage"
            android:icon="@drawable/ic_menu_manage"
            android:title="Manage"/>
    </group>

    <item android:title="Communicate">
        <menu>
            <item
                android:id="@+id/nav_share"
                android:icon="@drawable/ic_menu_share"
                android:title="Share"/>
            <item
                android:id="@+id/nav_send"
                android:icon="@drawable/ic_menu_send"
                android:title="Send"/>
        </menu>
    </item>

</menu>

redpajama_set_name: RedPajamaGithub


text:
Alex "Cunny" Ross finds fame through family
The hip hop artist and entrepreneur begins 2019 with plans for positivity.
By Ki Rolle
"There is so much negativity being shared about us but I am going to show that it's a new era. It's time to get rid of the stereotypes," says Ross.
In the Spring of 2015, a shy 18-year-old named Alex "Cunny" Ross laid down 10 of his songs over beats produced by future Halifax councillor Lindell Smith during a session at his neighbourhood studio. The "Young and Coming Up" mixtape—featuring his Centreline Studio pals such as BenG, Neptune and Honey—was burned onto 50 compact discs. Less than 48 hours later, all of the CDs were sold out and his music was being played on repeat throughout Uniacke Square.
As he rings in the end of 2018, Ross isn't out partying but instead putting the final touches on his third album, which he hopes to launch in the spring with the title track "Family Man." It's one of several ventures the young entrepreneur from Uniacke Square has in store for 2019.
"I have a few surprises up my sleeve," he says. "This album is like an update of my life. Through the past five years of experience, I have gained much more knowledge about myself as an artist and myself as a member of the community. It used to be about dreaming how to give back to the community, now they are helping me live my dream of starting my own record label one day."
Ross had only a year of songwriting experience under his belt before he launched his first mixtape, but the explosion of interest from his community launched him into quick action to create more music. In the fall of 2015, he released Family Over Fame, a 14-track album featuring other emerging local artists including Jayden Auston, Alyssa Flint, MAJE, Arenye, Woozy and RealEye, spawning the Squaretown favourite, R&B-infused single "Comin Thru." One week later, the album had more than 1,000 downloads on mixtape site DatPiff.com. He credits fellow Square resident JRDN (AKA Jordan Croucher) for his main inspiration.
"That's when the real hustle began," Ross says. "I lived and breathed promotion. It was all about creating music videos, remixes when I could, performing in shows and just trying to make a name for myself as Cunny the hip- hop artist."
It was during this hustle that he got the idea to sell merchandise to promote the mixtape. He partnered with Advanced Screen Printing and his logo designer Josh Carey to create his trademarked Family Over Fame apparel. The brand sold about 50 items in less than an hour and his clothing line was born. He's still handling hundreds of orders of hoodies, t-shirts and ball caps, which range in price from $25 to $50, and plans to launch a new design in February to coincide with African Heritage Month.
"Social media is really the main tool for growing the business, which I plan to keep home-based" Ross explains. "I started out posting photos of me living the brand on Facebook and Instagram and that led to people asking me about the clothing line. Now I see hundreds of new faces posting photos on social media with their Family Over Fame gear. It's a humbling and amazing thing to see."
Four years ago, Ross also started hosting an annual free barbecue and entertainment showcase. Last year's event saw more than 400 people turn up to celebrate his progress and the community's resilience. Footage from his events and other community stories will be showcased in a documentary currently be- ing filmed, featuring activists such as Lindell Smith, Marcus James, Tundé Balogun, El Jones and other emerging artists.
For Ross, his story is one of family—of his own single-mother upbringing that he says shaped his success—but also one of his community, which he considers his extended family.
"There is so much negativity being shared about us but I am going to show that it's a new era. It's time to get rid of the stereotypes. We've got amazing people living here and we've got an amazing story. I'm going to do all I can through music, business and community building to make sure the positivity is lived and shared."
New Radicals,
Youth,
Uniacke Square
Halifax street style: Gottingen Street
Scouring the streets for the city's most fashionable.
By Carolina Andrade
Take Pride in your weekend with these Sure Things
Building BLxCKHOUSE in North Preston
LaMeia Reddick is redesigning trusted urban spaces
More by Ki Rolle
How a doula training for Black women and non-binary people became a lesson in intersectionality.
The Black Lives Matter sign on Gottingen Street is a form of resistance
By Caora McKenna
Voice of the city: Making the case for play
By Crystal Watson
Obsolete no longer
By Matthew Halliday
LOCAL By Local Girl explores what "made here" means
By Josefa Cameron
Latest in City
Housing crisis update: what you missed over the holidays
Halifax announces lineup for virtual NYE concert
More City »


text:
US is rogue state: Gen Padmanabhan
Thread starter ajtr
ajtr
Tihar Jail
Former army chief General Sunderrajan Padmanabhan thinks America is a rogue state in a class of its own.
And, he is not afraid to say so.
On Monday, he spoke to reporters about his forthcoming book, India [ Images ] Checkmates America 2017.
It is in three parts. The first deals with the period between 1989 and 2003 when America's pre-emption policy evolved and firmed up. Iraq was at the receiving end of this policy.
The second part covers the future, 2003 to 2017, when India is on a fast growth track with a national government enjoying political consensus and the benefits of national economic development. During this period, the general writes, India, China and Russia [ Images ] will form a strong Asian alliance.
The third part deals with a 60-hour war with the US and how it ends with the intervention of the United Nations Security Council and other peacemakers but only after India humbles the US with the help of information technology. India unleashes a massive strike on American communication networks, throwing everything from its banking to its airline industry into a tizzy. The Indian military also successfully takes on US might.
The general is critical of America's proactive policies in the Balkans, Iraq, Afghanistan, but concedes its virtues.
"It is the most wonderful democracy," he says pointing out how the US tolerates the views of domestic critics like Noam Chomsky. But it is also a country that is "so powerful, it considers itself above international norms and treaties. It sees itself as the centre of the universe."
General Padmanabhan does not think the present Indo-US bonhomie is based on sound fundamentals. "How long will this kind of two-pronged bonhomie (America's friendship with both India and Pakistan) work?" he asked.
"There are no permanent friends, only permanent interests," he said.
General Padmanabhan's tenure as Chief of the Army Staff was marked by the conduct of Operation Parakram involving mobilizing the army along the border with Pakistan.
During the operation, India was on the verge of going to war with Pakistan in 2002.
He denied India was daunted by Pakistan's nuclear threats. It was American pressure, in the form of a visit by US Secretary of State Colin Powell, which spiked India's war plans.
The general felt an India-Pakistan nuclear conflict is a very remote possibility. Even if it did occur, he believes the international community would prevail on the two sides to end it.
Reactions: thakur_ritesh and nandu
Seriously, I long to see the day when the PRC, Russia and India can come together to form an alliance of sorts, what a day in history that would be. Hope to see it happen within my life time.
Well said general, its never wrong to call a spade a spade!
Some good imagination too thrown in by the good General. A 60 hour war.
Reactions: Singh
Yusuf said:
I think that is far fetched. I don't understand why people go overboard and make absurd claims that discredits the other parts of his honest opinions.
Solid Beast
thakur_ritesh said:
I think the U.S.'s global hegemony is a pg-13 rated movie compared to what the Chinese would do if given a similar opportunity.
there is now way we are going to have an alliance with china.for me the greatest threat is china and will reamin so for a long long time
Solid Beast said:
I would want to see the US as the Sole Superpower! I would never want it replaced by the Chinese! The Americans are nothing compared to what the Chinese will do to the World!!
I Want to see India and Russia make up a grand alliance of sorts and take on the US Hegemony. The 60 Hour war scenario is kind of hard to digest, but then this is a guy who knows what he is speaking folks!
johnee
Finally, an indian who is ready to calls spade a spade. US' democracy and tolerant only for its own citizens. For other nations, it creates hell. US consistently supports dictators, military regimes, rogue nations by giving them huge financial aids, military toys, and turning a blind eye to their nuclear prolifiration. India happens to be one of the victim country of US' policy of supporting such regimes. Its about time, these things are discussed openly in our media and other foras.
I am not able to make any sense of this 60hr war thingy. But stranger things have happened in the world, no? But what could be a scenario that would trigger an Indian attack on US? Cant think of many given the pussiliaminity of indian leadership that does not react to even pakistani threat...
bengalraider
DFI Technocrat
the general knows how to give good sound bytes that are sure to be picked up by the mass media and used to spike controversy that ultimately results in inflated sales for his book, i'll give him that.
johnee said:
My Dear Johnee, Fighting a 60 Hour war with USA is more predictable than a 60 Hour War with Pakistan! In Pakistan, the moment the war starts, we cannot be sure if some crackpot General will capture power and declare " We ve had enuff of India, Lets Nuke em!". Atleast with USA we know they wont Nuke us until we r close to destroying them! And we are no Russia for the Americans to think of the Nuclear Option during the first 60 Hours!
You dont need to blame our Leadership for this I feel. Its just a sham and you will be no different from the Pakistanis calling Zardari a Traitor. Ours is a democracy, and I am proud of all the people who ruled over us! All of them did us good. God Speed
Iamanidiot
sorry guys the US has an internal robust system democracy.A democracy which shows great vitality.Only Americans can screw themselves none else can do a dent on them
I agree that US is a more rational player than Pakistan in general but thats not my point. I am merely wondering what would make India attack US, remember India has tried to be the eternal gandhian state which is softer than soft on every other security issue from the time of independence, the only exemption was when India was ruled by Indira.
The point is not whether US would contemplate a nuke option on us in first 60hrs, but what would act as a trigger for India to act militarily against US. The reaction of US is a secondary issue, to me atleast.
Our leadership is utter sham. Sure, I understand that India is no superpower and has many pushes and pulls to contend with from all sides, but given the abject failure of our leadership time and again to protect Indian interests is surely because of their inefficiency or foolishness or both. Lets not defend the undefendable. As for Pakistanis blaming their leadership, they are right, arent they? If their leadership was better, their country could have been much better. But the mistake they make is that they choose the wrong person/institution to blame. Who constitutes the leadership of Pakistan? Not Zardari or numerous equally powerless so-called democratic predecessors of Zardari. It is the PA, their COAS to be precise, who constitues the leadership of Pakistan. The abject failure of Pakistan as nation state can definitely be blamed on the failure of the leadership(PA).
We are certainly a democracy. But we are not the best advertisement for that system. Our leaders are so many times chosen on various other considerations then simply merit. Also, most Govts in recent times are hardly voted to power by majority of the nation, instead they succeed in securing about 30-40% of votes of the small percentage of people who actually vote. Anyway, are you proud of every leader democracy has thrown up? Well, I am not. May be we deserved those leaders due to our own mistakes, but that does not mean we glorify such leaders. I dont think all of them did us good. I am ready to give a benefit of doubt to some of them and say may be they had good intentions.
I disagree with the Good General when he says
"does not think the present Indo-US bonhomie is based on sound fundamentals"
How does he explain India's relations with Israel, Palestine, Saudi Arabia and Iran ?
And then the Good General says
"The general is critical of America's proactive policies in the Balkans, Iraq, Afghanistan, but concedes its virtues.
Undoubtedly US acts as though it is at the centre of the Universe but one must concede that its virtues far outweigh its vices.
Anywhere in the world whenever a conflict or a disaster occurs, it is invariably US that is at the forefront for providing relief. No other country can claim to have been a bigger or better harbinger of international peace and stability.
At the same time, US cannot and does not seek to please everyone and one can't fault US for promoting its own interests over other's.
Now that Asia is rising in economic power the power center of the world will tilt towards it. Unfortunately a single dominant Asian power in the form of China would be detrimental to the whole world. In such a scenario we should side with a democratic nation like US to counter China or converge with other link minded countries to form a judicious alliance(a true UN) which will take up America's place and be a factor of peace, justice and stability.
hmmm You can stick to your guns, and yours guns have ammo too, and its not exhausted
There can be reasons for an Indo Us Showdown. Economic, Oil etc. Just a simulated scenario, What If USA Supports Pakistan to the hilt and ditches Indias interests and goes onto Completely Sanction Iran and starts to stop Iranian Shipments to India. India will be really forced to act out in this scenario as we are being cornered, and the US may force other GCC countries to kind of step down their commitments towards us (Maybe) and this can get us Desperate, and we will have to react wont we? Or will you see Indian Oil Ration Petrol and all?
Our leadership is utter sham. Sure, I understand that India is no superpower and has many pushes and pulls to contend with from all sides, but given the abject failure of our leadership time and again to protect Indian interests is surely because of their inefficiency or foolishness or both. Lets not defend the undefendable.
Johnee,
You generalize things just a little too much, yes we have a system which is highly corrupt, with our leaders taking a lead for whom politics is a business only to fill their personal accounts but still amongst all these black sheep remain some who are working hard for a better future for India, so its certainly not a case where all is lost case.
Reactions: ahmedsid
Nope, nope, I am not saying all is lost, infact, I hope things get better and better. But right now, as in the past, the corrupt, inefficient and lethargic outnumber the other kind. Thats why all this yabberring from me.
Lets analyse situations say in around 2015-2020 where India could engage in a military showdown with US...
Lets analyse/simulate situations say in around 2015-2020 where India could engage in a military showdown with US...
Singh said:
Singh,
a few nitpicks if I may, China's rise is potentially detrimental to us but how can anyone claim that its rise is deterimental to the world? Is it anymore detrimental than rise of any other country to the status of super-power? Will China be using nukes on another country the way the present superpower dropped atom bombs on Japan?
Also, why mention the democracy of US when you talk about aligning with it? Is internal democracy of US a factor for our aligning with them? Has their internal democracy stopped them from working with countries which are ruled directly or indirectly by military regimes and dictators? If not, then why mention democracy at all? Shouldnt it matter zilch to India whether US is a democracy or monarchy or mobocracy or whatever?
Rogue State of Pakistan:Stolen Technologies Discussions Pakistan 2 Sep 3, 2016
Rogue Madrasas in Kerala: An India TV EXPOSE Internal Security 5 Jan 12, 2018
Rogue Cops & Self Defence – your right to defend yourself against cops General Multimedia 10 Jan 18, 2017
Ashdoc's movie review---Mission impossible 5 Rogue nation Members Corner 2 Aug 12, 2015
Rogue State of Pakistan:Stolen Technologies Discussions
Rogue Madrasas in Kerala: An India TV EXPOSE
Rogue Cops & Self Defence – your right to defend yourself against cops
Ashdoc's movie review---Mission impossible 5 Rogue nation
Ayushraj


These are THE best clips for getting something to ride along with your Rhodes.
They're a nice strong nylon clip which won't scratch the tolex. It took us forever to find these so we thought it'd be cool to offer them to anyone looking to DIY a box to mount on the side of their Rhodes.
We use a 5/16 drill bit to mount them which is a tad oversized for the existing holes. But it makes for a nice tight fit with 5/16 rivets which are commonly available.


text:
/*
 Modified by Denis Zamataev. 2014
 */

#import "GGReadabilityParser.h"

@interface GGReadabilityParser ( private )
- (BOOL)checkXMLDocument:(HTMLDocument *)XML bodyElement:(HTMLElement **)theEl error:(NSError **)error;
- (HTMLElement *)findBaseLevelContent:(HTMLElement *)element error:(NSError **)error;
- (NSInteger)scoreElement:(HTMLElement *)element;
@end

@implementation GGReadabilityParser

@synthesize loadProgress;

// CHANGEME: change ivars into private properties where appropriate

- (void)dealloc
{
    URL = nil;
    baseURL = nil;
    URLResponse = nil;
    completionHandler = nil;
    errorHandler = nil;
    responseData = nil;
    URLConnection = nil;
}

- (id)initWithOptions:(GGReadabilityParserOptions)parserOptions;
{
    if( ( self = [super init] ) != nil )
    {
        options = parserOptions;
    }
    return self;
}

- (id)initWithURL:(NSURL *)aURL
          options:(GGReadabilityParserOptions)parserOptions
completionHandler:(GGReadabilityParserCompletionHandler)cHandler
     errorHandler:(GGReadabilityParserErrorHandler)eHandler
{
    if( ( self = [super init] ) != nil )
    {
        URL = aURL;
        options = parserOptions;
        completionHandler = [cHandler copy];
        errorHandler = [eHandler copy];
        responseData = [[NSMutableData alloc] init];
        [self setLoadProgress:.1];
    }
    return self;
}

- (void)cancel
{
    if( URLConnection != nil )
    {
        [URLConnection cancel];
    }
}

- (NSError *)defaultError
{
    NSString * errorString = @"Readability was unable to find any suitable content.";
    NSError * error = [NSError errorWithDomain:@"DZReadabilityErrorDomain"
                                          code:1
                                      userInfo:[NSDictionary dictionaryWithObject:errorString
                                                                           forKey:NSLocalizedDescriptionKey]];
    return error;
}

- (void)errorOut
{
    dispatch_async( dispatch_get_main_queue(), ^(void)
                   {
                       errorHandler([self defaultError]);
                   });
}

- (void)render
{
    // set up the url connection
    URLConnection = [NSURLConnection connectionWithRequest:[NSURLRequest requestWithURL:URL]
                                                  delegate:self];
    [URLConnection start];
}

#pragma mark NSURLConnectionDelegate

- (void)connection:(NSURLConnection *)connection
  didFailWithError:(NSError *)error
{
    errorHandler( error );
}

- (void)connection:(NSURLConnection *)connection
didReceiveResponse:(NSURLResponse *)response
{
    URLResponse = response;
    baseURL = [URLResponse URL];
    dataLength = [response expectedContentLength];
}

- (void)connection:(NSURLConnection *)connection
    didReceiveData:(NSData *)data
{
    [responseData appendData:data];

    // now set up the percentage
    float prog = ( fabs( (float)[responseData length] / (float)dataLength ) / 100000 ) + 0.1;
    [self setLoadProgress:( prog >= 8.5 ? 8.5 : prog )];
}

- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{
    // async please
    dispatch_async( dispatch_get_global_queue( DISPATCH_QUEUE_PRIORITY_DEFAULT, 0 ), ^(void)
                   {
                       NSString * str = nil;

                       // encodings to try
                       NSInteger encodings[4] = {
                           NSUTF8StringEncoding,
                           NSMacOSRomanStringEncoding,
                           NSASCIIStringEncoding,
                           NSUTF16StringEncoding
                       };

                       // some sites might not be UTF8, so try until nil
                       for( size_t i = 0; i < sizeof( encodings ) / sizeof( NSInteger ); i++ )
                       {
                           if( ( str = [[NSString alloc] initWithData:responseData
                                                              encoding:encodings[i]] ) != nil )
                           {
                               break;
                           }
                       }

                       // if we can't convert the data to a string, just die
                       if( str == nil )
                       {
                           [self errorOut];
                           return;
                       }

                       // render
                       [self renderWithString:str];
                   });
}

- (void)renderWithString:(NSString *)string
{

    // if the main thread, send to an async thread instead
    if( [NSThread currentThread] == [NSThread mainThread] )
    {
        dispatch_async( dispatch_get_global_queue( DISPATCH_QUEUE_PRIORITY_HIGH, 0 ), ^(void){
            [self renderWithString:string];
        });
        return;
    }

    NSError * error = nil; // we don't actually pay attention to this

    HTMLDocument * XML = nil;

    XML = [HTMLDocument documentWithString:string];

	BOOL OKToGo = [self checkXMLDocument:XML bodyElement:NULL error:&error];

    // error out if no xml
    if( ! OKToGo )
    {
        [self errorOut];
        return;
    }

    HTMLElement * element = [self processXMLDocument:XML baseURL:baseURL error:&error];

    // we're done!

    NSString * returnContents = [element innerHTML];

    // tell our handler :-)
    dispatch_async( dispatch_get_main_queue(), ^(void)
                   {
                       [self setLoadProgress:1.0];
                       if( [returnContents length] == 0 )
                       {
                           [self errorOut];
                           return;
                       }
                       completionHandler( returnContents );
                   });
}

- (BOOL)checkXMLDocument:(HTMLDocument *)XML bodyElement:(HTMLElement **)theEl error:(NSError **)error;
{
	*error = nil;

    // find the body tag
    HTMLElement * el = [XML firstNodeMatchingSelector:@"body"];

	// is there a child count?
	if( [el numberOfChildren] != 0 )
	{
		if (theEl != NULL)  *theEl = el;
		return YES;
	}

    if ((error != NULL) && (*error == nil))  *error = [self defaultError];
	return NO;
}

- (HTMLElement *)processXMLDocument:(HTMLDocument *)XML baseURL:(NSURL *)theBaseURL error:(NSError **)error;
{
    HTMLElement * theEl = nil;
    BOOL OKToGo = NO;

	OKToGo = [self checkXMLDocument:XML bodyElement:&theEl error:error];

	// error out if no xml
    if( ! OKToGo )  return nil;

    // let the fun begin
    HTMLElement * element = [self findBaseLevelContent:theEl error:error];

    if( ! element )
    {
        // we tried :-(
        *error = [self defaultError];
        return nil;
    }

    // CHANGEME: The next comment doesn't match what's going on in the code!
    // now that we have the base element to work with, let's remove all <div>s that don't have a parent of a p

    NSMutableArray * elementsToRemove = [NSMutableArray new];

    // remove divs
    if( options & GGReadabilityParserOptionRemoveDivs )
    {
        [elementsToRemove addObject:@"div"];
    }

    // remove embeds
    if( options & GGReadabilityParserOptionRemoveEmbeds )
    {
        [elementsToRemove addObject:@"embed"];
        [elementsToRemove addObject:@"object"];
    }

    // remove iframes
    if( options & GGReadabilityParserOptionRemoveIFrames )
    {
        [elementsToRemove addObject:@"iframe"];
    }

    // remove images
    if( options & GGReadabilityParserOptionRemoveImages )
    {
        [elementsToRemove addObject:@"img"];
    }

    // remove headers
    if( options & GGReadabilityParserOptionRemoveHeader )
    {
        [elementsToRemove addObject:@"h1"];
    }

    // remove more headers
    if( options & GGReadabilityParserOptionRemoveHeaders )
    {
        for( NSInteger i = 2; i <= 6; i++ )
        {
            [elementsToRemove addObject:[NSString stringWithFormat:@"h%ld", (long)i]];
        }
    }

    // remove audio
    if (options & GGReadabilityParserOptionRemoveAudio) {
        [elementsToRemove addObject:@"audio"];
    }

    // remove video
    if (options & GGReadabilityParserOptionRemoveVideo) {
        [elementsToRemove addObject:@"video"];
    }

    // remove any tags specified
    for( NSString * tagToRemove in elementsToRemove )
    {
        NSArray * removeElements = [element nodesMatchingSelector:[NSString stringWithFormat:@"%@", tagToRemove]];
//        NSArray * removeElements = [element nodesForXPath:[NSString stringWithFormat:tagNameXPath, tagToRemove]
//                                                    error:error];

//        if( removeElements == nil ) return nil;

        for( HTMLElement * removeEl in removeElements )
        {
            if (removeEl != element)
                [removeEl removeFromParentNode];
        }
    }

    // clear link lists
    if( options & GGReadabilityParserOptionClearLinkLists )
    {
        NSArray * lookFor = [NSArray arrayWithObjects:@"similar", @"bookmark", @"links", @"social", @"nav", @"comments", @"comment", @"date", @"author", @"time", @"cat", @"related", nil];

        NSArray * attributeNames = @[@"id", @"class"];

        __weak __block void (^recursive_removal_block)(HTMLElement *, NSArray *, NSArray *);
        void (^removal_block)(HTMLElement *, NSArray *, NSArray *) =
        ^void(HTMLElement *el, NSArray *toScan, NSArray *toLookFor) {

            BOOL killCondition = NO;

            for (NSString *scan in toScan) {
                NSString *found = el[scan];
                if (found && found.length > 0) {
                    for (NSString *matchAgainst in toLookFor) {
                        if ([found rangeOfString:matchAgainst].location != NSNotFound) {
                            killCondition = YES;
                            break;
                        }
                    }
                }
                if (killCondition) {
                    break;
                }
            }

            if (killCondition) {
                [el removeFromParentNode];
            }
            else {
                NSArray *children = [el childElementNodes];
                for (HTMLElement *el in children) {
                    recursive_removal_block(el, toScan, toLookFor);
                }
            }
        };
        recursive_removal_block = removal_block;

        removal_block(element, attributeNames, lookFor);
    }

    [elementsToRemove removeAllObjects];

    // do we need to fix the links or the images?
    NSMutableArray * elementsToFix = [NSMutableArray new];

    // <img> tags
    if( options & GGReadabilityParserOptionFixImages )
    {
        [elementsToFix addObject:@{@"tagName" : @"img", @"attributeName" : @"src"}];
    }

    // <a> tags
    if( options & GGReadabilityParserOptionFixLinks )
    {
        [elementsToFix addObject:@{@"tagName" : @"a", @"attributeName" : @"href"}];
    }

    NSURL *fixUrl = baseURL ? baseURL : URL;
    NSString * fixUrlString = [NSString stringWithFormat:@"%@://%@",[fixUrl scheme],[fixUrl host]];

    for( NSDictionary * dict in elementsToFix )
    {
        // grab the elements
        NSString *tagName = [dict objectForKey:@"tagName"];
        NSArray * els = [element nodesMatchingSelector:[NSString stringWithFormat: @"%@", tagName]];
//        NSArray * els = [element nodesForXPath:[NSString stringWithFormat:@"//%@",[dict objectForKey:@"tagName"]]
//                                         error:&error];
        for( HTMLElement * fixEl in els )
        {
            NSString *attributeName = [dict objectForKey:@"attributeName"];
            NSString *attribute = fixEl[attributeName];
            if ( [attribute length] > 1 &&
                [[attribute substringToIndex:2] isEqualToString:@"//"] )
            {
                // needs fixing
                NSString * newAttributeString = [NSString stringWithFormat:@"%@:%@",[fixUrl scheme],attribute];
                fixEl[attributeName] = newAttributeString;
            }
            else if( [attribute length] != 0 &&
                    [[attribute substringToIndex:1] isEqualToString:@"/"] )
            {
                // needs fixing
                NSString * newAttributeString = [NSString stringWithFormat:@"%@%@",fixUrlString, attribute];
                fixEl[attributeName] = newAttributeString;
            }
        }
    }

    // clearing attributes
    NSMutableArray *attributesToClear = [NSMutableArray new];

    // remove any styles
    if( options & GGReadabilityParserOptionClearStyles )
    {
        [attributesToClear addObjectsFromArray:@[ @"style" ]];
    }

    // remove classes and id's
    if (options & GGReadabilityParserOptionClearClassesAndIds) {
        [attributesToClear addObjectsFromArray:@[ @"class", @"id" ]];
    }

    if ([attributesToClear count] > 0) {
        NSArray *attributes = [NSArray arrayWithArray:attributesToClear];
        __weak __block void (^recursive_clear_block)(HTMLElement *, NSArray *);
        void (^clear_block)(HTMLElement *, NSArray *) = ^void(HTMLElement *el, NSArray *attributes) {
            NSArray *children = [el childElementNodes];
            for (HTMLElement *childEl in children) {
                recursive_clear_block(childEl, attributes);
            }
            for (NSString *attribute in attributes) {
                [el removeAttributeWithName:attribute];
            }
        };
        recursive_clear_block = clear_block;
        clear_block(element, attributes);
    }

    // download images
    if ( options & GGReadabilityParserOptionDownloadImages )
    {
        // grab images
        NSArray * els = [element nodesMatchingSelector:@"img"];
//        NSArray * els = [element nodesForXPath:@"//img" error:&error];

        for ( HTMLElement * fixEl in els ) {
            NSString * attribute = fixEl[@"src"];
            NSURL * url = [NSURL URLWithString:attribute];
            if ( url ) {
                // download image
                NSError *downloadError = nil;

                NSData * imageData = [NSData dataWithContentsOfURL:url options:0 error:&downloadError];
                if (downloadError) {
                    NSLog(@"Error downloading image: %@", downloadError);
                }

                if (imageData) {
#if TARGET_OS_IPHONE || TARGET_IPHONE_SIMULATOR
                    UIImage *image = [UIImage imageWithData:imageData];
                    if (image) {
                        NSData *imageRepresentation = UIImageJPEGRepresentation(image, 0.0f);
                        if (imageRepresentation) {
                            NSString *base64EncodedImage = [imageRepresentation base64EncodedStringWithOptions:NSDataBase64Encoding64CharacterLineLength];
                            if (base64EncodedImage) {
                                NSString *dataSrc = [@"data:image/jpeg;base64," stringByAppendingString:base64EncodedImage];
                                fixEl[@"src"] = dataSrc;
                            }
                        }
                    }
#elif TARGET_OS_MAC
                    NSImage *image = [[NSImage alloc] initWithData:imageData];
                    if (image) {
                        [image lockFocus];
                        NSBitmapImageRep *bitmapRep = [[NSBitmapImageRep alloc] initWithFocusedViewRect:NSMakeRect(0, 0, image.size.width, image.size.height)];
                        [image unlockFocus];
                        NSData *pngRepresentation = [bitmapRep representationUsingType:NSPNGFileType properties:Nil];
                        if (pngRepresentation) {
                            NSString *base64EncodedImage = [pngRepresentation base64EncodedStringWithOptions:NSDataBase64Encoding64CharacterLineLength];
                            if (base64EncodedImage) {
                                NSString *dataSrc = [@"data:image/png;base64," stringByAppendingString:base64EncodedImage];
                                fixEl[@"src"] = dataSrc;
                            }
                        }
                    }
#endif

                }

            }
        }
    }

    // remove image attributes
    if ( options & GGReadabilityParserOptionRemoveImageWidthAndHeightAttributes )
    {
        // grab images
        NSArray * els = [element nodesMatchingSelector:@"img"];
//        NSArray * els = [element nodesForXPath:@"//img" error:&error];

        for ( HTMLElement * fixEl in els ) {
            [fixEl removeAttributeWithName:@"width"];
            [fixEl removeAttributeWithName:@"height"];
        }
    }

    // remove a hrefs
    if ( options & GGReadabilityParserOptionClearHRefs )
    {
        // grab a tags
        NSArray * els = [element nodesMatchingSelector:@"a"];

        for ( HTMLElement * fixEl in els ) {
            [fixEl removeAttributeWithName:@"href"];
        }
    }

	return element;
}

// CHANGEME: rename variables named elem…
- (HTMLElement *)findBaseLevelContent:(HTMLElement *)element error:(NSError **)error;
{
    // generally speaking, we hope that the content is within the <p> tags

    // clean up the element
    NSArray * toRemove = [NSArray arrayWithObjects:@"noscript", @"script", @"form", nil];
    for( NSString * removeTag in toRemove )
    {
        // find them all
        NSArray * removeArray = [element nodesMatchingSelector:[NSString stringWithFormat:@"%@", removeTag]];
//        NSArray * removeArray = [element nodesForXPath:[NSString stringWithFormat:tagNameXPath, removeTag]
//                                                 error:error];
        for( HTMLElement * removeElement in removeArray )
        {
            [removeElement removeFromParentNode];
        }
    }

    // basic instant wins
    NSArray * instantWins = [NSArray arrayWithObjects:@"article-body", nil];

    NSUInteger pCount = 0;
    HTMLElement * foundElement = nil;

    for( NSString * instantWinName in instantWins )
    {
        NSArray *nodesOfClass = [element nodesMatchingSelector:[NSString stringWithFormat:@". %@", instantWinName]];
        NSArray *nodesOfId = [element nodesMatchingSelector:[NSString stringWithFormat:@"# %@", instantWinName]];
        NSArray *nodes = [NSArray arrayWithArray:[[[NSMutableArray new]
                                                   arrayByAddingObjectsFromArray:nodesOfClass]
                                                  arrayByAddingObjectsFromArray:nodesOfId]];
//        NSArray * nodes = [element nodesForXPath:[NSString stringWithFormat:@".//*[contains(@class,'%@') or contains(@id,'%@')]", instantWinName, instantWinName]
//                                           error:error];
        if( [nodes count] != 0 )
        {
            for( HTMLElement * winElement in nodes )
            {
                NSArray *pNodes = [winElement nodesMatchingSelector:@"p"];
                NSUInteger count = pNodes.count;
//                NSUInteger count = [[winElement nodesForXPath:@".//p"
//                                                        error:error] count];
                if( count > pCount )
                {
                    pCount = count;
                    foundElement = winElement;
                }
            }
        }
    }

    // we found a winning match!
    if( foundElement != nil )
    {
        return foundElement;
    }

    NSArray *tags = [element nodesMatchingSelector:@"p"];
//    NSArray * tags = [element nodesForXPath:@".//p"
//                                      error:error];

    NSUInteger currentCount = 0;
    HTMLElement * tagParent = nil;
    for( HTMLElement * tag in tags )
    {
        HTMLElement * parent = [tag parentElement]; // the parent always is an element
        if (parent) {
            // count how many p tags are inside the parent
            NSArray *pNodes = [parent nodesMatchingSelector:@"p"];
            NSUInteger parentTagsCount = pNodes.count;
//            NSUInteger parentTagsCount = [[parent nodesForXPath:@"p"
//                                                          error:error] count];
            if( parentTagsCount > currentCount )
            {
                currentCount = parentTagsCount;
                tagParent = parent;
            }
        }
    }

    // old school br tags ( people still do this? :-( )
    BOOL usingBR = NO;
    if( tagParent == nil )
    {
        // try old school br tags
        currentCount = 0;
        usingBR = YES;
        NSArray *tags = [element nodesMatchingSelector:@"br"];
//        tags = [element nodesForXPath:@".//br"
//                                error:error];
        for( HTMLElement * tag in tags )
        {
            HTMLElement * parent = [tag parentElement];
            if (parent) {
                if (tagParent != parent) {
                    // count how many br tags there are
                    NSArray *brNodes = [parent nodesMatchingSelector:@"br"];
                    NSUInteger parentTagsCount = brNodes.count;
//                    NSUInteger parentTagsCount = [[parent nodesForXPath:@"br"
//                                                                  error:error] count];
                    NSInteger score = [self scoreElement:parent];
                    parentTagsCount += score;
                    if( parentTagsCount > currentCount )
                    {
                        currentCount = parentTagsCount;
                        tagParent = parent;
                    }
                }
            }
        }
    }

    // current br count
    if( usingBR && tagParent != nil )
    {
        NSUInteger textChildren = 0;
        NSUInteger brCount = 0;

        NSArray *children = [tagParent childElementNodes];
        for( HTMLElement * el in children )
        {
            if( [[[el tagName] lowercaseString] isEqualToString:@"p"] )
            {
                textChildren++;
            } else if ( [[[el tagName] lowercaseString] isEqualToString:@"br"] ) {
                brCount++;
            }
        }

        // whats the ratio?
        if( textChildren < ( brCount / 2 ) )
        {
            tagParent = nil;
        } else {
            // remove any br tags directly next to each other
            NSArray * brs = [tagParent nodesMatchingSelector:@"br + br"];
//            NSArray * brs = [tagParent nodesForXPath:@".//br[preceding-sibling::br[1]]"
//                                               error:error];
            for( HTMLElement * br in brs )
            {
                [br removeFromParentNode];
            }
        }

    }

    // if nothing is found, let's try something else…
    if( tagParent == nil )
    {

        // now we're going to try and find the content, because either they don't use <p> tags or it's just horrible markup
        NSMutableArray *scores = [NSMutableArray new];

        __weak __block void (^recursive_score_block)(HTMLElement *, GGReadabilityParser *, NSMutableArray *);
        void (^score_block)(HTMLElement *, GGReadabilityParser *, NSMutableArray *) =
        ^void(HTMLElement *el, GGReadabilityParser *scorer, NSMutableArray *scoresTable) {
            NSArray *children = [el childElementNodes];
            for (HTMLElement *child in children) {
                recursive_score_block(child, scorer, scoresTable);
            }
            NSInteger score = [scorer scoreElement:el];
            if (score > 0)
                [scoresTable addObject:@{@"element":el,@"score":@(score)}];
        };
        recursive_score_block = score_block;

        score_block(element, self, scores);

        HTMLElement *winner = nil;
        NSInteger bestScore = 0;

        for (NSDictionary *scoreResult in scores) {
            NSInteger score = [scoreResult[@"score"] integerValue];
            if (score > bestScore) {
                bestScore = score;
                winner = scoreResult[@"element"];
            }
        }

        if (winner) {
            tagParent = winner;
        }
        else {
            NSLog(@"Scoring doesn't work today");
        }

    }

    return tagParent;
}

- (NSInteger)scoreElement:(HTMLElement *)element
{
    // these are key words that will probably be inside the class or id of the element that contains the content
    // CHANGEME: move the scores array into an ivar
    NSArray * scores = [NSArray arrayWithObjects:@"post", @"entry", @"content", @"text", @"article", @"story", @"blog", nil];
    NSInteger score = 0;
    for( NSString * positiveWord in scores )
    {
        score += [[[element tagName] lowercaseString] isEqualToString:positiveWord] ? 150 : 0;

        // grab the class names and id names
        // CHANGEME: We could use -cssNamesForAttributeWithName: here
        NSArray * classNames = [element[@"class"] componentsSeparatedByString:@" "];
        NSArray * idNames = [element[@"id"] componentsSeparatedByString:@" "];

        // match against the positive class
        for( NSString * className in classNames )
        {
            score += [className rangeOfString:positiveWord].length != 0 ? 20 : 0;
        }

        // match against the positive id
        for( NSString * idName in idNames )
        {
            score += [idName rangeOfString:positiveWord].length != 0 ? 30 : 0;
        }
    }
    return score;
}

@end


For shipping outside of the USA please contact us if you encounter shipping issues while checking out. Send us an email at greyhavenmedia@gmail.com with your order and address and we can give you a better price on International Shipping.
Please Contact us before using this non PayPal option.


availability and use of big data and social analytics to compliment country business decision and model.
At the same time, in commercial banking, the disintermediation effects have driven the need for banks to focus more on capturing a greater share of the trade flow value chain of corporate customers. In order to improve yields, commercial banks are competing more intensively on SME credits where credit assessment techniques are still evolving in a fairly benign credit environment but is increasingly influenced by economic conditions not only in China, but the major trading blocks.
As the largest professional services firm in mainland China and Hong Kong, our strategy is to bring significant business advantage to our clients by leveraging our comprehensive knowledge of key industry issues and best practices. Our PwC professionals operate in global, multi-disciplinary teams, which are integrated across industry sectors, geographies and functional skills to deliver tailored solutions based upon specific territory insight and business knowledge.


at half time attacked Karonga United players and officials suspecting they had 'Juju'.
The suspended supporters are Matthews Gunde, Kasiya Whayo, Kelly Ngozo, Rashid Useni, Precious Amos, Judah Anderson, Wisdom Shaibu, Shaibu Saidi, Dyton Bello and Bruno Gama.
According to a statement released by FAM, the decision to suspend the supporters was made upon carrying out an examination on match reports submitted by the Match Coordinator, Stewards, Police and other relevant officials.
Challenge Cup Rules and Regulations.
In summary, the supporters 'incited Vioence' and 'brought the game of football into disrepute' which is contrary to Articles 24.18 and 24.21 of the 2017 FISD Challenge Cup Rules and Regulations.
Apart from banning the supporters, Bullets as a club has been handed a fine i for K2.5 Million suspended .
"The FAM Competitions Committee having examined the reports from Match Coordinator, Stewards and Police resolved that NMC Big Bullets fined K2.5 Million which has been suspended for a period of two years" reads part of the verdict made available to Nyasa Times.
This means that the Club players, supporters or players must not find themselves in similar acts.
"Incase of breach of the suspended sentence, the K2.5 Million will immediately become payable in to any other fines which may be levied with any new charge" reads the verdict.
The ban is effective 1st November 2017.
Meanwhile, FAM has advised Bullets FC, Super League of Malawi (Sulom) and Malawi Police Services to ensure that there is compliance of the bans.
agalu fc,mwawalanga kothelatu.koma popeza galu ndi galu mmuona game ya mawa pacivo akamakatsalila zichitikaso zomwezi.kukamba mwachilungamo Karonga United ikanawatulutsa mu FIsd koma chifukwa chakuti anawabalalitsa ndi m`chitidwe wawo waugaluwu ndipamene ana chotsa mugamu anaaja.shame on these dogs.


text:
Q: ad hoc installation error Trying to install an app beta. The mobile provision file installs fine on my 64 bit Vista machine. The app itself appears to install fine and the icon appears in iTunes, but when I sync I get this error:
The application 'xxxxxx' was not installed on the iPhone 'Alli's iPhone' because an unknown error occurred (0xE8008015).
Anyone have any clues?

A: some information at http://blog.redfin.com/devblog/2009/09/installing_beta_builds_on_iphone.html
and google has lots of hits:

redpajama_set_name: RedPajamaStackExchange


text:
Chasing the Light
A Photography Blog by Frank Binder
Lights, Camera…Action!
A few weeks ago I attended a lighting class in New York City sponsored by Nikon and Popular Photography magazine. Over the years I gained lots of experience shooting landscape and wildlife images, but had virtually no experience using speedlights or other lighting mechanisms in producing images. The class was led by three world-class photographers whose names I had seen many times in the photo magazines so I expected I would learn something useful, but past that I had no idea what to expect.
It turns out that the class consisted of photographing models from one of the worlds most prestigious modeling agencies, Elite Model Management who provided some of the most beautiful/handsome women and men in New York City
Like many folks, I suppose, I carried firmly embedded stereotypes on the personalities and lives of Hi-Fashion models. And it turns out some were dead on and others not so much. For the most part the women were all impossibly trim, tall and well….beautiful.
Notice the backlighting on Richelle's hair which is caused by a speedlight directly in back of her.
Denis and Natasia
This was taken at Roosevelt Island in the middle of the East River with the NYC skyline in the background. Our teachers were very good and amazed us with how much equipment they carried with them on a professional shoot. Each of them had a very large trunk filled with an enormous amount of lighting equipment.
Surprisingly, many of the models were either Russian or from one of the USSR's former satellite countries. Rasul was born in Tajikistan.
Most of the models have dual career tracks…modeling and trying to break into the acting profession through acting schools and their modeling activities. Two weeks after I photographed Andy, I saw him on Comedy Central's Daily Show as a fake "regular citizen" in a skit.
Rasul is taking acting classes and was cast in the next Spiderman movie. In the film, which is being released early 2014, he plays one of Peter Parkers classmates. He proudly told me it was a speaking part!
While looking straight up at her, I suppressed my desire to ask Key if she had ever played basketball. Looking very striking, she strolled into the shoot wearing 3″ heels which put her at about 6′ 5″ tall. This was shot in a very trendy club and we asked her to emulate a blues singer ala Sara Vaughn.
The models who had previous experience working with still photographers separated themselves from the others quickly. With portrait photography being a new experience for most of us, we welcomed the subjects who were able to strike an endless number of poses and attitudes without us giving them specific instructions.
Natashia
The inexperienced models waited for us to provide posing instructions which most of us were incapable of doing in any meaningful way, which led to some really inept and bumbling moments between photographer and subject.
Richelle was among the most accomplished models. She could switch from giggly schoolgirl mode to vampy vixen mode instantaneously with 25 striking poses for each character. Seeing the fluidity with which good models can move in and out of character was remarkable and I developed a healthy respect for their skills.
Thank you for reading my latest blog entry. If you thought it was worthy of your time and you hadn't already done so, please take the opportunity to subscribe by clicking the "Follow" button on the right side of the page. You will receive an email asking you to confirm your subscription. Also, you can share this blog entry on your Facebook page by clicking the share button below or you can email it to folks by clicking on the "Email" button.
Published August 30, 2013 By Frank Binder
Categorized as models, New York City, Portrait Lighting, Portraits Tagged Key Crum, Richelle Oslinker