The future is meta news.

In the wake of the Donald Trump presidency, there’s been a sudden new ‘fake news’ narrative appearing in social and media discourse.

The discourse arising tends to point at two things:

  • Individual people exist in echo chambers, and seek to consume and share content that fits their worldview, without regard for truth.
  • At the same time – there is also a general distrust in mainstream outlets, and the fake news dog whistle is actually used to criticise the mainstream media – by suggesting that it’s the mainstream media that is reporting things wrong.
    One only needs to look at the responses to @WashingtonPost’s Twitter account to see examples of this.
    fake news.PNG
    Caveat: It’s hard to tell if accounts like this aren’t troll bot accounts.

While I don’t think that the mainstream media is out and out producing lies or fully factually incorrect content, I think it is fair to say that the media has a vested interest in producing certain kinds of content, and it does seem that a lot of what we see on the media now is more opinion or ‘analysis’ – which isn’t something that needs to withstand basic fact checking.

Recently, I’ve taken an interest in watching RT (Russia Today – a Russian state run media outlet). It’s interesting to see the difference in what RT says about particular issues, as opposed to say Fox News.

For example, let’s look at Allepo:

Fox News

alepo fooooox.PNG
The Fox News narrative mentions deaths caused by rebels and government forces.

RT

syria rt.PNG
The RT article  mentions ‘liberation’ and no mention of civilian casualties by government forces.

So we have two problems:

  • People are just going to share whatever suits them.
  • The media have their own agendas which influences the content they produce.

Now we have a problem – how do we decide what content to consume?

Also – we’re not just concerned about the actual truth of the matter – but we also need to know what other people are thinking or reading.

The answer: meta-news. 

Instead of reading news from your favourite news site, whether that’s RT, Fox News, Al Jazeera, The Guardian, The Washington Post – you read a factual, algorithmic aggregate of all news websites.

How this would work, is that some kind of web crawler will read and view news content as it released, and analyse the frequency of certain words, the general meaning etc. It then presents that story  with a breakdown of the various narratives being presented, who’s presenting them etc. For example, on the subject of Aleppo, as well as giving the facts of what happened (and who’s reporting what facts), it would report which outlets are using the term ‘liberate’ and which are focused on civilian deaths by government forces etc.

The tool could be also be used to report sentiment on social media. For example, as the story breaks, it can report ‘users on twitter are saying …’. Further investigation can show that ‘Users that say this about x subject, are saying such and such about y subject’.

This tool isn’t a solution to finding the actual truth about a matter, that still depends on journalists publishing the truth. It does however, reveal a different kind of truth, and is reliable at that (if you trust the algorithm) – the what the world is saying about certain subjects. Perhaps that’s a way of breaking free of our echo chambers.

Chrome mapping to local workspace resources tutorial.

Introduction

This tutorial outlines a technique using the Chrome browser, that allows you to map webapp resources to local copies of your resources.

In this tutorial – I will demonstrating this technique for the purpose of modifying .scss and .css resources.

Effectively – the Chrome browser will use your local copies of the resources to render the webpage. This will allow you to modify your version controlled resources in the browser developer tools, and see the changes immediately.

No more tweaking in the browser and then copying to version controlled resources. No more redeploying each time want to see your changes. This may greatly quicken your development process.

Prerequisite Understanding.

For this tutorial I assume you are generally familiar with creating webapps, deploying to web servers  and working CSS and SCSS. If you don’t know Sass/SCSS don’t worry – it’s very simple, and you should learn it, because it’s awesome.

In this tutorial I’m deploying a Java webapp to Tomcat 8, and I’m using Maven for my dependency management and deployment.

If you’re not using these technologies, don’t be too worried, so long as you know how deploy your own webapp.

Project Structure

Here’s what my webapp currently looks like:

webapp.PNG

Here’s the project structure:

structure.PNG

And here’s the code:

index.html
<!DOCTYPE html>
<html>

<head>
<link rel="stylesheet" type="text/css" href="scss/style.css">
</head>

<body>

this is a div

<span> this is a span</span>
</div>

this is a div

<span> this is a span</span>
</div>

</body>

</html>

style.scss
@import 'foo';

@import 'bar';

body {
background-color: #f2f2f2;
padding: 50px;
}


foo.scss
.foo {
background-color: green;
padding: 20px;
font-weight: bold;

div {
background-color: yellow;
}

span {
background-color: orange;
}
}

**bar.scss**


.bar {
border: solid 2px black;
}

Deployment

  1. First I need to compile the css.
    >sass compile style.scss style.css
  2. Now I deploy using maven
    >mvn tomcat7:deploy

Making changes the hard way

Let’s say I want to add some spacing between those two divs, and also I want to make it so all the children of the bar div also have borders.

I’ll probably do something like this:

I’ll add margin: 10px 5px; to .foo.

And I’ll add


> * {
border: 1px solid white;
}

to .bar.

I now recompile the .css

sass compile style.scss style.css

and undeploy, redeploy my app

mvn tomcat7:undeploy

mvn tomcat7:deploy<

web2.PNG

Success.

There’s a much easier way to do this though.

Introducing: Chrome resource mapping

1. Configure chrome

Open chrome

  • Navigate to chrome://flags
  • Enable Developer Tools Experiments (about halfway down the page)
  • Restart chrome.
  • F12 -> Developer Tools settings
  • Enable CSS source maps.

2. Get SASS compiling and watched

sass –watch style.scss:style.css

3. Map the CSS in Chrome

  • Open chrome
  • Navigate to your deployed webapp.
  • F12
  • Sources tab
  • Right click in the sources folder structure white space -> add folder to workspace

workspace

  • Add your local assets workspace.
  • Find websites style.css
  • Right click – >map to file system resource

map

  • Select the corresponding style.css that’s in your local workspace.

4. Modify your .scss in chrome

  • Open a *.scss file in the chrome workspace
  • Make some changes.

pink.PNG

  • Boom! Your changes instantly took place, and are already in your version controlled files.

This is much easier isn’t it?