Join devRant
Do all the things like
++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatar
Sign Up
Pipeless API
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple API
Learn More
Search - "gui library"
-
Let the student use their own laptops. Even buy them one instead of having computers on site that no one uses for coding but only for some multiple choice tests and to browse Facebook.
Teach them 10 finger typing. (Don't be too strict and allow for personal preferences.)
Teach them text navigation and editing shortcuts. They should be able to scroll per page, jump to the beginning or end of the line or jump word by word. (I am not talking vi bindings or emacs magic.) And no, key repeat is an antifeature.
Teach them VCS before their first group assignment. Let's be honest, VCS means git nowadays. Yet teach them git != GitHub.
Teach git through the command line. They are allowed to use a gui once they aren't afraid to resolve a merge conflict or to rebase their feature branch against master. Just committing and pushing is not enough.
Teach them test-driven development ASAP. You can even give them assignments with a codebase of failing tests and their job is to make them pass in the beginning. Later require them to write tests themselves.
Don't teach the language, teach concepts. (No, if else and for loops aren't concepts you god-damn amateur! That's just syntax!)
When teaching object oriented programming, I'd smack you if do inane examples with vehicles, cars, bikes and a Mercedes Benz. Or animal, cat and dog for that matter. (I came from a self-taught imperative background. Those examples obfuscate more than they help.) Also, inheritance is overrated in oop teachings.
Functional programming concepts should be taught earlier as its concepts of avoiding side effects and pure functions can benefit even oop code bases. (Also great way to introduce testing, as pure functions take certain inputs and produce one output.)
Focus on one language in the beginning, it need not be Java, but don't confuse students with Java, Python and Ruby in their first year. (Bonus point if the language supports both oop and functional programming.)
And for the love of gawd: let them have a strictly typed language. Why would you teach with JavaScript!?
Use industry standards. Notepad, atom and eclipse might be open source and free; yet JetBrains community editions still best them.
For grades, don't your dare demand for them to write code on paper. (Pseudocode is fine.)
Don't let your students play compiler in their heads. It's not their job to know exactly what exception will be thrown by your contrived example. That's the compilers job to complain about. Rather teach them how to find solutions to these errors.
Teach them advanced google searches.
Teach them how to write a issue for a library on GitHub and similar sites.
Teach them how to ask a good stackoverflow question :>6 -
!Rant
Designer decide to have a meeting with stakeholders about UX/UI workflow for control panel of our new embedded system (no framework, no library, gui is bit per bit rendered on frame buffer).
A week later, still nothing on my table, not a mail, not a call. Meanwhile I wrote a framework, the control system, renderer, and messaging queues between tasks.
Wrote some widgets, a layout system and a view swtching mechanism, and a separate stack control to use a "back" button.
Now I am stuck for I do not know what should happen when clicking on various (non obvious) items on the touchscreen.
Fine, I'll ask the designer.
"Oh, I will write the workflow next week" (ETA time, 2 weeks. Seriously? You take a week to draw on Adobe Illustrator 20 screenshot with text and I have another week to write it from scratch in C?)
Ok, while you write it, just tell me what should happen when I click an active item.
"Well, we didn't talk about that. We just decided the colour of the icons on the screen..."
For fuck sake...8 -
My first dev project was 6 years ago in which I made a fucking gui application in c++ using fucking TurboC++.
And used no gui libraries. Used to draw circles/rectangles/pixels right on screen using graphics.h library
Was fun though3 -
Just found out about Yue, a GUI library for Node.js, Lua and C++ (and owners of the "gui" package on npm).
It is so awesome! The RAM usage is so low compared to Electron! Of course it has its limitations and doesn't use HTML + CSS + JavaScript, but you can still build really good applications with it!
I'll show you what I'm making at the moment soon, so stay tuned!
Anyways I've built the same application in Electron and Yue, here's the comparison of the RAM usage:16 -
would software product companies plz start describing what the product *actually* does on their homepages? if u say ur product/framework/tool will help me leverage this or collaborate that, it's an almost zero entropy statement, because everyone says so. Are u selling coffee or a .net gui library? because both can help me make my software better and leverage whatever it's supposed to leverage .. so, pleaaase, just say what ur product does, if that doesn't sell it, using hyped catch all phrases won't either ...
oh, and stop calling ur products somethingfy or somethingly .. just stop -
So here I am sitting on my dusty laptop gaming laptop (because supposedly it would offer me better performance in compiling code and working with CUDA according to the people above me) at a research institute where I just started working at. I am told that there are some issues with the code and that it fails to build on Windows with MSVC that ships with Visual Studio 2017 and later.
I poor some hot tea from my insulated bottle I brought from home and start reading.
I look in this header file and what do I see - a custom uint24_t struct. Interesting...
I keep sifting through the code base. I find some functions that check and change Endianess. Ok, but the software is developed, built on and runs only on Win7 and later desktop systems. Never mind...
Further I find a custom "allocator" that is used throughout the whole code base. It has three inline static class member functions: allocate, copy and deallocate plus some private constructors. And these just wrap around the standard new and free calls. Some flavours of this class actually only deallocate (with a comment above them: "This allocator does not allocate. HANDLE WITH CARE!!!", which is btw the only "code documentation" I have managed to find).
But wait! What is this? A custom thread and mutex. Oh, and string, and vector.
Further down the rabbit hole I find a custom math library with a matrix class that does not support multiplication between a matrix and a vector. Perhaps not a use case I guess...
I continue and come across some UI-related calls. Interesting, I wonder what they are using as a framework. Oh, my...We have an extensive GUI custom framework written from scratch (drawing buttons and all).
All of this is to load an OBJ file and render it on the screen on a standard Windows PC in some way.
Very nice... ;_;1 -
Have been using redis for my new system and wanted to try some gui, so I stumbled on "redis desktop manager", it supports ssh tunnels, privatekeys and more, great isn't it?
BUT IT SAVES YOUR FUCKING PLAINTEXT PASSWORD AND PATH TO YOUR PRIVATE KEY IN %USER%\.rdm\connections.json
WHAT THE FUCK, fucking ask that password during connection, don't fucking save it in plaintext and give an attacker literally the path to my key, wanted to PR it, but fuck c++, probably thats why he doesnt have it, because hes just using some library, so he doesn't have to fuck with the actual implementation of it.2 -
My last company had a code base originating in the 90's and they still write most parts of the GUI with a library that is a thin layer on top of Win32 API, with a self-rolled "ORM" for DB access (with LOTS of enums) and all that with >2million lines of C++ code. The code includes at least two implementations of std vector and std:list. One of which is even *named* std::vector. Feels good remembering that I have left that behind2
-
I'm very angry at C# 😡 (and java in some degree). Recently I decided to create huge project in C#. (It is my favorite launguage now because of great VS2017 its features, lib and such). I used windows form app in order to make pretty gui for this program. Everything worked fine, but i decided to implement some 3d rendering system in order to display grafs in 3d, oh how foolish was I.
Ok so what are my options?
1.DirectX9 -> abandoned by microsoft, they say its ded so nope.
2. DX11 -> great! i even can use sharpdx or simpledx to use it! oh wait, what is that? INVALID DX CALL
(in demo code)Damit!
3.OpenGL -> obsolete, lib non existent.
4. Library that comes with .NET -> WFP only sorry!
(i found some dogdy tutorials on yt for dx11 but they need .net 2.0 really?) 😐
In that moment i decided to swich to java. (because Java c#_launguage = new Java("microsoft");)
After 1 day of instaling eclipse and 2 more to install the newest jdk MANUALY i realized that java isn't that easy to use as C#, because:
- no dynamic type-> HUGE PAIN i cant use a single list to store everything buuuu!
-console? yes but its burried inside some random lib and its not consistent with every java version!
-gui editor similar to VS one? oh you need to create it from scrach!😫
Well at lest i can render things. So maybe java will render suff as another tool in my app? Nope pipes NON existent, we need to use sockiets! (unity pipe plugin was easier! worked but it was SLOW)
Ok so after few more days of struggling i managed to render simple graf using directx9 in my original C# project that works fine.. 😥 I only need to create a lib to wrap in and we are done!
Why can't companies create a laungage that will have ALL the features i need? Or at lest give me something like pipes that work in every laungage that will be helpful!
I know it is sometimes stressful to be a dev. But when your program works 😀 that is great feeling! Especialy when you learned to code yourself like me 😁. (student before a university, that lives in small abadoned town)6 -
Recently I discovered p5.js library and I can't believe that I was writing hundred lines before to make a fcking interactive GUI. The best part: it's based on Processing.7
-
Today, I have installed/uninstalled a combination of [windows 7, arch linux, dual-boot] a total of 9 times...
I wouldn't be surprised if my 120G SSD fails next week
It all started when I had to whip up a GUI-wrapped youtube-dl based program for a windows machine.
Thinking a handy GUI python library will get it done in no time, I started right away with the Kivy quick-start page in front of me.
Everything seemed to be going fine, until I decided it would be "wise" to first check if I can run Kivy on said windows machine.
Here I spent what felt like a day (5 hours) trying to install core pip modules for kivy.. only before realizing my innocent cygwin64 setup was the reason everything was failing, and that sys.platform was NOT set to "win32" (a requirement later discovered when unpacking .whl files)
"Okay.. you know what? Fuck........ This."
In a haze of frustration, I decided it was my fault for ever deciding to do Python on windows, and that "none of this would've happened if I were installing pip modules on a Linux terminal"...
I then had the "brilliant" idea of "Why don't I just use Linux, and make windows a virtual machine within, for testing."
And so I spent the next hour getting everything set up correctly for me get back to programming.... And so I did.
But uh... you're doing GUI stuff, right? -> Yeah...
And you uh.. Kivy uses OpenGL on windows, doesn't it? -> Yeah..?
OpenGL... 2.
-> Fuck.
That's when I realized my "brilliant" idea, was actually a really bad prank. Turns out.. I needed a native windows environment with up-to-date non-virtual graphics drivers that supported at least OpenGL2 for Kivy GUI programs!
Something I already had from square 1.
And at this point, it hurts to even sigh knowing I wasted hours just... making... poor decisions, my very first one being cygwin64 as a substitution for windows cmd.
But persistent as any programmer should be in order to succeed, I dragged my sorry ass back to the computer to reinstall windows on the actual hardware... again.
While the windows installer was busy jacking off all over my precious gigabytes (why does it need that much spaaace for a base install??? fuck.). I had "yet another brilliant idea" YABI™
Why not just do a dual-boot? That way, you have the best of both worlds, you do python stuff in Linux, and when it's time to build and test on the target OS, you have a native windows environment!
This synthetic harmony sounded amazing to the desperate, exhausted, shell of a man that I had become after such a back-breaking experience with cygwin
Now that my windows platter with a side of linux was all set-up and ready-to-go, I once again booted up windows to test if Kivy even worked.
And... It did!
And just as I began raising my victory flags, I suddenly realized there was one more thing I had to do, something trivial, should take me "no time" to do, being in a native windows environment and all.................... -.- (sigh)
I had to make sure it compiles to a traditional exe...
Not a biggy, right? Just find one of those py2exe—sounding modules or something, and surprisingly enough, there was indeed a py2exe—sounding module, conveniently named... py2exe.
Not a second thought given, I thought surely this was a good enough way of doing it, just gonna look up the py2exe guide and...
-> 3 hours later + 1 extra coffee
What do you meeeeean "module not found"? Do I need to install more dependencies? Why doesn't it say so in the DAMN guide? Wait I don't? Why are you showing me that error message then????
-------------------------------
No. I'm not doing this.
I shut off my computer and took a long... long.. break.
Only to return sometime the next day and end up making no progress, beating my SSD with more OS installs (sometimes with no obvious reason to do so).
Wondering whether I should give up Kivy itself as it didn't seem compatible with py2exe.. I discovered pyInstaller, which seemed to be the way Kivy wants exe's to be made on windows..
Awesome! I should've looked up how Kivy developers make exe's instead of jumping straight into py2exe land, (I guess "py2exe" just sounded more effective to me then)
More hours pass, and you'd think I'd have eliminated all of my build environment problems by now... but oh, how wrong you'd be...
pyInstaller was failing, and half the solutions I found online were to download some windows update KB32946..whatever...
The other half telling me to downgrade from Python 3.8.1 to Python 3.8.0000.009 (exaggeration! But you get the point)
At the end of all that mess, I decided it wasn't worth some of my lifespan, and that maybe.. just maybe.. it would've been better to create WINDOWS GUI with the mother fuc*ing WINDOWS API.
Alright, step 1: Get Visual Studio..
Step 2: kys
Step 3: kys again.6 -
So this is my conversation with my friend today, I feel so dumb.
*out of curiosity, after seeing his PC application*
me: Hey bro what make the GUI so simple what you use?
friend: theek hai.
me: Seriously bhai, what you use?
friend: I just told you ! I said theek hai!
me: *confused and thinking,*, what library for which language ?
friend: python bro.
me: *finally realise* you mean TK? omg..
friend: that's I was saying bro.
well i messed up hindi and english what is wrong with me?4 -
Linux is great - to tinker, to pull in all your FOSS, mess around...
But it's so fucked up, if you actually build and maintain a product on it, i.e. try to distribute s.th. in binary for money even. It's just not intended. If you offer your code for free, you can always say: "Ah, just compile it yourself. You might need these 29 dependencies, of which 2 are not even checked by configure, oops, and now it crashes, maybe in that qt library version, you picked there's still a bug?.. you know, it worked on my machine, sorry."
But if you sell it, it better install and run! And even if you target only the main distros of all that fragmented Linuverse - let's say, Debian, Ubuntu, RHEL, CentOS, Fedora, and if you're in Germany OpenSuSE and SLES, you'll start to see the crap of work you're up with. What you could try is to orchestrate a docker fleet with one container per distro, where you take the oldest version you still support compile a newer gcc there (to at least have C++11) and all your third party libs and then hope the resulting binary runs on all the newer versions of that distro, too.
(You could even be so brave as to try to pick a deb and rpm distro to build for all other distros.)
But ABI incompatibility can still bite you. For instance we once had the insane case, that our GUI would no longer start just by switching the Window-Manager to KDE.8 -
been exploring the options for cross platform desktop app, and i found :
java : both awt and swing look ugly, i really like OOP of java, and the way projects are organized is easy to scale, but i need to deploy the jdk, and the speed on gui apps isn't that great
C# : (.net/ mono, i can't grasp F# and vb is stupid) looks native on windows, not so much alien on both linux/mac, and being a java cousin is a pro, i found the Eto library for mono even looks more native on *ix than winforms
wxwidgets: for C/C++ so far this looks like the best option for total native feel and performance, but man i fucking hate C code, and this looks a lot like C code, even with proper native Cpp support, maybe i should dive deeper in it
GTK+ : did any one mention C code ? because this mother fucker is plain C with macros all over the place, it made me realize why wx is promoted as Cpp friendly, i doubt I'll use this
tcl/tk : even tho ive never wrote a single line of tcl in my life, the tk lib is the default ui for both python and ruby on all supported platforms,
and i really love ruby, and Python is Usually a joy to work with
Qt : this by far looks like the best option, proper OOP in C++, bindings for python (ruby binds are outdated), almost native look and feel on supported platforms, and even has a gui builder in xml or json/js (qml) however i bet I'll use such a thing, the building tho depends on an external preprocessor "moc" and some wicked macros, also makes working with templates a fucking mess, and the heavy dependence on QObject inheritance makes integrating external libraries a bit more tiring, the signal slot system makes more sense in python than in C++, since it makes me confused about the flow of the code
lazarus: is a freepascal implementation that looks and feels like delphi, not so much for native look and feel, but good performance and easy language to handle
electron : this fat mofo is fat, it's the slowest of all options, if i want an html app, I'll just compile a stripped down webkit and deploy that
what do you think ? and did i miss something ?17 -
I just uploaded the first part of my first programming tutorial, and I want to make sure I’m headed in the right direction and I’m not being overly confusing. The tutorial is unfinished (I’ve really only written the very start) but I think early input would be beneficial.
Some context: LibLib is a library I make for Minecraft mod development, and I’m documenting the GUI framework in it.
http://teamwizardry.com/2017/11/...2 -
I imagine what I want it to do at its core and what I need. Then research and get to work!
Started building a YouTube downloader using nficano's Pytube library.
I know there are a ton of them out already, but I am doing this to learn some Python and nuances. I tried YouTube-dl but that's more cli oriented and I've already built cli GUI wrappers before.
So the key I think is persevering even if it's already been done. By building this I'm learning tkinter, Python in general, and when I try to build this into an executable (so the user won't need to have Python) I'll learn how that works too. -
What should I use to build cross-platform desktop programs?
I'm thinking of learning Java and using JavaFX. I'm staying away from swing since it's a bit old and I've seen people say it's outdated for today's standards.
Flutter desktop would be cool but there's nothing stable for that stuff yet. I've also looked a bit into Haxe but I'm not sure if it's any good.
What's your opinion?22 -
Apologies for self advertising. I recently started this tutorial on JavaFX (a java GUI library). It would be nice to have some feedback from those with some experience with JavaFX.
It's not yet complete so it's missing a few components and layouts. (More are being added every 1-2 days).
link: https://coderslegacy.com/java/...3 -
Side project <3 well let's dream a little with this one.
I want to 'finish' my ECS library https://devrant.io/collabs/826092/...
And after that I want to make a cross platform window manager, and after that again a cross platform package manager, and with that a little gui library using blend2D which take full control of my window manager.
And well I'd like to make a server and a client for matrix too :D
OH, I need to find a job... Fuck -
Could someone help me out
Im relatively new to python and I need to design a GUI any suggestions on a library i could use besides tkinter5 -
How do you guys sync your music library on your linux PC on your android phone. For apple products there is iTunes. I know about a deprecated tool for samsung phones called Samsung Kies. Is there any good option with a GUI that allows me to sync music on my android device. (Yes I can just mount it and copy it over but thats a bit inconvinient when you only want to sync a few songs). Also, no, google music is not an option. Any suggestions?16
-
Linux: sudo apt-get install IDE dev-libs etc
Windows: install wxMSW, extract compressed binaries, set environment variables, set preprocessor/project settings in VS2017, set search directories, etc.
Why is it so ANNOYING to set up a simple GUI development library for C++ on Windows?