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 - "cli>gui"
-
Me: *just playing around with Git on my terminal*
Friend: "Man, you're such a geek, typing your git command on the terminal.. I myself can't use git without the GUI at all"
Me: *stares at him in silence*
Me: "Wait... THERE 'S A GUI FOR THAT?"
*true story when I was in college*40 -
How has coding impacted your life...?
- Using Linux
- Valuing OpenSorce over cracked software
- Using more CLI than GUI programs
- Only playing games that run on Linux or Wine
- Hating Micro$oft
- Utilizing VMs and Servers
- Tinkering with Hardware (RPi, custom PC)
- ...
... Nah not that much. 🤗😅13 -
Boss comes to me with an idea, we use a spreadsheet to store certain sets of links for clients, sometimes with dozens of links, he wants us to be able to push a button and open all the links in the sheet. I'll admit I'm not exactly proficient in excel but said I'd look into it.
I came up with a macro which seemed to work for a while but there were a few links now and then that didn't want to open due to the way excel apparently checks the links prior to actually opening them. I told my boss that I'd look into a better solution but was slammed in office with scheduled projects.
I ended up taking time at home over the next week learning how to make this happen in Python. After a week I've got a CLI Python app which takes in an excel workbook and asks the user to select a sheet. Well employees don't like CLI so they asked for a GUI. I had never made anything with a GUI before since I'm not a software developer, anything I had previously written was written for me so it didn't need a GUI to be useful.
Spent another two weeks at home developing this thing and finally got a working solution. Now several employees are using my app as part of their daily job, saving them well over an hour of just clicking links in a spreadsheet.
Boss goes on a long rant about how he appreciates me and is thankful I was able to figure this out in my own time and save him money. So I say "If you really wanna show you appreciate me, you could approve that raise I've been asking for."
He replies, "Haha, yeah, but that's not gonna happen."
(I and THE back end developer, and I make less than the copywriting interns, time to start looking)12 -
I received a shiny new pair of Bose QC 35 II's for christmas -- bluetooth headphones with active noise cancelling.
They're similar to the $500 pair my previous boss lent me at work. Lower quality, but much newer, and rechargeable! and bluetooth! Yay!
I paired them with my debian machine, and... it failed. No explanation given. I tried everything I could htink of, but nothing changed. Well, okay; bluetooth came out within the last decade or so, meaning it takes some extra effort in Debian. truth. So I did some reading on bluetooth connection issues, changed some configs, learned how to use the bluetooth cli, and used that to pair and connect them. Worked like a charm.
But! No audio.
Damn.
Cue more research (on pulseaudio this time) and more configs. Did some fiddling, etc. No progress. Also discovered `pavucontrol`, a gui-only (😕) utility which lets you select audio output devices, among other things. It doesn't list the headset. Nor does `pactl list`, but that does list the correct bluetooth modules. It also lists Lennart Poettering's name many many times, for all the good that does. Bragging about building something as needlessly complicated and crappy and buggy as pulseaudio? I will never understand that egotistical doucheballoon.
Anyway.
I paired the headset with my phone in about six seconds. I'm now controlling my phone's music via spotify on my computer. yay. Doesn't work for games or movies, but I can always just plug them in.
But woo!
Noise canceling!
Yay, silence! At last!
and music! How I've missed you!
❤💜🖤
(systemd and pulseaudio can still die in a fire.)22 -
Here is a preview of my Python devRant client
The client supports both CLI and GUI modes.
This is the CLI mode using the rant command.
CLI mode currently supports dynamic importing of custom commands (and creating your own command is documented already too).
If you do not like my rant command? Download or make another one.
Also, the command execution, import, and registration process all send events to the application object. This is in preparation for allowing mods!
Unfortunately, emojis are technically 2-width, so they totally fuck up the box I draw around the rant. Lots of work to do, but I was pleased with my first visual payoff today.12 -
To all udemy instructors that give instructions on configuring a GUI IDE for Linux, Mac and Windows but also give the option and instructions on CLI tool options on respective operating systems.... Thank you... Just... Thank you...2
-
Okay guys, this is it!
Today was my final day at my current employer. I am on vacation next week, and will return to my previous employer on January the 2nd.
So I am going back to full time C/C++ coding on Linux. My machines will, once again, all have Gentoo Linux on them, while the servers run Debian. (Or Devuan if I can help it.)
----------------------------------------------------------------
So what have I learned in my 15 months stint as a C++ Qt5 developer on Windows 10 using Visual Studio 2017?
1. VS2017 is the best ever.
Although I am a Linux guy, I have owned all Visual C++/Studio versions since Visual C++ 6 (1999) - if only to use for cross-platform projects in a Windows VM.
2. I love Qt5, even on Windows!
And QtDesigner is a far better tool than I thought. On Linux I rarely had to design GUIs, so I was happily surprised.
3. GUI apps are always inferior to CLI.
Whenever a collegue of mine and me had worked on the same parts in the same libraries, and hit the inevitable merge conflict resolving session, we played a game: Who would push first? Him, with TortoiseGit and BeyondCompare? Or me, with MinTTY and kdiff3?
Surprise! I always won! 😁
4. Only shortly into Application Development for Windows with Visual Studio, I started to miss the fun it is to code on Linux for Linux.
No matter how much I like VS2017, I really miss Code::Blocks!
5. Big software suites (2,792 files) are interesting, but I prefer libraries and frameworks to work on.
----------------------------------------------------------------
For future reference, I'll answer a possible question I may have in the future about Windows 10: What did I use to mod/pimp it?
1. 7+ Taskbar Tweaker
https://rammichael.com/7-taskbar-tw...
2. AeroGlass
http://www.glass8.eu/
3. Classic Start (Now: Open-Shell-Menu)
https://github.com/Open-Shell/...
4. f.lux
https://justgetflux.com/
5. ImDisk
https://sourceforge.net/projects/...
6. Kate
Enhanced text editor I like a lot more than notepad++. Aaaand it has a "vim-mode". 👍
https://kate-editor.org/
7. kdiff3
Three way diff viewer, that can resolve most merge conflicts on its own. Its keyboard shortcuts (ctrl-1|2|3 ; ctrl-PgDn) let you fly through your files.
http://kdiff3.sourceforge.net/
8. Link Shell Extensions
Support hard links, symbolic links, junctions and much more right from the explorer via right-click-menu.
http://schinagl.priv.at/nt/...
9. Rainmeter
Neither as beautiful as Conky, nor as easy to configure or flexible. But it does its job.
https://www.rainmeter.net/
10 WinAeroTweaker
https://winaero.com/comment.php/...
Of course this wasn't everything. I also pimped Visual Studio quite heavily. Sam question from my future self: What did I do?
1 AStyle Extension
https://marketplace.visualstudio.com/...
2 Better Comments
Simple patche to make different comment styles look different. Like obsolete ones being showed striked through, or important ones in bold red and such stuff.
https://marketplace.visualstudio.com/...
3 CodeMaid
Open Source AddOn to clean up source code. Supports C#, C++, F#, VB, PHP, PowerShell, R, JSON, XAML, XML, ASP, HTML, CSS, LESS, SCSS, JavaScript and TypeScript.
http://www.codemaid.net/
4 Atomineer Pro Documentation
Alright, it is commercial. But there is not another tool that can keep doxygen style comments updated. Without this, you have to do it by hand.
https://www.atomineerutils.com/
5 Highlight all occurrences of selected word++
Select a word, and all similar get highlighted. VS could do this on its own, but is restricted to keywords.
https://marketplace.visualstudio.com/...
6 Hot Commands for Visual Studio
https://marketplace.visualstudio.com/...
7 Viasfora
This ingenious invention colorizes brackets (aka "Rainbow brackets") and makes their inner space visible on demand. Very useful if you have to deal with complex flows.
https://viasfora.com/
8 VSColorOutput
Come on! 2018 and Visual Studio still outputs monochromatically?
http://mike-ward.net/vscoloroutput/
That's it, folks.
----------------------------------------------------------------
No matter how much fun it will be to do full time Linux C/C++ coding, and reverse engineering of WORM file systems and proprietary containers and databases, the thing I am most looking forward to is quite mundane: I can do what the fuck I want!
Being stuck in a project? No problem, any of my own projects is just a 'git clone' away. (Or fetch/pull more likely... 😜)
Here I am leaving a place where gitlab.com, github.com and sourceforge.net are blocked.
But I will also miss my collegues here. I know it.
Well, part of the game I guess?7 -
One of those things that put a smile on my face happened today.
I (like many devs) am fond of Linux. So I use Linux on everything.
I'm currently doing an internship abroad in Finland(Linus Torvald's country!) for my college.
So there is this Finnish student who uses Linux. And after a while he asked what I was using so I told him that I'm running linux(arch+i3 like all the cool kids).
So one day he was like; But can you game on Linux?
I was like, yeah sure, might not work as well as Windows but some games run native and some can be emulated through wine. He was like; Hmm maybe I'll try it out.
So he installed Linux mint on his laptop and came to work. I was rather proud (even though he installed the bastard child of Debian and Ubuntu).
So far I've helped him set up streaming games from his pc to Linux and port forwarding.
But then came the big boy. Since I always try to teach him some stuff since they don't teach him a lot at his school.
He asked me if I could help him set up a plex streaming server on Linux.
So we took an old computer and installed Ubuntu Server(Lot's of information for it).
Installed and configured plex server, qtbittorrent-knox and all kind of goodies.
I started showing him how to use ssh, how the rights system works, etc.
It broke my heart a little that he want to be able to teamviewer in it.(since it's running openSSH daemon)
So he installed Ubuntu's desktop ontop of it as well as teamviewer.
It ran slow as hell because the PC has an old crummy core2duo and ddr2 2gb of ram. It chokes when multitasking.
So seeing that as well as telling him everything that can be done with a GUI can be done in CLI.
I saw the lightbulb lighting up. He gets it now. He understand the power of Linux.
That just made me smile all the way home.1 -
Even If you give me an OS with great and fast GUI, I would still prefer better CLI (Command Line Interface)15
-
When some born-in-the-90s chode claims that linux is bullshit because you might sometimes have to use the keyboard on the command line, I set that motherfucker's house on fire.4
-
my teacher genuinely asked the class, which one is better GUI or CLI? everyone said GUI except me, he asked why? (the reason he was expecting from me was something different) i said, "CLI differentiate us from those who just click and realise that how simple is this to operate and why are we being heavily paid?"1
-
What’s happening to devrant the other day I saw a post how ppl preferred git gui over cli, just now saw a post where light theme ppl united. Where is my elitist crew?
I use arch btw /s20 -
Before I learned to use the gui and they saw a program cli: meh, ok sarcastically. After I learned the gui even if the program does absolutely nothing: wow! You have a future.1
-
let me preface with the fact that I'm now known at my new job for being the resident cli hipster. I can't lay any claims to knowing if it's "better" but I like it, I don't care if you do or don't, it just works for me and my flow
so at my job, we generally squash all our commits into one commit and delete the source branch upon merging; i accidentally committed all my work to an old, already merged branch, so my boss tells me it would be more of a PITA with the weird references we would encounter by merging the branch again, rather than just cherry pick the commits into a new branch, which i'm like "eh, fine.".
HIM: "You want to share your screen so we can resolve this?"
ME: "k"
HIM: "Oh, you won't be able to do this in a terminal, you are going to have to load up a GUI of some sort"
ME: "lawlz, no you don't"
HIM: "i highly doubt you will be able to accomplish that, but if you wanna make an ass of yourself, i'll humor you"
ME: "yeah, watch this"
> git log > log.txt
> git checkout <new branch>
> git cherry-pick <copy-paste-full-commit-hash-here>
> git push
ME: "done"
HIM: "what? there's no way you did it that easily, where are all your other commits???"
ME: "i usually try to amend my commits since we squash them anyhow. it really helps in situations like this"
HIM: "well, you go girl"
roll that up in your fancy degree and smoke it, why don't ya?2 -
My first software.. Okay. So first time I ever attempted was with my father, i was around 8 or so, i remember very little from it, but in nutshell, i somehow ended up at his job having day off school or something, no idea.
Apparently he was bored, so he decided yo show me... Basic. Yep, thats right. Frking basic. Anyway, he shown me some really basic stuff in basic, and pushed the envelope really hard, just trying to force into me more and more in these 8hrs. I started with filling screen with "o" characters. Most of times he was telling me what to write with elaborate explanation why. At the end of the day, we finished with simple maze game where player was "o" and maze walls was #. Without any goal, or anything.
Next day i was at point 0, understood nothing from it except how to handle keystrokes (and belive me, that for me was huge mindblow, and even bigger mindblow that it actually made prefect sense).
I dont remember much, but later i started with father-assisted c++ and some pascal. I immidietly loved c++ but dropped learning it for (NullPointer) reason.
Thats not really project imho, so now time for my actual first project.
It was about time when ARK survival evolved was a fresh thing, i was playing it a lot. Server admin became buddy. We all complained about max level cap, but to change it in config you needed to input whole new xp curve.
At that time i had great familiarity with google and computers, some thought i was some kind of PC god (seriously I heard someone saying so about me lol) just becouse I could ressurect most cases of broken windows. And I had next to zero programming expirience. It was about to change. I made first c++ actual program, that was making xp curve for you. It took me just bearly 2 days and was series of cin, cout, one file open, some maths in loop, and done. Maths was very bad. But i pushed it into steam forums, and one guy responded how.bad my math was, so we colabed on making 2 iteration. Took around week. Than half a year passed and we wanted go big. Go gui. I had no freaking idea how making gui looks like. Community liked my cli tool, we had quite a lot of downloads, why not go GUI. And thats when I discovered QT framework. And we had few features in mind... It took us half a year to make it. From 60 lines of code i jumped into 1k lines of code. We pushed it and immidietly started working on 4th version with much greater customizability etc.
Than i finished 18 and found a job. Job in php. I got it becouse I made this project.
Now project is abandon. This project also gave me a lesson that donations will not feed you.
Edit: and before you think about my father that he was nice person to show me code, trust me, i dont know bigger dick than him. -
Hello everyone, I've been looking for a long time to switch from Windows to Linux (on my tower, I have a macbook). The only problem being that I can't decide at all. I've heard a lot of good things about Linux Mint, Manjaro and Arch (especially here for him), I don't know which would be best for me (I'm in my last year of a master's degree in computer systems architecture) because most of the time when I use a Linux it's a simple Debian in CLI.
Also, I have no idea which GUI to choose between KDE Cinamon and other modern not too childish GUIs. Can you help me find arguments to choose the right one?
I also like sometimes playing video games like WoW or Diablo 3 but I guess it will work with Winepak with Flatpak.
Thank you in advance for your help and thank you devRant to exist :).
PS: Si il y a des francophones, Faites moi signe :)7 -
I can't tell if I'm in majority or minority on hating vim. I just use nano for CLI editing and some better GUI editor with, well, GUI.
Opinions? Reasons?3 -
Lead dev runs the program I gave him to set up a bunch of processes that run for one database.
It has a GUI that seems native to his windows environment......but it sort of is not.
The program runs, asks for the .csv file that is to be parsed into the database.
Lead dev: Ok, what is this though?
Me (his boss) "Don't worry about it"
Him: "Holy shit what the fuck is this??? TELL ME!!!"
Me: DON'T WORRY ABOUT IT
Him: "WTF DID YOU MAKE THIS IN???!
ME: DON'T WORRY ABOUT IT
CMS Admin (another one of my employees) "Would you TWO SHUT THE FUCK UP!!!?"
New Guy (mainly a frontend dev): ........
Meanwhile, in production, no one knows if your gui app is built in Lazarus and Free Pascal, as long as it works.
I really need to stop doing this to the lead dev, dude already keeps trying to choke me for writing things in perl.
On another note, Object Pascal is pretty cool. Might write a book on it for those that want to do CLI based applications on it, I have no clue why every book on the subject costs in euros, but there should be more shit written for beginners, language is awesome and one can get lots of mileage from Lazarus and FPC11 -
A long way to go from Windows to Linux...
from GUI to CLI
from Wifi to WifiCracking
from Website to WebPenetration
from Windows file system to Penetration testing
from Windows to Gnome
from dir to ls
from ipconig to ifconfig
from google to information gathering2 -
After having witnessed developers use IntelliJ's built-in git functionality, I am persuaded that it should have never existed in the first place.
Asking you if you want to git add after every file you create, providing dangerous shortcuts that do pull, merge and push at once, but most importantly providing just enough comfort to keep their users ignorant about interactive git add or rebase, and other advanced git functionality.
The search for all the UI buttons + IntelliJ's baseline 5G RAM consumption is both slower and more error-prone than using the Git CLI15 -
I’m looking for a simple tool for Windows, GUI or CLI, doesn’t matter.
It should do the following:
Take a directory and a number as input and randomly move the files in that directory to subdirectories, each containing files up to the provided number.
So, random grouping essentially.
I’ll write it myself if it doesn’t exist, but let’s see if I can save me some work 😆24 -
I’ve been in a rut. I’ve just been learning shit back to back and I haven’t tried working on a project since my last one and it feels fucking awful. Since the last project was a CLI application I’m gonna re write it as a GUI with WPF and use the project to teach me more about WPF. But after this I’m honestly fucking lost.
I have to get a few more projects done after this. so I can get ready to apply to (my first) development position. -
I am making a GUI wrapper in C# for a CLI tool written in Python. Obvioisly, the python exe is launched with the Process class and the output streams are redirected so I can process the console output. The problem is that some of that output is only printed if sys.stdout.isatty() returns True. Is there a hack that would allow me to launch the process in a way that python thinks that there is a console/tty attached?
I really don't want to touch the python source files, because that would be a messy solution. I also don't want the process to spawn an actual console window.1 -
I really don't like this trend of building command line applications for controlling some <buzzword> cloud app or <buzzword> framework.
Why should I need or want to learn the exact wording of your gcloud command, or the path to your Ng cli, or some ass-backwards AWS search syntax when I can get the same functionality from your web app, where I can use my FUCKING EYES to work out where the "Create Instance" button is and how to click it!!!??
Stop pushing your shitty python monolith of a client where possibilities for the above task range from:
- google-cloud instances --add "subfjfechye thiq"
To
- gcloud /create /type=INSTANCE "rogdhyuffhue"
"BuT iT mAkEs iT MoRe aUtomaTaBLe"
I DON'T CARE. What is the point when I can use a proper programming language instead of bash, with actual code-completion and syntax rather than the horrendous excuse for a suggestion system that is the Tab key where it probably doesn't even work in the first place and I have to copy and paste some mysterious dbus command buried in an old documentation page on the Wayback Machine using a utility I don't have installed and a broken URL?
Go away.8 -
List of things one of my Python projects needs:
- cross-platform IMA/VFD/VHD/VHDX/qcow/VMDK/IMG/DSK/others image read/extract support that doesn't need admin/root privs (so no, can't use dd or mount)
- custom DB format (for speedups when indexing files and retrieving info based on hash) and converter from previous DB format
- GUI or actually good CLI
- massive speedups
kill me now4 -
A side project lingering around is building a .NET Core based GUI program to monitor uptime and health of various Windows and Linux servers. I'm aware there are other projects that could do the same thing but I'm wanting to do this as a lesson in C# and cross-platform coding (I plan this to work on both Windows and Linux).
The program is currently CLI based on Windows with functionality to configure it and it's behaviour via config file, it currently sends email via SMTP to a specified email recipient to notify if there has been outages or performance degradation.
But of course University is in the way as well as work. Oh well... maybe I'll get to it in a couple months. -
Noticed today that at my company, the younger devs do everything via cli or through the terminal, and the older devs do everything through a GUI or a IDE7
-
WSL GUI... WHY?!?!
I have an assistant(no better defined title) in Myanmar who we've ruined from ever being a "normal" 21yr old Burmese kid again... First non-android computer experience was remote access to our local RHEL server; He's gonna be a dev... being a blank slate, started him primarily on CLI.
Yesterday he tells me wsl stopped working and he can't figure out why. I ofc asked what the last thing(s) he did was... simple wget. I tunnel in, check processes... one of the catch-all wsl ones had hulked out.
Despite very limited abilty to trace whatever was going on, I found what I thought may be responsible. Quickest way to know, kill it...
Whatever will we do without GUI for wsl debian?!?!?
Seriously... the wsl Deb culled things like systemd for simplicity... but arrives loaded with numerous GUI functionalities. I reeeeeallly want to know what advanced practical applications are coming from this -
How much ram do you generally need in a Linux server? I'm already using 70% out of 2GB on my LAMP stack, and I'm planning to deploy my website prototype to show off in interviews next year. Is 8-16GB of EEC RAM a better option for future proofing? The only thing holding me back is I don't plan to make money on this server in the immediate future so I'm trying to weigh the pros and cons. 🤔
This CentOS server runs on CLI only so the GUI isn't a factor. Eventually I'll have it host Java Spring API's which will easily take up what RAM I have left. On top of that I have 10 db on mySQL so that's another likely culprit.7 -
Opinions
Hello, I’m considering building a web framework.
My ideal features would be:
Customizable authentication system(considering using a jwt lib)
Embedded DB(bolt db)
ORM( writing my own)
REST api to DB (via code generator)
Code generator(generation of models and views via cli)
GUI to db(some admin dashboard)
CORS(web service right?)
Why?
Ease of development
Fast prototyping of small-medium web services.
Fun.
My question is, do i have to many things on my platter? Should i narrow it down into less featured framework? What feature should I focus on? How should i benchmark it? Should i write tests for absolutely everything or just for exported methods? What should i take into consideration when developing ORM API, Auth API...
The language is Go
Thank you for your input10 -
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. -
Friend and me from the university need to write a program to parse Value-Change-Dumps from different files, and merge them together in a new file to easily compare them. This project last for the whole semester. The program was for one of the professors and we need to meet with him and give him an introduction how to use the program (was cli & gui based)
Long story short: enter office, give him the link to git repo. He clones it. Clicks on it and boom. Python error. Some Tkinter Error. OK ok after a few minutes we solved the issue by installing some additional packages and our program starts. But it doesn't work. About 80% of the buttons did nothing. WTF!??
Oh. We used git flow for fun and haven't moved the development branch to master and he cloned outdated code. We need nearly 30 minutes to solve this. 🤔And I'm just happy that this professor was just a calm guy . He was also happy because now he does not need to run multiple instances of GtkWave to compare his simulation results. -
What's your favourite Git client and why? Mine is a combination of git and tig in the command line.7
-
All you emacs cultists, share with me your wisdom. As someone who wants to learn how to use it I have a few questions.
what resources should I use to learn more about it and configuring it?
What's the difference between emacs, doom emacs and all the others I've heard about?
Are you able to and do you use the GUI or the CLI versions of it?
And are there any packages equivalent to VSCode's Intellisense?
please for the love of God don't turn this into a holy war of vim vs emacs I don't mind either I just want to try out emacs cause I think it looks awesome and something I'd be interested in.1 -
In the beginning I created a CLI script to manage some production tests of our embedded product. Then they wanted a GUI with a single textbox and button. Then they wanted a shortcut on the desktop to that GUI.
Now one guy I know in 'production' insists that I keep adding to the documentation for things outside the scope of the software and more towards what will be sent to other production workers. Some of which includes 'ensure the cables are plugged in'. He says that he and other production workers are dumb and need a bulletproof guide. Fair enough, I say...maybe get a brain also?1 -
The whole windows server + ms sql server ordeal is the biggest fucking joke I've ever seen in my time being a dev.
The ms sql dashboard uses a hidden user to access files and stuffs, so I spent 1 hour trying to make the dashboard's explorer to find the database dump file, only to find out that the file need to be owned by the hidden user. So
I spent about 1 hour trying to set the correct owner of the dump file, but to no avail, the explorer still couldn't pick it up. Then I spent another hour to set the correct owner for the containing folder. Finally, a 6 years old answer on SO point out that I should just put the fucking .bak file in their default folder, and voilà, the fucking thing works like a charm.
I can't get why Microsoft has to go out of their way making permission management on their os so fucking convoluted. The fucking usernames are a fucking mess, you have to go through a bunch of form to change just the owner of a file (please don't start me up with that running some command on powershell bullshit, I would rather deal with bad GUI than a badly designed CLI)
If I were to being positive though, Microsoft is actually one of a few tech companies having a good technical decision of moving their shits over Linux.