Shared posts

30 Oct 03:09

r/finance, 1 year later

by matloff

The prominent conference R/Finance, held annually in Chicago, had a great program yesterday and today. As I wrote following last year’s conference, the organizers were criticized for including no women in its speaker lineup. The problem was that no women had submitted papers for consideration; no input, thus no output.

I’m a member of the Editorial Board of the R Journal, and out of curiosity, yesterday I did a gender count among papers I reviewed during my first two years of service, 2017 and 2018. I considered only first-author status, and found that I had accepted 54% of the papers by men, and 67% of those by women.

That seems good, but only 20% of these papers were by women. I’m sure that most journals have low numbers of submissions by women. For instance, in the current issue of the Journal of Computational and Graphical Statistics, only 3 of 18 paper have women as first authors.

Thus I felt that the activists’ criticisms last year were unfair. Not only had there been no submissions by women, hence no women speakers, but also the conference organizers quickly made amends when the problem was pointed out. They quickly arranged a special talk by a woman who had presented in a previous year, and also made room in the schedule for a talk by R Ladies on improving conditions for women in conferences. They promised to be proactive in encouraging women to submit papers this year.

The organizers did take strong proactive measures to improve things this year, and the results were highly impressive. There were 12 women presenters by my count out of 50-something, including an excellent keynote by Prof. Genevera Allen of Rice University. In addition, there were two women on the Program Committee.

We all know that finance is a male-dominated field.  Thus it is not too surprising that the conference received no submissions by women last year (though, as noted, they had had women speakers in the past).  But they are to be highly commended for turning things around, and indeed should serve as a model.

(Phrasing clarified, November 30, 2019.)

20 May 02:18

added as a favorite.

by Ms. Jen
Ms. Jen added this as a favorite.

20 May 02:18

My large Haskell + Python project KGcreator (tool for automating the generation of Knowledge Graphs) and auto code formatting

by Mark Watson, author and consultant
You might wonder what the topics of my large Haskell + Python project KGcreator and auto code formatting have to do with each other.

I addition to working on two Python books (Python Intelligent Systems and Deep Learning and Graph Databases), my main 'retirement' activity has been write a lot of Haskell code and a smaller amount of Python code for my KGcreator project. After reading a discussion on Hacker News yesterday about Python code tidy/auto-format tools, I decided to add Makefile targets.


After a 'stack install stylish-haskell hindent' and a 'pip install yapf', I added something like this to my Haskell top level Makefile:

tidy:
cd src/fileutils; stylish-haskell -i *.hs; hindent *.hs
cd src/nlp; stylish-haskell -i *.hs; hindent *.hs
cd src/sw; stylish-haskell -i *.hs; hindent *.hs
cd src/webclients; stylish-haskell -i *.hs; hindent *.hs
cd test; stylish-haskell -i *.hs; hindent *.hs

And something like this to my Python top level Makefile:
tidy:
cd botorch_bayesian_optimization; yapf *.py --style='{indent_width: 2}' -i
cd coref_anaphora_resolution_web_service; yapf *.py --style='{indent_width: 2}' -i
cd data_fusion; yapf *.py --style='{indent_width: 2}' -i
cd deep_learning_keras; yapf *.py --style='{indent_width: 2}' -i
cd deep_learning_pytorch; yapf *.py --style='{indent_width: 2}' -i
cd discrete_optimization; yapf *.py --style='{indent_width: 2}' -i
....
Trivial stuff, but I already find my KGcreator and my books' codebases easier to work with. For Common Lisp and Scheme I always just rely on using the tab character to auto-indent and leave it at that. I use VSCode for both Haskell and Python development and after experimenting with a few extensions I decided it was easier to add a make target. Nothing is automated right now, I 'make tidy', 'make tests', and then 'git commit...' manually. Still to be done is adding git commit hooks. Fortunately I can use notes in one of my old blog posts as a guide :-)
20 May 02:18

Mapping Tornado Alley with R

by hrbrmstr

I caught a re-tweet of this tweet by @harry_stevens:

Harry’s thread and Observable post are great on their own and both show the power and utility of Observable javascript notebooks.

However, the re-tweet (which I’m not posting because it’s daft) took a swipe at both Python & R. Now, I’m all for a good swipe at Python (mostly to ensure we never forget all those broken spacebars and tab keys that language has caused) but I’ll gladly defend it and R together when it comes to Getting Things Done, even on deadline.

Let’s walk through what one of us might have done had we been in the same scenario as Harry.

Mapping On A Deadline

So, we have to create a map of historical tornado frequency trends on deadline.

We emailed researchers and received three txt files. One is a set of latitudes, another longitudes, and the final one is the trend value. It’s gridded data.

Download that ZIP and pretend you got three files in email vs a nice ZIP and make a new RStudio project called “tornado” and put those three files in a local-to-the-project-root data/ directory. Let’s read them in and look at them:

library(hrbrthemes) # not 100% necessary but i like my ggplot2 theme(s) :-)
library(tidyverse)  # data wrangling & ggplot2

tibble(
  lat = scan(here::here("data/lats.txt")),
  lon = scan(here::here("data/lons.txt")),
  trend = scan(here::here("data/trends.txt"))
) -> tornado

You very likely never directly use the base::scan() function, but it’s handy here since we just have files of doubles with each value separated by whitespace. Now, let’s see what we have:

tornado
## # A tibble: 30,000 x 3
##      lat   lon trend
##    <dbl> <dbl> <dbl>
##  1 0.897 -180.     0
##  2 0.897 -179.     0
##  3 0.897 -178.     0
##  4 0.897 -176.     0
##  5 0.897 -175.     0
##  6 0.897 -174.     0
##  7 0.897 -173.     0
##  8 0.897 -172.     0
##  9 0.897 -170.     0
## 10 0.897 -169.     0
## # … with 29,990 more rows

summary(tornado)
##      lat               lon                 trend           
## Min.   : 0.8973   Min.   :-179.99808   Min.   :-0.4733610  
## 1st Qu.:22.0063   1st Qu.: -90.00066   1st Qu.: 0.0000000  
## Median :43.1154   Median :  -0.00323   Median : 0.0000000  
## Mean   :43.1154   Mean   :  -0.00323   Mean   : 0.0002756  
## 3rd Qu.:64.2245   3rd Qu.:  89.99419   3rd Qu.: 0.0000000  
## Max.   :85.3335   Max.   : 179.99161   Max.   : 0.6314569  

#+ grid-overview
ggplot(tornado, aes(lon, lat)) +
  geom_point(aes(color = trend))

#+ trend-overview
ggplot(tornado, aes(trend)) +
  geom_histogram() +
  scale_x_continuous(breaks = seq(-0.5, 0.5, 0.05))

Since we’re looking for trends (either direction) in just the United States the latitude and longitude ranges will need to be shrunk down a bit (it does indeed look like globally gridded data) and we’ll be able to shrink the data set a bit more since we only want to look at large or small tends.

We don’t really need modern R/ggplot2 mapping idioms for this project (i.e. the new {sf} ecosystem), so we’ll keep it “simple” (scare quotes since that’s a loaded term) and just use the built in maps and geom_map(). First, let’s get the U.S. states and extract their bounding boxes/limits:

maps::map("state", ".", exact = FALSE, plot = FALSE, fill = TRUE) %>% 
  fortify(map_obj) %>% 
  as_tibble() -> state_map

xlim <- range(state_map$long)
ylim <- range(state_map$lat)

NOTE: I tend not to use the handy ggplot::map_data() function since it ends up clobbering purrr::map() which I use heavily (though not in this post). I also try to use {sf} these days so this tends to not be an issue anymore anyway.

Now, let’s focus in on the target area in the original paper and the Axios article:

filter(
  tornado,
  between(lon, -107, xlim[2]), between(lat, ylim[1], ylim[2]), # -107 gets us ~left-edge of TX
  ((trend < -0.07) | (trend > 0.07)) # approximates notebook selection range
) -> tornado

#+ grid-overview-2
ggplot(tornado, aes(lon, lat)) +
  geom_point(aes(color = trend))

Now we’re getting close to our final solution.

As stated in the Observable notebook and implied by the word “grid” these dots are centroids of grid rectangles. This means we really want boxes, not points. The article got all fancy but it’s not really necessary since we can use ggplot2::geom_tile() to get us said boxes:

#+ grid-overview-3
ggplot(tornado, aes(lon, lat)) +
  geom_tile(aes(fill = trend, color = trend))

Now, we just need to add in map layers, and tweak some aesthetics to make it look like a map. We’ll start naively:

#+ map-1
ggplot() +
  geom_tile(
    data = tornado,
    aes(lon, lat, fill = trend, color = trend)
  ) +
  geom_map(
    data = state_map, map = state_map,
    aes(long, lat, map_id = region),
    color = "black", size = 0.125, fill = NA
  )

Our gridded data is definitely covering the right/same areas so we just need to make this more suitable for an article. We’ll use Harry’s palette and layer in U.S. state borders, an overall country border, and approximate the title and legend aesthetics:

#+ map-final
c(
  "#023858", "#045a8d", "#0570b0", "#3690c0", "#74a9cf",
  "#a6bddb", "#d0d1e6", "#ece7f2", "#fff7fb", "#ffffff",
  "#ffffcc", "#ffeda0", "#fed976", "#feb24c", "#fd8d3c",
  "#fc4e2a", "#e31a1c", "#bd0026", "#800026"
) -> grad_cols # colors from article

ggplot() +

  # tile layer

  geom_tile(
    data = tornado,
    aes(lon, lat, fill = trend, color = trend)
  ) +

  # state borders

  geom_map(
    data = state_map, map = state_map,
    aes(long, lat, map_id = region),
    color = ft_cols$slate, size = 0.125, fill = NA
  ) +

  # usa border

  borders("usa", colour = "black", size = 0.5) +

  # color scales

  scale_colour_gradientn(
    colours = grad_cols,
    labels = c("Fewer", rep("", 4), "More"),
    name = "Change in tornado frequency, 1979-2017"
  ) +
  scale_fill_gradientn(
    colours = grad_cols,
    labels = c("Fewer", rep("", 4), "More"),
    name = "Change in tornado frequency, 1979-2017"
  ) +

  # make it Albers-ish and ensure we can fit the borders in 

  coord_map(
    projection = "polyconic",
    xlim = scales::expand_range(range(tornado$lon), add = 2),
    ylim = scales::expand_range(range(tornado$lat), add = 2)
  ) +

  # tweak legend aesthetics

  guides(
    colour = guide_colourbar(
      title.position = "top", title.hjust = 0.5
    ),
    fill = guide_colourbar(
      title.position = "top", title.hjust = 0.5
    )
  ) +
  labs(
    x = NULL, y = NULL
  ) +
  theme_ipsum_rc(grid="") +
  theme(axis.text = element_blank()) +
  theme(legend.position = "top") +
  theme(legend.title = element_text(size = 16, hjust = 0.5)) +
  theme(legend.key.width = unit(4, "lines")) +
  theme(legend.key.height = unit(0.5, "lines"))

