what are we thinking about

pull/2/head
Oliver Kennedy 2023-05-11 20:43:27 -04:00
parent af03e94e38
commit 0c47bba2f7
Signed by: okennedy
GPG Key ID: 3E5F9B3ABD3FDB60
3 changed files with 158 additions and 12 deletions

View File

@ -0,0 +1,89 @@
---
author: Oliver Kennedy
---
It's been somewhere around a year with my Librem 5, and something like 3-4 daily driving a linux phone, so I figure it's time to do a quick recap of where things stand. My experience has been almost exclusively through Phosh (Mobian and then PureOS), so it's worth noting that UBPorts, Plasma Mobile, or SXMO might offer a better experience. There's also a new Gnome Mobile on the horizon, but that seems to share a lot with Phosh. Additionally, I've heard that the OnePlus 6 (which appears to have solid PostmarketOS support) may address some of the hardware limitations I currently face.
### The Big Picture
Compared to where the ecosystem was when I got my original Pinephone, there's been a mountain of progress. Progress continues, with major announcements every month or two. My current configuration has reached a point where I'm entirely happy with my phone. That said, I definitely would not recommend my setup to a non-technical person, and would still be concerned that it would be too many papercuts even for someone who knows what they're doing. Still, things are headed in the right direction.
### Day-To-Day Usage
##### Calls
My PPP still has issues with audio (calls or otherwise), but the Librem5 has been solid in this respect. Phone calls, speakerphone, all work well. It even seems to generally do the right thing when the phone is docked, picking the dock speakers over the internals for speakerphone. There's no built-in spam detection, which is a drawback, but I gather there are some external tools that provide it as an add-in. In short, it works as a phone.
Visual voicemail is also an option, but does require additional work on the user's part to install `vvmd`, and look up your carrier-specific visual voicemail settings. There's also an ongoing issue with T-Mobile, where the IMAP servers (yep, that IMAP) that [host their VVM data are misconfigured](https://gitlab.com/kop316/vvmd/-/issues/12). A fix is currently making its way downstream.
##### Text Chat
Chatty is a decent SMS app, with support for MMS. There are a few client-side [lag spikes](https://source.puri.sm/Librem5/chatty/-/issues/715) here and there, usually when trying to load a chat with a large number of pictures, but overall it's usable.
My other major chat protocol is Matrix. Element, in principle runs, but doesn't offer an electron build for arm64. In principle Chatty supports it, but support is [buggy](https://source.puri.sm/Librem5/chatty/-/issues/785). FluffyChat and Fractal-Next are both available, but the latter is still in development, and the former has an ongoing bug involving GPU access, Flatpak, and Flutter. That all being said, I recently revisited Nheko, and have so far been really happy with it. The UI is a bit quirky, but it works.
##### Web Browsing
Firefox has been usable since the beginning, with solid Arm64 support. Gnome Web is getting better, but still ends up being jittery on pages that FF loads without difficulty. My one gripe with Firefox is that, although there's a mobile-friendly stylesheet applied to the interface, it's still a bit buggy. Extension menus, for example, are unusable. Still, I haven't had any difficulty browsing web pages.
##### Alarm Clocks
My Librem has been waking me up reliably since September. There were some hiccups early on with my Pinephone [Pro], where Gnome Clocks wouldn't wake the phone from suspend. This was fixed a few kernel revisions ago, and now I'd trust both platforms to wake me up.
##### Music
There are a ton of Phosh-friendly music players. I used Lollypop for a while, and was pretty happy with it. Recently, Cantata has taken over (since I can also use it as a remote for my home stereo). Amberol is also quite nice (but leaves it up to you to organize your music).
##### Data Sync
SyncThing keeps most of my stuff synced between computers. No question about it, SyncThing is awesome. It fills the void left for me when Dropbox and I went our own separate ways. Most of the time, I don't even realize that it's running... it just works.
A few things (notably stuff I want to share) gets stored in a NextCloud instance. PureOS and Mobian both benefit from solid Nextcloud integration into the Gnome ecosystem here. Nextclout syncs Contacts, Calendars, Todos, and gives me quick access to my shared files.
Also a quick shout out for Valent. This is an implementation of the KDEConnect protocol that works with Gnome and Phosh. It integrates a lot of capabilities between devices. For example, with it running on two linked devices, media keys on one device will control a player on the other device. Similarly, if you open a web page or sms:/tel: link on one device, you can relay the link to the other device.
##### Tickets / Club Cards
Quick shoutout to an excellent [plugin](https://gitlab.gnome.org/World/Phosh/phosh/-/tree/main/plugins/ticket-box) for phosh that lets you make a bunch of PDF files accessible from the lock screen. I use this for a few frequent shopper cards, as well as tickets with QR codes. Bonus: I can keep the directory synced with SyncThing.
---
### Mostly There
##### Mobile Connectivity
LTE connectivity has improved massively since I started. Both the PP[P] and Librem5 used to have issues where the modem would spontaneously disconnect. With a recent kernel update, the Librem5 no longer has this issue at all.
##### Battery Life
The PureOS team has been hard at work on stretching the Librem's battery life. I can get a realistic 6 hours out of it now, which is enough that I don't feel like I need to keep the phone charging at all times. The PPP has 10+ hours of standby by comparison; it drains faster when in-use, but suspend is still an "in-development" feature on the Librem 5. The iMX8m also has a few anti-features that make power-management more difficult (e.g., it doesn't seem to have support for low power core idling). Still, once suspend lands, I expect this to stop being a concern.
##### Navigation
PureMaps is great. Navigation, directions, the whole bag. GPS on the other hand, is still a work in progress on the Librem5. There seem to be a few minor glitches in how the modem communicates GPS data back to the phone, so whether the phone gets a GPS lock on a given boot is a bit of a coin filp. I haven't tried it in a while, but the Pinephone Pro with Mobian seems to be better about GPS.
##### Camera
The camera app (Millipixels/Megapixels) is nice, and getting better. The PureOS folks just landed a self-tuning feature to the camera itself. The only reason I have 'camera' in the Mostly There column is because the camera hardware isn't exposed to userspace as a camera device. Millipixels can talk to the raw camera interface, but most other apps (e.g., video conferencing apps, web browsers, etc...) don't see a camera yet. Still, this is something their folks are hard at work on.
##### Calendaring
Gnome Calendar has some issues around time zone support. It's also not fully mobile-friendly yet. That said, there's an excellent [Phosh plugin](https://gitlab.gnome.org/World/Phosh/phosh/-/tree/main/plugins/upcoming-events) that puts a list of upcoming events on the lock screen.
##### Email
Geary is a reasonable email client. However, my org disables IMAP in Office365. That limits me to Evolution or Thunderbird, neither of which have mobile-friendly interfaces. I could get by with personal email, but thanks to a spate of spearphishing scams that my org gets regularly, signatures (which Geary doesn't support) are also a must.
### Not There Yet
##### Convergence
One of the biggest selling points of linux phones is the fact that they can be plugged into an external display/keyboard/mouse and run desktop linux apps. The biggest win here is that you, in principle, only need one computing device. Better still, you get continuity of state between interaction modalities: You can just grab your phone out of the dock and continue editing or reading while e.g., riding the bus. You can load a movie on your phone and then just connect to a projector.
SyncThing and Valent subsume a lot of these needs by allowing you to migrate state between devices dedicated to a specific interaction modality (files, and browser state, respectively). Valent in particular offers an interesting (if limited) form of convergence, by exporting device-specific capabilities (SMS, Calls, notifications, browser tabs, etc...) so that they can be accessed from a different device when the two are nearby. Still, it would be nice to reach a point where I can just start typing a text and then plug in a big screen and keyboard.
That all being said, I have occasionally tried to use my phone as a desktop replacement, and it has not stuck. I know several people who are successfully convergencing, but all of them have workflows built around the terminal. I can see that working. Unfortunately, the phone's 3GB of ram and internal GPU struggle to keep up with the workflows I've gotten used to on the desktop. e.g., Editing a LaTeX doc in SublimeText and compiling it is not unpleasant, but not as smooth as it is on my existing laptop or desktop. I likely would not use the phone for anything more significant. I gather from folks with a OnePlus 6 that the convergence experience is much better. While I expect a motherboard upgrade will be required first, I fully expect that we'll get to this form of convergence eventually.
What I'm less sure about is the Laptop/Tablet convergence story. The NexDock2 is a wonderful piece of hardware, but has some critical ergonomic limitations. First and foremost, the NexDock requires actual thought to set up. I have to pull it out, open the display, swing out the phone mount arm, attach the phone, dig out the USB-C cable, plug it in, boot up the dock, and then power on the phone. By comparison, with a regular laptop, I just pull it out. Second, mounting the phone on the dock destabilizes it. The Librem5's weight on the display destabilizes the friction-based hinges, making it difficult to use on a lap or in a moving vehicle. The device is decent in tablet mode, if a bit top-heavy due to the phone's weight. Honestly, these would all be reasonable trade-offs... but the big issue is that the NexDock is *not* lighter than a normal laptop. In fact, it's heavier than the Librem14, and about the same weight as my Framework. There really isn't a compelling reason for me to cart the NexDock around at the moment.
Most of the weight is in the battery and display, so I doubt there's a lot of room for weight savings. Rather, I think what needs to happen is someone figuring out the ergonomics of setting up and putting away the "laptop." Even just getting rid of the cable would be huge. One thought: Back in the mid 10s, Asus had a line of convergent phones called the Transformer. Here, you would put the phone into a slot in the back of the screen. You lose the phone's screen, but there's no faffing about looking for a display-compatible USB cable in your bag.

View File

@ -2,34 +2,90 @@
title: Research Projects
---
## <center><a href="mimir/index.html"><img src="https://vizierdb.info/assets/graphics/vizier.svg" alt="" width="266" height="106" /> VizierDB</a></center>
Vizier is a collaborative, multi-modal notebook environment for data exploration, curation, and analytics. As a data-centric notebook, Vizier allows users to easily manipulate data with a variety of different languages, as well as with a user-friendly spreadsheet interface. Vizier tracks the full version history of each notebook, helping users to understand what went wrong and why. Vizier also embeds functionality from Mimir making it easy to track the impact of data-errors on query results.
<h1 style="margin-bottom:40px; width: 100%; background: #ccc; color: #444; padding:10px; text-align: center; font-weight: bold; text-decoration: underline;">Active Projects</h1>
## <center><a href="https://vizierdb.info"><img src="https://vizierdb.info/assets/graphics/vizier.svg" alt="" width="266" height="106" style="margin-right: -70px; margin-left: -70px;" /> VizierDB</a></center>
Good data science requires constantly documenting everything, and that is just a pain in the butt. Vizier is a data science notebook that keeps track of what you've done, where your data comes from, and when you changed what. Plus, it's multi-modal, so users can easily manipulate data with a variety of different languages, as well as with a user-friendly spreadsheet interface.
------
## <center><a href="mimir/index.html"><img src="../assets/logos/mimir_logo_final.png" alt="" width="266" height="106" /></a></center>
Many analytics tasks are based on information that is initially incomplete, inconsistent, or simply used incorrectly. Existing strategies to help people cope with these sources of uncertainty often require heavyweight upfront organizational tasks (i.e., tagging, data-cleaning, or modeling). The Mimir project aims to streamline this process, making it more on-demand and intuitive.
Many analytics tasks are based on information that is initially incomplete, inconsistent, or simply used incorrectly. Existing strategies to help people cope with these sources of uncertainty often require heavyweight upfront organizational tasks (i.e., tagging, data-cleaning, or modeling). The Mimir project aims to streamline this process, making it more on-demand and intuitive.
------
<h1 style="margin-top:60px; margin-bottom:40px; width: 100%; background: #ccc; color: #444; padding:10px; text-align: center; font-weight: bold; text-decoration: underline;">What are we thinking about?</h1>
#### Micro-Kernel Notebooks [Vizier]
Each cell in vizier is executed in an isolated environment, a "micro-kernel". Microkernels open up a lot of cool stuff, but are slow.
**We're looking for tricks we can play to keep communications overheads low, and extract the best parallelism from the microkernels.**
* ["Microkernel Notebooks" at The Data Thread 2022](https://www.youtube.com/watch?v=BVHGcAyLcrY&list=PLqPVYeLJnT12-Roap9zdK9oCHiZ3AD_i3&index=9)
* ["Runtime Provenance Refinement for Notebooks" at TAPP 2022](/papers/2022/TaPP-ParallelPython.pdf)
#### Multiple Views of Code [Vizier]
It's common to use multiple tools (spreadsheets, editors, databases) in a single data science workflow, but what happens when you want to view the same code in different ways.
For example, Vizier already provides multiple views of a workflow, optimized for writing code, reading code, tracing data flow, and more.
**We're thinking about ways to represent computation abstractly in a form that's easily presented through a variety of different views.**
* ["The Right Tool for the Job: Data-Centric Workflows in Vizier" in IEEE DEB 2022](/papers/2022/IEEE-DEB-Vizier.pdf)
* ["The Exception that Improves the Rule" at HILDA 2016](/papers/2022/TaPP-ParallelPython.pdf)
#### Improving Spreadsheets [Vizier]
Spreadsheets suck at "big data", and aren't great for working with changing data.
**We're thinking about ways to take spreadsheets and make them into first-class tools for developing data science workflows.**
* ["Overlay Spreadsheets" at HILDA 2023](/papers/2022/HILDA-OverlaySpreadsheets-submitted.pdf)
#### Re-using Data Science Patterns [Vizier]
Simple things like unit conversions, distance computations, or zip code lookups occur everywhere, but aren't worth the hassle of pulling out into special functions.
**We're thinking about heuristics for extracting and labeling simple data transformations from python code, and ways to leverage these transformations in data search problems.**
* ["DataSense: Display Agnostic Data Documentation" at CIDR 2021](/papers/2021/CIDR-DataSense-long.pdf)
* ["LOKI: Streamlining Integration and Enrichment" at HILDA 2020](/papers/2020/HILDA-Loki.pdf)
#### Declarative Compilers
The optimizer is the part of a compiler that rewrites code into faster code. Optimizer construction is a bit of an art, particularly when it comes to making the optimizer run fast. However, if you think of the optimizer as a specialized database, common database optimizations can be used to optimize the optimizer.
**We're thinking about ways to re-engineer compilers using tricks developed by the databases community like incremental view maintenance and/or multi-query optimization.**
* ["TreeToaster: Towards an IVM-Optimized Compiler" at SIGMOD 2021](/papers/2021/SIGMOD-IVMForCompilers.pdf)
* ["Fluid Data Structures" at DBPL 2019](/papers/2019/DBPL-FluidDSes.pdf)
#### Machine Learning on Small Data [Mimir]
A small dataset might be enough to train a simple model to make predictions about some subpopulations, but not all of them (the "curse of small data"). Unfortunately, once the model is trained, there's often no way to tell which subpopulations are viable.
**We're thinking about ways to incorporate completeness information into machine learning models, so that the model can answer with "I don't know".**
#### Mobile Governors Suck [PocketData]
Mobile phone CPUs can slow down to save power. An OS component called the 'governor' chooses when and how this happens. Turns out most governors on Android are over-engineered, making predictions based on useless data.
**We're thinking about how to make simpler and smarter mobile governors**
------
<h1 style="margin-top:60px; margin-bottom:40px; width: 100%; background: #ccc; color: #444; padding:10px; text-align: center; font-weight: bold; text-decoration: underline;">Older Projects</h1>
## <center><img src="../assets/logos/astral.png" alt="ASTral" width="43" height="43" /><a title="ASTral" href="astral/index.html">ASTral / Just In Time Data Structures</a></center>
ASTral is a database that uses a combination of programming language, program optimization, and data structure techniques to create and maintain self-adapting physical layouts that rapidly react to changing workloads.
------
## <center><img src="../assets/logos/PocketData.png" alt="PocketData" width="43" height="43" /><a title="PocketData" href="pocketdata/index.html">PocketData</a></center>
The PocketData project explores how smartphones make use of embedded databases in the interest of designing new energy-efficient, low-latency, developer-friendly data management tools for pocket-scale data.
------
<h1 style="margin-top:60px; margin-bottom:40px;">Older Projects</h1>
## <center><img src="../assets/logos/EttuLogo.png" alt="Ettu" width="43" height="43" /><a href="insider-threats/index.html">Insider Threat Detection</a></center>
One of the greatest threats to a the security of a database system comes from within: Users who have been granted access to data using it in a malicious or illegitimate way. Our goal is to develop new types of statistical signatures for a user or role's behavior as they access a database. Using these signatures, we can identify non-standard behvaior that could be evidence of malicious activity.
------
## <center><a href="http://www.dbtoaster.org"><img src="../assets/logos/dbtoaster-logo.gif" alt="dbtoaster-logo" width="174" height="80" /></a></center>
<a href="http://www.dbtoaster.org">DBToaster</a> is an SQL-to-native-code compiler. It generates lightweight, specialized, embeddable query engines for applications that require real-time, low-latency data processing and monitoring capabilities. The DBToaster compiler generates code that can be easily incorporated into any C++ or JVM-based (Java, Scala, ...) project.
@ -44,3 +100,4 @@ The <a href="http://maybms.sourceforge.net">MayBMS</a> system (note: MayBMS is
MayBMS stands alone as a complete probabilistic database management system that supports a powerful, compositional query language for which nevertheless worst-case efficiency and result quality guarantees can be made. The MayBMS backend is accessible through several APIs, with efficient internal operators for computing and managing probabilistic data.
<em>MayBMS was started at Saarland University by the research group of Christoph Koch (now at EPFL).  MayBMS has turned into Sprout, and is being developed at <a href="http://www.cs.ox.ac.uk/projects/SPROUT/index.html">Oxford</a>.</em>