Bobi Wine recounts 'torture' by Ugandan soldiers AL JAZEERA ENGLISH (AJE)(cached at September 3, 2018, 11:00 pm)

Pop star-turned-MP details for first time beatings he allegedly received from security officers after his arrest.
UN: 11 million people in urgent need in Lake Chad region AL JAZEERA ENGLISH (AJE)(cached at September 3, 2018, 10:00 pm)

Three years after the discovery of the first cases of famine, thousands are suffering from acute and severe malnutrition in Nigeria's northeast.
Duterte thanks Netanyahu for help in ending Marawi siege AL JAZEERA ENGLISH (AJE)(cached at September 3, 2018, 10:00 pm)

Israeli leader welcomes first Philippine president to the country as critics slam Duterte's human rights record.
Is the US using aid as a foreign policy tool? AL JAZEERA ENGLISH (AJE)(cached at September 3, 2018, 10:00 pm)

The US government says it will withdraw $300m in military aid to Pakistan.
Police use tear gas to keep crowd away from burned down Rio musem AL JAZEERA ENGLISH (AJE)(cached at September 3, 2018, 10:00 pm)

Several hundred angry Brazilians attempt to storm the burned out museum to see what ancient artifacts were lost.
NetNewsWire Diary #1: Automatic Hashing and Performance inessential.com(cached at September 3, 2018, 9:32 pm)

I like Swift’s recent addition of automatic hashing support — in many cases you can declare conformance to Hashable and let the compiler do the rest.

This let me delete a bunch of code, and I love deleting code.

* * *

I noticed a regression the other day: for some reason, fetching articles from the database and populating the timeline view got noticeably slower when the results are fairly large.

I worried that this is because my articles database is over a year old, and as it grows the fetch times get longer.

So I used the Time Profiler instrument to see what was going on during a fetch — and I found that most of the time was being spent in hash(into:) in two of my structs: Article and DatabaseArticle.

And of course fetching articles means creating a whole bunch of these structs. Hundreds or thousands, even, depending.

Those were two cases where I had adopted automatic hashing. The hash(into:) method was generated by the compiler.

So I thought about what to do. I wanted a hash that’s unique, or close enough, and I want it to be fast.

The solution, in both of these cases, was obvious — each has an articleID property that is unique per database, which is close enough. That means just hashing one property rather than (presumably) all of them.

So I made hashValue a computed property in each of those structs, as in:

var hashValue: Int {
    return articleID.hashValue
}

I built and ran the app — and the performance issue was fixed.

I put some (temporary) timing code around the code that fetches all unread articles, and it went from 0.37 with automatic hashing to 0.07 with my computed hashValue.

That’s huge!

I realize I could have written a hash(into:) function instead. Maybe I should? I’m not sure that it matters one way or the other. Possibly by the time you read this I will have switched the implementation.

The point still stands, though, that automatic hashing in the case of objects with lots of properties might be a performance hit. As always — use the profiler.

PS Hashing is important in NetNewsWire because I use sets frequently. In general I make arrays at the UI level, when populating a timeline (for instance), and use sets when fetching from the database, etc.

UNRWA and Trump's attempt to erase the Palestinian people AL JAZEERA ENGLISH (AJE)(cached at September 3, 2018, 9:00 pm)

By cutting the funding to the UNRWA, Trump wants to eliminate the Palestinians' demand for the right to return.
Eight killed in South Africa munition depot explosion AL JAZEERA ENGLISH (AJE)(cached at September 3, 2018, 9:00 pm)

Investigators are trying to determine the cause of the blast in Somerset West plant, near Cape Town.
Palestinian man shot dead after alleged stabbing attack AL JAZEERA ENGLISH (AJE)(cached at September 3, 2018, 9:00 pm)

Israeli forces kill 28-year-old Palestinian near the Kiryat Arba settlement, east of Hebron, in the occupied West Bank.
Chrome Browser Turns 10 Slashdotby msmash on google at January 1, 1970, 1:00 am (cached at September 3, 2018, 8:34 pm)

Google first released its Chrome browser 10 years ago today. Marketed as a "fresh take on the browser," Chrome debuted with a web comic from Google to mark the company's first web browser. From a report: It was originally launched as a Windows-only beta app before making its way to Linux and macOS more than a year later in 2009. Chrome debuted at a time when developers and internet users were growing frustrated with Internet Explorer, and Firefox had been steadily building momentum. Google used components from Apple's WebKit rendering engine and Mozilla's Firefox to help bring Chrome to life, and it made all of Chrome's source code available openly as its Chromium project. Chrome focused on web standards and respected HTML5, and it even passed both the Acid1 and Acid2 tests at the time of its release. This was a significant step as Microsoft was struggling to adhere to open web standards with its Internet Explorer browser. Another significant part of Chrome's first release was the idea of "sandboxing" individual browser tabs so that if one crashed it wouldn't affect the others. This helped improve the speed and stability of Chrome in general, alongside Google's V8 JavaScript engine that the company constantly tweaked to try and push the web forwards. After a decade of Chrome, this browser now dominates as the primary way most people browse the web. Chrome has secured more than 60 percent of browser market share on desktop, and Google's Chrome engineers continue to improve it with new features and push the latest web standards. To mark the milestone, Google said it would make a surprise announcement on Tuesday -- some improvements coming to Chrome.

Read more of this story at Slashdot.

How To Add Your Micro.blog Feed to NetNewsWire inessential.com(cached at September 3, 2018, 8:32 pm)

In NetNewsWire 5, you can add your Micro.blog feed of people you follow, so you can read their posts in NetNewsWire.

Here’s how:

Figure out the URL. It’s something like this, where my username is replaced with your username: https://micro.blog/feeds/brentsimmons.json

In NetNewsWire, hit cmd-N. (Or click the + button in the toolbar.) Put that URL in the URL field in the sheet that appears. Give it a name if you want, and choose a folder if you want. Then click the Add button.

That’s it!

Posting to Micro.blog

If you have the Micro.blog app on your Mac, you can select an article in NetNewsWire, then pull down the share menu in the toolbar, and choose Micro.blog.

It will send that article to the Micro.blog app, where you can edit and comment before posting.

The same thing works for MarsEdit, so you can post to any blog.

Argentina's Macri raises taxes, axes ministries after peso plunge AL JAZEERA ENGLISH (AJE)(cached at September 3, 2018, 8:00 pm)

President announces raft of 'emergency' austerity measures in a bid to tackle the country's worsening financial crisis.
[no title] Scripting News(cached at September 3, 2018, 7:33 pm)

New season of Bojack Horseman on Sept 14.
[no title] Scripting News(cached at September 3, 2018, 7:33 pm)

Facebook broke the API that allowed me to cross-post there. Now I'm getting regular reminders from them about how I should be posting more stuff to Facebook, my readers are bored, they say.
Malaysia: Women caned in public for lesbian act AL JAZEERA ENGLISH (AJE)(cached at September 3, 2018, 7:30 pm)

Condemnation in Malaysia after officials in conservative Muslim state whip two women for having sex.