profile
viewpoint
Kevin (Kun) "Kassimo" Qian kevinkassimo @google (intern) UCLA → Stanford ksm.sh Yes I AM an IDIOT. @google SWE Intern 2018/2019/2020; worked on @ampproject / Search. Ex-Core team member of Deno @denoland

kevinkassimo/buhtig 8

Find and Go to first commit OR N-th commit OR view commits one by one (sequentially) of any github repository (THIS IS OLD SITE, still usable if you don't prefer OAuth) Use buhtig.com instead

bartlomieju/deno 2

A secure TypeScript runtime on V8

kevinkassimo/buhtig-redesign 2

Find and Go to first commit OR N-th commit OR view commits one by one (sequentially) of any github repository (Redesigned)

kevinkassimo/CryptoUpdate 2

A small update app that tracks profit of Cryptocurrency (GUI for Mac only)

kevinkassimo/CS194A-Project1 2

This is a class project. Nothing interesting to see here.

acm-learnjs-sp18/react 1

React workshop

kevinkassimo/amper 1

Insane thoughts on functional testing with webdriver

kevinkassimo/awesome 1

😎 Awesome lists about all kinds of interesting topics

kevinkassimo/catchla 1

[OBSOLETE] UCLA Class Scanner and Course Auto-enrollment

kevinkassimo/CS194A-Project2 1

This is a course project for CS194A at Stanford. Nothing interesting to see here.

startedtock/tock

started time in 4 days

create barnchkevinkassimo/CS194A-Project2

branch : main

created branch time in 5 days

created repositorykevinkassimo/CS194A-Project2

This is a course project for CS194A at Stanford. Nothing interesting to see here.

created time in 5 days

push eventkevinkassimo/CS194A-Project1

Kevin (Kun) Kassimo Qian

commit sha 4b416f5552f1b34b2454cf40101c1d4b2a4d8c43

Slight update of README

view details

push time in 8 days

push eventkevinkassimo/CS194A-Project1

Kevin (Kun) Kassimo Qian

commit sha 95e051161e08feac50b7964b105806edfb3ae5a1

Add demo and update README

view details

push time in 18 days

push eventkevinkassimo/CS194A-Project1

Kevin (Kun) Kassimo Qian

commit sha b4b05eed3931013dd31ec1719eba6454b395777f

Implement tint and save/load as extensions

view details

push time in 18 days

create barnchkevinkassimo/CS194A-Project1

branch : master

created branch time in 19 days

created repositorykevinkassimo/CS194A-Project1

This is a class project

created time in 19 days

startedmikeal/ZDAG

started time in 23 days

startedalibaba/rax

started time in 24 days

startedmozilla/OpenWPM

started time in 24 days

startedsherlock-project/sherlock

started time in 24 days

startedbellard/quickjs

started time in 25 days

startedbrave/adblock-lists

started time in a month

startedPitt-CSC/NewGrad-2021

started time in a month

issue openeddenoland/deno

Signal defaults never restored after `sig.dispose()` called

Example:

const sig = Deno.signal(Deno.Signal.SIGINT);
// don't exit
const exitBlocker = setTimeout(() => {}, 100000);
await sig;
sig.dispose()
console.log("Signal disposed");
// Now if you try Ctrl-C it will still never exit the program, as default is never restored.

This is due to upstream Tokio behavior: See https://github.com/tokio-rs/tokio/blob/138eef352671aadffca304d62c69cb2582e64f2a/tokio/src/signal/unix.rs#L346-L361

It is debatable if we should reset to SIG_DFL ourselves, but it will break Tokio's handling due to Tokio having no idea we secretly resets and it relies on the presence of some SigInfo struct to determine if we have ever registered for listeners, meaning future reregistration will no longer work.

While it is probably more of a Tokio issue here if we want the default handling back, it might be worthy for us to discuss even if reset to default is the right thing to do. Also we need tracking of this issue on our side.

Notice Node.js does seem to reset to default correctly:

let counter = 0;
function handler() {
  console.log("Register");
  counter++;
  if (counter == 3) {
    console.log("Unregister");
    process.off('SIGINT', handler);
    // Ctrl-C after this kills the program
  }
}

process.on('SIGINT', handler);
setTimeout(() => {}, 100000);

created time in 2 months

startedlabuladong/fucking-algorithm

started time in 2 months

issue commentdenoland/deno

Small concern regarding integrity checking & lock files

(1) sounds like a good way to go, probably could be accompanied with a new flag e.g. --lock-strict=lock.json to simply fail on dependencies not present in the lockfile.

redbar0n

comment created time in 2 months

issue openeddenoland/rusty_v8

Implement bindings for debug-interface to use builtin console

Background: this was brought up in https://twitter.com/KevKassimo/status/1294695571446312961

It seems that we currently don't have bindings to debug-interface.h APIs, such that things like SetConsoleDelegate(to attach handlers for V8 builtin console) is not directly accessible. https://source.chromium.org/chromium/chromium/src/+/master:v8/src/debug/debug-interface.h;l=226-227;drc=459283200c38b18e13566549532ad4d7121451ef

Sample usage of this specific API could be found here: https://source.chromium.org/chromium/chromium/src/+/master:v8/src/d8/d8.cc;l=2312;drc=7e9322335ee659e70c0239fc402db7d86f4b56d6

created time in 2 months

pull request commentdenoland/deno

[WIP] feat(cli/web/fetch): AbortController

I actually had some abort op experimented before, but it was on the old codebase and I am not allowed to submit code anyways recently. But I remember doing something like adding a Abortable wrapper around the future on the Rust side resource table that also stores something called AbortHandle and AbortRegistration. When abort is requested the handle is used to abort the future. If anyone wants to work on the support further it might be a way to try (I would not be able to work on anything until after mid September)

marcosc90

comment created time in 2 months

issue commentdenoland/deno

Rename --importmap to --import-map

This probably needs more feedback from opinion of others. On the other hand just make both the correct flag names might also be fine and the added cost of maintenance should be acceptable.

nayeemrmn

comment created time in 2 months

issue commentdenoland/deno

Add a way to dynamically import the same module multiple times

@lem0nify Standard compliance is a core idea of the project from almost Day 1, as we want to maximize browser compatibility for many common utility modules. IMO you either accept the standard and follow the rules, or throw the standards out of the window and do your own thing (and in that case, we offer the option of Node-like require in standard modules -- which is not part of the core binary). A middle ground between the two, while sound tempting, is likely to eventually result in some kind of a turmoil in the long run: small bits of complexity added to support a non-standard feature while trying to maintain standard compliance would gradually grow and become huge burden and legacy

lem0nify

comment created time in 2 months

issue commentdenoland/deno

Add a way to dynamically import the same module multiple times

Based on my understanding this is one core design related to ES6 imports and while theoretically we can do hacks to force the runtime to "forget" about a module and its dependencies (since we have control to host_import_module_dynamically_callback), it's beyond standards and might cause future regrets.

In the meantime, we still have a require polyfill in std/node/module.ts, so you can probably use it just like what you would do in Node.js. (with restriction that you either have to rely on CommonJS modules with it or use dynamic imports only for ES6 modules)

lem0nify

comment created time in 2 months

startedwebview/webview

started time in 3 months

startedwebview/webview_deno

started time in 3 months

issue commentdenoland/deno

[std/testing/asserts] Rename *Contains to *Includes

Aliasing might work? I remember when people originally introduces Array.prototype.includes() it is due to .contains() collision with some existing popular libraries (.contains() preferred over .includes(), but forced to go the other direction. We don't have this problem here)

jsejcksn

comment created time in 3 months

issue commenttauri-apps/tauri

http.writeFile API fails with non-ascii characters

Was about to file the exact same bug, but I think I have figured out the reason for this:

https://github.com/tauri-apps/tauri/blob/cc67680fca38d0222631fb04afac25f7aae50907/tauri/src/app/runner.rs#L305-L306

Likely the use of .chars() breaks the behavior: per https://doc.rust-lang.org/std/string/struct.String.html#method.chars , the behavior might not be what we want here: arg.len() is the byte length, yet .chars() iterates over Unicode Scalar Value instead. Notice the example above

..."options":{"dir":2}}] // missing final "}

(I cannot try working on a fix myself due to some legal reasons atm, but hopefully this observation can help)

lancetarn

comment created time in 3 months

startedtauri-apps/tauri

started time in 3 months

startedalibaba/pipcook

started time in 3 months

startedimgcook/imgcook

started time in 3 months

startedfelixrieseberg/macintosh.js

started time in 3 months

startedwting/autojump

started time in 3 months

issue commentdenoland/deno

Efficiency/speed proposal: just strip types

See https://deno.land/manual/getting_started/typescript#--no-check-option

sdegutis

comment created time in 3 months

push eventkevinkassimo/kevinkassimo

Kevin (Kun) "Kassimo" Qian

commit sha 7f01fc68662bbd1889cd4a5ea7dda00701b47e27

Update README.md

view details

push time in 3 months

startedcrewdevio/Trex

started time in 3 months

more