FIN

I went through some extra steps for folks new to R but the overall approach was at the very least equally as expedient as the Observable one and — despite the claims by the quite daft retweet — this is no less “shareable” or “reusable” than the Observable notebook. You can clone the repo (https://git.sr.ht/~hrbrmstr/tornado) and reuse this work immediately.

If you take a stab at an alternate approach — especially if you do use {sf} — definitely blog about it and drop a link here or on Twitter.

20 May 02:18

Flexwork Pays

In Work in America Is Greedy. But It Doesn’t Have to Be., Claire Cain Miller discovers that in a...
20 May 02:18

AT&T Lied

Is anyone surprised that AT&T’s Randall Stephenson lied about making a big capital...
20 May 02:17

Subscription as investment - Rick

But how likely is it that, when an application dies away, there will be nothing available to read RTF files?

MadaboutDana wrote:

>
>Why get so neurotic about tie-in? Well, a simple perusal of the many,
>many apps that have been discussed here is enough to show you why: so
>many of them have gone the way of the dodo. So many once glorious,
>much-lauded, beloved apps are no longer with us, but have made their way
>to that great archive in the sky. What's more, so many of them are
>unusable, because their creators - for what are, I'm sure, perfectly
>good reasons - decided not to make them publicly available upon expiry.
>Or kindly did so, only for the app to lose its compatibility with the
>latest operating systems somewhere along the line.
>
20 May 02:17

Sour Times

Really, they are. Our civic spaces are mis-led and full of anger, some of it even righteous. We have fouled our species’ nest and are ignoring the smoke curling out of its edges, and don’t know what’s awaiting when we fall out of the tree. I’ve been sad a lot.

For days at a time, even. I get up and find myself barking at my children for the smallest sins; just a shitty mood that I can’t shake. Introspecting, I see that I enjoy my job and get along with my family and am loved enough and have enough others to love. I like my car and my bike and my city and my garden. And eventually I had to admit that it was the lousy state of the world dragging me down.

What to do about it? You can’t and anyway shouldn’t face away from the world. We need to keep finding the courage to face the truth and work on mending what’s broken. Because in my heart and my mind I actually really don’t believe this is Ragnarök; we are not (quoting Tolkien’s Galadriel) “fighting the long defeat”. There are paths to better places and whether or not the pain and injustice and filth are our fault, finding those paths is our responsibility.

Gubeikou

Or 古北口 — it’s a town northeast of Beijing on a not-particularly great section of the Great Wall. It has a temple for the Goddess of Mercy.

Temple of the Goddess of Mercy, Gubeikou

The temple is well-maintained and the offerings fresh. That’s a no-brainer — would you prefer a just or a merciful deity?

Why am I sharing this? Just a reminder that the world, uglified though it may be this year, contains wonders; the hope is to lighten a rotten mood if only my own. What we are trying to save is worth saving! See those paintings on the Goddess’ wall? They were said to represent her attendants and are worth a look.

On the wall of the temple of the Goddess of Mercy, Gubeikou

That said…

In another part of the world, the country next to mine, sixty-five million people think Donald Trump is just fine and will probably think so again in 2020. In my own country, a morally-hollowed-out leadership is probably about to punch a bitumen pipeline through the walls of sanity to the Pacific to increase our share of carbon loading even as the carbon numbers attain levels never seen in our (or any) civilization. I could enumerate bad crazinesses in lots more timezones, but why? Anyone who troubles to find out knows.

I find it hard to deal with the fact that, and I’m phrasing this as gently as I can manage, a substantial proportion of the population seem ignorant, bigoted, and mean. Perhaps the natural proportion of Deplorables has been made larger by dysfunctional media. I’d like to believe that because media are fixable but endemic mean-spiritedness isn’t.

Horrorshow

In Hong Kong, lining up for the Star Ferry across the harbor, among more tourists than locals since they put in the subway tunnel, I came face-to-face with it. In a party of otherwise-unexceptionable Americans, there was the #MAGAhead with That Hat, waddling, empty-eyed, enormously obese; folds of fat hanging out of the bottom of his golf shorts. In the warm wet Chinese air I couldn’t dig up a sane way to react or even a sane thing to say because, frankly, murder was uncoiling at the back of my brain. Fortunately for that dude, I’m a grown-up.

More temple walls

The ones without paintings are a canvas for nature to write on.

Shadows on a Chinese temple wall

Across the Pacific, nature writes in big letters. Here, from left to right, a Douglas Fir, a Western Redcedar, and a Western Hemlock.

Trees on Keats Island in Howe Sound

Get out of their way, leave them the fuck alone, and they’ll do fine. In my heart I believe that if I could learn to listen slowly enough, they’d have things to say that we’d benefit from hearing. We need to do more getting out of the way.

The Second Coming

It’s really the biggest threat. I’m talking about these lines from Yeats’ poem:

The best lack all conviction, while the worst
Are full of passionate intensity.

It’s so easy to say “Screw it, what can I do?” and change the channel. Let’s not. Let’s drink beers and sing songs and share pictures and sign petitions and get arrested where it might matter; Let’s bathe shameless in our world’s good things but never say “Screw it”, because those good things are worth, at the end of the day, dying for.

Wet poppy flowers

Our times are kind of particularly fucked up just now. I’d like to wear that fact like the poppies wear the raindrops. They’re tough generalists and will probably outlive Homo sapiens for a while, whatever dumb-ass things we do. But let’s try to stick around and keep them company.

20 May 02:16

Twitter Favorites: [richterscale] The Keanu Reeves Three-fold Path: Bill & Ted: Be excellent to one another. The Matrix: Step out of your worldview… https://t.co/5rcQiqwKL2

Charles Louis Richter @richterscale
The Keanu Reeves Three-fold Path: Bill & Ted: Be excellent to one another. The Matrix: Step out of your worldview… twitter.com/i/web/status/1…
20 May 02:16

National Fiddling Day

by peter@rukavina.net (Peter Rukavina)

Today was National Fiddling Day, an occasion for which we have Libbe Hubley to thank, as it was her Private Members Bill in the Senate that conjured it into being.

The day was marked here in Charlottetown with a rousing concert St Paul’s Anglican Church.

Just in case you were concerned that you might have missed a statutory holiday, An Act Respecting National Fiddling Day offers clarity on this point:

For greater certainty, National Fiddling Day is not a legal holiday or a non-juridical day.

20 May 02:16

Lafuma olé

by Volker Weber

Stephan schreibt:

Hi vowe, habe uns im April auf deinen Rat hin einen Lafuma gekauft. Der BESTE Liegestuhl ever! Weiß ich aber erst jetzt, nachdem wir ihn auf dem neuen Balkon intensiv nutzen ... nochmals vielen Dank für den Tip!

Ich kenne Lafuma als Empfehlung eines Freundes, der diese Liegestühle in seiner Ferienwohnung auf Mallorca nutzt. Die sind zugleich saubequem und superleicht. So kann er sie leicht verräumen und auch mal schnell ins Auto packen und mit ans Meer nehmen. Wir haben sie seitdem zweimal an ältere Herrschaften verschenkt und eine ähnlich positive Rückmeldung bekommen.

Ich liebe es, wenn ein Plan aufgeht. :-) Deshalb freuen mich solche Rückmeldungen.

More >

20 May 02:16

Fragment – Jupyter Book Electron App

by Tony Hirst

Noting an experiment by Ines Montani in creating an electron app wrapped version of the spacy course/python course creator template, I wondered how easy it would be to wrap a static Jekyll / Jupyter Book created site, such as one generated from an OU-XML feedstock, as an electron app.

The reason for doing this? With the book bundled as an electron app, you could download the app and run it, standalone, to view the book, with no web server required. (The web server used to serve the book is bundled inside the electron app.)

A quick search around turned up an electron appifier script (thmsbfft/electron-wrap), which did the job nicely:

cd to the folder that contains the files, and run:

bash <(curl -s https://raw.githubusercontent.com/thmsbfft/electron-wrap/master/wrap.sh)

If all the js required to handle interactives used in the book is available locally, the book should work, in a fully featured way, even when offline.

(I also noted a script for wrapping a website in an electron app — jiahaog/nativefier — which may be interesting… It can build for various platforms, which would be handy, but it only wraps a website, it doesn’t grab the files and serve them locally inside the app…? See also Google Chrome app mode.)

So what next?

A couple of things I want to try, though probably won’t have a chance to do so for the next couple of weeks at least… (I need a break: holiday, with no computer access… yeah!)

First, getting Jupyter Book python interactions working locally. At the moment, Python code execution is handled by ThebeLab launching a MyBinder container and using a Jupyter server created there to provide execution kernels. But ThebeLab can also run against a local kernel, for example using the connection settings:

 
    {
      bootstrap: true,
      kernelOptions: {
        name: "python3",
        serverSettings: {
          "baseUrl": "http://127.0.0.1:8888",
          "token": "test-secret"
        }
      },
    }
  

and starting the Jupyter server with settings something along the lines of:

jupyter notebook --NotebookApp.token=test-secret --NotebookApp.allow_origin='https://thebelab.readthedocs.io'

(The allow_origin setting is used to allow traffic from another IP domain, such as the domain a ThebeLab page is being served from.)

My primary use case for the local server is so that I can reimagine the delivery of notebooks in the TM351 VM as a Jupyter Book, presenting the notebooks in book form rather than vanilla notebook form and allowing code execution from within the book against the Jupyter server running locally in the VM.

But if Jupyter Book can run against a local kernel, then could we also distribute, and run, a Jupyter server / kernel within the electron app? This post on Building a deployable Python-Electron App suggests a possible way, using pyinstaller to “freeze (package) Python applications into stand-alone executables, under Windows, GNU/Linux, Mac OS X, FreeBSD, Solaris and AIX”. Said executables could then be added to the electron app and provide the Python environment within the app, which means it should run in a standalone mode, without the need for the user to have Python, a Jupyter server environment, or the required Python environment installed elsewhere on their machine? Download the electron book app and it should just run; and the code should run against the locally bundled Jupyter kernel; and it should all work offline, too, with no other installation requirements or side-effects. And in a cross-platform way. Perfect for OUr students…

An alternative, perhaps easier, approach might be to bundle a conda environment in the electron app. In this case, snakestagram could help automate the selection of an appropriate environment for different platforms (h/t @betatim for clarifying what snakestagram does).

(I’m not sure we could go the whole way and put all the TM351 environment into an electron app — we call on Postgres, MongodDB and OpenRefine too — but in the course materials a lot of the Postgres query activities could be replaced with a SQLite3 backend.)

Looking around, a lot of electron apps seem to require the additional installation of Python environments on host that are then called from the electron app (example). Finding a robust recipe for bundling Python environments within electron apps would be really useful I think?

There are a couple of Jupyter electron apps out there already, aside from nteract, (which runs against an external kernel). For example, jupyterlab/jupyterlab_app, which also runs against an external kernel, and AgrawalAmey/nnfl-app, which looks like it downloads Anaconda on first run (I’m not sure if the installation is “outside” the app, onto host filesystem? Or does it add it to a filesystem within the electron app context?). The nnfl-app also has support for assignment handling and assignment uploads to a complementary server (about: Jupyter In Classroom).

Finally, I wonder if Jupyter Book could run Python code within the browser environment that the electron app essentially provides using Pyodide, “the Python scientific stack, compiled to WebAssembly” that gives Python access within the browser?

20 May 02:15

Replied to Just pushed a new release of Y...

by Ton Zijlstra
Replied to

Indeed, much better. Thank you! Quick question, I had a look at the WP database, am I right concluding you store the fetched feeds in wp_posts? What’s the reason(s) for that choice?

20 May 02:15

Qwant, Microsoft et Vivatech

by Tristan

J’ai passé 3 jours sur le stand Qwant à Vivatech, et les questions ont fusé suite aux annonces. Je fais donc à l’arrache un article qui j’espère répondra aux questions fréquemment posées sans révéler de choses confidentielles. Je pense que mes collègues publieront la semaine prochaine un billet de blog officiel plus technique sur ce sujet.

Pourquoi ce partenariat avec Microsoft ?

Qwant connaît une très forte croissance (en gros le nombre de requêtes double chaque année[1]), ce qui veut dire qu’il faut augmenter notre capacité serveurs en conséquence. Par ailleurs, nous travaillons à améliorer sans cesse la qualité de nos résultats, ce qui implique de disposer de plus de puissance de calcul pour mieux indexer le Web (lequel est lui aussi en croissance). Tout cela fait que nous devons investir massivement dans l’infrastructure de la façon la plus efficace possible compte tenu des finances dont nous disposons (qui sont infiniment moindre que celle de nos concurrents américains).

Par ailleurs, les utilisateurs de Qwant ont bien remarqué que Microsoft est un partenaire de longue date de Qwant, puisque ce sont eux qui font office de régie publicitaire et contribuent à compléter les résultats de recherche là où Qwant en a besoin comme sur les images comme expliqué dans ce billet. Autrement dit, quand vous voyez une publicité dans les pages de résultats suite à une recherche sur Qwant, vous avez une publicité fournie par Microsoft, c’est d’ailleurs marqué en toutes lettres en bas à droite du bloc publicitaire.

Pub Microsoft sur Qwant.png

Pour en revenir au besoin de puissance supplémentaire, deux possibilités se présentent : acheter des serveurs (ce qu’on a fait jusqu’à présent) ou en louer à des professionnels du Cloud. Maintenant, nous allons faire les deux : acheter des serveurs pour mettre dans nos baies de Datacenter et aussi en louer. Ça va nous permettre d’avoir un Qwant encore plus performant et de meilleur qualité alors qu’il reçoit de plus en plus de demandes.

La vie privée est elle menacée par cet accord ?

Non. C’était bien sûr un point fondamental pour nous et Microsoft l’a bien compris. Pour ceux que la technique intéressent, voici comment nous avons fait pour nous en assurer.

Un moteur de recherche, c’est en gros 4 étapes (j’espère que les spécialistes me pardonneront les simplifications que je fais ci-dessous et que les autre tolèreront mon franglais technique) :

  1. Crawling : parcourir le Web pour lire les pages Web. Evidemment, il y a ici un gros besoin de bande passante ;
  2. Ranking : calculer l’importance de chaque page, leur donner un rang : quelles sont celles qui sont populaires (par exemples parce qu’elles ont plein de liens entrants), quelle est leur qualité (est-ce du spam ou du contenu légitime ?) de façon à savoir lesquelles seront proposées en premier aux utilisateurs ;
  3. Indexation : calculer l’index des pages. Comme un index dans un livre, qui recense à quelle page on trouve quel mot ou quel concept. Super gourmand en calcul, vu qu’on travaille sur des dizaines de milliards de pages Web ! On notera que les données manipulées ne sont pas liées à l’utilisateur vu que ce sont des pages Web qui sont publiques. C’est cette partie-là qui tournera avec des algorithmes Qwant sur des machines qui seront louées à Microsoft.
  4. Front : c’est l’interaction avec l’utilisateur et donc la partie sensible au niveau vie privée, car c’est là qu’on a à la fois la requête de l’utilisateur (sa demande) et son adresse IP[2]. Cette partie reste bien sûr sur les serveurs Qwant (ça va sans dire mais ça va mieux en le disant).

Donc, pour résumer : seules des données issues du Web (et donc publiques) seront traitées par les algorithmes de Qwant qui tourneront sur les serveurs loués à Microsoft.

Pourquoi avoir choisi Microsoft ?

Nous avons tout d’abord essayé de travailler avec d’autres acteurs français et européens, mais Microsoft, avec son Cloud Azure, nous permet de faire des calculs de type FPGA et supporte aussi Kubernetes, ce qui est important pour nous et n’est pas encore suffisamment au point chez d’autres acteurs. Ils disposent aussi de machines équipées de SSD, (donc très performantes en terme d’entrées/sorties, ce qui est important pour l’index).

Signer avec Microsoft ne veut pas non plus dire que nous faisons toute l’indexation sur des machines Azure : nous indexons déjà 20 milliards de pages sur notre infrastructure, et donc nous voulons en indexer 80 milliards de plus sur des machines Azure. Nous conserverons de la capacité d’indexation sur notre infra et nous la ferons même grandir car il est essentiel de ne pas être trop dépendant d’un fournisseur, quel qu’il soit.

Quand même, Microsoft, c’est pas le diable ?

J’avoue que quand je suis allé au Campus Microsoft à Issy les Moulineaux, j’ai un peu eu l’impression de visiter l’Étoile Noire :-D . Mais bon, la guerre des navigateurs et “Linux c’est le cancer” c’était au siècle dernier et depuis Microsoft a bien changé. Ils ont racheté GitHub, ils intègrent un noyau Linux dans Windows 10. Microsoft n’est jamais aussi bon et fréquentable que quand il est challenger. Assurons-nous que cela reste ainsi ;-)

Notes

[1] Et de nombreuses entreprises et administrations annoncent mettre Qwant par défaut sur leurs postes comme BNP Paribas ou l’administration qui va faire une circulaire visant le basculement vers Qwant de 4 millions de postes, ou le lancement de nouveaux produits comme Qwant Causes.

[2] Je rappelle que l’adresse IP est hachée et saltée aussitôt que possible pour empêcher tout rapprochement ultérieur de la requête et de l’IP.

20 May 02:12

Firefox Fenix preview comes to Play Store, you can test it now

by Jonathan Lamont

Mozilla has tried to break into the mobile browsing market a few times with iterations of its Firefox browser on both iOS and Android. Unfortunately, good as the Firefox mobile browser is, it struggled to make headway on either platform. Now, Mozilla is looking to change that.

The difficulties on iOS can be attributed to Apple’s insistence on using WebKit and refusal to let users pick anything but Safari as a default browser.

Android, on the other hand, is a different story. Users can choose to use any browser they want, although using Chrome does have benefits — many apps use Chrome as the underlying engine for their in-app browsers. While you can change this as well, I find the Chrome version works best and most consistently.

Regardless, Firefox on Android has a more significant problem than competing with Chrome. The Android version of the browser never really felt right, nor was it well designed.

However, Mozilla is testing a new Android browser called Firefox Fenix that looks set to change that.

We first learned about Fenix back in March. At the time, users could only download a development APK from an external source to try it out. Now, Fenix is on the Play Store, but you’ll need to jump through some hoops to get it.

How to download the Fenix preview from the Play Store

First up, you’ll need to join a Fenix Nightly Google Group using the same account as the one used with the Play Store. Once you join the group, click the link from ‘Step 2‘ at the top, which will ask you to opt into receiving Nightly builds. Finally, you can go to the Play Store to download the app.

Further, this all falls in with Mozilla’s plan to pull developers away from Firefox for Android. The company announced last summer that after the release of version 68, Firefox for Android would move to the Extended Support Release (ESR) branch. In other words, it will continue to receive security updates but no new features, which should free up developers to work on Fenix instead.

Version 68 is due out on July 9th, 2019. On top of that, a support document about the company’s Android browsers suggests Firefox — codenamed ‘Fennec’ — will reach end-of-life in 2020. Presumably, Fenix will take over at that point.

If you’re an avid Firefox fan, I’d highly recommend downloading and testing out the Fenix preview. It already feels miles ahead of Firefox for Android. The modern design looks fantastic, and it is incredibly quick. Plus, Fenix supports syncing bookmarks through your Firefox account. It even has a dark mode.

Despite that, it is still a preview build, and as such has some stability issues and missing features. Mozilla is also using this as an opportunity to try out some new features, such as a revamped tab manager and a new ‘Collections’ function for saving groups of tabs.

But if this early preview is anything to go by, the future of Firefox is bright.

Source: Mozilla document, Caschys Blog Via: XDA Developers

The post Firefox Fenix preview comes to Play Store, you can test it now appeared first on MobileSyrup.

18 May 06:58

Tech's Tectonic Plates Are Starting to Shift

by Neil Cybart

For the past decade, the giants (Amazon, Apple, Facebook, Google, and Microsoft) have been able to grow while staying out of each other’s lanes. This dynamic has been nothing short of remarkable. However, things are starting to change.

We are seeing the early signs of a new competitive landscape take hold in the tech space. Facebook and Google find themselves increasingly getting squeezed. Meanwhile, Amazon, Apple, and Microsoft are gaining competitive strength. Each is building stronger customer bonds while also expanding its respective ecosystem.

Bumper Cars

One of the best and easiest ways to visualize this changing competitive landscape is to think of the giants as bumper cars. In the beginning, the bumper cars were on a track with a guardrail in the middle preventing head-on collisions. All of the cars moved safely around the loop in the same direction. Despite a few bumps here and there, each company (car) was able to largely do what it wanted without running into too many competitive hiccups.

This dynamic has changed. The guardrail found in the middle of the track has been removed. Head-on collisions are becoming more common as there is no longer a right or wrong direction. Where did the guardrail go? Apple and Amazon tore it apart in their quests to strengthen their respective ecosystems. Apple now finds itself in a league of its own with wearables. In addition, Apple is reaching far beyond its core competency in terms of building out a content distribution arm based on curation. Similarly, Amazon’s Whole Foods, Ring, and Eero acquisitions are byproducts of a company following a singular goal of removing as many friction points as possible when it comes to online commerce. Amazon wants to know more about its customers in order to then be in a better position to sell products.

Sticking with the bumper car analogy, the companies with the slower cars fueled by ad revenue (Google and Facebook) are no longer able to hide within the traffic. Instead, they are increasingly vulnerable, getting hit from multiple directions by faster, more nimble cars fueled by non-ad revenue (Amazon, Apple, and Microsoft). In addition, those faster cars have become much more strategic in deciding when and how to go after the slower cars.

Competition

A number of interesting battles have been unfolding in the tech landscape:

  1. Google is being attacked by Amazon, Apple, and Facebook across a number of segments and industries ranging from AI and digital voice assistants to digital mapping and hardware.

  2. Facebook is being attacked by Apple in the areas of content delivery and private communication.

  3. Apple continues to face modest skirmishes with Amazon, Microsoft, Facebook, and Google when it comes to hardware.

  4. Amazon and Microsoft have their own unique battle forming when it comes to providing tools for businesses.

While these battles have been around for some time, Amazon and Apple are beginning to land some serious punches. For example, Apple shocked everyone when it came to finding success in the area of written content distribution with Apple News. At the same time, iMessage and FaceTime continue to gain momentum and now represent legitimate competition for traditional social networks. Amazon is increasingly becoming a thorn in Google’s side in terms of user data collection via subsidized services.

Three battles in particular stand out to me:

  • Apple vs. Google

  • Apple vs. Facebook

  • Amazon vs. Facebook vs. Google

Apple vs. Google

Google is a services company focused on offering free, data-capturing tools to as many people as possible. The necessity found with such a mission is having access to as many users as possible. This is where Google finds itself in growing trouble. Apple is gaining power as a gatekeeper between Google and the most valuable customers that Google needs for its services: Apple users.

Apple is a design company tasked with coming up with tools capable of changing people’s lives. These tools include a portfolio of hardware, software, and services. Apple is showing increased interest in stepping into Google’s turf and launching its own services where it feels it has something different to bring to the table. Such unique attributes can range from having a much-needed layer of design (i.e. a focus on the user experience) that Google struggles to add to its services, to data privacy and security.

Five years ago, the discussion was about Apple facing the risk of Google turning off its services to Apple users. Today, the reverse is true. Apple is now in the position of power. Google would find itself in deep trouble if its arrangement regarding default search on iPhones and iPads was put into jeopardy.

What changed?

Apple has been leveraging its hardware and software expertise to create a stronger ecosystem of products. This has given Apple the ability to strengthen its customer relationships while still attracting new customers. Said another way, the Apple ecosystem is gaining strength, and that strength is now beginning to extend to the adoption of Apple services.

Set within this changing dynamic, this year’s Google I/O keynote left me completely underwhelmed. Aside from a few flashy yet unmemorable demos, Google found itself relying on what it knows best: data collection and elevating technology over the user experience - neither of which is a winning strategy on its own.

The numbers speak for themselves. According to Apple, the iPhone installed base grew by almost 75M people in 2018. According to my estimates, approximately 40M of those users switched from Android. Google continues to lose its grip on the premium segment of the mobile market.

Apple vs. Facebook

The Apple versus Facebook battle has been the most surprising given how few people saw Apple having any overlap with Facebook. While some were busy suggesting that Apple needed to buy its way into social networking with a flashy acquisition, Apple was quietly putting together the foundation of a different kind of social network. iMessage and FaceTime comprise Apple’s identity network. As Facebook evolved to offer a curated version of the web via News Feed, Apple bet on the relationships that actually matter to people: family and close friends.

Given Facebook’s recently announced pivot to a privacy-focused social platform built around messaging, there is no question that Apple had the right strategy while Facebook went down the wrong path. Messenger and WhatsApp will now be increasingly positioned against iMessage and FaceTime.

With Apple News, Apple was able to crack content distribution in a way that Facebook failed at miserably. The secret ended up being human curation instead of machine learning. Apple continues to work on expanding Apple News to other countries with Canada being the most recent addition. Apple News may just be one of the best new services Apple launched from scratch in recent years.

Facebook vs. Google vs. Amazon

In the battle for commerce, Google, Facebook, and Amazon are increasingly becoming competitors and the battle for ad revenue is only the tip of the iceberg. At a fundamental level, Amazon is trying to systemically remove Google and Facebook from a customer’s memory when it comes to buying products online.

Given Facebook’s renewed push to position Instagram and Facebook as commerce platforms, it’s safe to say things are going to get dicey in the race for users’ attention. In fact, all three companies are targeting the home with hardware devices (speakers, screens, and other smart home devices) given how the home has become an e-commerce engine. In addition, our home is the delivery point for all of those goods. 

We are moving to the point where a consumer will have the opportunity to go all-in on an “Amazon home” in which Echo speakers, microphones, locks, a security system, a Wi-Fi router, and various third-party smart appliances with Alexa built in are all connected to Amazon.

What About Data?

One potential area of pushback to my comments would come from tech proponents who argue that Google is building an insurmountable advantage against peers given its data-capturing services. Such a view could best be described as the “data is everything” school of thought.

For example, voice first and autonomous driving advocates would likely take issue with the claim that Google is losing power in mobile. The fundamental issue that advocates of specialized tech verticals suffer from is not thinking enough about the user experience.

More people are switching from Android to iOS rather than the other way around. That sure doesn’t support the view that consumers are clamoring to use Google services given the company’s data superiority. Meanwhile, other clues such as Pixel smartphone sales being lackluster and smart speakers being used primarily for music consumption and not much more speak to the broader disconnect that has developed between “data is everything” proponents and how people actually use technology.

Changing Landscape

Up to now, many people would position Amazon, Apple, Facebook, Google, and Microsoft as equals when it comes to ecosystem strength and fundamentals. I don't think that is correct. Instead, two tiers have formed. Amazon, Apple, and Microsoft are in the top tier while Google and Facebook make up the bottom tier. Google is gradually losing its power in mobile as Apple and Amazon consolidate power within their own realms. Similarly, Facebook’s business model is coming under fire on all sides. Is it a coincidence that the two companies that originate the vast majority of their revenue from ads appear to be in the toughest positions going forward?

The much more interesting developments will be found not with the rivalry between Amazon, Apple, and Microsoft, but with the competition between the two tiers. As Amazon, Apple, and Microsoft continue to strengthen their ecosystems, a byproduct will be each company wanting to control more of the key attributes powering those ecosystems. This will leave Google and Facebook increasingly on the outside, looking in.

Apple’s licensing relationship with Google will likely be put in a brighter spotlight going forward. According to my estimate, Apple is receiving approximately $9B per year of licensing revenue from Google to be the default search provider on iPhones, iPads, and for Siri. This is a few billion dollars less than the amount of revenue Apple is taking in from the App Store each year.

Apple is increasingly being called a hypocrite in some circles for talking extensively about having a culture based on privacy while at the same time taking billions of dollars from Google to literally get in front of Apple users’ eyes. In my view, the issue isn’t so cut and dry. There is a critical angle to this topic that is often not discussed. Apple users do have the option to choose their own default for search. Apple’s licensing arrangement with Google is also likely tied to the number of users who actually use Google for search.

It’s fair to begin wondering about the long-term viability of Apple’s licensing relationship with Google. It is in Apple’s best interest to continue moving users off of Google services rather than to cancel or end the arrangement. The amount of money Google is paying Apple to be the default search provider will likely still increase. Google has little or no choice but to continue paying more to access what would be a declining portion of the Apple installed base.

Instead of looking for a company to implode as a result of tech’s competitive tectonic plates starting to shift, the equivalent of an earthquake or volcano are found with companies like Facebook and Google pivoting to privacy. While pivots, like earthquakes and volcanoes, are natural and essential, value is found in assessing how such pivots will change the overall landscape. We may never return to an environment in which the five giants were able to thrive next to each other peacefully.

Receive my analysis and perspective on Apple throughout the week via exclusive daily updates (2-3 stories per day, 10-12 stories per week). Available to Above Avalon members. To sign up and for more information on membership, visit the membership page.

18 May 06:56

Apple Smart Battery Case :: Besser am Kabel laden

by Volker Weber

84feea4fd8472c115f652aa070dfcaa8

Ich bin ein großer Fan des Apple Smart Battery Case. Das ist eine Schutzhülle für das iPhone XS, XS Max oder XR, das eine Zusatzbatterie enthält. Mit diesem Case läuft das iPhone den ganzen Tag, selbst wenn man niemals den Bildschirm ausschaltet. Wegen seines Aussehens nenne ich es liebevoll Beluga-Wal.

Aber es hat eine Schwäche, die seit ein paar Wochen vermehrt auftritt: Man nimmt es morgens vom induktiven Qi-Lader und weder das iPhone noch das Case sind aufgeladen. Gestern habe ich so einen Fehler einmal genau analysiert und komme zu einer einfachen Empfehlung: Über Nacht sollte man diese Kombination immer am Kabel laden.

Getestet habe ich den auftretenden Fehler an mehreren induktiven Qi-Ladern und es zeigt sich das gleiche Bild: Man legt das Battery Case auf, der Qi-Lader beginnt den Aufladevorgang und zeigt dies mit einer durchgehend leuchtenden LED an. Nach kurzer Zeit beendet er den Ladevorgang wieder, die LED beginnt zu blinken und das Case nimmt keinen Strom mehr auf. Nach einiger Zeit versucht der Lader den nächsten Aufladevorgang, aber landet in der gleichen Schleife. Der Fehler tritt mit und ohne iPhone im Smart Battery Case auf.

Apple nennt die Schutzhülle "Smart Battery Case" und das ist ausnahmsweise mal keine Marketing-Übertreibung. Das Case ist in der Tat ziemlich smart. Es lädt stets zunächst das iPhone auf und entlädt sich selbst immer zuerst. Meistens hat das iPhone nach einem ganzen Tag nicht einmal begonnen, seinen eigenen Akku zu verwenden.

Apple schreibt, das Case lade am schnellsten an einem USB-C-Netzteil mit mindestens 18 W. Zum Vergleich: Das iPhone-Netzteil liefert 5 W (1 A bei 5 V) und das iPad-Netzteil bis 12 W (2,4 A bei 5 V). Das 2018er iPad Pro wird per USB PD (Power Delivery) mit einer höheren Spannung geladen. Apples eigenes Netzteil liefert 18 W, die von mir präferierte tizi Tankstation insgesamt 75 W, davon maximal 60 W per USB PD. Auch die neueren iPhones sowie das Smart Battery Case können von dieser höheren Leistung profitieren, wenn man das optionale Lightning-Kabel mit USB-C-Anschluss nutzt. Ich verwende aktuell das Kabel von Apple, werde aber auf das tizi-Kabel umsteigen, sobald es verfügbar ist.

Die höhere Leistung der Tankstation nutzt iPhone und Battery Case gleichermaßen. Beide können gleichzeitig mit hohem Tempo laden, fahren aber mit zunehmendem Füllstand auch die Leistung zurück, um ihre Akkus nicht zu überhitzen. Selbst ein einfaches iPhone-Netzteil kann iPhone und Battery Case über Nacht auffüllen, aber für einen schnellen Tankvorgang braucht man die Mehrleistung.

Der Ladevorgang über USB oder Qi ist komplizierter als man denkt. Beide Seiten, der Lader und die Kombination von iPhone und Case müssen miteinander verhandeln. Das geht bei der Kombination Smart Battery Case und induktivem Qi-Lader leider manchmal schief. Ich habe die Hoffnung, dass Apple diesen Vorgang mit einem Software-Update stabilisiert. Mit iOS 12.3 ist das noch nicht passiert.

Deshalb lautet meine Empfehlung, über Nacht stets das Kabel zu verwenden, damit man nicht morgens mit leerem Akku dasteht. Das betrifft nur das Smart Battery Case. Das iPhone selbst funktioniert bisher einwandfrei.

18 May 06:56

Connect where it matters

by Volker Weber

920ea600f2df9df8d254b8a91089563e

People feel connected when they are understood and appreciated. My friend’s aunt taught her this when they walked together down a busy road. Her aunt stopped to talk to a homeless man. With no money to give him, she started asking questions about his dog, chatting to him about her own dog. The interaction took 30 seconds. The man’s eyes shone back bright, engaged. As they walked away, my friend’s aunt whispered, “People want to be recognized. It reminds them they exist. Never take that away from anyone.” Lesson learned.

Interesting read, if only for advice how not to get a divorce.

More >

18 May 06:55

I freue mich das ich Ende September über offene...

by Ton Zijlstra

I freue mich das ich Ende September über offene Daten sprechen werde auf der Energie.Digital Konferenz in Münster. Das ist eine gute Gelegenheit unsere Erfahrungen mit offene Daten als Verwaltungsinstrument und als Zündholz für die Handlungsfähigkeit von sehr unterschiedlichen Beteiligten zu teilen. Gerade auch bezüglich Energiewende und Stadtwerke, die Themen der Konferenz. Ausserdem kam die Einladung von Max, und wird auch Robert mit dabei sein.

18 May 06:53

Introducing The New Librem Chat

by David Seaward

How do you do again?

Let us tell you about the new Librem Chat: the no worries, free end-to-end encrypted chat, VoIP and video-calling service.

Social good, freedom personal privacy and security are things you take seriously (and probably think everyone else should, too). And maybe you already know that the Librem Chat is part of Librem One, a suite of privacy-protecting, no-tracking apps and services which aim to make the world a better place.

Librem Chat is:

Decentralized – join chatrooms at librem.one, matrix.org, or any other Matrix domain
Private – create end-to-end encrypted chatrooms that only participants can see
Text, voice and video – communicate any way you want to
Mix and match – use either the official app or a compatible app; use our app on a compatible service
Convenient – connect from any device with a compatible app
No ads – we don’t sell ad space, we don’t track you
Free – we don’t think there’s much need to explain this one

What else can we say? It is a total, privacy-respecting replacement for all those intrusive chat services. One you can either use to have a friendly, one-on-one conversation with your best friend, or to call large groups of people. It is a real-time communication app, making real-time communication work seamlessly between different service providers. And since Librem Chat is based on the universal Matrix chat protocol, you can be sure you’ll be able to chat with all your relevant people, either inside or outside the librem.one domain, because we do not lock-in to one technology company. Just remember that trust is per device – so only install Librem Chat on devices you own and trust, and be sure to remove any devices that you no longer use.

Talk with friends and family, share photos – anything you’d like. We hope you enjoy, and stay tuned for more news on the Librem One services!

 


Purism offers high-quality privacy, security, and freedom-focused computers, phones, and software. Our platform is meant to empower everyone. We believe people should have secure devices and services that protect them rather than exploit them, and we provide everything you need in a convenient product bundle.

We like to give back. Librem Chat is built with free software, created by security and privacy experts. Learn more about how Purism contributes to its community.

The post Introducing The New Librem Chat appeared first on Purism.

18 May 06:53

Samsung Galaxy S10 :: Ich mag das

by Volker Weber

b04bc4d760948dc228ecf619b8d4b6c2

Ich bin ein Hardcore-iPhone-Nutzer, der sich immer wieder andere Android-Telefone anschaut, die meisten davon im mittleren Preissegment. Mittlerweile gibt es um 300 Euro herum sehr gute Angebote. Seltener habe ich auch mal ein richtig teures Android-Flagship, meistens von Huawei oder Samsung.

Dieses Galaxy S10 ist mir dabei richtig ans Herz gewachsen. Nach mehreren Anläufen hat Samsung mit dem One UI endlich den Bogen raus. Ich lasse mich nicht auf die Samsung Apps ein, weil ich meine Daten auf iPhone und Windows brauche, aber wäre das mein einziges Smartphone, dann hätte ich keine Schmerzen mehr mit der Software. Das ist wirklich ein riesiger Fortschritt. Nur bei den Gesten hat Samsung noch gepatzt.

Das Beste, was ich zu Bixby, Samsungs Antwort auf Google Assistant, sagen kann: Ich bin ihm erfolgreich aus dem Weg gegangen. Man kann den zusätzlichen Button so konfigurieren, dass er nur auf Doppelklick diesen Karl Klammer ruft. Und das passiert mir nicht.

Zur Hardware muss man eigentlich nicht viel sagen. Perfektes Display, Spitzenkamera, sauschnell, elegant, und interessanterweise trotz Glasoberflächen sehr robust. Man schaue sich nur mal dieses Bild an:

4d14356cc6f44b38c32f1ebbef2698b6

Mir ist das S10 mindestens zehnmal heruntergefallen, und sowohl Bildschirm als auch Rückseite haben das klaglos ertragen. Nur der Rahmen um die Kameras hat ein wenig gelitten. Dass es mir herunterfällt, liegt an zwei Dingen: Erstens ist es sehr glatt, sodass es mit dem Display nach unten anfängt, von glatten Oberflächen zu rutschen. Und zweitens ist es sehr schwierig, das S10 zu halten, ohne gleichzeitig auf dem Rand des Bildschirms Aktionen auszulösen. Ich weiß, dass abgerundete Kanten möglichst rahmenloser Bildschirme der letzte Schrei sind, aber praktisch ist das nicht. In dem Sinne ist das S10e mit seinem flachen Bildschirm wahrscheinlich die bessere Wahl.

Aber ich wollte unbedingt diese Weitwinkelkamera:

1b89fe8d013844bfee573128ed7b275f

Auf ein Zoom kann ich verzichten, weil man meistens auch näher rangehen kann. Aber Weitwinkel ist immer dann wichtig, wenn man in einem Raum steht und nicht weiter zurückweichen kann. Sowas wünsche ich mir auch für das nächste iPhone.

Nein, das soll kein Kameratest sein. Davon gibt es bereits jede Menge. Die Unterschiede zwischen den besten Smartphones sind derart gering, dass die Tester mittlerweile auf extreme Lichtsituationen wechseln, weil "normale" Fotos einfach perfekt sind.

Was mir besonders gefällt: Monat für Monat hat Samsung als erster das Security Update geliefert, noch vor den AndroidOne-Geräten. Für Otto Normalverbraucher will Samsung das drei Jahre durchhalten, bei den Enterprise-Geräten gar vier. Das ist der richtige Weg.

Bei den Preisen hat Samsung schon recht schnell Federn lassen müssen. Aktuell kostet das S10 schon gut zweihundert Euro weniger als beim Start. Das S10e nähert sich bereits den magischen 500 Euro. Die stärkste Konkurrenz bleibt dabei das Galaxy S9, das ebenfalls Android Pie mit One UI hat. Aber Vorsicht: Da ist von den drei Jahren bereits gut eins abgelaufen.

18 May 06:49

Piece of Cake

by Bryan Mathers
My favourite conference ever

At the recent Creative Commons Summit in Lisbon, I tuned in to all sorts of insight from all sorts of people. But one of my favourite morsels of wisdom was this off-the-cuff comment by Dr. Doug Belshaw, which should serve as hearty wisdom for all future conference organisation teams.

But maybe these words were simply a metaphor for the rich choice of contributions? Who knows…

The post Piece of Cake appeared first on Visual Thinkery.

18 May 06:47

25 Years of Loud, Expensive Space Heaters.

by Stanislav


A half-written draft of this piece has been living on my HDD for nearly half a year. Recent discussions re: the subject of "aging and death of PC irons" prompted me to dust it off and quickly post. Regularly-scheduled programming will resume shortly...


"The tools, the means and the methods disappear under the overwhelming dead weight of simulacra and cvasi-originals nobody knows how to distinguish from the genuine article anymore long before the activities they used to support are altogether renounced as such. That's be why you're still pretending to be engaging in computing long after the last computers became unavailable to you. That's why you can't buy silk anything, that's also why I have to argue with the clerks over cotton socks ("oh, it only says 80% cotton 20% synthetic" "right" "that's the elastic, you don't want socks without elastic like for diabethics do you ? the kind that crumple around the ankle and don't stay up ?" "..." They're always shocked when they proclaim so and so article "no longer exists" and I point out I'm wearing it."

-- Mircea Popescu, "Domestic casting"


"...why are we even _thinking_ about home computer equipment when we wish to attract professional programmers? in _every_ field I know, the difference between the professional and the mass market is so large that Joe Blow wouldn't believe the two could coexist. more often than not, you can't even get the professional quality unless you sign a major agreement with the vendor — such is the investment on both sides of the table.... ...they don't make poles long enough for me want to touch Microsoft products, and I don't want any mass-marketed game-playing device or Windows appliance _near_ my desk or on my network. this is my _workbench_, dammit, it's not a pretty box to impress people with graphics and sounds. when I work at this system up to 12 hours a day, I'm profoundly uninterested in what user interface a novice user would prefer."

