RoR第18周周记

Published on:

1. 本周学到的最好的工具

本周学到最好的工具是 TED

TED早就听说过也零零散散的看过一些,但像现在这样每天看一个甚至多个,这样的密集程度还是第一次,不说收获巨大,至少每天都有 hit me 的感觉。

这周看到的最好的 TED 是:
A delightful way to teach kids about computers.

小孩子拥有丰富的想象力,同时拥有快速的学习能力,如果小孩子可以学会使用编程开发,将拥有巨大的可能。
BTW,演讲者的笑容,甜的都快把我的心💗融化了。

2. 本周学到的最好的概念

最好的概念是刻意练习教程的方法。

最近,仍然保持着每天敲代码的节奏,每天写 ORID 日记的旋律,这一周在练习购物网站。

突然有一天,我发现完整的练完一个购物网站,需要大量的时间,很多时候,被零散的时间切的七零八落,学习的效率也很差。

怎样才能在有限的学习时间内保证最大的收获呢?

不如重复做一个功能吧,利用 git stash 或者切换分支。

如果不熟练的功能,第一遍跟着教材敲代码。
第二遍,提取练习。
第三遍,根据第二遍的反馈,再做一遍提取练习。

每做完一遍,执行 git addgit stash

3. 本周遇到最大的坑

最大的坑是TM 的,说好的跑步还是轻易的被我的懒惰打败了。

How to quit git log with the end ?

Published on:

like this, I know press q to quit ,but is there a better way to see the result without press q every time I do this

YES, there is a way

How to exit git log? - Stack Overflow

You’re in the less program, which makes the output of git log scrollable.

Type q to exit this screen. Type h to get help.

If you don't want to read the output in a pager and want it to be just printed to the terminal define the environment variable GIT_PAGER to cat or set core.pager to cat (execute git config --global core.pager cat).

several gems' errors when using rails 5.1

Published on:

最近 rails 5.1.0 出来了,目前发现有两个常用的gem 在安装的时候,会出现错误,分别是 devise 和 simple_form,这些都可以在gem 的 github 的 issues 版块看到,其他欢迎留言补充。

1. Devise

devise 是我们最常用gem之一, 用来打造会员系统。

在 rails 5.1版本下,安装会出现类似这样的错误:

目前可行的解决方法是使用master 分支。

即在 Gemfile 中加入:

Gemfile
gem 'devise', github: 'plataformatec/devise'

2. Simple_form

simple_form 也是相当常用的 gem,原生的 form_for 写起表单来太麻烦, simple_form 写起来简单清晰。

在 rails 5.1版本下,安装时如果需要套用 bootstrap 会无法成功:

目前可行的解决方法是使用其他人做好的分支。

即在 Gemfile 中加入:

Gemfile
gem 'simple_form', github: 'elsurudo/simple_form', branch: 'rails-5.1.0'

3. dropdown

bootstrap dropdown功能的实现需要 jQuery 的支持,但5.1 不再预安装 Jquery,所以需要自己手动安装。

首先加入jquery-rails这个 gem:

Gemfile
gem 'jquery-rails'

然后再 js 文件中引用:

application.js
//= require jquery

//= require jquery_ujs

其他运行在5.1版本的安装错误,欢迎留言补充。

For more information, please click the links below:

Devise 4.0 does not work install on Rails 5.1.0 · Issue #4518 · plataformatec/devise · GitHub

Rails 5.1: Relax version spec in gemspec · Issue #1485 · plataformatec/simple_form · GitHub

Are they awake in somewhere?

Published on:

平时我们想知道另外一个时区的人那里是几点,睡了没有? 一般人会根据本地时区的时间去推导,聪明一点的会直接打开 google,搜索:what’s the time in New York

但我最近看到一个很好玩的网站: Are they awake?

首页是酱紫:

选择一个国家或地区之后是酱紫:

嗯,你说了这么多,这到底有什么卵用?

呵呵,好玩呗。

RoR第17周周记

Published on:

1. 本周学到的最好的工具

本周学到最好的工具是 voicetube


最近在新大上上王秒老师的21天 TED 精炼团的课程,也是在这个课程上知道了voicetube 这个网站,这是一个很好地学英语的网站。
支持跟读,部分视频支持quiz,还支持查字幕。。。
更多好玩的用法还在摸索中。。。

2. 本周学到的最好的概念

最好的概念是每天看一个 TED。
趁着 TED 课程,现在每天都能在 voicetube 上看一个 TED 视频,除了学习了英语之外,还可以跟着演讲人的节奏,感受演讲的魅力,还能收到直接的干货,真是太值得了。

3. 本周遇到最大的坑

最大的坑是看不了netflix。
好入容易在linode 上部署了一个 NJ 的 vpn, 没想到打开视频,却提示错误看不了,真是想打人。

