HNHacker News
TopNewBestAskShowJobs

photon_off

1,539 karma · joined April 24, 2010

submissionscomments
photon_off··on Show HN: Kardius – find people like you, near you – made with Rust and Rocket
Also there is another aspect to cardsets that might be worth thinking about, which is that they are like "polling" done in a fun and easy way (swiping on pictures) -- the fact that you can also show people that answered similar to me doesn't need to be the focus.

Having polls like this can help you grow the site. For example, imagine I make a cardset for "Beatles albums" where I put in each Beatles album, and shoot the link out to, say, r/Beatles or whatever. Your site can let people swipe, then show the aggregate % for each of the cards, thus ranking them.

Of course... having viewed this really fun and quick poll, random pollers might wish to make their own new polls and spread your site.

Enjoy your sleep.. you have a long journey ahead of you!

photon_off··on Show HN: Kardius – find people like you, near you – made with Rust and Rocket
> You've honestly given me a lot to think about and I think I see a better way forward now. Your insight really increased my mood because I think you've discovered something very important that I am likely going to be spending quite a bit of time on in the next coming weeks and months.

Happy to hear. I've been working on my own project for close to a year and am close to launch, so I think I understand where you are coming from.

It is practically impossible to view your product as someone unfamiliar with it would. So, that leaves you asking for feedback. Next, it is really difficult to distill user feedback (such as found on this thread) into things you should actually work on. Is a comment just a vocal minority complaining or an indication that some concept should be changed? I think you're doing a good job taking feedback to heart and I'm really rooting for you.

> Another fantastic reply! I really need to get this to take off already so I can hire you before you make your own and out-compete me.

If/when it takes off, just make me an adviser and shoot a couple percentage points my way!

photon_off··on Show HN: Kardius – find people like you, near you – made with Rust and Rocket
I would advise against folding it into clusters, and instead have each cardset be its own thing. What you have right now is a cardset that I'd label "General" -- abstract the backend so you can create different sets of cards ("Food", "Fashion", etc). If manually curate cardsets, you won't even need to worry about clustering. Yes, it's a shame you spent time on it, but no clustering will ever beat manually creating sets of cards.

In terms of producing a "total match score" with a user, you compute a match score for each cardset that both users have, then use a simple normalized linear combination to get the total.

If users A and B have cardsets X Y and Z in common, you would produce similarity scores "S" for S(A,B,X), S(A,B,Y), and S(A,B,Z). Then, you use the weights that user A selects for each cardset (W(A), W(B), W(C)), normalize such that they add up to 1 but maintain their ratios, and compute total similarity of A matched to B as: W(A) * S(A) + W(B) * S(B) + W(C) * S(C).

As long as you have pre-computed the scores between all user-cardset pairs (your scaling pain point), computing match scores even with weights is trivial and fast.

photon_off··on Show HN: Kardius – find people like you, near you – made with Rust and Rocket
Feel free to use it however you want :)

Regarding the 0.0/default/skipped -- see my other response about "cardsets", which the more I think about it, the more I am convinced will solve nearly all of your issues:

  - you don't have to worry about the skipped vs neutral problem (as it is fair to expect a user to answer all cards in a cardset).
  - you don't have to worry about clustering. a cardset is a "cluster".
  - you can work around technical limitations by having each cardset be its own cube
  - you boost retention by being able to have a library of dozens of cardsets (rather than 250 cards).  limitless swiping, and swiping on things that your users will find interesting because they are selecting cardsets that are important to them.
  - you can make your site viral by allowing users to send a link where the receiver can (anonymously) swipe all the cards of a cardset and see their "similarity" to the link sender.  (Then you can ask them to register to be able to send links themselves).
  - futures paths for revenue are endless
photon_off··on Show HN: Kardius – find people like you, near you – made with Rust and Rocket
> So, the problem we'd like to solve is what set of 250 or so cards has the highest predictive value in that similar answers lead to the best interpersonal matches?

I think ideally you should somehow allow users indicate what kind of "interpersonal" similarity they are looking for. Perhaps right now I want to find intellectually similar people -- but maybe later I want to find people with the same sense of humor. Hell, maybe I just want to find people interested in eating the same food.

Here's an abstraction that I think could be a killer feature, and could solve a lot of "problems" around matching, privacy, etc: Cardsets.

A cardset would be a set of cards with its own theme. My answers to the cardsets can be hidden/shown at will. I can view similar users based on responses to a single cardset, and my "overall matches" would be a weighted similarity across all cardsets, where I can toggle how important each cardset is.

