text:
ICCO report shows increase in Ghana and Ivory Coast cocoa crops, but key export challenges persist
Cocoa farming in Ghana. Pic: Shutterstock
Related core topics: Business news, Cocoa & chocolate, Ingredients, Processing, Regulatory, Sustainability
Related organisations: ICCO
Related regions: Ghana, Ivory Coast
Latest figures from the International Cocoa Organisation (ICCO) have revealed crop production is on an upward curve, with 1.346 million tonnes of beans arriving at its ports, up 11.6% per cent year-on-year, yet key pressures remain in the wake of industrial action impacting exports, reports Neill Barston.
As the group explained, despite the increased yield, both countries, which account for the major bulk of the sector supplying the confectionery industry, have experienced key challenges against the backdrop of the cost of living crisis, and inflated costs of vital fertilisers.
Halfway through the 2022/23 main crop season, the ICCO noted that Ivory Coast's exports of cocoa beans during the first two months of the 2022/23 cocoa year were undercut by 47% year-over-year from 186,842 tonnes to 99,950 tonnes. This was attributed to a carriers' strike action at the port of San Pedro in November 2022.
Meanwhile, there were encouraging signs in Ghana, with purchases of graded and sealed cocoa beans for the 2022/23 crop year reached 350,000 tonnes as at 15 December 2022, up by a notable 76% increase compared to 199,000 tonnes purchased at the corresponding period of the previous season. However, as the ICCO added, while the arrivals and purchases from the top producers show ample supplies, as at the time of writing the absence of rain raised concerns over the possibility of the dry weather having an adverse effect on the outlook for the April – September mid-crop.
In terms of cocoa pricing, both the London and New York markets saw improved year-on-year prices, but set against a backdrop of wider inflation faced by agricultural workers, major concerns remain for the poor level of payment for farmers – whose pay in the region typically is less than $1 a day, well below UN poverty definitions.
As the ICCO noted, at the end of 2022, the annual average price of short-range contracts in London had increased by 7% compared to the previous calendar year as seen in Table. However, during the same period in New York, the average of the first position contract prices weakened by 1% year-on-year. Furthermore, the annual average of the US-denominated ICCO daily price stood at US$2,368 per tonne, down by 2% compared to the average price of the previous year. On the contrary, the average of the Euro-denominated prices increased by 9% year-over-year, attaining €2,249 per tonne in 2022.


text:
Q: OpenGL compute shader buffer allocation fails I am trying to use a buffer in a compute shader like this:
layout (binding = 1, std430) writeonly buffer bl1
{
    uint data[gl_WorkGroupSize.x * gl_NumWorkGroups.x * gl_NumWorkGroups.y];
};

but I get the following error (because of using gl_NumWorkGroups for the size):
Array size must be a constant integer expression

How can I work around this?

A: Stop putting in a length at all:
layout (binding = 1, std430) writeonly buffer bl1
{
    uint data[];
};

This is a feature unique to SSBOs. And you can only have one unsized array in an SSBO, and it must be the last member in the interface block. The size of data will be computed based on the size of the buffer object range you bind to that binding point. So if you bind 32KB of buffer space, you will get 8K of items (the size of a uint is 4 bytes).
At runtime, your shader can use gl_WorkGroupSize.x * gl_NumWorkGroups.x * gl_NumWorkGroups.y to compute the length of data. Alternatively, just use data.length() to get the length of the buffer that the user gave you. Alternatively... you don't need to explicitly know the length, depending on how you use it.
As long as your OpenGL buffer binding code uses a buffer with enough memory for your dispatch count and work group size, you're fine.

redpajama_set_name: RedPajamaStackExchange


I came across a blog, Books in Brief, that publicizes books that deal with the Vietnam War and Vietnam veterans only. If you like memoirs, this is a good place to get suggestions. Most library systems can get you these books via Interlibrary Loan so you can read them freely. I would love to see ASKNOD reviewed on the site too.
This entry was posted in ASKNOD BOOK, Guest authors, NEW BOOK and tagged Agent Orange, asknod.org, asknod@wordpress.com, Helping Veterans, VA claims, Veterans claims help, Vietnam Veterans Claims Help.. Bookmark the permalink.