RoR第16周周记

Published on:

1. 本周学到的最好的工具

最好的工具是rails 百宝箱,学到了一个重要的安全观念,网址如果允许用户输入 html,就必须要对其进行白名单性质,以免被人恶意使用 js攻击。
使用两个gem:

gem 'redcarpet'
gem 'coderay'

可以把用户输入的 markdown 转化成 html。

2. 本周学到的最好的概念

最好的概念是天气越来越暖和了,再也没有理由不运动了,开始跑步,频率两天一次,傍晚江边,和夕阳一起。

3. 本周遇到最大的坑

最大的坑是有时候会忘记很简单的道理:
不要用未知去解释已知,一个东西一小时内研究不出来,就暂时把他摆在一边。

让用户的输入内容支持 markdown

Published on:

上次,我写过一篇 文章 ,探讨如何才能让用户的输入内容支持html语法?

结论是使用sanitize 配合设置白名单使用。

最近,我又开始考虑如何才能让用户的输入内容支持 markdown,这应该对于热衷使用 Markdown来写字的用户来说,体验会比较好。

一开始,我以为这个想法操作起来会比较复杂,实际上相当简单。

因为,我们有现成的包好的 gem,啊,真是好幸福。

以下是具体步骤:


  1. install gem

    Gemfile
    gem 'redcarpet'
    gem 'coderay'
    
  2. define markdown

    app/helpers/application_helper.rb
    module ApplicationHelper
    class CodeRayify < Redcarpet::Render::HTML
    def block_code(code, language)
    language ||= :plaintext
    CodeRay.scan(code, language).div
    end
    end

    def markdown(text)
    coderayified = CodeRayify.new(:filter_html => true, :hard_wrap => true)
    options = {
    :fenced_code_blocks => true,
    :no_intra_emphasis => true,
    :autolink => true,
    :strikethrough => true,
    :lax_html_blocks => true,
    :superscript => true
    }
    markdown_to_html = Redcarpet::Markdown.new(coderayified, options)
    markdown_to_html.render(text).html_safe
    end
    end


    3.convert md to html

    For example, there is a post table which has comment column in it, and you wanna convert the comment which is written by user to html, you can do this like it below:

    <%= markdown(@post.comment) %>
    

    好了,到此为止,已经完成了。

    事实上,还有很多的用法,就看你的想象力了。

    哦对了,欢迎扫码订阅我的微信公众号,每周更新4-5篇我的学习日志。

    For more information, please refer to these links below:
    GitHub - vmg/redcarpet: The safe Markdown parser, reloaded.
    GitHub - rubychan/coderay: Fast and easy syntax highlighting for selected languages, written in Ruby.
    Code Fellows | How to create a Markdown-friendly blog in a Rails app

把你的微信好友头像拼接起来,称霸朋友圈

Published on:

今天不小心在简书上看到两篇文章(见文后),大意是使用 python 程序把微信好友的头像串在一起,想想就觉得很有意思啊。

这两篇文章的代码使用的是python3,和两个库 itchat 和 pillow。

说道 python,我想起来,在学 rails 和 ruby 之前,我曾经有过短时间学习 python 的经历,当然只是学了一点简单的python 语法,不过说起来,ruby 和 python 一样都是强类型和动态类型的语言,因此语法有可多相通的地方。

好,废话不多说,以下是一个简单的教程:

1.安装 python3

mac 自带 Python2,python3需要自己安装。
我们在这里使用Homebrew安装,如果没有Homebrew就先去安装一个,这一步省略。

$ brew install python3

执行$ python3 -V,查看版本,如果显示如下,就说明安装成功了。

$ python3 -V
Python 3.5.2

2.安装 itchat 和 pillow

安装这两个必须的库之前,需要安装 pip3,方便的是,如果你已经安装了Homebrew套件,那么 pip3 已经在你安装Homebrew的时候自动帮你安装好了。
接下来我们使用 pip3安装 itchat 和 pillow。

  • install itchat
    $ pip3 install itchat
    最后如果出现这样的字样,就表示安装成功了。

    Successfully installed itchat-1.3.5 pypng-0.0.18 pyqrcode-1.2.1 requests-2.13.0
    
  • install pillow
    $ pip3 install pillow
    最后如果出现这样的字样,就表示安装成功了。

    Successfully installed olefile-0.44 pillow-4.1.0
    

3.编辑python 代码