So now imagine the following cardsets:

  - Politics.  Swipe left for "bad idea", right for "good idea".
  - Humor.  Swipe left for "not funny", right for "funny".
  - Food.  Swipe left for "disgusting", right for "delicious".
  - Aesthetics.  Swipe left for "ugly", right for "beautiful".
  - Hobbies.
  - Activities I want to try.
  - Places I want to go.
  - Fashion, technology, programming, ...etc...
I can now find people that have similar fashion taste to me. Or that want to travel to the same places as me. Or that like the same food as me. There's also the nice side effect that I don't have to swipe on cardsets I don't care about, and that there's a lot of swiping I could do, which is potentially fun. Sky's the limit here!

Furthermore, if you want to get "advanced", add a way for me to find "custom matches", by which I weigh the importance of each cardset. Perhaps I want to find people that match based on "Politics" and "Humor" ... so I'd set those as having high weight and the others lower.

You now have a channel by which you can add endless amounts of content, and can iteratively improve your matching and engagement. Adding a new cardset opens up an entirely new set of matches to all of your users, and gives them something to swipe.

I think this concept is extremely powerful and valuable, and opens up endless avenues for future growth. Imagine brands being able to fill out cardsets for "aesthetics", or "food", etc. Now you can match users to brands they care about.

Lastly, to light a fire under your ass, if you don't commit to doing this, I will. The more I think about it, the more I think this is something that could catch on, especially if you let users create cardsets and add other viral features (eg: ability to send a link to someone to fill out a cardset to find out how much they match me).

photon_off··on Show HN: Kardius – find people like you, near you – made with Rust and Rocket
Firstly, congrats on the launch. Designing and implementing a new concept from scratch, by yourself, is definitely fraught with difficulties. It's hard to know if what you're designing is "right" and if you're implementing "the right way". Sticking with it for an entire year and actually launching is definitely something you should feel good about.

I think this is a great idea, and for a first version the execution is actually quite good. Once I figured it out, I enjoyed using it and flew through all of the cards. I looked at a lot of matches and even sent a few messages. Overall, I can see myself coming back for random chats from time to time.

Here is my feedback, in order of what I perceive to be most important.

1. It was not at all obvious to me how to swipe. I tried swiping the card but it didn't move. So I clicked the arrows. Since I "agreed" with the first 4 or so cards, I did not realize the arrows were to go back and forth. (In fact, I would not have ever expected back and forward to be an option). Then I realized that the "help button" thing was actually how to slide, and I got it from there.

I suggest you make the slider thing look "slideable" and obvious that left is disagree (red), right is agree (green). Right now, it definitely is easy to see it as a "help" button.

I also suggest you make the card navigation arrows not ambiguous -- I think it is fair to say people will assume they mean "agree" and "disagree" rather than "next" and "prev". Either provide context so that it's obvious what they do, or use words "next", "prev".

Here is a crappy mock-up that hopefully shows what I mean: https://jsbin.com/wekuzebasu/ - In this shows progress and is obvious what next/prev do, and (for me at least) it is much more obvious what the call to action is, and how to operate it. (You could replace "|||" with "<->", or show arrows next to the slider circle for even more emphasis).

2. I really love the "percent" agree/disagree. I think that's way better than just "yes/no" and it greatly increases my confidence that I'll get better results.

3. I think your initial card set is actually quite good. There are a few where it is ambiguous of "left" and "right" mean. Agree / Disagree?Like / Dislike? Support / Don't support? Care / Don't care?

4. If I were you, it would be very easy for me to worry about spam/abuse/gaming of this. But, honestly, your biggest problem will be overcoming the network effect to get a critical mass of users to make this better. If for an average user there are more similar people, and they are closer, it becomes much more compelling for more users to join -- leading a virtuous cycle. If you want this to catch on, your #1 concern should be getting the most users in the least amount of time.

Handling spam/abuse is a problem you want to have, and I'd put it off until it's necessary and/or until it's clear it is slowing user growth.

5. I've read all of your comments, and I think you're making some very good decisions and are putting a lot of thought into this. I hope you stick with it.

6. The clustering is good and does provide some level of "privacy" -- though for my "similar" people I often do not see any clusters at all. Anyway, this seems like the type of app where I want people to know my opinion on stuff, and if there's a question for which I want my opinion to be unknown, I'll just skip it.

-----

Now a question regarding the matching. Is there a difference between "unanswered", "skipped", "0% (as opposed to -X% or +X%)" ? Consider these cases:

1) I don't care about a card. This is distinct from being "0%" -- I don't want this card counted towards producing my matches. If someone is 100% or -100% on it, don't penalize the similarity.

2) I am neutral about a card, but I do care if somebody is +/- on it. Do consider this in similarity.

3) I have not answered a card. This should not count towards similarity.

4) I previously had an opinion on a card, but now I don't care. How do I "reset" it?

Depending on how this is handled, you'll need to change the UI to make it more clear. Eg, you may need a "skip" button.

photon_off··on Ask HN: Is it possible to sell a startup, but also keep a small stake in it?
As I understand it VCs don't acquire companies, they invest in them. The difference being that in an acquirer buys and runs the company, while a VC only buys a small portion of it and gains exposure to potential upside.

In my case, I'd like to go from an owner to something like a VC -- that is, I'd like to liquidate my company but still maintain a small potential upside. What I don't understand is how this would work, as the acquisition itself would be the upside.

photon_off··on Ask HN: Is it possible to sell a startup, but also keep a small stake in it?
Thanks for the insights.

> You could negotiate retaining x% of the stock (along with rules regarding stock type, splits, etc.).

Is this at all common? I would imagine that upon acquisition the buyer would prefer to simply roll the company into their own, rather then have to run it as a separate entity. Though, like you said, I imagine this can be negotiated.

photon_off··on How does Honey extension capture data?
I use honey, but I only enable it on the page before I'm about to check out, then disable it after it's found a discount.

Granted, during the time it is activated they could do whatever they want with my data (including hijacking my session), but at least this way they don't track everything.

photon_off··on Ask HN: What features would your ideal programming language have?
I would like to be able to delineate strings with any character(s) of my choosing. The default could be single or double or triple quotes, but don't force me. I am sick of escaping characters in literals, I'd rather define a delineator that I know isn't in the string. Same for templating.

   let name = "Jane";
   let str = s{}:John said "Don't do that, {name}!":s
I would also like a JSON-like shorthand for declaring nested structures, without having to define each individual component separately. Eg:

   struct Person {
      user: {string name, int age},
      address: {string street, ...}
   }
   let p = new Person(<json>);
   print(p.user.age);
Convenience with arrays (python slicing is nice), maps, and primitive types pay huge dividends.

   arr.first();
   arr.last();
   arr[5,-5];  //5th to 5th to last
Built-in arbitrary length/precision numbers would be neat.

Besides that, tons and tons of useful libraries: IO, Date, JSON, DB Bindings, etc.

photon_off··on Ask HN: Briefly and succinctly – when is ML helpful for engineering?
Also, another one-off question:

What if the data I have is relational? Must it all be squashed down? Imagine a family tree: can a "node" simply contain "parents", and the model will figure out "virtual columns", or would I generate this input manually (for thousands of columns), example columns: "parent(0).parent(0).child(0).blood_type", "parent(0).parent(0).child(1).blood_type", etc.

Consequentially... I will definitely have more questions like this. What is a good resource to go off on my own, or with a more suitable audience?

photon_off··on Ask HN: Briefly and succinctly – when is ML helpful for engineering?
This was extremely helpful, thank you!

Perhaps you can help me with some follow-up questions:

- Let's imagine a standard excel sheet (a 2d array), with columns "A", "B", "C", "D" ... "Z".

1) Let's say I want to create a model, that takes this input: A single row where all columns have values, except for some (random) columns. I want it to autopopulate those columns with values that are most probable according to the data I trained it with. That is, _every_ column is both a "feature" and a "target". Is this possible?

2) Can I train the model by telling it this: "This input should DEFINITELY NOT confuse you" -- that is, can I "weigh" the inputs (or do I just put in more of them?)

photon_off··on Show HN: Pinguiry – Single question polls with single click action responses
The landing page UI consists of three main tasks: 1) Question. 2) Options. 3) Audience.

Consider making it four tasks: 1) Question. 2) Options. 3) Preview. 4) Send.

This way, people can try it out before committing to sending an e-mail (which is a low conversion hurdle).

photon_off··on Show HN: Pinguiry – Single question polls with single click action responses
From a UI perspective, as well as the perspective of somebody trying to use this without possibly burning an e-mail address, please have a "preview" option before "audience".
photon_off··on Ask HN: Legally Scraping Reddit Images
You can look at the "legal" aspect of it by Googling "is it legal to scrape". My understanding (IANAL) is that it is OK as long as the user agreement is "opt-out" as opposed to "opt-in" (eg: clicking a consent box before viewing the content). You'll have to read up on this yourself and weigh the risk/reward of doing your project. I (NAFL) would assume the risk is quite small. The reward -- that's your call.

As for the other part, getting the data: it's called scraping. Depending on your experience with scraping, you may need to pay for certain aspects of it (eg, getting a large list of proxies so Reddit does not block you, or using a scraping API). Or maybe your project is small enough (or time constraints large enough) that you can slowly siphon the data via your own means.

