Category Archives: Dev Tools

Miscellaneous tips while developing in WSL (Windows Subsystem for Linux)

File change monitoring doesn’t work, such as the auto-refresh of create-react-app Use the following before your "npm start" or put it on env file: CHOKIDAR_USEPOLLING=true And if you are using Intellij, you need to explicitly "ctrl + s" to save the changes on your code files Integrate beyond compare with git diff export TMPDIR=’/mnt/c/Users/yourName/AppData/Local/Temp’ alias […]

Import a merge commit from on branch to another branch

git diff the-commit-before-your-commit your-commit > abc.diff git apply –reject –whitespace=fix abc.diff #If you not lucky, you will see some *.rej files generated, which mean failed patchings #You can still a tool to called “wiggle” deal with them wget http://neil.brown.name/wiggle/wiggle-1.1.tar.gz tar xvf wiggle-1.1.tar.gz # You may have to install ncurses library first sudo yum search ncurses […]

一台电脑使用多个github账号时如何免密登录

1. 生成各自的ssh key ssh-keygen -t rsa -C “foo@test.com” #选择key文件为~/.ssh/id_rsa_foo ssh-keygen -t rsa -C “bar@test.com” #选择key文件为~/.ssh/id_rsa_bar 2. 将这两个ssh key加入到系统中 ssh-add ~/.ssh/id_rsa_foo ssh-add ~/.ssh/id_rsa_bar ssh-add -l 3. 配置两个虚拟ssh host,分别对应每个ssh key.  这样在进行ssh登录github时,系统知道应该选择哪一个ssh key 引用 #~/.ssh/config Host github-foo HostName github.com User git IdentityFile ~/.ssh/id_rsa_foo Host github-bar HostName github.com User git IdentityFile ~/.ssh/id_rsa_bar 4. 将这两个ssh key的公钥部分分别粘贴到github的账号设定中,这样才能免密登录 请参考: https://help.github.com/articles/generating-ssh-keys 中的Step3 . […]

改变当前git repo的author name和author email

如果你原有一个git账号,它是 UserA/UserA@test.com, 并且你用它工作过 现在你又搞了一个git账号,用这个新账号提交代码后,github(或其他git中心)页面上的日志会说刚刚的代码是由“UserA/UserA@test.com" 提交的。这就很搞笑了。 为什么会这样? 因为你可能已经把UserA设置为global username了 可以这样检查一下 git config –global –get user.name git config –global –get user.email 解决方案是在当前repo中,修改git客户端的username/email: cd your-working-dir git config user.name "UserB" git config user.email UserB@test.com 注: 这里的username/email只用于git commit中的author记录,跟用于登录github的用户名/密码没有关系

Mac下为Safari设置外网socks代理,导致java程序中的内网socket访问全部失败

今天遇到一个问题:Mac下为Safari设置外网socks代理,导致java程序中的内网socket访问全部失败。 刚出现这个问题时觉得很诡异。一个内网URL地址,用chrome浏览器 + switchy proxy # (置为no proxy)可以访问,而用java程序中的URLConnection或Socket代码连网络都会失败。 后来跟进Socket代码才发现原因。 教训就是: Safari所设置的socks代理是系统级的,不仅影响safari,还影响整个系统所有的socks连接。

浏览器看上去发出了请求,但实际上可能没有

测试b/s服务端或http中间件时,需要让浏览器发出请求。 有时浏览器看上去发出了请求,实际上可能并没有。 昨天遇到的真实例子:  在chrome中发出一个请求,服务端迟迟不响应;然后新一个tab,用相同的URL发出请求,浏览器的滚轮会提示正在等待响应,但在服务端设置断点、观看日志发现,请求根本没过来。 如果把第二个tab里的url改一下,重发请求,服务端就会收到。 也就是说, chrome中如果某个请求处于pending状态,可能就会拒绝发出URL相同的请求。 为了避免这种问题, 可以用curl/wget代替浏览器。

如何让virtualbox的主机能访问宿机,宿机又能访问主机所在局域网?

如何让virtualbox的主机能访问宿机,宿机又能访问主机所在局域网? 答案是在virtualbox里配置两块网卡:   1. 配一个Host-Only方式,这样主机就能访问宿机   2. 再配一个NAT方式,这样宿机就能访问主机所在局域网 (还要在虚拟机里把DNS配的跟主机使用的DNS一样,否则无法用域名访问主机所在局域网里的服务器)

svn中查看已删除的文件

先这样搞一下,找到文件被删除前的revision 引用 svn log –verbose|grep -5 homepage.jsp 假设revision是267,这样来查看它: 引用 svn cat http://svn-rep/web/src/main/webapp/web/jsp/homepage.jsp @267 如果要恢复它到本地,可以这样 引用 svn cat http://svn-rep/web/src/main/webapp/web/jsp/homepage.jsp@267 > web/src/main/webapp/web/jsp/homepage.jsp 以上方法有点糙,有心人可以去搜些更自动化的办法

m2eclipse误报”Missing artifact”

m2eclipse报告"Missing artifact XXX:XXX",但实际上maven repository里却有这个artifact,这是为什么? 先说下后果:误报也可能意味着maven解析dependency失败,导致eclipse project的build path里丢失很多库,最终结果就是是在eclipse里无法运行main程序或jetty/tomcat. 而如果在eclipse外面通过maven命令来编译打包程序,却不会有问题,这是为什么? 以下两个因素结合起来可能导致这样的问题出现:    1. maven repository中某些artifact没有pom文件    2. 你的外部maven程序是maven2 maven2对"某些artifact没有pom文件"这种事比较能忍,所以打包仍能成功;但m2eclipse总是使用maven3来做依赖管理(即使你让它指向了外部的maven2),而maven3不能忍受“没有pom文件”. 当m2eclipse发现有东西让它不能忍时,就会乱报这个丢失那个没有之类的。 一个常见的“没有pom文件”的artifact是opensymphony-quartz, 官方maven repository中就没有这个pom. 临时的解决办法是搞一个pom文件丢到maven repository中,如 引用 I finally found a workaround. It is surely a bug in m2eclipse, however the problem disappeared when I added quartz-1.6.0.pom next to quartz-1.6.0.jar in .m2\repository\opensymphony\quartz\1.6.0\ The pom is not present at […]