Sunday, January 25, 2015

[repost ]Ember.js 技巧、诀窍和最佳实践

original:http://ift.tt/1JH1iUC 目录 [−] 通用 核心概念 命名约定 带Binding后缀的属性自动转为Ember.Binding对象 View vs. Component Controller 转到其它页面 访问其它Controller. needs属性 使用send调用定义的action 主动触发property变动事件 Route 一些钩子hook controllerFor modelFor得到父Route的model transitionTo, intermediateTransitionTo refresh 刷新本route及子route的model 渲染非默认的模版 Model 使用Ember.Object的extend定义新类 计算属性Computed Properties @each计算 observers 是同步的 Ember.computed(‘aaa’, function(){}), Ember.observer(‘aaa’, function () {}) reopen覆盖 架构 Store model 和 record adapter Serializer 属性定义时,attr()类型可以不设置 One-to-One, One-to-Many和Many-to-Many. hasMany 增删改查 model的一些方法 Adapter的 URL Conventions […]



via WordPress http://ift.tt/1ySj31R

Labels:

Monday, January 19, 2015

[repost ]How to install and enable EPEL repo in RHEL/CentOS/Oracle Linux?

original:http://ift.tt/1BtYlaE What is EPEL repo? EPEL(Extra Packages for Enterprise Linux) is a repo developed by Fedora project to ensure that there is a quality 3rd party packages available for enterprise users such as people who are using RHEL, Cent OS, Oracle Linux and Scientific Linux. These are highly used enterprise Linux OS which are shipped […]



via WordPress http://ift.tt/1uioFwG

Labels:

Sunday, January 11, 2015

[repost ]Ember without Ember Data

original:http://ift.tt/XxSoBj The concepts in this article are still true, but I’ve recorded a screencast showing how to use ember without ember data using ember-cli and the latest version of Ember. It goes beyond the contents of this article, showing how to create an adapter, store and even your own identity map. Check it out! Ember […]



via WordPress http://ift.tt/1A5pz1F

Labels:

[repost ]How to represent arrays within ember-data models?

original:http://ift.tt/1tXCki8 Answer: Well… It was a little bit difficult but mixing all answers in this post I made it work. Firstly, you should create a transform for the new type “array”: DS.ArrayTransform = DS.Transform.extend({ deserialize: function(serialized) { return (Ember.typeOf(serialized) == "array") ? serialized : []; }, serialize: function(deserialized) { var type = Ember.typeOf(deserialized); if (type […]



via WordPress http://ift.tt/1A5pwmh

Labels:

[repost ]Getting Into Ember.js

original: There are a lot of JavaScript libraries available, and most are really good at providing the traditional DOM-centric interactions that your typical websites need. But when it’s time to build a manageable code base for a single-page app, that’s where a whole suite of new frameworks come in to smooth things out. The old […]



via WordPress http://ift.tt/1A5pz1p

Labels:

Saturday, January 10, 2015

[repost ]9 THINGS YOU SHOULD KNOW BEFORE STARTING YOUR NEXT EMBER.JS AND EMBER DATA APPLICATION

original:http://ift.tt/1n9VvMj If you are building a fairly complex web application, there is a high probability that you will have a lot of JavaScript code, and you would want to organize your code in some modular way that will be easier to maintain. Also at the same time you would also want to use some sort […]



via WordPress http://ift.tt/1DvOUIp

Labels:

[repost ]How to use multiple models with a single route in EmberJS / Ember Data?

original:http://ift.tt/1uV8XYi answer: You can use the Ember.RSVP.hash to load several models: App.IndexRoute = Ember.Route.extend({ model: function() { return Ember.RSVP.hash({ people: this.store.find('person'), companies: this.store.find('company') }) } }); And in your template you can refer to people and companies to get the loaded data: <script type="text/x-handlebars" data-template-name="index"> <h2>People:</h2> <ul> {{#each people}} <li>{{name}}</li> {{/each}} </ul> <h2>Companies:</h2> <ul> {{#each […]



via WordPress http://ift.tt/14fh76G

Labels:

[repost ]30 天学习 30 种新技术系列

original:http://ift.tt/1ebFj7v 编者注:我们发现了比较有趣的系列文章《30 天学习 30 种新技术》,准备翻译,一天一篇更新,年终礼包。以下是译文,英文标题表示还未翻译,附原文链接;中文标题表示已翻译,附译文链接。 更新:全系列已经全部翻译完成。 让你 30 天学习 30 种新技术,你会觉得这是挑战吗? 我已经接受了挑战,我会在一个月的时间内每天学习一门新技术,挑战开始于 2013 年 10 月 29 日。下面就是我将要学习的新技术的列表,我会把每天学到的内容写出来。在我每天正常的工作之后,我会花几个小时学习一门新技术,再用一小时将今天学到的写在博客上。这项活动的目的是熟悉许多在开发者社区所使用的新技术。 我会把重点放在 JavaScript 及其相关技术的学习上,当然也会去了解一下像 Java 这类我比较感兴趣的其他技术。我也可能会在一门技术上花费好几天的时间,但我每次会选择和这门技术相关的不同的主题来讲。只要是有意义的,我将尽量展示它如何与 OpenShift 工作,我希望这是一次充满乐趣并能学到很多东西的旅程。(你可以在 twitter 上follow 我) 下边是学习列表: 2013.10.29 – Day 1: Bower——管理你的客户端依赖关系 2013.10.30 – Day 2: AngularJS —— 对 AngularJS 的初步认识 2013.10.31 – Day 3: Flask —— 使用 Python 和 OpenShift 进行即时 Web […]



via WordPress http://ift.tt/14fh5vF

Labels:

[repost ]Day 19: EmberJS 入门指南

original:http://ift.tt/LgzU8s 编者注:我们发现了有趣的系列文章《30天学习30种新技术》,正在翻译,一天一篇更新,年终礼包。下面是第19天的内容。 到目前为止,我们这一系列文章涉及了Bower、AngularJS、GruntJS、PhoneGap和MeteorJS 这些JavaScript技术。今天我打算学习一个名为Ember的框架。本文将介绍如何用Ember创建一个单页面的社交化书签应用。本教程将包括两篇:第1篇介绍客户端代码和用HTML 5本地存储持久保存数据,第2篇中我们将使用一个部署在OpenShift上的REST后端。过几天我会写第2篇。 应用 我们将开发一个社交化书签应用,允许用户提交和分享链接。你可以在这里查看这个应用。这个应用可以做到: 当用户访问/时,他会看到以提交时间排序的报道列表。 当用户访问某个书签时,例如#/stories/d6p88,用户会看到关于这个报道的信息,例如是谁提交的,何时提交的,以及文章的摘要。 最后,当用户通过#/story/new提交新报道时,内容会存储在用户浏览器的本地存储上。 什么是Ember? Ember是一个客户端的JavaScript MV* 框架,用来构建野心勃勃的web应用。它依赖于jQuery和Handlebars库。如果你曾经在Backbone下工作,那么你会发现Ember是一个武断的Backbone,或者Backbone++。Ember可以为你完成很多事情,如果你遵循它的命名约定的话。Ember.js在这方面很突出。因此,如果我们在应用中加入了url路由和报道,那么我们就有了这些: 报道的模板 StoriesRoute StoriesController 请参考命名约定文档来理解Ember的命名约定。 Ember核心概念 本节将介绍我们的示例应用中将涉及的四个EmberJS的核心概念: 模型:模型代表我们展示给用户的应用领域内的对象。在上述例子中,一个报道就代表一个模型。报道,加上它的属性,包括标题、url等,构成一个模型。模型可以通过jQuery加载服务器端的JSON数据的方式来获取和更新,也可以通过Ember Data来获取和更新。Ember Data是一个客户端的ORM实现,可以利用它方便地对底层的持久性存储进行CRUD操作。Ember Data提供一个仓库接口,可以借助提供的一些适配器配置。Ember Data提供的两个核心适配器是RESTAdapter和FixtureAdapter。在本文中,我们将使用LocalStorage适配器,该适配器将数据持久化为 HTML 5 的LocalStorage。请参阅此文档了解详情。 路由器和路由:路由器指定应用的所有路由。路由器将URL映射到路由。例如,当一个用户访问/#/story/new的时候,将渲染newstory模板。该模板展现了一个HTML表单。用户可通过创建Ember.Route子类来定制路由。在上述例子中,用户访问/#/story/new将渲染一个基于newstory模板的默认模型。NewStoryRoute会负责将默认的模型分配给newstory模板。请参阅文档了解详情。 控制器:控制器可以做两件事——首先它装饰路由返回的模型,接着它监听用户执行的行动。例如,当用户提交报道的时候,NewStoryController负责通过Ember Data API将报道的数据持续化到存储层。请参阅文档了解详情。 模版:模板向用户展示应用的界面。每个应用都有一个默认的应用模板。 Ember的Chrome插件 EmberJS提供了一个Chrome插件,因此调试ember应用很容易。这个插件可以在 chrome web store 下载安装。可以查看Ember团队做的视频了解chrome插件的详情。 Github仓库 今天的示例程序的代码可从github取得。 第一步 下载新手套装 ember提供了一套新手装备,因此开始使用框架非常简单。新手套装包括了需要用到的javascript文件(ember-*.js、jquery-*.js和handlerbars-*.js)以及示例应用。下载新手套装,解压缩,最后重命名为getbookmarks。 wget http://ift.tt/1wGOFmq unzip v1.1.2.zip mv starter-kit-1.1.2/ getbookmarks 在浏览器中打开index.html,你会看到如下页面: 第二步 启用GruntJS监视 这一步是可选的,不过如果你做了这步,那么你的生活质量将大大提高。如果你决定跳过这步,那么每次你做了改动之后都需要刷新浏览器。在第7天的文章,我讨论了GruntJS的在线重载功能。我没有在EmberJS里找到任何自动重载的功能,因此我决定使用GruntJS的livereload来提高效率。你需要Node、NPM和Grunt-CLI。请参考我第5天和第7天的文章了解详情。 […]



via WordPress http://ift.tt/1wGOHdQ

Labels:

[repost ]Ember.js 表单验证

original:http://ift.tt/14f2znA Note:本文基于 Ember.js 1.4.0 Ember.js 里,一件事常常有多种做法。虽说灵活,但对新手来说,我认为反是件坏事,因为选择太多。 比如一个表单元素 input 输入框,用于用户注册时填写用户名,则据我了解到的资料,至少可有以下几种写法: handlebars.js 模板1 {{input type='text' placeholder="请输入用户名" value=username}} Ember.TextField Ember.TextField 是 Ember.js 内建的一个 View 类2, //template {{view Ember.TextField valueBinding="username" placeholder="请输入用户名"}} 扩展 Ember.TextField 类 // js App.UsernameTextField = Ember.TextField.extend({}); // template {{view App.UsernameTextField valueBinding="value" placeholder="请输入用户名"}} 我的需求很简单,对 input 里填写的用户名,发起 ajax 请求到服务器,验证该用户名是否可用。 触发验证的时机我选在输入框失焦时。在 Ember.js 里,该事件为 foucusOut。 一个最快的解决办法是,直接把事件绑定给 View 类的属性(下面一段代码基于上面的第三种写法)3: App.UsernameTextField = […]



via WordPress http://ift.tt/1shONfr

Labels:

Sunday, January 04, 2015

[repost ]Redirecting to a page using restful methods?

original:http://ift.tt/1xJanMb I’ve created a page which asks user to fill some form fields and when he submits, the form is sent to a Restful method which you can see below: @POST @Path("addUser") @Consumes(MediaType.APPLICATION_FORM_URLENCODED) public void addUser(@FormParam("username") String username, @FormParam("password") String password, @FormParam("id") String id, @FormParam("group_name") String groupName, @FormParam("authority_name") String authorityName, @FormParam("authority_id") String authorityId ) { […]



via WordPress http://ift.tt/1rWfdTU

Labels:

[repost ]201 Created or POST-Redirect-GET

original:http://ift.tt/1oobqMt I’m currently building a web application that follows the principles of Resource Oriented Client Architecture (ROCA). The idea of building a web application that is based on REST principles using semantic HTML as the media type rather than JSON and utilising CSS and unobtrusive JavaScript is very appealing. I’ve been building REST based web […]



via WordPress http://ift.tt/1HxspCm

Labels:

Thursday, January 01, 2015

[repost ]ArchSummit北京2014十大优秀演讲

original:http://ift.tt/1tFlKU4 12月19-20日,ArchSummit北京2014大会(全球架构师峰会)在北京国际会议中心举行,这是InfoQ中国团队第一次将ArchSummit带到北京。大会共设立10个专题,55名嘉宾将带来58场分享。来自147家企业的近800名参会者出席。同时,借助PPTV平台,大会官网首次同步视频直播会议。大会全部PPT提供公开下载。 InfoQ聘请了三位有宽广技术视野和实践经历的技术团队管理者担当大会联席主席,他们是周爱民、孙立和池建强,共同把控内容方向。同时,继续沿用专题出品人制度,邀请各领域的专家作为专题的内容负责人,保证讲师及内容的高质量。 除了精彩的分享,InfoQ为讲师筹划了讲师欢迎晚宴,为讲师提供了同行交流学习的机会。此外,一如既往的策划了讲师见面会——架构师跨界夜聊,美团网技术委员会主席夏华夏,知道创宇创始人兼CTO杨冀龙,知乎联合创始人兼 CTO李申申,淘宝技术总监庄卓然,阿里云虚拟化技术总监张献涛、TalkingData研发技术副总裁周海鹏、去哪儿网高级系统架构师孙立参与了讨论,并回答了参会者的问题。 三场主题演讲 百丽公司JavaScript工程技术主管与前端负责人Dave Arel探讨了移动计算的昨天、今天和明天,移动计算在日常生活中的不断深化与普及,并探讨了这一现状对于软件发展前景意味着什么。 CA Technologies API学院API架构主管Mike Amundsen分享了一个多世纪以来,我们一直在探索当今计算模式的根源所在及其未来的发展可能性,而其成果势必改变我们审视计算、衡量计算价值并将计算要素融入日常生活的基本方式。 英特尔中国研究院院长吴甘沙分享了大数据的十个技术前沿,软件与硬件、人类与机器、算法与CPU的关系等。 十场技术专题 转型中的SNS——微信、微博如何留住用户?新兴的,处在边缘市场的SNS如何转型,找到自己的定位。到底什么样的系统架构才足以应对持续演变的SNS产品形态,这是所有SNS平台架构师思考的问题。本专题邀请了新浪微博技术总监杨卫华、Nice技术合伙人程㭎、微信联合产品部–应用开发组组长张晋铭、知乎CTO李申申,微信支付O2O商户运营开发负责人郭小帅任出品人。 研发体系构建——过程、方法与工具,软件工程落足到开发实践中,就是研发体系架构。它是互联网公司中最难处理的组织与推进结构,也是最直接影响到公司效能的生产单元。但是具体到不同的公司或团队,也因为目标的不同有着相当大的差异,本专题将面向这些差异为听众带来数场风格迥异的分享,包括奇虎360技术副总裁、首席隐私官谭晓生,CA Technologies API学院API架构主管Mike Amundsen,彩程软件CEO沈学良,LeanCloud CTO丰俊文,豌豆荚架构师周爱民任出品人。 互联网金融——互联网金融对于技术领域的需求与传统互联网公司的截然不同,在满足高可用和一致性的前提下如何应付实时的性能与安全性导致了在技术架构上面临巨大的挑战,在本次互联网金融专题上,已经走在路上的传统金融领域与互联网金融领域的先行者们,将为我们奉上他们宝贵的实践经验,揭开构建这些强大系统的技术架构面前遮档的神秘面纱。我们邀请了上海证券交易所技术开发部执行经理陈晨、京东架构师/架构委员会成员赵海峰、维金副总裁&联合创始人陆怡、蚂蚁金服技术专家阮征,火币网CTO巨建华任本专题出品人。 疯狂双十一的全栈技术路线图——双十一是个全民参与的活动,就像航天技术是一个国家的顶尖技术代表,双十一同样也是国内互联网公司顶尖专家和技术的代表,国内的技术社区也一直非常关注其中的故事。本专题邀请了京东商城交易平台副总监王晓钟、阿里技术保障全局架构技术专家梁耀斌(追源)、阿里OceanBase数据架构专家师文汇(虞舜)、小米科技软件工程师杨大伟。 云平台技术全景剖析——云计算是近年IT领域最受关注的技术之一,云平台也已经成为最重要的基础设施之一。经历了这些年的发展,云计算在实战中都有哪些难以权衡的取舍,具体又该如何处理?云平台中的CDN、虚拟化、大数据处理又有怎样的架构?我们邀请了阿里巴巴资深专家及总监黄湘龙(龙觉)、阿里云虚拟化技术总监张献涛(旭卿)、阿里云高级技术专家朱照远(叔度)、阿里巴巴高级技术专家占超群(离哲)。 智能硬件,更懂你——硬件之于互联网,已经是毋庸置疑的必须。2014年的硬件圈子,我们看到了千万级的天使轮,过亿的A论。所有人都心知肚明,下一个互联网产业巨头必有硬件的一席之地,关键是:会是谁?我们邀请了北京融汇科艺科技有限公司创始人肖文鹏、小米数码新业务产品经理李创奇、极飞CEO彭斌、暴风影音研发总监毕先春、京东智能云团队总架构师任强,豌豆机器小组召集人罗未任出品人。 电商,不是搭个平台就能赢——在电商专题中,各大电商公司的优秀架构师聚集一堂,共同探讨电商解决方案和最新进展,分享他们在“秒杀”、“商品数据异构”、“风控”、“比价”、O2O等方面的成功经验。到时你会发现:电商,有一个好架构才能赢。我们邀请了当当网架构师史海峰、去哪儿网架构师莫德友、京东研发总监李鹏涛、1号店首席基础架构师张珺、天猫主架构师何崚、唯品会技术中心高级总监梁德伟、美团网技术委员会主席夏华夏,京东尚科架构师吴博任出品人。 移动互联网,随时随地——互联网的大潮还未完全褪去,我们又迎来了移动互联网的井喷,随着智能设备的普及和4G网络的推开,新的时代正在到来。结合终端提供的超出web的新特性,在7亿手机用户这样一个群体之上开发新的平台,重塑我们的生活方式,一定会创造更惊天动地的奇迹。我们邀请了腾讯即时通讯平台部技术总监范瑞彬、百丽公司JavaScript工程技术主管与前端负责人Dave Arel、去哪儿无线事业部副总经理蔡欢、阿里无线事业部高级专家李敏、雅虎研发总监朱凌、阿里数字音乐事业部Android开发工程师郭彦儒、iOS高级研发工程师唐巧,淘宝技术总监庄卓然任出品人。 云计算与大数据,从技术选型说起——过去的十几年,是互联网蓬勃发展的黄金时期,随着互联网日益深入的渗透到各行各业和人们的生活,各行各业相关的数据,与人们生活息息相关的各种数据,也逐渐迁移或进入到互联网,这是催生大数据和云计算的大背景…但随着移动互联网的兴起,其发展势头较之前十年更加迅猛和澎湃,可以想见,移动互联网产生和衍化出来的数据会更多更大,随之对大数据系统和云计算平台的挑战和机会也会更大,这是一个充满挑战和机遇的时代,大数据和云计算更是一个充满挑战和机遇的领域。我们邀请了豌豆莢资深系统架构师刘奇、小米工程师刘绍辉与小米云平台研发经理张弘强、TalkingData研发技术副总裁周海鹏、京东大数据平台研发负责人刘彦伟、Intel中国研究院数据经济实验室研究总监周鑫、腾讯软件工程师李锐、百度基础架构部资深软件工程师吕毅,小米软件工程师冯宏华任出品人。 真实的云计算服务——云计算提供了丰富而灵活的IT资源,如何充分利用云上的资源在已有的项目或产品中?如何在设计新产品架构时充分解耦,让采用云计算资源变的更容易?我们邀请了SequoiaDB联合创始人兼CTO王涛、友盟高级技术总监叶谦、七牛云存储CTO韩拓、AWS解决方案架构师张荣典、青云联合创始人&研发副总裁甘泉、UnitedStack存储研发负责人王豪迈、知道创宇创始人兼CTO杨冀龙。 为了感谢专题出品人及讲师为ArchSummit富有成效的付出,InfoQ(结合听众打分、其他讲师反馈、现场听众人数等综合考量)评选出了10名优秀讲师及3名优秀出品人。 优秀出品人 吴博,京东尚科架构师,所属专题【电商】。 巨建华 ,火币网CTO,所属专题【互联网金融】。 庄卓然,淘宝技术总监,所属专题【移动互联网】。 优秀讲师与优秀演讲 一、《大数据的十个技术前沿》——吴甘沙,英特尔中国研究院院长(PPT下载) 吴甘沙从十个角度介绍了当下大数据行业所面临的挑战和机会,以及学术和技术圈为了所做努力和尝试,在短短45分钟时间内展现了大数据领域的前沿技术趋势。 膨胀宇宙。随着数据量的暴增,我们在软件和硬件两方面都有了相应的对策,如从RDB到NoSQL,内存、硬盘、SSD成本大幅降低。 巴别之难。如何让不同的数据集做交流,他们使用不同的语言,不同的格式,不同的度量衡。因此我们要做数据治理,把一种数据翻译成另外一种数据,使得他们使用同样的语言。 数据有价。数据失去了稀缺性以后它的价值等于零,这并不是我们很多人愿意看到的。所以要着重解决两个大的问题,一是数据安全,另外一个是数据定价的问题。数据安全又包括大数据系统安全,数据本身的安全以及数据使用当中动态的安全。 软硬兼施。软件跟硬件更好的配合,如CPU和GPGPU的发展,拥有更多CPU核心和内存的虚拟机,更高效的资源隔离技术,如Docker等。 多快好省。数据处理速度快,质量好,成本低。比如使用内存计算,降低空间和时间的复杂度,进行并行化和分布式。 天下三分。不可能用统一的架构来处理不同大数据的问题。 分久必合。技术上会有许多融合,如Lambda架构在应用框架层融合。 精益求精。提高算法对精确度的要求。 人机消长。现在工具越来越强,现在已经开始出现能够给你做自动化分析、自动化可视化的工具。 智能之争。到底是生物质能好还是机器智能好,特别有一些科学家,另外一个部分认为通过计算,通过统计学习,他们认为统计学习才是方向。而现在发展最好的叫做计算智能,像人工神经网络、进化计算、模糊逻辑、人工免疫系统、群体智能等等。 二、《移动互联网海量访问系统设计》——张晋铭,微信联合产品部应用开发组组长(PPT下载) 2014春节,微信红包点燃移动互联网SNS”交易”战火,通过此主题,我们探讨移动互联网社交+交易系统的建设。张晋铭介绍了CAP理论,BASE理论(Basic Availability基本可用性,Soft state柔性状态,Eventuall consistency最终一致性),ACID理论及分布式事务处理在微信红包的应用。 三、《互联网企业制胜利器——选对人、速度快》——谭晓生,奇虎360技术副总裁、首席隐私官(PPT下载) 互联网公司的研发团队管理首先是从与传统IT企业略有区别的选人标准开始的,选对人,而不寄希望于改变人,聪明、精力充沛、敢于打破常规、勇于创新、有企图心的人是首选。前进速度是互联网公司的核心竞争力之一,为前进速度而进行深度优化的管理层级设计、工作流程设计,在动态中找平衡点,对团队Leader的要求比较高,团队的文化是团队持续前进的保证。 […]



via WordPress http://ift.tt/1BkIFTx

Labels: