首页   注册   登录
 edwardwo 最近的时间轴更新

edwardwo

V2EX 第 229148 号会员,加入于 2017-05-05 10:46:50 +08:00
今日活跃度排名 8112
还是不能免俗, 做了个文件传输工具(支持 P2P)
分享创造  •  edwardwo  •  2018-08-19 12:52:01 PM  •  最后回复来自 qdwang
17
花了几周做了个 SVG 画图板(前端 React, 后端 NodeJS)
  •  1   
    分享创造  •  edwardwo  •  2018-04-29 16:04:26 PM  •  最后回复来自 xiaochocking
    12
    个人业余时间做的 P2P 文件传输 library
    分享创造  •  edwardwo  •  2017-08-17 14:53:03 PM  •  最后回复来自 edwardwo
    7
    edwardwo 最近回复了
    43 天前
    回复了 sheyong 创建的主题 问与答 hhkb 用久了发黄 你们怎么清洗的
    记得第一次扣下键帽, 洗的干干净净, 准备按上时, 蒙了, 我的是无刻印版, 不知道每个键帽的实际位置. 后来发现, 每一排的键帽都一样, 费了一番周折, 分为 4 组. 以后每次洗键帽, 习惯性的装在 4 个小盒子里.
    我做过一个图片编辑的 web app, 详见我(之前的帖子)[https://www.v2ex.com/t/558168], 我一直想进一步完善, 如:
    * 实现自动扣图(把背景中的路人删除, 删除部分和背景自动实现无缝融合)
    * 引入一些 AI 技术, 如: 人物卡通化 /素描化, 风景照变成水墨画 /油画风格
    * 人脸美化 /丑化 /老化 /年轻化 /恶搞, 虽然这些功能已经烂大街了, 但作为图像编辑工具, 这些好像都已经是标配了

    换脸之类的应用, 我很早也想到过, 但会有许多监管 /道德问题, ZAO 不是瞬间被微信屏蔽了, 而且很难通过正规途径变现.

    商业上, 可以"高级功能"付费, 普通功能免费. 我本人前后端都可以做, 楼主有兴趣的话, 可以聊聊.
    The Matrix, 黑客帝国
    84 天前
    回复了 return0 创建的主题 酷工作 急招 p6/p7 以上前端
    总算有个面试修卫星, 入职也修卫星的职位了.
    @ffeii 移动端能打开, 是因为图片是放在<canvas />上展示的, 这个主流浏览器都支持, 但图片的编辑是调用 WebAssembly 模块实现的, 这个移动端都不支持, 因此所有操作, 点击后没反应, 也不会报错.

    @but0n 打开摄像头后的 filter 效果是通过 CSS 实现, 你看这行代码就知道了
    https://github.com/edwardwohaijun/image-editor/blob/master/www/src/components/Header/Selfie.js#L6

    图片的 filter, 如正文中提到的高斯模糊, 柔滑, 这些都是直接在 WebAssembly 中读取<canvas />上的像素值(以数组形式), 然后依次对每个像素执行 2D convolution, 做图像处理的朋友, 都知道这个概念.
    依稀记得某部日剧有句台词: 当你困惑, 迷茫, 不知道做何选择的时候, 选择最难的那条路. 事后看来, 十之八九是正确的选择.
    listEle.addEventListener('wheel', this.infiniteScroll)
    用'wheel' event, 不要用 scroll, scroll 必须有滚动条时才触发. 'wheel' 一滚动, 就触发. 在 infiniteScroll 中再判断:

    scrollHeight = listEle.scrollHeight
    scrollTop = listEle.scrollTop
    offsetHeight = listEle.offsetHeight

    if (scrollHeight === scrollTop + offsetHeight) {
    this.$emit('loadMore')
    }
    2018-08-19 10:45:55 +08:00
    回复了 edwardwo 创建的主题 分享创造 还是不能免俗, 做了个文件传输工具(支持 P2P)
    @qdwang 很遗憾, 不支持 iOS, 目前这个 P2P 功能只支持桌面 Chrome. webRTC 虽然是 w3c 标准, Firefox, Safari 11(桌面, iOS)都支持了. 但我的 app 主要是以文件传输为主, 为了能传输超大文件, 底层用到了 Filesystem API, 这个不是 w3c 标准, 是 Google 自己倒腾出来的. 而 iOS 平台上的 Chrome 浏览器, 底层的 rendering 和 javascript 引擎用的是 Apple 的引擎(Apple 就是这么规定的: 在我的平台上必须用我的技术.). 因此, 也不支持这个 API.

    如果我不用 filesystem API 的话, 理论上到是可以支持全平台(桌面 /iOS/android), 但这样只能传输小文件, 而且底层有许多兼容性问题, 开发工作量也非常巨大.
    webRTC 除了可以发文件(底层用了 data channel), 还有个很帅的功能(视频聊天), 这个目前几乎是全平台都支持了. 我在想要不要把这个功能加在我的这个网站上呢.
    2018-08-17 15:04:27 +08:00
    回复了 edwardwo 创建的主题 分享创造 还是不能免俗, 做了个文件传输工具(支持 P2P)
    @886106 当然可以, 我就是部署在青云的服务器上. 上传文件的个数和大小, 取决于 2 个参数值: maxUpload(单个页面最多允许上传多少文件), maxFileSize(单个文件允许多大, 如: 20m, 5M), 我的小网站, 带宽 /磁盘有限, 因而只允许最大上传 5M 的文件.
    github 上我增加了一个中文的 readme.md:
    https://github.com/edwardwohaijun/file-transfer/blob/master/README_cn.md
    页面上有详细说明.
    2018-08-17 09:30:52 +08:00
    回复了 edwardwo 创建的主题 分享创造 还是不能免俗, 做了个文件传输工具(支持 P2P)
    @Tink FilePizza 底层也是用 webRTC 实现 P2P 传输的, 数据不经过服务端, 因此它需要发送方的页面一直打开, 直到接受方收完为止. 由于 FilePizza 还支持 Firefox, 因此我觉得传输的文件不能大于接受方内存允许的大小. 而我的 app 仅支持 Chrome(有个 FileSystem API, 可以把数据直接写入硬盘), 因此可以传输超大文件.

    @qdwang 这个应用本身就是一个服务, 只需占据一个端口即可. 安装部署步骤如下:
    首先要安装如下软件:
    Golang (>= 1.9.2), 需要设置 $GOPATH 环境变量
    MongoDB (>= 3.2)
    NodeJS (>=6.5) 客户端 JS 文件打包之用

    下载安装:
    go get github.com/edwardwohaijun/file-transfer/cmd/filetransferd
    cd $GOPATH/src/github.com/edwardwohaijun/file-transfer/
    go build -o filetransferd cmd/filetransferd/main.go

    cd web
    npm install
    npm run build (适用于开发, 测试环境)
    npm run ship (适用于生产环境)
    cd ..
    ./filetransferd 直接运行编译后的可执行文件即可, 虽然有 10 几个参数, 但都有默认值.
    打开 Chrome 访问: http://127.0.0.1/9090

    后端的代码几乎都是针对"上传文件"这个功能, 如果你仅仅想实现 P2P 传输, 可以使用我的另外一个 JavaScript library: simple filer ( https://github.com/edwardwohaijun/simple-filer ), 直接 import 到你的项目中即可.
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   4354 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 16ms · UTC 06:26 · PVG 14:26 · LAX 23:26 · JFK 02:26
    ♥ Do have faith in what you're doing.