Browsed by
月份:2018年12月

如何访问运行在虚拟机里面的Django开发服务器

如何访问运行在虚拟机里面的Django开发服务器

现象

在虚拟机环境中用pip命令装完django的你是不是急着用python manage.py runserver来启动django
的开发服务器想看一下你写的Hello world!是否成功了,在命令运行完看到了下面的提示后:

Performing system checks...

System check identified no issues (0 silenced).

You have unapplied migrations; your app may not work properly until they are applied.
Run 'python manage.py migrate' to apply them.

December 24, 2018 - 15:50:53
Django version 2.1, using settings 'mysite.settings'
Starting development server at http://127.0.0.
阅读更多
记录scrapy的一个小坑之爬虫启动后马上就自动退出

记录scrapy的一个小坑之爬虫启动后马上就自动退出

环境

  • Mac 10.13.6
  • Python 3.6.4
  • Scrapy 1.5.0

现象

爬虫运行几秒钟就自动停止并报如下错误信息:

原因

这其中的原因是在后来再次啃官方文档到
这里时发现的。
原因其实很简单,但我印象中这个问题卡了两天左右,所以就在这里记录一下。
主要是我在执行命令scrapy genspider hnzj 时额外指定了网站域名为hnzj.com也即是scrapy genspider hnzj hnzj.com,于是生成的默认爬虫代码中多了一行
allowed_domains = ['hnzj.com']如下:

class HnzjSpider(scrapy.Spider):
    name = 'hnzj'
    news_item = HezhinewsItem()
    allowed_domains = ['hnzj.com']

但是实际上start_request()方法中定义的起始url域名却是hnzj.edu.cn,如下:

def start_re
阅读更多
关于Windows,Linux & Mac的各种碎碎念…

关于Windows,Linux & Mac的各种碎碎念…

哎,到了windows cmd下很明显没了cat,doge也是不行的[doge],(虽然以前干过alias doge=cat,但alias完了就没有用过了),

查了一下要用神马type,我的天呐,感觉好割裂,这让我以后在Linux下面type的时候会想起什么,还有以前在linux desktop Env的时候ssh的config(是指把要连接的主机ip和端口等写入配置,方便通过如ssh example来连接)也不怎么用,可前天折腾cmder和powershell的alias(是指类似alias ssh_cloud='ssh root@192.168.1.1'的方式)半天不work, 没有办法(原价200多,100多…[偷笑])现在在win下面只好这么干了.

不怎么用的ssh config文件的原因一是不想在切换环境的时候多建一个指向Gayhub公开仓库的软连接,再一个出于安全考虑不能暴露公司vps的… 阅读更多

MacBook Pro软硬件优劣势于我而言杂谈

MacBook Pro软硬件优劣势于我而言杂谈

Macbook pro

软件

优势

Unix的底层环境使得各种Linux工具链运转良好,如iPython, oh my zsh, 另外iterm2终端模拟器也是好用的没得说,也不存在之前折腾Windows下的cmder的各种烦人的问题。

劣势

很多常用的Windows桌面GUI软件对应的Mac版本功能较为简单,有些甚至不支持Mac,不过目前都有在改善,好在我会用到的IDE都是跨平台的,如IDEA, Pycharm, Android Studio,之前更新招行的那个什么key的证书跑一个win虚拟机可破之。

硬件

优势

  • Retina屏幕虽然没有4k, 5k,但也已经够用,就像手机一样即使最近发布的很多旗舰机也照样在用1080p而非2k,而且由于各种原因使得无需像Windows一样各种折腾系统显示和个别软件单独的拉伸率,不存在软件界面模糊的问题。
  • 搭载Force Touch技术的触控板使得没有鼠标也可以自如使用chrome的鼠标手势插件,淘宝京东的时
阅读更多
为什么在Namesilo注册的域名按照网上教程设置NS记录为阿里云DNS后还是无法访问呢

为什么在Namesilo注册的域名按照网上教程设置NS记录为阿里云DNS后还是无法访问呢

背景

