HN user

kadfak

479 karma
Posts17
Comments15
View on HN

Overview from the about section (note: it's not my project):

Unravel is my project to reengineer the internet (DNS and up). It will replace messaging, chat, social networking, search, media and file shareing, and a whole lot more. It will be open source and alow anyone to build anything they want on top of it. It will be built to be secure, and provide privacy, veryfyability.

At its core Unravel will be a mesh distributed database with an API to access the data. It makes heavy use of checksums and ECC encryption for encryption and verification. It is written in C for maximum preformance, and is built to run on anything from an enbeded device, to a phone, a PC or a super computer.

I dont like what the internet has become. Especialy I don't like the cloud. Today most comunication online happens using walled guarden intermediaries who store and inspect and triage everything. There shouldnt need to be any intemidiares to do any of the things we want to do, but right now we have to. I think that who controls information matters. I think that privacy matters. I think the user should be in charge, of what they see, and who they comunicate with, the software they run, and what information they store and share.

Maybe the rest of the world dont care about any of this. Maybe everyone else is happy with the internet we have. I'm fine with that, I'm just not fine with there not being any other options. Thats what im doing, I'm building another option, because I can, and because someone should.

Overview of the talk from a comment[0] of that video:

The goal of Node was event driven HTTP servers.

5:04

1 Regret: Not sticking with Promises.

* I added promises to Node in June 2009 but foolishly removed them in February 2010.

* Promises are the necessary abstraction for async/await.

* It's possible unified usage of promises in Node would have sped the delivery of the eventual standartization and async/await.

* Today Node's many async APIs are aging baldly due to this.

6:02

2 Regret: Security

* V8 by itself is a very good security sandbox

* Had I put more thought into how that could be maintained for certain applications, Node colud have had some nice security guarantees not available in any other language.

* Example: Your linter shouldn't get complete access to your computer and network.

7:01

3 Regret: The Build System (GYP)

* Build systems are very difficult and very important.

* V8 (via Chrome) started using GYP and I switched Node over in tow.

* Later Chrome dropped GYP for GN. Leaving Node the sole GYP user.

* GYP is not an ugly internal interface either - it is exposed to anyone who's trying to bind to V8.

* It's an awful experience for users. It's this non-JSON, Python adaptation of JSON.

* The continued usage of GYP is the probably largest failure of Node core.

* Instead of guiding users to write C++ bindings to V8, I should have provided a core foreign function interface (FFI)

* Many people, early on, suggested moving to an FFI (namely Cantrill) and regrettably I ignored them.

* (And I am extremely displeased that libuv adopted autotools.)

9:52

4 Regret: package.json

* Isaac, in NPM, invented package.json (for the most part)

* But I sanctioned it by allowing Nod's require() to inspect package.json files for "main"

* Ultimately I included NPM in the Node distribution, which much made it the defacto standard.

* It's unfortunate that there is centralized (privately controlled even) repository for modules.

* Allowing package.json gave rise to the concept of a "module" as a directory of files.

* This is no a strictly necessary abstraction - and one that doesn't exist on the web.

* package.json now includes all sorts of unnecessary information. License? Repository? Description? It's boilerplate noise.

* If only relative files and URLs were used when importing, the path defines the version. There is no need to list dependencies.

12:35

5 Regret: node_modules

* It massively complicates the module resolution algorithm.

* vendored-by-default has good intentions, but in practice just using $NODE_PATH wouldn't have precluded that.

* Deviates greatly from browser semantics

* It's my fault and I'm very sorry.

* Unfortunately it's impossible to undo now.

14:00

6 Regret: require("module") without the extension ".js"

* Needlessly less explicit.

* Not how browser javascript works. You cannot omit the ".js" in a script tag src attribute.

* The module loader has to query the file system at multiple locations trying to guess what the user intended.

14:40

7 Regret: index.js

* I thought it was cute, because there was index.html

* It needlessly complicated the module loading system.

* It became especially unnecessary after require supported package.json

15:28 Talks about Deno.

[0] https://www.youtube.com/watch?v=M3BM9TB-8yA&lc=UgwteTb0N1PFq...

I've been using Xiaomi Mi Notebook Pro [1] for a little over a year now and there is not a single visible sign of wear. People have had various problems with this laptop, but mine is still in a great condition. I'm running Arch Linux and so far everything has worked without hiccups.

Build quality, in general, is very good. Some positive highlights:

- It has an aluminum body and feels very sturdy.

- Lid can be opened with one hand and even after one year it feels like when I first got it.

- Keyboard feels very nice: there's a great amount of travel and keys have a great clicky feedback.

- Touchpad is superb, very smooth and responsive. It's definitely better than that of XPS, but obviously not as good as Mac's.

Some negative aspects:

- Some keys started to squeak rather quickly.

- One of the speakers rattles at higher volumes.

- Screen of my unit had several dead pixels on arrival. Fortunately they are only seen in pitch-black darkness on a black background when the screen is at near max brightness. Not once have I noticed them during daily usage.

- Keyboard stays lit for a fixed time.

- Soldered RAM.

- Fans seem to not be of very high quality.

- Slow SD card reader.

Specs: Quad Core i7-8550U, 16GB RAM, NVIDIA GeForce MX150 GPU, 256GB NVMe SSD.

Overall I find it an excellent laptop with great specs. I got it for 920 EUR and it's impossible to find such laptop for such an incredible price where I live in Europe.

[1] https://www.gearbest.com/2in1-laptops/pp_009171639711.html?w...

In Reason

    let sum = (a, b) => a + b;
actually accepts only arguments of type int, not any numeric type. The + operator is defined as
    let (+): (int, int) => int;
To have the function accept floats, for example, you would have to use the +. operator like this
    let sum = (a, b) => a +. b;

For me, parent's design definitely feels more premium than the original, which to me seems a bit amateurish.

Here are my observations:

* Layout is too wide. Parent has made it more narrow which feels more natural to me.

* Form inputs are too wide. Same thing as above.

* Weird color palette. I like parent's color simplicity. Notice how he has used different shades of the same color.

* Too random images. IMO the images used for the hero and pricing sections don't make any connection with the product. Parent has left out these images and it is much nicer.

Takeaway, prefer simplicity if you're not good at design.

I switched to Brave on iOS after the Chrome redesign that ruined the UX for me. Pretty happy with it so far. It has some pretty neat features as well -- a visible tab strip that you can swipe and select/close tabs, for example.

Webflow's Ecommerce landing page uses Lottie Web, for example: https://webflow.com/ecommerce

Let us know what you think of the intro hero animation. That was the part built in Lottie. [1]

From the tooltip on the page:

This site was built entirely with Webflow — minus most of the hero introduction, which we built in After Effects and integrated on the page using Lottie. We wrote custom code to sync the Lottie playback with the Webflow IX2 animations in the hero, and uploaded the Lottie animation via a feature we’re testing internally to upload files (JS, SVG, etc) to Webflow sites.

[1] https://news.ycombinator.com/item?id=16621314

A small addition to Git from its README file[1]:

  The name "git" was given by Linus Torvalds when he wrote the very first version. He described the tool as "the stupid content tracker" and the name as (depending on your mood):

  * random three-letter combination that is pronounceable, and not actually used by any common UNIX command. The fact that it is a mispronunciation of "get" may or may not be relevant.

  * stupid. contemptible and despicable. simple. Take your pick from the dictionary of slang.

  * "global information tracker": you're in a good mood, and it actually works for you. Angels sing, and a light suddenly fills the room.

  * "goddamn idiotic truckload of sh*t": when it breaks
[1] https://github.com/git/git/blob/master/README.md

We also have Smart-ID[1] now, a convenient alternative to Mobile-ID. Although not as widespread as Mobile-ID, most banks and government portals have already adopted it.

I personally prefer Smart-ID because of the low friction in getting started, compared to Mobile-ID where you have to get a SIM-card that supports it.

[1] https://www.smart-id.com/

I recently set up a mail server with DKIM, SPF, DMARC configured correctly. After spending a day fighting with major email services to not mark my emails as spam, I really saw the value of email service providers. But the damn prices...

Are there any alternatives to traditional email that could potentially replace it in the near future?