Category: Dev Notes

  • 用homebrew来设置Python开发环境

    Homebrew已经是macOS里非常好的包管理工具了,目前在macOS上设置Python开发环境主要解决几个问题 Python的多个版本,python2和python3共存,毕竟还有一些老的项目在用Python2 virturalenv,没有这个不同项目怎么活 pip安装一些扩展的问题 $ brew install python2 python3 $ pip install virtualenv virtualenvwrapper 在安装mysql-python的时候可能会遇到openssl头文件无法找到的问题 $ env LDFLAGS=”-I/usr/local/opt/openssl/include -L/usr/local/opt/openssl/lib” pip install mysql

  • Nginx 的流量镜像模块

    Nginx 的流量镜像模块 Nginx 发布了1.13.4版本,并且包含了一个流量镜像的模块 ngx_http_mirror_module。 这对于线上系统就很好了,比如可以镜像部分流量来做测试、debug之类的 例子也很简单: location / {     mirror /mirror;     proxy_pass http://backend; } location /mirror {     internal;     proxy_pass http://test_backend$request_uri; }

  • 升级Homebrew中的PostgreSQL

    最后还是入手了新版的MBP,开发环境都是重新设置的,用PostgreSQL的时候,启动提醒版本不兼容 FATAL: database files are incompatible with server DETAIL: The data directory was initialized by PostgreSQL version 9.5, which is not compatible with this version 9.6.2. 所以要升级一下原来的库,作弊条开始 brew services stop postgresql brew install postgresql@9.5 initdb /usr/local/var/postgres9.6 -E utf8 开始升级数据库 pg_upgrade \ -d /usr/local/var/postgres \ -D /usr/local/var/postgres9.6 \ -b /usr/local/Cellar/postgresql@9.5/9.5.6/bin \ -B /usr/local/Cellar/postgresql/9.6.2/bin/ \ -v mv […]

  • 在阿里云ubuntu 16.04 LTS版本上安装gitlab-ce

    需要安装一个gitlab-ce给大家用,最近把操作系统都换到ubuntu来了,这个ubuntu是阿里云定制过的。 清华大学又一个gitlab的镜像,但是阿里云无法连通,超时,但是单独curl又是好的,结果呢是阿里定制了/etc/apt/apt.conf文件,修改如下即可 Acquire::http::Proxy "http://mirrors.aliyun.com/"; 内部用一个proxy连接的trick,添加一行即可使用清华的镜像了 Acquire::http::Proxy::mirrors.tuna.tsinghua.edu.cn "DIRECT";

  • selenium wait 和 iframe

    还是从朋友那个小事儿做的时候弄出来的问题 selenium 如何切换driver到一个ID设置为中文iframe? 遇到alert了怎么处理? 检查某个元素是不是出现了? 不要问我为啥id会用中文,说多了都是泪,总之这是一个一言难尽的问题,一句话,国有企业你懂的。 切换到特定的iframe/frame driver.switch_to_frame(driver.find_element_by_id('some_id')) 这样就可以在这个frame/iframe里做相应的find element操作了,但是要记住操作完了要切换回来 driver.switch_to_default_content() 多层嵌套的iframe也没有问题,只要一步一步的切换进去就好了 接受alert 一个简单的方法就是预计有alert的地方,写上接受就好了 driver.switch_to.alert.accept() 这样很粗暴,但是也很有效,精细一些的做法看文档,比如: 确认或者取消 from selenium.webdriver.common.alert import Alert Alert(driver).accept() Alert(driver).dismiss() 读取alert的文字内容 Alert(driver).text 认证的用户名和密码 driver.switch_to.alert.authenticate(username,password) 输入内容 name_prompt = Alert(driver) name_prompt.send_keys(“Willian Shakesphere”) name_prompt.accept() 检查某个元素是否出现 以前的一个很粗暴的做法是time.sleep(N),但是这种情况下非常粗旷,selenium 提供了更精细的一些控制方法 等待某个元素出现以后获取这个元素 from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC wait = WebDriverWait(driver, […]

  • Selenium 连接一个已有的连接

    帮朋友弄个东西,需要先登录,有一个不复杂的验证码,但是上OCR也太重,所以就先起一个driver,然后手工登录之后再连过来进行操作. 先启动一个Driver和Session,并且打印出连接的URL和Session url = driver.command_executor._url #"http://127.0.0.1:60622/hub" session_id = driver.session_id #'4e167f26-dc1d-4f51-a207-f761eaf73c31' 然后再连接过去 driver = webdriver.Remote(command_executor=url,desired_capabilities={}) driver.session_id = session_id REF: Stackoverflow: Connect to an already running instance of chrome using selenium in python

  • 还是不要全局 .gitignore 了

    昨天踩了一个小坑,使用bower安装了一堆的组件进来,我这里是好的,但是同事去构建的时候就不对了。 发现我git commit的时候,jQuery包里的dist目录没有添加进去,进而发现实际是我在很久以前在~/.gitignore里添加了一个dist导致彻底忽略了。 索性就把这个家目录下的.gitignore给删除了,反正都是跟着项目走的,新建git repo的之后添加一个.gitignore就好了。

  • 解决git submodule 无映射路径的问题

    我们在使用Git submodule 的过程中我遇到的一个问题是执行git submodule update之后会出一个错误 fatal: no submodule mapping found in .gitmodules for path 'vendor/predis/predis' 这个问题就是你发现有一个不在.gitmodule文件中的submodule在更新,解决办法就是 git ls-files –stage | grep 160000 这可以看到你所有的Submodule文件,然后 git rm –cached PATH Problem solved. REF: No submodule mapping found in .gitmodule for a path that's not a submodule

  • Django中使用多数据库和裸SQL

    有时候一个项目可能会使用多个数据库,而且数据来源可能不同,在Django中支持多数据库,同时不用ORM的情况下直接执行SQL的方法如下,做个笔记 from django.db import connections, connection cursor = connection.cursor() # 这是settings.py中定义的default数据库 cursor2 = connections[‘mysql’].cursor() # 这是settings.py中定义的mysql数据库 剩下的操作主要靠 PEP 249 的规范

  • 科学使用Android

    在兲朝科学使用Android,到了Android 6.0重置之后恢复应用的功能终于可以和Apple iOS相提并论了,然而在兲朝还是不太行;步骤如下 开Debug模式,adb 安装 Shadowsock和 Barcode Scanner 我使用了12vpn的SS服务,扫描二维码添加配置 开启SS后等待自行恢复 登陆一些需要重新登录的App(大部分需要,还是不如iOS)