As per Reddit allowing it: Refer to the legality of scraping, and apply it to Reddit.

photon_off··on Ask HN: How many signups should an app realistically expect in the first month?
I think I understand when this is most relevant: when there are many different things being sold that each need to have a different split. In my mind I was thinking of a team that sold multiple products, but where the split would always remain the same.

> In summary, the app is for any group that is receiving proceeds from the sale of a service or product, that wants to avoid the hassles of splitting proceeds after the fact.

Be careful here. The app is for a narrower group than that. As mentioned above, it's probably only relevant if the group has multiple offerings where the splits are different... otherwise you're just a middleman that does, um, division.

> The users aren't being charged to use the application.

While this is technically true, the app adds a cost to the final consumer, which is the same as the business "charging" the user. I don't see this as a "feature". Basically, it's an additional cost to the business -- it should be up to the business to include a separate line item on the charge vs. just increasing their price to the consumer.

In other words, allow the business to choose "show additional fee" or not. Businesses probably prefer just increasing prices to showing the user an additional "fee".

photon_off··on Ask HN: How many signups should an app realistically expect in the first month?
You're welcome, and I'm glad I could revive this post a bit, too :)

I am genuinely curious though, who is this app for? For what group of people is splitting proceeds really so daunting of a task that they would prefer to pay a company to do it for them?

photon_off··on Show HN: Render Arbitrary 3D Boolean Functions
I don't have any feedback or strong opinions on this, but the concept of mapping (x,y,z)=>bool and having it produce a 3d object is new to me. This is a very cool demonstration; thank you for sharing.
photon_off··on Ask HN: How many signups should an app realistically expect in the first month?
I have no idea, but I can say with certainty it depends on the size of your target audience. Find a way to reach them and continually refine your landing page so that your funnel is as optimized as possible. Speaking of which...

I can give you my initial first impressions of your landing page:

1) I am utterly confused as to what this is or how it works. Something about splitting proceeds. I will scroll, surely it will be explained.

2) I scrolled past the gigantic top fold and found "Find members, set percentage share, and get paid Let Korabo handle the splitting of proceeds and delivering actionable analytics to you". What are members, and how does Korabo help me find them? Splitting proceeds of what? Analytics?

I managed to find the tiny menu in the upper right, and now I better understand what this app is for, and actually I think it could be useful to some groups of people. On further thought, is anybody willing to pay somebody else to split the proceeds? It seems easier for some group of people to simply do this manually, as organizations have been doing since the dawn of time.

Anyway here's my feedback:

- Your landing page is about 1/50th as good as it could be. It's not bad, but to actually get people to trust you enough to do work (eg: sign up), you need to get them excited.

- Having somebody sign up requires a very high degree of interest. You're lucky if somebody cares enough to scroll past the fold, or even click on a link for more info. Signing up is an order of magnitude more difficult. So you're going to have to put a lot of work into showcasing the right things in the right places.

- Show the key points above the fold -- all the stuff on your "how it works" and "what it costs" pages should just be on the front page, and clicking should scroll down.

- A picture is worth 1000 words, so feature the product, and not a stock photo. If you could show one killer screenshot that immediately shows me what the app does and makes it clear that it's useful for my use case, then you'll see 10x improvement in conversion rate from what you have now.

- Improve your tagline. "Sell together" is fine, but I cannot fathom how an app would help me do that -- so maybe "Sell together, split the proceeds".

- To improve trust factor -- Get a logo and favicon.

- If you could show a demo of the app without forcing me to sign in, I'll be more likely to actually sign in.

Suggestions for finding users:

- Firstly, do the things above. You only get one chance at a first impression, and as it stands I would not trust your app with doing checkout processing for me.

- For yourself, clearly define your target audience. It seems to be small groups of people bootstrapping some service or products. You should have a better idea of this than me, but for example say it's "yoga studios". Reach out to management in yoga studios and ask for feedback. Go to a relevant subreddit and find users that work at yoga studios and ask for feedback.

- Asking for feedback, and parsing feedback is a whole game, too. Realize that you are incredibly biased in your knowledge of your problem domain and your apps features. Assume everybody you show this to knows nothing, even if it's something they'd be interested in. So if you want general landing page feedback, you'd ask: "Is it clear what this does?" -- if you want feedback from prospective customers you'd ask: "Do you think this could help you? Why/Why not?" or "What would prevent you from using this?"

Good luck.

photon_off··on Amazon can’t end fake reviews, but its new system might drown them out
The main problem they have, I imagine, is sparse data. There are only certain fields (depending on category) which they force sellers to populate, eg: "name", "brand", etc. Item weight (which is distinct from _package_ weight), and "number of units" do not seem required, and so not many items have that information filled.

