Optimize Images X, the multi-platform desktop application that helps you reduce the file size of your images on macOS, Windows and Linux, has just been updated to version 2.1.0. This new version adds drag-and-drop, conversion to more output formats, including WebP and AVIF , a new image info window with a readable EXIF report, and a PyInstaller spec file for building standalone executables.
Optimize Images 2.1.0 brings native WebP support, a generalized format-conversion system, on-demand image inspection with EXIF reporting, and a new in-memory API for working with image bytes directly. It is a focused, fully backwards-compatible step forward for the command-line tool and its public API .
This release represents a significant milestone for both Optimize Images and Optimize Images X, marking a coordinated step forward in modernization, dependency cleanup, and internal architecture improvements across the ecosystem.
For a long time, I have been writing here about Python, Python projects, and Python books. It was one of my first programming languages, and the first one I fell in love with. So much so that I have used it as my go-to option for personal side projects, quick prototyping, and algorithm study. However, my professional life as a software developer has been based mostly on C# and . NET . At first, it…
I recently stumbled upon a situation where I needed to quickly convert a Base64 string coming from a web api and save it into a file in disk in order to inspect its contents. Sure, I could have spun up a small program in C# or Python. But honestly, that felt like an overkill for what was essentially a one-off task. In the past I had used an online Base64 converter for a similar task, so it crossed…
This is a pragmatic book that presents some of the most important topics about the Python programming language in a concise form, designed to make it easier to find out the most relevant information bits in a context where resources abound and frequently are just too overwhelming.
This time, we are releasing both Optimize Images and Optimize Images X at the same time. The original CLI version now uses temporary files with in-memory buffers, which prevents unnecessary I/O, and also displays more detailed and more useful version information. Optimize Images X, the GUI version, is now compatible with Python3.7+ and has the ability to open or preview a selected image.
So, just 3 days after the first public beta, here we got the second beta for Optimize Images X . It includes an important hot fix for Windows and Linux, and two new usability features.
Just for fun, this month I set myself to start a new Python project. It’s the same as Optimize Images, but with a big X and a nice graphical user interface. It wants to help you reduce the file size of images, and hopefully make your websites load faster.
You may wonder how I came up with this topic. I usually code in a graphical IDE like PyCharm or Visual Studio, or even a text editor like VS Code or BBEdit. But sometimes you need some lightweight application that is capable of opening and efficiently edit a file. I often return to VIM for quick edits in small files. Sometimes, just for the convenience of not leaving the shell. Other times,…
Deep Reinforcement Learning is a somewhat new field within Machine Learning or Artificial Intelligence (you may pick your favorite term between these two, even if they’re not strictly the same), which combines Deep Learning and Reinforcement Learning and is based on the general idea that an agent can learn by observing its actions and their consequences. No, it is not a return to John B.…
Optimize Images has a new version just released on PyPI ! Besides the usual clean and polish, this release includes two new features that may be of interest for you, especially if you are using this utility on servers.
If you’re a developer or a systems administrator, sooner or later you will meet that HUUUGE , GIANT , ENORMOUS file. A file that weights several gigabytes of more or less cryptic system or application logging messages, with no rotation scheme in place. Since log files are usually built by appending the most recent information to the end, probably you just need to check out the last 100 or 1000…
Those among you who have already learned some Python or may even have used it in some projects will certainly have heard the expression “Pythonic Code”, which conveys a general and somewhat wide meaning of “clean code and good software development practices in the context of Python”. With Effective Python , the author presents you with nothing less than 90 practical…
Optimize Images has just been updated to version 1.3.6, a minor but still important release that fixes a few bugs and improves its overall stability. Thank you for using Optimize Images and/or contributing with feature suggestions, bug reports, or pull requests!
After about 20 months of hard work, the Haiku team has finally released, a few days ago, the second beta version of Haiku, the BeOS-inspired open-source operating system that aims to offer a fast, simple to use, and powerful alternative for personal computing. This time, I am particularly happy, even a bit proud myself, because I have also been contributing with Portuguese translations for the…
One of these days, while setting up a couple of Linux virtual machines to test my Python applications, I was faced with a series of obstacles on CentOS 7 that I needed to overcome. Since this is the kind of issues that many other Python developers may encounter when setting up a Linux machine, I will share what I learned with this experience.
If you are using Optimize Images , please notice that it has just been updated to version 1.5, which fixes a bug and adds some support to a JPEG sub-format known as MPO .
Machine learning, one of the hottest tech topics of today, is being used more and more. Sometimes as the best tool for the job, other times perhaps as a buzzword that is mainly used as a way to make a product look cooler. However, without knowing what ML is and how it works behind the scenes, it’s very easy to get lost. But this book does a great job in guiding you all the way up from very simple…
If you have been following beginner or even intermediate guides on Python and are starting to feel the need for more advanced learning, this book may be the one you have been looking for.
When doing software or web development, you should have your code (and even other kinds of files) managed by a version control system, so that you are able to backup meaningful changes, checkout a file from a previous version, or collaborate with your team more efficiently. Over the years there have been some tools that serve for this purpose, but these days Git seems to be the most popular…
And now, for something different, I have just dived into Java. I am sharing with you the first (pre-)release of Nice Telescope Planner, a simple cross-platform desktop utility for amateur astronomy hobbyists, written in Java. The aim is to provide an easy to use tool to help planning sky observation sessions, suggesting some of the interesting objects you may be able to watch at naked eye, or…
This is the tutorial I wish I had around some years ago, when I first tried to learn how to use Vim. If you’re just beginning to know this amazing text editor, please keep reading, I am writing this tutorial right for you!
This is a book written while having in mind those who already have some object-oriented programming background but are willing to get into Python and (especially) Artificial Intelligence and Data Science.
Going through a moment of change in my life, I have decided to redesign my other website , using Pelican and other open source tools. The older version was starting to look a bit aged, especially on mobile devices, so it seemed like a good idea to start a complete makeover. As they use to say, new year… new website .
From today onwards, I won’t be parking my bicycle every morning in front of Promais anymore. I had 11 unforgettable years, always surrounded by amazing costumers and friends. Now, there are new challenges in the horizon. For the first time in my lifetime, I can say: new year, new life! See you soon!
Since two weeks ago, I have been back to the Haiku world, exploring the present status of the operating system and currently available tools, and I decided to start using Haiku to translate the Haiku operating system to Portuguese.
Having experimented and used BeOS R5 Pro back in the early 2000’s, when the company that created it was just going down, I have been following with some interest the development of Haiku during all these years. While one can argue that both the old BeOS and Haiku miss some important features to be considered modern OSes these days, the fact is that a lightweight operating system can always be, for…
The latest release of this file counting command-line utility has just been released. It is a platform independent (pure Python) package that makes it easy to count files by extension. This version has some useful new features. It was tested in a wide range on environments and, for the first time, it is now available on PyPI, which means you can just pip install it as any other Python package.
The new release of my image optimization command-line utility is out. It has a couple of cool new features and, for the first time, it is now available on PyPI, which means you can just pip install it as any other Python package.
This Wednesday, 1 August, I did a brief presentation on GUI programming on Python with Tkinter , at Blip. PT , during a Summer Talks event promoted together by DevOps Porto and Python Porto . This article puts together the main topics from my presentation, and adds a few details that I couldn’t fit in the short time of that session.
This is an interesting book about Python, but not the usual handbook or cookbook style. If you already know the basics and want to discover new details about this programming language, or if you want to check if you really have a solid grasp on it, this book will give you some insightful, bite-size, tips and tricks.
Over the last 12 years, I have been blogging almost uninterruptedly about different subjects (mostly on tech stuff), on different platforms and using a variety of devices and applications. First on desktop and laptop computers, and more recently from iPhone and iPad. This year I went on to try something new and decided to create this blog based on Pelican, a static site generator made with Python.…
Last week, I told you how I had decided to start building my own (almost pure Python) utility to optimize images for the web. Today I am announcing the first public release of this CLI application. Check it out!
When you want or need a custom tool and you can’t find it, you have two options: you either buy one (or ask someone to build it for you), or you make your own and do the best you can to make it work for you. This week, I decided to start building my own (almost pure Python) utility to optimize images for the web.
Python is an amazing language that can be both forgiving for beginners and still provide more and more advanced features as we dig through. Sometimes, you hear or read about some of its powerfull tools, and you feel that you have nothing to use it on. But one day that time comes, and you realise that it can make things easier, more readable or more performant. Generators are one of those nice…
Since I started discovering Python about two years ago, my learning path has been made of a lot of small steps. And today was no exception (no Python pun intended).
While working on this website, I had the curiosity to find out how many HTML and image files Pelican was generating behind the scenes. I had no utility at hand to count files recursively through folders and subfolders, so I decided to create my own using Python.
Every year, on the 25th April, Portugal celebrates in a very enthusiastic way the Freedom Day, keeping alive the memory of that day on 1974, when our country got liberated from an authoritarian and oppressive dictatorial regimen. It’s one of our most important national holidays and even those of us who were born some time after the end of the dictatorship, we still value that important conquest…
Making this website load fast while looking good is one of my goals. But making sure that high resolution images don’t weight more that necessary is not that easy, especially when you’re writing your content on iOS and in Markdown…
One day you find yourself in a situation you need to set up an automatic backup system and you realise that your old server does not support Dropbox anymore. The sollution: getting your hands to work and write a program for that task.
When I started this blog, I had a few technical requirements in mind. First of all, I wanted the whole static website build process to be based on Python and to be reproducible both on desktop and on iOS. So, I was very glad to find out I was able to pip install pelican and a few of its dependencies in Pythonista, using StaSh, and get my iPhone to process a bunch of Markdown formatted text files.…
In a recent episode of the Python Bytes podcast , some of my programming projects are briefly mentioned, as a concrete example of how complex Python and tkinter may be used to create complex and good looking desktop graphical user interfaces.
This is the first blog post here, and it will serve just to test Pelican , a Python-based static website generation system. Hopefully, it will work without any explosion or traceback.