Skip Navigation
fperson fperson @lemmy.world

I build Flutter apps & packages, Neovim plugins, and a bunch of other stuff. I love good software, and I love the internet.

☮️ 🛸 💾

🇦🇲 Based in Yerevan, Armenia

GitHub | YouTube | Personal blog

Posts 20
Comments 35
And i was like nooo way
  • can i use the cup with the emo kids?

  • what would you do as a beginner?
  • Hi! This may sound weird but consider watching the "Halt and Catch Fire" show. It does an excellent job of showing the thing's passionate, emotional, and personal parts. And it could lead to some ideas. It could help with the drive. It definitely made me realize how software, the idea of software is inherently essential to me.

  • xterm.dart is a fast and fully-featured terminal emulator for Flutter applications, with support for mobile and desktop platforms.

    pub.dev xterm | Flutter Package

    xterm.dart is a fast and fully-featured terminal emulator for Flutter applications, with support for mobile and desktop platforms.

    This looks super-cool, maybe could be useful to some :)

    0

    I just noticed that pub.dev has a different favicon based on the package type :)

    0
    Down The Rabbit Hole -TempleOS [1:25:52]
  • Oh, yeah, this is a good one!

  • ios app that contains excellent film LUTs
  • It seems that, unfortunately, the app isn't available for download on App Store anymore.

  • Bots are trying to join my instance now through the application requirement
  • Why are these bot operators going through the hassle of joining existing instances

    I wonder if there's already a "the bots are from Reddit" conspiracy :D

    I really see no point in these actions. I mean, seriously, why would you want to just harm something open?

  • Effective Dart
  • I usually add all lint rules and disable the ones I don't like/the ones that conflict with each other

  • [UserScript] Yet another redirector (hopefully, a better one!)
  • There’s an open-source and privacy-oriented userscript manager for Chrome(ium) called ViolentMonkey. Highly recommended using that!

  • [UserScript] Yet another redirector (hopefully, a better one!)
  • That’s a great idea, thanks! Will do :)

  • [UserScript] Yet another redirector (hopefully, a better one!)
  • Thanks! Yup, I’ll add it to greasyfork later :)

  • [UserScript] Yet another redirector (hopefully, a better one!)
  • I think it’s pretty similar. But this is a bit more minimal and it’s a userscript (which I prefer over extensions for small stuff)

  • Yet another redirector (hopefully, a better one!)

    Hey folks! I hope you're having a lovely day. I was using the "Lemmings fix" by @[email protected] for a while now and have been improving it to tailor my needs.

    This one

    • works even when browsing remote instances on remote instances
    • adds the redirect button to the "sidebar"/community card
    • works on mobile, too

    Here are a couple of screenshots:

    ! !

    Here's the code (modify localLemmy before using):

    ```js // ==UserScript== // @name Lemmings Fix // @version 1.1 // @description Redirect to your local Lemmy instance // @author @lemmy.world/u/soy, @lemmy.world/u/fperson // @match https:///c/ // @icon https://join-lemmy.org/static/assets/icons/favicon.svg // ==/UserScript==

    (function () { 'use strict';

    const localLemmy = 'lemmy.world'; const isLemmy = document.head.querySelector('[name~=Description][content]').content === 'Lemmy';

    if (!isLemmy) { return; }

    // Get URL info const splitUrl = location.href.split('/'); const instanceUrl = splitUrl[2]; const community = splitUrl[4]; let localizedUrl = https://${localLemmy}/c/${community}; if (!community.includes('@')) { localizedUrl = ${localizedUrl}@${instanceUrl}; }

    // Create redirect button if not on local if (instanceUrl !== localLemmy) { var zNode = document.createElement('a'); // create anchor tag zNode.href = localizedUrl; // set the href zNode.textContent = Open in ${localLemmy}; // set the text zNode.id = 'localizeContainer'; // set the id // update styles for a more modern look zNode.style = display: inline-block; cursor: pointer; padding: 5px 20px; background-color: #007BFF; color: #FFF; text-decoration: none; border-radius: 5px; border: none; box-shadow: 0 2px 5px rgba(0,0,0,0.15); font-size: 1rem; font-weight: bold; transition: background-color 0.3s ease; top: 5rem; right: 1rem; z-index: 1000; ; zNode.addEventListener('mouseenter', function () { this.style.backgroundColor = '#0056b3'; }); zNode.addEventListener('mouseleave', function () { this.style.backgroundColor = '#007BFF'; });

    function addButtonIfNotPresent(node) { const link = node.querySelector('a[href*="/create_post"]'); if (link && !link.parentNode.querySelector('#localizeContainer')) { var zNode = document.createElement('a'); zNode.href = localizedUrl; zNode.textContent = Open in ${localLemmy}; zNode.id = 'localizeContainer'; zNode.style = display: inline-block; cursor: pointer; padding: 5px 20px; background-color: #007BFF; color: #FFF; text-decoration: none; border-radius: 5px; border: none; box-shadow: 0 2px 5px rgba(0,0,0,0.15); font-size: 1rem; font-weight: bold; transition: background-color 0.3s ease; top: 5rem; right: 1rem; z-index: 1000; ; zNode.addEventListener('mouseenter', function () { this.style.backgroundColor = '#0056b3'; }); zNode.addEventListener('mouseleave', function () { this.style.backgroundColor = '#007BFF'; });

    link.parentNode.appendChild(zNode); } }

    const observer = new MutationObserver(function (mutationsList, observer) { for (let mutation of mutationsList) { if (mutation.type === 'childList') { mutation.addedNodes.forEach((node) => { if (node.nodeType === 1) { addButtonIfNotPresent(node); } }); } } });

    // Options for the observer (which mutations to observe) const config = { childList: true, subtree: true };

    // Target node to observe const targetNode = document.body;

    // Start observing the target node for configured mutations observer.observe(targetNode, config);

    // Run initial check document.querySelectorAll('.card-body').forEach(addButtonIfNotPresent); } })(); ```

    18
    In Search Of A Flat Earth | Folding Ideas [1:16:17]
  • Thanks for sharing! The beginning and the comments look promising; added to WL!

  • For those of you on iOS 17 dev edition, how are you liking it?
  • Also, if there are any Apple Music users on iOS 17, I'd highly appreciate it if you share the experience. When I first heard the announcement, I thought they were finally adding something like Spotify Connect, but after looking for it, I think it's not the case, unfortunately.

  • Every Day with Xcode
  • and then it's gonna say you need to update Xcode to be compatible with your iOS

    (╯°□°)╯︵ ┻━┻

  • EVERY South Park Controversy EXPLAINED

    It was fine :)

    0
    [Userscript] Hover Cards for users, get info without opening their profile
  • You could install an adblocking user script maybe

    You can! Ghostery and Adguard are available for Safari. Also, lots of userscripts :)

  • Using pattern matching feels great!
  • Replied above for a better comment hierarchy. Feel free to comment there if you have any questions/thoughts!

  • Using pattern matching feels great!
  • It's also worth noting that freezed is switching to the Dart 3 pattern matching, too (see https://pub.dev/packages/freezed#legacy-union-types-and-sealed-classes).

    Anyways, I think this is a matter of preference, and I've been historically avoiding codegen as much as possible. I'm glad it's now easier to do that, but freezed is still cool and could be really helpful for certain people/scenarios!

  • Using pattern matching feels great!
  • Since there are too many examples on the freezed README and the one at the top isn't a good use case to begin with (I like to keep my data models (DTOs) separate from entities, and DTOs are good enough with plain json_serializable), I'll provide an example from one of the projects I'm currently working on. It is still more verbose than it would usually be with freezed, however, I'm pretty fine with that. Also, it's worth noting that whenever I need a copyWith, I still use codegen with copy_with_extension. It has a nicer copyWith API and only handles that instead of a bunch of other stuff I don't necessarily need.

    part of 'simply_browser_bloc.dart';
    
    sealed class SimplyBrowserState with EquatableMixin {
      const SimplyBrowserState();
    }
    
    class SimplyBrowserInitial extends SimplyBrowserState {
      const SimplyBrowserInitial();
    
      @override
      List<Object?> get props => const [];
    }
    
    class SimplyBrowserLoading extends SimplyBrowserState {
      const SimplyBrowserLoading({this.loadedSimplies});
    
      final List<Simply>? loadedSimplies;
    
      @override
      List<Object?> get props => const [];
    }
    
    class SimplyBrowserFailed extends SimplyBrowserState {
      const SimplyBrowserFailed(this.failure);
    
      final ApiFailure failure;
    
      @override
      List<Object?> get props => [failure];
    }
    
    class SimplyBrowserLoaded extends SimplyBrowserState {
      const SimplyBrowserLoaded({
        required this.canLoadMore,
        required this.simplies,
      });
    
      final bool canLoadMore;
      final List<Simply> simplies;
    
      @override
      List<Object?> get props => [simplies];
    }
    

    And then using the sealed class itself becomes super-nice, like the following snippet (only wrapped in a function to state clearly where the variable is coming from):

      List<Simply>? getSimplies(SimplyBrowserState state) {
        return switch (state) {
          SimplyBrowserLoading(:final loadedSimplies) => loadedSimplies,
          SimplyBrowserLoaded(:final simplies) => simplies,
          _ => null,
        };
      }
    
  • 757 - 100 Gecs

    This is a good one!

    0

    Found an old interview with Kap Bambino

    xlr8r.com Inbox: Kap Bambino

    This week Inbox enters the realm of wild French electro-grunge duo Kap Bambino. The gypsy […]

    The answers are pretty funny and fully match the duo's vibe!

    0

    Nv4.Dll – the song that got me hooked on Bondage Fairies

    I found it pretty randomly. I believe it was an Apple Music recommendation or something. And I couldn't stop listening to it; I was constantly going back to it, listening repeatedly. It sounded terrific!

    Then I went ahead to check out some more of their music. And I love them! They're one of my favorite bands nowadays; definitely worth checking out!

    1

    New video: "What pisses me off about the failed Reddit protest..."

    Yup, I agree with him. However, I'm still happy that all the Reddit stuff happened. That may naturally sound weird, but at least now there are enough people on Lemmy to be a viable replacement for me personally

    9

    John Frusciante - Forever Away

    This song is amongst the most influential in my life. Especially nowadays when I can't visit my hometown due to political/war issues.

    I remember listening to it and feeling like this outcast of society as a kid. And having lots of late nights, following my curiosity, talking to my internet pals, and trying to figure out what this life thingie is.

    Things have changed now, but the music is still unbelievably beautiful.

    0

    spez: "But there's nowhere on Earth that people aren't around to rip on me". Boys:

    1

    Aromanticism as a choice?

    Hey folks, I hope you're having a lovely day. I've been recently thinking about the idea of being aromantic by choice. It may sound weird, and some people may even disagree with it. However, I genuinely believe that it's pretty legit and helpful.

    I consider myself aromantic. While it hasn't always been this way, I was always kind of leaning toward it. Several months ago, I was chatting with a friend about relationships (not only romantic) and, after some background thinking, concluded to be aromantic, and I'm happy about it since it helps me focus on stuff that I personally find more important. Also, it turns out to help develop better platonic relationships.

    I'm also thinking about making a video on this topic once my tripod arrives (which is in a few days already!), making it even more interesting to discuss :).

    I'd be glad to hear what you think about the idea. And maybe some other folks are this way?

    Peace <3

    edit: editing for possible actual federation?

    2

    Someone made a compilation of every frame where Tweek and Craig are next to each other

    And it sounds like a lot of work ¯\(ツ)

    0

    John Frusciante Sublemmy

    lemmy.world John Frusciante - Lemmy.world

    A community based around the happening of John Frusciante. The curtains are made for moving! — RHCP Community [/c/[email protected]]

    John Frusciante - Lemmy.world

    Hey, folks! I hope you're having a lovely day! I'm a big fan of John Frusciante and created [email protected] for people who want to discuss John's music, thoughts, interviews, etc., on Lemmy! Feel free to join!

    <3

    1

    Forever grateful to John!

    I published this picture several months ago in the r/John_Frusciante subreddit, but I think this can be a fitting first post here!

    Welcome to [email protected], a sublemmy around the happening of John Frusciante! I hope we'll eventually get to the point where decentralized communities are the thing.

    !

    0

    This 2010 Kap Bambino live in London is so full of energy (Dead Lazers & Acid Eyes)

    0

    i love electropunk! join the community if you do too!

    lemmy.world i love electropunk - Lemmy.world

    A sublemmy for everything that feels like electropunk.

    i love electropunk - Lemmy.world

    [email protected] - a community for all-things electropunk 💥

    like a new breath

    like a new desire

    0

    Welcome to [email protected]

    Electropunk has a very special place in my heart. I love it in an unusual way. While there are only several bands that are recognized as electropunk, there's lots of other music that feels like it.

    I've been recently listening to lots of Bondage Fairies, and I think they are now one of my favorite bands! And Kap Bambino is, of course, superb. Just a random thingie :).

    Anyways, feel free to share and discuss everything related to electropunk here!

    0

    Using pattern matching feels great!

    I've been using the new pattern matching from Dart 3 a lot since the release, and I want to share how much better the experience of writing Dart became for me. I completely replaced Freezed with Dart sealed classes, and they're joyful to use too!

    I love Dart!

    6

    South Park Enhancer Browser extension

    github.com GitHub - f-person/parkview_enhancer: Adds useful features for enjoying South Park on the official website

    Adds useful features for enjoying South Park on the official website - GitHub - f-person/parkview_enhancer: Adds useful features for enjoying South Park on the official website

    Hey, fellas! I've been recently watching lots of South Park and found myself wishing that the official South Park website had some additional features/behaviors for a better viewing experience. So I made a browser extension to fix that.

    I myself find it pretty helpful so far! Here's a list of current features:

    • Adds a "Skip Intro" button
    • Automatically hides the cursor after a few seconds of inactivity on the video player
    • Toggle play/pause on click on the video player
    • Always play/pause the video when the spacebar is pressed (instead of scrolling the page if the video is not focused)
    • Configurable seeking time (defaults to 5 seconds)
    • Toggle fullscreen on double-click
    • Makes episodes' list under "Watching" scrollable
    • Focuses the currently selected season when opening the season selection dropdown
    • Makes the "FULL EPISODES" header on the homepage link to the full episodes page.

    I was initially planning also to add functionality for marking episodes as watched/unwatched but dunno when I'll get to that.

    It's open-source and currently supports Chrome (and any Chromium-based browsers; e.g., Brave, Arc) and Firefox. I may eventually build it for Safari too :)

    I hope you find it useful!

    P.S. If you have any small improvement ideas, there's a big chance that I'll implement them if you share them!

    0

    Dart Programming Language sublemmy

    lemmy.world Dart Programming Language - Lemmy.world

    This sublemmy is a place for everything related to the Dart programming language and its tools besides Flutter (use [email protected] [https://lemmy.world/c/[email protected]] for that)

    Dart Programming Language - Lemmy.world

    Hey folks! I hope you're having a lovely day. I created a sublemmy for Dart; feel free to join at [email protected]!

    Edit: Add relative link

    5