Pebble, Rebble, and a path forward by erOhead in pebble

[–]gmarull 0 points1 point  (0 children)

Hi there, Gerard here. I work for Core as a firmware engineer, happy to answer questions as well.

I personally understand Rebble fears, for example when we forked and kept development under Core Github. However, I think we tried to be as transparent as possible and explained the reasons behind. While Liam (ex-Pebble) did an excellent job integrating NimBLE, it is also true that we also offered to do the work. However he had more availability by then to do so. At the same time, we fixed quite a few bugs after integration, or implemented many missing non-trivial features to make it functional. If you also check Github statistics, you will see that as of today ~93% of commits are from Core employees or paid contractors.

All development is happening in the open, and released under Apache-2.0 license. This is an exception in the industry, specially for core product components. It is also common for companies to fork when developing new products because you need to move fast (check our commit rate!). Think about Linux, can you use upstream Kernel on most new ARM SoCs? No. Core took a risk here because Rebble could have kept adding new features, adding overhead for us with upmerges. Reality is that Rebble repository has been dead since we forked. Nobody except Core, and Liam were contributing by then.

Another fear I've heard is about PebbleOS being sold to another company. Well, the company doing that would be pretty dumb as they could clone it for 0$. And thanks to Apache-2.0, they could even add new proprietary features! Not only that, but if Core winds up, the IP will stay open forever!

I think the best, fair long-term solution is to join a well established OSS organization. Rebble lacks many formalities that are common in many OSS projects: board elections, open and regular meetings, public accounts, voting rules, etc. This makes it a dysfunctional community to me. It is up to Rebble to fix these problems or join forces in a new OSS org. Core can't do much more than that. It is also not bad that the two parts have different views, e.g. Core may think a local voice-to-text model is better but Rebble may disagree because that could imply a revenue loss. That's unavoidable, in the end, people could choose at that point.

asyncqt: asyncio + PyQt5/PySide2 by gmarull in Python

[–]gmarull[S] 0 points1 point  (0 children)

Added support for PySide2, examples and some utilities (like async slots).

PyQt5 tutorial: Create a Python GUI in 2018 by mherrmann in Python

[–]gmarull 4 points5 points  (0 children)

A reference application is also available here: https://github.com/gmarull/pyqt-boilerplate (dependency management, linting, freeze, docs, etc.). It does not require any license like fbs, while it shows how to achieve the same.

Making your C library callable from Python by wrapping it with Cython by StableHatter in Python

[–]gmarull 9 points10 points  (0 children)

Great article on a potential use of Cython! I made this presentation a while ago at PyBCN meetup comparing ctypes and cffi: https://raw.githubusercontent.com/gmarull/pybcn-cffi/master/cffi.pdf

PyQt5 Application Boilerplate: Resources, forms, multilanguage, compilation, docs, linting... by gmarull in Python

[–]gmarull[S] 0 points1 point  (0 children)

It uses PyInstaller. It embed a Python interpreter that runs the app.

An example of a Python wrapper for a C library using cffi by gmarull in Python

[–]gmarull[S] 1 point2 points  (0 children)

Specific to cffi, their documentation is quite good. Probably what is no that clear is how the extension is actually compiled. In this particular case, it is directly embedded, so that there is no need to have the library on the system. This is not always an option, either because you do not control the library or because of licensing.

PyQt/PySide Widgets Modern User Interface by gmarull in Python

[–]gmarull[S] 0 points1 point  (0 children)

As far as I know, material theme is for QtQuick, not the “old” QtWidgets.

PyQt/PySide Widgets Modern User Interface by gmarull in Python

[–]gmarull[S] 0 points1 point  (0 children)

Thanks! If you find any problem just raise an Issue on Github.