• Activity
  • Votes
  • Comments
  • New
  • All activity
  • Showing only topics in ~comp with the tag "open source". Back to normal view / Search all groups
    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. 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
    4. 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
    5. Looking for smallish feature suggestions for an open source project

      I'm thinking about increasing the level of my open source contributions a bit. Instead of searching blindly until I stumble upon an issue that: A) Piques my interest B) I feel somewhat qualified...

      I'm thinking about increasing the level of my open source contributions a bit. Instead of searching blindly until I stumble upon an issue that:
      A) Piques my interest
      B) I feel somewhat qualified to implement

      I figured I'd check with the tildes community. Is there any Open Source software that you use that is missing a feature/capability? Can you give a brief description of it (bonus points for links to an issue tracker with an open ticket :))?

      Can't of course promise anything will come of it, but if I do pick up your suggestion at least I'll give you a ping if I make any progress!

      7 votes
    6. Open source recommendations for a photo/post voting site?

      TLDR: I need a website that let's signed in users vote on each others photos, and stores that data on who voted for what in a database. Background I run a facebook group of about 2,000 members....

      TLDR:

      I need a website that let's signed in users vote on each others photos, and stores that data on who voted for what in a database.

      Background

      I run a facebook group of about 2,000 members. This group is designed for analog (any non-digital format) photographers to swap high quality artistic prints with each oter. The community was essentially dead and the admin wanted to throw in the towel so I took over. We've made progress, the group growth jumped by over 500% in the first month after I took over.

      Right now trading prints doesn't work well. People make a post using the facebook selling format, and those who are interested comment with the image they'd like to trade for. The problem is that the posts get limited visibility due to facebook's algorithms, and stale posts hang around. All of this reduces over all activity, and the majority of posts don't end up in a trade.

      My solution is to do a trade event with everyone participating at the same time. Since facebook doesn't lend itself to this I'd like to whip up a quick site for the event. My time is so limited these days I really don't have the capacity to build something from scratch, and the group certainly doesn't have any other developers to help out with it (it skews heavily on the older side).

      I'd like to find an open source project that lets users sign in (sign in using facebook would be a bonus) and upload/vote on images. After the voting closes, I'll write code to pair everyone up in a way that optimizes for everyone getting to make a trade. If Alice votes for Bob's image, and Bob votes for Alice's image, they would get paired up to make the swap.

      I feel okay writing the code to map out swaps, but I'm pretty terrible at web design and especially at front end design. I've looked across github, but I wanted to reach out and see if anyone could recommend something that I might of missed.

      I don't expect to have 2,000 members participate, I think it may be as few as under 100, so hopefully I won't need to worry about scale.

      Thanks in advance for the help!

      11 votes