为了完成java的作业,先拿js写了一个。暂时只完成了一些简单的运算
所有由罗佳(博主)发布的文章
【工具】listen
今天写了个小工具,用来显示声音的波形和频谱。音源可以是麦或者音乐文件音乐文件可以直接拖入。
在线演示:https://jiajiajiang.github.io/listen/ 或 https://pages.luojia.me/listen/
项目地址:https://github.com/JiaJiaJiang/listen
默认会进入麦克风模式,如果想要显示本地音乐的频谱的话可以直接把音乐拖入。
[C++]std::async异步操作 笔记
相关文档:http://zh.cppreference.com/w/cpp/thread/async
这只是一篇个人学习笔记,如有错误欢迎指出
咕了C++一段时间,我又回来学习了,这次是关于STL里自带的线程相关的模板函数`async` 。
async可以非常方便地用来创建一个异步任务,不同于基于libuv那种事件轮回型的异步编程,这个异步是使用一个新的线程来执行任务,而coder不用自己去管理新的线程。
Nexus5丢了
这部2014年2月24日,我拿到的第一部买给自己的手机,今天回家的时候丢了。
R.I.P.
我的CDN文件竟然被篡改了
四月要结束啦,这个月竟然一篇博文都没写
回忆一下也没做什么特别的事情,白天玩游戏补番,晚上恶补c++
另外帮同校生搭了个blog放在我服务器上,看起来是个生活向blog
这个学期的课表安排让我们感觉时间过得特别快,几乎都是上午的课,然后随便干点什么事下午就结束了,再干点什么事晚上就结束了,一周周转眼就过去了
[Javascript]进制转换
由于coding gists即将关闭,所以把此代码片搬到博客
js的Number支持直接使用toString转换到最多36进制(0-9a-z),而此函数支持转换到由传入进制表定义的任何进制。
默认进制表为0-9a-zA-Z的62进制
/* COPYRIGHT luojia@luojia.me MIT LICENSE */ function conv(n,o,t,olist,tlist){//数,原进制,目标进制[,原数所用字符表,目标字符表] var dlist='0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ', tnum=[],m,negative=((n+='').trim()[0]=='-'),decnum=0; olist||(olist=dlist); tlist||(tlist=dlist); if(negative)n=n.slice(1); for(var i=n.length;i--;) decnum+=olist.indexOf(n[i])*Math.pow(o,n.length-i-1); for(;decnum!=0;tnum.unshift(tlist[m])){ m=decnum%t; decnum=Math.floor(decnum/t); } decnum&&tnum.unshift(tlist[decnum]); if(tnum.length===0)tnum.unshift(tlist[0]); return (negative?'-':'')+tnum.join(''); } conv(1234,10,2) //"10011010010" conv(15,10,16) //"f" conv('ABC',16,10) //"9846" conv(3245670,10,10,null,'零一二三四五六七八九') //"三二四五六七零" conv('①②③',10,2,'〇①②③④⑤⑥⑦⑧⑨') //"1111011"
C++:你还学不学我啦?
佳佳:咕咕咕。。。
bilibili分片视频连接脚本
npm多用户
npm的用户登录信息写在用户目录的`.npmrc` 文件里,所以同一时间只能登录一个账号,要切换账号的话就要重新用`npm login` 登录,比较麻烦。
于是写了个切换.npmrc文件来直接切换用户的shell脚本
分别login到对应的用户,然后查看用户目录里的.npmrc文件内容,复制出来,填到下面对应的地方
#!/bin/bash if [ $1 = "user1" ] then echo "user : $1"; echo -e "registry=http://registry.npmjs.org/\n//registry.npmjs.org/:_authToken=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" > ~/.npmrc; elif [ $1 = "user2" ] then echo "user : $1"; echo -e "registry=http://registry.npmjs.org/\n//registry.npmjs.org/:_authToken=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" > ~/.npmrc; fi
保存成比如`npmuser` 文件放在某个PATH目录里,然后用`npmuser user1` 这样的命令就可以直接切换用户而不用再登录了。
2018年1月31日 月食
屏蔽弹幕中的emoji
打开屏蔽设置,使用正则屏蔽,输入`[\uD800-\uDBFF]`即可。
这是整个unicode扩展区域,将屏蔽包括emoji在内以及将来所有可能出现的非常规字符。
新伙伴入手 Key
买了个Midiman keystation88,取名为key。
2018年
又是一年过去了,总结一下
- osu水平上去了一点,但是std排名一直在往下掉,从曾经最高的接近50000+的排名掉到了现在96770,但是mania的单数键我会玩了,而且mania的排名更高了。
- 努力学了一点日语,可以一定程度上不靠咕果了。
- 火影忍者完结了,我大概也是从初中开始看的,一直看到大学。
- 触及了一些webgl方面的东西(做弹幕),把以前学opengl的时候一些没搞懂的东西弄明白了。
- 重构了个人弹幕站,改名为简易弹幕站
- 改装了我的台式机大红黑,装上了1080ti,散热全部换成水冷
- 在自家公司实习了一个月
- 看了103部动画(同系列不同季分开算)见顶上菜单stat里的追番列表
- 继续学习C++
记忆超差,不写在佳佳酱上的事情几乎不可能想起来。
接下来的一年也要undefined哦。
[C++]lambda表达式笔记
我刚开始学C++的时候似乎还没有lambda表达式这东西。这个blog的第一篇可见文章在2012年8月,还有一些更早的都是些垃圾水文被我删掉了,开设这个blog的时间我记得在学了web一段时间之后,在那之前我也在各种免费php空间搭过wordpress用过一段时间,后来废了。在更之前我还坚持用自己写的“佳佳空间”当blog用了很长一段时间(虽然后来终于还是放弃了,因为写得太垃圾)。推算下来可能要到9年多前了,大概就是小学的时候?反正是在2011年之前,而lambda表达式是C++11标准里的,所以那时候应该确实没有这东西。
好了回到正题。
C++的lambda表达式和js里的有点不一样,它可以自己选择是否打通函数范围之外的上下文,以使用外面的变量。还可以选择如何打通(引用外部变量和复制外部变量)。
lambda函数的结构长这样
[外部变量规则]{函数体}//没参数省略括号
[外部变量规则](参数){函数体}//省略返回类型指定
[外部变量规则](参数)->返回类型{函数体}//到C++11为止的完整形态
C++20又加了一个形式,暂时就不写在这了,毕竟2020年还没到呢不着急,而且也没编译器实现了。
重新开始学C++
C++是我学的第一个编程语言,也是我第一个放弃的编程语言,然后我就进入web路线了。
现在感觉转入web还是个不错的选择,学到的东西比只学C++要广泛的多,现在重新学一学C++来弥补一下某些时候性能上的缺陷。