Language Selection

English French German Italian Portuguese Spanish

Site Map

Blogs

Community blog and recent blog authors at Tux Machines.

Forum

forums

content

blog

More in Tux Machines

Mozilla: Thunderbird’s New Home, React, TenFourFox, Chromecast Extension For Firefox, 'Mozilla’s Rebel Alliance'

  • Mozilla Thunderbird: Thunderbird’s New Home

    As of today, the Thunderbird project will be operating from a new wholly owned subsidiary of the Mozilla Foundation, MZLA Technologies Corporation. This move has been in the works for a while as Thunderbird has grown in donations, staff, and aspirations. This will not impact Thunderbird’s day-to-day activities or mission: Thunderbird will still remain free and open source, with the same release schedule and people driving the project. There was a time when Thunderbird’s future was uncertain, and it was unclear what was going to happen to the project after it was decided Mozilla Corporation would no longer support it. But in recent years donations from Thunderbird users have allowed the project to grow and flourish organically within the Mozilla Foundation. Now, to ensure future operational success, following months of planning, we are forging a new path forward. Moving to MZLA Technologies Corporation will not only allow the Thunderbird project more flexibility and agility, but will also allow us to explore offering our users products and services that were not possible under the Mozilla Foundation. The move will allow the project to collect revenue through partnerships and non-charitable donations, which in turn can be used to cover the costs of new products and services.

  • react-content-marker Released – Marking Content with React

    Last year, in a React side-project, I had to replace some content in a string with HTML markup. That is not a trivial thing to do with React, as you can't just put HTML as string in your content, unless you want to use dangerouslySetInnerHtml — which I don't. So, I hacked a little code to smartly split my string into an array of sub-strings and DOM elements. More recently, while working on Translate.Next — the rewrite of Pontoon's translate page to React — I stumbled upon the same problem. After looking around the Web for a tool that would solve it, and coming up short handed, I decided to write my own and make it a library. [...] The first thing to note is that you can pass any number of parsers to the createMarker function, and they will all be called in turn. The order of the parsers is very important though, because content that has already been marked will not be parsed again. Let's look at another example. Say you have a rule that matches content between brackets: /({.*})/, and a rule that matches content between brackets that contain only capital letters: /({[A-W]+})/. Now let's say you are marking this content: I have {CATCOUNT} cats. Whichever rule you passed first will match the content between brackets, and the second rule will not apply. You thus need to make sure that your rules are ordered so that the most important ones come first. Generally, that means you want to have the more specific rules first.

  • TenFourFox FPR19b1 available

    TenFourFox Feature Parity Release 19 beta 1 is now available (downloads, hashes, release notes). I was originally going to do more iteration on Reader mode in FPR19, but in a possible recurrence of the issue that broke SourceForge downloads temporarily, a user reported on Tenderapp they had a site that was failing in the same way. On the test system I was able to reproduce the problem and it was due to the selected cipher having insufficient cryptographic strength to pass HTTP/2 TLS profile validation. The selected cipher was one I added as a stopgap for FPR7 to fix another site which was still working (and did not use HTTP/2, hence it didn't exhibit the issue). Disabling that cipher restored the new failing site, but caused the site I put the workaround for in FPR7 to fail, so in no situation could I get both sites to be happy with the set available. Although I didn't really want to do this, the only real solution here was to upgrade NSS, the underlying cryptographic library, to add additional more modern ciphers to replace the older one that now needed to be reverted. With this in place and some other fixes, now both sites work, and this probably fixes others.

  • Chromecast Extension For Firefox fx_cast 0.0.5 Adds Support For YouTube, Subtitles For Local Media

    fx_cast, a tool that enables Chromecast support for Firefox web browser, has been updated to version 0.0.5 with some new features and bug fixes. This release includes support for finding and converting local SubRip (.srt) subtitle files for local media casting, an important fix that gets YouTube casting to work correctly, and more. fx_cast is made of two parts: a Firefox extension and a companion application that needs to run in the background on the same machine as the extension. This companion bridge application is needed to connect with the receiver devices in order to get around Google's proprietary protocol. It's important to note that fx_cast is in the pre-beta phase, and is considered "incomplete and likely buggy". It supports casting web apps like Netflix or BBC iPlayer, HTML5 video and screen/tab sharing.

  • Mapping the power of Mozilla’s Rebel Alliance

    At Mozilla, we often speak of our contributor communities with gratitude, pride and even awe. Our mission and products have been supported by a broad, ever-changing rebel alliance — full of individual volunteers and organizational contributors — since we shipped Firefox 1.0 in 2004. It is this alliance that comes up with new ideas, innovative approaches and alternatives to the ongoing trends towards centralisation and an internet that doesn’t always work in the interests of people. But we’ve been unable to speak in specifics. And that’s a problem, because the threats to the internet we love have never been greater. Without knowing the strength of the various groups fighting for a healthier internet, it’s hard to predict or achieve success. We know there are thousands around the globe who help build, localize, test, de-bug, deploy, and support our products and services. They help us advocate for better government regulation and ‘document the web’ through the Mozilla Developer Network. They speak about Mozilla’s mission and privacy-preserving products and technologies at conferences around the globe. They help us host events around the globe too, like this year’s 10th anniversary of MozFest, where participants hacked on how to create a multi-lingual, equitable internet and so much more. With the publication of the Mozilla and the Rebel Alliance report, we can now speak in specifics. And what we have to say is inspiring. As we rise to the challenges of today’s internet, from the injustices of the surveillance economy to widespread misinformation and the rise of untrustworthy AI, we take heart in how powerful we are as a collective.

Programming Leftovers

  • Squashing Django Migrations

    The Django migration system is great for modifying your database schema after a database is live. If you’re like me, you quickly end up with many 10s or 100s of migrations.

  • Episode 2 - Writing README files

    Modern day added formatting. Mostly Markdown, sometimes Restructured Text.

  • Three guys on math
  • Excellent Free Tutorials to Learn Scratch

    Scratch is a visual programming language developed by the Lifelong Kindergarten Group at the MIT Media Lab. Scratch teaches programming concepts to kids, offering a stepping stone to more complicated programming languages. Coding includes dragging and dropping various code blocks and linking them together like jigsaw pieces to form logical scripts. While the MIT Media Lab designed this language for 8-16 year-old children, it’s used by people of all ages. Scratch has received many plaudits as an ideal way to introduce kids to computer programming and computational thinking. It’s a fantastic beginner’s language. Scratch is often used to make games, interactive stories, and animations, but it can be used for any purpose. The language uses event-driven programming with multiple active objects. The language helps students to think creatively, reason logically, and work together. The language is frequently used in schools, libraries, community centers, and museums. Scratch is released under an open source license.

  • 'Trust no one' is good enough for the X Files but not for software devs: How do you use third-party libs and stay secure, experts mull on stage

    In a chilly conference room at the San Francisco's Hyatt Regency on Monday, legal and digital security pros convened at USENIX's Enigma conference to hold forth on security, privacy, and related matters. Following a discussion panel on encrypted messaging, the talk turned to mitigating the risks that come with using third-party code, external vendors, and crowdsourced advice. Those risks became more apparent in the security problems spotted in a series of software libraries over the past few years. In August last year, a Ruby software package called rest-client was found to be sending credentials to a remote server. In November, 2018, the NPM module event-stream was modified to steal cryptocurrency. There were similar incidents in July last year involving the NPM module electron-native-notify and in September, 2017, when the PyPI, the repository for Python software packages, was found to be hosting malicious software libraries.

  • Technical Debt is Soul-crushing

    The problem starts when companies forget to pay off the debt and let it accumulate and pile up. For good software developers, it is totally demoralizing to work on products that have high tech debt. This aspect isn’t often talked about but it’s effects are very real. Simple things like changing a title tag of a webpage page takes up a whole day because the logic was scattered in five different files. At the end of the day, it’s not a great feeling that it took so much time for a small task. It’s even more upsetting when they have to explain it to their managers, colleagues or the product team why it took so long. Troubleshooting a bug is not just difficult but also painful. Jeff Atwood called it a major disincentive to work on a project: [...]

  • Against unnecessary databases

    In this post, I want to start sharing some of the design principles I discovered for making these scripts robust, generic and flexible. This is part of a series on building your own 'data mirror', and there are also more posts to follow!

  • An update on bradfitz: Leaving Google

    After ~12.5 years at Google and ~10 years working on Go (#golang), it's time for me to do something new. Tomorrow is my last day at Google.

    Working at Google and on Go has been a highlight of my career. Go really made programming fun for me again, and I've had fun helping make it. I want to thank Rob Pike for letting me work on Go full time (instead of just as a distraction on painfully long gBus rides) as well as Russ Cox and Ian Lance Taylor and Robert Griesemer and others for all the patience while I learned my way around. I've loved hacking on various packages and systems with the team and members of the community, giving a bunch of talks, hanging out in Denver, Sydney, MTV, NYC, at FOSDEM and other meet-ups, etc. While I've learned a bunch while working on Go, more excitingly I discovered many things that I didn't know I didn't know, and it was a joy watching the whole team and community work their (to me) magic.

  • 'I am done with open source': Developer of Rust Actix web framework quits, appoints new maintainer

    The maintainer of the Actix web framework, written in Rust, has quit the project after complaining of a toxic web community - although over 100 Actix users have since signed a letter of support for him. Actix Web was developed by Nikolay Kim, who is also a senior software engineer at Microsoft, though the Actix project is not an official Microsoft project. Actix Web is based on Actix, a framework for Rust based on the Actor model, also developed by Kim. The web framework is important to the Rust community partly because it addresses a common use case (development web applications) and partly because of its outstanding performance. For some tests, Acitx tops the Techempower benchmarks. The project is open source and while it is popular, there has been some unhappiness among users about its use of "unsafe" code. In Rust, there is the concept of safe and unsafe. Safe code is protected from common bugs (and more importantly, security vulnerabilities) arising from issues like variables which point to uninitialized memory, or variables which are used after the memory allocated to them has been freed, or attempting to write data to a variable which exceeds the memory allocated. Code in Rust is safe by default, but the language also supports unsafe code, which can be useful for interoperability or to improve performance.

  • Chinese academic suspended for copying programming language

Python Programming Leftovers

  • Python Modules and Packages: An Introduction

    In this course, you’ll learn about Python modules and Python packages, two mechanisms that facilitate modular programming. Modular programming is the process of breaking a large, unwieldy programming task into separate, smaller, more manageable subtasks or modules. Individual modules can then be put together like building blocks to create a larger application. Learn how to write and import modules so you can optimize the structure of your own programs and make them easier to maintain and grow.

  • PyCoder’s Weekly: Issue #405 (Jan. 28, 2020)
  • Why Should You Use typing In Python?

    I am using typing at my work project and now trying to use it for my personal or freelance projects only if it is not a one-time script. No sense to invest time in the 15-minute thing. And why you should use it too. Lots of people like Python because it provides a fast way to build software. But on the other hand, after some time of the team development, it can be hard to understand the code for the team members. Especially, for the new ones. I do personally believe that it increases the readability of the code. Seems to me that it is even more about self-documenting the code, not about the type checking. However, yes, it helps to find some obvious bugs. My favorite example is a variable called data. Is it a list? Or maybe a dict? Or maybe something custom? Looks like that you need to invest some time in figuring this out. And probably repeat it one more time in a month or two.

  • Text Classification with BERT Tokenizer and TF 2.0 in Python

    This is the 23rd article in my series of articles on Python for NLP. In the previous article of this series, I explained how to perform neural machine translation using seq2seq architecture with Python's Keras library for deep learning. In this article we will study BERT, which stands for Bidirectional Encoder Representations from Transformers and its application to text classification. BERT is a text representation technique like Word Embeddings. If you have no idea of how word embeddings work, take a look at my article on word embeddings. Like word embeddings, BERT is also a text representation technique which is a fusion of variety of state-of-the-art deep learning algorithms, such as bidirectional encoder LSTM and Transformers. BERT was developed by researchers at Google in 2018 and has been proven to be state-of-the-art for a variety of natural language processing tasks such text classification, text summarization, text generation, etc. Just recently, Google announced that BERT is being used as a core part of their search algorithm to better understand queries. In this article we will not go into the mathematical details of how BERT is implemented, as there are plenty of resources already available online. Rather we will see how to perform text classification using the BERT Tokenizer. In this article you will see how the BERT Tokenizer can be used to create text classification model. In the next article I will explain how the BERT Tokenizer, along with BERT embedding layer, can be used to create even more efficient NLP models. Note: All the scripts in this article have been tested using Google Colab environment, with Python runtime set to GPU.

  • PyCharm 2020.1 EAP starts now

    There are two types of people in the world: those who can wait to open a package they’ve received, and people like me, who need to see what’s inside this very second. PyCharm isn’t delivered in the mail though, and that’s why we have something even better for impatient people. The early access program (EAP) shows you what’s in the package a couple months before you get it. Take a sneak peek, and get PyCharm’s first EAP now!

  • Webinar Recording: “Advanced Debugging in PyCharm”

    Last week we held a special webinar for “Advanced Debugging in PyCharm”. Special how? In person, in the St. Petersburg office, with the two PyCharm team members in charge of the debugger, and a huge webinar audience. The recording is now available.

Perl/Raku Programming Leftovers

  • LANraragi v.0.6.8 - Cool Cat

    LANraragi is a web application for archival and reading of manga/doujinshi. It's lightweight and Docker-ready for NAS/servers. There is even a standing offer from the author to send out a free sticker pack for the first person to run the linux/s390x docker image on a real IBM System 390.

  • Making YAML.pm, YAML::Syck and YAML::XS safer by default

    Several YAML modules allow loading and dumping objects. When loading untrusted data, this can be a security vulnerability, if this feature is enabled.

  • 2020.04 Almost Springtime

    Damian Conway is back from sabbatical: in the second week of March, they will be giving some very interesting courses in Switzerland: Presentation Skills courses, redesigned language-neutral versions of the “API Design”, “Better Coding Practices” courses and a free half-day seminar on Raku on 12 March!