earliest_day = 5; $this->latest_day = 20; } protected function get_all_posts() { // very quickly work out if we are sorting by cat or tag $cat = ''; if ($_POST['incategory'] != '') { $cat = '&cat=' . (int)$_POST['incategory']; } $tag = ''; if ($_POST['tagid'] != '') { $tag = "&tag_id=" . (int) $_POST['tagid']; } $all_posts = array(); $all_query = new WP_Query('showposts=' . $this->abs_max_posts . $cat . $tag); while($all_query->have_posts()) { $all_query->the_post(); $orig_date = get_the_date("Y-m-d H:i:s"); $i++; $all_posts[get_the_ID()] = array ( "link" => get_permalink(), "title" => the_title('','',false), "orig_date" => $orig_date, ); } return $all_posts; } public function redate_posts() { if (isset($_POST['latest_day']) && is_numeric($_POST['latest_day'])) { $this->latest_day = (int) $_POST['latest_day']; } if (isset($_POST['earliest_day']) && is_numeric($_POST['earliest_day'])) { $this->earliest_day = (int) $_POST['earliest_day']; } if ($this->earliest_day == 0 && $this->latest_day == 0) { echo "

Please go back - you cannot set latest and earliest at 0

"; return; } if ($this->earliest_day < 0 || $this->latest_day < 0 ) { echo "

Please go back - you cannot either value as lower than 0

"; return; } if ($_POST['tagid'] !='' && $_POST['incategory'] != '') { echo "

Please go back - you cannot set both slug and category!

"; return; } $total_diff_in_days = $this->latest_day + $this->earliest_day; echo "

Reordering

"; echo "

The earliest day is {$this->earliest_day} days ago. The latest day is {$this->latest_day} days in the future

"; $allposts = $this->get_all_posts(); if (count($allposts) > 0) { $doneDays = array(); echo ""; foreach($allposts as $id => $postData) { $link = $postData['link']; $title = $postData['title']; $random_days_behind = rand(0,$total_diff_in_days); $random_days_behind = (int) $random_days_behind; $day_diff = $random_days_behind - ($this->earliest_day ); if ($day_diff > 0) { $plus_minus = '+'; } else { $day_diff = abs($day_diff); // get positive $plus_minus = '-'; } $doneDays[str_replace("+","",$plus_minus) . $day_diff]++; $strtotimestring = $plus_minus . $day_diff . ' days'; $date_time = (strtotime($strtotimestring)); // H:i:s // get the year/mo/day from strtotime(- xx days) $newDate = date('Y-m-d', $date_time); // randomly select a hh:mm:ss to post $newDate.= " " . str_pad( rand(0,23) , 2, '0', STR_PAD_LEFT) . ":" . str_pad( rand(0,59) , 2, '0', STR_PAD_LEFT) . ":". str_pad( rand(0,59) , 2, '0', STR_PAD_LEFT) ; $updateArray = array( 'ID' => $id, 'post_date' => $newDate, 'post_date_gmt' => $newDate, 'edit_date' => true, ); $result = wp_update_post($updateArray); echo ""; } echo "
$id $link $title Original date: {$postData['orig_date']} Changed date to : $newDate
"; echo "

Counter:

"; ksort($doneDays); echo "

This shows the frequency of each post being posted x days ago/in future. It doesn't show every single day - only the ones with at least one post

"; //change for for() to show all days? might be handy echo ""; foreach($doneDays as $id => $val) { if ($id > 0) { $id = "+" . $id; } echo ""; } echo "
+/- daysNumber of posts
$id days$val posts
"; } else { echo "

Error - Could not find any posts to reorder!

"; } } protected function get_all_cats_options() { $args = array( 'type' => 'post', 'child_of' => 0, 'parent' => '', 'orderby' => 'name', 'order' => 'ASC', 'hide_empty' => 1, 'hierarchical' => 1, 'exclude' => '', 'include' => '', 'number' => '', 'taxonomy' => 'category', 'pad_counts' => true ); $categories = get_categories( $args ); $returnhtml = ''; foreach($categories as $cat) { $id = $cat->cat_ID; $name = $cat->name; $c = $cat->category_count; $returnhtml .= ""; } return $returnhtml; } protected function get_all_tags_options() { $tags = get_tags(); $returnhtml = ''; if ($tags) { foreach ($tags as $tag) { $id = $tag->term_id; $name = $tag->name; $c = $tag->count; $returnhtml .= ""; } } else { $returnhtml = ""; } return $returnhtml; } public function show_options() { ?>

Ash's Random Post Dater

Use this form to set ALL posts in the selected category to a random date between these two values.

This will update the post dates on ALL posts within the selected category/tag (or ALL posts in your wordpress blog if both are set to default). Please do not use if you do not want to reset ALL post dates. I do not recommend using this on a site with lots of live posts - especially if you use a permalink structure that includes the date in the url. I use it on new sites (add all content, then set all posts to random date in the past). Use at your own risk! You will lose the current post date time (it only changes the date posted - nothing else)

Only use one of the following two. Leave both at their defaults ("ALL CATEGORIES"/"ALL TAGS") to reorder ALL posts

Reorder post dates in this category:


(leave on "ALL CATEGORIES" if you don't want to reorder all within a certain category)
OR

Reorder post dates with this tag slug (use the tag slug, not the tag):


(leave on "ALL TAGS" if you don't want to reorder all within a certain category)

Earliest Day - how many days back do you want the maximum one?

(put at 0 to put all posts in future)

Latest Day - Leave at 0 to make sure all posts are BACK dated.

(leave 0 to put all posts in past)

For example if you wanted your posts randomly set to a date in the next 30 days set the latest day as 30, the earliest day at 0

If you wanted your posts randomly set to a day in the previous 180 days then set the latest day as 0 and the earliest day as 180.

It randomly sets each post - the posts are not spaced out at exact intervals. It will readjust ALL your posts. Please make sure that you want ALL your posts to be randomised.

(Clicking this will randomly reorder all posts)
redate_posts(); } else { $random_post_dater->show_options(); } } The Syrian who’s aiming to get refugees jobs in Berlin’s booming tech scene – Social Care Team

The Syrian who’s aiming to get refugees jobs in Berlin’s booming tech scene

MigrantHire was co-founded by Syrian refugee and developer Hussein Shaker, who struggled to find work in IT when he arrived in Germany

Information technology student Hussein Shaker had only one year left of university in Aleppo when his studies were cut short by war. Moving to Berlin as a Syrian refugee, he knew nothing about the tech scene or how valuable developers like him were in the city.

“I wanted to work,” says Shaker. “But the job centre told me: ‘If you can’t speak German, you can’t get a job’.” The country sees language as key to refugee integration: last month, the German chancellor, Angela Merkel, introducedmandatory German lessons in exchange for financial support.

Shaker reluctantly put his career on hold while he learned the language,and found part-time work in a call centre that needed Arabic speakers.

“It was so boring,” he says. “I knew I had good technical experience but I thought I couldn’t get a job in the industry because of my German.”

That was before a colleague introduced him to Remi Mekki, a Norwegian entrepreneur living in Berlin. Mekki told him that tech companies in the city were so desperate for developers, they didn’t care whether employees could speak German. “Everyone can speak English,” said Mekki.

The pair decided to tackle refugee unemployment together, co-founding the recruitment platform MigrantHire with two other Berliners.

To register with MigrantHire, refugees upload their CV – in English, German or Arabic. The platform’s six-person team does everything else. They iron out legal issues, help refugees get permission to work and prepare them for interviews. During the current pilot phase, MigrantHire has been approached by employers but it also seeks out vacancies that match refugees’ experience, charging a success fee when developers are hired.

In 2015, 1.1 million refugees arrived in Germany. Now the country faces the mammoth task of integrating them into the labour market. Although there are jobs – there were an estimated 43,000 unfilled vacancies in the German IT industry last year – many new arrivals are still struggling to find work.

Since January, Mekki and Shaker have channelled their efforts into finding jobs in Berlin’s vibrant tech scene for refugees with IT experience. According to data in the 2015 Global Startup Ecosystem (pdf) report, Berlin is home to between 1,800 and 3,000 active tech startups.

For English-speaking refugees, the IT sector can offer a shortcut into the labour market as many offices work internationally and don’t require employees to speak German. Music-streaming service Soundcloud and the mapping business Here (owned by BMW, Mercedes and Audi), for example, use English as their office language in Berlin.

Despite 10 years of IT experience in Damascus and Dubai, web developer Bashar Alghazouly spent nearly two years looking for work unsuccessfully. The softly spoken Syrian blames his German. “My language is still very bad,” he says.

However, once Alghazouly discovered MigrantHire, he had three interviews in three months. The platform focused on finding him web developer positions in English-speaking offices.

Now Alghazouly is one of MigrantHire’s two success stories. Last week, he was offered a job at software vendor Signavio.

MigrantHire has ambitious plans for an organisation yet to formally launch. It aims to get 10,000 refugees into jobs by 2017. But concedes that to have any chance of doing this it needs to change the way it works.

“We discovered that doing the whole process yourself takes too much time”, says Mekki. “Getting refugee candidates and employers on board, finding the match, preparing candidates for the interview, following up with the company.”

He adds: “We’re nerds. Software is our strength but we’re no good at HR.”

Instead, the company is looking to form partnerships with other refugee recruiters that specialiee in matchmaking and is in talks with Connecteer andWork for Refugees.

Under the new system, MigrantHire would focus on creating a scalable platform and encouraging sign-ups, while its partners would match refugees to jobs, help them with applications and set the fee for employers. To reach its target of 10,000 jobs, the team will also broaden its focus from refugees with IT experience to skilled and unskilled refugees from all professions.

But Dr Carola Burket of the Nuremberg-based Institute for Employment Research is wary about MigrantHire’s reliance on using English-speaking jobs as a model for integration.

She says: “Maybe one or two [refugees] might find a job in an English-speaking environment in Germany but not the majority. We are talking about 600,000 people who we have to integrate into the labour market. It’s not going to be possible to find English-speaking jobs for all of them.”

For the project to work she believes that “MigrantHire needs a strong partner like the Federal Ministry of Labour or the Federal Employment Agency, and it needs to increase its publicity”.

Capture16

http://www.theguardian.com/sustainable-business/2016/may/18/syrian-refugees-jobs-berlin-technology-migranthire