canadaduane

joined 2 years ago
MODERATOR OF
 

I started a local vibecoders group because I think it has the potential to help my community.

(What is vibecoding? It's a new word, coined last month. See https://en.wikipedia.org/wiki/Vibe_coding)

Why might it be part of a solarpunk future? I often see and am inspired by solarpunk art that depicts relationships and family happiness set inside a beautiful blend of natural and technological wonder. A mom working on her hydroponic garden as the kids play. Friends chatting as they look at a green cityscape.

All of these visions have what I would call a 3-way harmony--harmony between humankind and itself, between humankind and nature, and between nature and technology.

But how is this harmony achieved? Do the "non-techies" live inside a hellscape of technology that other people have created? No! At least, I sure don't believe in that vision. We need to be in control of our technology, able to craft it, change it, adjust it to our circumstances. Like gardening, but with technology.

I think vibecoding is a whisper of a beginning in this direction.

Right now, the capital requirements to build software are extremely high--imagine what Meta paid to have Instagram developed, for instance. It's probably in the tens of millions or hundreds of millions of dollars. It's likely that only corporations can afford to build this type of software--local communities are priced out.

But imagine if everyone could (vibe)code, at least to some degree. What if you could build just the habit-tracking app you need, in under an hour? What if you didn't need to be an Open Source software wizard to mold an existing app into the app you actually want?

Having AI help us build software drops the capital requirements of software development from millions of dollars to thousands, maybe even hundreds. It's possible (for me, at least) to imagine a future of participative software development--where the digital rules of our lives are our own, fashioned individually and collectively. Not necessarily by tech wizards and esoteric capitalists, but by all of us.

Vibecoding isn't quite there yet--we aren't quite to the Star Trek computer just yet. I don't want to oversell it and promise the moon. But I think we're at the beginning of a shift, and I look forward to exploring it.

P.S. If you want to try vibecoding out, I recommend v0 among all the tools I've played with. It has the most accurate results with the least pain and frustration for now. Hopefully we'll see lots of alternatives and especially open source options crop up soon.

 

Vibecoding as a term is only a month or so old--but I think it captures a new and significant shift in the way we might approach coding now and in the future.

Andrej Karpathy tweeted (Xed?) about it here:

There's a new kind of coding I call "vibe coding", where you fully give in to the vibes, embrace exponentials, and forget that the code even exists. It's possible because the LLMs (e.g. Cursor Composer w Sonnet) are getting too good. Also I just talk to Composer with SuperWhisper so I barely even touch the keyboard. I ask for the dumbest things like "decrease the padding on the sidebar by half" because I'm too lazy to find it. I "Accept All" always, I don't read the diffs anymore. When I get error messages I just copy paste them in with no comment, usually that fixes it. The code grows beyond my usual comprehension, I'd have to really read through it for a while. Sometimes the LLMs can't fix a bug so I just work around it or ask for random changes until it goes away. It's not too bad for throwaway weekend projects, but still quite amusing. I'm building a project or webapp, but it's not really coding - I just see stuff, say stuff, run stuff, and copy paste stuff, and it mostly works.

I think Andrej captured something important, and as a community the AI/software engineering community has adopted and adapted its meaning.

Wikipedia has a slightly more evolved definition since Andrej's tweet:

Vibe coding is an AI-dependent programming technique where a person describes a problem in a few sentences as a prompt to a large language model (LLM) tuned for coding. The LLM generates software, shifting the programmer’s role from manual coding to guiding, testing, and refining the AI-generated source code. Vibe coding is claimed by its advocates to allow even amateur programmers to produce software without the extensive training and skills previously required for software engineering.

As a software engineer, I'm very interested in this trend--both because it represents an entirely new way of coding (currently, sometimes helpful sometimes two-clever-by-half) and because it threatens my assumptions about coding.

But also because it enables people who have never coded to imagine building for their first time, and I welcome that.

1
submitted 3 months ago* (last edited 3 months ago) by canadaduane@lemmy.ca to c/vibecoders@lemmy.ca
 

I'm enjoying the challenge of using these high-level editors. They don't always do what I want. But many times, they explore possibilities I never would have considered.

Currently, I'm giving Windsurf a try, both in my personal projects and at work. I really like the Cascade process, where it tries something, then realizes it could do a bit more, then tries an alternate path, etc. It's a little easier for me to work with than Cursor, although I haven't used Cursor in a couple of weeks--so maybe it's already improved lol.

I tried working with dual Windsurf windows open today--the idea was: could I manage two "AI agents" as they try each to solve a different problem? I had one exploring a bug: first, chatgpt 4o helped convert screenshots of the issue to text, then I pasted all of the notes our product manager had made (along with the screenshot-to-text) and had Windsurf noodle on that for a bit. It came very close to a solution, but the tests were unable to prove the solution worked, so I had to revert to normal coding.

On the other Windsurf window, I was doing some new feature development. One trick I learned is to create a directory full of readme-esque files that cover various best practices or architectural decisions we've made in our codebase. For instance: a how-to-test.md file, with detailed instructions on how we write SQL tests against a database. I could @-reference this file (indicating to the AI that this file should be read/used/followed) whenever writing tests or using a test runner. Then I added this file to my .windsurfrules file and it seemed to pick that up consistently.

Maybe the "trick" to this new world is to be very detailed about all of the "tribal knowledge" practices we all keep in our heads, document them, and then conditionally call them up when appropriate? If I understand correctly, this is essentially what Devin (the $500+/mo AI Jr. developer) is doing and what is required to get this AI to do its job.

Overall, I enjoyed this new mode of "high level" development. I'll probably give it a rest at work for a few days, but I'm still open to it being an effective way to work. Will try again soon.

 

I showed my 15yo daughter what I was doing (building https://vibe-coders.org/) and she immediately saw promise it in to build her own health app and schedule her own exercise routine in the morning.

Within a few minutes she'd created a prompt that generated a website just for her--no login, no sharing her data. She made flowers grow out of the corners when she loads the website, just for a personal touch. She can add scheduled weekly exercises and then check them off on a daily basis when she does them.

Super cool!

[–] canadaduane@lemmy.ca 3 points 4 months ago

I don't think I have intrusive thoughts. I'm happy, generally pretty creative (hobbies, coding, etc.). Sometimes politics and world affairs get me down, but I don't feel like they are "intrusive", more like affecting my mood. I like how /u/0x01@lemmy.ml put it--I kind of let my mind do whatever it does, and I try to be an observer of what unfolds. I think meditation practice has helped with this practice (Vipassana or Insight meditation specifically).

[–] canadaduane@lemmy.ca 3 points 4 months ago* (last edited 4 months ago)

Look for escape hatches. I run a self-hosted Cloudron server. The software I host on my home server is FOSS via Cloudron, but Cloudron itself is a service that keeps each of the FOSS apps up to date with security upgrades and data migrations when necessary. It's a huge boon to running a self-hosted server.

But when it comes down to it, they could potentially close up somehow (new leadership, get bought out, shut down etc.) They've left an escape hatch though--you can bundle and build your own apps, with a CloudronManifest.json etc. This would allow me to continue to run and update software if I absolutely needed to, without their support.

[–] canadaduane@lemmy.ca 3 points 4 months ago

theinternet.com

[–] canadaduane@lemmy.ca 32 points 4 months ago* (last edited 4 months ago) (3 children)

It's tricky. There is code involved, and the code is open source. There is a neural net involved, and it is released as open weights. The part that is not available is the "input" that went into the training. This seems to be a common way in which models are released as both "open source" and "open weights", but you wouldn't necessarily be able to replicate the outcome with $5M or whatever it takes to train the foundation model, since you'd have to guess about what they used as their input training corpus.

[–] canadaduane@lemmy.ca 6 points 5 months ago (1 children)

I recall seeing this video a few months ago--possibly last winter.

[–] canadaduane@lemmy.ca 1 points 5 months ago

I see. Yeah, I agree with you there.

[–] canadaduane@lemmy.ca 5 points 5 months ago (5 children)

I think you're right circa a few years ago. However, as someone working in AI, I don't think it is true any longer. I'm not saying the substack article is legit, btw, just that the fulcrum has shifted--fewer people can now do much more, aided by algorithms and boosted by AI system prompts. Especially if it's a group internal to a company that has database access etc.

[–] canadaduane@lemmy.ca 2 points 5 months ago

I do work with LLMs, and I respect your opinion. I suspect if we could meet and chat for an hour, we'd understand each other better.

But despite the bad, I also see a great deal of good that can come from LLMs, and AI in general. I appreciated what Sal Khan (Khan Academy) had to say about the big picture view:

There's folks who take a more pessimistic view of AI, they say this is scary, there's all these dystopian scenarios, we maybe want to slow down, we want to pause. On the other side, there are the more optimistic folks that say, well, we've gone through inflection points before, we've gone through the Industrial Revolution. It was scary, but it all kind of worked out.

And what I'd argue right now is I don't think this is like a flip of a coin or this is something where we'll just have to, like, wait and see which way it turns out. I think everyone here and beyond, we are active participants in this decision. I'm pretty convinced that the first line of reasoning is actually almost a self-fulfilling prophecy, that if we act with fear and if we say, "Hey, we've just got to stop doing this stuff," what's really going to happen is the rule followers might pause, might slow down, but the rule breakers--as Alexander [Wang] mentioned--the totalitarian governments, the criminal organizations, they're only going to accelerate. And that leads to what I am pretty convinced is the dystopian state, which is the good actors have worse AIs than the bad actors.

https://www.ted.com/talks/sal_khan_how_ai_could_save_not_destroy_education?subtitle=en

[–] canadaduane@lemmy.ca 0 points 5 months ago* (last edited 5 months ago) (2 children)

My daughter (15f) is an artist and I work at an AI company as a software engineer. We've had a lot of interesting debates. Most recently, she defined Art this way:

"Art is protest against automation."

We thought of some examples:

  • when cave artists made paintings in caves, perhaps they were in a sense protesting the automatic forces of nature that would have washed or eroded away their paintings if they had not sought out caves. By painting something that could outlast themselves, perhaps they wished to express, "I am here!"
  • when manufacturing and economic factors made kitsch art possible (cheap figurines, mass reprints, etc.), although more people had access to "art" there was also a sense of loss and blandness, like maybe now that we can afford art, this isn't art, actually?
  • when computers can produce images that look beautiful in some way or another, maybe this pushes the artist within each of us to find new ground where economic reproducibility can't reach, and where we can continue the story of protest where originality can stake a claim on the ever-unfolding nature of what it means to be human.

I defined Economics this way:

"Economics is the automation of what nature does not provide."

An example:

  • long ago, nature automated the creation of apples. People picked free apples, and there was no credit card machine. But humans wanted more apples, and more varieties of apples, and tastier varieties that nature wouldn't make soon enough. So humans created jobs--someone to make apple varieties faster than nature, and someone to plant more apple trees than nature, and someone to pick all of the apples that nature was happy to let rot on the ground as part of its slow orchard re-planting process.

Jobs are created in one of two ways: either by destroying the ability to automatically create things (destroying looms, maybe), or by making people want new things (e.g. the creation of jobs around farming Eve Online Interstellar Kredits). Whenever an artist creates something new that has value, an investor will want to automate its creation.

Where Art and Economics fight is over automation: Art wants to find territory that cannot be automated. Economics wants to discover ways to efficiently automate anything desirable. As long as humans live in groups, I suppose this cycle does not have an end.

[–] canadaduane@lemmy.ca 8 points 6 months ago (1 children)

Thanks for posting this. I am 4th gen since my family (i.e. great grandfather) served in a war.

I think generations that have not gone through war have a hard time recognizing war-induced inter-generational trauma, since it's often the case that men who went through that hell didn't want to bring it home and talk about it, for various reasons (e.g. PTSD, shame, thoughtfulness).

Their behaviors might have caused kids and grand-kids to suffer (e.g. physical abuse, emotional abuse), but those kids might not understand why their dad, grandpa, etc. behaved the way he did, so maybe the source of the problem gets buried and forgotten.

[–] canadaduane@lemmy.ca 5 points 6 months ago

Because their creators allowed them to ponder and speculate about it.

29
submitted 6 months ago* (last edited 6 months ago) by canadaduane@lemmy.ca to c/pop_os@lemmy.world
 

This has been killing me in Cosmic as I daily drive the alpha--the Alt-Tab functionality up until now has not cycled through most recently focused apps--rather, it has used a static list in the launcher that seems to be based on app launch order.

Not any longer! Two PRs will soon land from wash2, which continues the work of wizznokes (who started on this feature nearly 6 months ago), making recency-based alt-tab work!!

You'd think it's an easy task, but there are, afaiu several subtle things involved, including the need to create a protocol for cosmic-comp for active workspace combined with active app, so cosmic-launcher would be aware of and able to switch among workspaces, depending on circumstances of the most recently focused app.

I just pulled the branches behind these PRs and compiled and tested. What a beautiful sight to behold! Thank you all who were involved!

While I'm not involved directly with development, if I were to make a guess, I'd think these will reach the staging servers and be released this coming week if you're following popdev master (sudo apt-manage add popdev:master).

9
submitted 1 year ago* (last edited 1 year ago) by canadaduane@lemmy.ca to c/pop_os@lemmy.world
 

My laptop is running modern hardware with NVME drive and has 64GB of RAM. Running Pop!_OS 22.04 with Gnome/Wayland.

When I launch the cosmic-store or cosmic-edit (for example) via command line or launcher, each takes about 25 seconds for its app window to load. Loading the Pop Shop in the same fashion takes less than 1 second.

I saw a few lines indicating files couldn't be opened, and thought at first maybe my ulimit was set incorrectly, but there is plenty of headroom on my user (soft limit: 4096, hard limit: 1048576).

I do see a handful of logs that look questionable:

May 04 07:50:59 rosie systemd[2109]: app-gnome-com.system76.CosmicEdit-17126.scope: Couldn't move process 17126 to requested cgroup '/user.slice/user-1000.slice/user@1000.service/app.slice/app-gnome-com.system76.CosmicEdit-17126.scope': No such process
May 04 07:50:59 rosie systemd[2109]: app-gnome-com.system76.CosmicEdit-17126.scope: Failed to add PIDs to scope's control group: No such process
May 04 07:50:59 rosie systemd[2109]: app-gnome-com.system76.CosmicEdit-17126.scope: Failed with result 'resources'.
░░ Subject: Unit failed
░░ Defined-By: systemd
░░ Support: http://www.ubuntu.com/support
░░ 
░░ The unit UNIT has entered the 'failed' state with result 'resources'.
May 04 07:50:59 rosie systemd[2109]: Failed to start Application launched by gnome-shell.

What could be causing the cosmic apps to load so slowly?

 

Some article websites (I'm looking at msn.com right now, as an example) show the first page or so of article content and then have a "Continue Reading" button, which you must click to see the rest of the article. This seems so ridiculous, from a UX perspective--I know how to scroll down to continue reading, so why hide the text and make me click a button, then have me scroll? Why has this become a fairly common practice?

2
submitted 2 years ago* (last edited 2 years ago) by canadaduane@lemmy.ca to c/linux@lemmy.ml
 

I want to run a command and see all of its output on the left hand side, while simultaneously searching/grepping for particular lines on the right hand side. In other words, I want a temporary vertically split screen in my CLI, ideally with scrollback on each side of the split, but where I expect the left hand side to be scrolling thousands of lines quickly, while on the right hand side is a slow accumulation of "matches" to my grep.

Is this possible today? What tools would you recommend to accomplish this?

EDIT: To be clear, a one-liner is preferable over learning tmux or screen, although this does motivate me to perhaps begin learning tmux.

In case this is an X/Y problem: The specific command I'm trying to run is an rsync simulation (dry-run) where I want to both check that the command works, and subsequently check that there are no denied errors. The recommended way to do this is to run the command twice, as follows (but I want to combine it into one pass):

# first specify the "-n" parameter so rsync will simulate its operation. You should use this before you start:
rsync -naP --exclude-from=rsync-homedir-local.txt /home/$USER/ $BACKUPDIR/

# check for permission denied errors in your homedir:
rsync -naP --exclude-from=rsync-homedir-local.txt /home/$USER/ $BACKUPDIR/ | grep denied
 

LazPaint is a surprisingly good image editor.

I've looked around at many raster image editing apps for Linux, and I have mostly been disappointed.

  • The Gimp is hard to use and has lagged behind major other platforms' banner image editors.
  • Pinta is "ok" but has graphics glitches on my hardware (Intel).
  • Inkscape is good but specializes in vector graphics, not raster images.
  • Krita looks like it might be particularly good for artists using a tablet, but is mediocre for raster image tasks and has a complex interface.

I've also tried various "simple" apps such as KolourPaint [1] and Drawing [2], but these are generally more like "MS Paint" and have limited capabilities when importing images for various editing tasks.

LazPaint has all of the major features you would expect, without an over-complicated UI--selection, layers, gradients, filters, shapes, opacity, many file formats etc.. However, it is not wrapped in a Flatpak, so you need to download the "deb" file and install with Eddy (or the CLI):

https://github.com/bgrabitmap/lazpaint/releases/tag/v7.2.2

As an aside, I recently also discovered Pixelitor, and I think it's another one to keep an eye one. The author seems to be making some great progress lately (most recent release in September 2023).

 

The pop_os subreddit has many Pop!_OS-specific help requests per day. I'm kind of surprised there aren't more here on the Fediverse/lemmy side of the community.

I browse looking for ways to help, and after having shifted my attention from Reddit to the Fediverse I feel like I could be helping out more. Why aren't there more requests here?

 

I'm exploring ways to shave a few seconds off of my boot time, and I came across a post that stated, "my initrd is pretty small--doesn’t really load much--and Arch also defaults to using zstd which is also faster to decompress versus gzip."

What compression does Pop! use for initrd and the kernel? When I run ls -al /boot, I see files such as 14M vmlinuz-6.4.6-76060406-generic and 119M initrd.img-6.4.6-76060406-generic. Are these compressed?

Lastly, is there a way to choose the compression of these boot files without a custom kernel build? Or is what I'm trying to do "off the beaten path" and going to lead to "you have to compile your own kernel from here on out"?

 

Our new, not yet released Rust-based desktop environment for Pop!_OS and other Linux distros is filling out with some essential systems that cater the DE to both users and developers alike. Customization is one of our main focuses for COSMIC, and was a huge focus for us in August, too.

view more: next ›