• Activity
  • Votes
  • Comments
  • New
  • All activity
    1. A few Off the Bat Thoughts about the Mechanics

      Tags I can totally see nsfw.nude work, but do you think tagging will be done much further? It's relatively much work to tag a thing well, maybe some sort of cross-posting is more rewarding to the...

      Tags

      I can totally see nsfw.nude work, but do you think tagging will be done much further? It's relatively much work to tag a thing well, maybe some sort of cross-posting is more rewarding to the user. Essentially it might be the same thing, but the act of sharing to another tilde feels more rewarding than adding yet another tag.

      Hierarchies in Tags and Tildes

      Yes! I love hierarchies for how they scale.
      Do you think the one-dimensional nature of such a "taxonomy" will get problematic, or is it merely a corner case? I might have "food > recipes" and "food > restaurants" or I might have "recipes > food" and "recipes > chemistry". Again I feel like cross-posting is essential to solve this duplication issue. Maybe this as another chance to improve on reddit: if cross-posts just reference a single post there would be just one big discussion.
      Cfabbro is part of the team? "We were actually considering allowing multiple ways to access the same groups. E.g. ~literature and ~lit going to the same top level group" sounds good.

      Comments

      I think "most votes" has a strong bias towards early comments. Ideally you'd give a new comment the reason of doubt, and make it more visible until a good rating about is has been established. For this you'd have to track up-votes per "seen".
      Sadly it's really hard to track these implicit down-votes ("read but not up-voted") and generally it obfuscates how the site works. I still think it's worth thinking about, especially if you might derive trust/reputation from the up-votes at some point.
      Otherwise commenting on rising stories is the an easy way to farm karma (I tried it on HN to see how the down-vote mechanism works, which is unlocked at 200 karma). Here I also agree with you, that this process should not be 100% automatic.

      Group-specific trust

      If tildes are nested, will reputation (eventually) be inherited up the hierarchy?

      Filter-Bubble (found your opinion in some discussion about it):
      I agree again, good communities are bubbles. I think the "no-downvotes" will help a bit so controversial stuff can rise.

      Links

      I also like your decision to not allow text on links. I really like how HN moderators improve link-titles sometimes to get rid of clickbait or inaccuracies.

      I will give some UX feedback later, when I got used to tildes a bit.

      9 votes
    2. Testing how posting a story would look - Time and Retime by me (MajorParadox)

      A bright light illuminated my workshop suddenly, causing me to drop my tools on the table. A figure appeared at the opposite side of the small office, encased within a surreal shadow in the middle...

      A bright light illuminated my workshop suddenly, causing me to drop my tools on the table. A figure appeared at the opposite side of the small office, encased within a surreal shadow in the middle of the blinding light. Slowly the light faded, as I made out the visitor. I was looking at myself.

      "Wh-what are you- what am I...?" I stumbled, unsure if I could even blink anymore.

      "I'm you from the future," the other me said. He appeared slightly older than I remembered from my mirror that morning.

      "So it works?" I asked, wondering how else I would be there.

      "Yes, it works," he answered, obviously wondering why I would ask such a thing.

      "But why are you here?" I asked, just noticing I wasn't as happy as one would expect from meeting themselves. Not me, I was dazed but ecstatic. The other me seemed like he had been crying. "Are you ok?" I asked myself.

      His eyes widened, but then quickly relaxed. "It's fine, but I just came to the wrong time."

      "You didn't mean to meet me here?"

      "No, this is too late." His voice became cold. "My work can still be recovered if I do it here."

      "Do what here?" I asked, not sure I wanted to know the answer.

      The other me stared, as he pulled out a handheld device, much smaller than my phone. After pressing some buttons on the screen, the bright light returned, enveloping him again until he quickly disappeared from the room. I'm not sure why, but I ran into the area of his departure before the light faded. I panicked when I realized I didn’t know where or when I was going, but my thoughts were interrupted when the light faded and everything went black.

      I came to what seemed like hours later to find myself in my office, but I wasn't alone. The other me- or some other other me was lying on the ground by the table, gasping for air.

      "What happened?" I asked running to my counterpart’s side frantically. "Did... I do this to you?"

      "It's all wrong," he said, clutching his chest. Blood trailed around him, seeping through his closed fist. "None of this makes sense."

      Before I could speak again, I noticed something odd. He didn't look younger than me. He was older. "You're the me that I just met, aren't you?"

      "Yes," he started, spitting up some blood. "I pulled out my knife, but he grabbed it out of my hand and stabbed me before I could get to him."

      "But why?" I yelled, desperate to understand why I would attempt to kill myself.

      "You try to fix one thing," he trailed off, his eyes losing focus. He became still and my mind turned into override.

      I had watched myself die. I ended up going back in time to kill myself, but my past self killed me instead. That was my future. Why would I do that? Was I still going to do it, knowing what I knew? If I didn’t, how was I in still in the past?

      "Don't even try it," a voice called behind me. "I don't know why you guys came back, but I'm not letting you kill me."

      I turned around to see a younger version of myself standing in the doorway, wielding a bloody knife in one hand and the handheld device in the other. Before I could respond, he pushed a button and light filled the room once again. A few moments later, I was alone.

      It was a time before I had even started working on time travel. My only way back disappeared with my past self, which didn’t even seem to make sense. How could he become me if he wasn’t even there anymore? Would I become me? My head hurt.

      “Hello,” another voice called into the room. It was female, so I immediately knew it wasn’t me again. I turned toward the door to find the solution to one of my lingering questions.

      “Gwen,” I answered, walking toward her with my hand extended. “It’s nice to meet you.”

      “How did you know my name?” she asked, shaking my hand with a confused look on her face.

      Smooth move. I didn’t know her name the first time this happened. But at least it revealed the date. This was the day I met the best and worst thing that ever happened to me. “I saw your name on the sign-in sheet,” I answered. “You must be the new girl. I’m Chris. Chris Michael.”

      I began to lead her into my office. “Let me show you around. This is my off-”

      What was I doing? There was a dead body on the floor by my worktable. Not just any dead body, my dead body.

      “On second thought, my office is a mess,” I sputtered. I turned Gwen toward the hall. “Why don’t you head over to the break room around the corner and I’ll buy you a cup of coffee? Just give me a few minutes.”

      “Sure,” she smiled. She began walking away, but stopped momentarily and shot me a wink. “You’re an interesting guy, Chris.”

      As Gwen walked down the hall, I darted back into the room. My future death was still where I left it. Police weren’t an option, what would I tell them? An older version of me was killed by a younger version of me? The only option was to dispose of the evidence. Trying to think back to old gangster movies, I heard footsteps by the door.

      “Uh, don’t come in here!” I yelled. “There’s a, uh-” I couldn’t believe my eyes. Two men stood in the doorway. I was looking at two identical versions of myself.

      “Hey, Chris,” the one on the left said. “Sorry about earlier. I didn’t know you weren’t here to kill me too.”

      “So you’re the me from this time, right?” I asked Lefty. “Who is this then?”

      “Hi Chris,” the one on the right said. “I’m him, but after he stopped me from saving our future self there“

      “But you didn’t-” I turned to the left. “You killed him.”

      “I did,” said Lefty. “Pay attention, because this will get even more complicated. After killing future us, I had to know why he came back, so I went to the future. You know what I found? Future you. Stranded, you had taken my place, fell in love with Gwen, and never invented time travel.”

      My head hurt again.

      “There was no way to know what happened,” interjected Righty, “because time was overwritten. So the original timeline had to be restored.”

      “How?” I asked no one in particular.

      “I went back to before our future self met me.” I’m not sure who said that, I was too busy clutching my head. “I took care of him and then sent you back to your proper time before you woke up. Everything continued normally and I followed the timeline to figure out what originally happened.”

      “Oh, I can’t wait to hear this part,” I said.

      “It’s all about Gwen,” said Lefty. “As you know, she eventually broke up with you because you were too dedicated to your work. Apparently you fixed that mistake when you had another chance back here.”

      “Gwen,” I whispered. “She’s waiting for me in the break room.”

      “We know,” said Righty.

      “So where did you come from then?” I asked Righty.

      “I had to undo what I did,” answered Lefty. “With you back in your time, you finish inventing time travel, but things don’t end well with Gwen.”

      “I already know that,” I sighed. “She broke up with me before. This is old news to me.”

      “But,” started Lefty, “with the addition of time travel, you become obsessed with fixing things. It gets a little more complicated here. You basically go back in time and try to make it work with her over and over, but it never ends well. Eventually, you decide you have to go back to the beginning and… start all over.”

      “By killing you and taking your place?”

      “Exactly. My place.”

      “Oh,” I said.

      “Yeah,” said Lefty, who was giving me an unnerving stare.

      “What about me?” I asked “And Righty?”

      “Righty…? Oh, because I’m standing on your right. He wants us to leave.”

      “You two take the time machine,” said Lefty. “Go live with the dinosaurs for all I care, just stay away.”

      Righty patted me on the back and raised his eyebrows in an approving nod. Lefty handed him the handheld device, which looked different. I couldn’t put my finger on it, but there seemed to be more buttons or something. Righty pushed one of them, but something was wrong. The expected light was there, but it was red. As Righty began to fade, a screeching sound emanated from the epicenter as he let out a horrendous scream.

      “What did you do?” I yelled jumping into the hallway where Lefty had previously moved. His eyes widened as he pulled a familiar knife from his pocket.

      “I can’t have you coming back and messing with my life!” he shrieked, swinging the knife in my direction. “I’ve already killed two of you, there’s no way you’re getting away!”

      I jumped back into the room as the red light cleared, leaving behind a charred mark on the floor. Lefty followed me, still swinging. “Hey, what’s that?” I yelled, pointing behind him. He turned his head to find nothing, but before he could turn back, my fist met his chin. After pulling the knife from his hand I quickly buried it into his chest. As he fell to the ground, I could hear footsteps coming down the hall.

      “Chris?” Gwen called.

      I ran out of the room and slammed the door behind me to find Gwen holding two cups of coffee. “Hi, Gwen,” I said hysterically. She gave an odd look but then laughed, handing me one of the cups.

      “I figured since you were so busy, I’d buy you the coffee this time. Would you like show me your office now?”

      I looked at my closed door and then back at Gwen. “No, I still have some more cleaning to do. I have a new research project I need to prepare. But for now, how about we go enjoy these coffees in the break room?”

      1 vote
    3. What's in a link? A recipe for using the web to find a spectacular amount of information about music submissions.

      This discussion is old hat for the l2t mods, but I'd like to get it written down here on tildes so when the time comes to develop these features we've got a record of all the tricks ready to help...

      This discussion is old hat for the l2t mods, but I'd like to get it written down here on tildes so when the time comes to develop these features we've got a record of all the tricks ready to help whoever wants to code it all. It's surprisingly easy to do this now.

      First, we're only going to concern ourselves with legal, legit streaming links. That limits the number of sites we need to support to the following...

      1. Youtube 2. Bandcamp 3. Soundcloud 4. Spotify 5. Google Play

      Sure, there are others, but they don't offer free streaming, so they aren't particularly useful for widespread music sharing on social media sites like reddit and tildes. Even on reddit, very little of the music shared ends up coming from pay-for services - it's almost entirely coming from youtube, bandcamp, and soundcloud, in that order. So those are the APIs we need to be dealing with in order to extract useful information. It's also worth noting that over time, some of these will die, and new ones will arise to take their place, and they will change their APIs from time to time breaking services built on top of them.

      Yes, sometimes youtube has pirate streams of music. That's their problem to solve, not ours. The closest we could come to 'helping' in that regard would be verifying that the video posted is on the artist and/or label's official channels. This is not easy, but it is possible. Frankly, I don't think it's worth the effort. It's hard to code and will have a messy false positive rate. A lazier solution we've used in listentothis for years is simply having a blacklist for channels that spam/rip/repost artist's music without permission - and we can get you a copy of our blacklist and whitelist if you like, so that isn't starting from scratch.

      Getting all the music information about an artist is a two-step process.

      The first step is querying the metadata provided by the sites listed above through their API calls. The relevant information we need for this is simply the name of the artist and the name of the track (or album, if it's an album link). There's plenty of other information available (some of which we will want, like the youtube views and various popularity metrics such as plays, scrobbles, listens, monthly listeners, heat indexes) but that information isn't needed unless you intend to start dividing up the music into sub-categories using other ~tilds or #tags. Eventually we will want to do that (subs like listentothis can't really exist without the popularity numbers) but that's a problem for further in the future, once tildes is a lot more active. For now, let's just concentrate on making the sidebar of a music submission take people's breath away.

      The second step is using the name of the artist and the name of the track (or album) to lookup information about that artist in public databases.

      The motherlode of music data resides in Musicbrainz. This has become the de-facto open-source database of record - you might remember its humble beginnings when it was cddb and freedb, embedded in most cd-ripping tools to provide lookups of the artist/track information. It's grown into a wikipediesque monster since then. It knows almost everything there is to know about every artist who has ever released so much as a single or an EP, and does well even for obscure and new independent artists. It's also being updated by-the-minute with new artist information.

      Musicbrainz has a public API, and they allow dozens of queries per minute, so it would be possible to use their free service - but I think that's the wrong way to do this. Musicbrainz does allow you to set up your own copy of their database, and provides scripts to download nightly updates of the data, so it's possible to run this locally. For a hassle-free setup, they do provide a virtual machine that's ready to go, just download and boot it up on your network. The VM also has their full API and web services (looks exactly like their official site), so with the VM you can query it locally through the API just like you would using the remote site (and you could have a failover between the local copy and the official site). Running just a local copy of the database rather than the VM, you won't get the API. The database is around 30GB right now and grows very slowly. Musicbrainz local copies also provide the option of querying their SQL directly, without the need to use the API.

      What data can we get out of this monster database?

      1. Artist search with a confidence rating for best match
      2. Complete discography and artist bio in excruciating detail
      3. A fantastic collection of every relevant link to other sites
      4. The most relevant collection of 'genre tags' available anywhere

      Let's also not forget they come with an army of developers and a great support forum. I think the case for using musicbrainz as tildes' prime music authority kinda makes itself. :P

      There's really no need for another data source. Musicbrainz doesn't do popularity numbers yet but they are planning to do it soon. The Listenbrainz project is, basically, an attempt to reinvent last.fm as an open-source service. Last.fm itself isn't likely to survive, they've been struggling financially for several years. Listenbrainz hopes to allow people to import that data before the site goes under.

      So what do we build out of this mountain of data? Easy - the laziest submission process for music anywhere on the internet.

      I think the goal here for the users is to be simply pasting a music link into the submission form, and letting tildes do all of the rest of the work for them. The tags and the title can be auto-populated by the lookup, and then tweaked by the user. That'll give a sense of uniformity to the titles, and it makes submitting on mobile almost effortless.

      Once the submission is created, the sidebar can be populated with the musicbrainz information. I think a good start would be to show the name of the artist, the name of the album, the name of the track (if applicable), and the release year - possibly even the record label and genre tags (big bucket generic tags like rock, jazz, folk, nothing overly specific). I'd follow that up with the relevant artist links to their own website, their official bandcamp/youtube/twitter/facebook, and possibly the links to discogz and lyric wiki if present. I'd close it with the artist's bio - just a blurb, that ends with a 'read more on wikipedia' link.

      If/when we have all of this working, we can worry about the next step - finding a way to determine the relative popularity of any given submission. That's a far, far harder problem to solve.

      Here's a quick link listing to all of the relevant APIs and their documentation for easy reference.

      1. Musicbrainz XML API
      2. Youtube API
      3. Bandcamp API
      4. Soundcloud API
      5. Spotify / Echonest API (second only to musicbrainz for raw amount of data)
      6. Google Play API

      Edit: Also, we can run a local copy of the Discogs database which will give us even more. If we have Musicbrainz and Discogs local, that's almost everything without the need to have Tildes connecting to other sites.

      14 votes