Category Archives: free software

Amount of code developed by Purism for the Librem 5 phone

I was curious how much code Purism has developed for the Librem 5 phone, so I wrote a little Python script that downloads the source code from the projects that Purism started, runs the code through cloc to count lines of code, and then sums the total.

Here is what I get:

$ python3 locPurism.py
Lines of code in Purism projects for the Librem 5:
	libhandy: 47730
	libadwaita: 51270
	calls: 20745
	chatty: 49661
	squeekboard: 17993
	libcall-ui: 4426
	phoc: 15277
	phosh: 48301
	feedbackd: 5970
	feedbackd-device-themes: 603
	gtherm: 1734
	haegtesse: 2105
	wys: 2442
Total lines of code: 268257
Continue reading

Comparing the Librem 5 USA and PinePhone Beta

Contents:
Look and feel, Branding and custom design, Extra accessories and box, Protection of hardware, Hardware kill switches, Extension ports, Flashlight / Flash, Charging, Display, Performance, Heat, Power Management, Haptics, Audio, Disassembly, Longevity, Tech support and community

I have been avidly following the development of the Librem 5 and PinePhone since they were first announced in August 2017 and in October 2018, respectively. One of the reasons why I’m so excited by these Linux phones is the fact that I can look at their schematics. The Librem 5 and Librem 5 USA are the first phones with free/open source schematics for its printed circuit boards, since the Golden Delicious GTA04 in 2012. PINE64 also releases the PinePhone schematics to the public, but they are proprietary so no one can reuse or modify them.

At one point last year, I got so obsessed by these two phones, that I went through the schematics of both models, and looked up the manufacturer and documentation for every named component with a model number in the phones and posted that information on the wiki for the Librem 5 and PinePhone. I also wrote a script to count the number of each type of component in the two phones’ schematics, in order to find out how many resistors, transistors, inductors, crystal oscillators, ICs, etc. were in each phone. My only excuse for this nerdy fascination with the two phones is that I had a lot of free time last year to obsess over the two phones due to the COVID-19 pandemic.

Continue reading

Tutorial to get started using Github

I got tripped up the first time I tried to publish my own code on Github, so I thought I would write up a short tutorial for other newbies like me. I am going to explain how I use Github from the command line of your computer, and I recommend sticking to this method, since using the graphical interface through the Github web site or the Github app will hobble your abilities. In contrast, learning how to use git from the command line will empower you

The first thing to do is to follow these instructions to create your account on Github. After you have an account, go to https://github.com and login. Then, click on the green “New” button in the upper left hand corner of the screen to create a new repository:

Continue reading

What can be learned by taking apart a Huawei smartphone


The modern smartphone is an incredibly complex device, and sadly it has a very short lifespan due to it being designed for planned obsolescence. I saw this problem first hand when my girlfriend bought a used Huawei G play mini (CHC-U23) smartphone. Her previous smartphone had been stolen and she needed something cheap to replace it. After a year and a half of usage, the battery swelled up and was unable to hold a charge for more than 15 minutes.

Unfortunately, it was only possible to buy replacement batteries from China, and it would take over 4 weeks in shipping, so my girlfriend bought a new phone. After several years of sitting in a drawer, I decided to tear the phone apart and see what was inside.

Continue reading

Reflections about rebranded and unbranded electronics

We have gotten to a point where the brand name on a product has little relation to who actually manufactured the device. Even the term “manufacturer” is becoming hard to define, since it is often separate companies which design, assemble and market devices. We now use confusing terms like Original Brand Manufacturer (OBM), Original Equipment Manufacturer (OEM), Original Design Manufacturer (ODM), Joint Design Manufacturer (JDM), Independent Design House (IDH) and Electronics Manufacturing Service (EMS) to keep it all straight. With companies like Apple, Huawei, Samsung and Google doing a lot of their own chip design, even the traditional divide between chip companies and ICT products companies is breaking down.

It is even getting hard to define where something is made. When Purism launched its Librem 5 USA with “made in the USA electronics,” there were a number of critics that noted that most of its components were not from the United States. To be more accurate, Purism should have said “circuit boards made in the USA,” however, I was struck by how hard it is to define where its main processor, the NXP i.MX 8M Quad, was actually made. The processor was designed in Austin, Texas by an engineering team that used to work for Motorola, until it was spun off in 2004 as Freescale Semiconductor, and then later acquired in 2015 by the Dutch company, NXP, which was the old semiconductor division of Phillips that was spun off in 2006. The electronic design automation (EDA) software and many parts of the i.MX 8M’s System on a Chip (SoC), such as its DDR4 DRAM interface, are provided by Synopsys, which is headquartered in Mountain View, California. The 28nm chip itself was originally fabbed by TSMC in Taiwan, but then NXP switched to Samsung and it is now fabbed in South Korea.

By the standard definition, the i.MX 8M Quad is made in South Korea, since that is the place where the chip was physically manufactured. However, 83% of the semiconductor foundry market (i.e., contract chip fabbing) is controlled by Taiwanese companies (TSMC, UMC, PowerChip (PSMC) and Vanguard (VIS)) and S. Korean companies (Samsung and DB HiTek), yet semiconductor fabbing is highly automated work that employs relatively few people. The majority of the people employed to work on the i.MX 8M Quad are located in Texas and California, even though NXP is a Dutch company and the chip was fabbed in S. Korea. Depending on your point of view, you can argue that the i.MX 8M Quad is more American than S. Korean, especially in terms of labor and economic benefits, but European and Asian partisans can also lay claims to the chip.

Continue reading

Questions about how to add a new language to GNOME

I recently posted some questions to GNOME’s i18n mailing list <gnome-i18n@gnome.org> and I think that they raise some interesting questions about the difficulties of using minority languages in Linux. I am reposting them here to see if anyone has any comments/suggestions:


We are creating a new distro called PluriOS, which is focused on users in Bolivia, and one of our goals is to offer the interface in Aymara, Quechua and Guaraní, which are native languages spoken in Bolivia. Our distro is a derivative of Ubuntu Cinnamon Remix, so we are mainly focused on translating Cinnamon, but there are some elements that we need to translate in GNOME, such as the menus. Our goal is to translate about 10K words for each language and create a glossary of common terms (like “file”, “directory”, “user”, “menu”, “window”, etc.) and then try to recruit volunteers to translate the rest using our glossary.

Continue reading

Unboxing the Librem 5 USA

I was very surprised when I got an email on July 20, 2021 that my Librem 5 USA had just shipped out of Purism’s Fulfillment Center in Carlsbad, California. The Linux geek inside me has been lusting for the Librem 5, ever since it was first announced in August 2017, and I was delighted that I would finally be able to play with the “made in the USA” version of the phone.

Sadly, I’m in Bolivia and the phone was delivered to my parents’ house in the middle of the USA, so I haven’t been able to physically touch the phone. However, there is a lot that I can do with ssh to play with the phone remotely until I can convince a friend who is traveling from the US to bring me the phone.

Continue reading

Using LibreOffice’s Draw to edit a PDF ballot to vote by email

I just wanted to share my solution to voting by email. When I signed up to vote by email, I got a PDF file in my email box. PDF may be a free/open format, but there are remarkably few programs available to edit PDF files. I am not prepared to pay $12.99 per month just to use Adobe’s Acrobat Standard DC and it doesn’t even run in Linux, which is my operating system of choice. I can install an ancient version of Acrobat Reader for Linux, but it doesn’t allow editing of PDF files.

Sadly, all the PDF editors for Linux have their drawbacks compared to Adobe Acrobat. The solution that I found was to open the PDF file in LibreOffice‘s Draw program. Then, edit the PDF as an image file. Inserting text boxes is a bit dodgy with LibreOffice Draw. The easiest way I found is to write the text in LibreOffice Writer, then copy and paste it into the image in Draw. Then, I was able to move the text to the location where I wanted it inside the image.

For my signature, I took a photo of my signature with my smartphone, then transferred the JPEG file to my laptop via Bluetooth. Then I opened the file with GIMP and selected the part of the image containing my signature. I copied it and pasted the signature into Draw. The signature can also be obtained by opening the JPEG file in Draw, but I find GIMP more convenient.

When I finished editing my ballot in LibreOffice Draw, I was able to export the images as a PDF file under File > Export As > Export as PDF. Then, I sent that file as an attachment in my email.

Since LibreOffice runs on every major OS (Windows, Linux, BSD and MacOS) and is gratis, this solution should work for everyone. Of course, this isn’t the ideal solution, since the PDF file contains images rather than text that can be processed, but it is effectively the same as faxing in your ballot, which is also an image. I imagine that all email ballots are being processed manually anyway, so it doesn’t really matter what is the underlying format.

The questions that mobile phone reviewers never ask

One of the fundamental problems with the mobile phone industry is that most of the people who review phones only focus on the superficial aspects and don’t ask the right questions about the phones. It is hard to find a mobile phone reviewer who is even worth reading/watching.

The typical mobile phone review doesn’t provide much information beyond what can be gleaned by simply glancing at the phone’s spec sheet. The only real value they add in my opinion are their comments about each phone maker’s modifications to Android and their evaluation of how well the cameras work.

Most of the mobile phone reviewers such as Marques Brownlee (MKBHD), Lewis Hilsenteger (Unbox Therapy and Lew Later), Mrwhosetheboss, Verge, CNET, Engadget, etc. don’t have much technical knowledge. Only a couple reviewers like Anandtech and Android Authority bother to delve into the tech underlying the phone. Most of them blather on about style, how it feels in the hand, bezels and the screen notch/bullet-hole. They focus on the superficial aspects that anyone can figure out just by picking up the phone and looking at it, rather than informing the public about the unobvious aspects that truly matter for the long-term ownership of the phone.

Here are the questions that reviewers should ask when evaluating a mobile phone:

  • How long is it likely to receive security updates?
    Reviewers can provide the OEM’s history with previous phone models in the same market segment to tell people how long they can expect security updates.
  • How long is it likely to receive operating system upgrades?
    Again, most OEMs don’t tell you, but reviewers can provide the OEM’s history with previous phone models in the same market segment.
  • How likely is the phone to break if dropped?
    Reviewers should be conducting drop tests, but even if they don’t want to destroy the phone, they can look at the engineering and make some assessment of its durability. If it has a glass back, a curved screen or little bezel or casing to protect the screen, the phone is more likely to be damaged in a drop and reviewers should inform the public about those aspects of the phone, rather than focusing on its style.
  • How easy is the phone to fix if it gets damaged?
    Reviewers should open the darn thing and tell us how hard it is to replace the screen and the battery, because those are the two components that are most likely to need replacing. Reviewers should also tell us whether the parts can be bought and roughly how much a replacement screen and battery will cost.
  • How hard is it to root or jailbreak the phone, so preinstalled apps can be deleted and the configuration changed?
    It drives me bonkers that phone reviewers never cover the fundamental question of how to root/jailbreak a phone. They expect people to just accept whatever comes preconfigured and preinstalled in the phone and seem to believe that people should have no right to change it.
  • How hard is it to unlock bootloader?
    Reviewers never tell us what is the OEM’s policy toward unlocking the bootloader, so we have no idea whether it is possible to install another bootloader program like TWRP that allows complete device backups or install another OS, like LineageOS or another AOSP derivative.
  • How likely are TWRP and AOSP derivatives to be ported to the phone?
    Reviewers need to spend some time on the phone’s XDA-Developers forums and give us some idea of how likely it will be possible to keep using the phone after the OEM stops providing software updates. You usually can make an assessment even if porting work hasn’t started just by looking at the processor and the history of that OEM’s other phone models. OnePlus and Google phones always have good TWRP and LineageOS ports because they provide a lot of info to the community, they use Snapdragon SoC’s, and they have active users to do the ports, but it is hard for people to know when buying phones from other OEMs. Reviewers should let us know whether a phone has hardware that allows for porting, whether porting work has already started, and tell us whether similar models from the OEM got ports in the past.
  • What’s inside the phone?
    Reviewers should crack open the case and tell us what they think of the components they find. If they don’t have the tech knowledge to talk about what is inside a mobile phone, then they have no business being phone reviewers.

I have never read a mobile phone review that covers all these questions, which are fundamental to determining what will be the long-term utility of a phone. Every time I buy a new mobile phone, I have to spend hours investigating the phone at different sites such as iFixit and XDA-Developers forums to find the information that phone reviewers should be covering, but they don’t.

I see two fundamental problems with how mobile phones are reviewed. The first is that many phone reviewers don’t know much about the tech that they are reviewing. The second is that reviewers don’t seem to care about the total cost of ownership and the longevity of phones, so they don’t inform the public about the aspects of phones that matter for maintaining them over the long term. Tech reviewers seem to think that most people want to throw away their phones every two years.

Because mobile phone reviewers don’t focus on the questions that I listed above, people make poor choices when buying phones, because they aren’t informed about the total cost of ownership of different phone models. The longer a mobile phone lasts, the lower the annual cost of the phone. Because reviewers don’t cover these questions, the public doesn’t look to buy phones with a lower total cost of ownership and OEMs have little incentive to make phones that are less likely to break, easier to fix, are supported for longer and have longer lifespans. Phone reviewers are helping drive an industry that is based on planned obsolescence and locked-down devices that afford the user few rights.

Comparing specs of Linux phones

With the PinePhone and Librem 5 coming onto the market, the PDA’s by Planet Computer and all the Xperia phones being sold by Jolla, we now have quite a few choices in phones that can be bought with Linux preinstalled or supported by the phone maker:

It looks like the Necunos NC_1 (€1199, specs) will never be released. Sadly, Rob Braxman is no longer selling the Google/LG Nexus 5 (16GB) for $174.00 with Ubuntu Touch preinstalled and no longer advertises his service to install UBports on your existing phone.

To help people decide which Linux phone they should buy, I have created a table comparing the specs of the different Linux phones:
ComparingLinuxPhones.ods

(It is best to use the .ods file even if using MS Excel, Quattro Pro, WPS Office, etc, but here is a converted .xlsx file if you can’t open the .ods file.)

The strategic advantages of Phosh for mobile Linux

Since Purism announced the crowdfunding for its new Linux phone, the Librem 5, on August 24, 2017, it has been heavily criticized by the Linux community for deciding to create a new mobile desktop environment (DE) based on GTK and the GNOME ecosystem. It dubbed its new interface “Phosh,” which is a portmanteau from “phone shell”.  Despite all the criticisms that Purism has received, I believe that the Phosh DE is likely to become the most popular user interface for Linux phones and will play a crucial role in helping to establish mobile Linux as a viable alternative to the Android and iOS duopoly.

There were already many existing mobile desktop environments (DE’s) that Purism could have selected when it announced the crowdfunding for the Librem 5 on August 24, 2017.  There have been over a dozen mobile Linux DE’s created since the first two Linux phones, the Motorola A760 and the Yopy YP3500, were released in February 2003. Purism could have selected from many mobile interfaces, including Sailfish OS’s Silica, Firefox OS’s Gaia, KDE’s Plasma Mobile, UBports’ Ubuntu Touch, Maemo Leste’s Hildon, LuneOS’s Luna Next and Nemo Mobile’s Glacier UI. Many in the community felt Purism was wasting resources and causing needless delays by creating yet another mobile interface. Continue reading

El núcleo de Linux y los navigadores de web tienen miles de desarrolladores, pero otro software tiene muy pocos

¿Qué programa en mi computadora contiene más líneas de código y más desarrolladores?

Programa Líneas de código Número de contribuidores
Núcleo de Linux 19,2 M 4037
GNU Core Utilities 93,6 K 17
Bash 224 K 1
GNOME 16,3 M 776
Cinnamon 777 K 64
LibreOffice 9,51 M 213
Firefox 22,2 M 1291
Chromium 25,6 M 2109
Geany 236 K 31
KiCAD 908 K 324
Inkscape 629 K 92
GIMP 867K 74
Debian 85,7 M 123

Nunca me he imaginado que el navegador web contiene más líneas de código que cualquier otro programa en mi compu. La complejidad de un navegador web moderno es increíble. El web contiene 25 años de estándares (HTML, XHTML, DOM, JavaScript, CSS, XML, SOAP, WSDL, XSLT, WebGL, WebGPU, tipos de imagines, vídeo y audio, etc) y todo tiene que ser compatible atrás.

La maquina navegador de Firefox (Gecko) ha sido programado desde el año 1997 y la maquina de Chrome/Edge/Opera/Brave (KHTML -> WebKit -> Blink) fue iniciado en 1998. El código debe ser un lío después de 23 años de desarrollo continuo. ¿Puedes imaginar el problema de mantener código que tiene que soportar 25 años de estándares y necesita mucho rendimiento y mucha seguridad?

La Fundación Mozilla creó la nueva lengua Rust porque fue tan difícil escribir código seguro en C++, que ejecuta en muchos cores a la vez.

Me sorprende el número de personas que contribuyen al código de Chromium, pero hay tantas empresas contribuyendo a su desarrollo (Google, Facebook, Microsoft, Opera, Adobe, Intel, IBM, Samsung, etc.) porque hay 3 mil millones de personas en el planeta que utilizan su código. Sin Blink y V8, el mundo virtual dejaría funcionar.

Yo sabia que el núcleo de Linux tiene más desarrolladores que cualquier software del mundo, porque todo el mundo utiliza su software y tiene que soportar 30 arquitecturas diferentes de chips, producidos por cientos de empresas. Hay cientos de empresas que pagan desarrolladores para contribuir al núcleo de Linux.

Lo que me sorprende es el número limitado de desarrolladores de otros programas. ¿Sólo hay un contribuidor de Bash y 17 de GNU Core Utilities? LibreOffice depende de 213 personas, que es un número muy limitado para mantener un programa de 9,5 millones de líneas de código y casi todos son voluntarios porque muy pocas empresas contribuyen a su desarrollo. Me da rabia cuando yo pienso en los millones de desarrolladores que malgastan su tiempo creando apps inútiles de Android y iOS.

No estoy seguro de que consiste todo el código de Debian. Me imagino que la mayoría de su código es prestado de otros proyectos, pero 123 personas no son muchas cuando pensamos que 2/3 de las maquinas utilizando Linux son de la familia Debian (MX Linux, Ubuntu, Mint, elementary, Zorin, Pop!_OS, PureOS, etc.)

Which search engine is the ethical choice?

I generally use Firefox’s default search engine, which is currently Google in most of the world, Yandex in Russia and Baidu in China. I want to help generate revenue for the Mozilla Foundation, which does very important work in my opinion, and needs support.

However, I am now more concerned about supporting companies that provide ethical web services, but I can’t figure out which search company I should support. All of them say that they won’t keep profiles on me or track me or share my personal data, but they are all based on pay-per-click advertising revenue.

Qwant based in Paris, France and StartPage based in the Netherlands have better European laws to protect users than DuckDuckGo based in Pennsylvania, USA, but I’m more concerned with how each company operates.
Continue reading

Trying to decide between the PinePhone and the Librem 5

Most of the articles in the tech press just refer to the Purism Librem 5 and the PINE64 PinePhone as upcoming Linux phones, but they don’t delve into their differences. These two phones were designed with very different goals, and the focus of the two companies behind them is quite different. Just looking at the list of specs for the two phones doesn’t tell the whole story. In order to help people decide which Linux phone they should buy, I made a list of what are the major reasons to buy the two phones.

Continue reading

Reflections about buying a new mobile phone

For several years I have been giving talks about the environmental impact of planned obsolescence in electronics and the need to avoid the endless upgrade cycles of modern electronics. I tell people that they should install Linux in their PCs and LineageOS in their phones to extend the lifespan of their devices, since the manufacturing phase of personal computers, tablets and mobile phones consumes roughly 80% of their total energy. I have tried to practice what I preach by buying used phones off eBay to avoid creating new electronics and to lower my carbon footprint.

The last new phone I bought was back in 2006. Since then, I have only bought used phones. Nonetheless, I decided last year to cause the manufacture of a new phone by crowdfunding the Purism Librem 5. I decided to increase my carbon footprint because I wanted to support the development of the first phone that would run on 100% free/open source software because the world desperately needs an alternative to the Android and iOS duopoly. I justified this decision, because Purism promised to make a phone that wasn’t designed around planned obsolescence. Continue reading

Adding kill switches to protect your privacy is not as simple as you might think

The use of modern electronic devices such as laptops, tablets, smart phones, smart watches, smart speakers and autonomous vehicles are a growing threat to people’s privacy and security because these devices not only have the ability to collect massive amounts of very personal data, but they rely on a whole host of services from companies such as Google, Amazon, Facebook, Twitter, Microsoft, Tencent, Alibaba and Yandex which mine that personal data for profit, or companies like Samsung, Apple or Tesla, which are collecting that data to better train their AIs.

Governmental agencies like the US’s National Security Agency (NSA), Britain’s Government Communication Headquarters (GCHQ), China’s Ministry of Public Security and India’s Central Monitoring System (CMS) love to get their hands on this information, as was shown by Edward Snowden’s revelations. The “five eyes” nations, which include the US, Canada, UK, Australia and New Zealand, agreed in August 2018 to establish a mutual framework for dealing with the fact that the internet is “growing dark” because so much much of its traffic is being encrypted. As part of this framework, Australia passed an Assistance and Access Bill in December 2018, requiring tech companies to provide the government access to communication services under a warrant. The other “five eye” nations probably decided that they would face too much of a public backlash if they tried to pass similar laws, so instead they convened a two day meeting with Facebook, Google, Microsoft, Roblox, Snap and Twitter in late July to pressure them to provide back doors to their encrypted messaging services.

Continue reading

Why IBM buying Red Hat doesn’t matter

I found myself yawning as I read the news that IBM will be buying Red Hat for $34 billion and dumping a lot of its proprietary software on HCL, an Indian company. I stopped caring about Red Hat and IBM years ago. The fact that the fourth largest server company in the world is buying the leading Linux company should be big news, but I stopped caring in a personal way about these two companies years ago.

IBM in the 1950s – 1970s used to be the evil Goliath of the computer industry, but in my lifetime, IBM was the first tech giant to embrace free/open source software in a major way and help legitimize Linux. It was also the company that provided AMD and then Global Foundries with process tech to compete with Intel, and it was the company promoting the POWER architecture, which was the freest of the major CPU architectures (before RISC-V appeared on the scene and MIPS was recently open sourced). I should be celebrating that Big Blue is getting rid of lots of proprietary software and embracing open source in a major way, but IBM stopped being relevant to me years ago, when it sold its PC and then later its x86 server lines to Lenovo. IBM was the company which made Thinkpads into a durable line of laptops that was compatible with Linux and helped establish Linux as the OS for servers, but Big Blue has become largely irrelevant to me as the company sold off its hardware production to Lenovo and Global Foundries, and retreated into the niches of supercomputers, corporate middleware and data analysis.
Continue reading

Apple bans users from their forum who post that data recovery on Apple devices is possible

AppleInsider recently published a editorial entitled “CBC again attacks Apple’s repair policies, but still lacks knowledge of how it really works,” which criticized CBC for its video coverage of Apple’s policies regarding data recovery by the third party repair industry. The CBC piece focused on Jessa Jones and her company iPad Rehab, which recovers data from water-damaged iPhones and iPads.

In the CBC video, Jessa Jones mentions that she was banned from the Apple forum for repeatedly posting that it is usually possible to recover the data from damaged iPhones and iPads. Her posts were deleted, whereas the posts saying that it was impossible and that companies that do data recovery are scams were not deleted. This practice on Apple’s official forum leads the public to believe that there is no way to get their data back from a damaged Apple device if they don’t own a backup.
Continue reading

Reflections on learning Rust and violating copyright law

A year ago I attempted to learn Rust, a new systems programming language created by the Mozilla Foundation. I learn new computer languages not because I get any practical utility out of them, but rather because I find computer languages to be inherently fascinating. Studying a new language is like reading a profound work of philosophy. It makes your mind expand with the possibilities and stretches you to think in new ways. At my job in ProcessMaker, Inc., I occasionally learn a new trick or two from reading PHP and JavaScript code, but those languages no longer stretch the horizons of what I already know.

On the other hand, I still fondly recall how my mind was blown by the concepts I learned when I first learned programming. It was my senior year in college and I picked up the book, the New C Primer Plus, 2nd Ed. by Mitchell Waite and Stephen Prata while Christmas shopping in 1995. I stumbled across it in Circuit City on the bottom shelf below all the shrink-wrapped software. I recall that it was sitting all alone on the shelf–all the other things around it had been snatched up by the Christmas rush. It was a throw-back to the time when learning how to use a computer still meant learning how to program it, but most people rushing through Circuit City had overlooked it. At the time, people told me to learn a newer language like Java or Visual Basic, but I had become fascinated by how computers work, and wanted to learn the gritty details of a low-level language like C. I spent the next 3 weeks reading 700 pages of code examples in utter fascination. The book taught me dozens of new concepts. At the end of each chapter, there were exercises to do as homework. Since I didn’t have a C compiler, I wrote out my code examples with pencil and paper, not really knowing if they worked or not, but simply enjoying what I was learning. 
Continue reading