HN user

adgasf

1,677 karma
Posts227
Comments171
View on HN
discograph.mbrsi.org 6y ago

Discograph: Discogs Visualized as a Social Graph

adgasf
2pts0
withouttheloop.com 6y ago

Ad-hoc Polymorphism in F# (how to survive without Type Classes)

adgasf
1pts0
freeross.org 6y ago

Who Deserves This? (2018)

adgasf
52pts61
www.codersnotes.com 6y ago

How to Write a Maths Library in 2016 (2016)

adgasf
1pts0
tomasp.net 6y ago

Imperative Computation in F#

adgasf
1pts0
blogs.msdn.microsoft.com 6y ago

Why CornflowerBlue?

adgasf
1pts0
blog.codefx.org 6y ago

Java 13 Switch Expressions

adgasf
1pts0
www.aaron-powell.com 6y ago

Writing an F# Type Provider

adgasf
1pts0
www.disraeligears.co.uk 6y ago

Disraeli GEARS – A collection of obscure bike derailleur designs

adgasf
1pts0
neoeinstein.github.io 6y ago

Chiron: JSON, Ducks and Monads in F#

adgasf
1pts0
en.wikipedia.org 6y ago

List of dates predicted for apocalyptic events

adgasf
2pts0
www.dsi.unive.it 7y ago

Monadic Scripting in F# for Computer Games (2011) [pdf]

adgasf
2pts0
www-cs-students.stanford.edu 7y ago

Polygonal Map Generation for Games

adgasf
1pts0
developer.mozilla.org 7y ago

Console.group() in JavaScript

adgasf
2pts0
hord.ca 7y ago

EOW – Translate Modern to Olde English

adgasf
2pts0
github.com 7y ago

CakeML: A Verified Implementation of ML

adgasf
1pts0
www.snopes.com 7y ago

PhD student solves “unsolvable” math problem by not realizing it was unsolvable

adgasf
10pts1
github.com 7y ago

Entropic - A package registry for anything, but mostly JavaScript

adgasf
4pts0
support.microsoft.com 7y ago

End of Support for the Microsoft Health Dashboard Applications and Services

adgasf
1pts0
fsharpforfunandprofit.com 7y ago

A whirlwind tour of object-oriented code in F# (2012)

adgasf
153pts127
github.com 7y ago

Value Option for F# Proposal

adgasf
2pts0
angel.co 7y ago

Angel List Alpha

adgasf
2pts0
www.wired.com 7y ago

The Curse of Xanadu (1995)

adgasf
1pts1
josephg.com 7y ago

3 Tribes of Programming

adgasf
1pts0
news.ycombinator.com 7y ago

Ask HN: Can we have more Brainstorm HN?

adgasf
3pts1
example.com 7y ago

Example.com Is Down

adgasf
2pts2
www.quora.com 7y ago

Why can't I purchase the example.com domain? What if I want to buy it anyhow?

adgasf
1pts0
en.wikipedia.org 7y ago

Fairy Chess

adgasf
2pts0
wengier.com 7y ago

Looking into F# Performance

adgasf
2pts0
arxiv.org 7y ago

The Physics of Baking Good Pizza [pdf]

adgasf
2pts1

The v1 / v2 split was arguably Apple's fault. v1 launched before Homekit; then Homekit required special hardware authentication; then v2 launched to support this; then Apple walked back on the special hardware and allowed things to be done in software, but Philips had already made breaking changes for v2.

Again, Philips made the wrong call here.

AFAIK the bulbs are compatible with v1 and v2 hubs, so the bulbs do not need to be replaced. The v1 hubs will continue to work across a local area network. Philips offered a heavily discounted upgrade for v1 hub users to get a new v2 hub.

However, I still think they should support the v1 hubs for the lifespan of a typical bulb (15 years), at minimum.

it doesn't even solve the problem because dependencies are just downloaded from the package manager.

The advantage of Docker is that you can verify the container works locally as part of the build process rather than finding out it is broken due to some missing dep after a deployment. If you can verify that the image works then the mechanism for fetching the deps can be as scrappy as you like. Docker moves the dependency challenge from deployment-time to build-time.

I find JavaScript unusable without this operator. Fortunately Babel supports it well.

It makes a great alternative to fiddling with prototypes or wrapper objects when you want to extend something.

For example, this is flat-map implemented as a free function:

    const flatMap = f => {
      if (!f) {
        throw new TypeError('f must be a function');
      }

      return xs => ({
        [Symbol.iterator]: function * () {
          for (const x of xs) {
            yield * f(x);
          }
        }
      });
    };


    // Usage
    const xs = [ 1, 2, 3 ] |> flatMap(x => [ x, -x ]);

Presumably you need some functionality in the dependencies that you use. If you don't use a package manager then your options are:

* Import the dependency manually. This is taking a dependency without the formal description a package manager gives you, making it harder to audit, update etc.

* Write the functionality yourself. This guarantees you are not exposed to malicious code, but it takes time and your solution will likely have more bugs than a widely used solution. You also lose the ability to use other dependencies that build on top (e.g. React components) because you are now outside the mainstream.

What is actually needed is better tooling to analyze and prune dependency graphs.