Recent submissions

Comment · 6 years ago
As scalability was one of the design goals. are there any comparisons of performance with huge repos?
Comment · 6 years ago
I'm not a fan. If I get a new hub, the last thing I want to do is unscrew every light switch to find the picture on it to scan and if I buy a house with pre-existing hardware I don't want to rely on the last owner having taken pictures associated with every switch and left it for me.
Comment · 7 years ago
Every version of this I have seen in the past 20 years always ends up worthless after the braindump sites pop up. How do you intend to mitigate this?
Comment · 7 years ago
Painfully. File a ticket with another team and pray they don't put it off until next quarter because your teams priorities don't match up with theirs.
Comment · 8 years ago
Are you implying Scala is not the majority of Twitter's code?
Comment · 8 years ago
A large percentage of Dexcom developers have had their lives impacted by Diabetes in some way. This and plain old competition are the biggest drivers in their features and usability in my experience. You have to keep in mind like most businesses they have a long feature pipeline in development that is not public knowledge. If you release a feature and see it mirrored by someone else shortly after it's as likely that you both thought of it, and you just beat them to it than it is that they were inspired by you. Especially when one of you has a much shorter time to market thanks to no FDA oversight.
Comment · 8 years ago
Every single time I wonder, why not ask me for zip first then lookup city and state if possible.
Comment · 8 years ago
Is there any way to make diagrams render in a github readme?
Comment · 8 years ago
How are you liking DevonThink? It’s one of those bits of software I think about trying out from time to time but getting started with it looks like a bit of a time investment.
Comment · 8 years ago
If they weren’t checked, how would you know they are up to date?
Comment · 8 years ago
I agree with many of your points, but on that specific example code you pointed to which I have never used or looked at before, I find it plenty readable if you know how to read it. That doesn’t mean I find it “obvious” if you have never been trained on how to read those signatures or come from another language that does not support these concepts.

Here is how I read this in case it helps anyone

  Def zip[A, B](a: ⇒ F[A], b: ⇒ F[B]): F[(A, B)]
F[Something] is a “container type” or a type constructor, a type that is parameterized by another type, for example F[Int] could be List[Int] or Future[Int].

The method zip has two parameters, one a by name reference to something of type F[A] and the other a by name reference to something of type F[B] and returns an F of the pair of input types (A, B)

Looks like this deals with three total types, a container type F that must be the same for input param a, input param b, and the result.

I know nothing about F other than the fact that it contains another type. I know nothing about A and nothing about B which means I can’t be looking them up somewhere or using defaults, so the only way I could possibly return an F[(A, B)] is if I combined the two inputs.

Also, code written in this style is meant to follow the substitution principle, so I’ll think through a couple of substitutions to see how this method could be useful to me.

For: F = List, A = Int, B = String

  Def zip[Int, String](a: => List[Int], b: => List[String]): List[(Int, String)]
Since I can’t invent new members of list and the two members of the list may be different lengths, this must return a list whose length is the minimum of a.length and b.length containing and int -> string mapping. Handy.

F = Future, A = User, B = LastLoginDate

  Def zip[User, LastLoginDate](a: => Future[User], b: => Future[LastLoginDate]): Future[(User, LastLoginDate)]
This can only return me a User if they have logged in at least once. The fact that it is two Futures makes me think I am probably querying two remote servers for this information and that I can’t resolve the new Future until both of the input Futures have resolved. By the time this Future is ready I will have a User with their last login date or the Future will fail.

F = Option, A = IpAddress, B = Port

  Def zip[IpAddress, Port](a: => Option[IpAddress], b: => Option[Port]): Option[(IpAddress, Port)]
I may have an IpAddress, I may have a Port, either return to me both the IpAddress and the Port, or neither. This one is really easy to map out as their are only 4 possible code paths

  Some(IpAddress), Some(Port) => Some(IpAddress, Port)
  Some(IpAddress), None => None
  None, Some(Port) => None
  None, None => None
I agree some documentation explaining this would be nice, but there is considerable information I can pull from this signature.
Comment · 8 years ago
Comment · 8 years ago
Lowbrow.com
Comment · 8 years ago
Mini-rant: What happened to Boolean search in note taking apps? It seems to have been lost over the years. When I search for docker and get 80 notes returned, then change search to “docker AND login” I want to narrow my search, not get 110 notes returned.
Comment · 8 years ago
Where I grew up it was: Don’t fish off of the company pier

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton