20170225学习纪录

##Objective ###关于今天的课程,你记得什么? ####新旧知识 1、在application.yml这个文件有时可能会隐藏,可通过atom自带packge的tree view来把它显示出来; 2、打开tree views的方法是,在Preferences中打开packge搜索后,点选Hide VCS Ignored Files框选即可; 3、VCS指的是文件管理系统,GIT就是一种VCS,git里就是.gitignore就是设定不追踪那些文件的; 4、application文件里的access_key,secret_key,buckt,buckt_domain,这些的写法一定要按照要求的格式一模一样,而不能乱改; 5、七年云的上传服务器对于不同的时区有不同的要求; 6、使用错误的时候,报错信息里会提示你相应的时区应该使用那个服务处的地址; 7、七牛云的store是qiniu,本地的是file,azws的是fog; 8、store自动匹配环境的方法: if Rails.env.development? store :file elsif Rails.env.production? store :qiniu end 9、gem figaro是把私密信息传送到heroku的gem,因为git不追踪它,所以需要通过这个方法来部署; 10、通过compare commit可以了解别人程序升级的步骤; 11、解决了为什么修改sqlite3代码位置和加入pg后,不影响locoalhost:3000的运行这个遗留问题; 12、Random rambling,随机漫步理论的英语原词; 13、heroku重命名有两种方法:一种是通过setting改,然后在iterm中重置远方地址;第二种是在iterm中通过代码重置; ####遗留问题 1、figaro的具体传送原理及实现方法; ####涉及资源 1、w3cshcool,学习前端的好工具; 2、七牛云,国内上传图片的服务工具; 3、GEM carrierwave-qiniu; 4、GEM qiniu; 5、GEM figaro; ###完成了什么? 1、购物网站的七牛云的图片上传设置; 2、七牛云的注册和设置; ##Reflective ###你要如何形容今天的情绪? 由于是周末,补了下睡眠,布置七牛云的过程很顺利,也感慨没有想象中的那么难,还是要实际操作了才能知道对于自己真实的难度,但是在部署上heroku上以后还是出现了问题,感觉好像是有预感会出问题一样,没有任何负面程序就开始了处理工作,显示看到网页显示要去查heroku报错,然后发现什么也没有,之后就想到local也可以部署云图片,就去本地设置了,在之后在本地的log发现了问题,并解决了问题,相当开心,debug真是件愉快的事情😁。 ###今天的高峰是什么? 在heroku的log查不到问题的时候想到在本地部署云图片来debug~ ###今天的低点是什么? 早上赖床,本来可以多编程一小时的。 ##Interpretive ###我们今天学到了什么? 1、图片部署的本地或者云是可选的,根据需要和实际情况选择; 2、rails的env代码为环境自适配提供了可能; 3、运行日记是debug非常重要的一个东西! 4、理论上来说,只要一个项目开源了,别人就能理解它,根据commit步骤; 5、要会看官方的说明,理论上来说,这时使用的最少必要学习途径; ###今天一个重要的领悟是什么? ####学习方法 好懂得去看官方说明,很多时候官方其实已经提供了,比如heroku的rename操作; ####编程知识 环境自适配,gem的以及uploader_image的; ##Decisional ###我们会如何用一句话形容今天的工作? 进账不如预期,但是意外的发现了debug的一个方法; ###有哪些工作需要明天继续努力? 1、参加meetup; 2、争取完template的所有功能代码; ...

February 27, 2017 · 1 min

20170226广州线下meetup纪录

##千呼万唤终于第一次参加了线下meetup活动,遇见了不少棒棒的小伙伴,随身携带用来记录的小本也满载而归,废话不多说,直接上干货。 ###技术及工具 ####gem pry 通过binding pry的设置,可以为controller运行设置断点,便于debug和厘清参数关系; ####colorpeek google扩张程序,用来获取当前网页的所有色彩的RGB值; ####mini-map atom的packge,类似游戏的小地图,用来在代码窗口跳跃显示部位; ####github commit github repo中的一个页面,本是用来显示自己程序的commit过程,也可用来理解他人代码及用来学习; ####feedly RSS工具网站,简而言之就是用来关注指定页面更新信息,包含但不限于blog; ####笑来搜 网友设计的用来搜索笑来老师文章内容的网页工具,相当强大,从此不用翻遍学习学习再学习公众号去找某篇文章,省下了不少的注意力和时间; ####《深入浅出rails》 作者:DavidGriffithi,讲rails基础知识的书,能补充大量教材上面没有的基础知识; ####https://text-compare.com/ 文本比对工具,可以用来对比错误代码同教材或者其他参考代码的不同; ####duet 把ipad作为扩张分屏的app,mac os及windows均可配合使用,appstore收费软件,一次性收费100左右; ####spectacle mac屏幕程序便捷分屏软件; ####GEM cancancan 用来配合devise进行用户权限管理的GEM; ####存代码的网站 有个存代码的网站,便于别人帮你解bug,忘记地址了,回头补上; ###跳坑大法 ####在学习过程中如果遇到过不去的地方,处理了半天还没有处理产生负面情绪后,就先暂停。可考虑20分钟为限; ####学习过程中一定要主动思考,不能理解的地方不用纠结,不能不过脑子就往下走; ####设置application.yml中的key和buckt时一定要按照要求的格式一个空格都不差的填写,不然会报错; ###其他分享 ####把晚睡的时间调到早起可能会收获不一样的效果,在有家人的情况下,家人还没起来也比较安静容易进入心流; ####程序员的生活虽然充满热情,但可能不够多彩,可以的话多培养爱好和四处旅游; ####暗时间这个指我们可以调用但是实际上忽略的时间的概念; ####坐享的时间因人而已,可以早上、中午、晚上;

February 26, 2017 · 1 min

2017年第08周总结

1.“本周学到的最棒概念/工具” 本周学到的最棒的工具是通过github去查看其它同学的功能实现过程,之前只知道去上面查看同学的代码,但这周通过做merge的主程后发现可以通过compare去比对代码的过程,进而发现了可以通过clone同学的代码到本地再推送想要了解功能的分支到git上compare比对代码,最后在meetup交流过程中同学们指出直接就可以在commit里面查看更新代码,而不需要clone下来。 2.“本周遇到最大的坑” 本周遇到的最大的坑是在加入新的gem后bundle install,没有重启rails s,以前根据教材进行都会进行这一步,但这次创意大赛进行的功能编写就忽略了这一点,花了一个多快两个小时才在stack flow上找到了答案。

February 26, 2017 · 1 min

20170224学习纪录

##Objective ###关于今天的课程,你记得什么? ####新旧知识 1、通过_id关联起来的两个量,当通过主键量对关联对象进行赋值时,和主键量对自己的单一量赋值不同,可以进行数组赋值,通过使用【】符号来实现,例如 <%= f.file_field :image, :multiple => true, name: "templatephotos[image][]" %>("请上传5张图片")<br> 2、可以在主键量中通过 accepts_nested_attributes_for :templatephotos private def template_params params.require(:template).permit(:title, :description, :price, :version, :proportion, templatephoto_attributes: [:image, :id]) end 一对语句进行赋值确认,即对templatephotos赋值前必须先对template的指进行确认; 3、bundle install后一定要重启rails s; 4、imagemagick是mac的环境工具,而不是rails的套件工具; 5、mini_magick是用来进行图片大小调整的carrierwave的相关套件; 6、在uploader里面设置的 process resize_to_fit: [800, 800] version :thumb do process resize_to_fill: [200, 200] end version :medium do process resize_to_fill: [400, 400] end 相当于上传时就对图片进行了切割,生成了相应的三个文件,而不是调用的时候进行相应的调整; 7、gem有直接作用的,也有作为其他gem的套件工作的; ####遗留问题 1、多图上传究竟是paperclip起了作用,还是carrierwave起了作用,还是共同起了作用? 2、对变量进行数组赋值时的相关知识; ####涉及资源 1、GEM paperclip; ###完成了什么? 1、研究出了多图上传功能; ##Reflective ###你要如何形容今天的情绪? 今天有着明确的目标要完成两个功能,摸索过程相当的烧脑,伴随着强烈的酥麻感,通过不断调整呼吸一步步琢磨,最后功夫不负有心人,结果出来的时候相当愉悦。 ###今天的高峰是什么? 通过同学的github和网上零散的资料拼凑出了想要的功能; ###今天的低点是什么? 学习过程中有几次因为学习过程的酥麻感过于强烈开了小差。 ##Interpretive ###我们今天学到了什么? 1、通过同学的github代码和对应的commit可以理清他完成这个功能的步骤,及进行模仿; 2、学习过程中大脑的酥麻感越强烈,学习效果越好,这与心理学上的痛苦遗忘定律不冲突,心理学上的痛苦本质上是指情绪痛苦,而非进步痛苦,相反进步痛苦会记忆的更长远; 3、gem可以自己去找,不一定要模仿别人的来使用,不过时间有限的情况下,还是模仿来的最快; 4、学习的过程最好边学边动手,这样能大大加深理解,对应编程就可以新建一个git分支来实操; 5、gem本质上也是一组封装的代码,可以自己写,也可以打开它来自己定制调配; ###今天一个重要的领悟是什么? ####学习方法 学习摸索的过程尽量调用多的感官,这样有利于理解。 ####编程知识 多图上传的方法; ##Decisional ###我们会如何用一句话形容今天的工作? 初步取得上传多图研究成果; ###有哪些工作需要明天继续努力? 部署七牛云的网络图片功能; ...

February 25, 2017 · 1 min

编程套路:ROR实现product上传多图的步骤

##以商店product添加多图为例 ###paperclip Step 1 gem 'paperclip' bundle install 重开rails s Step 2 修改app/models/product.rb,加入 has_attached_file :image, styles: { medium: "300x300>", thumb: "100x100>" }, default_url: "/images/:style/missing.png" #这一行可不要# validates_attachment_content_type :image, content_type: /\Aimage\/.*\Z/ Step 3 rails generate paperclip product image 确认生成的XXXXXXX_add_attachment_image_to_products.rb如下 class AddAttachmentImageToProducts < ActiveRecord::Migration def self.up change_table :products do |t| t.attachment :image end end def self.down remove_attachment :products, :image end end rake db:migrate Step 4 在app/views/admin/product相关页面加入如下 +<div> +<%= f.input :image, as: :file %> +</div> Step 5 修改app/controllers/admin/products_controller如下 private def product_params params.require(:product).permit(:title, :description, :quantity, :price, :image) #:image加入參數 end Step 6 图片调用方法 <%= image_tag @user.avatar.url %> <%= image_tag @user.avatar.url(:medium) %> <%= image_tag @user.avatar.url(:thumb) %> carrierwave(我第一次实操的时候上面的paperclip和这个都进行了操作,所以不知道最后是那个起了作用,因而可以分开实验下) Step 1 +gem 'carrierwave' +gem 'mini_magick' bundle install Step 2 $ convert -version $ brew install imagemagick Step 3 $ rails g uploader image $ rails g model photo product_id:integer image:string $ rake db:migrate Step 4 接著Photo中加入關係與mount_uploader ...

February 25, 2017 · 3 min

错误纪录:bundle install后没有重开rails s

错误日期:2017年2月24日 具体情况: 在进行购物网站创意大赛过程中,在安装完paperclip且bundle install后没有重开rails s,造成显示no method报错。

February 25, 2017 · 1 min

20170223学习纪录

##Objective ###关于今天的课程,你记得什么? 1、程序环境有两种,一种是develop环境,指我们本地开发,另一种是product环境,指上传到服务器上,比如heroku; 2、在uploader中,本地调试显示图片用,file,云图片用fog; 3、七牛云和阿里云都是国内的云; 4、template是计算机领域的模板的意思; 5、gitmerge的原理可能是,把相应时间纪录的变动信息合并到程序里面; 6、在cart_item里面设置,product_id和user_id而不在product设置的意义在于一个product可以放在多个item里,而不是一个product对应多个item; 7、sqtile3和pg分别是developer和production用的数据库gem; 8、后面的学习进度会开始放缓; 9、编程使用的英语就两百个单词而已; 10、gem是套件管理系统; 11、助教的工作有时间可以试着申请下; 12、学习不用急; 13、recaptcha验证功能; 14、linodo可以通过阿里云买; 15、rails cust这个网站gem网站; 16、RubyFlow:Rails的社群; 17、Go Rails这个网站; ###完成了什么? 1、看了YY老师的直播; 2、完成了template的讨论和基本的view、model及controller; ##Reflective ###你要如何形容今天的情绪? 今晚进入了长时间的心流,不知不觉一晚上就没了。 ###今天的高峰是什么? 参照教材迅速完成了template的编写; ###今天的低点是什么? 学习到太晚了,没有时间继续完成五张图片的上传这个设置; ##Interpretive ###我们今天学到了什么? 1、要多到国外的rails社群去学习; 2、要注意不同环境的配置问题; 3、后面的学习速度会放缓,当时自己要加紧安排; 4、在注意力充分使用后,根本不会出现想学这个想学那个都没时间的情况,因为你连思考这个问题的时间都没有; 5、项目合作的时候一定要考虑项目进度分配问题,这样能提高总体的时间利用率,而不至于一个人等另一个人; ###今天一个重要的领悟是什么? ####学习方法 要多泡在相关社群里面学习; ####编程知识 根据环境使用不同的gem; ##Decisional ###我们会如何用一句话形容今天的工作? 还有一周一点的时间,开始真正的攻坚了。 ###有哪些工作需要明天继续努力? 完成上传五张图片的功能及七牛云的设置;

February 24, 2017 · 1 min

2017年第07周总结

1.“本周学到的最棒概念/工具” 本周学到的最棒的工具是model/controller/views的三维空间模型,这是我在学习过程中尝试去理解关系想象出来的模型,通过使用它感觉一下子明白了,出发,显示,调用这些东西,有时间我还会尝试用它去理解restful。 2.“本周遇到最大的坑” 本周遇到的最大的坑是每给自己创造良好的学习环境,放假在家,受到各种干扰,现在后面才意识到自己应该主动点去咖啡厅之类的地方的,而不是被动的在家里忍受注意力的缺失。

February 23, 2017 · 1 min

20170222学习纪录

