I would still very much like a job though, which is why I invested in highly demanded skills as Vala programming and Haskell Flatpak packaging.
š
I find myself in a similar position and have been investing in highly demanded skills like C, GTK4 and DuckDB! oh, and a bit of Perl on the side to stand out from the crowd!
Love to see somebody else making GTK4 applications! I have worked with Vala, but I was quite surprised of how usable the gtk .ui xml files are. I was just by default initially biased against xml, but it actually works quite similar to web development in the sense that you make the layout in XML, and then, in my case, on C call elements by id and attach functionality to those widgets.
Iām curious about the argument of the author. He is mentioning the challenge of systemd and that without it is not possible to run GNOME?
Why would one want to run gnome on embedded Linux? Are we talking about mobile Linux for, say, a phone?
It could be that my understanding of embedded is incorrect but I understand embedded Linux a step above RT OS, with the added benefit of solid network stack, ability to program in any language, etcā¦ i.e. what one would have on a router or the multimedia console for a car. Both of those systems can work perfectly fine with, say, busybox and neither requires GNOMEā¦
Iāve been reading this and even exploring alternatives and Iām trying to figure out why does this feels so wrong and this is what I think:
I have no issue at all with, for example, 1Password or Enpass for that matter. But neither of those is open sourceā¦ so the issue for me is an unwillingness to use proprietary software. But at the same time, neither of those alternatives posed themselves as open source, then raised $100M and attempted to change or trick their users into something they didnāt buy.
If Bitwarden had played this more along the lines of āhey, we are making a new proprietary offering with X and Y extra featuresā Iād have appreciated that and likely considering them just as I would, say, 1Password.
Ever since the raising of the $100M in 2022 Iāve been expecting things to change, and change visibly and possibly drastically. Raising $100M is considered a āsuccessā but itās also a 9 figures loan, and that changes things.
Iām just hoping that they can play this right and keep their devoted customers.
I moved to 1password back when Bitwarden raised the $100M. The writing was on the wall then. 1Password is VC backed now too, which scared me(so far the VC investment seems small-ish comparatively though, so the evil hasnāt happenedā¦ so far). Seems like we canāt have nice things, everyone eventually sells out to VC disasters.
To me VC money is like Oracle Money. They care about exactly 1 thing, their own money growing into more money. Everything else is not a concern. Users donāt matter at all, prior promises donāt matter. More money for them in the very near future is all that matters.
I guess Iāll go back to writing my own, figure out how to make KeyPassKC sane for non-experts or maybe move to Appleās Password app, at least Apple wonāt ever be taking any VC money. Iāve heard it works cross platform like 1password, which is very surprising.
I havenāt done any research or playing with it yet, just sharing for others that might see this and looking for a replacement someday. At first glance it looks like it might be end-user friendly, like Bitwarden and 1password.
The Tcl Programming Language: a Comprehensive Guide is the most up-to-date book Iām aware of, and was a fun read for me a few years ago. It wonāt cover the Tcl 9 stuff, but everything in the book I can remember ought to work as-is (and the Tcl 9 release notes will kind of just make sense afterwards, too).
This is also my favorite reference but it doesnāt cover Tk. The second edition of the original seminal text, Tcl and the Tk Toolkit (Ousterhout, et al) is an excellent reference.
I second this. I used that book to learn it too and it is indeed a great resource. Once you get the concepts the official documentation is a pretty good reference.
It has been really long since I did any Tcl, but since the commands areā¦ well, commands, I got really far with just reading the official docs for them. On top of that their Wiki has really nice examples.
Itās really fun especially in combination with Tk.
I absolutely love fish! One of the first things I do in a fresh Linux install is to install fish and append exec fish to the default .bashrc. One thing that puzzled me (unless Iām missing something) was the removal of configuring aliases via the web configurationā¦ idk in what version that changed but I was disappointed by it.
I still use fish daily and now do alias -s gc=āgit commitā instead but I kinda liked the visual of seeing all my aliases in one placeā¦ I know there are a tons more ways to see my aliases but probably I was spoiled by the web configuration :-)
I recently moved from Gnome to KDE and havenāt looked back, and specially with KDE6!
But Iāve been finding odd that it seemed like every new release of Gnome removed features instead of adding! And it wasnāt just about always expecting new features but, the seemly intentional removal of features eventually drove me of the platform.
I still love the look of Gnome, the refined curves and ease of use, but the moment I want to change something, well, changing that was removed 7 versions ago and now is only possible to emulate that behavior with an extensionā¦ except that the extension is already outdated and only works for a shell two version backā¦
KDE seems to keep adding features and making everything customizable, which, personally I find more agreeable and usable.
Iād love to understand where is gnome headingā¦ is it working toward mainstream adoption? (It feels very M$-like to remove feature for āease of useā determined by them)
Are they trying to adopt a mobile-first kind of approach like what seems like Appleās utopia of iOS everywhere? (Sounds terrifying to me, but Iām ready to ditch my MacBook, as Apple ALSO continues to remove featuresā¦)
With that said, I recently got to use gtk 4 for a project and what a delight! The documentation is fantastic, the APIs are super clear and even glib and gobject, which I was kind of hesitant about JustWorks(TM)
But Iāve been finding odd that it seemed like every new release of Gnome removed features instead of adding!
On any platform, I use an accessibility feature, which I generically call āHover to clickā ā you just place the cursor where you want to left click, the click happens automatically. Broadly, once you get used to it, its saves you most of the left mouse clicks (and a range of finger fatigue coming out of clicks).
In line with GNOMEās penchant to give generic name to everything, this feature is literally called āHover to Clickā in GNOME.
Now, this feature inadvertently needs a ādead spaceā, inside which an automatic click has no effect, and where you can park the cursor as a matter of reflex. In all the platforms, free space in the task bar (or menu bar in macOS) serves this purpose well.
This seems like the typical case of someone who implemented feature B not using/knowing about feature A and how it interacts. As far as accessibility is concerned, gnome does seem to care about it more than most other DEs, so maybe they would actually address this.
I havenāt pursued the problem. I didnāt have the best expected response to another issue I had with GNOME 40. Admittedly, they fixed the latter issue a few years later.
Iām gonna pop by tin hat for this one, but it seems to me that every new macOS release has only slowed down my MacBook without adding any noticeable benefitsā¦ sure, now my background is animated and some other miscellaneous, but this is not ridiculous blazing fast M1 I bought a few years ago, the one that one would open all installed apps at once just for fun, and it wouldnāt even break a sweatā¦
Meanwhile my ryzen in my Linux machine feels just as snappy, and with the release of KDE 6, which adds a tons of desktop features and UI beautification, it just feels as fastā¦
I know that apple want me to by their M2 Pro, but I just feel being pushed awayā¦
For me is C. I havenāt been able to find something as simple and streamlined as C. Given that the language is so small and lets you do literally anything is a perfect fit for my perfectionist simplicity loving self.
The other day I was working on this little project that needed to read a CSVā¦ after testing a couple of libraries I ended up writing my own parser in about 90LOC. I use the OS as my garbage collector and all types of things that wouldnāt fly in any production environment. But for me thatās exactly the pointā¦ itās my code and is fun for me and thus the joy of side projects!
I mean, it is by no means feature completeā¦ it only reads and I am aligning data to lines of 80 charactersā¦ so, is pretty much a single purpose CSV parser, which affords me tons of performance because I donāt need to take into consideration all the possible edge cases and Iām using just one csv file for it š¤·āāļø
š sure, but with a lot of asterisks! Thereās a clear difference between code I write because is fun vs code one writes professionally. An example is, I donāt bother a lot freeing memory. I do when I remember but I donāt sweat it simply because most of my programs are tiny and short lived and my OS reclaims the memory of the process when it endsā¦ This is A TERRIBLE practice for any code that is running anywhere else! But I take certain freedoms when is my own code for my own purposes that is not meant to see the light of day!
archinstall! Iām came back to Arch Linux after a while because Iām wanted to use KDE 6 and was very pleasantly surprised to see that I can make an install now without having a second computer with the installation guide open!
Itās extremely easy to set up, if you have a mailer on the system (used to be default) and a forwarder on the root account (/root/.forward) then youāll get these mails.
āThis incident will be reportedā, sounds scary, but all it really does is send an email internally to root.
I had a similar experience when I started writing a lot of C last year. It was a surprise how enjoyable and productive it was.
The part about using the right language for the job is particularly important. I was doing system level and embedded programming and C is very productive in those situations.
An added bonus was that it opened the door for me to explore and understand TONS of code that I couldnāt access before!
Reading headers, kernel modules, libraries and library wrappers even for other languages (i.e. looking at how a cairo library for Lua is actually using cairo, or, what graphic library is some program using).
It also removed the āunsolvableā issues Iād come across when a ./configure; make; make install wouldnāt work. Are the headers on the right place? How about my LD path?
Got a program in a .deb package but Iām running fedora? No prob, unpack it to desktop, update the LD_PATH variable and we are in business!
over-reliance vs. self-regulation
I found this part the most interesting.
Even though Iām still semi-reluctant about AI, Iāve been getting a lot more benefit by asking general questions instead of asking it to implement things. Prompts like āhow can I append X to a Y structure in <language that Iām learning>ā instead of āhow can write an app that does ā.
I find AI absolutely phenomenal in helping come up with meaningful functions/variable names! Itās also a great tool to discover functions/ libraries that I didnāt know about, which usually leads me to the documentation of the library.
All of this though is in the context of a language that is not too familiar to me. In a language that Iām experienced at ChatGPT feels more like an incompetent coders that I need to be constantly correctingā¦ which, Iād just rather my own code instead of exchanging coding for code reviewing.
Students frequently (n=501, 30%) copied the task description to generate the entire code with no prior manual coding attempts. š°
Iām not sure Iād consider this negative as the paper does. While it can indeed be a sign of over-reliance it could also be a didactic tool for understanding better the problem. I think many of us might experienced how a problem/task can sound completely incomprehensible and when talking with the author or hearing the instructions rephrase the problem it suddenly clicks and things make more sense. I think that ChatGPT is very good at saying exactly what itās been prompted but differently, which in some cases can be frustrating, but in some cases (maybe like this one) could be exactly what is needed!
I think the part weāre missing here is how were the kids selected? The linked paper says that they recruited from coding camps, but is this a bunch of kids who wanted to learn to code, or a bunch of kids whose parents want them to learn to code?
Because a kid who doesnāt want to be there taking the shortest path to get through the assignment seems perfectly reasonable. A kid who wants to learn skipping the whole learning part seems significantly worse.
Iām so stoked about this! It feels like a macOS release back in the days when they were adding features instead removing options and locking user in.
But itās open source!
Sometime ago I got tired of gnome forcing their idea of desktop and making it harder and harder to customize it. But I really liked the defaults of gnome.
Then I decided to throw 10 mins at KDE and try to see if I could make it for, and just wow! Whatever you see, just right-click it and change it!
Sorry yāall Iām in love with KDE/plasma and Iām excited to get my hands on v6!
I can sort of see the point that the author makes but that is not my experience with tailwind. While they have been making some questionable choices IMHO with newer releases (I liked the v1 drop 1 single css and thatās all) tailwind works perfectly for what I want it, fast iteration of front end design.
In quite a few roles that Iāve been at the frontend is one of the things that changes the most, as a company works out market fit (Iāve worked most of my career in startups)
That tailwinds says that @apply is bad practice is totally irrelevant for me. @apply is the natural next step after things get solidified designwise, and if that feature were to be deprecated Iād likely start shopping for an alternative.
I donāt think that the final form of a product that uses tailwind should be an html with all the utility classes in it, but a move towards a more semantic approach.
Why not start with CSS then? Because I donāt know yet how the html of the component Iām making should look like. Do I need an extra parent div to add some shadow? Is the a child div with inline grid to show three items in it? The traditional css writing yield the .modal and .modal-wrapper and .modal-wrapper-parent.
After using tailwind and quickly figuring out what is needed AND what is not needed I can then go back and make my own .modal, .modal-header, .modal-body, etcā¦
Is the first time I hear about CHERI and it certainly sounds fascinating!
It seems like memory safety on the software add quite some complexity, so if memory safety could be handled by the hardware, that could allow for more less software complexity, more intuitive code that relies on hardware guarantees!
I gave up after three efforts from 1998 until 2020. It requires a lot of dedication, the rewards mentally are immense, but there is what you like and there is life. And in my case they were incompatible.
I have never written complex Haskell (the closest Iāve come is porting the BlueSpec SystemVerilog compiler, written in Haskell, to FreeBSD, which was mostly mechanically adding cases to either do the same thing as Linux or macOS and to conflate things like āobject file format is ELFā and āOS is Linuxā or āutilities behave like BSD utilitiesā and āOS is Darwinā).
Haskell is one of the languages, like Smalltalk and Erlang (maybe Elixir? Iāve not used it yet but it seems nice from a cursory glimpse) where learning it makes you a better programmer in other languages. I much prefer reading (and maintaining) C++ code written by people who think in Haskell than people thinking in any other language. C++ code written by people thinking in C is awful and by people thinking in Smalltalk is usually inefficient (though that can be a good tradeoff for libraries when it comes along with very loose coupling).
Having just picked up Elixir two days ago and then shipped a POC with Phoenix, Elixir to me falls into a different category. Iāve attempted Scheme and Smalltalk and Janetā¦ they are not the same :-)
Elixir seems focused on making one productive while at the same time being fun? (pun intendedā¦ š¤Ŗ)
But indeed, it also makes you think differently when programming on other languages (even start disliking other languages because they donāt have the nice features like pattern matching that Elixir has!)
š
I find myself in a similar position and have been investing in highly demanded skills like C, GTK4 and DuckDB! oh, and a bit of Perl on the side to stand out from the crowd!
Love to see somebody else making GTK4 applications! I have worked with Vala, but I was quite surprised of how usable the gtk .ui xml files are. I was just by default initially biased against xml, but it actually works quite similar to web development in the sense that you make the layout in XML, and then, in my case, on C call elements by id and attach functionality to those widgets.
Iām curious about the argument of the author. He is mentioning the challenge of systemd and that without it is not possible to run GNOME? Why would one want to run gnome on embedded Linux? Are we talking about mobile Linux for, say, a phone?
It could be that my understanding of embedded is incorrect but I understand embedded Linux a step above RT OS, with the added benefit of solid network stack, ability to program in any language, etcā¦ i.e. what one would have on a router or the multimedia console for a car. Both of those systems can work perfectly fine with, say, busybox and neither requires GNOMEā¦
So, Iām puzzled
If you read the parts after that, the author explicitly says that itās not about running GNOME on embedded systems.
Iāve been reading this and even exploring alternatives and Iām trying to figure out why does this feels so wrong and this is what I think:
I have no issue at all with, for example, 1Password or Enpass for that matter. But neither of those is open sourceā¦ so the issue for me is an unwillingness to use proprietary software. But at the same time, neither of those alternatives posed themselves as open source, then raised $100M and attempted to change or trick their users into something they didnāt buy.
If Bitwarden had played this more along the lines of āhey, we are making a new proprietary offering with X and Y extra featuresā Iād have appreciated that and likely considering them just as I would, say, 1Password.
Ever since the raising of the $100M in 2022 Iāve been expecting things to change, and change visibly and possibly drastically. Raising $100M is considered a āsuccessā but itās also a 9 figures loan, and that changes things.
Iām just hoping that they can play this right and keep their devoted customers.
But hey, Iām just a $40 ARR in their booksā¦
I moved to 1password back when Bitwarden raised the $100M. The writing was on the wall then. 1Password is VC backed now too, which scared me(so far the VC investment seems small-ish comparatively though, so the evil hasnāt happenedā¦ so far). Seems like we canāt have nice things, everyone eventually sells out to VC disasters.
To me VC money is like Oracle Money. They care about exactly 1 thing, their own money growing into more money. Everything else is not a concern. Users donāt matter at all, prior promises donāt matter. More money for them in the very near future is all that matters.
I guess Iāll go back to writing my own, figure out how to make KeyPassKC sane for non-experts or maybe move to Appleās Password app, at least Apple wonāt ever be taking any VC money. Iāve heard it works cross platform like 1password, which is very surprising.
Apparently there is another OSS password manager: https://psono.com/ The code seems to exist as Apache2 licensed here: https://gitlab.com/psono/
I havenāt done any research or playing with it yet, just sharing for others that might see this and looking for a replacement someday. At first glance it looks like it might be end-user friendly, like Bitwarden and 1password.
This certainly has me interested! Iām curious if anyone has recommendations for Tcl learning resources that are relatively up-to-date?
The Tcl Programming Language: a Comprehensive Guide is the most up-to-date book Iām aware of, and was a fun read for me a few years ago. It wonāt cover the Tcl 9 stuff, but everything in the book I can remember ought to work as-is (and the Tcl 9 release notes will kind of just make sense afterwards, too).
This is also my favorite reference but it doesnāt cover Tk. The second edition of the original seminal text, Tcl and the Tk Toolkit (Ousterhout, et al) is an excellent reference.
For Tk specifically, my go to is https://tkdocs.com/
I second this. I used that book to learn it too and it is indeed a great resource. Once you get the concepts the official documentation is a pretty good reference.
Thank you so much!
It has been really long since I did any Tcl, but since the commands areā¦ well, commands, I got really far with just reading the official docs for them. On top of that their Wiki has really nice examples.
Itās really fun especially in combination with Tk.
The manpages are excellent (
man n expr
etc)Iām brushing up on my maths because I want to learn DSP :-)
At $!work is time to apply for new roles (again) soā¦ thereās that too
I absolutely love fish! One of the first things I do in a fresh Linux install is to install fish and append
exec fish
to the default.bashrc
. One thing that puzzled me (unless Iām missing something) was the removal of configuring aliases via the web configurationā¦ idk in what version that changed but I was disappointed by it.I still use fish daily and now do
alias -s gc=āgit commitā
instead but I kinda liked the visual of seeing all my aliases in one placeā¦ I know there are a tons more ways to see my aliases but probably I was spoiled by the web configuration :-)Why not just
chsh
your default shell to fish instead of going through the bashrc?I find that a few tools I use still depend on bash and write their configuration to bashrc (i.e. set PATH and export env variables).
Given that those pass to fish I donāt feel like translating those to fish config and managing them myself :-)
I recently moved from Gnome to KDE and havenāt looked back, and specially with KDE6!
But Iāve been finding odd that it seemed like every new release of Gnome removed features instead of adding! And it wasnāt just about always expecting new features but, the seemly intentional removal of features eventually drove me of the platform.
I still love the look of Gnome, the refined curves and ease of use, but the moment I want to change something, well, changing that was removed 7 versions ago and now is only possible to emulate that behavior with an extensionā¦ except that the extension is already outdated and only works for a shell two version backā¦
KDE seems to keep adding features and making everything customizable, which, personally I find more agreeable and usable.
Iād love to understand where is gnome headingā¦ is it working toward mainstream adoption? (It feels very M$-like to remove feature for āease of useā determined by them) Are they trying to adopt a mobile-first kind of approach like what seems like Appleās utopia of iOS everywhere? (Sounds terrifying to me, but Iām ready to ditch my MacBook, as Apple ALSO continues to remove featuresā¦)
With that said, I recently got to use gtk 4 for a project and what a delight! The documentation is fantastic, the APIs are super clear and even glib and gobject, which I was kind of hesitant about JustWorks(TM)
On any platform, I use an accessibility feature, which I generically call āHover to clickā ā you just place the cursor where you want to left click, the click happens automatically. Broadly, once you get used to it, its saves you most of the left mouse clicks (and a range of finger fatigue coming out of clicks).
In line with GNOMEās penchant to give generic name to everything, this feature is literally called āHover to Clickā in GNOME.
Now, this feature inadvertently needs a ādead spaceā, inside which an automatic click has no effect, and where you can park the cursor as a matter of reflex. In all the platforms, free space in the task bar (or menu bar in macOS) serves this purpose well.
GNOME had a larger dead space than other platforms in its top bar until 3.14. Then, they decided that a click on the top bar should bring the focus to a/the maximised window.
So, I am one of those rare people who got affected by GNOME adding a feature!
This seems like the typical case of someone who implemented feature B not using/knowing about feature A and how it interacts. As far as accessibility is concerned, gnome does seem to care about it more than most other DEs, so maybe they would actually address this.
do you know if thereās a issue opened? if not and you donāt want to make an account on gitlab.gnome.org lmk and i will
I havenāt pursued the problem. I didnāt have the best expected response to another issue I had with GNOME 40. Admittedly, they fixed the latter issue a few years later.
cc @pta2002
iāve just tried hover to click on gnome-shell v46 and itās still focusing the maximized window if the pointer rests on the top bar
Yes it still exists.
I was talking about another problem here: https://discourse.gnome.org/t/gnome-40-overview-does-not-automatically-activate-navigation-across-open-windows-by-tab-or-arrow-keys/6648/1
I realised just now that I linked to a wrong discussion in my original post, which I canāt edit anymore.
re: āThen, they decided that a click on the top bar should bring the focus to a/the maximised window.ā, I intended to refer to this discussion: https://discourse.gnome.org/t/why-clicking-shell-top-bar-focuses-maximized-window/6041/5
Iām gonna pop by tin hat for this one, but it seems to me that every new macOS release has only slowed down my MacBook without adding any noticeable benefitsā¦ sure, now my background is animated and some other miscellaneous, but this is not ridiculous blazing fast M1 I bought a few years ago, the one that one would open all installed apps at once just for fun, and it wouldnāt even break a sweatā¦
Meanwhile my ryzen in my Linux machine feels just as snappy, and with the release of KDE 6, which adds a tons of desktop features and UI beautification, it just feels as fastā¦
I know that apple want me to by their M2 Pro, but I just feel being pushed awayā¦
Yes! Take my money!
For me is C. I havenāt been able to find something as simple and streamlined as C. Given that the language is so small and lets you do literally anything is a perfect fit for my perfectionist simplicity loving self.
The other day I was working on this little project that needed to read a CSVā¦ after testing a couple of libraries I ended up writing my own parser in about 90LOC. I use the OS as my garbage collector and all types of things that wouldnāt fly in any production environment. But for me thatās exactly the pointā¦ itās my code and is fun for me and thus the joy of side projects!
Woah a CSV parser built from scratch just under 90LoC
Very impressive and its in C where you have to be very careful when managing memory
I mean, it is by no means feature completeā¦ it only reads and I am aligning data to lines of 80 charactersā¦ so, is pretty much a single purpose CSV parser, which affords me tons of performance because I donāt need to take into consideration all the possible edge cases and Iām using just one csv file for it š¤·āāļø
Are you willing to share some projects youāve done in C?
š sure, but with a lot of asterisks! Thereās a clear difference between code I write because is fun vs code one writes professionally. An example is, I donāt bother a lot freeing memory. I do when I remember but I donāt sweat it simply because most of my programs are tiny and short lived and my OS reclaims the memory of the process when it endsā¦ This is A TERRIBLE practice for any code that is running anywhere else! But I take certain freedoms when is my own code for my own purposes that is not meant to see the light of day!
With that said, this is a fun project I did in C, the classic chip8 emulator. https://git.sr.ht/~benjcal/chip8/tree/main/item/src
I think chip8.h is one of the most interesting files.
archinstall! Iām came back to Arch Linux after a while because Iām wanted to use KDE 6 and was very pleasantly surprised to see that I can make an install now without having a second computer with the installation guide open!
https://xkcd.com/838/
(sorry, this comment doesnāt add much value but I couldnāt help, š¬)
On an institution I used to work I got ssh access to a server that I needed to do some work on.
To test what I could and I couldnāt do I ran a test sudo command, no access, incident will be reported, blah blah blahā¦
I few days later my boss informed me of how she got an angry call from the director of IT! š
YMMV but in some cases āincident reportedā is actually reported and acted upon ;)
Cheered me right up after a long work day at least :)
My old workplace actually got emails from all VMs for that
Itās extremely easy to set up, if you have a mailer on the system (used to be default) and a forwarder on the root account (
/root/.forward
) then youāll get these mails.āThis incident will be reportedā, sounds scary, but all it really does is send an email internally to root.
I had a similar experience when I started writing a lot of C last year. It was a surprise how enjoyable and productive it was.
The part about using the right language for the job is particularly important. I was doing system level and embedded programming and C is very productive in those situations.
An added bonus was that it opened the door for me to explore and understand TONS of code that I couldnāt access before!
Reading headers, kernel modules, libraries and library wrappers even for other languages (i.e. looking at how a cairo library for Lua is actually using cairo, or, what graphic library is some program using).
It also removed the āunsolvableā issues Iād come across when a ./configure; make; make install wouldnāt work. Are the headers on the right place? How about my LD path?
Got a program in a .deb package but Iām running fedora? No prob, unpack it to desktop, update the LD_PATH variable and we are in business!
Even though Iām still semi-reluctant about AI, Iāve been getting a lot more benefit by asking general questions instead of asking it to implement things. Prompts like āhow can I append X to a Y structure in <language that Iām learning>ā instead of āhow can write an app that does ā.
I find AI absolutely phenomenal in helping come up with meaningful functions/variable names! Itās also a great tool to discover functions/ libraries that I didnāt know about, which usually leads me to the documentation of the library.
All of this though is in the context of a language that is not too familiar to me. In a language that Iām experienced at ChatGPT feels more like an incompetent coders that I need to be constantly correctingā¦ which, Iād just rather my own code instead of exchanging coding for code reviewing.
Iām not sure Iād consider this negative as the paper does. While it can indeed be a sign of over-reliance it could also be a didactic tool for understanding better the problem. I think many of us might experienced how a problem/task can sound completely incomprehensible and when talking with the author or hearing the instructions rephrase the problem it suddenly clicks and things make more sense. I think that ChatGPT is very good at saying exactly what itās been prompted but differently, which in some cases can be frustrating, but in some cases (maybe like this one) could be exactly what is needed!
I think the part weāre missing here is how were the kids selected? The linked paper says that they recruited from coding camps, but is this a bunch of kids who wanted to learn to code, or a bunch of kids whose parents want them to learn to code?
Because a kid who doesnāt want to be there taking the shortest path to get through the assignment seems perfectly reasonable. A kid who wants to learn skipping the whole learning part seems significantly worse.
Agreed on your first point. I call this āUsing AI as a Reverse Search Engineā and have written about it here.
This got me! š
Iām so stoked about this! It feels like a macOS release back in the days when they were adding features instead removing options and locking user in.
But itās open source!
Sometime ago I got tired of gnome forcing their idea of desktop and making it harder and harder to customize it. But I really liked the defaults of gnome.
Then I decided to throw 10 mins at KDE and try to see if I could make it for, and just wow! Whatever you see, just right-click it and change it!
Sorry yāall Iām in love with KDE/plasma and Iām excited to get my hands on v6!
I can sort of see the point that the author makes but that is not my experience with tailwind. While they have been making some questionable choices IMHO with newer releases (I liked the v1 drop 1 single css and thatās all) tailwind works perfectly for what I want it, fast iteration of front end design.
In quite a few roles that Iāve been at the frontend is one of the things that changes the most, as a company works out market fit (Iāve worked most of my career in startups)
That tailwinds says that @apply is bad practice is totally irrelevant for me. @apply is the natural next step after things get solidified designwise, and if that feature were to be deprecated Iād likely start shopping for an alternative.
I donāt think that the final form of a product that uses tailwind should be an html with all the utility classes in it, but a move towards a more semantic approach.
Why not start with CSS then? Because I donāt know yet how the html of the component Iām making should look like. Do I need an extra parent div to add some shadow? Is the a child div with inline grid to show three items in it? The traditional css writing yield the .modal and .modal-wrapper and .modal-wrapper-parent.
After using tailwind and quickly figuring out what is needed AND what is not needed I can then go back and make my own .modal, .modal-header, .modal-body, etcā¦
But hey, thatās just a theory!
Is the first time I hear about CHERI and it certainly sounds fascinating!
It seems like memory safety on the software add quite some complexity, so if memory safety could be handled by the hardware, that could allow for more less software complexity, more intuitive code that relies on hardware guarantees!
I gave up after three efforts from 1998 until 2020. It requires a lot of dedication, the rewards mentally are immense, but there is what you like and there is life. And in my case they were incompatible.
I have never written complex Haskell (the closest Iāve come is porting the BlueSpec SystemVerilog compiler, written in Haskell, to FreeBSD, which was mostly mechanically adding cases to either do the same thing as Linux or macOS and to conflate things like āobject file format is ELFā and āOS is Linuxā or āutilities behave like BSD utilitiesā and āOS is Darwinā).
Haskell is one of the languages, like Smalltalk and Erlang (maybe Elixir? Iāve not used it yet but it seems nice from a cursory glimpse) where learning it makes you a better programmer in other languages. I much prefer reading (and maintaining) C++ code written by people who think in Haskell than people thinking in any other language. C++ code written by people thinking in C is awful and by people thinking in Smalltalk is usually inefficient (though that can be a good tradeoff for libraries when it comes along with very loose coupling).
Having just picked up Elixir two days ago and then shipped a POC with Phoenix, Elixir to me falls into a different category. Iāve attempted Scheme and Smalltalk and Janetā¦ they are not the same :-) Elixir seems focused on making one productive while at the same time being fun? (pun intendedā¦ š¤Ŗ)
But indeed, it also makes you think differently when programming on other languages (even start disliking other languages because they donāt have the nice features like pattern matching that Elixir has!)