• Activity
  • Votes
  • Comments
  • New
  • All activity
  • Showing only topics with the tag "open source". Back to normal view
    1. Tkinter vs PyQt vs wxPython vs PyGtk vs Kivy: Too many options with nuanced pros and cons causes analysis paralysis and difficulty in taking decisions

      The good things about Python which make it a very ubiquitous language worthy of learning (platform agnostic, elegant syntax, portable standard library and ecosystem packages, etc.) unfortunately...

      The good things about Python which make it a very ubiquitous language worthy of learning (platform agnostic, elegant syntax, portable standard library and ecosystem packages, etc.) unfortunately also has this weird side-effect of causing tremendous pain when it comes to choosing which library or toolkit to use for say, a side project for a Desktop GUI app.

      It seems as if researching about these Python GUI toolkits, finding out their pros and cons and nuances has itself become a dedicated project of its own and I have almost forgotten about the actual app and user story for which I was looking them up in the first place!

      Though I'm almost certain at this point that Kivy isn't something I'm going to use. I don't want my app to run on android, at least not presently. And even if a need arises in future, a more efficient path there is to use something like Java with an Android IDE.

      Plus a 100% pure python toolkit means some sacrifice in performance. With PyQt and PyGtk, you can get the raw performance of underlying C++ and C runtimes respectively which they wrap.

      Now tkinter and PyQt is where I'm really confused and not able to decide which one to use. The pros of tkinter are highly appealing to me, to be honest. The fact that it comes built-in with python and right out of the box - which incidentally also frees you of all the licensing hassles unlike PyQt/PySide stack is also a great plus. Though this particular project is going to be open source anyway, so it shouldn't matter much. But in the long run and generally speaking, it's clear that one has the licensing advantage here.

      Secondly, tkinter also has the advantage of being smaller in size. Since it comes built-in, the final portable EXE size would perhaps be as small as that of just the portable python interpreter using PyInstaller or something?

      But on the other hand, smaller size doesn't really matter in the age of gigabyte high-speed Internet, does it? And I've seen some PyQt projects too that seem to create smaller bundles with efficient packaging, wonder how they are able to do that!

      One criticism of tkinter I came across is that while getting started with a Hello World GUI is easy, making something non-trivial soon leads you down a rabbit hole which is filled with messy and hacky workarounds. For example, there isn't a native or built-in support for creating a system tray icon for your app which is considered pretty much a standard feature for desktop GUI apps these days. Even for adding this trivial feature to your app, you must install a third party package called pystray which isn't a very thrilling experience at all. Imagine what all you'll be going through if you want to implement say a complex data grid with dropdown widgets or a complex tree view widget.

      But PyQt, on the other hand, also has its own set of criticisms. For starters, since the core toolkit is written in C++, the Pythonista must hack their way through all the object orientedness mandated by the core libraries in ways that don't seem very pythonic. For example, you can't pass a simple tuple with (x,y) co-ordinates for a widget location or size, you must find the corresponding widget class such as QtSize or whatever to be able to do that.

      This is what I got from my reading and youtubing so far. I don't know how hard this usually is in practice. Coming from a C# and Java background, I don't think it should be for me. But I'd like to know from more experienced Python programmers who have traversed both these paths (tkinter and PyQt) - which path is better as a learning investment in the long run?

      17 votes
    2. GPL or Apache license for an upcoming PySide2 project?

      Afternoon Folks, For my upcoming side project (for which PySide has been aptly chosen!), a desktop productivity app with features like milestone tracking, brainstorming, some motivational stuff,...

      Afternoon Folks,

      For my upcoming side project (for which PySide has been aptly chosen!), a desktop productivity app with features like milestone tracking, brainstorming, some motivational stuff, etc., I'm somewhat confused about the licensing part.

      I was decided on Apache 2.0 license so far as I like their focus on merit based process, plus they actually seem to create a ton of software as an organization, it's not just a license. I like the GPL philosophy too but I'm more of a utilitarian than philosopher and the GPL folks seem to be ever more preachy about Stallmanian ethics than about the technicality of coding programs and developing apps (where I'm more interested as a utilitarian/engineer).

      But it seems I may have to bite this thing and go with GPL here considering that though PySide2 itself is LGPL, it turns out that some underlying core Qt components are indeed still GPL licensed, these are addons such as QtCharts which I'm definitely going to need for displaying charts in my GUI. Unless there is a way to use matplotlib effectively with PySide2 which I don't know about?

      Being a utilitarian engineer, I'm a pragmatist too and in that sense, won't really mind whatever license is used in the end, as the end goal here is to create something useful for the human's desktop, not to get intertwined in open source licensing debates.

      I have a slightly longer term vision with this project and all I want is that going forward, I shouldn't be restricted from using some useful component or tool or library just due to licensing issues. From that perspective, are permissive or copyleft licenses a better candidate to license your open source projects? And which one would you suggest?

      11 votes
    3. Introducing Backtick API: An open-source, unofficial Tildes API

      Hi everyone! Today I am releasing Backtick API, an unofficial Tildes API. I originally wrote it to power Backtick but quickly realized that it could be useful for other clients and projects that...

      Hi everyone! Today I am releasing Backtick API, an unofficial Tildes API. I originally wrote it to power Backtick but quickly realized that it could be useful for other clients and projects that require Tildes data. The project is open-sourced, both because I would love community contributions and because I want to make the project as transparent as possible.

      Q: Does it require or store any user credentials?

      No. All the endpoints that are implemented scrape publicly available data that do not require any user credentials.

      Q: Will this overload Tildes?

      To prevent Backtick API from being a nuisance to Tildes, the code caches calls to Tildes for a short period of time. Depending on usage, it should reduce the number of calls to Tildes (vs a client querying Tildes directly).

      Q: How can I use it?

      A hosted version of the code is available through RapidAPI here: https://rapidapi.com/asnewman/api/backtick-api

      Q: Are there any limitations?

      To prevent the project from being abused and becoming a financial burden on myself, I'm using RapidAPI to manage usage. There is a generous free tier and a reasonably priced paid tier which will be used to cover server costs. In addition, I will be donating a portion of the paid plan revenue (my goal is 50% but will depend on load and subscription count) directly to Tildes via Github Sponsors. It's really important to me to keep this project and Tildes as sustainable as possible. I really would love to provide everything for free, but unfortunately, there are countless examples where that doesn't work out down the road.

      Of course, if you do not want to use the hosted version, you are welcome to deploy the code yourself!

      Q: Isn't scraping prone to breaking?

      Yes! Users beware! Obviously, I will try my best to fix things if the Tildes code changes in a way that breaks Backtick API, but it's definitely a possibility.

      Q: Why not just work on and contribute to creating an official Tildes API?

      An official Tildes API will always be better than something like this and I look forward to when/if it gets implemented. That being said, I'm choosing the route that would be the quickest to continue the development of the Backtick mobile app. In addition, it's also the choice that is most fun for me. To work on a Tildes API, if the powers that be even want to have one, would require lots of coordination and codebase learning, something that will take a lot of time. I highly commend anyone who chooses to take on that task, but I do too much of that kind of work for my real job 😂


      Please report any issues or feature requests through Github, this post, or the Backtick Discord server. Finally, I just want to thank everyone in the community for all the great conversations I've had, for providing helpful feedback for Backtick, and for creating a place on the internet that I very much enjoy being a part of 😊

      59 votes
    4. Open-sourcing some Tildes-related code

      Hello! Some of you may know that I have been developing an iOS client for Tildes. I’ve seen other devs like @wababa and @talklittle also working on awesome apps, and have seen some discussion...

      Hello!

      Some of you may know that I have been developing an iOS client for Tildes.

      I’ve seen other devs like @wababa and @talklittle also working on awesome apps, and have seen some discussion there around collaborating on some of the core parts (scraping the website, etc.).

      I’ve also been in touch with @efraimbart, who is working on the awesome Everything protocol project.

      I’m sure there are other devs out there that I haven’t seen, and this post is a call-out for all of you.

      Until an API is available, any similar project will face the same initial blocker: needing to scrape the website for data.

      Is there any interest from the community on collaborating on that part? For example, developing a public library that encapsulates all of the interactions with Tildes and any client can talk to with a consistent API. Or, even better, collaborating on an official API for Tildes (which is, of course, itself an open-source project).

      To that end, I’ve released some of the code I use to accomplish this in Surfboard. Maybe it can help someone build an iOS client, or inspire some of us to build a more generic solution :D. It’s far from perfect or complete, and isn’t even an actual package you can just import and use at this time, but at the very least it documents many of the endpoints and interactions.

      Have a great weekend :)

      88 votes
    5. Book writing self-hosted solutions?

      I'm big into self-hosting and recently getting back into writing as an additional hobby, cuz one can never have too many, right? Anyway, I am looking for a writing organization tool like...

      I'm big into self-hosting and recently getting back into writing as an additional hobby, cuz one can never have too many, right? Anyway, I am looking for a writing organization tool like Manuskript, Dabble, or Scrivener that is both open source and self-hosted.

      Essentially, I would just like something that I can organize my thoughts and occasionally write in, but be able to access it from all my devices - desktops, laptops, phones, tablets, etc. It seems like most of the solutions I've looked at are limited to a single device or cloud functionality is locked behind a paywall. Of course, I could just use a self-hosted wiki site for cloud editing/organization, but I'd like something more oriented toward writing if anybody has any ideas. Thanks!

      26 votes
    6. Volunteer software developers for open source projects

      Where do you find volunteers to help with open source projects? Such as: https://www.codeshelter.co https://hacktoberfest.com https://summerofcode.withgoogle.com For example, with KeenWrite, I'm...

      Where do you find volunteers to help with open source projects? Such as:

      For example, with KeenWrite, I'm looking for help help with a specific feature that could be applicable to a wide audience (i.e., academia and technical writers). The lion's share of the effort for cross-references would be an extension or change to the flexmark-java library: parsing a de facto standard cross-reference syntax, rather than direct changes to my text editor.

      7 votes
    7. Best Linux Distro for gaming/noob

      Hey y’all. Recently picked up a Cyberpower prebuilt. Looking to install a Linux distro on it for gaming. Currently have Ubuntu on my laptop, so I’m not a total noob, but my experience is still...

      Hey y’all. Recently picked up a Cyberpower prebuilt. Looking to install a Linux distro on it for gaming. Currently have Ubuntu on my laptop, so I’m not a total noob, but my experience is still low. Not a big fan of having to use the terminal. Any distros y’all would recommend? Am leaning toward Pop_OS or SteamOS.

      7 votes
    8. Free and/or open-source software alternatives for churches

      I've been seeing some cool software in the church space lately with lots of fancy bells and whistles that handle many different aspects of running a church (social, presentation, tithing, etc.)....

      I've been seeing some cool software in the church space lately with lots of fancy bells and whistles that handle many different aspects of running a church (social, presentation, tithing, etc.). However, not all churches, especially small ones, can afford them or have members savvy enough to set it all up and maintain/operate them. I thought this could be a cool thread for free and or open source software that churches can use can use (Does not necessarily need to be design specifically for churches).


      EDIT
      Here is a list of paid examples:

      • Renewed Vision
        • ProPresenter
        • ProVideoPlayer
        • ProVideoServer
        • Scoreboard
        • ProContent
      • Microsoft Office
        • PowerPoint
        • Excel
      • Google
        • Slides
        • Sheets
        • Forms

      Here is a short list of FOSS alternatives:

      • Free Show
      • Owncast
      • Rock RMS
      • Choyr
      • OBS
      • OpenLP
      • WorshipTools
      21 votes