recentpopularlog in
« earlier  
WorldWideWeb
Nine people came together at CERN for five days and made something amazing. I still can’t quite believe it.
web  browser  archeology 
2 days ago
A Site for Front-End Development Conferences (Built with 11ty on Netlify)
I built a new little site! It's a site for listing upcoming conferences in the world of front-end web design and development. In years past (like 2017), Sarah Drasner took up this daunting job. We used a form for new conference submissions, but it was still a rather manual task of basically manually editing a blog post. I wanted to keep doing this, as I think it's valuable to have a simple reference page for conferences in our niche slice of the web, but I wanted the site to be able to live on year after year with lower maintenance-related technical debt.
website  templating  markdown 
8 days ago
Taming Data with JavaScript
I love data. I also love JavaScript. Yet, data and client-side JavaScript are often considered mutually exclusive. The industry typically sees data processing and aggregation as a back-end function, while JavaScript is just for displaying the pre-aggregated data. Bandwidth and processing time are seen as huge bottlenecks for dealing with data on the client side. And, for the most part, I agree. But there are situations where processing data in the browser makes perfect sense. In those use cases, how can we be successful?
javascript  data 
9 days ago
Paying tribute to the web with View Source
on’t glue your application together in such a way that it won’t come apart for people who’re inclined to inspect what’s under the hood.
learning  source  web 
9 days ago
Mistletoe Offline
It’s that time of year, when we gather together as families to celebrate the life of the greatest person in history. This man walked the Earth long before us, but he left behind words of wisdom. Those words can guide us every single day, but they are at the forefront of our minds during this special season.
javascript  offline 
14 days ago
SpaceVim - A community-driven vim distribution
SpaceVim is a distribution of the Vim editor that’s inspired by spacemacs. It manages collections of plugins in layers, which help collecting related packages together to provide features. For example, the python layer collects deoplete.nvim, neomake and jedi-vim together to provide autocompletion, syntax checking, and documentation lookup. This approach helps keeping configuration organized and reduces overhead for the user by keeping them from having to think about what packages to install.
cli  development  programming  editor 
22 days ago
The practical value of semantic HTML
This riled me too. But, as it’s Consumerfest and goodwill to all is compulsory, I calmed down. And I don’t want to instigate a pile-on of the author of this piece; it’s indicative of an industry trend to regard HTML as a bit of an afterthought, once you’ve done the real work of learning and writing JavaScript. If the importance of good HTML isn’t well-understood by the newer breed of JavaScript developers, then it’s my job as a DOWF (Dull Old Web Fart) to explain it.
accessibility  html5  semantic 
5 weeks ago
Using Web Technologies To Print A Book
I recently finished the second draft of my first novel and needed a way to prepare a decent-looking PDF to print and send to people so they could write all over it with red pens. Web technologies and a few Linux tools made this a fairly painless process.
books  markdown  pdf  publishing 
5 weeks ago
Hypertext Style: Cool URIs don't change.
There are no reasons at all in theory for people to change URIs (or stop maintaining documents), but millions of reasons in practice.
article  url  web  permalink 
5 weeks ago
Say hello to Gridsome 👶🎉💚
A new static site generator baby is born. It's highly inspired by Gatsby.js (React based) but built on top of Vue.js. We have been working on it for a year and will have a beta ready soon. You can expect this baby to grow up fast!
cms  vuejs  javascript 
11 weeks ago
Why Schools Should Exclusively Use Free Software - GNU Project
Schools have a social mission: to teach students to be citizens of a strong, capable, independent, cooperating and free society. They should promote the use of free software just as they promote conservation and voting. By teaching students free software, they can graduate citizens ready to live in a free digital society. This will help society as a whole escape from being dominated by megacorporations.
school  education  opensource  free 
12 weeks ago
The Waiting Time Paradox, or, Why Is My Bus Always Late?
I've encountered this idea before, and always wondered whether it is actually true... how well do those "reasonable assumptions" match reality? This post will explore the waiting time paradox from the standpoint of both simulation and probabilistic arguments, and then take a look at some real bus arrival time data from the city of Seattle to (hopefully) settle the paradox once and for all.
math  statistics  probability 
november 2018
Generate-ssl-certs-for-local-development: A bash script for generating trusted self-signed SSL certs for local development on your Mac
Have you ever need to develop HTTPS sites locally? To make it work you need to generate a SSL certificate of your own and tell your computer to trust it so you don't get weird Your connection is not private errors in your browser.

Generating the certs is a complicated hassle. So I made a bash script to do it all for you.
development  certificate  local 
november 2018
City Lights — A suite of beautiful matte dark themed goodies
City Lights is a suite of beautiful dark theme goodies for Atom, Sublime Text 3 & Visual Studio Code
theme  color  development 
november 2018
This MIT PhD Wants to Replace America's Broken Voting Machines with Open Source Software, Chromebooks, and iPads
Adida is adamant that he is not trying to remake America’s voting system—the new voting machines will not allow for online voting or use the blockchain or anything like that. They will have a paper trail, which is still the best way to secure an election while preserving ballot secrecy, he said.
technology  voting  opensource 
november 2018
I have resigned as the WordPress accessibility team lead. Here is why. | Brad Frost
JavaScript is eating the world, and that has me just a bit worried. Designers and specialists of different stripes might not have the programming chops of a JavaScript engineer, but their perspectives are just as important to the success and health of a software product.
accessibility  javascript 
october 2018
The Hurricane Web
This is the web as it was originally designed. Pure information, with zero overhead. Beautiful in a way.
css  html  performance 
october 2018
I’m a very slow thinker
I’m a disappointing person to try to debate or attack. I just have nothing to say in the moment, except maybe, “Good point.” Then a few days later, after thinking about it a lot, I have a response.
inspiration  life 
october 2018
There is no longer any such thing as Computer Security
Computers, courtesy of smartphones, are now such a pervasive part of average life for average people that there is no longer any such thing as "computer security". There is only security. In other words, these are normal security practices everyone should be familiar with. Not just computer geeks. Not just political activists and politicians. Not just journalists and nonprofits.
hacks  password  security 
september 2018
Solving All the Wrong Problems
As one colleague in tech explained it to me recently, for most people working on such projects, the goal is basically to provide for themselves everything that their mothers no longer do.
design  diversity  tech 
september 2018
📓 Tasks, boards & notes for the command-line habitat
By utilizing a simple and minimal usage syntax, that requires a flat learning curve, taskbook enables you to effectively manage your tasks and notes across multiple boards from within your terminal. All data are written atomically to the storage in order to prevent corruptions, and are never shared with anyone or anything. Deleted items are automatically archived and can be inspected or restored at any moment.
productivity  todo  terminal 
september 2018
Understanding why Semantic HTML is important, as told by TypeScript.
HTML isn’t just the foundation that we build our websites on it plays a vital role in making our websites function as expected across those platforms and technologies. If you use HTML to it’s full potential from the beginning, you’re not just making the most out of built in features you’re making it more functional for people, bots, and for any tech, not just now but in the future as well.
html  typescript  javascript  semantic 
september 2018
Nutrition Cards for Accessible Components A11Y Expectations
A11Y Nutrition Cards is an attempt to digest and simplify the accessibility expectations when it comes to component authoring. Based on the WAI ARIA Authoring Practices Guide.
accessibility  aria  a11y  web  ux 
september 2018
your web app is bloated
Using firefox's memory snapshot tool, I measured the heap usage of a variety of web apps. Here is how everything did.
javascript  performance 
september 2018
La directive Copyright n’est pas une défaite pour l’Internet Libre et Ouvert !
Qu’est-ce qu’une victoire et qu’est-ce qu’une défaite ? En un peu plus de 10 ans de militantisme pour les libertés dans l’environnement numérique, j’ai souvent eu l’occasion de me poser cette question. Et elle surgit à nouveau de la plus cruelle des manières, suite au vote du Parlement européen en faveur de la directive sur le Copyright, alors même que le précédent scrutin en juillet avait fait naître l’espoir d’une issue différente.
liberté  internet  web  droit  europe 
september 2018
Close Your Browser Tabs. You Won’t Miss Them.
As a writer, I know a lot of other writers, and I hear a common refrain among the writerly set—they have billions of tabs open, each with a potential new thing to read that they hope to get to someday, but might not ever see.
technology  tabs  browser 
september 2018
Amazon is stuffing its search results pages with ads
If it feels as though Amazon’s site is increasingly stuffed with ads, that’s because it is. And it looks like that’s working — at least for brands that are willing to fork over ad dollars as part of their strategy to sell on Amazon.
advertising  amazon  search 
september 2018
"Killing the URL"
Anecdotally, I'm not sure I've met anyone who doesn't understand a URL. I wonder if there is something else weird afoot here. URLs are the single greatest feature of the web. I know nobody is arguing about removing them (just visually hiding them by default), but it doesn't feel like a step in the right direction
web  url 
september 2018
You-Dont-Need-Momentjs
Moment.js is a fantastic time & date library with lots of great features and utilities. However, if you are working on a performance sensitive web application, it might cause a huge performance overhead because of its complex APIs and large bundle size.
optimization  library  javascript 
september 2018
Removing jQuery from GitHub.com frontend
We have recently completed a milestone where we were able to drop jQuery as a dependency of the frontend code for GitHub.com. This marks the end of a gradual, years-long transition of increasingly decoupling from jQuery until we were able to completely remove the library. In this post, we will explain a bit of history of how we started depending on jQuery in the first place, how we realized when it was no longer needed, and point out that—instead of replacing it with another library or framework—we were able to achieve everything that we needed using standard browser APIs.
development  javascript  jquery 
september 2018
Google Wants to Kill the URL
If you're having a tough time thinking of what could possibly be used in place of URLs, you're not alone. Academics have considered options over the years, but the problem doesn't have an easy answer.
browser  url  format 
september 2018
You don’t need standup
Standup has always bothered me. It usually serves to interrupt developers, make them feel pressured to prioritize features over tech debt, and has been known to last longer than 1/2 hour.
management  development  culture 
september 2018
Des ingénieurs publient leurs mails de refus aux offres d'embauche de la Silicon Valley
Vente d’un logiciel de reconnaissance faciale à des services de police, collaboration avec la société de big data Palantir ou avec les services d’immigration… Les décisions prises ces derniers mois par certains géants de la tech ont créé un vent de révolte en interne, avec l’émergence au printemps de plusieurs pétitions massivement signées. Mais la rébellion se propage : certains ingénieurs sollicités par ces mêmes entreprises publient désormais sur les réseaux sociaux leurs mails de refus aux offres d’embauche reçues, au nom de désaccords éthiques. Le message étant en substance « merci, mais non merci ».
job  ethics 
september 2018
Using the internet without the Amazon Cloud - The Verge
It’s not something you’ll want to use for too long (the internet is better when it works, it turns out), but it’s a view that’s well worth taking in, if only to taste the sheer scope of Amazon’s server empire.
amazon  internet 
august 2018
The Bullshit Web
So that’s the tip of the bullshit web. You know how building wider roads doesn’t improve commute times, as it simply encourages people to drive more? It’s that, but with bytes and bandwidth instead of cars and lanes.
web  advertising  internet  performance 
august 2018
How Cloudflare Uses Lava Lamps to Guard Against Hackers | WIRED
Here’s how it works. Every time you log in to any website, you’re assigned a unique identification number. It should be random, because if hackers can predict the number, they’ll impersonate you.
security  hack  genius 
july 2018
Photon: Incredibly fast crawler which extracts urls, emails, files, website accounts and much more.
Photon is a lightning fast web crawler which extracts URLs, files, intel & endpoints from a target.
160 requests per second while extensive data extraction is just another day for Photon!
python  security  crawler  web  tools 
july 2018
The Hidden Cost of Touchscreens
La blockchain ne trouve pas grâce aux yeux de Frank Braun, figure reconnue du crypto-anarchisme. C'est le moins qu'on puisse dire : pour le militant allemand, elle pourrait potentiellement servir le « totalitarisme technologique » déjà à l'oeuvre aujourd'hui, surtout si les blockchains sont combinées et élargissent les possibilités de surveillance des citoyens
ui  touchscreen  ux  interface 
july 2018
« Avec la blockchain, on peut surveiller les humains comme du bétail »
La blockchain ne trouve pas grâce aux yeux de Frank Braun, figure reconnue du crypto-anarchisme. C'est le moins qu'on puisse dire : pour le militant allemand, elle pourrait potentiellement servir le « totalitarisme technologique » déjà à l'oeuvre aujourd'hui, surtout si les blockchains sont combinées et élargissent les possibilités de surveillance des citoyens
blockchain  society 
july 2018
Teemo, Fidzup : la CNIL interdit la géolocalisation sauvage - l'UE pense à la légaliser
Hier, la CNIL a déclaré illicites les activités de deux start-ups françaises, Teemo et Fidzup, qui géolocalisent des millions de personnes à des fins publicitaires et sans leur consentement. Elles ont trois mois pour cesser ces activités. Hélas, sur le long terme, leur modèle pourrait devenir licite : c'est en tout cas ce sur quoi l'Union européenne débat via un futur règlement ePrivacy.
data  privacy 
july 2018
Your Emails (and Recipients) Deserve Better Context
Email communication is an integral part of the user experience for nearly every web application that requires a login. It’s also one of the first interactions the user has after signing up. Yet too often both the content and context of these emails is treated as an afterthought (at best), with the critical parts that users see first—sender name and email, subject, and preheader—largely overlooked. Your users, and the great application you’ve just launched, deserve better.
design  email  ux 
july 2018
Le numérique, comme paysage et culture, n’appartient en propre à personne, et surtout pas aux informaticiens
En fait, l’enjeu est bien celui de faire comprendre à tous, et, s’il faut évoquer les enjeux propres à l’école, à tous ses acteurs, que le numérique concerne toutes les disciplines et pas particulièrement et seulement les disciplines scientifiques ou technologiques. Ainsi, les fameuses compétences numériques attendues de tous les citoyens, quel que soit leur âge, et des élèves en classe ne sont pas seulement, loin de là, techniques ou scientifiques, elles concernent tous les champs de la citoyenneté et de son exercice.
numerique  citoyen  culture 
july 2018
Goodbye Microservices: From 100s of problem children to 1 superstar · Segment Blog
Unless you’ve been living under a rock, you probably already know that microservices is the architecture du jour. Coming of age alongside this trend, Segment adopted this as a best practice early-on, which served us well in some cases, and, as you’ll soon learn, not so well in others.
microservices  architecture 
july 2018
The open-plan office is a terrible, horrible, no good, very bad idea
Not because there aren’t people who actually enjoy working in an open office, there are. Quite a few, actually. But they’re in the distinct minority. The vast majority of people either dislike the open office or downright hate it. So how is that going to work, exactly?
productivity  culture  office 
july 2018
Is timeless design a thing? | Imaginary Cloud
It's only natural that when we create a brand new product and its respective visual identity, we want it to be the new cool kid on the block. And usually, that will require some knowledge and research of the current trends to understand which might provide us some years of stylish headstart.
design  ui  ux 
july 2018
« Dans le futur, on subira encore plus de hacks et c'est tant mieux »
Cette initiative est positive, non parce qu’on peut éduquer Google ou Facebook. Ils savent très bien ce qu’ils font. Il s’agit d’abord d’éduquer, de sensibiliser le plus grand nombre au fait qu’ils sont monétisés contre l’accès à un service gratuit.
gafam  security  hack 
july 2018
I'm Starting to Have Serious Doubts About Amazon Prime
My own personal Amazon Prime day is in two weeks. It’s not the day that Amazon puts a lot of random crap on sale. (That’s in approximately three weeks.) My day is when Amazon will charge me $120 for another year of membership. That’s $20 more than what the company charged me last year and $40 more than what I paid five years ago, when I signed up for a free trial of Prime and forgot to cancel it. This year, I think I might bow out.
amazon  consumerism 
july 2018
« Ce que les algorithmes voient est conditionné par l'argent »
Aujourd'hui, l'artiste et développeur autodidacte travaille précisément sur les techniques utilisées pour structurer, classifier et annoter les bases de données visuelles. Il nous présente les premières conclusions des travaux de recherche et des expériences qu'il mène depuis plusieurs mois pour comprendre l'origine des stéréotypes que l'homme introduit jusque dans ses algorithmes.
IA  deep  learning  database  image 
july 2018
CSS: A New Kind Of JavaScript
Those familiar with the web platform will be well-versed in its two complementary technologies: HTML for documents and their structure, and JavaScript for interaction and styling.
funny  javascript  css  code 
july 2018
Browsh purely text-based browser
Browsh is a purely text-based browser that can run in most TTY terminal environments and in any browser. The terminal client is currently more advanced than the browser client.
cli  browser 
july 2018
We Should Be Building Cities for People, Not Cars | Devon's Site
The way we live is shaped by our infrastructure—the public spaces, building codes, and utilities that serve a city or region. It can act as the foundation for thriving communities, but it can also establish unhealthy patterns when designed poorly.
environment  city  architecture 
july 2018
Github Stars !== Usage: React is still blowing Vue and Angular Away
As is often the case when the popularity of frameworks is raised, this sparked a huge amount of debate about which framework is "really" more popular, which framework is more powerful, and more
javascript  github 
july 2018
mkcert: A simple zero-config tool to make locally-trusted development certificates with any names you'd like.
Using certificates from real CAs for development can be dangerous or impossible (for hosts like localhost or 127.0.0.1), but self-signed certificates cause trust errors. Managing your own CA is the best solution, but usually involves arcane commands, specialized knowledge and manual steps.
certificate  localhost  security 
july 2018
For Two Months, I Got My News From Print Newspapers. Here’s What I Learned
What do you get for all that dough? News. That sounds obvious until you try it — and you realize how much of what you get online isn’t quite news, and more like a never-ending stream of commentary, one that does more to distort your understanding of the world than illuminate it.
news  journalism  media 
june 2018
Numérique : le grand gâchis énergétique
Ordinateurs, data centers, réseaux… engloutissent près de 10 % de la consommation mondiale d’électricité. Et ce chiffre ne cesse d’augmenter. S’il n’est évidemment pas question de se passer des progrès apportés par le numérique, les scientifiques pointent un mode de fonctionnement peu optimisé et très énergivore.
numerique  serveur  ecologie 
june 2018
Depuis son exil russe, Edward Snowden estime que « tout a changé »
Cela fait maintenant cinq ans qu’Edward Snowden a quitté son confort hawaiien pour une vie d'exil en Russie. Pour marquer l’anniversaire de la fuite de documents confidentiels la plus importante de l’histoire, l’ancien membre de la NSA a accordé une interview au quotidien britannique The Guardian, qui révélait alors l’affaire en 2013, dans laquelle il tire le bilan de son sacrifice.
privacy  surveillance 
june 2018
Dear Publishers, if you want my subscription dollars (or euros), here is what I expect…
A growing number of publications are switching to the subscription model. But most of them are lagging behind, with a poor user experience. Lousy execution will eventually translate into casualties.
business  journalism  publishing 
june 2018
To Yarn and Back (to npm) Again
npm made significant improvements during the time we used Yarn in an attempt to catch up to Yarn's speed and locking - the issues that originally led us to Yarn. As annoying as our Yarn issues were, we couldn't afford to lose these benefits, so we first had to validate that npm had addressed our original issues.
npm  nodejs  package-mangers 
june 2018
Chatbots were the next big thing: what happened?
Chatbots weren’t the first technological development to be talked up in grandiose terms and then slump spectacularly.
bots  technology  UI  UX 
june 2018
"De l'inconvénient d'être né" ... connecté.
Qu'il soit dit ici que je ne connais ni Ferdinand Rousseau ni la start-up Weenect mais que ce qu'il raconte dans cette interview me semble désespérément emblématique du discours de toutes les entreprises qui, à son instar, font l'économie (ou l'impasse totale) d'une réflexion éthique et politique sur le service qu'ils créent, qu'ils vendent et qu'ils administrent.
surveillance  société  moral 
june 2018
The React is “just” JavaScript Myth
One oft-repeated phrase I hear in blog posts, talks, and podcasts is “React is just JavaScript.” I think this catchy truism is good marketing, but also false.
javascript  library  react 
june 2018
Gérer son potager
Proposer de l’auto-hébergement c’est comme recommander aux gens de faire leur propre potager quand ils te parlent des problèmes de la chaîne de distribution alimentaire
hebergement 
june 2018
artist visualizes the lengthy terms of services of large corporations like facebook and instagram
the 'I agree' project aims to emphasize the contractual obligations users agree to when subscribing for a free or paid online service/app.
art  funny 
may 2018
My Struggle with Testing Code
This has been on my “List of Shame” for a long time. For a plethora of reasons, fostering a practice of writing and maintaining good tests for code has escaped me. It’s not due to negligence; I see the value, I’ve tried, I read a lot of code, I even took an in-person course once. My struggle is with taking that knowledge and applying it to my codebase.
testing  code  javacsript  DOM 
may 2018
The Missing Building Blocks of the Web
At a time when millions are losing trust in the the web’s biggest sites, it’s worth revisiting the idea that the web was supposed to be made out of countless little sites. Here’s a look at the neglected technologies that were supposed to make it possible.
community  culture  internet  web 
may 2018
Welcome to the automated warehouse of the future
Warehouses are being revolutionized by AI and robotics, and British supermarket chain Ocado is at the forefront of this change. We went inside the company’s new facilities to see how technology is affecting how you shop online.
robot  ia  technology 
may 2018
Apple Has a Focus Problem
The iPad has made great strides in the last few years toward being a full-time computing platform. While many still cry that it’s just not very useful yet, others are out there using it as their only…
apple  design  ipad  interface 
may 2018
Offline Hobbies for Online People
“What do you do?” It’s one of the typical conversation starters at any event. A lot of people are lucky to enjoy what they do. But ‘UX Designer’ or ‘Developer’ doesn’t encompass everything you do.
sanity  activity  work 
may 2018
I Don’t Know How to Waste Time on the Internet Anymore
The other day, I found myself looking at a blank address bar in a new tab of my web browser. I wanted to waste time, but … I didn’t know how.
culture  internet 
may 2018
Slack's bait and switch
Slack, like so many others before them, pretend to care about interoperability, opening up just so slightly, so that they can lure in people with the promise of "openness", before eventually closing the gate once they've achieved sufficient size and lock-in.
chat  slack  business 
march 2018
I am a mediocre developer
I personally know some developers who are very talented and can create wonderful pieces of software with no or little struggle. Because of these gifted individuals, our industry is full of high expectations. But the sad truth is: not everyone is a ninja/guru/rockstar developer
coding  development  programming 
march 2018
Inside Google’s plan to make the whole web as fast as AMP
Can the most contentious piece of the web form the basis of a new standard?
google  web  standard  performance 
march 2018
History of the browser user-agent string
In the beginning there was NCSA Mosaic, and Mosaic called itself NCSA_Mosaic/2.0 (Windows 3.1), and Mosaic displayed pictures along with text, and there was much rejoicing.
browser  history  internet  web 
march 2018
The House That Spied on Me
The larger pattern that emerged about the smart home was that all of the devices phoned home daily, even if they hadn’t been used, telling the companies that made them, “Hey. I’m still here. I’ve still got power. Have any updates for me?”
privacy  security  surveillance  Technology 
march 2018
Amazon built its hyper efficient warehouses by embracing chaos
Items aren’t organized by where they’re being shipped; they aren’t—aside from very big items—organized by size; and they aren’t organized by the type of customer who is likely to order them. A shipment of 50 tubes of toothpaste may ultimately be distributed to and stored in 50 different places.
amazon  gestion  warehouse  organization 
march 2018
Facebook forme les chômeurs, Google forme les étudiants. Et les universités vous emmerdent.
Notez également que "La brouette thaïlandaise de la formation universitaire et le sandwich néerlandais de la fraude fiscale" était le titre alternatif de cet article, mais je le trouvais moins explicite. J'espère qu'il le sera davantage (explicite) à la fin de votre lecture.
université  GAFAM  enseignement  formation 
february 2018
Website Sameness™
There’s something comforting about knowing to look for a horizontal list of links across the top of a page. With each additional site that adopts this across-the-top navigation pattern, users become conditioned to look for navigation in the same spot, helping them achieve their goals faster. Hooray, affordances!
design  inspiration 
february 2018
If You Multitask During Meetings, Your Team Will, Too
You have begun multitasking, which means you’ll be far less effective at both writing your email and participating in the meeting. Yes, I know you think you’re good at multitasking, but while you’re busy typing away at your keyboard, your body language is telling everyone else in the room that this email is more important than the meeting you just called.
management  productivity  meetings 
february 2018
DuckDuckGo, le canard aux pratiques boiteuses
Depuis quelques années, et principalement depuis les révélations de Snowden, DuckDuckGo est mis sur le devant de la scène en tant qu’alternative à Google. Si sur papier, et d’après leurs dires, DuckDuckGo ne trace pas ses utilisateurs et protège leur vie privée, la réalité peut être bien différente.
privacy 
february 2018
« earlier      
per page:    204080120160

Copy this bookmark:





to read