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

人在选择价值体系时的自由意志

工作五年来第一次休了探亲假,加上春节还有节前休的年假,赋闲了一个月,仿佛这个假期结束自己又要去上学似的。工作后一度受困于自己的狭隘,觉得退休前不会再有这样的假期了,即便这明明是自己一直所拥有的权利。表面上可能是舍不得绩效,也可能是听不得议论,还可能是放不下工作,但细想还是因为无知,无知有时挺可悲的。 在和平年代,大部分时候无知是幸运的。不用担心人工智能发展是否会造成低价值劳动淘汰、不用担心货币放水是否会造成明年经济萧条、不用担心大陆板块运动是否会造成周边地震带活跃,更不用提大过滤器这类宇宙假说了。工作生活之余,打打机、喝喝茶、追追剧,借由已出现的没出现的各种消耗时间的利器,人生很快就过去了,即便天塌下来砸到的也都是别人,自己的世界比碳十二还稳定,和自己观念相左的全都是不正常的。信什么不重要,信很重要,自信尤其最重要。 安慰剂作用的前提是患者不知道那是安慰剂,但很多时候,即便戳穿了安慰剂的本质,有些患者不仅继续服用甚至疗效不减,这是个有趣的“信”的现象。得补充一下,只有与现代科学不冲突的安慰剂才可能有这样的效果,乔布斯就是信过头去见他的神了,他究竟是否求得解脱了呢?这真的很难说。所以,请谨慎服用。 安慰剂的心理基础是“自证预言”。今天来点,明天饭多吃了两口是它起了作用,上楼气少喘了两口是它起了作用,世界比昨天光明、宇宙比昨天和平也是它起了作用,尽管可能是菜少了所以多来了两口饭,也可能是上楼的时候步子迈小了所以少喘了两口气,更有可能宇宙一直和平今年恰好是太阳黑子活跃年而上一个耀斑的辐射今天刚好抵达。但这些都不重要,安慰剂就是牛逼,这些最差也是它引发的蝴蝶效应。一切支撑我观念的统统拿来、一切不合我观念的统统走开。通例孤例从来不缺,缺的只是安慰剂这类药。 如此灵药也不是人人都能享用的,那些性格里带有怀疑精神的倒霉蛋就没这个福分。别说安慰剂了,他们连自我都怀疑。倒霉蛋大体分为两种,先天的和后天的。他们的生存状况大体上差不多,真要细比后天的要惨些,是倒霉蛋中的倒霉蛋。比起一开始就不吃无效药的那些,他们乐乐呵呵的从众吃了大量安慰剂,产生了各种幻觉,萌生了各种希望,不断调整配方和计量,直到后来产生了怀疑火苗。有人遮蔽了火苗、有人烧掉了些观念、有人烧掉了知识体系、有人烧掉了价值体系。 古今中外的大哲,无一例外都是在不断怀疑中或建立或重建自己的价值体系,加上对世界的理解、对人的定义,最终构成了独有的哲学体系,或自立门户、或再开分支。就像每一位大哲都怀疑了先人一样,他们也成了被怀疑的先人。带点怀疑的精神,探寻每棵体系大树的深处,在根的地方是叫第一假设的东西。面对着这个最值得怀疑的东西,不免心生疑惑,难道这帮倒霉蛋在怀疑完自己和先人后,又抛弃了怀疑精神,造出了新的安慰剂抚慰自己,整嗨别人? 在其背后不论是感悟了天道的、还是面见了其神的,统统都不是纯粹的倒霉蛋。这也很好理解,一切怀疑的尽头必然面对的是无尽的虚无。内心不够强大的总要找些外在的力量,最终自嗨嗨人,这就是宗教性的根源。那纯粹的内心强大的倒霉蛋一般怎么干呢?他们会为自己的虚无赋予意义,形成各种的主义。维基百科解释“主义”一词如下,代表理念或有完整体系的思想和信念,也可视为实现不同目标的不同方法。既然是方法,就不是真理。感性的体悟也好,理性的选择也罢。本质上都应是个人选择,即便你体悟出了东西还面临着选择是否相信,选择相信则是前者,选择不相信则是后者。区别只是前者选择给自己喂安慰剂,后者选择直面冰冷的现实。 卢梭写到:“人生而自由却又无所不在枷锁之中。”在很长的一段时间里一直不明白这里的自由究竟是什么?是自由去死的权利吗?可有的神经病和犯人连自杀的权利的没有啊。现在看来,它可能指的是人在选择价值体系时的自由意志。任何选择都是有代价的,机会成本外要死不少脑细胞。而那些把自己交给命运而不做选择的大多数,其实也算一种选择。一种非常幸运的选择,首先赶上了个好时代,其次少了一个终极大问题,最后获得了不少的安慰剂福利,而这些正是倒霉蛋们无福受用的。

February 22, 2017 · 1 min