Shared posts

02 Mar 02:17

ARM Macs are coming

by Rui Carmo

Everyone is going ballistic about this being “soon”, but if you consider the typical 5-7 year hardware development cycle Apple seems to be on lately, it’s pretty much right on the dot.

I’m curious as to the migration/cutoff strategy this time around. Windows on ARM provides an emulation layer, and Apple did the same before, but what if they just make it mandatory for developers to use bitcode on the Mac App Store?

Either way, I hope this means we get a new 12” MacBook. I absolutely love that form factor.


02 Mar 02:15

Raspberry Pi 4 USB C Power Fix

by Rui Carmo

Time to get a second one. I have settled on the 3A+ as my go-to board while this was getting fixed (and still hope to see a variant with more RAM), but the Pi 4 I use as a lab is as fast (from a UX perspective) as a low-end Intel box, and I quite like it as a container build box.

I’m not using arm64 on it yet, hence thinking of getting a second one for trying out a 64 bit kernel and starting to move my ARM stuff across.

I don’t really need it (I can do multi-architecture builds in the cloud already), but I think it’s time to think about setting one of these up as a thin client (and possibly get a new ultrawide monitor for it).


02 Mar 02:14

The Taxonomy Challenge

by Richard Millington

If you want to have some fun, study the taxonomy of top communities (well, perhaps not fun, but it’s worth doing).

The taxonomy of a community gets far less attention than it should – but it has a huge impact on the community.

Far too many communities have a terrible structure that hurts the experience for members.

You have several options. You can structure your community by:

  • User type (customer, developer, partner, reseller).
  • Product categories (product 1, 2, 3).
  • Sector (retail, B2B etc..)
  • Visiting intent (collaborate, share, get help).

…or a combination of the above?

Most communities try to do a combination of the above.

The Coveo Community, for example, has three features categories with the option to view all topics (thanks Erik!)

Click for full image

The Filemaker community goes with Create, Share, Integrate, Report, and Events up to two further levels of subtopics within each:

Click for full image

The HP community, like many in the B2C sector, go with specific product categories:

Click for full image

The Dropbox community goes with visitor intent as the prime navigation method:

Click for full image

Get survey data to determine what members prefer best (or test different approaches). Do they prefer to browse by intent, user type, product type, or some other issue? This is a simple survey question to ask.

A few things to be aware of here.

1) If you’re using Salesforce, be aware it’s a terrible platform for superordinate topic structures. For example, the ‘Many to Many’ topic on Filemaker is under Create > Relationships by navigation, but discussions for Many to Many won’t show up under Relationships or Create unless specifically tagged with those names. Trust me, this is a real pain.

2) Unless topics can be suggested from the content of discussions, know that most members will simply select the default (or easier) one. If there’s a ‘general’ option, they will use it.

3) Most members are too lazy to tag a question with more than one topic unless it’s automatically suggested as an option for them. Apple (below) is a good example of making it easy to tag multiple topics instead of trying to think of the right answer.

Click for full image

02 Mar 02:14

Weeknotes: Datasette Writes

As discussed previously, the biggest hole in Datasette's feature set at the moment involves writing to the database.

Datasette was born as a hack to abuse serverless, stateless hosting by bundling a static, immutable database as part of the deployment. The key idea was that for some use-cases - such as data journalism - you don't need to be able to continually update your data. It's just the facts that support the story you are trying to tell.

I also believed the conventional wisdom that SQLite is fine for reads but shouldn't be trusted to handle web application writes. I no longer believe this to be the case: SQLite is great at handling writes, as millions of iPhone and Android apps will attest.

Meanwhile, the biggest blocker to people trying out Datasette is that they would need to convert their data to SQLite somehow in order to use it. I've been building a family of CLI tools for this, but that requires users to both be familiar with the command-line and to install software on their computers.

So: Datasette needs to grow web-based tools for loading data into the database.

Datasette's plugin system is the ideal space for experimenting with ways of doing this, without needing to try out crazy new features on Datasette's own core.

There's just one big problem: SQLite may be great at fast, reliable writes but it still doesn't like concurrent writes: it's important to only ever have one connection writing to a SQLite database at a time.

I've been mulling over the best way to handle this for the best part of a year... and then a couple of days ago I had a breakthrough: with a dedicated write thread for a database file, I could use a Python queue to ensure only one write could access the database at a time.

There's prior art for this: SQLite wizard Charles Leifer released code plus a beautiful explanation of how to queue writes to SQLite back in 2017. I'm not sure why I didn't settle on his approach sooner.

So... Datasette 0.37, released this evening, has a new capability exposed to plugins: they can now request that an operation (either a SQL statement or a full custom Python function) be queued up to execute inside a thread that posesses an exclusive write connection to a SQLite database.

I've documented how plugins can use this in the new plugin internals documentation: execute_write() and execute_write_fn().

So far there's only one public plugin that takes advantage of this: datasette-upload-csvs, which previously used a dirty hack but has now been upgraded to use the new execute_write_fn() method.

I'm really excited about the potential plugins this unlocks though. I experimented with a logging plugin and a plugin for deleting tables while I was building the hooks (full implementations of those are posted as comments in the pull request).

Other use-cases I'm interested to explore include:

  • Plugins that import data from other APIs or services. Imagine web UI interfaces to some of my Dogsheep tools for example.
  • Plugins that periodically update data - pulling the latest CSV updates from government open data portals (like San Francisco's trees).
  • Tools for enhancing tables with additional data derived from their values - geocoding or reverse geocoding columns, resolving identifiers and so on.
  • Now that plugins have a tool for maintaining their own state, plugins could use SQLite tables to track things like which saved searches have been executed.
  • A plugin that lets you attach annotations to rows and columns in other tables, storing those annotations in its own SQLite database.
02 Mar 02:13

Surviving Crisis on Twitter

by Luis Villa

[This was originally published right before the COVID pandemic hit, with the expectation that it was about the upcoming 2020 campaign and presidential election. In 2022 I revised and renamed it, since much of the advice was still very relevant.]

I’m a political junkie, perhaps in some ways more now than ever. And yet, in late 2019-early 2020 I was posting very little about the 2020 election on Twitter. An old friend with similar political compulsions asked how I was doing it. The answer was ironically too long for Twitter. It also proved deeply relevant after COVID and many other ongoing crises hit. So how does one benefit from — perhaps even enjoy? — Twitter in our extended ongoing crisis? Read on!

Reduce Twitter altogether

Step 0: use Freedom or a similar blocking tool to keep Twitter out of your life when you’re trying to get other stuff done. I generally block Twitter during the entire working day on my work computer, and during the early morning (6-8am), morning (9-12) and afternoon (1-5) on my tablet and phone.

This is occasionally irritating since I do sometimes need Twitter for work but overall is worth it.

(Perhaps worth noting here that after the 2016 election I didn’t just reduce Facebook, I stopped logging in altogether unless I absolutely needed to for some reason. Absolutely zero regrets about that, though from time to time I miss certain people I only connected with there, and am curious to what extent I could effectively replicate the strategy described in this post there. Last I checked you could not firmly block specific words, which I think is critical to healthy engagement with social media—see next section.)

Reduced my Twitter political inputs

Partial list of words I block on twitter, including “president” “omicron” and “Pelosi”.

Step 1: simply reduce the amount of political stuff that I see when I go to Twitter. I see all kinds of other wonderful stuff instead! What I do in this direction:

  • Turn off the algorithmic feed. You want control over what you see; no one else (and certainly not an algorithm designed to suck your eyeballs in) should drive that.
  • Unsubscribe from all ‘news’ feeds on twitter—@nytimes, @cnn, etc. I use other mechanisms (see below) to get them daily at most. More generally, I aggressively turn off all news notifications on my phone. If the missiles launch and I need to hug my loved ones, someone will text me.
  • Unsubscribe from people I don’t know personally. For me, that’s basically all celebrites (except Lin-Manuel) but if that sounds too aggressive, you can Marie Kondo your follows with the help of the Tokimeki Unfollow tool. Two (small) exceptions for me:
    • Have they taught me something I didn’t know, because they’re giving me diverse perspectives not in my personal network? That can be troubling/non-joyful, but still valuable.
    • Have they given me opportunities for real-world action that you can’t get in some other way? For me, this is primarily local organizations — several San Francisco bike, transit, and YIMBY activists. (I find this to almost never be the case from national media, because the opportunities for practical action are too limited.)
  • Turn off all pure retweets with the Turn Off Retweets tool. Yes, even from your friends. In my experience, pure retweets are highly likely to be more angry/emotional, and less informative; if people have something interesting to add they’ll quote-tweet. Yes, there was some FOMO here. I got over it very quickly. If it is important, I see it eventually.
  • Mute (aka filter) political words aggressively. Here are Twitter’s instructions. A sampling of my word list is the highlighted image for this post. Note that I mute the name of politicans I often agree with, not just assholes! You do not need a constant stream of affirmation news either. Turn it off. The world will go on without it.

(optional) Replace with better news sources

I still feel the need for a lot of politics news. A few tips on managing this:

  • I subscribe to news via non-Twitter mechanisms, primarily Feedbin, a feed reader that allows me to follow both old-school RSS feeds and new-school email newsletters.
  • As with Twitter, block whatever your chosen mechanism is most of the day with Freedom. You don’t need to be informed all day long. (If I really had the right willpower, I’d try to keep my non-job-relevant news consumption to weekly, but I don’t (yet) have that willpower.)
  • As much as possible, make this local news. Important national/global news will trickle in as you need it. In my case, key local news sources are Mission Local and the Chronicle.

(dangerous) Use Twitter lists

I call this “dangerous” because in my experience it becomes very tempting to check Twitter lists in the same way you used to check your main feed, defeating the whole point. But you can move political follows to a list and check in on them occasionally. If you must do this, a few thoughts:

  • Make the list as diverse as possible. Ideally don’t follow anyone who your “main” follows are already following or RTing. For me personally, about a decade ago I started unfollowing most high-profile journalists and, in particular, made a deliberate effort to follow then-up-and-coming Black journalists, many of whom have now become high-profile themselves. Hearing them in their more personal voices on Twitter, as opposed to at article-length, has made me a better, more empathetic American. (Sadly, many of the best, like Vann Newkirk, have left Twitter, but I can hardly blame them!)
  • Follow at least some folks who you don’t agree with ideologically, assuming they’re making fairly good-faith efforts to inform and engage. There’s a lot of those on the right post-Trump.
  • Again, even if you must do this, don’t follow @nytimes and @cnn. These accounts are not designed to inform you, they’re designed to hook you. And I say this as a paying NYT and Washington Post subscriber!

(hard, but helpful) come to terms with the world as it is, and act in that framework

At some point in the past few years, I accepted that I’m going to have a baseline level of anger about the state of the world, and that I have to focus on what I can change and let go of what I can’t. (Twitter anger is the latter.) So what can I change? Where is my anger productive?

I’ve found that doing things offline—for me, mostly giving money—really helps. In particular, giving to causes that seek systemic (usually, that means political/government) change like 350.org and local activist groups, and giving a lot, and regularly. This, frankly, makes it a lot easier for me to ignore anger online — each new tweet is not likely to make me be more angry, or give more, because I’m already basically giving what I can. Being confident about that really reduced my FOMO when I started filtering aggressively.

I hear from non-parents/non-startup-founders that physical-world activism (door-knocking, phone banking, local gov meeting-attending, etc.) can be great in this way too but sadly I can’t confirm :(

(I also want to acknowledge that, in the current state of the world, ‘letting go’ gets harder the less privilege you have. I have no great response to that, except to say that I empathize and am trying to fight for you where and how I can.)

Improving my outputs

Having done all that, here’s how I try to improve the Twitter environment for others:

  • When in doubt, send it to a group of friends instead. You’ll get the same dopamine hit and no one will call you on it 5-10 years from now.
  • If I must RT or otherwise share politics news, I only quote tweet because that forces me to ask “what am I adding to this? why should I say it? What can I add that others can’t?” If I can’t add something, if I’m just amplifying anger, I try to shut up instead.
  • If I must be angry, I’ve tried to follow a rule that I only express that offline if I am also telling other people who are angry how to constructively address the problem. I don’t just say “I’m so mad about global warming”, say “I’m mad about global warming, here’s what I’m doing to help fix it, you can too“. If I don’t have a ‘here’s what I’m doing’ to add to it … I go back to ‘figure out what I can do’.

This isn’t perfect

Twitter has made me a literally better person, because it has exposed me to viewpoints I don’t have in my daily life that have made me more empathetic to others. It has changed my politics, making me vastly more open to systemic critiques of US center-left politics. So I’m reluctant to say ‘use it less, particularly for politics’. But I feel like it’s the only way to stay mentally well in our current world.

02 Mar 02:09

A MacBook wishlist, ranked.

by Michael Sippey

Because if I don’t put the wishes out into the world, how will they ever come true?

Continue reading on Stating the Obvious »

02 Mar 02:08

Ich wünsche mir von Apple ein iPhone

by Volker Weber

Ich wünsche mir ein iPhone, das Apple so nicht bauen wird. Aber man darf ja mal träumen, oder?

  • Griffiges und robustes Gehäuse aus Kunststoff
  • 6" Display
  • Dual SIM
  • Auswechselbarer Akku
  • 500 Euro

Mit anderen Worten, ich wünsche mir das, nur mit iOS. Apple wird das nicht bauen, weil Firmenkunden sonst nichts mehr anderes kaufen.

02 Mar 02:07

5 Examples of Great Email Replies to Customer Complaints

by Angela Stringfellow
5 Examples of Great Email Replies to Customer Complaints

Having a customer that actually brings their issue to your attention is a great gift. Surveys show that 96% of unhappy customers never complain to the company about their dissatisfaction with a product or service. That means the vast majority of complaints are directed at family or friends, which can have a lasting impact on business through negative word of mouth. Increasing customer satisfaction is a fundamental goal for any organization, and how your support team addresses complaints can have a tremendous influence on customer retention.

Using email templates to train your customer support team can help build alignment among your service reps and build a unified front that genuinely represents the value of your brand. A shared inbox is a valuable tool for managing customer support requests, allowing customer service reps to collaborate, draft replies, and get feedback before sending responses to customer complaints. Since each customer’s situation is unique, it is always best to personalize each message and take into consideration any important preferences for each person. By addressing their specific issues successfully, you can turn a negative situation into a positive experience and continue to develop long-term relationships.

There are some useful resources available that can help your service team handle customer complaints in an organized and effective way. In this post, we'll discuss five excellent email reply examples that you can replicate to start meaningful dialogues with unhappy customers.

1. Acknowledging Receipt of a Customer Complaint

When a customer submits a complaint through any communication channel, it's important to let them know that their voice was heard and that the relevant company contacts have been notified.

Dear [Name],
I am sorry to learn that you were on hold with our customer service department for 30 minutes. I understand how frustrating this must have been for you. We value our customers' time, and this should not have happened.
I will relay this message to the appropriate department and customer service representative. We are prioritizing the issue you're facing with our software, and our team is already working actively to resolve the issue. I'll notify you right away when it's fixed.
I appreciate you making us aware of your negative experience. We strive to provide excellent customer service in a timely manner, and I apologize for the inconvenience this has caused. Please let us know if you have any additional questions, concerns, or comments.
Warm Regards,
Jane Smith
Customer Service Director

As this example highlights, a reply that is personalized and acknowledges the specific points that the customer has made is best. They have also included the phrase, “Our team is already working actively to resolve the issue. I'll notify you right away when it's fixed." This reassurance lets the customer know that a follow-up will be coming directly from the representative who sent the original email reply.

2. Responding to Dissatisfaction with Overall Customer Experience

There will be times when a customer is dissatisfied but may not be able to clearly describe why. It could be because they encountered multiple issues or simply did not have an enjoyable customer experience. In any case, your customer service team may receive a complaint that expresses this dissatisfaction without specifics.

The best course of action in this case is to acknowledge the customer's dissatisfaction and express your desire to assist them in clarifying their complaint.

Dear [Name],
Thank you for your email. We take customer satisfaction seriously and are glad to hear from you.
First, I would like to apologize for the frustration you've been experiencing recently. I want you to know that we appreciate your feedback. It will allow us to resolve any problems that occur and help us to improve our services.
We're proud that you've selected our company as your service provider for the last five years, and we'd like the opportunity to resolve your concerns and earn your continued trust.
To help us route your complaint to the appropriate department who can address your concerns, we'd be grateful if you can provide us with additional details regarding your experience by filling out the attached form.
We are truly sorry for the inconvenience and hope to offer you better services in the future.
For any questions or further assistance, please reply to this message or call us at 1-800-234-5678.
Best regards,
Jane Smith
Customer Service Director

This example customer service response email includes a clear request to assist the customer in clarifying the complaint. In this example, the customer service team has prepared a form that is attached to the email reply for the customer to fill out. Using a form such as this gives your team a quick and easy resource that can be used to get the customer more involved. This follow-up process also gives your team the information it needs to take action to remedy the issues that led to the complaint.

3. Handling a Delivery Delay

Providing customers with a reliable estimate for their product delivery has become an essential requirement these days with continued competition for expedited shipping services. One of the most common – and frustrating – issues that customers may face is a package that does not arrive as scheduled. Delayed deliveries can be a challenging issue for your service team to manage as they need to work in coordination with your delivery service provider.

A message with a supportive tone is best when a product delivery is delayed.

Dear [Name],
I am so sorry to learn that your order has not arrived. I understand how frustrating this must be.
I've tracked your package via the U.S. Postal Service, and it's currently listed as [status]. If you'd like to keep track of your package's status, you can visit this link: [link]
Please contact me directly if your package has not arrived by [date] by responding to this message. Alternatively, you can call me directly at 1-234-567-8910.
Once again, I sincerely apologize for the inconvenience.
Best,
John Smith
Customer Service Representative

Your customer support agent can double-check the tracking information from the carrier and suggest that the customer contact the agent again if the package still does not arrive. This reply starts a positive tone for the conversation that can be carried through to a resolution.

4. Communicating with an Angry Customer

There will be certain times when a customer is so angry, it is clear that there is little opportunity to try and remedy the situation directly. In these situations, a straightforward and candid approach often works best.

Dear [Name],
I am so sorry to hear that your experience with our company has not met your expectations.
Customer satisfaction is our top priority, and I am truly sorry that wasn't demonstrated to you.
While we'd love the opportunity to regain your trust, we understand how frustrated you must be. My deepest apologies for any inconvenience we have caused you. We wish you all the best in the future.
Please let us know if you have any additional questions, concerns, or comments, or if we may be of assistance at any point in the future.
Best,
John Smith
Customer Service Director

In this example, the customer service representative acknowledges the customer’s feelings and wishes them well. Their reply also offers the opportunity for the customer to contact them again with any additional questions or comments. It also leaves the door open for the customer to continue the discussion or make their decisions without fueling their anger.

5. Addressing Technical Complaints

When your customer submits a complaint that highlights a specific issue, your team needs to reply with a response that thoroughly addresses the problem. A few of the most important points are to respond specifically to the issues, apologize, clearly state what follow-up has been done (or will be done), and highlight any long-term improvements that can be made.

Dear [Name],
I sincerely apologize for the inconvenience theses issues may have caused you. I have taken the liberty of refunding your subscription fee for this month. You will continue to have full access to all features of our software.
It appears that the connectivity issues you experienced were caused by a malfunction on our server. Poor connectivity is also the most likely cause of your inability to save your updates. Our team has identified the source of the issue and is working actively to implement a fix. We estimate that the problem will be fully resolved within the next hour. I'll reach out directly to let you know as soon as your access is restored.
Further, we'll be migrating to new servers within the next two months, which will provide further stability to our service.
Please don't hesitate to contact us if you need further assistance. Thank you for taking the time to provide us with valuable feedback.
Sincerely,
Jane Smith
Customer Service Representative

This email example illustrates all of these best practices for replying to your customers. Based on a specific issue with a software application, the service agent is able to provide a complete resolution to the customer's concerns and address all their key points.

How you reply to a customer complaint can have a significant impact on its acceptance and your chances of retaining the customer. With a well-trained customer support staff and meaningful email templates, you can give your team a great framework for addressing these complaints in a positive way.

02 Mar 02:06

Data-driven JAMstack with Sourcebit

Brian Rinaldi, Stackbit, Feb 27, 2020
Icon

I haven't had the chance to follow the instructions in this post (I'm still playing with Fastpages, which is now working for me - I'll be posting a follow-up soon) but what's happening here is a really good indication of how modern web design is progressing. A JAMstack, recall, is a site built with Javascript, APIs and Markup. Typically this build process is automated using a static site generator like Jekyll (which is what the Fastpages site uses). What Sourcebit does is to pull the data from the source, trsnaform it as needed, and make it available for use by the static site generator. In the demo example, the data source is a Contentful site, and the static site generator is Hugo.

Web: [Direct Link] [This Post]
02 Mar 02:06

London Throat & Why Brake Dust is BAD for You

by Sandy James Planner

newseventsimage_1579866730287_mainnews2012_x1

newseventsimage_1579866730287_mainnews2012_x1

If you have stayed in London for any amount of time or lived there, you may have experienced what Londoners call “London throat”, which includes mucus in the nose and illness. It turns out that vanadium, found in brake dust and in diesel exhaust contributes to “London throat” and also has an adverse impact on immunity.

The metal particles in the dust from worn-out brake pads on vehicles can be just as harmful as diesel emissions. Called BAD for Brake Dust Abrasion, studies done by King’s College London found that the metallic  dust from brake pads cause lung inflammation and “reduce immunity, increasing the risk of respiratory infections.”

As reported in the BBC the head researcher Dr. Liza Selley stated “Worryingly, this means that brake dust could be contributing to what I call ‘London throat’ – the constant froggy feeling and string of coughs and colds that city dwellers endure.”

In her research Dr. Selley found that 55% of traffic pollution is from non-exhaust particles, and 20% of that is brake dust. The dust is caused by the friction of the brake rotor grinding on the brake pads when a vehicle is braked, and the dust becomes airborne. Her research shows that the impact of this dust is just as severe as that of diesel particles. You can read Dr. Selley’s complete study here.

What this also means is that zero emission vehicles which have been vaunted as the environmental salvo to the internal combustion engines of  20th century vehicles are still going to contribute to brake dust. This speaks to doing more with less, by using public transit in cities as opposed to individual vehicles in high density areas that are subject to vehicular pollution.

It’s no surprise that the pro-automobile lobby has come out saying that all speed bumps should be removed from city streets to minimize brake dust, as reported in the Daily Telegraph.

While that may solve one issue it does contribute to another, that of speeding vehicular traffic’s impacts on livability as well as the increase of serious injury and fatalities.

The study also shows that as zero emissions vehicles reduce auto exhaust, the impact of brake dust will be even more significant. Further studies will examine the long term impacts of brake dust on city dwellers’ health.

brake-dust

brake-dust

Images: EBCbrakes.com & Imperial.UK.com

02 Mar 02:05

Delta Police Officers Use Media to Slow Drivers

by Sandy James Planner

 

9FA6C18F-F5FC-4887-AD12-BE3522C15FF2

9FA6C18F-F5FC-4887-AD12-BE3522C15FF2

The Delta Police Department  with its motto “No Call Too Small” is famous in Metro Vancouver for their witty and direct approach to traffic management in their city. I have already written about their innovative use of social media to help manage safety and vehicular speed— with the ultimate goal of mitigating crashes — in their municipality.

The Delta Police Traffic Unit  directly asks the public via Twitter where speed enforcement is required. The results have been laudable with police officers attending the offending locations to enforce bylaws. They even monitor marked crosswalks to ensure that drivers yield to pedestrians.

The department has further adapted its unique communication/enforcement approach, by also giving the public a “heads up” about potential enforcement areas, also at its @DPDTraffic Twitter account. And that’s not all~they even advertise their “ticket events” at the entrances of the areas they are enforcing.

Surprisingly, drivers don’t appear to read these large reader boards.

The results have been real, and measurable, especially in high crash locations. Police say they have seen vehicular speeds slow almost to posted levels on Highway 17, as well as on streets in the city’s commercial areas.

As Delta Police Staff Sergeant Ryan Hall stated“Although Delta police and other forces occasionally publicize enforcement efforts, we don’t think any other police force in B.C. has committed to giving the public a heads up on a regular basis.” 

The two-way communication, seemingly a simple protocol, is resulting in safer slower speeds on highway, commercial and residential streets.

The Department’s latest reader board sign? “Drive Like Your Mother is Watching”.

 

47FEF162-A662-41C1-8F6D-3CEC3952508B

47FEF162-A662-41C1-8F6D-3CEC3952508B
02 Mar 02:05

All 140 Countries Agree to the Stockholm Accord for Slower City Speeds~Except the USA. And British Columbia? Meh.

by Sandy James Planner

png0927nschoolsafety

png0927nschoolsafety

In the “You Just Can’t Make This Stuff Up” department, Forbes.com writer Carleton Reid reports that out of 140 countries attending the Third Global Ministerial Conference on Road Safety in Stockholm, only one country refused to sign the Stockholm Declaration on Road Safety. That country? The United States.

I have already written about the Stockholm Declaration and the nine recommendations. These have now been adopted by 140 countries  and changes the paradigm of road speed to focus on speed management by better enforcement, and by “mandating a maximum road travel speed of 30 km/h in areas where vulnerable road users and vehicles mix.”

Better still, the lower speeds will mean reduced automobile emissions and are already being enacted in the Netherlands, where speed has been rolled back on highways to 100 km/h.

There is of course precedent with the United States refusing to sign the Paris Accord on  global climate change in 2017. And there is already doom and gloom spin on what slowing traffic to 30 km/h or 20 mph in neighbourhoods will do to vehicular traffic. (Hint~absolutely nothing, vehicles can still circulate on arterial roads around the designated 30 km/h areas. ) Slower speeds in neighbourhoods  lower carbon emissions and lower the chance of serious vehicular crashes, enhance livability and mitigate noise.

But look at the numbers~annually 1.3 million people are killed in crashes. Fifty million people are badly hurt. Globally these crashes are the leading cause death for people aged five to twenty-nine years.

In the United States,  more than 7,000 cyclists and pedestrians died in 2018, the biggest increase since 1990. Between 2013 to 2017 the number of pedestrians killed by SUVs (sport utility vehicles) increased by 50 percent, while those killed by small cars increased by 30 percent. Even though the cost of crashes cost the United States economy 240 billion dollars a year, the vehicular lobby is still king.

In British Columbia it was Councillor Pete Fry with the City of Vancouver that advocated for a UBCM (Union of British Columbia Municipalities) resolution asking the Province to give municipal approval for 30 km/h  zones.  That would  allow the edges of the areas to be signed as 30 km/h, and  not have  every internal residential street signed as 30 km/h which would be costly.

To everyone’s shock, the Province refused to grant the cities the right to control the areas as 30 km/h. This proves once again that coming towards an election year more conservative inclinations are being exhibited by the Province to the detriment of the communities it serves.

Slowing speeds within residential areas works, and have been proven in many cities in Europe. We will just have to wait when permissive legislation allows for comprehensive slower, more thoughtful neighbourhood streets.

It will make a great election issue.

png-0221n-ubcmresponses-110

png-0221n-ubcmresponses-110

Images: Postmedia

 

02 Mar 02:04

Unread 2 Review: The Elegant RSS Client Leaps into Modernity

by Ryan Christoffel

Unread has always been one of my favorite RSS clients due to its clean, elegant, gesture-based design, but as competing apps have continued advancing at a steady pace, Unread’s development stalled leading up to its acquisition in 2017 by Golden Hill Software. Since that time, the app has received new life in the form of regular updates, but nothing on the level of what’s debuting today.

Unread 2, on one hand, brings a lot of change and propels the beloved RSS client into the present. It does this, however, with almost no design changes. Unread 2 looks and feels just like Unread 1, but with more power and a roster of modern features under the hood.

If Unread wasn’t the app for you before, then version 2 almost certainly won’t change your mind. But if you already appreciated the elegant RSS reader, Unread 2 provides a lot more reasons to love it.

There are so many big and small upgrades in Unread 2, for my review I’ve chosen to break its noteworthy improvements into three different categories: RSS, iPad, and OS features.

RSS Features: Automatic Webpage Text, Subscription Management, and Saving Articles

Perhaps the biggest headline feature of Unread 2 is something that, if it works right, you won’t even know it exists: automatic webpage text. This enables Unread to pull in the full contents of an article even if the RSS feed only includes the article summary. The app does this by default, ensuring you won’t have to do the dance of opening an article, finding it truncated, then loading the full article in Safari or Safari View Controller.

The one case where automatic webpage text is disabled is with sites that lock their full-text feeds behind a paywall. For every other site, however, Unread should pull in the full article every time, and I haven’t run into any occasions when this wasn’t true.

Subscription management is another key RSS feature, and one that I’ve sorely missed in the past. Though this has changed a lot in recent years, historically many RSS apps left the work of subscription management in the hands of RSS services; the service would handle subscription setup, while the app just fed you content from those pre-configured subscriptions. This approach has always seemed like an unnecessary pain point in user experience, and now in Unread it’s no longer an issue.

Subscription management inside Unread 2.

Subscription management inside Unread 2.

When opening your RSS account inside Unread, though inexplicably there’s no visible button for adding a new subscription, if you swipe from right to left on-screen a menu will appear with the new Add Subscription option. You can also modify existing subscriptions by long-pressing them and tapping Edit Subscription or Unsubscribe from the context menu. Depending on the service you use, certain other features are supported too:

Unread 2 also provides management of Feed Wrangler smart streams, Feedbin tags, Feedbin saved searches, Feedly categories, Inoreader folders, and NewsBlur folders. This feature is not available for Fever accounts.

Read-later services are another key addition in Unread 2. Joining the option I use with Feedly to send stories directly into a Saved Articles section in the app, now regardless of your RSS service of choice, those stories can be sent to a separate read-later service, with Safari Reading List, Pocket, and Instapaper all supported. After configuring your preferred service in settings, you’ll be able to quickly save articles in one of several ways: via context menus, or a custom double-tap gesture, or even via a keyboard shortcut when working on the iPad.

iPad Features: Keyboard Navigation, Multiwindow, and Drag and Drop

Articles are highlighted as you navigate them via keyboard.

Articles are highlighted as you navigate them via keyboard.

The iPad has received a lot of attention in Unread 2, starting with excellent keyboard navigation features. You can now do anything and everything in the app via a connected keyboard, including navigating the article list, bouncing in and out of menus, saving stories for later, and more. I’ve been using Unread 2 for several weeks now, and haven’t run into a single interface that couldn’t be navigated via the keyboard.

One area that’s especially important, and where Unread greatly succeeds, is in navigating an article with the keyboard’s up and down arrow keys. Most iPad apps simply don’t offer such scrolling navigation via a keyboard, and out of those that do, sometimes it’s a choppy, unpleasant experience. By contrast, Unread’s article scrolling is smooth and feels great, matching the fluidity found in Apple’s Safari. Article navigation could have been an area where Unread fell flat, but I’m really happy with what’s been done here.

With multiwindow, your feed list and article can be on-screen at once.

With multiwindow, your feed list and article can be on-screen at once.

Multiwindow functionality enables opening articles in separate windows, so you can now read an article while continuing to navigate your feeds – a feature I’ve always missed on the iPad, where screen space is abundant. If you use multiple RSS services, you can also keep separate feeds open in separate windows. Another idea is to keep your Saved Articles list open at all times in its own window. Opening a new window in Unread can be done by dragging an article or feed to the side of the screen until you see it morph into a new window, at which point you can drop it.

Finally, drag and drop isn’t just for creating new Unread windows. You can also now drag links out of the app to drop them elsewhere, such as a note where you store research materials, or into Safari where they’ll load their native web views.

OS Features: Context Menus, Full-Page Capture, and Alternative Icons

Left to right: Context menus, full-page capture, and alternative icons.

Left to right: Context menus, full-page capture, and alternative icons.

Context menus were a substantial new UI element in iOS and iPadOS 13, and I’ve quickly grown to expect their presence in every app I use. When an app doesn’t support these menus, and offers no other functionality with a long-press gesture, it feels like I’m being prevented from working faster and more conveniently, since the tools I’d expect to find in a context menu I have to hunt for elsewhere. For all of these reasons and more, I’m glad Unread 2 has adopted context menus all throughout the app.

Inside your feed lists, you can long-press an article to see a nice preview of its content alongside a well-organized and beautifully-designed context menu. The menu contains different sections housing related actions, so Edit Subscription and Unsubscribe are in the same section, as are Mark Above Read and Mark Below Read, and so on. I typically see context menus use monochrome SF Symbols or something similar as their glyphs, but Unread goes with full-color icons instead and they actually look great.

A second OS addition is support for iOS 13’s full-page capture mode when taking a screenshot. Full-page capture means that, in the screenshot markup view, at the top of the screen you’ll be able to select a new Full Page option. This presents the full article you screenshotted, rather than just what fit on-screen, and lets you annotate the entire thing then save it to Files as a PDF.

Finally, Unread now supports the option to choose an alternative app icon. A total of 14 icons are available, all of which are color variations on the standard icon design.

Pricing Model

Unread 2 has been released as a separate download from Unread 1, so existing Unread users who don’t want to upgrade can continue using the old app instead. Unread 2 is free to download and try out, but after your first 50 articles read you’ll need to subscribe for continued use; the app only offers an annual subscription option, which is $19.99. Users who purchased Unread 1 after June 1, 2019 will be eligible to receive a free year of Unread 2’s subscription plan.


Unread 2 delivers all the new functionality on my wish list.1 Though I wouldn’t have minded a little bit of visual refresh to go with the new features, the app doesn’t exactly need that change, it would have just been a nice cherry on top of an excellent release.

Despite the common practice of getting web content via a social platform like Twitter or Facebook, RSS continues to prove a valuable alternative devoid of the clutter of those services. Unread carries a strong history as one of the top RSS clients on iOS, and version 2 ensures that will remain true for a long while yet.

Unread 2 is available now on the App Store.


  1. Some users will be disappointed by the lack of Shortcuts support, but that’s not an issue for me personally. ↩︎

Support MacStories Directly

Club MacStories offers exclusive access to extra MacStories content, delivered every week; it’s also a way to support us directly.

Club MacStories will help you discover the best apps for your devices and get the most out of your iPhone, iPad, and Mac. Plus, it’s made in Italy.

Join Now
02 Mar 02:03

Don't Feel Bad for the iPad

by Neil Cybart

Last month marked the tenth anniversary of Apple unveiling the iPad. The occasion took on a somber feel as the most common reaction in tech circles ended up being sadness and disappointment for what the iPad had failed to become. While some are convinced that the iPad is in some way a victim of neglect, mismanagement, or even worse, such feelings are misplaced. We don’t need to feel bad for the iPad.

Anniversary Reactions

Apple unveiled the iPad on January 27th, 2010. To mark the tenth anniversary of the unveiling, a few publications had articles recapping the iPad’s first decade. Some of the reactions were complicated, to put it gently.

Here’s John Gruber, over at Daring Fireball, in a post titled, “The iPad Awkwardly Turns 10”:

“[Steve] Jobs’s on-stage pitch was exactly right. The iPad was a new class of device, sitting between a phone and a laptop. To succeed, it needed not only to be better at some things than either a phone or laptop, it needed to be much better. It was and is.

Ten years later, though, I don’t think the iPad has come close to living up to its potential. By the time the Mac turned 10, it had redefined multiple industries. In 1984 almost no graphic designers or illustrators were using computers for work. By 1994 almost all graphic designers and illustrators were using computers for work. The Mac was a revolution. The iPhone was a revolution. The iPad has been a spectacular success, and to tens of millions it is a beloved part of their daily lives, but it has, to date, fallen short of revolutionary.”

Ben Thompson, over at Stratechery, agreed with Gruber and went further in his own article, “The Tragic iPad”:

“It’s tempting to dwell on the [Steve] Jobs point — I really do think the iPad is the product that misses him the most — but the truth is that the long-term sustainable source of innovation on the iPad should have come from 3rd-party developers. Look at [John] Gruber’s example for the Mac of graphic designers and illustrators: while MacPaint showed what was possible, the revolution was led by software from Aldus (PageMaker), Quark (QuarkXPress), and Adobe (Illustrator, Photoshop, Acrobat). By the time the Mac turned 10, Apple was a $2 billion company, while Adobe was worth $1 billion.

There are, needless to say, no companies built on the iPad that are worth anything approaching $1 billion in 2020 dollars, much less in 1994 dollars, even as the total addressable market has exploded, and one big reason is that $4.99 price point. Apple set the standard that highly complex, innovative software that was only possible on the iPad could only ever earn 5 bucks from a customer forever (updates, of course, were free).”

There were then tweets (lots of tweets), regarding the current state of iPad. Here are two:

Riccardo Mori: “What I believe is that the iPad and its OS could have been so much more than a reinvention of the computing wheel adapted for a touch interface.”

Loren Brichter: “[T]he App Store is what killed the iPad.”

You get the point. There was no shortage of writers, pundits, and industry analysts using the iPad’s 10th anniversary to give eulogies for the product in terms of its inability to be revolutionary, grab momentum, or even just meet expectations.

A handful of people talked highly of iPad on its anniversary. However, such perspectives were few and far between. Interestingly, the articles that were published still ended up including noteworthy disclaimers and qualifiers. For example, here’s Om Malik in “iPad at 10. An affair forever”:

“A decade after its introduction, I think the iPad is still an underappreciated step in the storied history of computing. If anything, it has been let down by the limited imagination of application developers, who have failed to harness the capabilities of this device.”

My Reaction

I hold a very different view of the iPad at 10 years old. In recapping the 2010s, I went so far as to position the iPad as one of two most important tech products of the decade (the iPhone being the other one). The iPad has become ubiquitous in various industries and sectors, and in the process, it has altered modern computing.

How can there be such a dramatic difference in opinion when it comes to iPad?

Different perspectives.

To see how important perspective becomes in this discussion, we need to go back to the iPad unveiling in January 2010.

Selling a Problem

A closer look at the iPad unveiling reveals it wasn’t that Steve successfully made the sales pitch for a new product category. Instead, Steve successfully sold consumers on a problem they weren’t even aware they faced.

A few daily tasks like email, web browsing, video watching, and mobile games could be better handled on a large piece of glass with multi-touch than on a small piece of glass with multi-touch (iPhones) or a non-multi touch device (MacBooks). Such juxtaposition elevated the iPad at the expense of the iPhone and Mac. The iPhone was positioned as a tiny device designed for portability while the Mac was positioned as a heavy beast blown out of the water by iPad when it comes to handling simple tasks.

iPad Unveiling - Above Avalon

Consumers agreed with Steve that there was an indeed a problem and that the iPad was a genuine solution to the problem. The iPad became Apple’s best-selling product out of the gate with the company selling 22 million devices in just the first 12 months. Ten years later, it is difficult to envision a new Apple product that will be able to grab that kind of adoption so quickly.

The iPhone

In January 2010, the iPhone was more of an idea and a promise than anything else. When the iPad was unveiled, there were only about 30 million people using an iPhone. Apple now sells that many iPhones in about two months. In 2010, it was the iPad, not the iPhone, that was considered to be the more important product in the future.

Given such lofty expectations, maybe it shouldn't have come as a surprise that the iPad’s tenth anniversary was met with awkwardness, sorrow, and even sadness as some look at the product as a promise that wasn’t kept. However, the early promises found with the initial iPad were met. There was just an unexpected twist.

The iPhone ended up carrying the vision found with a larger piece of glass supporting multi-touch that Steve unveiled on stage in January 2010. As iPhone screens became larger over the years, the product leveraged the inspiration found with the initial iPad and turned it into something consumed by nearly a billion people. There are 32x more iPhone users in the world today than there were when the iPad was unveiled in 2010. The iPhone became an iPad that fit in one’s pocket. Based on the iPhone’s resounding success, it is fair to say that those early calls that the iPad would turn into something very big ended up being true.

A Pivot

Instead of raising the white flag and letting the iPad set sail into the sunset after being replaced by the iPhone, Apple pivoted the product category to accomplish two things:

  1. Serve as a content creation machine (Apple Pencil for drawing / keyboard accessories for typing).

  2. Represent a low-cost entry point into the Apple ecosystem ($329 starting price).

Those two changes gave the iPad a very successful second chapter. Unit sales have stabilized at 45 million per year with approximately 20 million new people entering the iPad installed base each year.

The iPad is currently shaping industries far more than some people are giving the product credit for. There are at least 350 million people using an iPad in some capacity. The iPad has indirectly added billions of dollars of market cap to companies ranging from Slack and Microsoft to Square when considering the product’s widespread adoption and influence in enterprise settings.

A Line in the Sand

The iPad has become a line in the sand between those who grew up on laptops and desktops and those who never felt comfortable with such devices. Apple finds itself walking a thin line when it comes to adding functionality to the iPad for some users while keeping the device’s simplicity and intuitiveness front and center for other users.

Multi-tasking is a great example of this battle. For instance, some Mac users are not pleased with Apple’s implementation of multi-tasking on the iPad. These users find multi-tasking on an iPad to be a mental exercise. Meanwhile, a portion of iPad users have no need or desire for multi-tasking on iPad. These users are also likely to view multi-tasking on a laptop or desktop as not intuitive. Going a week with no laptop or desktop usage will do interesting things to one’s perception about computing and intuitiveness. When returning to a laptop or desktop, the machines feel like taking a step back. Our brain has to be rewired to handle something that is inherently less intuitive.

The iPad’s Problem

Apple doesn't sell perfect products. There will always be room for improvement, refinement, and new thinking. In some ways, the lack of perfection is what serves as motivation for Apple to keep pushing. When defining the problems now facing the iPad, my criticism is a bit unconventional.

The iPad’s primary problem is that it is viewed by some as needing to be a laptop replacement in order to have any value. This unrealistic viewpoint has resulted in a type of expectational debt being placed on the device. The iPad is expected to become more like the Mac and macOS over time. This is problematic as the iPad is not a laptop replacement.

MacOS should not be positioned as inspiration for where to bring the iPad or iPadOS. This isn’t meant to belittle macOS. Instead, touch-based computing has blurred the line between consumer and professional devices. When debating content consumption versus content creation and the broader definition of work, there is a habit in tech circles to not consider how such terms have dramatically different meanings for hundreds of millions of people.

The takeaway is that the iPad has become a different kind of product, and it should be allowed to stand apart from the iPhone without being forced to replace macOS. Hence, there is iPadOS and things like Apple Pencil support. Instead of asking how best to handle multitasking on an iPad, a better question is to wonder what multi-tasking should even mean on an iPad. Such questions present new challenges regarding user interfaces and design.

Being Itself

Apple’s product strategy is to push all of its major product categories forward at the same time. This is different from pushing the iPhone forward and trying to have the iPad and Mac come along for the ride. Positioning the iPad as a content creation platform for the masses, designed to handle some tasks given to laptops and desktops while also handling completely new tasks, is a winning strategy. It allows the iPad to be itself while not forcing the product into a corner in order to satisfy certain segments of the Apple installed base.

A lot has changed during the iPad’s first 10 years. Some may be disappointed with how the iPad has evolved, even to the point of thinking Apple lost a great opportunity. However, I wouldn’t feel bad for a device that revealed the iPhone’s true potential and then became a different kind of content creation tool now used by more than 350 million people.

Listen to the corresponding Above Avalon podcast episode for this article here.

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.

For additional discussion on this topic, check out the Above Avalon daily update from March 2nd: The iPad’s First Decade, The iPad’s Second Decade.

02 Mar 02:02

Turtles all the way done: hijacking stories to your own ends

by Jim
Turtles all the way down
Terrapin stack

There’s an old parable that I first remember encountering in Stephen Hawking’s A Brief History of Time. It often surfaces in explorations of the collision between science and myth. In Hawking’s retelling, the story goes like this:

A well-known scientist (some say it was Bertrand Russell) once gave a public lecture on astronomy. He described how the earth orbits around the sun and how the sun, in turn, orbits around the centre of a vast collection of stars called our galaxy. At the end of the lecture, a little old lady at the back of the room got up and said: “What you have told us is rubbish. The world is really a flat plate supported on the back of a giant tortoise.” The scientist gave a superior smile before replying, “What is the tortoise standing on?” “You’re very clever, young man, very clever,” said the old lady. “But it’s turtles all the way down!”

With the recent resurgence in adherents to belief in a Flat Earth, this tale is offered as a cautionary reminder of the power of compelling myth in the face of plain old evidence. That’s an important reminder in a world buffeted by change. Whatever your commitment to reason and evidence, you only replace a story with a better story.

I want to see if I can hijack the turtles metaphor to my rational ends.

My interests are in connecting technology and organizational realities. I’ve used the obvious image of building bridges but that may be too simplistic to be helpful after everyone nods that a bridge would be nice to have. Perhaps a stack of turtles can help us navigate the space between.

The realm of computing and communications technology is still a relative newcomer in organizational settings. Learning to wrestle the complexity to the ground is a key task in developing comfort and proficiency with technology. One of the principal methods of getting technology under conceptual control is the notion of a stack; of discrete layers of technology the interact with one another in sharply constrained ways.

There is a well known observation about dealing with technology first offered by computer scientist David Wheeler that:

All problems in computer science can be solved by another level of indirection

When things become too complex, we hide the complexity underneath a new layer of abstraction. Tim Berners-Lee invents a scheme, the url, that hides the details of reaching out to another computer and grabbing a file or document. Pretty soon, we’re watching reruns of I Love Lucy in our web browsers.

The number of layers you might traverse in  any given technology environment can become quite deep. The design challenge in new technology often revolves around how cleanly you can define and navigate the stack of layers.

Which brings me back to my turtles. What if we extend the stack upwards from the technology into the organization? Don’t think of the process as a single step across one bridge. Think in terms of what new layers (or turtles) make sense to cross the span. Now your problem is one of working out how to move up or down a layer at a time.

The post Turtles all the way done: hijacking stories to your own ends appeared first on McGee's Musings.

02 Mar 02:02

(Re-)decentralize the web with MoodleNet!

Doug Belshaw, MoodleNet, Feb 27, 2020
Icon

Doug Belshaw reacts to Society Desperately Needs An Alternative Web, in which Hessie Jones reports on the recent Canada-United Kingdom Symposium On Ethics In Artificial Intelligence (EIAI-2019), noting that "The article covers a lot of ground, but in particular adds to the growing chorus to re-decentralize the web." As Jones writes, "From Diaspora to Bit Torrent, a growing list of technologies continue to develop alternatives for the DWeb: for storage, social nets, communication and collaboration apps, database, cryptocurrencies, etc."

Web: [Direct Link] [This Post]
02 Mar 02:01

Your Wireless Earbuds Are Trash (Eventually)

by Lauren Dragan
Your Wireless Earbuds Are Trash (Eventually)

I love my wireless earbuds. Putting them on is akin to slipping into my favorite sweatpants—I instantly feel comforted and insulated from the outside world. My headphones provide me with motivation when I’m working out, help me focus at work, give me information when I’m commuting, and help me relax before bed. But as much as I love them, something has been gnawing at my conscience lately: Is there a hidden dark side to my favorite earbuds?

02 Mar 02:00

The Best Hiking Boots

by Ebony Roberts
The Best Hiking Boots

We had 28 hikers log 900 miles in 13 pairs of men’s hiking boots and 13 pairs of women’s boots, and we concluded that the Salomon Quest 4D 3 GTX boots (men’s and women’s) are the best hiking boots for most people who plan to go day hiking and backpacking. They’re lightweight, breathable, and waterproof, and they have a wide toe box, which means they’re likely to fit almost any type of foot.

02 Mar 01:56

Fragment: Using Git Commit Messages as a Command Line?

by Tony Hirst

Pondering the way in which the fastai/fastpages repo (as described here) generates a PR from the first commit after the repo is cloned, I started pondering this:

name: Setup
on: push

jobs:
  setup:
    if: (github.event.commits[0].message == 'Initial commit') && (github.run_number == 1)
    runs-on: ubuntu-latest
    steps:

    - name: Set up Python
      uses: actions/setup-python@v1
      with:
        python-version: 3.6

    - name: Copy Repository Contents
      uses: actions/checkout@v2
        
    - name: modify files
      run: |
        import re, os
        from pathlib import Path
        nwo = os.getenv('GITHUB_REPOSITORY')
        username, repo_name = nwo.split('/')
        readme_template_path = Path('README_TEMPLATE.md')
        readme_path = Path('README.md')
        config_path = Path('_config.yml')
        pr_msg_path = Path('_setup_pr_template.md')
        assert readme_template_path.exists(), 'Did not find README_TEMPLATE.md in the current directory!'
        assert readme_path.exists(), 'Did not find README.md in the current directory!'
        assert config_path.exists(), 'Did not find _config.yml in the current directory!'
        assert pr_msg_path.exists(), 'Did not find _setup_pr_template.md in the current directory!'
        # replace content of README with template
        readme = readme_template_path.read_text().replace('{_username_}', username).replace('{_repo_name_}', repo_name)
        readme_path.write_text(readme)
        
        # update _config.yml
        cfg = config_path.read_text()
        cfg = re.sub(r'^(github_username: )(fastai)', r'\1{}'.format(username), cfg, flags=re.MULTILINE)
        cfg = re.sub(r'^(baseurl: )("")', r'\1"/{}"'.format(repo_name), cfg, flags=re.MULTILINE)
        cfg = re.sub(r'^(github_repo: ")(fastpages)', r'\1{}'.format(repo_name), cfg, flags=re.MULTILINE)
        cfg = re.sub(r'^(url: "https://)(fastpages.fast.ai)(")', r'\1{}.github.io\3'.format(username), cfg, flags=re.MULTILINE)
        config_path.write_text(cfg)
        # prepare the pr message
        pr = pr_msg_path.read_text().replace('{_username_}', username).replace('{_repo_name_}', repo_name)
        pr_msg_path.write_text(pr)
      shell: python

    - name: commit changes
      run: |
        git config --global user.email "${GH_EMAIL}"
        git config --global user.name "${GH_USERNAME}"
        git checkout -B fastpages-automated-setup
        git rm README_TEMPLATE.md CONTRIBUTING.md CNAME action.yml _checkbox.png
        git rm _notebooks/2020-02-21-introducing-fastpages.ipynb
        git rm .github/workflows/chatops.yaml
        git rm -rf .github/ISSUE_TEMPLATE
        git add _config.yml README.md _setup_pr_template.md
        git commit -m'setup repo'
        git push -f --set-upstream origin fastpages-automated-setup
      env: 
        GH_EMAIL: ${{ github.event.commits[0].author.email }}
        GH_USERNAME: ${{ github.event.commits[0].author.username }}

    - name: Open a PR
      uses: actions/github-script@0.5.0
      with:
        github-token: ${{secrets.GITHUB_TOKEN}}
        script: |
          var fs = require('fs');
          var contents = fs.readFileSync('_setup_pr_template.md', 'utf8');
          github.pulls.create({
                        owner: context.repo.owner,
                        repo: context.repo.repo,
                        title: 'Initial Setup',
                        head: 'fastpages-automated-setup',
                        base: 'master',
                        body: `${contents}`
                        })

In particular, the line if: (github.event.commits[0].message == 'Initial commit') got me wondering: what if we use commit messages to perform some other actions?

For example, something I keep wondering about is how to generate Binder environment specifications that can be easily reused. I’ve pondered this before in the context of “Binder base boxes”, the most useful approach (I think) being to define a basebox repo that is prebuilt and then nbgitpull your own repo into it.

Another approach I’ve idly wondered about was a simple script that could generate binder/ setups for you. For example binder_base chemistry might generate you a binder/ directory with apt.txt, requirements.txt and postBuild files preconfigured with packages that are relevant to working with chemistry related content; binder_base astronomy might create you a binder/environment.yml that will pull in a load of astronomy packages. Other switches might let you automatically add-in config info around package installation and setup for various extensions, and so on.

Putting these two together, I can imagine a commit message that would call an action that could:

  • create a domain relevant set of binder/ files;
  • commit them to the repo (if permissions available), or create a PR.
02 Mar 01:55

Prepared For Growth?

by Richard Millington

If you want to grow your community, you also need to be prepared for growth.

This is a strategic principle.

You can grow the community by redirecting your customer support area to your community first.

This will probably increase the number of questions you get in the community by 20% to 30%.

Are you prepared for that?

Ok, you have 20+ questions per day and want 40+.

Answering 40 technical questions per day is beyond the level of a single community manager. So what are you going to do?

Recruit top members to answer them (do you have a plan for how to do that?)
Get more staff members involved in answering questions (again, is there a plan for that?)
Hire more staff?

It’s futile to try and drive more growth without having a plan to handle that growth.

02 Mar 01:55

Brexit is going feral

by Chris Grey
In the very first post on this blog, in September 2016, I noted that the complexity of delivering Brexit and the lack of realism of Brexiters meant that in the coming months and years we would hear much more about civil service ‘obstructionism’. It had already begun, only a few weeks after the Referendum, and in the years that have followed it has intensified, sometimes aimed at the civil service in general, other times at particular individuals.

Of these, the most high-profile targets have been Sir Ivan Rogers and Sir Kim Darroch, both of whom were effectively forced to resign. There has also been a swathe of resignations other senior civil servants including Sir Jon Thompson, the head of HMRC, who received death threats after giving evidence about the costs of Brexit to a Select Committee.

Whilst Brexit has increased the overall size of the civil service, there is some evidence of unusually high turnover amongst staff. It is a reasonable speculation, given comments such as those of Sir Martin Donnelly, former Permanent Secretary at the Department for International Trade, that in at least some cases fundamental differences over Brexit have played a part in this.

At the time of Rogers’ resignation, in January 2017, I wrote that a string of resignations and early retirements from the civil service was very likely, and that the wholesale politicization of the civil service in favour of true believers in Brexit was a danger. The first has proved true and the second seems more of a risk than ever. I mention these earlier blog posts not to ‘boast’ about my prescience – and, anyway, many others said similar things - but to show that what has happened, and is happening, is not accidental, unexpected or just to do with Johnson’s premiership, but is embedded in the entire process of Brexit itself.

The latest attack on the civil service

This week  has seen the intensification of this, with reports of a ‘hit list’ of senior civil servants (£) who the government want to replace because they are not on board with Brexit and related policies. There are numerous reports of more or less open warfare between Priti Patel, the Home Secretary, and her senior civil servants. Meanwhile, former Chancellor Sajid Javid’s resignation speech implicitly criticised the way that political advisors, most obviously Dominic Cummings, are sidelining the civil service as well as undermining ministers.

At one level, there’s nothing new about this. The Labour governments of the 1960s and 1970s were highly suspicious of the perceived ideological conservatism of the civil service. The Thatcher governments saw corporatism, and capture by special interests, amongst civil servants as a block to their reforms. And New Labour often regarded civil servants as resistant to the managerialization of public services that were Blair’s hallmark.

It may have been less visible, but undoubtedly some senior civil servants were sidelined and eased out, and more congenial ones promoted, within all of these administrations. Moreover, as Geoff Mulgan, who was involved in some of them, them has recently written there are many past parallels for some of the civil service reforms that are currently being discussed. And bust-ups between Chancellors and Number Ten advisers aren’t new, either – recall the resignations of Nigel Lawson and Alan Walters in 1989.

However, there are very important differences between all that and what is happening now. In the past, it was about the perceived ideological and policy preferences of civil servants, either en masse or as individuals. And despite the much-vaunted neutrality of the British Civil Service it would be naïve to deny that such preferences did not exist, that there was an ‘official view’, or, even, that the social background of the traditional civil service predisposed it towards a certain conservatism. Even so, civil servants did and still do pride themselves on carrying out policies that they do not personally believe in. And strong ministers have usually been able to over-ride reluctant officials if they have coherent ideas.

What is happening with Brexit is something different. As I, along with many others with much greater authority and larger audiences, have recorded on this blog, most of the things that Brexiters want are simply impossible to deliver – possibly all of them, when taken in combination - and are often based upon deliberate or accidental falsehoods. This generates a faith-based politics in which what matters is loyalty to the cause and purity of belief. Possessed of such belief, the impossible becomes possible and inconvenient facts disappear.

A government purged of dissent

We’ve now reached the stage where the government has purged from office all those who do not display this loyalty and do not have (or are not willing to simulate) this purity of belief. At the same time, it is a government which must finally deliver on Brexit, not as a matter of promises, slogans and theory but in the cold, hard world of political, legal and economic reality. This is the task with which they have charged the civil service.

This puts civil servants in an impossible position. An individual civil servant might disagree with privatization or nationalization, say, but these are deliverable policies and such an individual can, and should be able to, swallow personal views and deliver them. But no individual can, say, deliver a policy of frictionless trade (£) with the EU once the UK leaves the institutions – the single market and the customs union – that make such trade possible. Nor can a civil servant advise, or undertake, a policy which is illegal.

In the face of this, the government – along with its many Brexit-supporting allies in the media – is rapidly moving to a position where it wants the civil service, like itself, to be purged of non-believers and, in this way, supposedly to ensure the delivery of Brexit. On the basis of recent reports, the particular fault line at the moment is an attempt to find ways around the checks on goods moving between Great Britain and Northern Ireland, as entailed by the Northern Ireland Protocol of the Withdrawal Agreement (for more on this issue, see my previous post).

This agreement, don’t forget, is a legally binding international treaty. Hence it is also reported that the new Attorney-General, Suella Braverman (a former Chair of the ERG) was appointed partly as being more likely to advise that this would be legal than would her predecessor Geoffrey Cox (who voted leave in the Referendum but is unpopular with Brexiters, going back to his refusal to advise that the UK could legally unilaterally exit the Irish backstop provisions in May’s deal). The legal issues entailed were the agreement to be broken are discussed in detail by Professor Steve Peers on his EU Law blog.

The role of the Attorney-General is a complex one, with a long and convoluted history, being both a government ministerial office and also the government’s chief legal adviser. It is not, of course, a civil service role. But, as reported, the situation parallels what seems to be being asked of civil servants in that the hope is that the new Attorney-General will give advice more conducive to Brexiters’ ears. Yet, even if so, the provision of such advice will not mean that the UK evades any legal consequences of following it (it is legal advice, not a legal judgment) and, perhaps more importantly, the political consequences in terms of the reputation of, and trust, in the UK. That could have important practical implications not just for relations with the EU (£) but also with other countries, including the US.

Closed ears and closed minds

Such consequences point to the crucial issue. There is little merit – in politics, as in private life – of seeking only the advice which you want to hear. And whilst legal advice may often be subject to a legitimate range of interpretations, in many Brexit matters what is at stake are facts or at least best-estimate predictions.

Thus Brexiters may, and do, dismiss almost all economic forecasts of Brexit, including those of the civil service, preferring to rely on those of the small group that used to be called Economists for Brexit. Yet doing so does not make those forecasts reliable, and does not negate the fact that, thus far, they have proven inaccurate nor the repeated, detailed and devastating critiques of that group.  Other things – such as the impact of Brexit on business supply chains, or the tariffs associated with ‘trading on WTO terms’, are even less amenable to alternative interpretations.

All of this has been in play since the beginning. But it is now taking a far more dangerous form because of the nature of Johnson’s government since winning its majority. That could have been an opportunity to ‘stop campaigning and start governing’. Instead, there is a very strong sense that he and his government now want to blank out any advice or viewpoints that contradict those not just of Brexiters but of the most hardcore Brexiters.

This explains why, preposterously, the government is going to consult on the economic and business implications of its Brexit plans – but only after having made them. It also partly explains the current prominence that special advisers have, which is most unusual. Even leaving aside the well-known example of Cummings, consider the fact that David Frost’s lecture last week, treated almost as an official policy statement, was given by someone who is neither a politician nor even a civil servant, but a special advisor.

The report that Johnson wants civil service briefings to be short and simple is not so remarkable – many politicians share that desire – but the suspicion must be that he also wants them to pander to, rather than to challenge, his pre-existing beliefs. It is consistent with the story that, when Foreign Secretary, he reacted to unwelcome advice from civil servants by sticking his fingers in his ears and humming Rule Britannia*. Most significantly, it is consistent with the fact that, both as Foreign Secretary and as Prime Minister he has agreed to things which he later disowned, suggesting that he either did not read or did not understand them.

That goes to the heart of why not taking, or not even receiving, advice you do not like is an untenable basis for political decision making. For reality does not change just by ignoring it. The government could replace the entire civil service with Brexit flag wavers but, still, the economic, political and legal realities of Brexit will remain unchanged. It won’t change the negotiations with the EU (except to make them more difficult), it won’t change the consequences of not reaching a deal with the EU, it won’t change what businesses will do in response, and it won’t change the consequences of that for investment, employment, the tax base, or the value of sterling.

Closing down ‘dissident’ voices

All of this is a recipe for poor political decision making and substantial economic damage (and do read this link to a blog by Matt Bishop of Sheffield University – it’s one of the best things on Brexit I’ve seen). But what is currently happening carries dangers which go even beyond that. For there is now every sign that the government is not just determined to shut out what it perceives as dissident voices, but to close them down. Not just to ignore reality but to seek to redefine it.

This is evident in the latest attacks on the BBC, including the refusal of government ministers even to appear on some of its programmes, and wider attempts to boycott or marginalize journalists perceived to be unsympathetic. Again, this hasn’t come from nowhere. Apart from the longstanding Tory hostility to the BBC, as early as October 2016 Boris Johnson and other Brexiters were calling for an investigation into its alleged ‘anti-Brexit bias’.

It is most worryingly evident in the government’s attitude to the law. That overlaps in part with the issue of civil service advice – as with Home Secretary Priti Patel’s alleged attempts to encourage “behavior outside the rule of law” (£) – as well as with the suggestion, discussed above, that, under cover of legal advice from a fanatical Brexiter, the government might renege on an international treaty. But beyond that it is apparent in the forthcoming constitutional review, to examine amongst other things the role of the judiciary in politically contentious decisions.

With political oversight from the prominent Vote Leave campaigner Michael Gove, the obvious impetus behind this is the Supreme Court judgments that Parliament should have a vote on whether to trigger Article 50, and that Johnson’s attempted prorogation of Parliament was illegal. In that sense, it is the lineal descendent of the infamous ‘Enemies of the People’ headline, although it is important to remember that, in both cases, the judgment was about the rights of the Legislative versus the Executive rather than the rights of ‘the people’ versus the politicians.

Brexit as a gateway to ‘disruption’

As such, it’s partly pure spite – Johnson is notoriously vindictive towards those he perceived to have opposed him, one of the many ways in which his ‘jocular’ persona is a fraud – but it goes much deeper than that. On the one hand, it’s about a fairly traditional political idea, that there are votes to be had by mobilizing resentment against elite institutions. People sometimes talk as if populism is a new thing in British politics, but it has a long lineage and, in recent history, both Thatcher and Blair showed versions of it. It’s no coincidence that both got into major fights with the BBC and the judiciary. It’s also no coincidence that then, as now, such fights occur when the official opposition party is utterly feeble and demoralized.

On the other hand, it’s about something new, or at least distinctive in form. It grows out of the ideology of ‘disruption’ that has swept through business and politics over the last few decades. That was incipient in both Thatcherite and Blairite politics but is now far more potent, partly because of social media. Nor is the connection to business accidental. There’s a reason why this government seems like every bad boss you’ve ever had and it’s that it has taken on, wholesale, the mix of bullying and hubris that has infected much of the corporate world. Dominic Cummings may seem like a novelty in the political realm, but he’s a version of just about every big-league MBA School graduate who has mistaken reading airport lounge books about Silicon Valley and quantum physics for wisdom.

All this should be as alarming to leave voters as to remainers. Brexit is being used as a cover for things that no one ever voted for. That is obvious in relation to the way that Brexit is being done, with all the promises about being part of a “Free Trade Zone stretching from Iceland to Turkey” having been ripped up. It is obvious in the way that Johnson is now seeking to shrug off the ‘oven ready deal’ upon which he was only recently elected (more on this in next week’s blog, once the noise around the publication of the UK and EU negotiating documents has died down).

But, now, it is going even beyond that. Joining in the government’s attack on civil servants, Brexiter journalist Allister Heath announces that “Brexit is not enough” and that “our arrogant overrated civil service must now face a political reckoning”. Joining in the wider attack on the judiciary he, like other Conservative Brexiters, bemoans (and totally misunderstands) the role of the courts in ruling on Heathrow expansion. Presumably he wants, like “Dom … to get the judges sorted” (£), a phrase which shows both dismaying contempt and misplaced arrogance. Meanwhile, the government’s latest statement of its Brexit approach pointedly shifts away from the previous commitment to the European Convention/Court of Human Rights. In these and other ways a powerful alliance is using Brexit as a springboard for a multi-pronged assault on the central institutions of democratic society.

The dangers of hubris

There are deep and genuine grounds for alarm in all of this, ably articulated by Sean Danaher in a recent post on his excellent Progressive Pulse blog. At the same time, it would be wrong to think – and the government should be wary of assuming – that we are set on an inevitable course.

For example, there are already signs of the civil service fighting back against the latest criticisms that are being made of it and against the power that Dominic Cummings and other special advisers are wielding. Journalists have shown that they will walk out of Number Ten briefings that exclude their colleagues from unfavoured news organizations. Businesses and other interest groups are going to get more vocal, as, for example, the opening session of this week’s NFU Conference showed. Hobbling the judiciary will not be easy. And it may well be that the Labour opposition regroups once it has a new leader.

In particular, the government should be wary of hubris. It has a large parliamentary majority, but it is pursuing in Brexit a policy that the majority of the population do not now support – and which is especially unpopular in Scotland and Northern Ireland - and of which those that do support it have very varied expectations. Nor should it assume that its disdain for the BBC, judiciary, civil servants and business is shared beyond a vocal minority. Picking fights with so many groups simultaneously could quickly see the government become very beleaguered.

In riding the tiger of populist sentiment Johnson has set himself up to be bitten back, badly, if things go wrong. For whilst the government’s expectation is undoubtedly that blame will attach to the EU, or remainers, or judges, or civil servants, or immigrants – or all of these - that can’t be guaranteed. Indeed, the existence of a government with a strong majority, full control of the Brexit process and closing down all advice and warnings about that process runs the considerable risk that – if those warnings prove true – it and it alone will be left to take the blame.



*I am sure that there is a reliable source for this story – in my mind, an article in the FT - but all I have been able to find is a passing reference in a Facebook post by Billy Bragg. I’ll make a (modest) donation to the Journalists’ Charity if anyone gives me the source.

02 Mar 01:55

Surface Pro X :: So funktioniert der Stift

by Volker Weber

a6b5021a811e6e1a03c4ead4841ad020

tl;dr: Microsoft hat mit dem Surface Slim Pen die für mich bisher beste Lösung gefunden.

Ich benutze seit dem Surface 3 und dem iPad Pro 9.7" sehr gerne einen aktiven Stift. Das liegt unter anderem daran, dass ich überhaupt keine Notizen auf Papier mache und man nicht alles mit einer Tastatur ausdrücken kann. Bei den verschiedenen Pens von Apple und Microsoft habe ich dabei eine kleine Design-Evolution miterlebt.

Am Anfang steht die Frage, wie denn das Schreibgefühl ist. Glas ist glatt und fühlt sich anders an als Papier. Daran habe ich mich sehr schnell gewöhnt. Die Latenz ist mittlerweile so gering, dass die "Tinte" auf dem Display direkt aus der Spitze zu fließen scheint. Auch die Anpassung an den Druck des Stiftes ist so gut geworden, dass man wie mit einer Feder schreiben und zeichnen kann. Diesen Teil der Benutzung will ich deshalb gar nicht weiter ausdifferenzieren.

Es gibt aber große Unterschiede im ganzen Drumherum. Was macht man mit dem Stift, wenn man ihn gerade nicht benutzt. Lenovo hat im X1 Yoga einen Silo, in dem man den Stift aufbewahrt. Dort wird er auch geladen. Nimmt man ihn raus, dann rollt er auf dem Tisch nicht weg, weil er eine kleine Nase hat, die das verhindert.

Bei Surface 3 und iPad Pro machten sich Microsoft und Apple zunächst gar keine Gedanken darum, wie man den Stift unterbringt und versorgt. Der Surface Pen brauchte etwa einmal im Jahr eine AAAA-Batterie, die man nicht mal eben an der Tanke kaufen kann, der Apple Pencil wurde mehrmals wöchentlich über seinen Lightning-Stecker geladen, den man in den Lightning-Port des iPad Pro steckte. Das sah komisch aus, funktioniert aber gut und schnell. Mit diesem Vorgang wird er auch gepairt. Und nur deshalb funktioniert er nicht mit den neuen iPad Pro mit USB-Port.

Der erste Surface Pen hatte drei Knöpfe: einen oben drauf, zwei an der Zeigefinger-Spitze. Nicht umsonst sah der obere Knopf wie ein Radierer aus. Man kann den Stift einfach umdrehen und ist dann im Radiermodus. Genial. Surface wie das iPad hat keine Unterbringungsmöglichkeit, aber bei diesem Pen gibt es immerhin einen Clip, um den losen Pen irgendwo zu befestigen. Das geht auch an dem Keyboard Cover.

Der Apple Pencil dagegen hatte gar nichts. Keine Knöpfe, keinen Clip, dafür aber eine verlierbare Kappe über dem Lightning-Stecker. Unangenehm war, dass der Stift auf dem Tisch einfach wegrollt, wenn man ihn zur Seite legt.

In der nächsten Generation legte der Surface Pen den Clip ab und erhielt eine flache Kante. Jetzt konnte man den Pen an der linken (!) Seite des Surface Pro magnetisch gehalten parken. Das ist etwas ungewöhnlich für Rechtshänder, aber man lernt das Übergreifen schnell. An der rechten Seite dagegen gibt es keine Magnete, die den Stift zuverlässig halten, weil dort alle Anschlüsse des Surface Pro sind.

Apple brachte mit iPad Pro 2018 dann einen neuen Pencil, der ebenfalls eine flache Seite hat und nicht mehr wegrollt. Er wird an der rechten langen Seite des iPad Pro magnetisch gehalten und induktiv geladen. Stellt man das iPad Pro auf ein Smart Keyboard Folio, befindet sich der Pencil dann oben auf der ganzen Konstruktion. Das Pairing von iPad Pro und Pencil passiert ebenfalls an dieser Parkposition, weshalb man den neuen Pencil nicht mit den Lightning-iPads nutzen kann.

Die magnetische Fixierung von Surface Pen und Apple Pencil taugt wunderbar auf dem Schreibtisch, aber nicht für den Transport. Die Stifte lassen sich so leicht abstreifen, dass ich sie so nicht mal durch ein Bürogebäude trage. Beim Verstauen in einer Tasche fallen sie garantiert ab.

Der Surface Slim Pen löst nun alle diese Problemchen. Er kann an der rechten (!) Seite des Surface Pro X geparkt werden, während man das Gerät nutzt. Er pairt sich, sobald man ihn auf dem Screen benutzt oder nachdem man ihn mit einem langen Druck auf den oberen Button in den Pairing Mode versetzt hat. Damit funktioniert er auch mit alten Surface Pro. Der Stift hat eine ovale Form und rollt deshalb nicht weg. Außerdem liegt er sehr gut in der Hand und der Zeigefinger liegt automatisch an dem unteren Knopf. Das kriegt man bei den älteren Pens nur mit einiger Übung hin.

Wenn man zu dem Surface Slim Pen auch das Keyboard Cover hat, was ich für unabdinglich halte, dann bietet dieses Cover eine Garage für den Stift, in der er induktiv geladen wird. Der Stift wird zwischen Cover und Surface Pro X eingeschlossen, so dass er unmöglich verloren gehen kann. Er dreht sich dabei automatisch richtig rum, wenn man ihn einlegt. Magnete können sowas. :-) Ich lege den Stift immer dort ein, wenn ich meine Arbeit beende und nehme ihn heraus, sobald ich wieder anfange. An seiner Parkposition an der rechten Seite greift er sich viel schneller.

b2046fce25b4e5d880cf1a8451d88081

Man kann diesen Slim Pen auch einzeln erwerben. Dann bekommt man dazu eine kleine Stiftgarage, über die man per USB-C laden kann. So taugt er auch für andere Surface Geräte. Das Keyboard Cover des Surface Pro X ist dagegen nicht mit Surface Pro kompatibel. Andere Anschlüsse, andere Dimensionen.

Was mir beim Surface Pen ausnehmend gut gefällt, sind die Shortcuts, die man auf den "Radierer" legen kann. Ich habe das so konfiguriert: Klicken öffnet OneNote, Doppelklicken macht einen Screenshot und öffnet ihn in Snip & Sketch, (lange) Drücken öffnet das kollaborative Whiteboard.

02 Mar 01:55

Desktop Firefox in Your Pocket with the Librem 5

by David Hamner

Desktop Firefox is making its way over to the Librem 5 – the power of a full desktop browser in your pocket. For now, you’ll need to edit the .desktop file after installing, but that will be fixed in a future update.

sudo apt install firefox-esr
cp /usr/share/applications/firefox-esr.desktop ~/.local/share/applications/
nano ~/.local/share/applications/firefox-esr.desktop

The desktop file needs the Exec line modified to look like:

Exec=env MOZ_ENABLE_WAYLAND=1 /usr/lib/firefox-esr/firefox-esr --no-remote %u

The first part tells Firefox to use the Wayland display stack instead of X11, which has fullscreen support with keyboard input. Finally --no-remote is a workaround to a Firefox bug, which has already been fixed and will find its way into Debian, as well as the PureOS and the Librem 5 soon.

Firefox Desktop on the Librem 5 in portrait mode

The default browser Gnome Web offers a much better UI for mobile screens. It makes accessing settings or using swipe gestures to navigate pages feel at home on a smartphone. If the first load of a web page is slow on Gnome Web, this is due to a bug, which the team is addressing – see the issue for an interim work around.

The Librem 5 already has two great web browsers with more in the PureOS store still to be explored. If you wanted you can even remove the default – unlike on Android and iOS. With the Librem 5 you have complete control over your phone and its software.

Discover the Librem 5

Purism believes building the Librem 5 is just one step on the road to launching a digital rights movement, where we—the-people stand up for our digital rights, where we place the control of your data and your family’s data back where it belongs: in your own hands.

Preorder now

The post Desktop Firefox in Your Pocket with the Librem 5 appeared first on Purism.

02 Mar 01:55

Impending Pandemic?

by Ton Zijlstra

Bryan Alexander blogs a good overview of resources to track the spread of Covid-19. We’re not in pandemic territory yet, but given current statistics, it may end up where about 50% of a country’s population gets the virus (with ~2% fatalities). The coming weeks will tell how it plays out. Bryan links to a cool global dashboard by John Hopkins (screenshot below).

With two independent confirmed cases in the Netherlands in the last 24 hours (both having travelled to the Italian areas with an outbreak), it’s a good time to check preparedness, for the company (pdf) and personally. I am already encountering impacts like production cycles getting disrupted and deliveries of things I ordered getting postponed indefinitely because the Chinese factories aren’t running at their normal levels. I am also hearing the first companies in my network cancelling international travel of their employees to events.

In my company there’s not much to prepare really, as we can switch to fully remote work easily. There may be mid-term to longer term impact on landing new projects. Specifically some work in SE Asia, foreseen for June I think might be impacted. Other projects in the pipeline also may depend on how cautious clients will get in the coming weeks depending on developments.

At home we’ve checked our stocks to ensure we can take care of ourselves for about a month. This as if you happen to find yourself in an outbreak area, like Milan currently, you will likely encounter empty supermarket shelves within 3 days. Currently the most disruptive thing likely is if public spaces like Y’s daycare get shut down, meaning she’ll be at home 3 extra days. For now we’re not anywhere near that though.

02 Mar 01:54

Are fastpages Really an EASY Way to Publish a Blog From Jupyter Notebooks?

by Tony Hirst

I tried to submit this to the fast.ai discourse forum, having been invited to do so, but after handing over credentials to get an account so I could log in, then having to go to my email client to click the confirmation code, then not being able to create a new topic (new user policy, maybe?) then having my post quarantined and my account largely suspended, I thought I’d post the text of the post here (glad I took a copy…)

(I appreciate that my behaviour / attitude around this may be seen as both childish and churlish,  but I was originally riled by the “easy” hype around fastpages (because I don’t think it necessarily is easy for anyone other than a particularly select population…) and since then, things have just gone downhill in terms of ease of use / communication!;-) “Just do X” has (just) so much baggage associated with it…

Original post and replies thread

Picking up on a Twitter thread, some comments around the “fastpages supports really easy Jupyter blogging” effusiveness on Twitter.

(Note this isn’t meant to be hostile, it’s meant to be usefully critical ;-)

For any seasoned Github user and developer who’s also been responsible for maintaining documentation sites using Jekyll, fastpages “just” requires folk to use Github and Jekyll style publishing to publish a blog site from notebook files and markdown docs.

For anyone familiar with Github, git, and Jekyll publishing, the fastpages automation simplifies some of the faff required in getting that stuff working. (Other approaches, such as Jupyter Book, ipypublish and nbsphinx offer related publishing routes but less hype. A proper comparison of all the approaches might be useful…)

So if you’re familiar with Github and Jekyll, the benefits are quite possibly both clear and enticing. But if you aren’t a Github user or a Jekyll user, things are pretty much as opaque as every they were.

The fastpages mechanic of generating a PR on the first commit generated when cloning the template repo is really neat, and an idea I’ll likely steal. But for a novice, without mental model of how Github works, this doesn’t in and of itself make things that much easier. The naive user is faced with a complex UI, using complex jargon, and probably doesn’t know where to go looking for the PR, how to handle it, what it means when they do handle it, etc etc.

The file listing on the master home page you’re faced with when cloning the repo is also intimidating. There are a lot of files, there’s lots of directory names starting with scary underscores, lots of `.whatever` hidden files. That’s fine if you’re creating a workflow that’s “easy” for folk who are happy with all this stuff, but if the claim is that this is an “easy route into blogging with Jupyter” in general, it isn’t.

One of the attractive features of the Jupyter notebook UI and infrastructure is that someone with little technical knowledge on the command line can quickly start using magics and high level commands, a line at a time, to get stuff done. Just because someone can plot a chart a from a pandas data frame populate[d] from a loaded in CSV file doesn’t necessarily mean they know how to set up the Jupyterhub server they’re actually a user of, nor even how to install pandas into the environment they’re using. As a *user*, why should they? The same goes for their familiarity, or otherwise, with Github and Jekyll. (By the by, it’s probably best to leave the “but they ought to…” arguments aside…)

I’m all for folk developing skills, but onboarding is really hard. And oftentimes, when trying to persuade people to adopt new tech in conservative institutions, you only get infrequent opportunities to entice them in. If you claim something is easy, that you “just” this and that, then watch their face as confusion and terror reigns, and you’ve lost your conversion opportunity. They won’t try again.

To make things *really* easy means taking things much slower. Cloning the repo and showing a clean page with a very simple set of instructions, and all the scary stuff hidden in branches, provides an opportunity for generating an easy way in. The initial readme could provide a set of very clear instructions about setting up tokens etc, along with why they’re necessary (eg Stephen Downes had a go at simplifying them [here, part 1](https://halfanhour.blogspot.com/2020/02/how-to-use-fastpages.html) and [here, part 2](https://halfanhour.blogspot.com/2020/02/how-to-use-fastpages-2.html)).

Things would also be simple if the all[simpler if all] the Jekyll scaffolding were hidden away somewhere, and the user could just slowly introduce things into the top level directory, the homepage for their blog source files, with all the scaffolding hidden away and built on via branches.

This level of simplicity may or may not be desirable for a (semi-)professional, if ad hoc, tool, but if the desire is to find a way to make it easier for novices (to Github, to Jekyll) to publish in what is still quite a low level way, I think more scaffolding is required. (A limiting case of easy is probably to just click a button on your Jupyter notebook and have the file posted somewhere, from where it magically then appears on a public URL.)

Inspired by the initial commit handling Github Action, I started some baby steps explorations of a way of making “performative” Github commit actions ([action-steps](https://github.com/ouseful-testing/action-steps)) that might (or might not!) make things simpler for a novice user (they also run the risk of them developing bad mental models, but I’m just exploring ideas).

For example, you might encourage someone via the readme to create a new file from the Github web UI with a particular filename or particular commit message, and then handle that in a particular way, perhaps updating the README with the next step; this might include some description of how you could then compare the original readme with the updated one. (I did start wondering whether I could code Adventure to be played via commit messages! Has that been done before I wonder?)

You might have additional commit messages that introduce new files into the top level repo, a file at a time. (Where to put simple documentation describing commit performative commands would be another issue!)

I appreciate this is probably *not* how Github is traditionally used, where a principle of least surprise about what appears in the repo compared to the files you actually commit is a sound one (that said, a lot of workflows do make use of commit hooks that do change files…) But I would argue that using Github for the primary purpose of making use of its Github Pages publishing mechanism is not using Github in a traditional version control application way either. Version control is NOT the aim. So what I’m thinking of here is where the user can instruct Git to add in very particular new files at particular times in response to particular commands issued via a particular commit message for a particular reason: to allow them to incrementally develop the complexity of their environment from within the environment as they grow familiar with it. Along the way, the mechanism could coach an introduce the user to features of Github that may be useful in a blogging context, such as the ability to “track changes” and maintain different versions of a content as you draft it etc. This would then introduce them to version control as a side effect of them developing particular blogging workflow practices in an environment that can coach them as they use it.

This may all just be nonsense, of course!

For some definition of “just”…

02 Mar 01:54

To be a Knowledge Activist…

by Bryan Mathers
Knowledge activist

…and to have solidarity with a community.

Created live at the Wikimedia UK Summit, hosted by DMLL, Coventry University, UK.

The post To be a Knowledge Activist… appeared first on Open Visual Thinkery.

01 Mar 17:12

Recommended on Medium: The Republic of Rant

Culture and politics have become all about the diatribe. It’s exhausting, and there’s no end in sight.

Continue reading on Medium »

01 Mar 17:06

19 dishes make case for Pampanga as culinary capital of PH - ABS-CBN News

01 Mar 17:05

Instagram brings direct messages to Windows 10

by Bradly Shankar

Instagram has rolled out direct messaging to Windows 10.

The feature is part of an update that changes Instagram on PC into a progressive web app. As a progressive web app, the PC version of Instagram functions more like a native desktop app. With this update, you’ll no longer need to shift over to your phone to read or send messages.

This update also should, in theory, make it easier for Instagram to bring subsequent updates to PC more quickly. This has been the case with Twitter on PC, which became a PWA in 2018.

Finally, Windows Central notes that the change to PWA has brought better performance for ARM devices running Windows 10, such as the Surface Pro X.

Via: Engadget

The post Instagram brings direct messages to Windows 10 appeared first on MobileSyrup.

25 Feb 21:44

Those fucking Gmail auto-reply things are getting really good and predicting precisely the thing I would reply. But I shall still not use then, the creepy robotic weirdo bastards. I shall still write it all out, pointlessly. Fuck the system.

by IanDunt
mkalus shared this story from iandunt on Twitter.

Those fucking Gmail auto-reply things are getting really good and predicting precisely the thing I would reply. But I shall still not use then, the creepy robotic weirdo bastards. I shall still write it all out, pointlessly. Fuck the system.




688 likes, 54 retweets