Heyyyyyyyyyy

  • 2 Posts
  • 17 Comments
Joined 1 year ago
cake
Cake day: August 9th, 2023

help-circle

  • I also have a similar side project planned for a revamp. Successfully made a v1 with grease monkey (vanilla JS) + stylish back in maybe 2016. Super dangerous to keep firefox 56 running only for this front-end. Just need to do the v2 then migrate to latest librewolf.

    I want to redo the whole thing in Vue, client side routing with build step. The problem is that

    • site is not open source
    • no API doc (but I already made my own)
    • required log-in (no sensitive info)
    • some route request must be made from that domain due to CORS

    My goal is not to change the UI but wipe the whole page and start over with custom API call instead. V1 do this by visiting a 404 route to stop unnecessary load and use my own URL param for the API call. For bonus cringe I used local storage for database.

    Ended up having to use userscript, and now I’m kinda stuck with how to mash Vite build and tamper/violent monkey together :(
    Do you have any suggestion or resource I can learn more on this?







  • Regarding SEO, What’s stopping maintainers from vandalizing their own fandom page?

    It would not be difficult to make a bot to update fandom page with a convincing but slightly wrong info, after a few hundred iterations, it’s all useless. Go look at what google recommend and do complete opposite. I’m convinced this will bomb ranking and put whatever wiki they migrated to at the top.


  • Can you explain a bit more about “zooming, different levels of detail” you mention? Maybe break them down to separate issue you are having with the library, what does it do, what do you want that it’s not doing. If there is a way to tweak it then you don’t have to build the component from scratch.

    But if you already abandoned the idea of tweaking timeline-js then you can have full control in vue, have to build it yourself though. Start by breaking the functionality of the timeline into separate interaction. From a quick look, timeline-js just make style attribute reactive. Have a box? good. Now put really long div in it with placeholder texture. Can you drag/scroll it? no? grab a suitable function from vueuse and make it scrollable. Follow with markers, zoom, dummy event items, data fetching (the actual width, marker spacing, events placement can be calculated from timestamp in json after this step), lazy loading, styling, animation, so on.

    I don’t know how much experience do you have with each things required (html, css, js, vue) so it is a bit difficult to give useful answer.



  • Flac is a low bar for any music player though. I don’t know whether itunes support it yet, don’t care.

    I’m sure Rhythmbox works well for you and that is great. But I also need some niche features which might not be in it.

    Mostly conversion and forensic thing.
    ape tak tta format, bit compare, audio checksum, mass-tag/batch-tag, replaygain, custom playlist columns, statistic driven field. Don’t know what else until I try and find it’s missing.

    I’m also sure I can get all those and more in different cli tool if I want but getting them in one software is very convenient.

    After a quick look, DeaDBeeF might have most of what I want.

    • Sort and group the tracks in any order you wish, using advanced Title Formatting scripting, compatible with Foobar2000

    Got the date wrong, last time I tried it was 2018. Lot of new features added since then.








  • Generally you don’t need anything for child element, except in rare case, which you have seen before a fix…
    Columns usually try to balance every columns to have same height, and last column have least items.

    EDIT: In your case, \ having a margin-top, which got clipped when new column starts. I don’t know if there is a fix for this but I would use padding instead.

    CSS is chaotic, dude.

    ul {
      /* reset */
      margin: 0;
      padding: 16px;
    
      columns: 2;
      /* box-sizing: border-box; */
    }
      @media screen and (min-width: 640px) {
        ul {
          columns: 3;
        }
      }
      @media screen and (min-width: 960px) {
        ul {
          columns: 4;
        }
      }
    
      ul li {
        list-style-type: none;
        padding: 2px 16px 2px 4px;
        font-size: 120%;
    
        display: flex;
        break-inside: avoid;
      }
      ul li a {
        /* display: inline-block; */
        background-color: #35516c;
        color: #d2dade;
        text-decoration: none;
        padding: 2px 8px;
        border: solid 1px #d2dade;
    
        flex-grow: 0;
      }
        ul li a:first-child {
          flex-grow: 1;
          /* width: 106px; */
          /* margin-right: -3px; */
        }
        ul li a:hover {
          background-color: #1e445d;
          color: #fff;
          border: solid 1px #fff;
        }