本来是打算在Godaddy首年花几块钱想先注册个域名玩玩,即使第二年续费贵那就第二年再说,
可是在注册的某个环节不知道是我误填了个人的真实信息还是Chrome浏览器自动填充的锅,
反正等我再次编辑想修改掉真实的个人信息的时候总是失败,再加上期间网页加载各种失败,以及Godaddy隐私保护要
60多块钱后来入了无意间了解到的域名注册商Namesilo的坑。

经过

参考这篇博客把Nameserver设置为了国内免费的Dnspod后别说48小时了,
都已经72小时过去了还是始终无法在国内通过域名正常访问我的博客,只能通过ip来访问,后来v2ex的v友建议
我换个NS,我后来想到了阿里云。记得昨天在Namesilo修改的NS记录,我想着到现在虽然不到48小时但也差不多了,
但是访问还是出错,在这期间我还特意又研究了一下dig命令,结果如下:

$ dig www.sharpgan.com

; <<>&g
阅读更多
如何解决MTR工具在Mac上使用报Failure to open IPv4 sockets: Operation not permitted错误

如何解决MTR工具在Mac上使用报Failure to open IPv4 sockets: Operation not permitted错误

背景

其实伴随着Failure to open IPv4 sockets: Operation not permitted错误的同时,还出现了mtr: Failure to start mtr-packet: Invalid argument如下图,

我百度到了v2ex上一个出现类似错误的帖子,不过没去尝试里面的方法,
后来我看到permitted的时候忽然想到了permission。

解决

加了个sudomtr命令前面就解决了问题,而且万幸也没有出现上面v2ex帖子中的mtr: Failure to start mtr-packet: Invalid argument错误。… 阅读更多

写了个利用Python给图片的右下角添加文字水印的小工具

写了个利用Python给图片的右下角添加文字水印的小工具

闲言少叙

在写这个脚本的过程中花了很多时间在字体大小、颜色、水印位置的调整上,
这个小工具的托管在这个仓库里面,
如何配置,解决依赖和使用方法都在README.md里面写的很清楚了,下面我们来直接看效果图吧。

补充

最爽的使用方法是像我下面一样加个alias,为了解决在任意路径下都可以使用不报错,我是花了不少功夫的

alias watermark="python3 $WP/code/myproject/add_text_watermark/watermark.py"
阅读更多
解决部署在vps上的jekyll静态博客中的url被替换为http://localhost:4000

解决部署在vps上的jekyll静态博客中的url被替换为http://localhost:4000

背景

生成的静态博客页面源码中的url被替换为localhost是很偶然发现的,最开始是一个如下的

<link rel="canonical" href="http://localhost:4000/2018/12/09/solve-jekyll-generated-html-replaced-with-localhost-url/">

link标签中的url出现这种情况,搜了一下link canonical结果显示跟搜索引擎有点关联,因为我比较重视SEO就一直绞尽脑汁想解决这个问题,后来在用git diff命令的时候发现了更多被替换的url如下图:
git diff

原因

其实原因就在于执行过jekyll serve命令后,jekyll会先build一下,其此时build的时候会将所有的url的开头自动替换为http://localhost:4000,另外jekyll serve命令在运行的过程中Auto-rege… 阅读更多

基于adf.ly官方Python Api示例和Argparse库写了个只用来缩短url的命令行小工具

基于adf.ly官方Python Api示例和Argparse库写了个只用来缩短url的命令行小工具

背景

  • adf.ly这个网站是干嘛的就不说了,能点开看这篇文章就说明你是知道的。其实现在想想
    官方之所以提供api,我感觉主要是方便集成到cms框架里面实现自动缩短url,而不是让我改造
    成命令行小工具的,不过既然改造完了就简单介绍一下吧,下面是缩短本站url后的实际效果:

使用方法

usage: adfly_shorten.py [-h] -u URL [-t TYPE]

Randomly shorten your url via adf.ly

optional arguments:
  -h, --help            show this help message and exit
  -u URL, --url URL     the single url you wanna shorten
  -t TYPE, --type TYPE  the ads type you wanna use, and this arg is 'banner'
                        by default,and pass 'int' to get interstitial
                        a
阅读更多