loading...
Yufan Lou profile picture

Yufan Lou

Learning Rust and Haskell, tired of JavaScript. Thinks Ruby is awesome except that it is not cross-platform enough. 日本語 / 中文 OK. He/him.

Location NYC, NY, US Joined Joined on  Email address loganlyf@gmail.com GitHub logo
Work

Student

Work status

I'm looking for work!

All 140 comments

Please explain, what is HATEOAS?

If the GraphQL endpoint only receives queries by GET verb and...

What are most important first things in API design?

but you have to maintain for years WARNING: ranting withou...

How does database indexing work?

To my knowledge mainstream relational databases (MySQL, Postg...

What's the easiest way to create a content based static website

Publii - Open-Source CMS for Static Site CMS GUI + static si...

What do you think about double publication?

Where do you put Open Access in your model of ethics? Creativ...

. (dot) has no real encoder / decoder. Only sanitizers.

For conformance to RFC 3986, single and double dot segments a...

. (dot) has no real encoder / decoder. Only sanitizers.

Yeah, that's conforming to RFC 3986 Section 5.2

. (dot) has no real encoder / decoder. Only sanitizers.

What is the meaning you want to preserve?

The Strategy Pattern Exemplified in TypeScript

What I have come to realize is that composition versus inheri...

🍿What was the most remarkable 🦗 bug you have ever had to fix 👩‍🔧?

Don't invest in digital pets Reminds me when CryptoKitties...

The Strategy Pattern Exemplified in TypeScript

My bad for coming off combative. I do wonder though, since in...

The Strategy Pattern Exemplified in TypeScript

Why all the class inheritance boilerplate when you can pass i...

Functional design: tagless final

I was excited to see tagless final in TypeScript. Sadly this ...

Liking my own comment or post ?

Reddit auto-upvotes your own comment as well.

What are best options for reliably parsed, yet powerful, querystrings?

FYI, there is a better maintained fork: github.com/w33ble/ris...

What are best options for reliably parsed, yet powerful, querystrings?

The conventional option is of course application/x-www-form-u...

What are differences (in API) with payload being inside path params, querystring and body?

From RFC 7230 Section 2.7 http-URI = "http:" "//" authority...

Stop 'using' "useless" "\"QUOTES\""!

Was playing with the validator and as surprised to see I don'...

Stop 'using' "useless" "\"QUOTES\""!

Thank you so much! Let's hope that the saved keystrokes of th...

Observables, Reactive Programming, and Regret

could you clarify what you mean when you say you are "more d...

Building a decentralized web is hard. Who's in?

Decentralization is not a virtue per se. The Web did not beco...

Observables, Reactive Programming, and Regret

You can't just assert.deepEqual on Observable not because it ...

How's modern encryption like?

PGP as a personal key manager has alternatives like KeePass, ...

A-chip Mac

Formally yes but I think it can be almost pronounced as three...

Celebrating DEV Pride & Alan Turing!

The bigger risk lies with keeping round those who are so toxi...

June 19th, 2020: What did you learn this week?

Surreal number is the largest number system where you use onl...

Could Apple Be Forced to Reduce App Store Fees?

EU is slow as always, and the US is not in a mood of enforcin...

Could Apple Be Forced to Reduce App Store Fees?

with a few minutes of research and at least a few hours of...

Can Anyone Guide Me How To be good at Artificial Intelligence and Machine Learning?

It's one thing to follow the tutorials and learning how to us...

Data Structures From Scratch: Array

Great post! Although of course array is actually an abstracti...

Build a complete warehouse management system with React and Django.

Please do not store secrets in the local storage. They'd be a...

Rando.js: replacing Math.random()

FYI: github.com/marak/Faker.js/

Imperative vs Declarative Programming

Imperative thinking is about order. Declarative thinking is a...

You're not worth hiring unless...

We agree on many. We likely agree on more than you think. B...

You're not worth hiring unless...

My focus is test the problem solving skills of university s...

You're not worth hiring unless...

is limited to those with degrees No, I do not think only t...

Python vs Java

Sorry I have to disappoint you, but as I wrote, it was hearsa...

Understanding Kubernetes in a visual way - behind the scenes

I love it! <3

Understanding Kubernetes in a visual way - behind the scenes

Reading handwriting as a published book feels so strange yet ...

Python vs Java

I want all schools teaching Java to complete beginners to sto...

A question about transforming a monolith to microservices

There's nothing "too monolithic" in general. I have heard tha...

You're not worth hiring unless...

Taking both your point and OP's, I think yes, the decimal to ...

Computer Science vs Software Engineering

Type Systems vs Design Patterns Haskell vs Go Paxos vs Bitcoi...

Competitive programming - is it really important?

This competitive round helps companies filter out candidates...

How can I learn to like Golang? (and use it a lot)

There is no way to go back to a incomplete, unsound, and gene...

How can I learn to like Golang? (and use it a lot)

I do not think Golang is a language worth learning if it is n...

What Do You Wish You Knew About Accessibility?

A series on less obvious accessibility tricks can be really u...

What is the best frontend solution, considering SEO?

SEO in the end is largely not a technical problem. As long as...

Tight Code 1: When immutability goes bad

I see. It is indeed a good thing to have one most post so peo...

Website users' security vs usability, and does it mean anything for (smaller) webdevs?

For security, at least store passwords hashed with salt and v...

Please ELI5 how Stateless deployment works

Two ways. First, you can use OpenCV on your backend and use a...

Please ELI5 how Stateless deployment works

Stateless means your server does not generate different front...

Tight Code 1: When immutability goes bad

Of course naively using the JavaScript array will cause enorm...

What is your pettiest programming-related opinion?

OTOH, JavaScript may be the closest to Lisp an Algol descenda...

Makefiles and alternatives?

The concept of make is three prong: tracking dependency, moni...

What is your pettiest programming-related opinion?

That most programming languages do not interoperate is eviden...

🦕Deno the Node replacement? Bonus: I created a boilerplate for Deno

Ah sorry I missed the WSL part.

🦕Deno the Node replacement? Bonus: I created a boilerplate for Deno

For all these commands we don't need any extra tools or depe...

Deno is coming

I am pretty much in agreement with Ben Awad's opinion in his ...

A good reason not to use OAuth only accounts in your apps

I think the OpenConnect part is nicely translated, because Op...

What's your wifi's name?

You might have found an apple user. Apple calls their wireles...

Don't Read This Monad Tutorial

Monad is a much more general and therefore simpler abstractio...

Node.js SQLite each and Async Iterator

The meat of Database#each is implemented in C++ unfortunately...

A good reason not to use OAuth only accounts in your apps

OAuth was initially just a way for other websites to access d...

A semi technical explainer of all known Zoom issues

IPO is a milestone on growth, but orthogonal to security. It ...

Zoom has acquired Keybase

Zoom has been very aggressively investing in security after t...

Clojure Conj 2018 - Maybe Not -- Rich Hickey

This talk could have been so much better if Rich Hickey did n...

"Hello, World!" but in 30 different languages!!!

Y'all please just join and contribute to Rosetta Code. Rose...

Facebook agreed to censor "anti-state" content in Vietnam

If you care about civil rights, work to pressure the Vietnam ...

Facebook agreed to censor "anti-state" content in Vietnam

FYI on human trafficking, the situation may not be as horribl...

Facebook agreed to censor "anti-state" content in Vietnam

Case in point, what if Facebook is "banned from Vietnam", so ...

Facebook agreed to censor "anti-state" content in Vietnam

Freedom of expression stops at other rights retained by peopl...

The Lies of "===" operator

Another day, another developer discovers IEEE 754 double-prec...

Facebook agreed to censor "anti-state" content in Vietnam

In terms of political organization, the government and the an...

Facebook agreed to censor "anti-state" content in Vietnam

teaching people how to think To teach how to think means a...

What's your favorite software idiom/aphorism?

You'd be surprised at how god-damn much those command line to...

What's your favorite software idiom/aphorism?

This is an idiom which sounds nice but cannot be applied, due...

Facebook agreed to censor "anti-state" content in Vietnam

The point was that it's not true that tight regulation and p...

Facebook agreed to censor "anti-state" content in Vietnam

NYT is held liable for the content of its pages The usual ...

Facebook agreed to censor "anti-state" content in Vietnam

a platform, or a publisher Where do you draw the line? New...

Made a website for Chinese learners. Registered a domain name. But?

在苏联,句子写你! -- Sentence of the day 🤣🤣🤣🤣 I did not expect to...

Need a little help here.

This is old but just putting this out there: If you don't wa...

Workdrop — A file request app for teachers

Just FYI: If this eventually (ever) goes into production, the...

Rust looks awesome

FYI: That specific error has been fixed since 1.41.0. Becaus...

Else Before If In Rust

Yeah, I am not sure about it either, but it feels surprisingl...

Else Before If In Rust

The point is to promote the normal case to the top. In your c...

How C# asynchronous programming is different than what you think

For imperative style async is probably the best. There is no ...

Rust looks awesome

Your link to froggy is still to slotmap. Use this: crates.io...

Rust looks awesome

I think turning off strictness project-wide is too big a hamm...

React's render() Doesn't... Render

Calling render() doesn't necessarily return anything. It r...

To C/C++ Or Not to C/C++

The problem I have with C/C++ is not that they are difficult,...

Facebook agreed to censor "anti-state" content in Vietnam

Wikipedia Wikipedia does not have as contentious a reputat...

Taking a Look at an Odd FizzBuzz Solution

Tried to apply the same bit pattern tech in Rust, but Rust re...

Facebook agreed to censor "anti-state" content in Vietnam

on some respectful podcast I heard that they continue ignori...

Facebook agreed to censor "anti-state" content in Vietnam

Although I am sad to see the result of negotiation comes to a...

Facebook agreed to censor "anti-state" content in Vietnam

I believe will have the effect of users in tightly-regulated...

Facebook agreed to censor "anti-state" content in Vietnam

First I apologize if this appears in the mentions of the OP. ...

Facebook agreed to censor "anti-state" content in Vietnam

I wouldn't place unconditional trust in any of the agents sha...

Any conservation foundations or initiatives that you'd recommend others look into?

Project Wren: Become aware of the carbon cost of your daily l...

Facebook agreed to censor "anti-state" content in Vietnam

I’m really not interested in arguing with you about Facebook...

Facebook agreed to censor "anti-state" content in Vietnam

I went from an avid user, to an inactive one, to eventually ...

Facebook agreed to censor "anti-state" content in Vietnam

If anything, Facebook is the most resistant to the authoritar...

Facebook agreed to censor "anti-state" content in Vietnam

data remaining private even to the service provider FYI, a...

Facebook agreed to censor "anti-state" content in Vietnam

I am glad that Facebook is powerful enough to be in the posit...

Facebook agreed to censor "anti-state" content in Vietnam

A social media website is by definition a biased political to...

Facebook agreed to censor "anti-state" content in Vietnam

I am in solidarity with you and Vietnamese people fighting fo...

Facebook agreed to censor "anti-state" content in Vietnam

Facebook has a history of supporting dictatorships and under...

Facebook agreed to censor "anti-state" content in Vietnam

I agree mostly, but FYI, privacy wise, naive federation is th...

Explain Async/Await Like I'm Five

Because async/await is actually one level higher than Promise...

Daily Challenge #225 - Square'n'Sum

squareSum = let square x = x * x in getSum . foldMap (Sum ....

What library/language/tool wowed you with its developer experience?

Those who say Ruby is simple have never met Scheme.

What library/language/tool wowed you with its developer experience?

Elm. The error message quality of the compiler is to this d...

Types of Loops

Looks like you are teaching in Java. Java has iterator for ...

Types of Loops

Personally my favorite source of names is Haskell. In the c...

Twilio Hackathon Help Thread

👋 Can I be added to the help channel on DEV Connect?

Lazy, eager and greedy evaluation

I see, you think because there are always only 1 outermost ...

Nondeterminism in purely functional languages?

Classifying non-determinism as an effect seems therefore i...

Lazy, eager and greedy evaluation

And therefore programmers wouldn't write non-terminating x...

Nondeterminism in purely functional languages?

If we assume B is a superposition of all outcomes of the n...

Lazy, eager and greedy evaluation

With non-strictness, however, the expansions of x or y may...

Lazy, eager and greedy evaluation

Why Functional Programming Matters by John Hughes, the crea...

Nondeterminism in purely functional languages?

There is a formal definition of purity in What is a Purely ...

Unpopular opinions

Vim at its core is a language for describing editing action...

Code navigability?

I'd love to see data flow or call graph visualization showi...

Code navigability?

But cant avoid the large files, so one thing ive always wa...

Use Tabs For Indentation

I don't know yet. Right now such IDE capable of auto-conver...

Use Tabs For Indentation

Let's go through what the workflow of someone who needs to ...

Use Tabs For Indentation

Accessibility means the code looks different according to d...

Tabs vs Spaces?

Thank you so much for bringing this reason to my attention....

How is GraphQL different from the old days?

The point of GraphQL is to have the front-end not learn new...

Learning Algorithms and Data Structures: Linked Lists

In the head == tail branch of remove(), you set both head and...

Array Is Not A Linear Data Structure

We need some inevitable structure in the index to describe wh...

Array Is Not A Linear Data Structure

If you can access the elements in random order, why do you ...

My first impressions of Rust

A preceding apostrophe has been shorthand for QUOTE in Lisp...

My first impressions of Rust

Thank you for sharing your experience of trying out Rust! ...

What Are the Most Important CS Principles to Learn as a New Dev from a Non-Traditional Background?

Nicholas has done a wonderful job laying out the skeleton o...

Type System FAQ

XD I quivered at the mention of "categories". I have habit...

Welcome Thread - v46

Long time lurker, finally decided to join discussion of typ...

loading...