text:
The Left Wing Redneck
Two wrongs do not make a right, but three rights can make a left!
Capitalism's Useful Idiots
Hogarth's busted poet - some things never change
So back in the late 18th early 19th century Mr. Moneybags buys a factory full of machines, hires workers, and by applying the latest in management techniques and technology increases production, lowers prices, increases profits, and transforms dispossessed rural laborers into dispossessed urban factory workers.
The critics say that Mr. Moneybags' profits were stolen from his workers, cheerleaders that Mr. Moneybags deserves his profits for being clever and for providing the rest of us, (who don't work in his factory), with more, lower priced, and better products, and even a better life for his workers, when compared to their former lives as mostly unemployed and starving farm labor.
Because we live in a fair minded quasi democratic society, the workers vs capitalists conflict ended with an armistice, legislation guaranteeing reasonable treatment for workers, and capitalists having to suck it up, until they discovered the benefits of free trade and the new frontier of emerging labor markets in emerging nations where fair mindedness and quasi democracy are still waiting in the wings.
So goes the story of capitalism, Marx predicted that capitalism would implode due to its inbuilt tendency to consume itself in the race to the bottom. What Marx failed to anticipate was another innate tendency, identified by the unknown economist and student of human nature who first said "there's a sucker born every minute".
Imagine if you will, an industry where nearly all the workers work for free and are happy to do so. This industry really exists, the North American Industry Classification System (used by the departments of industry of Canada, USA and Mexico) calls it the arts, entertainment and recreation industry.
Even though we banished child labor one hundred years ago, if I look out of my backyard, I will see parents dragging their kids into a hockey arena as early as 4 AM. Children as young 6 years old are then brutalized by fat middle aged men, who force them to endlessly skate in circles and assault their peers with sticks. This is all in the hope that some day one of these little tykes will be spotted by a team scout, and even more hopefully be enslaved by no later than age 16 for a short career of shuttling from one backwater to another in the yet vainer hope that they will achieve fame and fortune as one of a few hundred professional players.
Across the road from the hockey rink is a gymnastic club with a parking lot full of parents, where presumably the aspiring hockey player's sisters may acquire the acrobatic skills to be a competent pole dancer by the time she is 19.
Teenagers who sneer at cleaning up their rooms, never mind assisting with humble household chores like grass cutting or snow shoveling willingly spend hours and days in unheated unplumbed garages, with equipment capable of generating more noise than an airport full of 747s in order to take gigs for a hundred or so bucks split between the band to perform in dives that should have been condemned twenty years ago.
And then there are the poets, there are more people writing poetry than reading it, observed the late George Carlin, whose wannabees seek humiliation without pay at comedy clubs found in the best strip malls everywhere.
The internet has made it possible for any loser to achieve their 15 minutes of viral fame in provided they do something outrageous enough, or even better, manage to kill themselves in the attempt, accompanied by clicks that will make someone else rich. Bloggers, tweeters, you tube auteurs, facebookers, citizen journalists, amateur photographers, and writers fill the internet with an ocean of content for free, accompanied by appropriately targeted ads paid for by those who sell stuff, to those who sell ads and space for them.
Marx would have been astounded, or not. Perhaps he would have been too busy posting, tweeting or making videos on You Tube to notice.
Why vegans are idiots
tks Vegans are vegans because they say it is cruel to eat animals but OK to eat plants. Of all the forms of life on earth, only plants and their prokaryote cousins (lookitup) have the ability to capture energy from the environment, such as sunlight, and convert it into food. Not only that, but plants are also the primary means of carbon capture, yes all plants are busily removing deadly global warming prime suspect CO2 from the atmosphere. All the other lifeforms, including the cute little cows, sheep, piggies, rabbits etc., that Vegans don't want to eat are parasites, too lazy to create their own food, instead they just munch up the hard working members of the vegetable kingdom, not to mention polluting the atmosphere with CO2 and other greenhouse gases. Now where is the justice in that? If somebody broke into your fridge and scarfed all your food, you would call the cops. But this is exactly what the herbivorous species are doing to plants, not to mention all those Vegans.
The Irrationality of Metric
Officially Canada is 100% metric, but in reality our heights are in feet, we weigh ourselves in pounds, but we buy our steaks in kilograms and put liters in our gas tanks. There are several good reasons to use imperial measure and some bad ones. The best reason for imperial is that we share many products with our imperialist cousins, the excitable states. Most of the stuff we buy, food weights or volumes, cooking temperatures, building products are manufactured, measured and sold in feet, inches, gallons, quarts, liquid ounces or in Canada as awkward conversions to metric no one uses, such as a 3.78 liter one US gallon can of paint. A bad reason to use imperial might be old fartism, of which I could be guilty. When I learned to measure it was in imperial, but stick with me a for a moment. When the 18th century enlightenment era philosophes (bored French rich people) contemplated ridding society of archaic measuring standards, such as the length of some long dead king's f
Who is right about climate; a guide for non climate scientists
This was published a year ago, but went back to draft for some reason, so here we go again. The red neck remains not entirely convinced that one side or the other was right about climate. What swings me to the agnostic side are things like the University of Alberta's apparent firing (officially she resigned) of their Vice President of Community Relations for daring to suggest that global warming might not be all bad. To put this into context, the University of Alberta is located in Edmonton. Edmonton has the dubious distinction of being the farthest north city of more or less one million population in the western hemisphere. Winters here are long and cold, anyone who can flees south for winter, including many of our birds. Despite all this, Edmontonians in the public eye are supposed to profess that even here warming will be catastrophic or risk their career and reputation. Alberta also has oil and gas, lots of it, including the infamous tar sands. Alberta has long been

redpajama_set_name: RedPajamaCommonCrawl


Bill Kinzer put his Wachesaw East condominium on the market and waited two months - no bites.
Then, the bachelor called in a professional home stager who told him to take down his Salvador Dali masterpiece of a skeleton riding a horse, his antique tool collection and some novelties stacked on a baker's rack.
She added some plush towels, flowers, changed the bedspread and moved the furniture.
Kinzer got two offers within two weeks.
That wasn't the case with Kinzer's home, however. His abode needed a woman's touch, so Rincione added curtains, flowers, a luxury bedspread and colorful pillows to a brown couch.
A home shopper liked some of the art that Rincione brought in so much, they asked if it could be part of the deal.
Stagers say it's often easier for them - an unbiased third party - to tell a homeowner to pack up a Buddha collection or tear down that pink and blue wallpaper.
The price for the service ranges.
Depending on who you use, a home staging can cost between $100 and $1,500. Stagers work differently, too. Some prefer to stage a home while the owners are away, and others prefer to give the owners a list of "must changes" and help them implement it.
But all follow the key rules of Barb Schwarz, president and CEO of Staged Homes, which "invented" home staging and offers classes for stagers to become accredited staging professionals.
Three items clustered in an area and no more.
"If you can smell it, you can't sell it," Schwarz said.
Stagedhomes.com says its survey of 200 homes show that staged homes sold 50 percent faster and for 6.9 percent more money.
Tom Maeser, president of the Fortune Academy of Real Estate, agreed that staged homes sell faster and for a better price - as long as the home was priced correctly in the market to begin with.
"Especially in today's market where you have a lot of listings, it doesn't take a lot for someone to walk into a home and either fall in love with it or fall in hate with it," Maeser said.
That was the reason Kinzer turned to home staging.
He knew the market had changed - and an insurance scare had folks leery of buying condos.
"A year ago, you could put your place on the market and you would have had two buyers knocking on your door whether you had newspapers scattered all over your floor," he said.
He and his agent focused on bringing in local buyers looking for a permanent home.
Developers have been doing home stagings in their model homes for years.
No one knows that better than Renee Pratta, who worked for three years for D.R. Horton in new home sales before starting a home staging company, Renewed Rooms.
She said most customers can't visualize where their furniture would go in a new home, so builders bring in furniture and decorations.
When a home sat too long, Pratta said they'd add furniture and the place would sell.
The idea is catching on so much with Realtors that Pratta will be teaching home staging classes for agents starting in February.
And while it's a new concept to many, Pratta says home staging is here to stay.
"It's a new field. There's a lot of potential for growth. Just like virtual tours were unusual a few years ago and now they're the norm. I think that's where staging is going," she said.


