一个待办事项的仓库
期待能够完成的
- 个人分享–web 前端学习资源分享
- PWA 所代表的 Web 开发应是未来据说Electron要被PWA干掉
- js 循环闭包的解决方法
- [ ] shadowsocks-android源码(据说是起了一个c进程守护)
- [ ] chromium net移植到Android平台cronet是最简单的方式 更多下载仓库
- [ ] lightbox一个很好看的js图片查看库
- [ ] 一个很好看的h5音乐播放器
- [ ] 仿门户网站js相册, js相册2
- [ ] 八大排序算法的python实现
- [ ] 如何在宿主App中提取一个apk文件并加载代码和资源
- [ ] nodejs ,go ,protobuf rpc(proto更多的是作为一种协议来进行rpc数据传输)
- [ ] Coordinator behavior以及scroll原理
- [ ] instagram好像通过注解的方式自己写了一个json解析器ig-json-parser
- [ ] when it comes to design , how do we translate px, pt, em into sp,dp and others(设计方面的,各种单位之间的转换)?
- [ ] mqtt接入实践mqtt是建立在tcp基础上的应用层协议,netty也做了实现
- [ ] Kotlin Coroutines Tutorial (STABLE VERSION)
- [ ] 宇宙第一ide熟悉使用
- [ ] python code generator(代码生成器)
- [ ] awk,正则表达式还有数据库这些也算一门编程语言
- [ ]Lua脚本是一个很轻量级的脚本,也是号称性能最高的脚本。路由器上都有运行环境,语法和c语言差不多。在
nginxopenresty配置文件中也可使用。lua还可以和java代码互相调用,还找到了一个将lua移植到android平台的项目 - 腾讯的mmkv是shared preference的有效替代品 mmap的使用值得学习
- 简单的组件化方案
- mvc,mvp,mvvm这些关键术语的掌握还是必要的
- Parcelable 是怎么实现跨进程的? ipc并不仅限于后台,客户端不同进程间也会有类似的概念。
- Perl被称为脚本语言中的瑞士军刀,处理文本和正则的能力比较强。学习perl5就可以了。
- Spring Boot application.yml 写法
- 后端面试题
- thrift 源码解析,rpc框架(比方说人脸识别应用就可以用java调用python服务)这种rpc过程肯定要考虑字节序的问题。
- 微服务框架
dubbokubernetes, Spring Cloud…. - [ ] java BitSet这个class的使用及效率
- [ ] 关于textView源码的解析要补上
- [ ] Replacing JNI Crashes by Exceptions on Android
已完成
- 用 express 转接一个知乎 Api,添加 Access-control-allow-origin,或许还可以用 redis 缓存数据结果(一个就好)由此想到一篇文章”How to use Python to build a restful Web Service”.只不过用的是 Tornado
- git hook (github travis 持续集成,git push 会触发服务器的一系列操作)
- 基于前后端分离的理念,后台只负责提供数据,render page 的任务应该交给前端。(所以用 express-handlebars 写页面的方式写着很累)
- 集成 travis-ci,记得 after-success script 的结果并不会影响 build 的结果(即,after-success 执行脚本发生了错误,在日志里有输出 error,但实际显示的 build result 仍为 success),还有 travis 的输出 log 需要默认是折叠的,要展开才能看清楚,但在 afterSuccess 里面的指令的输出一定是有的。
- 随便放一个文件到/usr/bin/就可以直接调用这个文件名来起这个命令了吗?(实际操作只需要建立一个symbolic link就好了)
- 单个网卡最多65535个端口,c10K。65536其实不是操作系统限制的,而是tcp协议就只给port留了2个bytes给source port,只留了2个bytes给destination port端口号写在tcp包里,ip地址不是,ip地址是ip层的事情
- oAuth2原理,其实流程上和很多客户端的微信登陆,新浪微博登陆很像的
- 在Android手机上尝试用一个unix domain socket用于localhost进程间ipc(其实就是保证端口号一致,给网络权限就好了)。有一个jnr项目,用jni的方式提供了各个平台上的unix domain socket的java调用实现。
- 写 groovy 用intelij全家桶就可以了,groovy的语法其实没什么,主要是了解编译的流程和基本原理,这个需要看official doc
- 开发gradle plugin优化MultiDex。长远来看,5.0以后的手机越来越多,MultiDex也不值得过于关注。
- intelij 点击run 实际调用的command line是两个,一个是javac,编译出来的class文件放到了target文件夹,紧接着用java命令带上一大串classpath去调用主函数
- Android Studio 编译过程,其实就是gradle assembleXXX 好了之后adb push到手机上,再安装,最后起主界面
- Android 编译及 Dex 过程源码分析
- 如何调试 Android 打包流程?,一个remote的事
- 一个用于优化 png 图片的 gradle 插件,用来看 groovy 语法挺好的。以及 How to write gradle plugin
- XSS 攻击,DOM based和Stored XSS,基本上就是不要相信用户的输入,除了合法输入以外一律过滤掉
- Websocket nodejs,局限性就是前后台都得用socket.io的库。前端是浏览器的话还好,app的话java,Android都有对应的实现.[其实就是socket io]
- [使用Spring boot后台提供protobuf接口实现客户端通信] 不要使用protobf-gradle-plugin了。直接写脚本用protoc去生成文件,指定生成文件的路径要和proto里面写的包名对的上。另外就是客户端和server端依赖的protobuf版本以及protoc工具的版本得一致,比如都是3.5。还有就是protoc的语法,什么import的比较烦。
- [X] 使用jinja2生成文件。一个比较好玩的代码生成器
- [X] URL Encoding,就是那个在网址里把字符转成百分号加上UTF-8的找到了阮一峰老师的解释
- [X] 通过file input上传图片,原生ajax以及Ajax,自己搭建上传服务器大概能猜到暴风影音的局域网传输实现了用flask的话自己搭建好后台最简单了,最多再使用flask-wtf和flask-upload规范操作
- [X]Promise 链式调用与终止,异常处理(只是一个工具而已)
- [X] Android 应用接入bugly热修复,上线之后就不用背锅了(有兴趣看看sevenZip.jar,暂时没看)
- [X] netty作者的博客以及jvm 的inline等优化
- [ ] 如何写makefile其实这个更加friendly
- [X] libmp3lame移植到Android,该教程针对的lame版本是3.99.5
- scheme 这东西算跨客户端平台的,比如在 App 中调起支付宝(用的是 alipayqr://)。其实就是一个系统内跨应用调用。用法
这个主要是ios app之间通信的协议,以及快速跳转某个app某个页面的功能实现,还有x-callback-URL这样类似的协议。不过有了3d-touch(苹果后来又把3D-Touch干掉了)之后,很多app都能长按图标进入页面,所以url scheme这个功能只能说是不复往日辉煌了 - [X]linux的sed命令(文本替换比较常用)
- nio 还是netty好。也可以看点别的并发编程网
- [X]js 的async await,就是一个async修饰一个method,里面随便写await, await on 一个Promise就可以了
- [X] Linux下TCP延迟确认机制 以及socket timeout的部分原因(net.ipv4.tcp_syn_retries,如果 TCP 握手的 SYN 包超时重试按照 2 的幂来 backoff)
- [X]c语言的libevent使用教程 eventloop,添加回调,大致的流程就是这样
- [X] indexed DB,浏览器端数据库,还是用第三方库好
- [X] block size vs page size Page是内存相关,block是硬盘相关的
- [X] python 的asyncio(eventloop , generator, coroutine)
- [X]Vim cheet sheet vim多用用就熟悉了。
- [X] python dunder class复习。知道有python descriptor这回事就行了。
- [X] form表单可以跨域一个是历史原因要保持兼容性(就是说跨域这件事,一个域名的 JS ,在未经允许的情况下,不得读取另一个域名的内容。但浏览器并不阻止你向另一个域名发送请求。所以post的表单可以发出去,但是别指望能够拿到response)
- [X] a new article on open-gl intro(在Android平台上要和MediaCodec相关的音视频格式结合着来一起看)
- [X] JavaScript中new FileReader(属于html5的东西),以及canvas api(lineTo,quardTo这些都是相近的),以及js进行图片缩放和裁剪
- [X] tcp-proxy实用教程
- [X]Exoplayer and the MediaCodec apibuilding-a-video-player-app-in-android
- AC2016腾讯前端技术大会 1 1 1 H5直播那些事
- [X] tcp-proxy实用教程(tcp replay or udp relay)
- [X] render-script utility
- [X]C语言fork进程以及进程之间通信的套路
- [X] flex,grid. css的box-size真是坑人
- [X] rxjava是如何切换线程的以及源码解析,ObserveOnObserver和ObservableSubscribeOn实例是桥梁
- [X] jdk7开始提供fork join pool方法,将任务分配到多个线程上处理(不适合io密集型操作)
- [X] openjdk的C语言实现可以随便调几处来看看
- [X] 安装并使用MAT 分析java应用内存。
- [X]how does jvm parse class file and the code structure of .class file(how do we manipulate .class file like in asm) 照着一个java classfile viewer看结构就可以了,如果不是打算深入虚拟机的话,没必要。
- [X] java的aspectJ教程(AspectJ 属于静态织入,是在编译期间生成代理类,性能优于动态织入)。Spring AOP与AspectJ 实现原理上并不完全一致. Spring提供了两种方式来生成代理对象: JdkProxy(基于jdk动态代理,前提是目标是有接口的)和Cglib(基于asm,用于实现对类的代理)。实际上,Spring 只是使用了与 AspectJ 一样的注解,没有使用 AspectJ 的编译器 ,转向采用动态代理技术的实现原理来构建 Spring AOP 的内部机制(动态织入),这是与 AspectJ(静态织入)最根本的区别。
- [X] js的闭包(closure)等面试常谈 closure under the hood
- [X] build a program that use libcurl , sudo apt install liccurl4-openssl-dev
,编译时使用gcc -lcurl,curl perform是同步的。 - [X]content-disposition
- [x] 用正则检测或者解析json(jQuery源码里有) 在线正则检测网站,也就是Js中的Reg对象
- [X] Redux和Flux很像,react context api(感觉有点像观察者模式)
- embeed video with iframe
- jdk8 standard Library implementation detail(java代码的实现 –> hotspot代码的c语言实现) 很多都是c++写的
- [X] 熟练掌握java8的stream,lambda,optional等语法。还是要多多练习
Good For Nothing
- [ ] 用GDB调试程序
- [ ] npm install graphql(mostly a server side javascript stuff)
- 使用 express 模拟网络延迟
- 基于 Docker 打造前端持续集成开发环境
- vS Code Vender Prefix plugin => auto prefix loader
- 前后端分离
- sql漏洞
- 深入浅出腾讯云 CDN:缓存篇不管SSD盘或者SATA盘都有最小的操作单位,可能是512B,4KB,8KB。如果读写过程中不进行对齐,底层的硬件或者驱动就需要替应用层来做对齐操作,并将一次读写操作分裂为多次读写操作。
- Android进程的加载流程
- 前后端同构
- install nginx , jenkin ci, deploying nginx in docker(Http Load Balaning with Docker and nginx)
- [ ] 网易云音乐API
- [X] Django部署个人网站(Gunicorn,Nginx)。django写template就不是前后端分离了
- [ ] Dockerintro-to-docker-building-android-app 这篇文章其实是两件事,一个是Build docker image(docker build xxxx),另一个是run (docker run xxx)
- [ ] 和网页类似,Activity也有一个referer的概念,用于判断当前页面是由谁发起请求的
OpenType® is a cross-platform font file format developed jointly by Adobe and Microsoft. - [ ]deploying owncloud using docker
- owncloud官方的配合docker安装教程网盘这种东西看个人喜好了
- [ ]CloudFlare cdn解析以及DNS防护
- [ ] python c extension
- [ ] 最简单的一个用go写出来的rest api大概长这样
- [ ]分词器
- [ ]LOGSTASH+ELASTICSEARCH+KIBANA处理NGINX访问日志ELK全家桶, logstash接管软件日志
- [ ] 如何编写 jQuery 插件
- netfilter框架(imbedded in linux server)
- [] java实现lambda的原理invokedynamic以及LambdaMetafactory等
- [ ] libuv,elf文件格式解析
- [X] WebSocket协议及数据帧
- [ ] linux环境下多进程通讯方式(管道,共享内存,信号,unix domian socket)
- [ ] play around with xposed
- [ ] python gui编程
- [ ] 来来来,手写一个vm
- [ ]How the JVM compiles bytecode into machine code
- [ ] chromium提供了如何在windows上编译chromium的教程
- iview,elementUi
- [ ]一致性哈希原理
- [ ] 使用redis实现低粒度的分布式锁
- [ ] python sendall will block? what if tcp buffer is full , like when advertised windows size is zero. tcp flow control
- [ ] rust and WebAssembly, WebAssembly 并不是一门编程语言,而是一份字节码标准,需要用高级编程语言编译出字节码放到 WebAssembly 虚拟机中才能运行, 浏览器厂商需要做的就是根据 WebAssembly 规范实现虚拟机
jsonplaceholder懒得自己写api的话
就用这个吧