1. 3

    I currently use and love Notion. I really love the hierarchical nature combined with wiki-like links and data tables. It’s also slowly replacing Pocket as a truly-persistent storage of pages I care about reading (and linking to) later.

    I’d previously used Markdown files in Dropbox edited in Emacs or Byword (iOS markdown file editor app that could access Dropbox), TiddlyWiki (also stored in Dropbox), and Evernote.

    1. 2

      Yeah, I’ve been using Notion for a few months now. It’s pretty good. I’m super excited about the backlink support they recently added. I had been making heavily inter-linked notes and now everything got magically way more useful!

    1. 4

      Using a pack of raspberry pi just to feed sensor data to the cloud seems excessive.

      They’re probably running a fragile Linux stack in these. Neither the pi nor Linux are engineered for high reliability.

      The rpi is also unreasonably power-hungry for the task at hand.

      1. 18

        I think this is the wrong takeaway. Many folks, and this forum in particular, have hoped to see more boutique software and purpose-serving hacking, and this is a great example of just that! So they’re not running the power/cost optimized hardware, and the hw/sw stack is more fragile than may be desired, but for non safety critical systems I’d rather see people solving their own problems with a hacker spirit than procrastinating chasing perfect or giving up out of fearful superstition.

        1. 1

          I’d rather see people solving their own problems with a hacker spirit than procrastinating chasing perfect or giving up out of fearful superstition.

          Absolutely. And this is good for a Proof of Concept, for a first go at it by the inexperienced. But they shouldn’t stop there.

          Even the basic arduino boards would represent a major step forward, by doing away with unnecessary complexity of the software stack (Linux), drawing less than 10mA rather than 700+, and providing brownout reset.

          1. 7

            The hardware costs nearly the same (RPi’s are so cheap it’s small to begin with, and I assume you’ll need some kind of network board for the Arduino’s), the electricity costs from $0.004/day to $0.0001/day (assuming $0.15/kWh and that my pre-coffee brain did the math right), and take a few days to get working well. The main benefit would be, as you said, reliability increase, but how often does the current system fail?

            https://xkcd.com/1205/

            1. 1

              The main benefit would be, as you said, reliability increase, but how often does the current system fail?

              Nevermind, the “Keep Afloat” in the headline must have been plain sensationalism.

              I assume you’ll need some kind of network board for the Arduino’s

              For ethernet, sure. There’s “shields” that do that. But the assumption is wifi, which some arduino boards support as-is. Some kind of board could even be a tiny esp32 module. There’s third party arduino ide support for them, which would suffice for this trivial task.

              https://xkcd.com/1205/

              That’s a funny one. If there’s hacker spirit as the parent suggests, learning more is not even an issue. But in this case, and going by personal experience with this hardware (rpi), I can tell they’ll spend even more time solving problems caused by the setup than it would cost to do it anew with more appropriate hardware.

              But that’s probably a lesson they’ll have to learn from experiencing it themselves.

      1. 6

        It’s been said before, but Excel macros (followed by SQL) is the most successful programming language/paradigm. Every enterprise project I worked on was basically scaled up, but less flexible, Excel sheets on a web page.

        What does the future of that look like? Query terminals accessible to every employee? To every citizen of a nation? Scripts shared as easily as emails, forwarded to teammates who could use them? Dirt cheap web hosting for tons of micro apps?

        1. 4
          • HTML is the most universal if you have a solution for the backend
          • Qt if licensing is acceptable and up for a huge learning curve
          • WxWidgets
          1. 8

            Re. html, the overhead of a browser engine is pretty high. This would only really make a sense to run as a standalone desktop app, with some native glue for talking to the OS, so the universality isn’t much of an asset.

            How much of a learning curve are we talking with Qt? Is the python API (or any of the others) meaningfully different from the c++ API in context of that?

            1. 6

              How much of a learning curve are we talking with Qt? Is the python API (or any of the others) meaningfully different from the c++ API in context of that?

              Qt is much more than just a “GUI library”, it’s more of an “application framework”. Whether that’s a good or bad thing depends on your tastes and what you want to do.

              I always used the C++ docs when writing Qt in Python, the API is pretty similar and AFAIK there are no good docs for just Python. It works but you do need to make a mental translation.

              Personally I liked working with Python/Qt (more than e.g. GTK), but I found it does have a bit of a learning curve.

              1. 1

                What is the Python’s added value then? Is it only a binding (i.e. if I already have Python code, I can easily add GUI using the same language)? I used Qt only directly from C++ and it was relatively comfortable (including the memory management).

                1. 4

                  For many people programming in Python instead of C++ is a huge added value. I’m not interested in starting a “C++ vs. Python”-debate, but a lot of people simply prefer Python over C++ for all sorts of reasons (whereas others prefer C++, so YMMV).

                  1. 1

                    Then I understand is just as a binding. Which is perfectly OK. My intention was not to start another useless flamewar. I just wanted to know, whether the Qt+Python combination can offer something more than Qt itself when the developer is not much interested in Python nor C++ and both languages are for him just the way to create a Qt GUI layer of an application.

                    1. 1

                      Yah, I know you didn’t want to start a flamewar, just wanted to make it explicit :-)

                      And yeah, PyQt doesn’t really offer anything over C++ Qt other than the Python environment. So if you’re happy with that, then there’s little reason to switch (other than, perhaps, making external contributions a bit easier).

                      1. 1

                        Yep, that’s about what I was interested in knowing too. They said there’s a high learning curve, and I wanted to know if that only applied to the c++ api.

                2. 1

                  For how much, read one of the tutorials and see. People’s opinions differ. There’s much more, for example including a HTML displayer with the properties and javascript integration you want is orthogonal, but reading that will give you a feeling for the learning curve.

                  In my opinion, the other APIs are different but not meaningfully so.

              1. 2

                I write and maintain a lot of internal Bazel rules, and something I don’t see mentioned a lot is how the “providers” mechanism actually gives you a typed build system for your custom rules. For example, you can return a WizzBang provider from your Wizzy rule, and write another rule that only accepts WizzBang inputs, instead of only operating at the file level (and rules can return multiple types of providers, including built in ones).

                1. 1

                  Webpack does a lot of great stuff, but I have not had good luck finding clear explanations of how to extend the internals - there’s a lot of plumbing together random loaders off the internet and hoping.

                  Custom providers (combined with the existing support for typescript etc) sounds like it would be a great way out of the webpack configuration morass I’m currently in. Might have to take a deeper dive sometime.

                  I found https://docs.bazel.build/versions/master/skylark/rules.html#providers fairly quickly, but not a good high-level explanation of how you might use it for anything but the most simple cases.

                  1. 1

                    The key concepts are providers (just named key/value containers) returned from custom rules, depsets, DefaultInfo provider, and runfiles (a PITA, but read about them and defaultinfo, particularly from ctx documentation).