wechat-avatar.py
 import itchat
  2 import math
  3 import PIL.Image as Image
  4 import os
  5
  6 itchat.auto_login()
  7 friends = itchat.get_friends(update=True)[0:]
  8 user = friends[0]["UserName"]
  9
 10 num = 0
 11 for i in friends:
 12     img = itchat.get_head_img(userName=i["UserName"])
 13     fileImage = open('/Users/your_name/your_filename' + "/" + str(num) + ".jpg",'wb    ')
 14     fileImage.write(img)
 15     fileImage.close()
 16     num += 1
 17
 18 ls = os.listdir('/Users/your_name/your_filename')
 19 each_size = int(math.sqrt(float(640*640)/len(ls)))
 20 lines = int(640/each_size)
 21 image = Image.new('RGBA', (640, 640))
 22 x = 0
 23 y = 0
 24 for i in range(0,len(ls)+1):
 25     try:
 26         img = Image.open('//Users/your_name/your_filename' + "/" + str(i) + ".jpg")
 27     except IOError:
 28         print("Error")
 29     else:
 30         img = img.resize((each_size, each_size), Image.ANTIALIAS)
 31         image.paste(img, (x * each_size, y * each_size))
 32         x += 1
 33         if x == lines:
 34             x = 0
 35             y += 1
 36 image.save('/Users/your_name/your_filename' + "/" + "all.jpg")
 37 itchat.send_image('//Users/your_name/your_filename' + "/" + "all.jpg", 'filehelper')

代码中的5个下面这个文件路径换成自己的:
/Users/your_name/your_filename

至于新建文件和编辑文件,使用你自己喜欢的编辑器就好。

4.运行代码

比如我的 python 文件叫 wechat-avatar.py,那么就执行:

$ python3 wechat-avatar.py

运行的情况会像这样:

当出现 Please scan the QR code to log in.
这个提示的时候,会跳出一个二维码,微信扫一下,就会登录你的微信,接着下载你的所有好友的头像,最后使用 pillow 把所有头像拼接成一张图:all.jpg

终端执行 open .,打开文件夹,就能看到所有的好友头像和拼接图 all.jpg。

5.可能出现的错误

程序运行到最后有可能出现下面这样的错误:

没关系,再重新执行一下 py 程序就好。

我的作品,开玩笑啦😄 :

为了朋友们的头像隐私我就不公布我的啦。

最后,感谢简书上@向右奔跑 的这篇文章,也祝愿看到这篇文章的你借此称霸朋友圈。


For more information,please refer to the link below:

004 - Python微信好友头像拼接图 - 简书
微信好友全头像 - 简书

RoR第15周周记

Published on:

1. 本周学到的最好的工具

最好的工具是图片压缩工具 imageoptim,写公众号的题图不能超过2M,否则传不上去,mac 貌似并不自带压缩图片工具,而imageoptim这个工具可以快速的帮我压缩得到2m 以内的图片,支持无损压缩。

2. 本周学到的最好的概念

最好的概念是每天写一篇小短文。
每天敲代码,也会觉得累,这时候需要干点其他的事情换换脑,写写随笔对我来说是一个不错的选择。

具体做法是:
每天临睡前听半小时至一小时得到专栏,以1.5-2倍的速度的速度播放,听得过程中会有一些自己的思考和想法。
第二天起床后稍作调整,就开始写随机,主要根据从专栏中得到的启发,结合自己的思考,写下一篇小短文。
目前已更新公众号一周,欢迎扫码订阅。

3. 本周遇到最大的坑

最大的坑是本周有点焦虑,看到二期的魔改作品都很棒,比我当初的作品真真是好多了,真是羡慕。

Awesome drawing to play

Published on:

事实上,绘画这件事还真的是挺难的,特别是像我这样的手残党,几乎是画什么不像什么,我是酱紫,估计全世界跟我一样的人应该也很多,那我们还有救吗?

有,必须有。

今天偶然间,看到Google+推荐的一个小游戏,试玩了一下,一上午就过去了,真的十分有趣,特地拿来推荐给大家。

这个游戏叫——Autodraw

这是Google最近推出的一个新实验,原理是使用机器学习的算法将信手涂鸦与专业的绘画匹配起来,一切都感觉是用户自己完成的一样。

使用上也相当简单,你可以在任何终端上使用AutoDraw,你只需要按你自己的想法随便涂鸦,完成一个大概的轮廓,google的算法就会尝试找出你要绘制的是什么,原理是将你的涂鸦与数据库中的绘画相匹配,如果找到任何可能的匹配项,它将会提示你并显示出可能的匹配项,如果你发现其中的一个选项是你想要的结果,你只需要点击它,AutoDraw就会使用专业的绘画取代你的涂鸦,点击几下还可以为你的绘画配上你喜欢的颜色,只需要一会儿的功夫,你就可以完成一个满意的作品。

官网是AutoDraw.com,快来尝试一下吧,点击阅读原文还可以看youtube的介绍。

最后,附上我的一个作品的制作过程。

欢迎扫描下方二维码关注我的公众号 XD