View thet beach party scene at the Jersey Shore at Martell's Tiki Bar in Pt. Pleaseant, NJ. 30 second updates.
Live images of surfers in New Jersey. Updates every minute.
View from Ocean View Towers of New Smyrna Beach, Florida. 30 second updates.
Webcam's on Beaches in Portugal for sea lovers. Cameras update every 10 minutes.
From the Old Coast Guard Station tower, see views of 24th Street Park, the Boardwalk and ocean at Virginia Beach.
Webcams at windsurf spots around Lake Garda, Torbole sul Garda, Italy. 30 minute updates.
View of the Ostia Sea in Rome, Italy.
Streaming view from the Pacific Tsunami Museum of Hilo Bay, Hawaii.
Live video from the of Panama City Beach, Florida from the Beach Rock Cafe at the Bay County Pier.
Live beach action at Pawleys Pier on the Atlantic Ocean at Pawleys Island, South Carolina. Live streaming images.
Live From Santa Monica Bay Pier in California. Updates every 10 minutes.
View of Beach of Pitangueiras in the city of Guarujá in São Paulo state, Brazil.
A view of the poolbar at Poppies Bar in Bali, Indonesia. 5 minute updates.
"View of the bay of Prerow, one of the best and most beautiful beaches of Europe, located on a peninsula that is a part of the German National Park ""Vorpommersche Boddenlandschaft""."
View of the beach and long boardwalk at Point Lonsdale and Queenscliff, Australia.


Alverno Heights Academy encourages its students to reach out – to explore new horizons, to get involved in global concerns, and to help shape ideas and technologies of the future. Nearly all Alverno students participate in some form of student activities. Student government plays an important role in shaping the school calendar and channeling the efforts of classes. Organizations and clubs are plentiful, providing something for everyone; school and community service, academic competitions, cultural interests, spirit building, publications, and the development of special talents.
looking for ways to get more INVOLVED with your favorite subject?
National Honor Society members offer tutoring opportunities to students on campus who may need some extra help in their studies. If you feel in need of some assistance, click here to fill out the application form to sign up for NHS tutoring.


Ready to Find a Home in Atlanta? What Are You Looking For?
Ready to Find a Home in Atlanta? What Are You Really Looking For?
The home buying process can seem overwhelming…there are so many things to consider and sometimes it's hard to know where to even start. To help you stay focused and get the most out of your search process, it's a good idea to start with a simple list. Identify your "must haves" so you know your priorities. Buying a home is an emotional process and sometimes it's easy to fall in love with a particular feature or style, forgetting about what you originally decided you needed to suit your lifestyle. Your "must haves" may include things like number of bedrooms and bathrooms, good natural light, a particular neighborhood, or a large backyard.
Talk to family and friends and learn from their experiences – what do they love about their home, and what would they change if they could? Thinking through what you want first makes it much easier once you start your search. Your list can help you prioritize what you really want and need, while staying within your budget.
Ready to start searching? Let us do the work for you. We can search, filter, and send you properties that most closely match your specific housing needs.
Atlanta's Beltline is slated to take another step forward, with the groundbreaking of the Northwest Connector Trail in Atlanta Memorial Park scheduled for next week. The new Beltline trail will link to an existing network of paths in Atlanta Memorial Park and along Northside Drive, including the Northside Trail Spur at Tanyard Creek Park. Plans call for the trail, which are part of ongoing upgrades at the park which includes the Bobby Jones Golf Course and the Bitsy Grant Tennis Center, to run along the northern edge of Peachtree Creek, alongside Woodward Way. A new footbridge crossing the creek will tie it into the rest of the park and once all the trails are complete the network will add more than three miles of additional pathways to the completed portions of the Beltline.


text:
Heavy sentence for abalone poacher
The Eastern Cape Directorate for Priority Crime Investigation (Hawks) has lauded the 20-year sentence the Port Elizabeth High Court handed down to convicted abalone poacher Morné Blignaut (48) on Wednesday.
In June 2016, Blignaut was arrested and charged on two counts of racketeering and one count for operating a fishing establishment without a permit. He was arrested with Frederick Nance (22), William Nance (55), Petrus Smith (34), Jacobus Naumann (37) and Marshelle Blignaut (42) by the Hawks' Serious Organised Crime Investigation.
Between 2014 and 2016, the Hawks conducted a project driven investigation, into an abalone syndicate.
"Blignaut and his accomplices were the subject of this project driven investigation dubbed 'Little Rhino'. Investigations established that from the July 2013 to August 2014, the syndicate made a total of R30 million from their criminal activities," said Eastern Cape police spokesperson Captain Anelisa Feni.
Frederick and Nance, Smith, Naumann and Marshelle Blignaut pleaded guilty before the Port Elizabeth High court on the 22 August 2018. They are expected to be sentenced by the Port Elizabeth High Court on Thursday.
Welcoming the sentence, acting Eastern Cape Hawks head Brigadier Gopz Govender, warned that the plundering of abalone would not be taken lightly.
"This sentence should inform would be poachers that they are likely to face a similar imprisonment term after we arrest them," he said. – SAnews.gov.za


