Category Archives: technology

Observaciones acerca del traductor de quechua, aymara y guaraní de Google Translate

Hay que reconocer el nuevo traductor de quechua, aymara y guaraní de Google Translate (https://translate.google.com) por valorar las lenguas indígenas. Sin embargo, el traductor tiene varios problemas todavía y es necesario mejorarlo para que sea útil para el público boliviano.

El traductor quechua es basado en el quechua chanka de Ayacucho. El traductor debería indicar que la lengua es “quechua chanka” en lugar de solo “quechua”, porque quechua es una familia de lenguas que contiene mucha variación. Para un quechua-hablante de Cuzco, Huancayo, Ancash, Bolivia, Ecuador o Argentina, el traductor de Google esta produciendo algo como catalán o gallego para un castellano-hablante. El traductor no es muy útil para los quechua-hablantes de Bolivia, que tienen 10 letras adicionales en su alfabeto (CH’, CHH, K’, KH, P’, PH, Q’, QH, T’, TH) que no existen en el quechua chanka. El traductor castellano→quechua produce texto en el dialecto chanka sin las letras glotalizadas y aspiradas del quechua boliviano, entonces no distingue palabras como tanta (juntos), t’anta (pan) y thanta (usado/viejo), porque todas esta palabras son representadas como tanta por el traductor.

Otro problema es que el quechua chanka contiene varios sufijos que no existen en el quechua boliviano como los comentarios de clausula -mí, -sí y -chá, el disculpativo -iki, el vocativo -ya, el efático reportativo -sá y el distributivo equitativo -nka. El sufijo atestiguativo -m / -mi es muy común el quechua chanka y cuzqueño, pero no es utilizado por la mayoría de quechua-hablantes de Bolivia, y el sufijo reportativo -s / -si no es entendido en algunas regiones de Bolivia. El sufijo aditivo -pas es generalmente pronunciado como -pis en Bolivia. Con estas diferencias de dialecto, el traductor castellano→quechua produce texto que puede causar confusión para los quechua-hablantes de Bolivia.

Aparte de estos problemas dialectales, hay algunos problemas en las traducciones producidas por Google Translate. Por ejemplo:

Véndeme estas llamas. → Kay nina rawraykunata rantikuway.

La traducción dice literalmente “Véndese este fuego fuegos”. Debería ser: Kay llamakunata rantiway. Google traduce “llama” en el sentido de “flama” (de un fuego), que es un error entendible porque la palabra tiene dos sentidos, pero debe traducirlo como “nina” o “rawray”, en lugar de usar ambas palabras que son sinónimos. Además, no hay razón incluir el sufijo reflexivo -ku porque el verbo no es reflexivo.

Me gusta pan. → Tanta gustan.

Debería ser: Tanta gustawan. Sin el objeto indirecto de primera persona -wa, la traducción de Google significa “el pan gusta”.

Me lo pidió. → Nispa tapuwarqa.

Debería ser: Mañawarqa. Lo ha traducido como “diciendo me preguntó”. No hay razón aumentar Nispa (“diciendo”) y debe usar el verbo mañay, que significa “prestar” o “pedir” en lugar de tapuy (“preguntar”).

Quiero usar el baño. → Quiero utilizar el baño.
Voy al baño. → Bañomanmi rini.

Parece que texto castellano fue mezclado con el texto de quechua en el entrenamiento del traductor de quechua, porque a veces castellano sale en lugar de quechua, pero con otras palabras de castellano como en el primer ejemplo que convierte “usar” a “utilizar”. En el segundo ejemplo, la frase es traducida al quechua, pero contiene el sufijo atestiguativo -mi, que la mayoría de quechua-hablantes bolivianos no reconocen.

El traductor de quechua→castellano es mejor que el traductor castellano→quechua. Parece que el traductor quechua→castellano fue entrenado con textos de ambos quechua chanka y quechua cuzqueño, y el quechua boliviano esta cerca del quechua cuzqueño, entonces el traductor puede reconocer algunas variaciones dialectales y puede traducir la mayoría de texto introducido por un quechua-hablante boliviano. Por ejemplo, puede reconocer diferentes formas del modo progresivo en verbos. Traduce correctamente ruwachkani (la forma normalizada, usado en Cuzco y el norte de La Paz), ruwashani (usado en Cuzco, Chuquisaca y partes de Cochabamba), ruwasani (usado en partes de Cochabamba) y ruwashiyani / ruwashiani (usado en partes de Potosí) como “estoy haciendo”.

Sin embargo, el traductor de quechua→castellano también puede producir errores gramaticales. Por ejemplo:

Lluqsichkani. → Voy a salir.

Debería ser: Estoy saliendo. Google está confundiendo el modo futuro por el modo de presente progresivo.

Parece que Google esta usando machine learning (entrenamiento por maquina) para crear su traductor de quechua y aymara en lugar de programación manual de la gramática. Con machine learning el traductor aprende por analizar grandes cantidades de traducciones, pero el traductor puede hacer errores como confundir el futuro por el presente progresivo si las traducciones de entrenamiento hacen el mismo error. Por esta razón es muy importante que el traductor sea entrenado con traducciones exactas y Google no utiliza cualquier texto encontrado en el internet sin revisión de un experto en la lengua para asegurar que las traducciones de entrenamiento sean buenas.

Lastimosamente el traductor de aymara sufre de los mismos problemas como el traductor de quechua y puede producir texto equivocado. Por ejemplo:

Voy a mi casa. → Utar kutt’aña.

A menudo el traductor aymara no agrega los posesivos (-ja, -ma, -pa y -sa) y no esta conjugando muchos verbos correctamente, que se puede observar en este ejemplo, que es traducido literalmente como “regresar a casa”, con el verbo en el modo infinitivo y sin el posesivo “mi”. Debería ser: Utajar sartwa.

Estoy yendo al cine. → Nayax cine ukar sarañ munta.

Google traduce esta frase como “yo quiero ir al cine”, que cambia su sentido. Además, falta el sufijo -wa para una oración afirmativa. Debería ser: Nayax cine ukar sarasktwa.

Me dio la plata. → Jupaw uka qollqe churitu.
¿tienes plata? → qullqix utjtamti?

Otro problema es que el traductor está mezclando los alfabetos de tres vocales (A, I, U) y cinco vocales (A, E, I, O, U). Por ejemplo, “plata” es traducida como qollqe o qullqi en diferentes ocasiones.

Dame pan. → Tʼantʼa churapjjeta.
Ellos miran la televisión → Jupanakax TV uñch’ukipxi.

En algunas ocasiones el traductor utiliza escritura de alfabetos anticuados como el uso de JJ en lugar de X, como se puede observar el sufijo -pxi, que es deletreado como -pjje en el primer ejemplo.

Google debería excluir todo el texto que utiliza 5 vocales y alfabetos anticuados para evitar confusión en la ortografía cuando está entrenando el traductor.

Quechua y aymara son lenguas aglutinantes que contienen más que 100 sufijos diferentes, y estos sufijos pueden ser combinados. Una raíz en quechua y aymara puede formar medio de millón de palabras con la combinación de sufijos. Algunos sufijos excluyen a otros sufijos, y hay un orden en la combinación de sufijos. Además la lengua aymara tiene reglas muy complicadas de elisión vocálica que no existen en quechua. Teófilo Laime ha documentado 5 clases de sufijos aymaras según sus diferentes reglas de elisión vocálica.

Para aprender las reglas complicadas de morfosintaxis en una lengua aglutinante, el entrenamiento de un traductor de quechua y aymara requiere mucho más texto que el entrenamiento de una lengua indoeuropea como inglés o castellano donde los sufijos generalmente no son combinados. Probablemente Google no tuvo mucho texto para entrenar el traductor de quechua y aymara, porque menos texto es publicado en estas lenguas. Tal vez sería mejor programar manualmente las reglas de morfosintaxis en lugar de usar machine learning para aprenderlas, y los Institutos de Lengua y Cultura de Quechua y Aymara pueden proporcionarle estas reglas a Google.

El traductor de guaraní produce traducciones adecuadas, pero es basado en el guaraní de Paraguay, que utiliza otro alfabeto que el guaraní de Bolivia. El alfabeto boliviano utiliza la diéresis (¨) para designar vocales nasales en lugar de la tilde de la eñe (~) en el alfabeto paraguayo, y utiliza el I cortado (Ɨ) en lugar del Y. El guaraní boliviano contiene las vocales A,Ä,E,Ë,I,Ï,Ɨ,Ï,O,Ö,U,Ü que corresponden a las vocales A,Ã,E,Ẽ,I,Ĩ,Y,Ỹ,O,Õ,U,Ũ en el guaraní paraguayo.

La cuestión es si Google está dispuesto colaborar con los Institutos de la Lengua y Cultura de Bolivia para mejorar la traducción de quechua, aymara y guaraní, y ofrecer un traductor afinado para los dialectos de Bolivia. En otras lenguas Google Translate generalmente no ofrece variaciones dialectales, pero quechua es una familia de lenguas. Si Google Translate ofrece castellano, gallego y catalán que son variantes de lenguas iberorromances, también debería ofrecer variantes de quechua, porque la familia de quechua contiene mucha variación como las lenguas iberorromances.

Google Translate puede ser una herramienta maravillosa para las lenguas originarias de Bolivia porque soporte 133 lenguas diferentes. Puede traducir quechua, aymara y guaraní a lenguas extranjeras como chino, ruso, persa, etc. Sin embargo, sólo traduce hasta 5000 palabras por gratis. Para traducir documentos con más palabras, es necesario pagar por el uso de Cloud Translate que cobra US$ 0,08 por página o US$ 20 por mes por cada millón caracteres de traducción. Ver los detalles: https://cloud.google.com/translate/pricing Lastimosamente la interfaz de Cloud Translate no es para usuarios normales sin conocimiento técnico. Es una API (interfaz de programación de aplicación) que es llamado por código REST, entonces el servicio pagado no es muy útil para el público boliviano.

Google Translate es software privativo y la política del Estado boliviano promueve el uso de software libre, según la Ley No. 164. Ley General de Telecomunicaciones, Tecnologías de Información y Comunicación promulgada el 8 de Agosto de 2011, que estipula:

Art 77. Software Libre Los órganos ejecutivo, legislativo, judicial y electoral, en todos sus niveles promoverán y priorizarán la utilización del software libre y estándares abiertos, en el marco de la soberanía y seguridad nacional.

El órgano ejecutivo del nivel central del Estado elaborará el plan de implementación de software libre y estándares abiertos en coordinación con los demás órganos del Estado y entidades de la administración pública.

A pesar de esta ley, Google Translate ya es muy utilizado por el público boliviano. Existen otros buscadores de internet como Bing, Yahoo! y DuckDuckGo, pero Google controla 92% de las búsquedas por internet, entonces el traductor de Google va a ser utilizado cada vez que se busca como decir palabras en quechua, aymara o guaraní. Por esa razón, se recomienda que los Institutos de Lengua y Cultura (ILCs) de Bolivia colaboren con Google para mejorar su traductor en estas lenguas originarias. Los ILCs pueden ofrecer revisar los textos de entrenamiento utilizados por el traductor para mejorarlo y pueden proporcionarle a Google más traducciones y las reglas de gramática y morfosintaxis para entrenar el traductor.

Estos mismos textos de entrenamiento también pueden ser re-utilizados para crear un traductor de software libre que no tiene restricciones de licencia y puede ser afinado para las variantes de Bolivia. Se recomienda que los ILCs colaboren con Google para mejorar su traductor, porque sería una oportunidad para crear textos de entrenamiento para un futuro traductor de software libre.

Comparando celulares de Linux (y como ellos pueden enfrentar los problemas de la industria móvil)

Aca es una presentación que hice con el Nucleo Linux Bolivia (telegram: NucleoLinuxBolivia) el día 3 de marzo de 2022:

La presentación incluye varios fotos de mi artículo “Comparing the Librem 5 USA and PinePhone Beta” y aca son los dispositivos en ODP (LibreOffice) y PDF de esta presentación:

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.)

Recognizing the growing risk of rocket emissions for global warming and ozone depletion

There are a growing number of fans of space exploration and colonization, but they seem to be totally clueless about the potential environmental problems from rocket emissions. Many of these space fans turn to Tim Dodd, who is known as the “Everyday Astronaut” on the internet, to get the latest news from SpaceX, Blue Origin, ULA, Virgin Galactic, Boeing, Rocket Lab, etc. Unfortunately, people like Tim Dodd are not reliable sources of information when it comes to the environmental impact of rockets.

Dodd recently produced an article and video about the emissions from rockets. Dodd should be commended for trying to calculate the emissions for a number of different rocket models. However, he either hasn’t read the papers by critical investigators such as Dr. Martin Ross or his boosterism of space exploration makes it difficult from him to understand the potential problems with a massive increase in rocket launches.

In response, to Dodd’s article, I posted this critical comment, pointing out what he missed in his article:

Tim, I appreciate the time that you took to calculate the emissions for each type of rocket, but you did a real disservice to the community by not clearly explaining how rocket emissions threaten the environment. M. Ross et al (2009) estimate that rocket emissions only account for 0.03% of ozone depletion, but they predict that rocket emissions will deplete the ozone layer more than CFC emissions by the year 2050. See:
https://www.sciencedaily.com/releases/2009/03/090331153014.htm
https://www.tandfonline.com/doi/pdf/10.1080/14777620902768867

The big threat to the ozone layer is the growing use of rockets that are fueled by ammonium perchlorate and alumina, which will be driven by the future boom in the space tourism industry. Virgin Galactic’s Unity uses 15,000 lbs of fuel, which we can guesstimate is 68% NH4ClO4, 18% Al and 14% HTPB. Considering that Virgin Galactic already has reservations for 600 passengers / 100 flights, it is likely that Virgin Galactic will be launching several thousand times per year by 2040.

Your article focuses on CO2 emissions which is totally wrongheaded, because the vast majority of radiative forcing (RF) from rockets emissions comes from black carbon, alumina and water vapor. Unlike in the troposphere, where black carbon and alumina particles quickly disappear, these particles stay in the troposphere for roughly 4 years on average, so they cause a lot more warming over time. Ross and Sheaffer (2014) calculate that rocket emissions produce about 16 mW/m2 of RF, which is about a fourth of the RF of the global aviation industry. See: https://agupubs.onlinelibrary.wiley.com/doi/pdf/10.1002/2013EF000160

The amount of RF is probably higher today than what Ross and Sheaffer calculated, because of the increasing number of kerosene rocket launches by SpaceX. Ross and Sheaffer believe that black carbon has a global warming potential (GWP) of 50,000 due to how long it lasts in the stratosphere, making it the most potent warming substance produced by humans. Ross and Sheaffer calculate that a kerosene rocket produces 30 times the radiative forcing of a comparable hydrolox rocket. If the use of solid and kerosene rockets keeps growing, the rocket industry could produce more radiative forcing than the aviation industry in the future.

We don’t know exactly how long particles stay in the stratosphere at altitudes of 20-30 km where most of the ozone layer is located. We need a lot more study of the impact of black carbon, alumina particles, methane and water vapor in the stratosphere. Despite that uncertainty, I believe that rockets using ammonium perchlorate and alumina fuel should banned (except for non-regular uses such as emergency abort systems and ballistic missiles). If we look at the amount of black carbon that kerosene rockets produce, we need to move to methalox and hydrolox rockets as quickly as possible.

If the plans of SpaceX, Blue Origin and ULA come to pass, there will be massive numbers of methalox rocket launches in the future. I haven’t found any papers that calculate the radiative forcing and ozone depletion from methalox rockets. They seem to be better for the environment than solid and kerosene rockets, but there are still serious questions about whether the water vapor, NOx, CO2 and unburned methane that they emit will have serious effects in the stratosphere. What percentage of methane isn’t burned in the Raptor and BE-4 engines? I can’t find any estimates. In the troposphere, methane converts to CO2 after an average of 9.1 years, so it is calculated that 1 gram of methane has the same global warming potential (GWP) as 33 grams of CO2, but if methane doesn’t convert to CO2 very quickly in the stratosphere, then its GWP could be much higher. The water vapor from rocket emissions will stay much longer in the stratosphere than in the troposphere, so the warming effect from rocket contrails could be much larger. If the growing emissions from rockets heat up the stratosphere, then the chemical reactions that destroy ozone could also speed up, and we could potentially destroy the ozone layer.

We don’t have to worry too much today, but if Virgin Galactic has thousands of solid rocket launches per year and SpaceX is launching StarShip tens of thousands of times per year, then we really do have to worry. Elon Musk is planning to send a million colonists to Mars, which would mean 10,000 passenger flights and 100,000 equipment flights of StarShip to Mars. If we guesstimate 5 launches to fuel up StarShip for each flight, then that means a total of 550,000 launches. We had better be really sure that we know the impact of methalox rockets in the stratosphere before we start colonizing space, because we can’t take the risk of destroying the ozone layer.

It is clear that Dodd did a lot of research for his article on rocket emissions, so he probably ran into some of the Martin Ross’s work, but he seems to have either ignored it or done mental gymnastics to dismiss it. Sadly, this is the response of many smart people when they find out that their favorite activity has large environmental impacts. We can always find ways to justify what we appreciate, whether it be red meat, private cars, air flight or space flight. The challenge is trying to be honest with ourselves about the impacts of what we humans do to our planet.

Questions raised by a study finding that math isn’t important in learning to code

A recent study published by Nature by Chet et al. (2020) found that that reasoning ability, memory capacity and language ability were far more important factors than math skills when learning to program in Python.

The commentary in the popular press is that this study shows that learning foreign languages is better preparation to become a computer programmer than studying math. That certainly agrees with my own experience. I only took two math classes in college (Calculus 2 and statistics), whereas I took 7 language classes (Spanish and Latin) in college, before I taught myself C when I was 22 years old. I recalling thinking at the time that it was much easier to learn a computer language than a human language.

The question raised by the findings in Chet et al. (2020) is whether computer science programs should change their requirements for getting a degree. Computer science degrees typically require two calculus classes, plus a statistics or probability class, and some require a class on matrix mathematics as well. They typically do require a general English and/or writing class, but they don’t typically require any study of a foreign language, linguistics, philosophy or formal logic, which develop abilities that Chet et al. found to be more useful than math in learning Python. Continue reading

Trump displays his utter ignorance about wind energy

Donald Trump is the kind of guy who doesn’t even bother to do his homework before he gets up on stage to demonstrate his ignorance to the world. It would be funny if he wasn’t the person in charge of making public policy for the nation. Even worse is the fact that his followers don’t even seem to care if their dear leader knows anything or not.

Trump put his ignorance on full display in a recent speech in West Palm Beach, Florida, where he made a series of ludicrous statements about wind turbines:

Continue reading

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

Reddit now forces people to view lots of worthless junk

The last time I logged into Reddit, the screen was filled with all sorts of junk that I have no interest in reading. I thought to myself that I need to unsubscribe from all these garbage subreddits. All I want to see on the introductory screen are the posts from the subreddits that I am subscribed to.

I hunted around and was shocked to find that there was no way in the Reddit interface to display the list of subreddits that I was subscribed to. “Strange,” I thought to myself. “There has to be a way.”

I Googled the problem and found that it was only possible to see the list by subscriptions by entering the following URL in my browser to get the old Reddit interface:
https://www.reddit.com/subreddits/

Continue reading