Sailfish OS update from Jolla
Fully packed fortnight, update on what we have been doing, usual repository roundup from Damien (dcaliste) and app roundup by David (flypig).
In the previous fortnight, we gave an update from our manufacturing partner’s factory (Reeder). Back then we targeted to start Jolla C2 shipments on a week starting 14th October. In this fortnight we’re shipping and delivering! Customs handling and clearance took a tiny bit longer than anticipated but finally a palette of C2s was delivered to our logistic partner’s premises on last Friday (18th October) and the first devices were picked, packed and shipped. All in all, everything went quite smoothly. Shipments have been now rolling 3 full days and you, the Sailfish community, have been posting nice pictures after receiving your devices.
By now, everybody who pre-ordered the C2 should have received the final payment link for your C2. If you have not seen your final payment, please check your junkmail folder. If you really cannot find it, please contact us and we check it out.
We’ll have the Jolla C2 Community Phone deliveries topic open for some time still but it is a good time to shift discussion towards Feedback on Jolla C2. We keep on listening your thoughts and ideas and surely helping out as well. Together with you, the Sailfish community, we can do great things!
Sailfish 5.0 release has been on CBeta for two weeks. In practise, there’s a second release candidate (RC2) available and this 5.0.0.21 looks like the first update candidate for the Jolla C2 devices. Rolling out to the early access subscribers would likely happen with third release candidate – let’s see how it goes but this is the current thinking.
Jolla C2 VoLTE tester group has been activated as well. C2 VoLTE packages are currently under review and we have been using them internally. It should not be too far that we deliver the first VoLTE packages and really start collecting feedback & input. We counted that there are 22 different countries present in this group and that’s quite remarkable number.
Mind2 update
Last week we had a successful code camp together with the team here @ Tampere office.
Earlier during the pre-production PCBA testing we realized that we have an issue with the LED controls. We improved that and added four additional PWM controllers to be able to better control capabilities of the LEDs and to protect them from over burning.
Due to these small changes to the final PCBA there is a small change in the production schedule. Currently, we are targeting early December production. We have the production facilities reserved so that we do the mass production on the first weeks of December. Start shipping mid December to the first customers.
Join the discussion over here.
We will post a video review of the hardware within few days.
Repository roundup
Network and telephony stack
-
wireguard-tool
, thewg
binary to control WireGuard VPN, Laakkonenjussi created a new repository to package the tools. -
wpa_supplicant
, for accessing WPA and WPA2 protected WiFi networks, Laakkonenjussi reverted a change in 2.10 that breaks access-point feature. -
connman
, the connection manager, Laakkonenjussi avoided the vpn daemon to take precedence over the connman daemon when dealing with connections and disconnections. There is also a fix in the pipeline for wrong prefix length sent over D-Bus for VPN.
Native browser
-
gecko-dev
, Mozilla’s Gecko web rendering engine, pvuorela cleaned some compilation warnings. mal updated to the latest upstream version in the ESR 91 family. -
qtmozembed
, Qt bindings for the Gecko engine, pvuorela did various cleans up, including for instance the removal of old Qt4 remainings. -
embedlite-components
, QML components for the browser, mal adapted the login manager page to the new ESR 91 engine. It fixes the basic authentication process. -
sailfish-components-webview
, the high-level QML components exposing a web page, mal corrected the float preferences since notations like13.0f
are not recognised anymore. pvuorela cleaned up the code, removing an empty private header file, marking functions withstatic
keyword when relevant… -
sailfish-browser
, the browser application itself, pvuorela updated the unit tests to the API changes brought by ESR 91 and also adjusted to the name changes inqtmozembed
.
Main interface
-
qmf-notifications-plugin
, a plugin to send notifications on email changes, pvuorela fixed email tone being played multiple times when receiving sereval emails. -
lipstick
, the home screen code (open source parts), pvuorela added a 2s temporisation to audible notifications so sounds of notifications without pop-up are not emitted on top of other possible sounds.
Developer’s corner
-
fingerterm
, the console application, pvuorela fixed touch handling with large rounded corner. -
gcc
, the GNU compiler collection, direc85 is working on enabling Go language by compiling the required binaries. -
scratchbox2
, the cross-compilation tool used by the SDK, direc85 proposed to add the GCC Go language binaries. -
go-rpm-macros
, build-stage rpm automation for Go packages, direc85 added this new repository to add helpers when packaging projectes based on the Go language. -
util-linux
, a collection of basic system utilities, Thaodan added symlinks forkill
andumount
. -
pvuorela updated the qmltypes file in various repositories with API changes or additions. This file is used by QtCreator for completion, highlighting…
- in
libcommhistory
, - in
libconnman-qt
, - in
nemo-qml-plugin-connectivity
, - in
nemo-qml-plugin-email
.
- in
App roundup
It’s been a tough week this week. People have been popping up on social media to announce the arrival of their Jolla C2 Community Edition phones, with their beautifully etched motifs and generous screens, while I’m left waiting for mine to arrive, at the mercy of international postal services.
While I wait for mine to arrive, what better way to spend the time than testing out some of the amazing apps that I might run on it when it does.
Which takes us directly to our first app, Paketti from Jyri-Petteri Paloposki (ZeiP). We looked briefly at the app back in September 2023 alongside a tranche of Jyri-Petteri’s other apps, all of which got updates at the time.
As the world became digital it was often predicted that physical postal services would whither and die, left behind by instant messaging and 3D printers. As it turned out, the shift instead triggered a growth in digital commerce, only increasing our reliance on delivery services. It turns out we still need physical stuff delivering! As the world shifts again, this time from digital to data, we find postal services across the world embracing this as another new opportunity. Data, originally captured for the purpose of improving efficiency, now allow me to track every movement of my C2 phone as it progresses across Europe and towards my letter box.
So it feels appropriate that I should be using Paketti on my current phone to track the arrival of my future phone. I’m using the backend from Posti, Finland’s national postal service, but Paketti also supports Matkahuolto, Hermes, La Poste, DHL and Bring. From the About page it’s nice to see that access to the different services has been contributed by different developers; it’d be great to see even more contributions for the many other services around the world.
The app is pretty straightforward: choose your service, enter your tracking code and you’re presented with the progress of your delivery. You’ll be offered up information with a level of detail that will depend on that provided by the delivery company doing the work.
The app is able to track multiple parcels simultaneously and you can select the “Update!” option to have the app send another request to check whether anything has changed. This is both a blessing and a curse. A blessing in that you can check for updates at any time. A curse in that it can drive you to distraction repeatedly requesting updates while anxiously awa/iting a new phone.
Paketti is at version 1.1.1, available from both the Jolla Store and OpenRepos. It’s a great app and, while I’d love for it to support even more services, it’s really up to the community of Sailish OS developers to contribute them to the app.
As you can probably tell, I’m easily distracted. So I need all the help I can get when it comes to focusing on the task at hand. Thankfully Mirian Margiani (ichthyosaurus) has developed an app to help with this. Based on the well-known Pomodoro technique, the Minidoro app gives you all the timers you need to make best use of your valuable effort.
The technique asserts that you should split your work into short intervals with shorter breaks in between. After a few rounds of this you take a longer break. The app allows you to configure appropriate durations for all of these stages (for example many people choose to work for 25 minutes followed by a 5 minute break).
There are several things that stand out for me with this app. First the design is very clean, rather beautiful and very Sailfish OS. At the top of the screen a new outline tomato icon appears after each round of work. A clock is displayed boldly in the centre of the screen. A few other icons appear, but all with nice design that’s in keeping with both the app and the operating system.
Second, there are more configuration options than you might expect, and thoughtfully chosen so that none of them feel redundant. Apart from the the durations of the timers, you can also control how your phone communicates with you: using notifications, sounds or vibrations. You can also control the strength of the vibrations.
Third, there are some really nice additional flourishes in terms of functionality. Along the bottom of the screen are a couple of neat icons with counters that increase when you tap on them. These can be used to capture external interruptions and internal interruptions during your focused work.
The latest version of the app is 1.1.0, which brings a whole host of improvements over previous versions, including cleaner graphics, suport for notifications and multiple translations into new languages. Minidoro is beautifully put together and available from both the Jolla Store and OpenRepos.
Next up is a rather unusual new app that comes in the form of BFF from Robert Meolic (meolic). You might wonder what BFF stands for. Best Friends Forever? Best Foot Forwards? In this case it’s Boolean Functions Forever! There’s a lot to talk about with this app, given it’s a smörgåsbord of fascinating choices. From the option of which tools to include to the wonderful colour scheme and unusual fonts. Although it takes a completely different approach to design compared to the usual Silica styling, somehow it still works nicely on Sailfish OS.
But let’s talk functionality. The fundamental purpose of this app is to take logical expressions (a combination of variables, ANDs, ORs and NOTs) and to simplify them. Expressions can be entered in one of two forms, either as a Karnaugh Map or a Truth Table. Karnaugh Maps arrange the n variables into a two-dimensional square grid with edges of length 2n/2. Each row or column represents one arrangement of the bits for half of the variables. Crucially the labels are chosen to ensure adjacent rows and columns differ by only a single bit at a time. Truth Tables on the other hand arrange the variables into a table with n + 1 columns (one for each variable plus a result) and 2n rows. Each row shows the inputs and corresponding output.
In both cases, tapping on a cell will cycle it through the values 1 (true), 0 (false) and X (don’t care).
Both the Karnaugh Map and Truth Table are linked, so that changing one changes the other. The Karnaugh Map is where the action happens: a clever algorithm finds the smallest set of rectangles that cover the values set to 1 and with edges of length a power of two. This represents a minimal formula for the logic, as shown in nice colours beneath the diagram. We get the same output under the truth table. Then on the final page we see the result from the Quine-McCluskey algorithm. This has the same aim: to find the simplest formula representing the outputs shown in the Truth Table. Quine-McCluskey works by finding implicants (combinations that give the output 1). In the first step these are just the same as the rows in the Truth Table, ordered to minimise the differences between adjacent rows. In subsequent steps, rows that differ in only one position are combined, eventually giving a minimal list of implicants.
In all cases we get the same result: the minimal formula representing the inputs and outputs, the equivalent of applying rules of logical inference until the formula is as simple as possible.
This may all sound a bit abstract, and in all honesty that’s part of the charm. But it does also have practical value if, say, you’re creating an electronic circuit. The simplest formula represents the fewest components, so taking the time to do the analysis can provide a worthwhile saving in terms of both time and cost.
Although I have to admit that’s not a scenario I often find myself grappling with, I still love this app. It’s put together with such care and attention. The representations of the algorithms are so vivid that I couldn’t help being drawn in by them and, accidentally learning something new in the process.
BFF is currently available at version 0.91 from the Jolla Store and Chum.
Our final app for this newsletter is also from Mirian Margiani (ichthyosaurus). The Dashboard app provides a widget canvas that you can configure and reconfigure to your heart’s content. Although a work in progress (Mirian calls it “at best beta quality”) it already has some nice initial widgets. There’s a clock that shows both analogue and digital representations of the time. Another tile that gives you the times of the most important solar events of the day (dawn, dusk, sunrise, sunset, etc.) and which includes a lovely graphical representation in its largest form. You can also add spacers to ensure things are laid out just as you want them. Two further widgets, both promising weather forecasts, are listed but currently non-functional.
The app offers a lot of promise: nice design, carefully crafted controls for widget configuration and a really nice cover design that allows you to cycle through each widget individually. What it really needs now is more widgets. There are, essentially, currently only two to choose from. With just a few more it could be a phenomenally useful app to have living on your homescreen.
Dashboard recently saw its first official release — at version 0.1.0 — to OpenRepos. The README in the source code repository includs a note from Mirian suggesting that the app’s not being actively developed. Despite this the git history shows it’s had numerous updates since 2022 when the code was first made public. So we’ll have to see what happens with this app. I can only hope it will continue to be developed and that it might attract some widget contributions from others.
Well, I have to say that playing with all these nice apps has successfully distracted me during the anxious wait for my C2 to arrive, even if only briefly. But there are some real gems here, well worth taking a look at. Now all I really need is a new phone to try them out on. Give me a second while I check my Paketti app once again…
Please feed us your news
Hope you enjoyed reading this community newsletter! Exciting times! As always, please do not hesitate to share your ideas, thoughts, or suggestion for future newsletter topics. This is your news!
Please do also join us at our community meetings on IRC, Matrix and Telegram. Next community meeting will be on the Halloween 31st October.