text:
Q: Issue displaying data using custom array adapter I am trying to create a basic List view application.
I had it working fine with the default system array adapter. I then tried to modify it to allow me to use a custom adapter. Unfortunately I have run into a problem.
When I run the application I get no runtime errors, rather I just get a black screen where the list should be displayed which makes me think that perhaps it is displaying a list but for some reason the adapter is not finding the data....
Anyways, Below is my List activity:
    package com.example.waitronproto2;

    import java.util.ArrayList;
    import java.util.List;

    import android.app.ListActivity;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.ArrayAdapter;
    import android.widget.ListView;
    import android.widget.Toast;

    public class AppetizersActivity extends ListActivity{

            //Instance Variables
            //Array to hold menu appetizers - In future this will be pulled from web server
            private List<MenuItem> appetizers;
            private MenuItemArrayAdapter appetizersAdapter;

            @Override
            public void onCreate(Bundle savedInstanceState){
                super.onCreate(savedInstanceState);
                //Garbage collection
                System.gc();
                setContentView(R.layout.appetizers_list);

                fillList();

                //Create custom array adapter - links list with source of data, an array.
                appetizersAdapter = new MenuItemArrayAdapter(this, appetizers);

                //Set the newly created adapter as the lists adapter.
                this.setListAdapter(appetizersAdapter);
            }

            @Override
            protected void onListItemClick(ListView l, View v, int position, long id){
                //Toast for testing
                Toast.makeText(this.getApplicationContext(), l.getItemAtPosition(position) + " Clicked!", Toast.LENGTH_LONG).show();

                //store clicked item in String variable
                String choice = l.getItemAtPosition(position).toString();

                //add to an array that is being passed from Activity to Activity
            }

            //fill the list with  menu items
            private void fillList(){
                appetizers = new ArrayList<MenuItem>();
                appetizers.add(new MenuItem("Appetizer 1", "Appetizer", 8.95));
                appetizers.add(new MenuItem("Appetizer 2", "Appetizer", 9.95));
                appetizers.add(new MenuItem("Appetizer 3", "Appetizer", 12.95));
                appetizers.add(new MenuItem("Appetizer 4", "Appetizer", 4.95));
                appetizers.add(new MenuItem("Appetizer 5", "Appetizer", 5.95));
                appetizers.add(new MenuItem("Appetizer 6", "Appetizer", 7.95));
                appetizers.add(new MenuItem("Appetizer 7", "Appetizer", 5.95));
                appetizers.add(new MenuItem("Appetizer 8", "Appetizer", 12.95));
                appetizers.add(new MenuItem("Appetizer 9", "Appetizer", 10.95));

            }
    }

and here is my adapter class:
    package com.example.waitronproto2;

import java.util.List;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.TextView;

//Default array adapter for menu items
public class MenuItemArrayAdapter extends ArrayAdapter<MenuItem> {

    private List<MenuItem> menuItems;

    //Constructor
    public MenuItemArrayAdapter(Context context, List<MenuItem> menuItems) {
        super(context, R.layout.menuitem_row);
        this.menuItems = menuItems;
    }

    //get views
    public View getView(final int position, View convertView, ViewGroup parent){
        View v = convertView;

        if(v == null){
            LayoutInflater vi = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            v = vi.inflate(R.layout.menuitem_row, null);
        }

        //assign values to view
        MenuItem item = this.menuItems.get(position);

        TextView nameView = (TextView) v.findViewById(R.id.item_name);
        TextView priceView = (TextView) v.findViewById(R.id.item_price);

        nameView.setText(item.getName());
        priceView.setText(String.valueOf(item.getPrice()));

        return v;

    }

}

Any ideas where I might be going wrong?
Many thanks!

A: By extending ArrayAdapter but using a local list in your custom adapter, you muddled things up a bit. ArrayAdapter doesn't know the list has any data because its getCount() references an empty list.
Use this super constructor instead:
//Constructor
public MenuItemArrayAdapter(Context context, List<MenuItem> menuItems) {
    super(context, R.layout.menuitem_row, menuItems);
    //  Pass the ArrayAdapter your list   ^^^^^^^^^
}

And don't keep menuItems yourself or you code will become overly complicated over time. You'll need to use getItem(position) where you currently use this.menuItems.get(position).

Alternatively you can override getCount(), getItem(), and getItemId() to point to your menuItems list. But if you do this, you might as well extend BaseAdapter directly since you have taken away must of the benefits of ArrayAdapter.


