分类 随笔 下的文章

由Ionic浅谈WebAPP在移动开发中的发展


  最近接触到一个HTML5应用程序开发框架 Ionic ,简单来说 “ 它使用 Web 技术,比如 HTML、CSS 和 Javascript 构建接近原生体验的移动应用程序。ionic 主要关注外观和体验,以及和应用程序的 UI 交互,特别适合用于基于 Hybird 模式的 HTML5 移动应用程序开发 ”。之所以选择Ionic出于多方面原因,1.项目开发人员有限 2。开发人员技术有限,无法兼顾Android和Ios 3.开发时间有限,原生开发费时繁琐。相信很多小型开发团队也存在这种情况,于是像Ionic这样的webapp框架成为一种不错的选择,类似的还有MUI,Zepto等,他们的优缺点不逐一分析,Ionic算是一个发展的高峰,在用户体验和实现功能上已经十分接近原生应用,同时可以应用于android和ios,windowsphone(如果勉强算活着的话)平台,十分方便。


不得不知的TensorFlow


  随着人工智能技术的快速发展,越来越多的公司和研究人员加入到其中并诞生了一系列人工智能相关的开源项目,其中就有TensorFlow,MXNet,Caffe,Keras等,这些开源库各有各的特点,它们的出现有利于开发者掌握和开发仍智能相关产品,赋予未来更多想象力。   这里之所以更关注TensorFlow其中一个原因是这是由谷歌开发的,谷歌在这方面的实力世界领先,AlphaGo带来的冲击是巨大的,表明人工智能的时代已经越来越近。   所谓TensorFlow是基于DistBelief进行研发的第二代人工智能学习系统,其命名来源于本身的运行原理。Tensor(张量)意味着N维数组,Flow(流)意味着基于数据流图的计算,TensorFlow为张量从图象的一端流动到另一端计算过程。TensorFlow是将复杂的数据结构传输至人工智能神经网中进行分析和处理过程的系统。 TensorFlow可被用于语音识别或图像识别等多项机器深度学习领域,对2011年开发的深度学习基础架构DistBelief进行了各方面的改进,它可在小到一部智能手机、大到数千台数据中心服务器的各种设备上运行。   TensorFlow同样支持GPU,分布式,可以使运行速度大大提高。


在使用PagerAdapter时的坑


坑的源头

在fragment中使用

public void onStart() {
        super.onStart();
        mAdapter = new TrackGetFragmentPagerAdapter(getChildFragmentManager());
        tabLayout = (TabLayout) mainView.findViewById(R.id.tabs);
        viewPager = (ViewPager) mainView.findViewById(R.id.vp_view);
        viewPager.setAdapter(mAdapter);
        tabLayout.setupWithViewPager(viewPager);
        tabLayout.setTabMode(TabLayout.MODE_FIXED);
        mAdapter.notifyDataSetChanged();
    }


基于用户画像的推荐算法实现


  接上文,现代社交网站常常需要根据用户身份和偏好向他们推荐相似用户,比如微博,并且这些数据常常数据量常常十分巨大,简单的协同过滤算法已经不能满足需求了,那么该如何应用mahout更好地解决呢?当然要根据场景和数据具体分析,同时Mahout中的算法十分丰富(查看),并且依托于hadoop,可以充分发挥云端的力量。这里只是抛砖引玉,尝试用组合推荐的方法进行用户社会化推荐。   首先来看看假定的数据构成: