Shared posts

06 Jun 04:04

Drupal 9 Is Here, and the Pirate Module is Ready. Yarr!

by Richard

In anticipation of the June 3rd launch of Drupal 9, I spent the weekend a week previous to the launch dusting off the Drupal module I'm most famous for: the Pirate module! What does it do, exactly? Like the WP extension, the Pirate module changes your site's content to pirate-speak on September 19th, International Talk Like a Pirate Day. I took the tagline ("Ah, Squiddy! I got nothing against ye. I just heard there was gold in yer belly. Ha ha har, ha ha ha har!"), which I buried in the configuration, from a non-pirate, sea captain Horatio McCallister. (Spoiler alert: He's not even a real sea captain.) It adds a text filter (previously known as an input format) to whatever field you specify, and on September 19th, that field's content is changed into various pirate-like sayings, interspersed with yarr! and avast! During Drupal's semantic versioning transition, versions 8.x-1.1 forward are intended to be fully compatible with Drupal 9.

The module started out as an internal ticket at Bryght in 2005. Boris Mann came across the Talk Like a Pirate plugin for WordPress, and since both Drupal and WordPress are written in PHP, he wanted it ported over. I took the ticket, 45 minutes before a colleague saw it and, almost 15 years later, it serves as the project I use to keep up with Drupal internals. Thanks to a patch from Snehal Brahmbhatt, later confirmed by a robot, I am able to legitimately claim that the module has full Drupal 9 compatibility. (Unlike the move from Drupal 7 to 8, Drupal 9 is an update, not a rebuild.) It has had an official release for all versions of Drupal since 4.6.

Over the weekend of updating the module for D9, I caught wind of DrupalSpoons, and without fulling realizing the implications, I applied to have the Pirate module mirrored there. (Moshe was excited!) After reading the DrupalSpoons announcement, I understood it to be an experiment in using GitLab as the issue queue and repository platform more directly than the Drupal core and contributed modules projects, which uses GitLab as an underlying provider for their official repositories. As long as code and issues are synced between the two, I don't have a problem pushing and responding in both spaces.

I'm looking forward to September 19th this year and years to come. Yarr!

06 Jun 04:04

Recommended on Medium: Building the future self in a time of stillness

What does it mean to challenge the normality of life that we live in?

It’s 2020. We live in a world where TikTok is a verb for pre-teens and we Zoom each other. There’s a continuous adoption of working-remote, optimisation, and globalisation in the developed economies. All of a sudden, we are confronted with the COVID-19 pandemic that challenges the path that we were all on, and the safety that our minds have built for us.

We are forced out of our safety bubbles, to face and live through the challenge. To get to the next stage, we need to look deeply at what we truly value.

What is the most valuable thing in life?

Depending on who you ask — and depends on if you ask the person before, during, or after the COVID-19 crisis. Everyone has a different answer as to what he/she values.

In the economical world: gold, oil, raw materials are valuable. It is something that requires measurable effort to extract. It is rare. It cannot be reproduced / created.

In the pandemic world: we are confined in a world that’s held still. With -81% decrease in community movement (UK), around 70% increase in internet activities, and -44% stock price change in travel, we are now all sourdough-starter-making home-haircutting DIY masters.

With all the changes in our lives, there is one thing that doesn’t change.
Time.

Before we are able to cure ageing, the time that we have to spend in a lifetime is finite. The day goes on for 24 hour until the second we fade away.

Even in a lockdown, we still have 24 hour a day. The difference is how we spend it.

In the pre-crisis world, we worry about what to spend our time on.
During the crisis, we shift how we spend our time.
After the crisis, we need to think about why we spend our time on everything?

Adaptation

Humans are such resilient animals. We adapt well.

http://www.ladedahm.com/2013/07/trevi-fountain-toss.html and https://www.skylinewebcams.com/en/webcam/italia/lazio/roma/fontana-di-trevi.html

Are you getting acquainted with your COVID-19 self ? Have you realised what you took for granted? Is it the togetherness of shared moments, or is it the curious view of the world that you miss? Can the white-tablecloth dining experience be replaced by your homemade sourdough bread? Even our education and humour changed.

Who will you be?

“Life can only be understood backwards; but it must be lived forwards.” — Soren Kierkegaard

How will you decide what you will do? It should no longer be about weighing the different possibilities to choose the safest / soundest / least resistance / most popular option. We should be able to adapt to use our value to guide our decision making.

You should decide based on why you want to do it.

https://www.instagram.com/p/B_j_4Iklpis/

When the present and future are uncertain, we need to look at the now with a straight-face — be realistic about the world — and trust in our past experiences, to find the real reason that we do what we do.

Your value system will tell you what you value the most, and that should be the only why in how to be.

In the deeper corner of the heart: Is it about where to enjoy a meal, what is the meal, who to enjoy a meal with, or what you talk about during the meal.

The world changes and moves. Value system is relative to the world and its relationship with the world, but it will always be absolute to ourselves.
06 Jun 04:00

Twitter Favorites: [skinnylatte] This tastes so good! https://t.co/PDCafjPkOu

Adrianna Tan @skinnylatte
This tastes so good! pic.twitter.com/PDCafjPkOu
06 Jun 03:59

Twitter Favorites: [raincoaster] @sillygwailo Everything old is new again

raincoaster @raincoaster
@sillygwailo Everything old is new again
06 Jun 03:59

A quick trip downtown

by jnyyz

Today was the first time I’ve biked downtown for a while, and so I saw a few enhancements to local bike infrastructure.

Here are the bike racks that have been added to the concrete curbs that were laid down along the Bloor bike lane a while back.

They look like they are oriented the wrong way, given that they are on the east bound side of Bloor. You have to turn your bike almost 180° to park the bike, and back around again to ride off. I was questioning this design choice but then I noticed that all the similar racks installed on sidewalks all had the same configuration.

It’s really unfortunate that whatever the vendor is that the city uses, that they can’t make a mirror image rack to suit a particular situation.

Not surprisingly, Vancouver does this better, like these racks along Hornby, installed back in 2011.

I also saw the new curbs with bollards along Hoskins.

I was glad to see that the uprights were much more sparse than they were on a recent pilot installation along Bloor near Palmerston.

Always good to see families taking advantage of the bike lanes, instead of riding on the sidewalk.

Very much looking forward to the day when the Bloor bike lanes extend past Shaw.

This is my favorite kind of traffic jam. They are waiting on the northeast corner of Dundas and Old Weston Rd. I will note that if you wait there and there are no cars waiting beside you on Old Weston Rd, the green light to cross Dundas St westbound does not activate unless you press the pedestrian beg button that is not conveniently located for cyclists. This is probably why the first group of cyclists are on the sidewalk. We really need some kind of sensor where the last two bikes are so that this is no longer a problem.

05 Jun 21:29

Twitter Favorites: [rachel_cheung1] A significant turnout at Victoria Park for the annual Tiananmen vigil in #HongKong, in defiance of the govt ban. No… https://t.co/8wWnORH1WN

Rachel Cheung @rachel_cheung1
A significant turnout at Victoria Park for the annual Tiananmen vigil in #HongKong, in defiance of the govt ban. No… twitter.com/i/web/status/1…
05 Jun 21:29

Twitter Favorites: [shawnmicallef] The only people riding the TTC are those who must. The TTC will never not punish its riders. https://t.co/eVwauud88I

Three Geese Radius @shawnmicallef
The only people riding the TTC are those who must. The TTC will never not punish its riders. twitter.com/BenSpurr/statu…
05 Jun 21:23

Edward Burra, Zoot Suits, 1948. pic.twitter.com/gQIppsTbX1

by moodvintage
mkalus shared this story from moodvintage on Twitter.

Edward Burra, Zoot Suits, 1948. pic.twitter.com/gQIppsTbX1





193 likes, 41 retweets
05 Jun 21:23

Early Playstation 1 Logo Concepts pic.twitter.com/QFnI6VEpLv

by moodvintage
mkalus shared this story from moodvintage on Twitter.

Early Playstation 1 Logo Concepts pic.twitter.com/QFnI6VEpLv





291 likes, 62 retweets
05 Jun 21:23

Audrey Hepburn enjoying the sun in 1958 pic.twitter.com/jDpjqdd5fW

by moodvintage
mkalus shared this story from moodvintage on Twitter.

Audrey Hepburn enjoying the sun in 1958 pic.twitter.com/jDpjqdd5fW





316 likes, 47 retweets
05 Jun 21:23

Query by Manipulation

by Jonathan Edwards

I submitted this abstract to PPIG’20 but have just withdrawn it. I’ve been working on this idea for the last 2 years. But lockdown has given me time to think about my research goals and it no longer seems like the right thing to be doing right now. It just isn’t going to make a dent. Leaving the abstract here as a marker.


Data wrangling is a crucible for end-user programming. Data scientists must clean, transform, and integrate data before they can do analysis. “‘data wrangling’ often constitutes the most tedious and time-consuming aspect of analysis”[Kandel11a]. It is worse for non-programmers because data wrangling is ad hoc and cannot be done by recipe. We take this as a research challenge: can we make data wrangling as easy as “spreadsheeting” for non-programmers?

Subtext takes a foundational approach to this problem, co-designing a language and environment from scratch to bridge Norman’s two gulfs [Norman88]. Subtext helps bridge the Gulf of Evaluation by making all program execution fully visible, not as a tacked-on visualization, but incorporated into the representation of programs themselves. Programs are executions.

Norman’s other gulf, that of Execution, is at the heart of the data wrangling problem: how can a non-programmer know what to do to transform their data? Mainstream data science platforms like Jupyter require code merely to change a single datum! Our answer is to provide a direct-manipulation environment where data can be imported, edited, and transformed using a small and systematic set of affordances. These manual manipulations are recorded as reusable and customizable scripts. Crucially, the Subtext language is designed so that it can naturally represent such recordings (unlike the convoluted code generated by standard “macro recorders”). The design goal is that any Subtext program can be understood as a series of operations that could be performed manually in the UI, and vice-versa.

This demonstration will focus on the hard sub-problem of querying, and its black heart: relational join. Even in the most enlightened tools like Wrangler[Kandel11b], joins are still an abstract concept shrouded in mystery (will that be an inner or outer join?). We propose denormalizing the relational model to support nested tables and explicit binary relationships in such a way that joins decompose into simpler operations corresponding to direct manipulations in the UI. Recording such manipulations produces a reusable query without having to learn a query language or understand relational algebra, which we hope will bridge the Gulf of Execution for queries. We call this Query by Manipulation, as opposed to prior research on Query by Example which relies on the computer being smart enough to infer your query, and traditional query languages, which rely on you being smart enough.

05 Jun 21:23

"Cryostat" Genesis.

by Stanislav

Cryostat is a Fits-in-Head minimal (~700 LOC, including comments) static library for adding safe and reliable persistent storage to Ada data structures. It makes use of memory-mapped disk I/O via the MMap() system call, present in Linux (kernel 2.4 and newer) and all compatible operating systems. This mechanism permits efficient work with persistent data structures substantially larger than a machine's physical RAM.

AdaCore offers their own implementation of MMap() support in GNATColl. However, IMHO their item is an atrocity, in many ways very similarly to their GNAT Sockets pile of garbage (the near-unusability of the latter is what prompted me to write Ada-UDP in 2018.) AdaCore's MMap library is not only a behemoth replete with e.g. special cases for MS-Win support, but its use is entirely incompatible with safety-restricted compilation profiles.

Cryostat, on the other hand, does NOT require enabling the use of pointerism, unchecked conversions, the secondary stack, heap allocators, or other bulky and objectionable GNAT features, in the calling program. It does however require finalization to be enabled. This is used to guarantee the safe sync-to-disk and closing of the backing MMap when the data structure it contains goes out of scope.

Let's proceed to building Cryostat and its included demo program.

You will need:

Add the above vpatch and seal to your V-set, and press to cryostat_genesis.kv.vpatch.

Now compile the included CryoDemo:

cd demo
gprbuild

... this will build both the demo and the library.

But do not run it quite yet.


First, let's see what this demo consists of :

cryodemo.adb:

with Interfaces;  use Interfaces;
with ada.text_io; use  ada.text_io;
 
with Cryostat;
 
 
procedure CryoDemo is
 
   -- Path on disk for the example Cryostat backing file :
   File_Path : constant String := "cryotest.bin";
 
   -- Now, let's define an example data structure to place in a Cryostat :
 
   -- Example payload array's element type: byte.
   subtype ADatum is Unsigned_8;
 
   -- Let's make it 512MB - far bigger than a typical stack, to demonstrate
   -- that it will in fact reside in the Cryostat, rather than on the stack :
   A_MBytes : constant Unsigned_32 := 512;
 
   -- Example payload: an array.
   subtype ARange is Unsigned_32 range 0 .. (A_MBytes * 1024 * 1024) - 1;
 
   -- Complete the definition of the payload data structure :
   type TestArray is array(ARange) of ADatum;
 
   -- Declare a Cryostat which stores a TestArray :
   package Cryo is new Cryostat(Form     => TestArray,
                                Path     => File_Path,
                                Writable => True,  -- Permit writing
                                Create   => True); -- Create file if not exists
 
   -- Handy reference to the payload; no pointerisms needed !
   T : TestArray renames Cryo.Item;
 
   -- T can now be treated as if it lived on the stack :
 
begin
 
   Put_Line("T(0)    before :  " & ADatum'Image(T(0)));
   Put_Line("T(Last) before :  " & ADatum'Image(T(T'Last)));
 
   -- Increment each of the elements of T :
   for i in T'Range loop
      T(i) := T(i) + 1;
   end loop;
 
   Put_Line("T(0)    after  :  " & ADatum'Image(T(0)));
   Put_Line("T(Last) after  :  " & ADatum'Image(T(T'Last)));
 
   --- Optional, finalizer always syncs in this example
   --  Cryo.Sync;
 
   --- Test of Zap -- uncomment and get zeroized payload every time :
   --  Cryo.Zap;
 
   Put_Line("OK.");
 
end CryoDemo;

In the demo, we define TestArray -- a data structure consisting of a 512 megabyte array, and invoke Cryostat to create a persistent disk store for it. (When the program is first run, the array -- instantiated as T -- will contain only zeros.) After this, we increment each byte in T, and terminate. When, in the end, T goes out of scope, the finalizer kicks in and properly syncs the payload to disk. Thus, T behaves exactly like a stack-allocated variable, with the exception of the fact that its contents are loaded from disk upon its creation (on the second and subsequent runs of the program) and synced to disk upon its destruction (or if Sync were to be invoked.)

Observe that the calling code is not required to perform any file-related manipulations, or to juggle memory; all of the necessary mechanisms (including error handling) are contained in the Cryostat static library.

When we first execute the demo:

./bin/cryodemo

The following output will appear:

T(0)    before :   0
T(Last) before :   0
T(0)    after  :   1
T(Last) after  :   1
OK.

If we run it again, will see the following:

T(0)    before :   1
T(Last) before :   1
T(0)    after  :   2
T(Last) after  :   2
OK.

... and so forth. cryotest.bin, the backing file used by the Cryostat in the demo, will consist of 512 megabytes of byte value N, where N is the number of times the demo has executed. For example, after the first run, a hex dump:

hexdump -C cryotest.bin

... will yield:

00000000  01 01 01 01 01 01 01 01  01 01 01 01 01 01 01 01  |................|
*
20000000

Let's use the traditional strace tool to confirm that the demo behaves as specified:

strace ./bin/cryodemo

The following output will appear:

execve("./bin/cryodemo", ["./bin/cryodemo"], [/* 84 vars */]) = 0
arch_prctl(ARCH_SET_FS, 0x644798)       = 0
set_tid_address(0x6447d0)               = 3660
rt_sigprocmask(SIG_UNBLOCK, [RT_1 RT_2], NULL, 8) = 0
rt_sigaction(SIGABRT, {0x41c360, [], SA_RESTORER|SA_RESTART|SA_NODEFER|SA_SIGINFO, 0x42498c}, NULL, 8) = 0
rt_sigaction(SIGFPE, {0x41c360, [], SA_RESTORER|SA_RESTART|SA_NODEFER|SA_SIGINFO, 0x42498c}, NULL, 8) = 0
rt_sigaction(SIGILL, {0x41c360, [], SA_RESTORER|SA_RESTART|SA_NODEFER|SA_SIGINFO, 0x42498c}, NULL, 8) = 0
rt_sigaction(SIGBUS, {0x41c360, [], SA_RESTORER|SA_RESTART|SA_NODEFER|SA_SIGINFO, 0x42498c}, NULL, 8) = 0
sigaltstack({ss_sp=0x644a80, ss_flags=0, ss_size=16384}, NULL) = 0
rt_sigaction(SIGSEGV, {0x41c360, [], SA_RESTORER|SA_STACK|SA_RESTART|SA_NODEFER|SA_SIGINFO, 0x42498c}, NULL, 8) = 0
fstat(2, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 5), ...}) = 0
fstat(0, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 5), ...}) = 0
fstat(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 5), ...}) = 0
open("cryotest.bin", O_RDWR|O_CREAT, 0666) = 3
ftruncate(3, 536870912)                 = 0
mmap(NULL, 536870912, PROT_READ|PROT_WRITE, MAP_SHARED, 3, 0) = 0x7f3bcc575000
writev(1, [{"", 0}, {"T(0)    before :   0\n", 21}], 2) = 21
writev(1, [{"", 0}, {"T(Last) before :   0\n", 21}], 2) = 21
writev(1, [{"", 0}, {"T(0)    after  :   1\n", 21}], 2) = 21
writev(1, [{"", 0}, {"T(Last) after  :   1\n", 21}], 2) = 21
writev(1, [{"", 0}, {"OK.\n", 4}], 2)   = 4
msync(0x7f3bcc575000, 536870912, MS_SYNC) = 0
munmap(0x7f3bcc575000, 536870912)       = 0
close(3)                                = 0
exit_group(0)                           = ?
+++ exited with 0 +++

There are a few minor knobs that still ought to be added to Cryostat (See README.TXT) but even as it presently stands, it is already sufficient for basic experimentation with clean and compact databases implemented wholly in Ada.


~ To Be Continued. ~


05 Jun 21:23

Thoughtful Personal Invitations vs. Mass Emails

by Richard Millington

One of my clients recently launched a new community focused on a very small (but very important) sector.

We had done the surveys, interviewed dozens of members, and developed exactly the kind of community website they needed. We knew we had a concept which should take off.

Now it was time to get people participating.

The manager of the project wanted to send out an email to the mailing list of people who participated in the surveys and interviews. This would save time in the short-term, but the conversion rate would’ve been between 1% to 10% of the mailing list.

You need to work backwards in these situations and ask:

‘What kind of emails are people likely to open and respond to?’

The obvious answer is we open emails from people we personally know and we respond to emails that affect us emotionally.

Instead of a mass email, we began sending out thoughtful, personal, invites from whomever on the team had the closest relationship with the intended participant (often replying to a previous email thread – another way to ensure it gets opened).

The email explained exactly how their contributions so far had helped shape the project, what we felt they could contribute to the community (based upon their interviews), and what we would like them to do to get started. Our goal was to make them feel they could have a big impact in helping others.

As each person joined over the next two weeks, we ensured each person gained a quick response and we connected them to other members.

It took three weeks longer than a mass email, but so far almost 90% of our intended audience has joined and 50% have made at least three contributions.

Mass emails save time in the short-term, but can hurt you in the long-term. If your audience is small, or you’re just getting started, send a personal invite from someone they know instead.

05 Jun 21:23

Extension is the Brexiters’ chance to show they accept that they won

by Chris Grey
With the last week of talks prior to the end of June cut-off for agreeing an extension finishing today, there is no sign (£) of progress towards a deal and no sign of UK willingness to extend the Transition Period. At the end of the first week of talks, just as coronavirus was beginning to bite in Europe, I speculated that we might see a less bellicose and more flexible approach adopted by the UK, including on transition period extension. I was wrong. Indeed since then, as the rational case for extension has grown because of the deepening coronavirus crisis, the government’s refusal to even acknowledge that case has hardened. Is that likely to change?

Business voices

There is strong public support for an extension. But it probably isn’t the kind of issue that has individual voters writing in huge numbers to their MPs (for whatever effect that would have) and so any pressure to extend will come from elsewhere. I remarked in passing in my last post that it would be easier for Keir Starmer to call for an extension were business and civil society institutions to do so, and a couple of weeks back that businesses might be wary about this given their present dependence on government. That latter analysis was supported by Delphine Strauss writing in the FT this week (£) and Charles Grant, Director of the Centre for European Reform, reports that business leaders aren’t willing to speak out “for fear of punishment by Number 10”.

Such fears are no doubt well justified. Long before Brexit, and before even the decision to hold a referendum, arch-Brexiter John Redwood threatened (£) “to punish businesses that speak out in favour of Britain remaining in the EU”. Subsequent to the referendum, companies bidding for government contracts were asked if they backed Brexit. And at the present time we can see government contracts being awarded to firms which had prior connections to the Vote Leave campaign. In a landscape where fealty to the true cause of Brexit is the sole qualification for political office, it hardly strains credulity that the same criterion might be applied in other contexts.

As the deadline for extension gets closer, there are the beginnings of some rumblings, for example from the CBI, of real alarm. Carolyn Fairbairn, its Director-General, wrote this week that many businesses “are not remotely prepared” for “a chaotic change in EU trading relations in seven months”. She was apparently referring to a no deal scenario but, actually, the chaos would hardly be less in the event of a deal being done, for this would still represent a sea-change from the current situation of single market and customs union membership. And Nissan – whose Sunderland factory plays an iconic role within the Brexit saga – warned in perhaps its starkest public terms yet that if tariffs are introduced the plant will be unsustainable.

Why hasn’t business had more influence?

Such statements may become more common if, as Brendan Donnelly of Federal Trust cogently argued this week, people are belatedly waking up to the strong possibility of there being no deal at the end of transition.  Yet even if the business community becomes more vocal there are doubts as to whether it can make much difference to how the government proceeds. Indeed the lack of influence it has had on Brexit throughout is remarkable, and a marked contrast to its role in the 1975 Referendum. That is all the more extraordinary given the way that, in the intervening decades, the priorities of business have had such political prominence.

There are several, quite complex, strands which explain this relative lack of impact. Perhaps one was that, indeed, people had got fed up with being told for so long that business interests were paramount.  Another is the extent to which British businesses have over those decades been sold off to overseas conglomerates. For them, whilst Brexit may be undesirable because of the disruption, it is not existential. Their opposition is driven, perfectly understandably, by considerations of cost not of principle (though Japanese firms also see Brexit as a betrayal of trust). They can and will decamp or divest if it becomes necessary. It is an irony that some Brexiters imagine that big business does not support Brexit because it does not care about what is good for Britain when the reality is that its lack of such care is one reason why Brexit is bad for Britain.

Not only did such global businesses lack genuine passion in their opposition to Brexit they also, for the same reason, did not place it at the top of their list of priorities. In particular, come 2019, they saw a Corbyn government as more of a threat to them than Brexit. They also saw the possibilities of government contracts – or exclusion from them – as a counterweight to the disruption of Brexit. The alliance between politically committed remainers and big business opponents of Brexit was always one of convenience and, ultimately, transitory.

The same is not neccessarily true of the thousands of small, domestic businesses who are opposed to Brexit – yes, on economic grounds, but with neither the escape hatch of relocation nor the detachment from British society of the big firms. But, by definition, it is harder for smaller businesses to have a loud voice. Representative bodies like the CBI have sought to be that voice, but in the process have become the target of massive hostility from both Conservative Brexiters and their cultural attack dogs in the media. Sometimes the two join hands, as when Priti Patel viciously attacked the award of a Damehood to Fairbairn as rewarding “her role in the Brexit betrayal” (as so often, reading this one might have thought that the Brexiters had lost).

There is a wider story here about how the modern Tory Party has become detached from almost all parts of the business community – except, perhaps, the hedge funds which are one segment that benefits from Brexit and which generously fund the party. The days when the Conservative benches would have plenty of people with intimate knowledge of business are long gone. It’s a similar story with its membership, perhaps because of its ageing profile. I had several conversations with some of them during the Referendum campaign, and they often spoke of their business experience but, invariably, it was decades out of date and showed no understanding of contemporary supply chains or international regulation. It is also strange how confident Brexiters have been in the lobbying power of ‘the German car industry’ at precisely the time they have been so dismissive of the concerns of its British counterpart.

The pernicious success of the ’Project Fear’ rebuttal

Be that as it may, business opposition to Brexit was also blunted by the extraordinary success of the ‘Project Fear’ rebuttal line (which, of course, was not just deployed against business). That success, which endures to this day, is difficult to explain. It seems to rely on the idea that any warning of any danger should be discounted, yet this is hardly how most people approach their daily lives.

It perhaps gained traction partly because the Remain campaign failed to articulate much in the way of a positive case for EU membership. It certainly relied on a constant argument ad absurdum, with warnings of, for example, damage to trade being rendered (and thus dismissed) as claims that all trade would cease. At all events, however successful it may have been as a campaign tactic, it has permanently crippled rational debate about Brexit, with any and every attempt to discuss, let alone address, practical difficulties being blasted away by its ovine repetition.

Additionally, at least during the Referendum campaign itself, and, I think, thereafter, the business voice against Brexit was muffled by media coverage. More than any other area, it suffered from the application of the ‘balance’ formula by the BBC and others. For, invariably, whenever business leaders spoke against Brexit they were then counterposed with a pro-Brexit business person. That may have ‘balanced’ the arguments, but it presented a seriously unbalanced picture of where the business community, overall, stood on Brexit.

Apart from the evidence of numerous surveys, the clue to that being so is that the pro-Brexit business people were always drawn from the same handful or so: Tim Martin, Anthony Bamford, James Dyson, Digby Jones, Rocco Forte and a few others. It happened precisely because there were so few of them.

The paucity of business support for Brexit is underscored by the failure to create a significant pro-Brexit business organization. Despite being boosted as the voice of business by the likes of ERG self-styled ‘hardman’ Steve Baker, the Alliance of British Entrepreneurs – the creation of an intellectual property lawyer and someone invariably just described as ‘a veteran and businessman’ – has never really taken off and does “not offer formal ‘membership’”. There’s something rather telling about the speech marks around membership, as if to imply that lack of members is a principled choice to avoid something disreputable. One might also wonder what ‘informal’ membership entails. These are hardly picky points to raise about an organization that aspires to be representative.

In any case, the Project Fear line was fundamentally dishonest both in itself and in what it became an alibi for. It was dishonest in itself because it ignored or distorted the factual basis of the warnings. It is dishonest in what it became because it morphed into the claim that, by ignoring those warnings, leave voters had chosen economic damage in favour of ‘sovereignty’. Yet, clearly, the entire Project Fear narrative was about discrediting those warnings; that there was nothing to ‘fear’. And why? Because the Vote Leave campaigners knew full well that if voters realized the economic damage Brexit would cause then they would never have voted for it simply on grounds of sovereignty. Otherwise, they would have simply agreed that there would be that damage and invited voters to support the policy anyway.

Whilst Project Fear was a potent way of neutering business opposition to Brexit before the Referendum, afterwards the populist neck-hold of ‘the will of the people’ was the main way of choking the business voice. If the judiciary and civil service could be traduced in that way, how much more difficult would it be for businesses reliant not just, possibly, on government favours but, almost certainly, on customers who might punish them as ‘saboteurs’? Safer to keep quiet. And of course the same situation obtains for other civil society institutions such as trade unions, charities, universities, professional bodies and so on. All are vulnerable to economic punishment, cultural punishment, or both. And all will suspect that speaking out is likely to be in vain as they will automatically be dismissed as ‘the Establishment’. So why take the pain for little or no gain?

That same logic now carries over to voicing concerns about not extending the Transition Period. Since Brexiters have managed – illogically, because Brexit has, in a legal sense, happened – to depict such an extension as ‘thwarting’ Brexit they can also run all their old attack lines about Project Fear and the will of the people.

The post-Brexit landscape

Yet voices are being raised over extension, and not just those of business. This week the Social Market Foundation published a report undertaken for the Best for Britain campaign group showing the economic implications of ending the Transition Period without a deal in the context of the coronavirus crisis. Meanwhile, a House of Lords Committee catalogued the extensive problems in implementing the Northern Ireland Protocol by the end of the year and business groups there are expressing desperation about the lack of clarity about how the sea border is to work.

The Northern Ireland Assembly itself voted this week in favour of an extension until the coronavirus crisis is over, and Nicola Sturgeon has repeated her longstanding demand for extension. Mark Drakeford, the Welsh First Minister, did so several weeks ago and was joined this week by Sadiq Khan, the Mayor of London. The latter is significant in being the first major Labour figure to make this argument and, as discussed in my previous post, there are good reasons why Keir Starmer should follow suit.

These and other bodies and leaders are likely to become more vociferous this month as the window for agreeing an extension closes. If so, I think that despite their fears they might find that the landscape is rather different to that of even a few months ago, especially if they find a way to speak in concert (as the TUC and CBI did when warning of the national emergency of a no-deal Brexit in March 2019) rather than individually.

Of course those familiar Brexiter attack lines will continue to appeal to a significant segment of the public and the media. But the coronavirus crisis, the government’s inept handling of it, and its falling popularity as a result all serve to change the environment. Brexit just doesn’t dominate in the way that it did and it’s all but certain that a vote held today would reverse it. Outside of the minority who will always care about it, it’s yesterday’s issue. The Referendum mandate to leave the EU has been discharged and is now expired. That mandate had nothing to do with the length of the transition period and it most certainly wasn’t a licence not make a deal with the EU – as Michael Gove effectively admitted this week.

Extension isn’t remainers’ last stand, it’s Brexiters’ first challenge

Indeed, for this reason, even had the pandemic not struck we would still be in a new situation. For what Brexiters and, I suspect, some remainers seem not to have grasped is that the debate over extension is not the last, desperate gasp of the battle against Brexit. That battle was lost and is over. Rather, it is the first of what will be many post-Brexit rows about how to implement it.

These will be over all the myriad of issues relating to the future relationship with Europe – not just trade, but education, science, data, security and so on – which will still need to be implemented in detail if there is a deal, and which won’t simply go away if there isn’t. They will be over the impact of whatever trade deals may be negotiated with the US (£) and other countries. And they will be over the big picture issue of what the UK’s place in the world is post-Brexit, which is already being played out as we navigate the complex power-plays between the US, China and the EU, for example over Huawei.

The Brexiters have already found that winning the Referendum was just the beginning of a long and arduous journey – the more so for having no defined destination. They are now about to find that the act of leaving the EU, whilst marking the end of one phase of Brexit, was itself only the easiest part of the process. The first challenge has now arisen in the form of whether they will be pragmatic in finding a way to secure more time given the impact of coronavirus or whether they will remain forever in thrall to paranoid fears of ‘betrayal’.

It is a chance for them to show that, finally, they accept that they have won and that Brexit is happening. In the end it is their ability to do that, rather than any lobbying from business or opposition parties, which will determine what happens on extension. Now comprehensively in charge of government it is a chance for them, and especially Boris Johnson, to show that they have moved on from the culture war slogans that got them this far. But there is very little basis for optimism and, alas, it is far more likely that they will show that those slogans were all they ever had.

05 Jun 21:22

Google Chat & Meet verbergen

by Volker Weber

HideChatMeet.jpg

Google nervt mal wieder, in dem sie das drölfzigste Chat und das einundrölfzigste Videoconf aufdrängen. So wird man das in Gmail los: Settings, Chat and Meet, zwei Häkchen wegclicken und sichern.

05 Jun 21:22

Visualizing black America in 1900

by Nathan Yau

The visualization work of W.E.B. Du Bois and his students has been on FD before, but it’s worth another look. In 1900, they put together a series of charts for a Paris exhibition visualizing black America. You can access the collection via the Library of Congress.

If you’re looking for more context for the charts and the times, Whitney Battle-Baptiste and Britt Rusert wrote about the history and motivations in W.E.B. Du Bois’s Data Portraits: Visualizing Black America. On the line chart above:

What appears to be another straightforward line chart is one of the most overtly political charts in the Georgia study. An undulating black line shows extrapolated property values in outline and actual property values in solid black crossing a red grid of squares. Tucked into the grid is a series of disquieting socioeconomic and political trends: the rise of the Ku Klux Klan and political unrest in the 1870s; new industrialism in the 1880s; followed by lynching, financial panic, disenfranchisement, and proscriptive laws in the 1890s. The diagram powerfully links the economic progress of black Georgians to larger regimes of violence against African Americans, pointing to the widespread disenfranchisement and dispossession of black people in the post-Reconstruction era.

Again, this is from 1900.

Tags: African American, history, W. E. B. Du Bois

05 Jun 21:22

Words you don’t want to hear… “we have lost you...

by Ton Zijlstra

Words you don’t want to hear… “we have lost your package”. Words you don’t want to hear after that… “if after a few more days you don’t hear anything, contact the sender, to ask us to start searching for it”. If you already know it’s missing, why not search now? Oh DHL, why are you so crap? Consistent over the years, I’ll give you that, but still it’s consistently crap.

05 Jun 21:22

Archiving ds106 docs

by Reverend

Part of moving ds106 to a new server is making sure you don’t leave a trail of dead links in your wake. With great classes come great responsibility 🙂 I think I have the caching issues and some of the kinks worked out after the move, but one think I did want to make sure wasn’t lost in the move was the ds106 wiki, also known as ds106 docs. It was used through 2014, and while it wasn’t a huge part of the class design, for quite a while we used it to for  tech tutorials, syllabi, and other assorted resources. For example, I forgot about the detailed tutorial I created for an animated series of Dead Zone trading cards:

Or the equally detailed Creating Animated GIFs with MPEG Streamclip and GIMP tutorial.

I understand these resources are not all that useful anymore, but the internet preservationist in me wants them to live on. There are other resources such as various syllabi for classes over the years, such for Alan Levine‘s and Martha Burtis‘s Camp Magic MacGuffin syllabus from Summer 2012, or the syllabus for the ds106 Zone in the Summer of 2013. What I noticed going through my early syllabi for ds106 is they were all the same, they just started riffing on a different theme as the years went by, but the core remained. And while that seems logical, I really didn’t remember simply copying and pasting the basics and then building the theme and the prompts of the class on the blog and through the assignments. So, all this to say keeping the wiki was part of the deal of moving the site off shared hosting.

One thing you realize when moving sites is the value of using subdomains versus subdirectories, let me explain. The MediaWiki instance was installed at ds106.us/wiki rather than wiki.ds106.us. That might have had more to do with the WordPress Multisite being subdomains and my not knowing how to resolve redirects, but if the wiki was installed in a subdomain it would still be live right now (which is probably a bad idea regardless). But given I moved everything in ds106.us and the wildcard subdomains to the Reclaim Cloud, I would not be able to run MediaWiki within a subdirectory of ds106. Whereas subdomain can always be pointed elsewhere, subdirectories lock you into the server you are pointing the root domain to.

So, realizing this I need to a) get the wiki up and running temporarily so that I could then use Site Sucker to get a full HTML-based file backup of the site. This is great for archiving and also ensures that the wiki will not go down as application versions change, modules break, or spammers find a way in.* As you can se from the Site Sucker screenshot above, there are files both in ds106.us/docs and ds106.us/wiki because we used the article path function in MediaWiki to have all articles resolves as ds106.us/docs as opposed to ds106.us/wiki, which explains why the root ds106.us folder has both /docs and /wiki and both have part of the HTML archived files.

Another thing I did before archiving the MediaWiki instance (which I also have a full backup of) was update it from 1.19.xx to 1.33.xx. I had to replace the MonoBook theme, turn off the locked-out module, and adjust some other errors as a result of the update, but I was happy and relieved that it worked after a couple of hours and MediaWiki was now running a supported version on PHP 7.3 no less. Part of me still loves the promise and possibility of MediaWiki, but after wrangling with the documentation and the code it was a good reminder why it was never sustainable-the interface and editing was never made any easier and versioning issues made long-term maintenance onerous.

And with that, I think the future-proofing of the ds106 infrastructure and trying to ensure there remains some link integrity is in pretty good shape. I’ll do another pass this weekend, and then terminate the shared hosting instance, and commit to the cloud!

________________________________________________

*While I was at it I took a flat-file back-up of all of ds106.us and got a database and file dump (as well as a full cPanel backup file) that currently live in DropBox. So, this is a note-to-self that I do have a full snapshot of the site from June 2020 when I go searching for it in the future.

Update: I forgot to mention when posting this that I also created an index.html and about.html redirects given Site Sucker has the MediaWiki template linking to ds06.us/index.html and ds06.us/about which results in a 404 error. I created a simple HTML redirect file for the about.html file to go to just /about, and I tried the same for the index.html but that caused to many re-directs. I figured that this was because the default.conf file for nginx had index.html before index.php in this block:

root /var/www/webroot/ROOT;
index index.html index.php index.htm;

A simple transposition of index.html and index.php fixed it:

root /var/www/webroot/ROOT;
index index.php index.html index.htm;

Or at least making sure index.php comes before index.html in that line seems to have fixed the redirects.

05 Jun 21:21

Google Camera update brings 8x zoom, resolution quick toggle to video on Pixel 4

by Jonathan Lamont
Pixel 4 Camera

A new version of Google Camera is rolling out via the Play Store with a couple small quality of life tweaks.

According to Android Central, the update enables more zoom options when recording video on the Pixel 4 and 4 XL. Until now, Pixel 4 devices could record video at up to 6x zoom. Now, users can push the phone to 8x zoom in video. Unfortunately, there are some limitations on that: 8x zoom won’t work when recording with the ‘auto’ or ’60fps’ frame rate options.

Along with the new zoom capabilities, Google Camera version 7.4 adds a quick toggle for changing the video resolution. This should make it much easier for users to swap between 1080p and 4K video recording.

Prior to version 7.4, users had to hop into the main settings menu to change from 1080p to 4K or vice versa. Now that toggle is available from the quick settings menu when in Video mode. Users can just tap the down arrow at the top of the screen to access it.

XDA Developers also dug into the code and found some references to Google’s ‘2020’ and ‘2020_midyear’ phones. These likely mean the Pixel 5, which is expected to launch in the fall, and the Pixel 4a, which is expected to launch soon.

Some of the more astute readers may recognize the Google Camera 7.4 update from a story back in March. At the time, a leaked version of the 7.4 update came out. It included code that suggested Google was preparing to add a 4K 60fps video recording option to the Pixel 4 line.

The search giant has come under fire for not including 4K 60fps in the Pixel line despite other manufacturers including the feature in their devices. Google has shared several reasons for not adding the feature, but none really convinced users. Unfortunately, the official Google Camera 7.4 update rolling out now does not include support for 4K 60fps video. Perhaps it could come in a later update.

Since the update is rolling out now, it may take some time for it to actually arrive on your device. Keep an eye on the Play Store for the update.

Screenshot credit: XDA Developers

Source: Android Central, XDA Developers

The post Google Camera update brings 8x zoom, resolution quick toggle to video on Pixel 4 appeared first on MobileSyrup.

05 Jun 21:21

Apple parts supplier Broadcom says 2020 iPhone launch will be delayed

by Patrick O'Rourke
iPhone 11 series

While there’s no official statement from Apple regarding a possible delay of the tech giant’s 2020 iPhone, Bloomberg has reported that Broadcom CEO Hock Tan’s comments during the company’s recent quarterly earnings call indicate that the Cupertino, California-based tech giant’s next smartphone will be pushed back by a few weeks.

Apple typically releases its new iPhone in early September. Delaying the 2020 iPhone’s release date by even a few weeks would result in a significant financial impact on Apple and its various parts suppliers.

During the earnings call, Tan referenced that a “large North American mobile phone customer” that normally contributes “double-digit” revenue towards Broadcom’s bottom line is not expected to contribute to an “uptick in revenue until our fourth fiscal quarter.” Tan indicated during the call that Broadcom is still providing parts for the upcoming iPhone, but stated that the timing of the smartphone’s launch is still up in the air.

It’s likely that the ongoing COVID-19 pandemic has caused supply line delays for Apple. The fact that travel has been disrupted and many Apple employees are working from home could also contribute to a delay.

Back in late March, a report from Japanese publication Nikkei stated that Apple could delay the release of the iPhone 12 “by months.” That said, at the time, Bloomberg also reported that the next iPhone was still on track to release this fall.

The iPhone 12 is expected to feature 5G for the first time — which won’t mean much in Canada given the limited availability of the next-generation of network technology — a faster A14 processor and a new 3D camera system similar to the liDAR sensor included in the iPad Pro (2020).

Source: Bloomberg

The post Apple parts supplier Broadcom says 2020 iPhone launch will be delayed appeared first on MobileSyrup.

05 Jun 21:21

This Week in Photography: Black Lives Matter

by Jonathan Blaustein

 

“I am more interested in creating bridges across which we can experience realities other than our own, whether it be those of marginalized people or not.” Eric Gyamfi

 

Eric Gyamfi, “Fixing Shadows” at FOAM

 

Part I. The Intro

 

Yes, it’s another one of those articles where I begin with a quote.

For all columns I’ve written over the years, I’ve only done that a handful of times.

Occasionally, it’s the right move.

Like today.

It was hard to know where to go, in a week like this, because it feels like the Earth is shifting under our feet, minute to minute.

Just last Tuesday, I had a Zoom call with a bunch of my Antidote students, and life seemed at least a little normal.

Not NORMAL, obviously, but we were able to focus on life and work.

Coincidentally, there were folks in Minneapolis, Indianapolis, Oakland, LA and Brooklyn.

Within a day or two, almost everyone but me was living in a world filled with riots and protests.

Just like when the pandemic dropped, it seemed a new reality had been created, fully formed, and it was not like the one that came before.

Oh, by the way, almost everyone on the call was white.

 

Part 2. What to say?

 

I find myself in the odd position of having already written about almost all of the underlying causes of this new reality, in this column, over the last 8.5 years.

Those of you who have been reading all along know that via photo books, exhibitions, and travel experiences, in my opening rants, I’ve covered systemic racism, class exploitation, Donald Trump, and America’s disgusting history of oppression.

All while trying to maintain a sense of optimism about the future of the country, and the world.

And while I’m obviously a Jewish-American, I’ve done the best I can to empathize with, and humanize, people from around the world.

Gay, straight.
Black, white.
Male, female, and other genders.

I do the best I can to keep it real, and check my bias at the door, but given the privilege with which I grew up, I know there are some experiences I can’t “know.”

As a Caucasian in the suburbs of New Jersey, I had safety, security, and could walk into a store, or down the street, without anyone profiling me.

(With my big nose, I did hear Jewish jokes, but that’s not the same thing.)

It was all pretty chill for me in Jersey until 2003, when I was began my MFA thesis project at Pratt, which required repeated visits to my hometown of Holmdel, NJ.

Given that 9/11 had happened only 2 years prior, and that the suburbs were known for quiet streets, simply walking along, minding my own business, taking pictures with an early version digital camera, I became a target of the police.

Twice, I was stopped, and harassed, because I had a pony tail, a goatee, and a camera in my hand.

 

Dirt road

Garage, circa 1720

Junior High School Gym

Neighborhood watch

 

Eventually, my Aunt, who lived in town, reached out to the Chief of Police, and got me an official letter, claiming I was a former town resident, and had his permission to be there.

That alone is a mark of privilege.

But then, a couple of months before we moved away in 2005, I was visiting my Aunt and Uncle’s home, and when we pulled up in front, Jessie and I were arguing a bit, so we stayed in the car for two minutes to sort out our business, before going inside.

After the two minutes, we looked up and saw a police car.

They pulled up, stopped, got out, and approached the car.

By now, I should mention that I had a black Chevy blazer, in decent shape, and the dented back bumper would have been out of their view anyway.

But we had New York license plates, and it was not a Mercedes. Or a BMW.

Or a Bentley.

That was enough, and when they approached, and started asking questions, we told them who we were, and why we were there.

I grew up in town, and graduated near the top of my class. I attended the elementary school that was only two hundred yards behind us.

No matter.

They profiled us as hippies, undesirables, and told us they would not leave until we were let into the house.

I was scared, even though I’d grown up in Holmdel, and knew my family would open the door.

It was a terrible feeling, and when I complained to my Uncle, he said, “Good, I’m glad they stopped you. People like you don’t live here, so it’s their job to keep an eye out.”

People like you.

This is a true story.

And though I still love my Uncle very much, he is, in fact, a Republican.

 

Part 3. Getting to the point

 

I could tell you that my son has been discriminated against in his school, because he’s white.

He had to defend himself in fights, multiple times, and then got cut from the 6th grade basketball team, because it was Hispanics and Native Americans only.

His friends even admitted it to him, openly, because everyone knows that the white kids play soccer.

I’ve felt plenty of racism here too, over the last 25 years, but at least I know it comes from resentment of American oppression.

It’s more what the color of my skin represents, rather than the skin itself.

It represents power, and the fact that America took this territory from Mexico.

Which is why, despite the anecdotes I just shared, I have no illusions that I know what it’s like to be an African-American man in America.

I don’t.

I try to imagine the feeling, but that’s as far as I’ll get.

Even so, that hasn’t stopped me from writing politically here, for years, nor has it blunted my desire to speak truth to power when I can.

 

Part 4. I thought you were getting to the point

 

I want to write more about Amsterdam for you, to joke about the fun I had, and tell you how I almost died.

But it doesn’t feel right.

Rather, I went back through my photographs, to jog my memory a bit, and thank the art gods, I have just the right thing for today.

The opening quote, which I did my best to illuminate from my own perspective, comes from Eric Gyamfi, a young Ghanian photographer who won the Foam 2019 Paul Huf award.

Part of the prize was a solo show at FOAM in Amsterdam, and I was lucky enough to see it, back in February.

(Before the world changed, and shut.)

The opening gallery, with diaristic photos of various sizes pasted to the wall, was kind of cool.

But it didn’t blow me away.

And even after reading an article about Gyamfi and Queerness, in Aperture, I’m still not sure if the artist identifies that way.

But it doesn’t matter.

Because the next set of galleries represented one of the best photo exhibitions I’ve seen in years, and while it was perfect for the moment, (pre-pandemic,) it’s even more appropriate now. (During the protests and riots.)

As you’ll see in the photos, and video, the walls were covered with thousands of portraits of an African male.

 

(If Gyamfi were from here in the US, I’d say African-American, but he is not.)

They’re cyanotypes, which made the rooms a sea of calming blue, but some of the pictures reminded me of post-lynching portraits.

These were not happy pictures.

Nor were they even images of a real person.

 

In a conceptual hook that is not as interesting to me as the results, the artist made composites of himself, and an experimental music composer, Julius Eastman, so they should all be at least a little different.

Like fingerprints.
Or snowflakes.

There were mirrors in several places, so course a selfie-obsessed populace was taking pictures the entire time.

(Including me.)

I’d make sure to take some time to look at the walls, to “see” the art, and then I’d pull out the camera again, and set myself up in just the right spot.

Of all the other people I saw in the gallery, everyone was so busy shooting pictures of the work, (and themselves,) almost no one was looking at the walls without a camera.

At one point, someone even tried to explain to me where to stand, to get the best angles.

 

I have to imagine the artist expected this reaction.

That he wanted it that way.

Because while art often reflects us back to ourselves, this was showing human behavior at a crass, dehumanizing level.

But then again, the subject of the pictures was not even a real human.

Instead, a computer-generated hybrid.

More a stand in for all African, African-British, African-French, African-American men who are not seen as themselves.

They’re seen for the hoodie, or the stereotype.

courtesy of The Guardian

 

George Floyd, for example, was a massive guy. His friends called him a gentle giant, but Derek Chauvin didn’t see a man.

He saw a creature.
An animal.

And he murdered the man, the human, because he didn’t see him as human.

Nobody would do what he did, on camera no less, kneel on a man’s neck until he’s dead, unless he thought he could get away with it.

(And I say this having been in choke holds before, and having applied them, in martial arts.)

That act, (along with the previous thousands, and the recently publicized murders of Ahmaud Arbery and Breonna Taylor,) so perfectly represented what it means to be a person of color in the United States.

It means you don’t get justice.

It means the cops can kill you, and people can harass you wherever you go, and there’s nothing you can do about it.

The rage builds and builds.
Gets worse and worse.

And finally, when the match is lit, the fire erupts.

We may hate to see images of looting, it may fill us with dread, or maybe it doesn’t?

Either way, we can’t understand it without at least attempting to imagine how it would feel to be powerless against a system of oppression and state-sanctioned violence.

Of limited opportunities, and shitty health care.

Of insane proportions of Covid-19 deaths, compared to other races.

In the last 6 months alone, here in the column, I asked if China’s imprisonment of the Uighurs was any worse than the millions of African-Americans locked up here in the US.

And I wondered whether our culture, which always values the individual over the society, was in a more precarious position than we realized.

Then, just a few weeks ago, I invoked Karl Fucking Marx, to try to make sense of the naked exploitation of the working class.

I’m no Communist, believe me, but there was no other idea set that could explain that evidence.

It suggested we were on the verge of a Revolution, in attitude, if not in reality.

I’m also no Anarchist, and I’m rooting for the USA to figure this shit out.

To care about justice for all.

To do the hard work of humanizing ourselves to each other. And the Other to ourselves.

So I’m trying it here today.

I know that I’m not a racist, and I’m proud that I try hard to relate to, and appreciate, people from other walks of life.

But then again, I had an Aunt who knew the Chief of Police, and he wrote me a letter of protection.

And I took selfies in that blue room, that psychological experiment that Eric Gyamfi created in Amsterdam, which means I’m complicit too.

We all are.

And if we’re going to get out of this mess, we’ll have to find new levels of respect and appreciation for each other, and our differences.

Because while an eruption in the streets is often the result of generations of exploitation, while it draws attention to injustice, it cannot solve the problem alone.

Nor should it.

We need real change, and new laws. We need to see this as the beginning of a Second Civil Rights Movement, not a Second Civil War.

Stay safe and healthy out there, and see you next week.

The post This Week in Photography: Black Lives Matter appeared first on A Photo Editor.

------------------------

Visit our sponsor Photo Folio, providing websites to professional photographers for over 10 years. Featuring the only customizable template in the world.

------------------------

05 Jun 21:19

Mistakes to avoid when your company communicates about #BlackLivesMatter

by Josh Bernoff

Look, I’m no expert. And I’m white. But after my offer to help people crafting Black Lives Matter messages earlier this week, a bunch of companies came to me for help. As a result, I got to see some of the mistakes people are making. Many of those who want to write are suffering right … Continued

The post Mistakes to avoid when your company communicates about #BlackLivesMatter appeared first on without bullshit.

05 Jun 21:19

The science of front-end

by CommitStrip
mkalus shared this story from CommitStrip.



05 Jun 21:19

Updated Blogroll

by peter@rukavina.net (Peter Rukavina)

I’ve updated my blogroll, the list of blogs that I subscribe to and read every day.

It’s simply an export out of the FreshRSS newsreader that I use for RSS reading, with the addition of a stylesheet to allow human beings to read it to.

05 Jun 21:18

Eat, Sleep, Innovate

by meredith jenusaitis

The post Eat, Sleep, Innovate appeared first on Innosight.

05 Jun 21:18

Dropbox quietly launches private beta for its new password manager

by Jonathan Lamont

The already crowded password manager space quietly received a new entrant: Dropbox.

Dubbed ‘Dropbox Passwords,’ the cloud storage company’s new app is now available in private beta on Android. Anyone can download the app from the Play Store at the moment, but you’ll need an invite to actually use it.

Additionally, the app’s listing on the Play Store notes that it may be unstable as it’s still “in development.”

According to The Verge, Dropbox Passwords seems basic in its current state. It can create unique passwords, store them, sync them and automatically fill them, just like most other password managers out there. However, there’s no mention of useful features like importing passwords from web browsers or support for two-factor authentication (2FA).

Further, Dropbox Passwords boasts it has ‘zero-knowledge encryption,’ a feature that means only the user has access to data stored in the app. Zero-knowledge encryption is a common feature of password managers, with Dashlane, LastPass and 1Password offering the same protocol.

Finally, the app says it allows users to sign in to apps with just one click. While it’s not immediately clear, that indicates Dropbox Passwords supports Android’s autofill feature.

If you’re wondering why a cloud storage company is building a password manager, you’re not alone. However, it actually makes a lot of sense for Dropbox. Several password managers already offer Dropbox as a cloud option for syncing data between devices. As such, it wouldn’t be a stretch for Dropbox to build its own password service into its cloud offering.

Plus, with Dropbox’s name recognition, it could encourage more people to get a password manager. If you don’t already have a password manager, right now is the best time to start. Password managers make it easy to create unique, secure passwords for each online account and store them securely. Everyone should use one, and you can learn how to set one up here.

Source: The Verge

The post Dropbox quietly launches private beta for its new password manager appeared first on MobileSyrup.

05 Jun 02:30

Twitter Favorites: [Park_People] Can Indigenous culture ever coexist with urban planning? A book examines what actually happens when #urbanplanning… https://t.co/Kiqvt3X0RQ

Park People / Amis des parcs @Park_People
Can Indigenous culture ever coexist with urban planning? A book examines what actually happens when #urbanplanningtwitter.com/i/web/status/1…
05 Jun 01:17

The Sony A7 Firmware Wish List

I made a wish list of firmware improvements for the Nikon Z system back in February. I originally planned to roll out other firmware wish lists, but life got in the way and the project tabled for a bit.

Today, I'll tackle the A7/A7R/A7S series cameras from Sony. …

05 Jun 01:17

Mirrorless Full Frame Today

While full frame gets a lot of lip service on the Interwebs these days, I’m not sure everyone actually understands what’s available and how all those options cost out. Let alone which option to choose. So let’s take a closer look:

05 Jun 01:15

The Best Respirator Mask for Smoke and Dust

by Christina Colizza and Tim Heffernan
The Best Respirator Mask for Smoke and Dust

Respirator masks can protect adults from wildfire smoke, air pollution, and the dust and fumes of some home-renovation projects. After 50 hours of research and testing, we’re confident that the comfortable, durable, widely available 3M 8511 and 3M 8210 disposable N95 respirators are the ones to get.