##Objective ###关于今天的课程,你记得什么? 1、安全是编程过程中涉及到敏感信息是第一个要考虑的因素; 2、本地的图片无法大量上传到heroku,也就是heroku只提供了程序架构和代码上传服务,没有提供图片上传及邮件发送等服务; 3、不同的服务有不同的提供商,编程界天生就是一个相互协作的业界,你用别人的服务就需要付钱,你为别人提供服务就能收钱; 4、database.yml这个文件是不上传的,在gitignore里面需要设置不追踪它,我们平时的私密信息就放在这里面; 5、教材提供的database.yml.example其实一个可以上传的事例,我们下载以后cp出对应的文件就可以继续使用数据库,通过这样的方式及保护了隐秘信息又保证了程序可以继续运行; 6、电脑版微信可以语音; 7、azs 3很容易丢失自己的私密信息,一定要谨慎! 8、不要将自己的私密信息方法carrierwavr.rb里; 9、Figaro这个工具,密码用它管理 10、ENV环境变数; 10、Github提供了非常便捷和合作可能,具体合作的步骤如下: - step 0 :找到队友、确定谁做主程,主程复制merge pull request; - step 1 :添加队友,主程在项目的repo里的setting>collaborators>根据队友的githubid查找队友,并按add collaborators发出邀请; - step 2 :队友会在自己注册的github邮箱里收到邀请消息,点解view invitation后,可通过Accept invitation接受邀请成为队友,之后就可以在自己的github页面看到以主程名开头的repo; - step 3 :主程先git checkout master切换到master分支,后把最新的分支merge到master上,例如:git merge story5,之后git push origin master,到服务器; - step 4 :队友第一次下载项目是由git clone repo地址,之后bundle install,以及rake db:migrate,以后有新的分支都事先切换到master分支,然后git pull origin master,之后生成新的分支进行修改功能。如果列表的栏位发生了变化,则需要调用rake db三兄弟类; - step 5 :新建分支进行新的功能编写,使用命令 git checkout -b name-function(姓名-功能); - step 6 :完成功能并确认无误后,将最新的分支推上repo,git add . git commit -m “功能描述” git push origin name-function; - step 7 :打开项目repo,选中自己刚刚上传的分支,通过compare & pull request,确认base:master,compare:name-function后,添加描述(可不添加),点击create pull request(副程千万不能点击merge pull request); - step 8 :若无冲突提示,则主程可在repo点击 Pull merge页标,点击merge pull request,之后Confirm merge就可以了,若有提示则可在本地修改无误后重新上传分支,也可通过Resolve conflict修复; - step 9 :修复时会有««« »»»>master ========三行代码,处理完所有分之后可点击make as resolved。所有完成后会显示Resolved all conflict并点击commit changes,这时和step 8 一样; ...

February 23, 2017 · 1 min

20170220学习纪录

##Objective ###关于今天的课程,你记得什么? 1、case with语句用于多分支比较理想; 2、admin里面的controller对应于具备valited的对象才能用,因而避免了其它非admin用户执行操作; 3、组队学习非常重要,能锻炼人的写作能力; 4、一定要去参加商店大赛,这个将来讲作为求职经历来讲; 5、ruby中国是中国ruby届的平台,上面有对应的ruby求职信息; 6、后期课程讲会分化出两个大方向,一个是面向准备创业的同学,一个是提供给准备进阶更高级的程序员; 7、后期会提供简历编写指南; 8、在北京的meetup上xdite老师回答了一些就业的问题,费贲将相关三篇的meetup总结发到了共享群上; 9、Mailer其实和controller有些类似,可以理解是变异了的controller; 10、mailer的启动方式是通过controller,而后再调用相应的页面,使用的语句是OrderMailer.xxxxx()·deliver!; 11、OrderMailer是生成时的命名,不一定要是order也可以是其它的对象; 12、ruyb china是一个交流和求职的好网站; 13、Orid一定要按时写,一定要按时交; ###完成了什么? 1、按照老师的教程,重做了一边第三周作业; 2、挺了Xdite老师的第一次复盘直播; ##Reflective ###你要如何形容今天的情绪? 看了老师的直播,感触自己在组队这件事情上有思想落后了,羞愧之下和感到了广州的Meetup群里面看看还有没有落单的队友,然后进行了组队,要提高干劲才行! ###今天的高峰是什么? 找到了队友!!! ###今天的低点是什么? 没有按计划完成作业任务; ##Interpretive ###我们今天学到了什么? 1、组队是一种非常有效的学习方式,这是以前的我所不能理解的,一定要积极组队; 2、有时间的话要多去ruby各大门户网站逛逛; 3、基础知识、项目、合作经验、技术博客这是招聘的硬基础; 4、具体组队的时候发现了很多没想过的问题,这正是需要组队的意义; ###今天一个重要的领悟是什么? ####学习方法 组队不单是学习到好方式,也是现代协作社会要求的硬技能; ####编程知识 case with这个分支功能; ##Decisional ###我们会如何用一句话形容今天的工作? 学习进度有点慢,但是终于完成了组队工作; ###有哪些工作需要明天继续努力? 学会如何通过GitHub合作;

February 23, 2017 · 1 min