So, with sparse data, they have three choices:

1) Allow filter/sort by "unit price" and do not show the X% of listings that are missing this data -- many of which the user may actually be aware of and/or interested in.

2) Don't allow the option at all, and just rely on the fact your customer will do comparisons manually.

3) Try to derive the number of units from text cues in the product name, features, and description, then do #1.

It seems they chose #2. I'm going for #3.

photon_off··on Amazon can’t end fake reviews, but its new system might drown them out
Amazon has been my wheelhouse, fulltime, for the past 7 months. I'm building a site that looks at most listings per category and determines "true" scores for each one. The site also lets your filter and sort, instantly, on a variety of attributes, like "price", "unit price", "shipping time", "recent price drop %", "used price discount", "popularity", "brand quality", etc. Spending 7 months collecting and analyzing data of several Amazon categories has been exhausting, but quite revealing.

As you can imagine, dealing with low quality products with fake reviews is a challenge -- but it turns out it's not too hard to handle, even with my dataset which is far more limited than Amazon's. Without looking at any reviews or any metadata of reviews (author, count, chronology, etc), one could filter out "impostor" products with 95%+ accuracy.

Here's a neat trick: Next time you're unsure if a product has fake reviews, click on the brand of the product and see what else they sell. If you're looking at binoculars, and that same brand also sells dog food bowls, then maybe you should reconsider.

I've concluded that Amazon really doesn't care about fake reviews -- they will show users whatever listing has the maximum Expected Value (conversion rate * revenue), per your context (search term, category, or both). Even if a product has obvious fake reviews, if there are enough other people buying it it will float to the top, and Amazon is fine with that.

photon_off··on Ask HN: What is your experience with Scala?
This is the typical Scala apologists' reply. It's not a problem with Scala, it's a problem with you.

When it takes several dense paragraphs to explain simple problems, it means that problem is not solved easily. For some programmers easiness is very important -- this seems like something Scala supporters refuse to understand.

photon_off··on Ask HN: What is your experience with Scala?
This is coming from me being most comfortable with OOP and dynamic languages.

If you want to write Scala to actually get things done, you will find that it's a miserable language to learn and that you will need to invest significant amounts of time, energy, and sanity to learn it. Furthermore, there are no shortages of Scala apologists who are so utterly enamored with the cleverness of the language that they will not concede how much of a pain in the ass it is to learn. They will claim it is easy, and then they will have no empathy for your plight. It is actually quite shameful.

The attitude in Scala-land is that you are the problem, and not Scala. When you do encounter a roadblock to a seemingly simple problem, which will be quite often, you're lucky if you find a 20 paragraph explanation on StackOverflow. Otherwise, you can hopefully find a lengthy blog post about something closely related. In either case, the attitude is that it is _not_ Scala's fault that solving problem XYZ requires you to understand several chapters of advanced concepts -- it's _your_ fault for not already knowing it.

photon_off··on Show HN: MapHub – A Google My Maps Alternative, Based on OpenStreetMap Data
It would great if I could use this site without first having to make an account. Jsbin and jsfiddle support anonymous usage quite well, and because of that are incredibly useful.
photon_off··on Show HN: English syntax highlighter using part-of-speech tagging
Could you please add a legend to indicate what the colors mean?
photon_off··on Animated Bézier Curves
Here's mine from awhile ago: http://techblog.appnexus.com/2011/an-animated-bezier-curve-d...
photon_off··on Show HN: YouFM - A new way to listen to music on Youtube
Make a turntable.fm for YouTube videos.
photon_off··on The Chrome Javascript editor can do hot swapping
A notepad will persist your code and allow you to edit it easily, including newlines and tabs. It will also allow you to undo/redo. Try FireBug to see what I mean.

Yes, in Chrome you can technically hit "Shift+Enter" anytime you want a line break, but you cannot tab. Regardless your script will disappear after you execute it. Yes, you can make what you just typed reappear by hitting the up arrow, but then it's again difficult to edit it. It also does not support undo/redo.

photon_off··on The Chrome Javascript editor can do hot swapping
The one flaw is lack of a persistent, multiple-line JS editor in the Console. I will boot FireBug just to use that.
photon_off··on Ask HN: How do you deal with Rabbit Hole Syndrome?
I decided on a logarithmic weighted bayesian ranking. I read about the typical bayesian ranking (where you have some sort of minimal required number of reviews), then modified the it to work with power-curve distributed sets of data (as #reviews tends to be). Works great and has a few useful levers that I can adjust as I see fit.
Page 1 of 16Next →