Github.com is blocked from LycaMobile ES

Dear LycaMobile, please unblock access to github.com. The blocking seems to be at the DNS level.

I’m sure this blocking is not intentional – more likely a mistake in configuration, a change in DNS somewhere, and no-one has reported it.


I’ve signed up for a LycaMobile Pay-as-you-go SIM account, and registered our personal details (purchasing SIM cards in Spain requires you to provide photographic identity, and registration of your identity!).

Trying to access Github does not work. Access to Github.com is blocked at the network level.

(Github.com is the US company that provides hosting for software development and version control using Git)

Using Ooni (the Open Observatory of Network Interference) tool I ran a quick test to determine any interference with access to www.github.com. Ooni tells me:

1.05% Processing input: https://github.com/ (10013.20s left)
web_connectivity: starting dns_query for github.com
web_connectivity: dns-query error: dns_temporary_failure
web_connectivity: starting tcp_connect
web_connectivity: starting http_request to https://github.com/
web_connectivity: http-request error: dns_lookup_error
web_connectivity: doing control request
Using backend https://wcth.ooni.io
web_connectivity: comparing control with experiment
web_connectivity: BLOCKING detected due to: dns on https://github.com/
1.11% ending the test (11502.48s left)
1.11% test complete (11502.49s left)
1.12% starting the test (11646.82s left)

LycaMobile is an MVNO (Mobile Virtual Network Operator) – meaning it is a mobile operator that does not own it’s own radio access network equipment (the towers your phone/data device uses to connect to the mobile network. In this case it uses Movistar’s radio network equipment).

The MVNO also arranges a business agreement with the mobile network operator (in this case Movistar) to obtain bulk access to network services at wholesale rates. It then sets it’s prices independently.

It would be very unusual to have protocol blocking functionality in the radio network of a mobile phone network, so it is more likely the blocking is being done by LycaMobile’s 4G packet data equipment.

Note to self: The issue I’m having looks similar to this, but it’s not it.

How should pip handle dependency conflicts when updating already installed packages?

The pip UX Team is looking for your input into future pip behaviour!

What is this research about?

This research is to understand what behaviour users expect from pip where upgrading a package would introduce dependency conflict(s) to already installed packages.

I want to give my input!

Great! Nicole has put together a 1 question survey – please complete it!

What is a dependency conflict?

For those who are not familiar with what a dependency conflict is – it arises when packages or libraries – on which several other packages have dependencies – are shared – but where they depend on different and incompatible versions of the shared packages.

If the shared package or library can only be installed in a single version, you may need to address the problem by obtaining newer, or older, versions of the dependent packages.

This, in turn, may break other dependencies and pushes the problem to another set of packages.

This research is to understand what behaviour users expect from pip with it encounters this scenario.

Want to take part in more pip research?

If you’d like to be involved in more pip UX research, we’d love to have you involved.

You get to decide what kind of studies you want to take part in – usability tests, surveys (like this study), interviews, and others.

Sign up to our UX Studies now!

Test pip’s alpha resolver and help us document dependency conflicts

Hello! It’s Bernard and Nicole here from the pip team.

What’s this research about?

The team is working on the improving the way that pip resolves package dependency conflicts and would like feedback from users who have projects with complex dependencies. By complex dependencies we mean projects that:

  • have at least 10 package dependencies
  • some package are pinned to specific versions
  • that you always have a dependency issue when installing it
  • you have to put in hacks, workarounds, or fixes

Objective

Currently, we’re trying to discover all the ways in which pip‘s dependency resolver fails, so that we can work out what error messages and/or debugging information we should display.

We hope to get some results in the next 2 weeks. The research will be running after these 2 weeks – please do try this out, and file an issue.

What we’d like you to do

On a project with a lot of dependencies and/or where you’ve had dependency problems in the past:

  1. Upgrade pip to the latest version – 20.2b1 – by running pip install —upgrade —pre pip (you can check your version with pip -V or pip --version)
  2. Use pip’s alpha resolver to install the project. You can do this by adding the option --unstable-feature=resolver when running pip
  3. If the project installs without a problem, do what you can to break it! For example, add more packages, or fiddle with the versions of your packages. If you’ve put in workarounds, remove them!
  4. If you are able to generate an error, we’d like you to open a ticket on the pip issue tracker. Please include as much information as you can about what caused the error, e.g.:
    • Your terminal output, including the error message (if one is displayed)
    • Any inputs to pip, for example:
      • Package requirements: CLI arguments and/or your requirements.txt file
      • Already installed packages, outputted via pip freeze
    • we’d appreciate if you tag us in the Github issue – Bernard (@ei8fdb) and Nicole (@nlhkabu).

It would be great if you could also include your dependency tree (outputted via pipdeptree)

For users installing packages from a private repository or local directory, please try your best to describe your setup. We’d like to understand how to reproduce the error locally, so would need (at a minimum) a description of the packages you are trying to install, and a list of dependencies for each package.

How we will use your feedback

We will use your error report to create a list of error use cases. We may also contact you for follow up questions, or to discuss the kind of help you might need to resolve the error(s).

If you want to get in touch

We appreciate your time and help on this issue! If you need any help, or have any questions, please don’t hesitate to get in touch with me by email, here in the comments, or Twitter (I’m @bernardtyers) – we’ll be happy to talk it over it with you.

Bernard and Nicole for the pip team

How do you deal with conflicting dependencies caused by pip installs?

Python Software Foundation logo

pip UX studies: response data

This is an ongoing analysis of the Python pip UX Study signups. These figures will change as new people sign-up for the studies.

The purpose of this is to give the pip team some understanding of the kinds of participants that are taking part in our research.

Detailed comments on Python usage

Here are some (anonymised) details about what the participants use Python for:

At work we use Python to deliver a smart metering solution to tens of thousands of people in the developing world. Everything from business logic to middleware to front ends are built on Python.

Used Python for automating tons of QA tests for medical software UI.

Work as a researcher in a ML lab

At work, I use python for GIS tools and data analysis.

(I work in) bioinformatics […] some software are written in python.

Text analysis for infosec and fraud detection
Predictive maintenance

I’m a grad student in cognitive science so I use python to code tasks for subjects, data analysis for both behavioral and fMRI/eyetracking data, and additionally for personal automation of tasks or web scraping for info

At work:

  • providing APIs to a non python legacy system
  • automating previously manual workflows (email, excel)
  • data/log analysis in Jupiter lab
  • connecting to hardware (like access gates, scanning devices)

Professionally I write web backends (REST+basic HTML/css), batch data processing, data integrations, and systems scripting for a large software company. In my personal time I do similar tasks on a much smaller scale.

I use Python for my work as a senior DevOps engineer developing tools and web platforms for infrastructure automation. I am also an open source author of a variety of tools, including browser automation, web programming, automation tooling, and more.

I am an archaeologist and since 2008 I have been using Python to develop small open source apps for some specialized tasks like radiocarbon calibration, downloading land survey data from total stations and analyzing archaeological stratigraphy data. I also use these tools at work but development is strictly a personal side project.

I use Python for web development and I teach Python. My students often struggle with virtual environments and pip.

Detailed comments on pip usage

Here are some (anonymised) details about what the participants use Python for:

I use pip exclusively to deal with pypi packages, thus using it in a very basic and straighforward way.

I use pip to install editable versions of the application in my virtualenvironment so the various scripts and entry points are in my path. I also use it + Twine to publish wheels and source distributions to both public Pypi, as well as an internal mirror. I’ve also used pip to execute unit tests.

Use pip in CI, building docker containers, package management of my local venvs

(I use) Basic commands:
Install
Upgrade
Freeze

It varies by project but I predominantly use conda so sometimes uses conda install but quite often for a particular repo I’ll end up using pip if it’s easier overall (or sometimes if it’s the only option)

Sign-up for the pip UX Studies!

Please share this far and wide with people who you think would be interested.

I recently started working with the Python Software Foundation on a project to improve the usability of pip, the Python package management tool.

As part of this work, I’m looking for Python users who use pip to take part in my research.

In order to make the right decisions on how to make improvements for all users, we need to speak with people who use Python and pip. Your input will have a direct impact.

Sign-up to take part in our UX Studies. You’ll receive invites for user research interviews, usability tests, surveys and other studies.

🤔 What do I get from taking part?

Firstly, you get the opportunity to have your pip user’s voice heard.

You get to help us improve pip‘s usability so you spend less time debugging and more time doing the amazing things you do with Python.

You get invitations to take part in User Experience (UX) Studies. UX Studies help us understand how you use pip, what commands you can’t live without, what you wish pip would do, and what you expect from it.

You get the opportunity to test new pip command syntax we’re working on. Do you wish there was an easier way to tell pip to do something? Sign-up so you can help to improve the pip command line interface.

What type of research do you do?

🗣️ User research interviews

User research interviews are short (30-60 minutes) 1-to-1 interviews with the pip UX Team. We’ll ask what you use Python for, how and what you use pip for, etc.

These usually happen remotely, but can happen in person, for example at a conference or Python event.

📝 Surveys

We’ll use surveys to ask you about specific pip or Python related topics. You will need to fill out the online survey in your own time. We promise they won’t be too long.

💬 pip usability testing

During a usability study you’ll be asked to complete a number of short pip or Python related tasks. This might be trying to achieve a task using a pip command, beta testing a new pip command, or trying to understand new output messages for debugging.

You’ll be asked to “think out loud” so we understand what you are doing, why you’re doing it, and what you think you need to do next.

Don’t worry about not doing the right thing – we’re testing the software, not you!

These studies will happen online using screen-sharing, and in-person when we attend Python related conferences and events.

🎁 Other studies we’ve not yet designed!

As we find new areas we have to work on, we’ll likely need to design other UX studies. They will all focus on improving pip.

These could be for example: a UX Ask Me! booth at Python related conferences (are you going to PyCon? Me too! Let’s have a chat about pip), or testing how understandable the pip documentation is.

🙋 You’ve got questions? I have answers! (I hope)

Of course people will have questions! I hope I’ve got all the answers below. If not, please leave a comment and I’ll answer it as best as I can.

Do I need to be a Python expert to take part?

This is an easy one – definitely not!

The purpose of this UX research is to talk to as diverse a group of people as possible. Our objective is to make pip more usable by everybody.

We want to speak to all Python users – it doesn’t matter about your level of expertise. We particularly want to speak with people who have accessibility needs.

Will you need to visit me in-person?

Unfortunately we do not have the budget to visit people in-person. This research will be conducted remotely for most of the time. However, the UX Team will be travelling to conferences and events, so it might be possible to conduct research in person, if you choose.

Also, we will conduct the research – interviews, surveys, usability tests – in English. You don’t need to be fluent in English.

What will happen to the information you learn?

As Python and pip are Open Source Software projects, we aim to make our research and design work open source, and public so the Python community and other Open Source projects can learn from it and use it.

Before any 1-to-1 sessions we will ask for your permission to record the session – the decision is yours. You can also tell specific things you’d prefer to stay anonymous, and if you wish review the session notes afterwards.

Do I need to give you my real name?

Not if you don’t want to. You can choose what name – real or nickname – you’d like us to use when we contact you. You’ll also need to provide us with an email address to contact you.

Who will have access to my personal information?

The pip UX Team (Bernard Tyers – the person writing this – and Georgia Bullen).

What will you do with my personal information?

We will use the information you provide during the sign-up, and all UX Studies you take part in, only to improve pip. Nothing else.

When this project is finished, we will ask everyone if they want to take part in further UX studies. If yes, it will be kept for that UX Study. If not, the information will be deleted.

Do I need to take part in all UX Studies?

Definitely not. When you fill out the sign-up form, you can choose which UX Studies you want to take part in. We’d be happy if you took part in all, but it’s your decision.

How can I unsubscribe from the pip UX Studies?

If you want to stop taking part, you can email us directly.

Sign-up for the pip UX Studies

The only thing left to do is sign-up!

DIY Mobile Usabilty Testing talk Paris Web 2016

In 2016, Belén Barros Pena & I did a talk at the great Paris Web conference about our Do-It-Yourself Mobile Usability Testing project. We’ve done it many times before.

Here’s the video.

The tech and the tools may be updated and it’s 3 years old but 80-90% of the reasoning, methods and approacehs are still as relevant.

Paris Web is a great conference. I was really impressed by the professionalism of the organisers, by how accessible the talks were – real-time French subtitling (which were helpful for me too!) of all talks and on-stage signing. Lots of talks were in English also.

It won my prize of “Best food at a UX conference. Ever.”.

If you are looking for an interesting conference (and you also speak French), I can highly recommend it.

Reading list & useful things I found for 1-8 September

User Research

No design without (user) research; A great talk (with video) by Belén Barros Pena given at 2019 Libre Graphics Meeting (LGM) conference in Saarbrucken. The talk was about why and how to incorporate design research practices into free software projects, but it applies to all projects.

The tool we use to turn around user research findings fast at Monzo; this comes from Samantha Davies. The answer might not be what you’re expecting. (Spoiler: it’s not what you’re expecting.)

Data

Handbook on Data Protection in Humanitarian Action; A handbook from Brussels Privacy Hub & ICRC (International Committee of the Red Cross) on how to process personal data as part of humanitarian operations, particularly those in charge of advising on and applying data protection standards.

Digital security

SOUPS 2019 Round-up; A nice short summary of some interesting papers and presentations at SOUPS 2019, collated by Simply Secure. (I contributed to it!)

Access needs

Aphasia community; provides resources about aphasia, information about aphasia communities (mainly in Australia), best work practices, support for people working in aphasia communities. (via Dr. Abi Roper)

Psychology

The race to create a perfect lie detector – and the dangers of succeeding; A Guardian newspaper article about

Interesting

The Legasov Tapes; A blog transcribing the audio recordings of Valery Legasov, a Russian scientist who worked as chief of the commission investigating the Chernobyl disaster.

Reading list & useful things I found for 19-25 August

Accessibility

We need to talk about dyslexia at work; a nice blogpost about dyslexia in the work place and how to improve support for people who live and work with dyslexia.

Brexit

User Research

A beginners guide to getting into user research; A ma-hoosive list of resources (in the form of a Notion.so note) about how to start doing user research.

Accessibility

Lámh signing system; the manual sign system used by children and adults with intellectual disability and communication needs in Ireland. With Lámh, speech is always used with signs and only key words in a sentence are signed. (Lámh is the Irish word for hand)

Events, and conferences

IXDA International Interaction Design Day, 24th September. There’s a list of all the worldwide events. Details about the London event (09:00-18:00) in Foolproof’s offices, in London are available.