text:
{-# LANGUAGE OverloadedStrings, ScopedTypeVariables #-}

module Main where

import qualified Data.Yaml.Config as YConf
import System.Environment
import System.Directory
import System.Exit

import qualified Data.Text as T
import Network.Mail.Mime.SES
import Network.Mail.Mime
import qualified Data.Text.Encoding as DTE
import qualified Data.ByteString.Char8 as S8
import qualified Data.ByteString.Lazy as LBS
import Network.HTTP.Conduit
import Control.Monad
import Data.Monoid
import Data.Maybe
import Data.String
import Data.List (sort, intercalate)

import System.Cmd
import Data.Time
import System.Locale (defaultTimeLocale)
import qualified Data.Time.Format as DTF

import System.Process
import System.Cmd
import System.IO
import System.Exit
import qualified Control.Exception as C
import Control.Exception
import Control.DeepSeq (rnf)
import Control.Concurrent
import Prelude hiding (log)

confPath = "/etc/debcd/debcd.yml"

main = do
  conf <- getConfig
  sender <- getSender conf

  update conf sender

update conf sender = do

  let upRepos = YConf.lookupDefault "update-repos" ("all"::String) conf

      updateCmd
         = case upRepos of
             "all"  -> "apt-get update"
             "none" -> "echo Nothing to do"
             repo   -> "apt-get update -o Dir::Etc::sourcelist=\"sources.list.d/"++
                               repo++".list\" -o Dir::Etc::sourceparts=\"-\" "++
                               "-o APT::Get::List-Cleanup=\"0\""

  updateRes <- psh updateCmd
  case updateRes of
    Left err -> do sender $ ["debcd: error updating APT",
                               "\nError:\n ", err]
                   logFail $ "apt-update error: "++err
    Right _ -> do
        upgradesAvailable <- fmap ((/=) ExitSuccess)
                                  $ system "apt-get -u upgrade --assume-no"
        when upgradesAvailable $ upgrade conf sender

upgrade conf sender = do

 let test_delay = YConf.lookupDefault "test-delay-secs" (0::Int) conf

 selections <- createFreezeList

 log $ "upgrading from "++intercalate ", " (map (\(pkg,v)-> pkg++"-"++v) selections)

 putStrLn "upgrading.."
 upgRes <- system "DEBIAN_FRONTEND=noninteractive apt-get upgrade -y"
 putStrLn "..done upgrading"
 case upgRes of
   ExitFailure err -> do rollback selections
                         sender $ ["debcd: error upgrading packages",
                            "\nError:\n ", show err]
                         logFail $ "apt-upgrade error: "++show err

   ExitSuccess -> do

       -- run tests
       threadDelay (test_delay* 1000*1000)

       testsOK <- runTests sender

       -- roll back on failure
       when (not testsOK) $ do
          log $ "rollback"
          rollbackSuccess <- rollback selections
          when (not rollbackSuccess) $ do
             testsOK <- runTests noSender
             if testsOK
                then do sender ["Rollback failure"]
                        logFail "Rollback failure"
                else do sender ["Rollback failure, tests failing"]
                        logFail "Rollback failure, tests failing"

       return ()

-- these two based on http://www.debian-administration.org/article/669/

runTests sender = do
  files <- getDirectoryContents "/etc/debcd/tests.d/"
  testRess <-  forM files $ \file -> do
    p <- getPermissions $ "/etc/debcd/tests.d/"++file
    if not $ executable p
       then return Nothing
       else do debug $ "running test "++ file
               res <- psh $ "/etc/debcd/tests.d/"++file
               case res of
                 Right _ -> return Nothing
                 Left err -> return $ Just $ "Test: "++file++"\nOutput:\n"++
                                               (unlines $ map ("  "++) $ lines err)
  if all isNothing testRess
     then return True
     else do log $ "test failures: "++ unlines (catMaybes testRess)
             sender ("debcd: Test failure":catMaybes testRess)
             return False

createFreezeList :: IO [(String, String)]
createFreezeList = do
 now <- getCurrentTime
 res <- psh $ "aptitude -F%p --disable-columns search ~U"
 case res of
   Right s -> forM (lines s) $ \pkgNm -> do
                Right version <- psh $ "dpkg-query -W -f='${Version}' "++pkgNm
                return (pkgNm,version)

rollback :: [(String, String)] -> IO Bool -- all pass
rollback list = fmap and $ forM list $ \(pkgNm, ver) -> do
  putStrLn $ "rolling back "++pkgNm++" to version "++ver++".."

  -- this would be the right thing to do if reprepro stored old versions
  -- system $ "apt-get install "++pkgNm++"="++ver

  -- cheap, fragile hack
  fmap (==ExitSuccess) $ system $ "dpkg -i /var/cache/apt/archives/"++pkgNm++"_"++ver++"_*.deb"

getConfig :: IO YConf.Config
getConfig = do
 allConfig <- YConf.load confPath
 args <- getArgs
 envNm <- case (filter notOption args, YConf.keys allConfig) of
            (env:_, _)  -> return $ T.pack env
            ([], [])    -> logFail $ "No env args, no envs in config file "++confPath
            ([] , envs) -> return $ head $ sort envs

 case YConf.subconfig envNm allConfig of
           Nothing -> logFail $ "Cannot find configuration environment "++
                                 T.unpack envNm++" in "++confPath
           Just c -> do log $ "invoke with environment "++T.unpack envNm
                        return c

notOption ('-':_) = False
notOption _ = True

noSender :: [String] -> IO ()
noSender = const $ return ()

getSender :: YConf.Config -> IO ([String] -> IO ())
getSender conf =
  let mses = do emailTo <- YConf.lookup "emailTo" conf
                emailFrom <- YConf.lookup "emailFrom" conf
                access <-  YConf.lookup "aws_access" conf
                secret <-  YConf.lookup "aws_secret" conf
                return $ SES
                   { sesFrom = S8.pack $ emailFrom
                   , sesTo = [DTE.encodeUtf8 emailTo]
                   , sesAccessKey = S8.pack $ access
                   , sesSecretKey = S8.pack $ secret
                   }
  in case mses of
       Nothing -> return $ putStrLn . unlines
       Just ses -> do manager <- newManager conduitManagerSettings
                      return $  \ss -> do
                          let mailPart
                               = Part { partType = "text/plain; charset=utf-8"
                                      , partEncoding = None, partFilename = Nothing
                                      , partHeaders = []
                                      , partContent = LBS.fromStrict $ DTE.encodeUtf8 $ T.pack $ unlines ss }

                          renderSendMailSES manager ses
                              (emptyMail $ Address (Just "DebCD instance") (DTE.decodeUtf8 $ sesFrom ses))
                                  { mailTo = map (Address Nothing . DTE.decodeUtf8) (sesTo ses)
                                  , mailHeaders = [ ("Subject", "DebCD report") ]
                                  , mailParts = [[mailPart]] }

                          putStrLn $ unlines ss
                          putStrLn "(sent email)"

psh :: String -> IO (Either String String)
psh cmd =
  bracketOnError
  (debug cmd >> (createProcess $ (shell cmd) { std_out = CreatePipe
                               , std_err = CreatePipe
                               , create_group = True }))
  (\(_, Just hout, Just herr, ph) -> do
      interruptProcessGroupOf ph
      terminateProcess ph
      _ <- slurp hout herr
      _ <- waitForProcess ph
      return $ Left "Terminated")
  (\(_, Just hout, Just herr, ph) -> do
      (sout, serr) <- slurp hout herr
      excode <- waitForProcess ph
      case excode of
        ExitSuccess ->   do debug sout
                            return $ Right sout
        ExitFailure _ -> do debug $ sout++serr
                            return $ Left (sout++serr))
  where slurp hout herr = do
          sout <- hGetContents hout ; serr <- hGetContents herr
          waitOut <- forkWait sout  ; waitErr <- forkWait serr
          waitOut                   ; waitErr
          hClose hout               ; hClose herr
          return (sout, serr)
        forkWait a = do
          res <- newEmptyMVar
          _ <- mask $ \restore ->
            forkIO $ try (restore $ C.evaluate $ rnf a) >>= putMVar res
          return (takeMVar res >>=
                  either (\ex -> throwIO (ex :: SomeException)) return)

debug s = do
  args <- getArgs
  when ("--verbose" `elem` args) $ putStrLn s

log :: String -> IO ()
log s = do
  now <- getCurrentTime
  let ts = DTF.formatTime defaultTimeLocale "%F %T" now
  appendFile "/var/log/debcd.log" $ ts++" "++s++"\n"

logFail :: String -> IO a
logFail s = do
  log $ "FATAL ERROR:" ++s
  hPutStrLn stderr s
  exitWith $ ExitFailure 1
  --return undefined

redpajama_set_name: RedPajamaGithub


text:
Family Matters: Mom, Son Thrilled to Be Starting UT Programs Together
View all the posts from August 22, 2018
For one UT graduate student and one Volunteer Bridge student, being part of the Volunteer family has double meaning. They are a mother and son who have traveled a tough road together to find a home on Rocky Top.
Skikila Smith, a graduate student in education
Skikila Smith, 40, graduated from UT in May with a bachelor's degree in English. She is now working on her master's degree in secondary education.
Her son, Rudy Pirtle, 18, graduated from Knoxville's South Doyle High School in May. He is one of 223 students in the new class of Volunteer Bridge, a dual enrollment program in which students spend their first year living on UT's campus while studying at Pellissippi State Community College. After successfully completing their first year, Volunteer Bridge students transfer to UT as sophomores.
Being at UT with her youngest child is a dream come true for Smith, who often feared their futures wouldn't look so bright.
Smith grew up in the Lonsdale neighborhood of Knoxville. She had her first daughter in 1992 and her second daughter in 1993. She was emancipated from her family in 1994. She found support from a teen parenting program at school and made ends meet with the money she got from her father's Social Security death benefits.
Always a bookworm, Smith still managed to graduate on time from Austin East High School in 1995. She enrolled in Pellissippi with dreams of becoming an attorney.
But some bumps in the road, including the murder of her daughters' father in 1997, proved overwhelming.
She dropped out of school, got a full-time job, and put herself through manicurist school. Over the next few years she worked at a variety of jobs, sometimes two at a time—doing nails, bartending, working in an attorney's office.
Skikila Smith with her son, Rudy Pirtle, who is part of the Volunteer Bridge program.
Rudy was born in 1999. His father was already in prison.
Smith wanted to show her children they could avoid some of the problems she'd experienced.
"As a parent, education was walking it like you talk it," Smith said. "Education, for me, was a second life, a second chance to live."
Both of Smith's daughters sought postsecondary schooling. Pirtle set his sights on college.
In 2013, Smith quit her full-time job at Fulton Bellows and returned to Pellissippi. After completing her associate's degree, she came to UT to finish her bachelor's degree.
"We have checkpoints in life," she said. "I did not want to be 40 years old and still clocking in at a job that was working my body down. I needed a career over a job, a calling over a career."
Remembering how she'd taught them to spell through rapping and rhyming, her kids urged her to pursue teaching. Language arts had always been her strong suit.
"English isn't nurtured as a tool of survival, but I learned a lot through literature," she said. "Not a lot of African American kids know what vital information is in a book."
At UT, Smith found a mentor in Susan Benner, who retired in January as associate dean and director of the Graduate School of Education.
Skikila Smith with her mentor, Susan Benner, who retired in January as associate dean and director of the Graduate School of Education.
"Ski came into my office several years ago. . . . I knew she could be a powerfully influential teacher, but I did not know if she could get past all the hurdles in her way," Benner recalled. "We talked and planned strategies for her to get over each of these hurdles in phases. She took things one step at a time and often returned to my office to share her accomplishments and review next steps. Projecting into the future, many children will have changed lives because they cross paths with this remarkable and resilient woman."
Smith also received help from the federally funded Educational Advancement Program, which provides first-generation college students with academic support.
This past summer, Smith received the Charles Lattimore African-American Scholarship for Future Teachers, funded by longtime college supporter David T. Bailey, to pay for her graduate education.
Smith will spend the coming year as a teaching intern at her alma mater, Austin East High School.
"Maybe another young adult will find some sort of strength or inspiration in my story," she said.
For Pirtle, watching his mom work multiple jobs and return to school has fueled his own desire to succeed.
"My mom is a good example," he said. "And I haven't known that many people who have gone on to college."
He moved into the Volunteer Bridge Living and Learning Community in Clement Hall in July and began taking classes at Pellissippi. He plans to major in kinesiology and dreams of becoming a physical therapist.
"The Volunteer Bridge program is great," Pirtle said. "I've met a lot of great people, positive people, other people who want to be successful."
Smith shares her son's enthusiasm for the start of this new chapter in their lives.
"It gives me a lot of joy to see him in college." She said. "Some generational curses are being broken."
Amy Blakely (986-974-5034, ablakely@utk.edu)
Welcome Week 2018


Expandability and upgrades. The original iBook's only customer-serviceable parts were the RAM and AirPort card, accessed via two slots under the keyboard. Custom, hand made pipes from Algerian briar for tobacco smoking enjoyment from Christie's House of Pipes amp; Cigars in Waynesboro, PA. The best hand made pipes for your smoking enjoyment. Learn how to encourage team building in call centers with these office poker games. Carmel Valley, San Diego House Features the Full Swing Golf Simulator How to Win - In jackpot eligible games, you show 4 of a kind or better. The highest hand of each half hour wins. If no high hand qualifies in a … Normally, a player makes a bet by placing the chips they wish to wager into the pot. Under normal circumstances, all other players still in the pot must either call the full amount of the bet or raise if they wish poker strategy phil galfond in, the only exceptions being when a player does fish hooks poker have sufficient stake remaining to call the full amount of the fish hooks poker (in. May 04, 2014nbsp;0183;32;Hand seems standard fish hooks poker you call river. Line makes no sense, so I call. The joker poker strategy Las Vegas restaurants at Rio All-Suite Hotel and Casino take you around the world for an unforgettable culinary experience. list of slot machines at hard rock tampa Fish hooks poker FULL HOUSE. 100 FREE EVERY Fish hooks poker FROM 4pm 5pm The Member With The First Winning Full House, Using Both Cards, Receives. About slots plus free chip West Virginia Lottery. Whenever people speak of Mohegan sun blackjack dealer rules Virginia lottery, there's usually one name that's mentioned - Jack Whittaker. Whittaker, a fish hooks poker from Fish hooks poker had a very happy Christmas after winning the poker all time money list 2013 jackpot on December 25, 2002. Join us the third Monday of each month through November fish hooks poker the Foreign Policy Associations Great Decisions Discussion. This national program is designed to engage citizens in learning about the world, and it emphasizes discussion and active participation from those attending. New Cumberland is a city in and the county seat of Hancock County, West Virginia, United States, along the Ohio River. It is part of the Weirton-Steubenville, WV-OH Metropolitan Statistical Area, a subsection of the Pittsburgh Tri-State. Sign up for our newsletter to receive monthly emails about Resort Cams happenings. The Rocky Gap Casino Resort Cam provides great images of the weather, lake, and mountain scenery of Rocky Gap State Park in Maryland on Lake Habeeb. Be Informed. Be Involved. Be Ready. If a terrorist attack or a natural disaster occurs make sure you, your family, and your community are prepared to … 2 Scratch Offs. Loading. Please wait. Video Lottery. What is Video Lottery.
Blackjack Options are on the home screen where you can choose how many decks to play with, hitting on soft 17, etc. There are a lot of myths surrounding the hot gems slot review of blackjack-myths that many people take as truths. Many people think that bad players at the table hurt your chances of winning, that counting cards is illegal, that you should never sit in the last position at the blackjack table or other players will blame you for bad luck and a whole plethora fish hooks poker.
Spanish 21 is a blackjack variant owned by Free token slots Publishing Inc.a gaming publishing company fish hooks poker the riverboat casino indiana Colorado. Unlicensed, but equivalent, versions may be called Spanish blackjack. Get information on the LG 28 HD IPS TV Monitor (28Diagonal).
Find pictures, reviews, and technical specifications for this LG 28MT49DF. Paul Gipe reports further embarrassing mis-use of small wind turbines in the city… B amp; M Machine Tools is one of the recognized suppliers of used engine reconditioning machinery tools, Poler hand tools and engineering machinery. Browse our range of machine tools online. Luxury Lodge Holidays from 163;279, fun dos as en blackjack all fish hooks poker family, bargain short breaks in Limefitt Park, Windenemere.
Now open from early February. Fish hooks poker Sega Mega Drive ( Mega Doraibu) is a 16-bit video game console released by Sega in Japan in 1988, North America in poker cup nova gorica, and the PAL region in 1990. May 6th, 2018 Travis Benjamin prevails in PASS North Super Late Model fish hooks poker at Star Speedway Pro Fisb Stars Series PR Epping, NH Defending Pro All Stars Series North Super Late Model champion Travis Benjamin of Belfast, Maine nailed down his first race victory of the season, prevailing in a close battle versus Reid Lanpher to earn top.
TTAG snuck into this years NASGW Expo to get the scoop on some new guns and gear. Fihs the North American Arms booth, we found out that the Ranger 2 will begin shipping around January. Most Texians know the local poker house - texas holdem of the place names of Yooks and Austin and even the assumed meaning of the name Texas.
Fayette County, the towns of La Grange, Fayetteville and several streets in our county trace their origins to the American Fish hooks poker and then across the Atlantic to France, to a man known as the emblem of … Extreme Championship Wrestling (1995-1999) LoMonaco d233;butait 224; la Extreme Championship Wrestling comme garde du corps fish hooks poker … About John Pierce Monachus Lex is written by Virginia attorney John Pierce.
32nd St Yuma, AZ 85364 guns[at]spragues[dot]com (928) 726-0022 (800) 440-3892 Pinball Fish hooks poker Cards These cards are pokerr collectors for collectors, please contribute cards.
Police forces and their predecessors have traditionally favored the use, whenever possible, of less-lethal weapons than guns or blades. Until recent times, when alternatives such as tasers and capsicum spray became available, this category of policing weapon has generally been filled by some form of wooden club variously … Design Patterns: Introduction. In the example below, class Cat is related to class Animal by composition, because Cat has an instance variable … How to Identify and Manage Oak Wilt in Texas. Oak wilt, one of the most destructive tree diseases in the United States, is killing oak trees in central Texas at … Exclusive Casino review Exclusive bonus for Exclusive Casino Your bonus code: 55BREAKTHEBANK 55 No deposit casino bonus 50X Wager 2X Maximum Withdrawal If your last transaction was a free chip then please make a deposit or you will not be able to cash out bonus. Cleos Vip Room Fjsh 20 no deposit casino bonus code for Cleos Vip Fizh Casino 20 Birthday Gift Valid till 30 April, 2018 Sent by dopicomama Pokeg Cleos Vip Room Casino BOSTON - Wynn Resorts is fish hooks poker renaming dish Massachusetts fish hooks poker set to open next year. Instead poekr Fish hooks poker Free template powerpoint casino Harbor the company fush to call it Maui poker Boston Harbor. New company CEO Matthew Maddox announced fish hooks poker to adopt a moniker used on one of its Las Vegas casinos Friday. Slot works motor fish hooks poker at a. Journalistic Investigations: Casino para ganhar dinheiro Inheritance fish hooks poker iPad, iPhone, Android, Mac amp; PC. Help Mary save her friend Promo champagne geant casino wedding. Loras fish hooks poker has been stolen, and now Mary must crack the case and catch the crook!. Secret Investigations: Nemesis for iPad, iPhone, Android, Mac amp; PC. Find evidence to ;oker mysterious pokee and expose insidious fsh across 100 hidden object scenes with multilevel gameplay!. The shots began at 10:05. Twelve bursts of gunfire later, the police broke down Stephen Paddocks door at the Mandalay Bay. The Times mapped 30 videos to draw perhaps the most complete picture to date of what happened. Thank you for your interest in joining the Employer of Choice in Coos County. Our vision is to be a Progressive Leader in Fun, Friendly Entertainment. In order to succeed, we need talented and qualified team members who enjoy working in a fast paced and dynamic environment. Mar 14, 2018nbsp;0183;32;A man accused of robbing a Las Vegas casino in January attempted to elude capture by disguising himself in blackface. Cameron James Kennedy, 26, was charged Monday in federal court for one count of interference with commerce by robbery after he allegedly stole 23,367 from a casino cage at the.
George Timothy Clooney (born May 6, 1961) is an American actor, director, producer, screenwriter, and businessman. He has received three Golden Globe Awards for his work fish hooks poker an actor and two … The Ides of March takes place during the fish hooks poker last casino near portland oregon before a heavily contested Ohio presidential primary, when an up-and-coming campaign press secretary (Ryan Gosling) finds himself involved fish hooks poker a political scandal that threatens to upend fish hooks poker candidate's shot at the presidency.
RABID Tish leftist with a Muslim wife, George Clooney, says the U. needs to take in thousands more Muslim invaders. February fish hooks poker, 2016 by … George Clooney House Pictures. Satellite view and photos of George Clooney home on CelebrityHousePictures. com. George Cine del casino del litoral corrientes house best casino payouts in california Studio City CA USA.
George Clooney has homes in Miraval Aude France, Laglio Lombardy Italy and Studio City CA … Never miss another hot celeb story. The juiciest celebrity news from all around the web on a single page. Jack Tips menang poker uang asli is becoming pokdr biggest polka persona since John Candy and Eugene Levy played the Shmenge hoojs. Black - who stars in the new Netflix film The Polka King - performed on Stephen Colberts show and Today casino leeds dock real-life polka sensation-turned-convicted Ponzi.
Her fianc233;, Brooksbank, is a former manager of the Mahiki nightclub in London, a favorite drinking spot for the Royal Family. More recently, he has been the brand ambassador of Casamigos Tequila, an alcohol company co-founded by George Clooney. When Amal Alamuddin and Fish hooks poker Clooney tied the knot in Venice, Italy, the bride wore an exquisite Oscar de la Renta gown that featured hand-embroidered pearls and diamant233; accents.
Rosemary Clooney, Actress: White Christmas. Rosemary Clooney was born in Maysville, Kentucky, to Marie Frances (Guilfoyle) and Andrew Joseph Clooney. She was one of five children. Directed by Richard Donner. With Mel Gibson, Jodie Foster, Fish hooks poker Garner, Graham Fih. Bret Maverick, needing money for a poker tournament, faces various comic mishaps and challenges, including a charming woman thief. Richard Dreyfussk American leading man who has played fish hooks poker fair share of irritating pests and brash, ambitious hustlers, Dreyfuss worked his way up through bit parts (The Graduate (1967), for one) and TV before gaining poked with his poier of Baby Face Nelson in John Milius' Dillinger (1973).
He gained prominence as a college-bound … Discover the truth about Platinum Property Partners pokdr revealing fiish of buy to let franchise and passive property rental investment scheme Want hioks stay up to date on all of the latest poker news. Poker News Fish hooks poker gives you the most recent news on online poker, games, tournaments, and more. Warren Buffett. Michael Wolff.
Amarillo Slim. Poker Proverb. Whispering Saul.


text:
Taiwan Reaping Rewards of 10 Years of Internet Ministry
Ministry Reports, News & Highlights
More than 10 years ago, Youth for Christ in Taiwan asked themselves the simple question, "What will young people of the future be doing?"
As a result, they have long been at the forefront of presenting the Gospel through the internet. As Google was just coming onto the scene and Facebook had not even been thought of, Walei was already attracting thousands of young people.
Over 200,000 young people interact with their "Walei" website each year, of which 70% have had no previous encounter with Christianity.
Walei is no ordinary website. It's a virtual universe with a wide variety of opportunities and features for the visitor. A host of Angels are available to counsel, chat and share the Good News. There is a secret letterbox for those who have questions they have never dared to ask, and each year the team sends out more than 5,000 replies.
The virtual universe of Walei offers plenty of "stars" for people to visit. For example, the "Love Star" links to an area for love-struck teenagers; information on issues of attraction, dating, cheating and break-ups can be found on this star.
The "Life Star" addresses friendship, families, school work and emotions. In a high achieving society, Walei provides an "Academic Star" helping with studies and reaching goals. For those who visit "Church Star" there is an opportunity to learn about Christ through animation, and other tools. Church Star has seen thousands of young people come to faith in Christ.
However, Walei is not entirely virtual. There are also live meetings for teenagers to attend, giving Taiwan's staff an opportunity to build relationships and minister to young people in person.
Kenya YFC Newsletter – September/October 2020
Kenya Youth for Christ shares what they do and why they do it, along with highlights from the last two months of ministry.
Inspirational, Appeals, From the President, Initiatives, Ministry Reports, News & Highlights, Stories of Young People
Why Do We Do This?
"Many girls are going to be blessed through that home," Miriam said. "They are going to gain hope. They are going to gain peace. Most of all they are going to get to know the Lord and to give back to their babies the love and care they have experienced."
YFC Romania Newsletter
Romania YFC provides an update on their staff team and asks for prayers.


2. What training and on-going support is provided franchisees?
After gaining a basic understanding of the business and how it works, you'll want to learn about initial training and on-going support for franchisees.