-- Erik Naggum


As a boy, I had one of these "breadboxes":

Commodore 64.

This small but nearly perfect "micro" came with full electronic schematics, and was a joy to use. But, more pertinently to the subject at hand, it ate less than 10 watts of current at peak load, and consequently needed no forced air cooling:

Commodore 64 Internals.

You could hear the birds sing while using the Commodore.

After this, came the time of the ubiquitous 486 "AT" towers, where already the power supply blower could be heard from across the room...

486 with turbo

... but at least the CPU needed no fan of its own:

Cyrix 486


And then, came the "Pentiums" etc., and suddenly it was considered acceptable for a desktop computer to sound like a vacuum cleaner and draw in similar quantities of dust.

I have always despised the CPU fan. Possibly because -- in spite of living for many years in the "country of the deaf" -- I did not partake in their peculiar heathen ritual whereby they blow away their high-frequency hearing (this thing they call "concerts".)

When I first began to work for serious pay, soon enough I was able to build a "workstation" (in my conception, a workstation is a machine that you expect to work with, daily, and consequently ought to consist of the best components that your money can buy.) But the idea that such a machine ought to loudly suck in several liters of air and dust every second, I found quite offputting. And so, went and purchased a Toyota radiator, and ended up with this:

Water AMD Front

There was nothing "overclocked" inside the pictured dual-"Athlon" box. The experiment with piped water was intended strictly for noise-deadening and "uptime" (i.e. avoid disassembly for cleaning) :

Water AMD Rear

After a few days of temperature measurements, I proceeded to remove the two fans which came with the chassis. But there still remained the one in the power supply. Initially I thought to fill the latter with transformer oil and seal a copper heat exchanger coil inside; but at the time did not have a welder, and so it stood as it were.

Water AMD

Prefab "water blocks" for various CPU had just appeared on the market, so it was not necessary to make them by hand:

Water CPU Block

Pumps specifically built for this purpose, however, were not available, so the chosen pump was of the sealed magnetic type used in fish ponds. It circulated about 4 litres of distilled water + antifungal:

Water AMD Side

HDD water block:

Water HDD

And video card...

Water GPU

... which, some five years later, developed a leak and drowned the machine. Rubber hoses with compression fittings are not a reliable component.

The reader is invited to point and laugh at the author's folly.

After this, and to this day, I live with the whine of fans, just like everyone else. And yes it is possible to buy "quiet" fans. But when there are six or seven of them, and you run your machine 24/7 (with, remember, two -- or even four -- CPUs, a full "server" board's worth of RAM, etc., it's after all a workstation, you work on it...) , and at full CPU load in the night (why would you want to have idle cycles in your workstation? you paid for it, let it work!) and dust slowly accumulates...

Eventually, the airflow slows, the two (or if you're "loaded", four, or more...) 200 watt processors begin to warm the "oven", and capacitors -- pop.

And if you, like me, use strictly pre-NSA-Fritzchip "egg boiler" AMD irons, you will be in search of a costly and potentially-unobtainable set of replacement parts.


It is here that I must point out that there is nothing physically impossible, or even especially difficult, about constructing a hermetically sealed electrical machine which disposes of multiple kilowatts of waste heat via adequate passive cooling.

Your local power company fields thousands of them:

Mains Transfomer

In the early 2000s, Korean company "Zalman" marketed a kit for constructing a dust-sucker-free PC:

Zalman TNN

This was a pretty solid item, 40kg or so of "hedgehog" thermal mass, at several thousand $. Unfortunately, "Zalman" folded before it could mass-produce a multi-CPU variant of this system.

A roughly similar item is apparently still sold today:

HdPlex

... but it is of course a "consumer" piece of rubbish, limited to a single (and underpowered) CPU, on account of a laughably-inadequate "hedgehog".

If anyone were to market a "mains transformer"-style 100%-passively-cooled chassis for serious workstations -- I would buy it. I do not care if it were to have the size, weight, and cost of an upright piano. (I expect, on purely physical grounds, that it must -- especially if built with a 2-3x engineering margin.)

A PC workstation that could be radiosnoop-shielded, filled with inert gas, and welded shut -- and reliably expected to work for decades, would IMHO be a quite serious advance -- in a market where serious advances have been conspicuously absent for many years.

18 May 06:46

Tough Questions I Wanted To Ask

by Gordon Price

[Update: Do read Geoff’s comment at the end of this post.  Powerful and provocative.]

 

SFU Vancouver – the downtown campus – is now 30 years old since SFU came down from the mountain.  It’s what President Andrew Petter says helps make SFU the engaged university.

Engagement is the particular work of the Centre for Dialogue, Public Square, City Conversations and the City Program – all of which had events happening on Thursday, and two of which featured Mary Rowe, the speaker for this year’s Warren Gill Lecture.  They certainly engaged me, with more questions than I had a chance to ask.  Here are some.

INEQUALITY AND DIVERSITY

When considering the rural-urban divide in Canada, Mary began with two points that are pretty much taken as self-evident in academia: diversity is good, inequality is bad.  Policies for healthy cities should encourage the former and reduce the latter.

But what if inequality is a measure of diversity?

Since a diverse city is one in which there are many different kinds of people and pursuits, do those differences of equality become magnified with greater diversity? In fact, is increasing inequality how we know the city is more diverse?

Let’s say public policies were effective at reducing inequality by redistributing benefits, by building the infrastructure, physical and cultural, to build a stronger middle class.  Isn’t the result a more homogenous city, perhaps less likely to generate the cultural and economic energy we associate with places like New York in the 1970s, London in the 1800s, Florence in the 1500s?  Does equality mean boring and less diverse?

 

MAKING CHOICES IN A CLIMATE EMERGENCY

At noon, at City Conversations the topic was the climate emergency, with Councillor Christine Boyle (who introduced the climate emergency motion at council and is interviewed here on PriceTalks); Atiya Jaffar, digital campaigner for 350.org;  and New Westminster Councillor Nadine Nakagawa.

I had three ‘tough questions’, with the opportunity to ask only one – itself somewhat facetious:

Given that there are three women speaking on the same topic, and only women, what about gender diversity?

Would the question have been asked if there were only men on the panel?  Probably, but it likely wouldn’t have been needed.  ‘Manels’ are just not done at events like this.  And, as City Conversations director Michael Alexander clarified, there was originally meant to be a male speaker who had to cancel at the last moment.

The question was really meant to probe why there are so many women leading the charge to deal with climate change, from AOC to Greta Thunberg to Christine Boyle.  I doubt it’s a coincidence.

 

WHAT’S VOLUNTARY IN AN EMERGENCY

The next two questions were meant to be tougher.  One of Christine Boyle’s slides was a simple sentence, to the effect that response to the climate emergency will not be voluntary.

But how involuntary should it be?  Should democratic norms and legal constraints be suspended to deal with an existential threat, a true emergency and the catastrophes that are already underway?

We already accept that someone in charge – a general in name or effect – may have to suspend rights and give orders when a wildfire requires evacuation.  What other orders may have to be given, what rights suspended, what property seized as the emergency worsens?

For instance, many call for a halt to fossil fuel production, even it devalues the resource and threatens immediate economic growth.  Necessary expropriation?  That’s nothing compared to the responses called for when thousands, perhaps millions, of climate refugees are on the move.

So: Will we give sufficient power and resources to those with the mandate to save us –  even if it means rolling over the rights and interests of ourselves and others?

 

WHEN REALITY DOESN’T FIT THE NARRATIVE

The third question is the toughest, in part because it’s specific, mostly because it departs from the narrative of our time – the one evoked at the beginning of every SFU event when, rather like a prayer, we acknowledge that we are on the unceded lands of the Musqueam, Squamish and Tsleil-waututh.

Each panelist noted the imperative of including indigenous peoples in any process, any plan, any consequences when dealing with the climate emergency.  First Nations, it’s believed, will be better able to respond to this imperative if included and have more legitimacy than the colonialist settlers.

Unfortunately … one of the first examples we have of choices being made by a first nation with full possession and rights to the use its land is one of the worst: Tsawwassen Mills and Commons – a giant auto-dependent single-use shopping complex constructed on paved-over agricultural land, on the Fraser Delta, on the Pacific Flyway, on land below sea level.

A single example of almost everything we shouldn’t and wouldn’t do, and yet for which there is no doubt that the Tsawwassen had the right and the economic justification to do so.

So now, would you object to an extension of the Tsawwassen Mills development on more of the delta lands if it set the bar even lower?

It’s a question most prefer to avoid.  The dissonance is too great between rhetoric and reality.

But these questions and others have to be part of the conversation that we say we need more of.  Especially when they don’t fit the necessary narrative.

18 May 06:44

‘Otter + Pop’ is the OtterBox PopSocket smartphone case line of your dreams

by Patrick O'Rourke
Otterbox Popsocket case

While until now I’ve personally not understood the phenomenon that smartphone ‘PopSockets‘ have become, one thing has always been clear about the ever-present accessory — they’re difficult to use with smartphone cases.

That’s why OtterBox’s new ‘Otter + Pop Symmetry‘ and ‘Defender‘ series of cases is so useful. The cases combine the ample protection Otterbox enclosures have offered for years with a helpful PopSocket on the rear for added grip. In fact, it’s strange that more case manufacturers haven’t already adopted a similar design.

The PopSockets on all of the ‘Otter + Pop’ cases can easily be swapped with any PopTop PopSocket. On that note, OtterBox currently sells a white and purple PopTop covered in Llamas that I’d like to own. It’s also worth mentioning that PopSockets feature two levels of expansion, which makes them easier to use depending on the size of your hands. Since I quickly realized that I prefer to have my entire hand slid under the PopSocket, I usually opted for the fully expanded version.

I tested out a few of Otterbox’s ‘Otter + Pop’ cases, but mostly used them with the iPhone XS Max. Given the phone’s ample 6.5-inch display, it can be pretty unwieldy, even for people like myself with larger hands. In this case, I found having a PopSocket-equipped enclosure on the XS Max to be great way to have a better grip on the phone, especially if I was walking or needed to use it with one hand.

While I still don’t necessarily think having access to a PopSocket is something I need all the time in my life, I can see this case line being beneficial to those that do — especially people with smaller hands that happen to be using larger phones. You can also always just pop the PopSocket off if you happen to not feel like using it one day.

While the Otter + Pop Defender series is probably a little too bulky for my taste, it does offer more protection when compared to the standard Symmetry series, including a built-in screen protector, snappable two-piece enclosure and overall a thicker build designed to protect your smartphone better.

That said, both series of cases feature the durable design OtterBox has become known for over the years, including precise and covered button/camera cutouts.

Below are a couple of photos of the cases included in the line:

Otter + Pop Symmetry Series Blue Nebula Case for iPhone 8/iPhone 7

OtterBox Popsocket Nebula case

Otter + Pop Symmetry Series Black Case for iPhone 8/iPhone 7

OtterBox Popsocket Black

Otter + Pop Symmetry Series Mauveolous case for iPhone XS/iPhone X

Otterbox Popsocket pink case

Otter + Pop Symmetry Series Lilac Dusk case for iPhone XS/iPhone X

Otterbox Popsocket Puple case

Otter + Pop Symmetry Series Go To Blue case for iPhone 8 Plus/iPhone 7 Plus

OtterBox Popsocket Blue case

The Otter + Pop Symmetry series are available for the iPhone XS, iPhone XS Max, iPhone XR, iPhone 8, iPhone 8 Plus, iPhone 7 and iPhone 7 Plus. 

Otter + Pop Defender Series Case for iPhone 8/iPhone 7

Otterbox Popsocket defender case

The Otter + Pop Defender series is also available for the iPhone X, iPhone XS, iPhone XS Max, iPhone XR, iPhone 8, iPhone 8 Plus, iPhone 7 and iPhone 7 Plus. 

Otter + Pop Defender cases range between $79.95 and $89.95 CAD. Symmetry series cases are priced between $64.95 and $74.95 CAD.

MobileSyrup utilizes affiliate partnerships and at times we include these link in our posts. These partnerships do not influence our editorial content, though MobileSyrup may earn a commission on purchases made via these links.   

The post ‘Otter + Pop’ is the OtterBox PopSocket smartphone case line of your dreams appeared first on MobileSyrup.

18 May 06:42

Why the Guardian is changing the language it uses about the environment | Environment

mkalus shared this story from The Guardian.

The Guardian has updated its style guide to introduce terms that more accurately describe the environmental crises facing the world.

Instead of “climate change” the preferred terms are “climate emergency, crisis or breakdown” and “global heating” is favoured over “global warming”, although the original terms are not banned.

“We want to ensure that we are being scientifically precise, while also communicating clearly with readers on this very important issue,” said the editor-in-chief, Katharine Viner. “The phrase ‘climate change’, for example, sounds rather passive and gentle when what scientists are talking about is a catastrophe for humanity.”

“Increasingly, climate scientists and organisations from the UN to the Met Office are changing their terminology, and using stronger language to describe the situation we’re in,” she said.

The United Nations secretary general, António Guterres, talked of the “climate crisis” in September, adding: “We face a direct existential threat.” The climate scientist Prof Hans Joachim Schellnhuber, a former adviser to Angela Merkel, the EU and the pope, also uses “climate crisis”.

In December, Prof Richard Betts, who leads the Met Office’s climate research, said “global heating” was a more accurate term than “global warming” to describe the changes taking place to the world’s climate. In the political world, UK MPs recently endorsed the Labour party’s declaration of a “climate emergency”.

The scale of the climate and wildlife crises has been laid bare by two landmark reports from the world’s scientists. In October, they said carbon emissions must halve by 2030 to avoid even greater risks of drought, floods, extreme heat and poverty for hundreds of millions of people. In May, global scientists said human society was in jeopardy from the accelerating annihilation of wildlife and destruction of the ecosystems that support all life on Earth.

Other terms that have been updated, including the use of “wildlife” rather than “biodiversity”, “fish populations” instead of “fish stocks” and “climate science denier” rather than “climate sceptic”. In September, the BBC accepted it gets coverage of climate change “wrong too often” and told staff: “You do not need a ‘denier’ to balance the debate.”

Earlier in May, Greta Thunberg, the Swedish teenager who has inspired school strikes for climate around the globe, said: “It’s 2019. Can we all now call it what it is: climate breakdown, climate crisis, climate emergency, ecological breakdown, ecological crisis and ecological emergency?”

The update to the Guardian’s style guide follows the addition of the global carbon dioxide level to the Guardian’s daily weather pages. “Levels of CO2 in the atmosphere have risen so dramatically – including a measure of that in our daily weather report is symbolic of what human activity is doing to our climate,” said Viner in April. “People need reminding that the climate crisis is no longer a future problem – we need to tackle it now, and every day matters.”

… to keep the world focused on the environmental crisis we’re facing. The Guardian gives reporting on climate, nature and pollution the prominence it deserves, stories which often go unreported by others in the media. At this pivotal time for our species and our planet, we are determined to inform readers about threats, consequences and solutions based on scientific facts, not political prejudice or business interests. But we need your support to grow our coverage, to travel to the remote frontlines of change and to cover vital conferences that affect us all.

More people are reading and supporting our independent, investigative reporting than ever before. And unlike many news organisations, we have chosen an approach that allows us to keep our journalism accessible to all, regardless of where they live or what they can afford.

The Guardian is editorially independent, meaning we set our own agenda. Our journalism is free from commercial bias and not influenced by billionaire owners, politicians or shareholders. No one edits our editor. No one steers our opinion. This is important as it enables us to give a voice to those less heard, challenge the powerful and hold them to account. It’s what makes us different to so many others in the media, at a time when factual, honest reporting is critical.

Every contribution we receive from readers like you, big or small, goes directly into funding our journalism. This support enables us to keep working as we do – but we must maintain and build on it for every year to come. Support The Guardian from as little as CA$1 – and it only takes a minute. Thank you.

Accepted payment methods: Visa, Mastercard, American Express and Paypal
18 May 06:42

‘Reduce’ and ‘reuse’ may do more good today than ‘recycle’ - The Globe and Mail

mkalus shared this story .

It is time for a big rethink about recycling. For years now, cities have been urging residents to sort their trash and put the recyclable stuff in the blue bin for pick-up. Most people happily go along. Recycling gives them the sense that they are doing something in their daily lives to protect the environment. But does it really work? Legitimate doubts have begun to creep in.

As Jeff Lewis and Molly Hayes wrote in the Globe this week, Canada’s recycling business is in “full-scale crisis, stung by rising costs – and inundated by a mountain of trash no one wants to buy, or even, in many cases, take for free.” China’s decision to stop importing many recyclables has left cities across the country scrambling to find a place to send the stuff. Prices for everything from newspaper to cardboard to the plastic film from plastic bags has plummeted. Toronto has lost millions in revenue.

The recycling outfits that are still willing to pay for these products are much more picky about what they will take. Because only the purest and highest grade passes muster, cities are being forced to sort and cleanse the recycling stream more thoroughly. That takes time and costs money. Cities must either pay more for hand-sorting or invest in ever more advanced sorting equipment. They must also spend money on ads pleading with residents not to put shoes, black plastic, lined coffee cups, greasy pizza boxes, old garden hoses or dead hamsters in the blue bin.

Toronto’s website includes an “important reminder about coffee pods”: they go in the garbage. The city actually conducted a survey on the use of coffee pods to see how big the problem was. Among the other pro tips in its encyclopedic instructions on the art of recycling: Remove and separate the plastic bags or covers that flyers and magazines come in. Clean and rinse food containers. Place the metal top of a cardboard frozen-juice can inside the can and pinch it closed. Don’t put your recyclables in clear plastic bags; loose in the bin is better – except in the case of shredded paper; it should go in a clear plastic bag, tied closed.

All of this fussing takes considerable effort, both for the resident and the city. It might be justified if recycling were doing a great service to Planet Earth. Often, it isn’t. It would make sense if the stuff we were recycling was made from rare or vanishing resources. But we are not short on glass, metal or plastic. Paper comes from trees that are often grown and harvested for that purpose.

It might make sense if we had nowhere to put the stuff. But Canada has plenty of space and modern landfills are engineered to protect the water and soil around them. Burying an inert object like a plastic bottle should not be considered a mortal sin. It may be better for the planet than shipping it across the world to some country that would still take it. An environmental audit might find that making a new plastic bottle from fresh material is the superior option.

Burning trash that is impractical to recycle is another perfectly reasonable option. Today’s high-tech incinerators scrub out pollutants and often produce energy that can be fed into the electrical grid. Many green-minded European cities use them.

There is another way out of our recycling fix, too, of course. Use less packaging in the first place. Fill a reusable water bottle instead of buying one from a store; Toronto’s tap water is wonderfully clean. Buy food in bulk and bring your own bags. “Reduce” and “reuse” may do more good than “recycle” in that familiar three-part mantra.

Some recycling still adds up. Aluminum pop cans remain in demand, for example. But cities should consider dropping products from the blue bin if the crisis in the recycling industry persists and they can’t find buyers who will pay a decent price. In considering what to recycle, they should put cold logic ahead of sentiment. If it makes economic and environmental sense, assign it to the blue bin. If not, toss it.

17 May 02:17

Recommended on Medium: Write joyous git commit messages

Tips (or a convention) for writing good commit messages in your source code version control.

I have been known to write very long git commit messages. What follows is a guide to writing good commit messages in a style that I like for my projects.

This is a work in progress. Feel free to make suggestions.

Why I have high expectations for git commit messages

There are two main reasons why I care about git commit messages in my projects:

  • Some projects are very serious either because of web security issues or human safety, and serious projects require accountability. When something goes wrong in these projects, it is important to know the exact cause: what code change was incorrect, which end-users are affected by the problem, why the change was made, and what are the risks if the code is reverted while trying to fix it.
  • Good work deserves to be joyously shared. After spending a week on a new feature, it would be a shame if the creativity, problem solving skills, and tanancity that went into it were forgotten. Not just for your ego, but because your whole team benefits from learning about how challenges were overcome.

There are of course many other reasons, but they’re less important to me. Some of those reasons include consistency, ease of reading with git tools, and the ability for your changelog/release notes writers to understand the changes enough to be able to summarize them for a different audience.

A long git commit message isn’t a replacement for code comments, unit tests, end-user documentation, and discussion in GitHub issues and pull requests. Those are all good things too. But in my projects, I have particularly high expectations for commit messages.

Here’s my preferred way to write a good commit message. First we’ll start with the basic structure of a commit message.

Every git commit message should have the same first three lines:

Describe the commit in a short sentence fragment
(blank line)
This is an example commit message. The first line is a short summary. The second line is blank. The third line --- this line --- is a longer paragraph explaining the changes in the commit.

The first line should…

The first line is the hardest. It should:

  • Be a short description of all of the changes in the commit.
  • Be between 50 and 72 characters.
  • Start with a capital letter (because it looks nicer).
  • Start with an infinitive verb about what the application will do after the commit like “Show,” “Compute,” “Deallocate.” Some say to use the imperative tense, which is basically the same thing. If you can’t find the right verb, you can also use an infinitive verb about your action like “Fix,” “Add,” “Revert,” “Make” as a last resort. (Don’t use “Fixed,” “Reverting,” “Addition” — those aren’t infinitive verbs.)
  • NOT end with a period (because it looks nicer).
  • In big repositories, add context using a “[bracketed phrase]” at the start.

Here are some examples of first lines for commit messages:

Show the user help text when the mouse hovers over the item
-
Compile with optimizations turned on
-
[documentation] Explain command-line arguments better

It’s sometimes hard to find a good verb that describes program behavior, so if you can’t find a verb like that, you can fall back to a verb that is about the action you are taking, like:

Fix the document to include more details
-
Revert the last commit which broke the build

Note the difference between describing the application’s behavior (“Show the user”) and describing your coding behavior (“Add a file”)! Describing the application’s behavior is best.

Then there should be a blank line.

(see why)

After that, write a longer explanation of the changes.

In general:

  • Use Markdown to format your text. Some tools like GitHub will render Markdown when showing commit messages.
  • Use asterisks bullets when you need to explain a long list of changes.

Here’s an example of a short commit message using Markdown:

Fix the document to include more details
More information about the application was added:
* src/main.c: Command-line arguments now have help text.
* docs/commandline.md: Documentation added for the command-line arguments.

Your audience is junior members of your team.

The way you describe your changes and the technical jargon you use should be appropriate for communicating to a junior member of your team. So:

  • Use technical jargon and assume familiarity with the purpose and general architecture of your project only to the extent that a junior member of your team will understand it. (Jargon is good when it’s clear and concise to your audience!)
  • Your commit message is an opportunity to explain this part of your project to team members who aren’t as familiar with it.
  • But it’s not just for junior team members — it’s also to make your message future-proof. In a few years, you’ll forget how your code works, or someone else might have taken over this part of the project. Write for future team members too.

What to say in a commit message after the first line

Good commit messages will explain the same changes four times:

  1. From the user’s perspective: Steps to reproduce a bug, user’s goals, what they can see, who is affected.
  2. From a manager’s perspective: Design choices, your creativity.
  3. From the code’s perspective: A line-by-line or file-by-file summary.
  4. From git’s perspective: Any related commits in this or another repository, especially if you are reverting earlier changes. Related GitHub issues.

Your message will generally answer the following questions in the order they are below. Answer each question in a separate paragraph separated by blank lines. If you’re writing a commit message right now, go down this list to write your message.

What problem is being solved by the commit? That might be a bug, a missing feature, or an improvement to a part of the application. At this point, don’t talk about particular code changes — talk about it from a user’s point of view. Use the past tense for bugs and the present tense for new features. Examples:

The program was crashing.
-
Users were not able to install the application.
-
The application can now output verbose information.

If the commit is fixing a bug, answer how the bug was discovered. What steps did a user take to encounter the bug? What are the pre-conditions for the bug to appear? Use the present tense. Examples:

When a user selects File -> New, the application crashes before the old document could be saved.
-
If application is installed in a read-only directory, then some menus do not appear.

If the commit is adding a new feature, explain what sort of end user is going to benefit from the feature and why. Example:

Users who have MacOS computers need to be able to run the application too.

If the commit is fixing a bug, explain what the mistake in the application is. Example:

The program assumed that all users would be using the same operating system --- that's wrong.

Why did you make the change this way? Explain the architecture of the change. There may be multiple ways you could have fixed the bug or designed the new feature. Why did you do it your way? Discuss alternatives. This is your chance to show how amazing your work was. Write as much as you can. Don’t talk about code yet though. Example:

A permissions check solves the bug. A check could have been added at program startup or in the File -> New menu handler. I added the check in the File -> New menu handler so that the program would start.
This was a hard problem to solve because there's no documentation in the component for how to write permissions checks, so I had to read the source code, learn some Typescript, buy the author a coffee, drive 100 miles to the nearest public library, and devise a new strategy for creating menu handlers.

Explain every code change. Provide an explanation for every code change you made. This is the time to talk about the source files. You can explain every line you modified, or every function you modified, or every source file you modified — as much as you need to ensure the reason for every change is clear. Bullets are good here. Use the present tense. Example:

* src/main.cpp: The function parameters are updated and all of the places the function was called were updated.
* src/driver.cpp, start() function: This function is removed because it is no longer needed.
* src/driver.cpp, end() function: This function is added performs cleanup on program exit. It is used in main.cpp.

If the commit is fixing a bug, find the commit that caused the bug and explain its impact. What commit caused the bug? What users are affected by the error? What program versions were this bug included in? Examples:

This bug was caused by commit 24efaa88b17a754367585d6dab601fcdf19edcbf on May 15, 2019. At that time, we tried to fix a related problem. The fix was included in version 1.2 of the application and affects all users of that version (and later) if they run the application with Administrator privileges. This commit reverts part of that commit.

Mention any GitHub issues related to the commit. GitHub will look for any #+number tokens and add cross-references to your issues for you. If you have another issue tracking system, add ticket numbers without #-signs so that GitHub doesn’t think you’re mentioning an issue. Examples:

See #100.
Fixes #101.
ZenDesk ticket 1001.
17 May 02:16

NewsBlur Blurblog: Announcing our ‘What Lies Beneath’ CONTACT 2019 exhibitors

sillygwailo shared this story from 500px Blog.

For the “‘What Lies Beneath’ Exhibition” Quest, we asked the 500px community to submit their most impactful conceptual photography—photos that would spark an imaginative streak in anyone who saw them. As usual, our community came through, with nearly 20,000 submissions from talented photographers out of 44 different countries around the world, such as Tanzania, Georgia, Norway, Mozambique, Lithuania, Kazakhstan, Greece, and Cuba.

Inspired by Allison Morris‘ unsettling and provocative imagery, which will be shown at 500px HQ this May as part of Scotiabank CONTACT Photography Festival, these are the winning images in our ‘What Lies Beneath’ Quest.

Each of the winning photos will be printed and showcased as part of our complementary exhibition to Allison‘s work, in our gallery show titled “What Lies Beneath.” The exhibition of the 500px community photos below will run alongside Allison‘s gallery at our headquarters throughout the month of May, where locals, tourists, and creatives from around the world will discover them as part of CONTACT 2019.

Explore the most captivating and curious photos we’ve seen in a while, below.

First place: $1,000 USD + exhibition

Borders#2” by photoborodina

Borders#2 by photoborodina.com  on 500px.com

Second place: $500 USD + exhibition

Stronger” by milos nejezchleb

Stronger by milos nejezchleb on 500px.com

Third place: $250 USD + exhibition

Going Up” by Aaron Ricketts

Going Up by Aaron Ricketts on 500px.com

Runners-up

Check out a sampling of our runners-up below, whose work will also be exhibited in our CONTACT 2019 gallery show. See the full list of exhibitors in our official 500px Gallery.

Coming through by Svein Skjåk Nordrum on 500px.com

Dancing Soul by Kristina Ponomareva on 500px.com

Reaching Out by Tiina Weckman on 500px.com

SOUL by Inna Mosina on 500px.com

Time and Place  by Andrew Curry on 500px.com

Cigarette by the window by Edgaras Vaicikevicius on 500px.com

Cardboard by Kirill Golovan on 500px.com

the great below by Nicki Panou on 500px.com

Being Little Bono by Pritush Maharjan on 500px.com

Elixir by Ante Badzim on 500px.com

everything that kills by Tyler McAuley on 500px.com

?????????Our portrait of blue? by Jey_X  on 500px.com

Ignacio by Antoine Martin on 500px.com

Ship to wreck by Alexandra Bochkareva on 500px.com

For more on our official exhibitions for CONTACT Photography Festival, check out 500px.com/CONTACT.



17 May 02:16

Don't talk about 'food poverty' – it's just poverty | Food

mkalus shared this story from The Guardian.

It is, I know, a statement of the bleeding obvious to say that we must get rid of food poverty. It’s perhaps a little less obvious to argue that one of the key ways of doing so will be to stop using the damn phrase “food poverty” itself. This seems nonsensical, doesn’t it, at a time when the Trussell Trust is reporting that it handed out a record 1.6m emergency food packages in 2018; that it saw a 19% increase in the number of people needing its help.

And yet it’s so. We need to stop treating a lack of access to good food as some discrete disease. We need to start talking simply about poverty.

For the latest issue of Observer Food Monthly I have been investigating the world of so-called social supermarkets: shops selling surplus from mainstream food retail and production at a massive discount to those in dire need. This looks, at first glance, like a case study in food poverty. But, as it was put to me by Gary Stott, who set up the Community Shop group, a prime example of a social supermarket model: “Food poverty creates the idea that there’s just one thing that needs fixing.” Give people an emergency food package, and they can eat. When of course it doesn’t deal with the underlying problems of social exclusion and low wages.

What’s more, the conversation around food poverty is a block to us fixing our broken food supply chain. The fact is this: we pay too little for our food, just 10% of disposable income , down from 20% in 1970. We also expect to continue being able to do so. It’s why our agriculture sector has withered to a point where only 50% of the food we eat has been produced here. (Another 10% is exported.) If we don’t start paying more, allowing our agriculture sector to invest and expand production, we will end up paying so much more in the future, when we are held to ransom by the international markets.

I’ve made this argument to two Labour shadow ministers for the Department for Environment, Food and Rural Affairs (Defra). Both said the same thing: we can’t argue for more expensive food, because of all those people using food banks. That’s both cowardly and simplistic. If we engineer a food system to be accessible to those in poverty, then it will become only more deformed and economically unviable. Then we’ll all be in trouble. Instead, we need to get the economics of food in the UK right, while also dealing with the obscenity of poverty.

An example: one reason mainstream supermarket food is so cheap is because the government literally subsidises the cost. Too many employees of the big food retailers are on such low incomes that they have been eligible for working tax credits and now the incompetently managed universal credit; the same universal credit that the Trussell Trust cites as a cause of the explosion in food bank demand that we are now witnessing.

During my reporting for this month’s feature, I came across multiple stories of mainstream supermarket employees who were forced to use social supermarkets to top up their shop because they couldn’t afford the prices being charged by their own employers.

This is madness. It’s also poverty, pure and simple. Don’t get me wrong: this doesn’t mean we need to close down food banks now. But we do need to start seeing them as an emergency way to deal with the brutal symptoms of a disease, not as a cure for the disease itself. It’s not easy. And simply modifying our language by abandoning the phrase food poverty won’t sort it. But it’s a very important start.

• Read Jay Rayner’s report on social supermarkets in the latest Observer Food Monthly, out on 19 May.