首页 文章 精选 留言 我的

精选列表

搜索[多语言适配],共10001篇文章
优秀的个人博客,低调大师

浅谈 Spark 的多语言支持

作者:郑锴,花名铁杰,阿里巴巴高级技术专家,Apache Hadoop PMC,Apache Kerby 创立者。深耕分布式系统开发和开源大数据多年,先后专注在安全,存储和计算领域。之前在 Intel,目前转战阿里云上,致力于提供更好用更有弹性的 Hadoop/Spark 大数据平台。 Spark 设计上的优秀无容置疑,甫一出道便抢了 Hadoop 的 C 位,在开源大数据的黄金十年里一时风头无两,在人工智能时代的当下仍然能够与时俱进,不可谓不牛逼。架构和设计上的卓越,不遑多言,美中不足之处自然也有不少,比如调度模型跟 MapReduce 这种计算范式过于耦合,Spark 最近引入 Barrier 调度模式就是为了支持深度学习这种新的计算类型,所幸在于对框架的改动不会伤经动骨。有些缺陷则不然,影响全局,调整起来绝非易事。这儿我主要想

优秀的个人博客,低调大师

openSUSE Linux 10.2 多语言

此发布版本是由 openSUSE.org 项目创建的。Novell 赞助的 openSUSE 项目是一个协作的社区活动,提供世界上最有用的开放源代码计算平台,即 openSUSE 发布版本。该项目在 opensuse.org 托管,有透明的开发过程、简单的参与模型、大量的开发工具,并使所有人都可以容易地访问构建版本和发行版本。请访问 [url]www.opensuse.org[/url] 以了解如何加入 openSUSE 社区。 openSUSE 10.2 特性 全新桌面 这个版本对功能强大的 KDE 3.5.5 和 GNOME 2.16.1 桌面环境中许多功能进行了重新设计,再次创新。 全新 GNOME 菜单 "SLAB"GNOME 桌面也包含了来自 SUSE Linux Enterprise Desktop 的最新创意:一个全新的重构菜单。遵循“设计第一”的理念,在新菜单的设计阶段,工程师们分析了数以百计的可用性测试,研究了近 1500 小时的测试录像。这些测试的结果反映在最终的桌面设计中:全新的用户界面、内置搜索功能以及直观菜单设计。 KDE 和 GNOME 在 openSUSE 10.2 的更多截屏在 这里 。 Kickoff 菜单Kickoff 是openSUSE 新推出的 KDE 菜单,它易操作、效率高。它是根据开始菜单全面研究报告进行设计的,保证流程顺畅、功能丰富、操作简单。作为用户,您可以使用它快捷启动最常用的程序、最近访问的文档、收藏夹中的文件、文档/程序访问历史,当然,还有分类清楚的应用程序列表。 Kickoff 内置了 Kerry Beagle,一个Beagle搜索工具的 KDE 前端,使得对程序、文档、图标、聊天记录等内容的访问更加快捷。 YaST (管理员设置) YaST 硬件配置这个版本包含强大经典的 YaST 控制中心,可以经由简易的向导程序进行原本繁琐的配置过程,诸如架设 HTTP 服务器,设置网卡,调整蓝牙设备,管理软件,配置监视器和显卡。 打印机可以即插即用;蓝牙可以随用随配。不管您使用什么硬件,YaST 都会全面支持。 电源管理 openSUSE 10.2 的电源管理功能有了重大改进。新电源管理功能让您可以挂起您的当前会话,将它储存到磁盘或内存。这不仅加速了关机和重启过程,也让您可以迅速回到上次停止使用电脑时的状况。 我们同时发布最新的 KPowersave:使您在一个面板,几次点击就可以控制所有电源管理的功能。您可以跟踪 CPU 频率变动、电源消耗、或根据系统情况调整电源管理方案。不管在 YaST 电源管理模块进行配置,还是进入“挂起"/“待机”模式,只要轻点鼠标就可以实现。 全新软件管理 YaST 模式选取SUSE Linux 10.1 在软件包管理方面有些问题,主要是整合 ZMD 引起的,10.2 版本中引进了新的软件包管理系统。openSUSE 10.2 中,问题全部解决,您也可以自行选择使用另一种包管理系统: openSUSE 包管理系列,独立于 ZMD。 openSUSE 包管理模式是 ZMD 功能的轻量级简化。它使用 YaST 软件管理前端,也有命令行版本,叫做 Zypper。 Zypper 提供快速安装卸载软件功能,可以在命令行直接添加软件源。opensuseupdater,一个 KDE 程序,运行时显示为通知栏图标,通知可用更新,快捷调用 YaST 在现更新。 所有的软件被分类到各种模式,解除了倒溯软件分类的繁琐。通过这种件套式管理方式可以轻松建立桌面环境、开发工具、或对某一类软件进行升级。 桌面特效 Compiz Cube EffectCompiz,能够发挥 OpenGL 全部效能的窗口管理器。它由 Novell 工程师开发,提供真透明效果(即使是正在播放的视频也可以),胶体窗口,桌面立方体(如图),和其它众多特效。 Compiz 和 Xgl 由 10.2 CD 自带,默认安装。光盘还带有最新的 Xorg 7.2,允许在非 Xgl 情况下使用 compiz 和其它复合窗口管理器。 openSUSE 包构建服务 包构建服务首页openSUSE CD 带有上千软件包,更多的软件尽在openSUSE 包构建服务。 openSUSE 包构建服务是开放完整的发行版开发平台,为将来基于 openSUSE 的发行版提供架构支持。它为软件开发者提供编译、公开、发布工具,用来针对广阔的用户群推广他们的软件,甚至他们基于 openSUSE 适用于不同硬件架构的发行版。 这里你可以找到最新最先进的技术,融入各个软件包中,比如最新版本的 Beryl,一个复合管理器,以及更多。 本文转自 张善友 51CTO博客,原文链接:http://blog.51cto.com/shanyou/74343,如需转载请自行联系原作者

优秀的个人博客,低调大师

FTServer 1.2 发布,多语言全文搜索服务

FTS Server是一个轻量的全文搜索服务器,支持多国语言混合搜索,能搜索近音无意义词。高搜索性能低内存占用,对增量更新索引优化,无分词与重建索引的烦恼。代码无门槛,只需要CRUD+JSP,非常容易进行二次开发。 功能更新: 1.修复了一个页面没有“description”时不进行索引的问题。 2.在精确搜索无结果后,转为模糊搜索。 安装使用: Java版本 使用Netbeans+JDK8进行编译。 或者把WAR文件夹中的FTS.ZIP解压复制到任意JSP服务器中,不到2M。 C#版本 下载源码后, cd FTServer dotnet run 全文搜索服务器Java版本源码下载 全文搜索服务器C#移植版源码下载

优秀的个人博客,低调大师

高性能Cassandra多语言客户端

本文根据10月24日在群里直播的内容整理,方便习惯看文字的同学。如果更习惯看视频,可以点击观看直播回放 为何选择Cassandra 作为全球范围内最流行的宽表数据库,Apache Cassandra具备诸多优点:海量数据存储;简洁易上手的类SQL语法;总是在线;扩容灵活等。除了服务端的各种优点之外,Cassandra对各种语言客户端(driver)的高性能支持也是其实现易用性和良好性能的重要环节。Cassandra支持几乎所有流行语言的原生客户端:Java/Python/C++/C#/NodeJS/PHP/Ruby/Go/Perl/Scala...(详细列表参见Cassandra文档) 。下图列出了Cassandra支持的开发语言:同时,Cassandra客户端良好的架构设计保证了在易于使用的同时能够从服务端获取最大的性能。下图是Ca

优秀的个人博客,低调大师

Android数据适配-ExpandableListView

Android中ListView的用法基本上学的时候都会使用,其中可以使用ArrayAdapter,SimpleAdapter,BaseAdapter去实现,这次主要使用的ExpandableListView展示一种两层的效果,ExpandableListView是android中可以实现下拉list的一个控件类似于QQ那种我好友之后就是一排自己的好友,就是两层效果,实现的话使用SimpleExpandableListAdapter即可。 布局文件 先看下效果: main中xml代码: 1 2 3 4 5 6 7 8 9 10 11 <Button android:onClick= "test" android:layout_width= "fill_parent" android:layout_height= "wrap_content" android:text= "FlyElephant" /> <ExpandableListView android:id= "@id/android:list" android:layout_width= "fill_parent" android:layout_height= "fill_parent" android:drawSelectorOnTop= "false" /> 定义一个省份的province.xml: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 <?xml version= "1.0" encoding= "utf-8" ?> <LinearLayout xmlns:android= "http://schemas.android.com/apk/res/android" android:layout_width= "match_parent" android:layout_height= "match_parent" android:orientation= "vertical" > <TextView android:id= "@+id/list_provinceText" android:layout_width= "fill_parent" android:layout_height= "fill_parent" android:paddingBottom= "8px" android:paddingLeft= "30px" android:paddingRight= "5px" android:paddingTop= "8px" android:textSize= "20sp" /> </LinearLayout> 定义了一个地区的child.xml: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 <?xml version= "1.0" encoding= "utf-8" ?> <LinearLayout xmlns:android= "http://schemas.android.com/apk/res/android" android:layout_width= "match_parent" android:layout_height= "match_parent" android:orientation= "vertical" > <TextView android:id= "@+id/child_text" android:layout_width= "fill_parent" android:layout_height= "fill_parent" android:paddingBottom= "8px" android:paddingLeft= "30px" android:paddingRight= "5px" android:paddingTop= "8px" android:textSize= "20sp" /> </LinearLayout> Demo实现 主要实现代码,代码中都已经注释,其中最主要的SimpleExpandableListAdapter中的参数,这个参数太多,很容易弄错,可以看下注释或者API文档: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 // 创建一级条目 List<Map<String, String>> provinces = new ArrayList<Map<String, String>>(); //创建两个省份一级条目 Map<String, String> firstProvince= new HashMap<String, String>(); firstProvince.put( "province" , "河南" ); Map<String, String> secondProvince= new HashMap<String, String>(); secondProvince.put( "province" , "北京" ); provinces.add(firstProvince); provinces.add(secondProvince); // 创建一级条目下的的二级地区条目 List<Map<String, String>> childList1= new ArrayList<Map<String, String>>(); //同样是在一级条目目录下创建两个对应的二级条目目录 Map<String, String> child1= new HashMap<String, String>(); child1.put( "child" , "郑州" ); Map<String, String> child2 = new HashMap<String, String>(); child2.put( "child" , "开封" ); childList1.add(child1); childList1.add(child2); //同上 List<Map<String, String>> childList2 = new ArrayList<Map<String, String>>(); Map<String, String> child3 = new HashMap<String, String>(); child3.put( "child" , "海淀" ); Map<String, String> child4 = new HashMap<String, String>(); child4.put( "child" , "昌平" ); childList2.add(child3); childList2.add(child4); // 将二级条目放在一个集合里,供显示时使用 List<List<Map<String, String>>> childs = new ArrayList<List<Map<String, String>>>(); childs.add(childList1); childs.add(childList2); /** * 使用SimpleExpandableListAdapter显示ExpandableListView * 参数1.上下文对象Context * 参数2.一级条目目录集合 * 参数3.一级条目对应的布局文件 * 参数4.fromto,就是map中的key,指定要显示的对象 * 参数5.与参数4对应,指定要显示在groups中的id * 参数6.二级条目目录集合 * 参数7.二级条目对应的布局文件 * 参数8.fromto,就是map中的key,指定要显示的对象 * 参数9.与参数8对应,指定要显示在childs中的id */ SimpleExpandableListAdapter adapter = new SimpleExpandableListAdapter( this , provinces, R.layout.list_group, new String[] { "province" }, new int [] { R.id.list_groupText }, childs, R.layout.child, new String[] { "child" }, new int [] { R.id.child_text }); setListAdapter(adapter); 这个mainActivity需要继承ExpandableListActivity,当然你可以设置其中的点击事件,只要重写一下方法即可: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 /** * 设置哪个二级目录被默认选中 */ @Override public boolean setSelectedChild( int groupPosition, int childPosition, boolean shouldExpandGroup) { //do something return super .setSelectedChild(groupPosition, childPosition, shouldExpandGroup); } /** * 设置哪个一级目录被默认选中 */ @Override public void setSelectedGroup( int groupPosition) { //do something super .setSelectedGroup(groupPosition); } /** * 当二级条目被点击时响应 */ @Override public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) { //do something return super .onChildClick(parent, v, groupPosition, childPosition, id); } 效果如下: 上面这个例子写的有点单调,其实第二个你子的布局直接是空的也行,例如定义一个images.xml 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 <?xml version= "1.0" encoding= "utf-8" ?> <LinearLayout xmlns:android= "http://schemas.android.com/apk/res/android" android:layout_width= "wrap_content" android:layout_height= "wrap_content" android:orientation= "horizontal" > <ImageView android:src= "@drawable/open" android:layout_width= "20dp" android:layout_height= "20dp" /> <TextView android:id= "@+id/txtName" android:paddingLeft= "10dp" android:layout_width= "wrap_content" android:layout_height= "wrap_content" /> </LinearLayout> 然后定义一个items.xml 1 2 3 4 5 6 7 8 <?xml version= "1.0" encoding= "utf-8" ?> <TextView xmlns:android= "http://schemas.android.com/apk/res/android" android:id= "@+id/items" android:layout_width= "wrap_content" android:layout_height= "wrap_content" > </TextView> 代码调用: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 public class MyExpandleActivity extends Activity { /** * 实现可扩展展开列ExpandableListView的三种方式 * 一是使用SimpleExpandableListAdpater将两个List集合包装成ExpandableListView 二是 * 扩展BaseExpandableListAdpter * 三是使用simpleCursorTreeAdapter将Cursor中的数据包装成SimpleCuroTreeAdapter */ private String[] names = { "腾讯" , "百度" , "阿里巴巴" }; private String[][] childnames = { { "马化腾" , "张小龙" , "社交" }, { "李彦宏" , "马东敏" , "搜索" }, { "马云" , "陆兆禧" , "电商" } }; private ExpandableListView ep; @Override protected void onCreate(Bundle savedInstanceState) { super .onCreate(savedInstanceState); setContentView(R.layout.activity_my_expandle); // 定义父列表项List数据集合 List<Map<String, String>> group = new ArrayList<Map<String, String>>(); // 定义子列表项List数据集合 List<List<Map<String, String>>> ss = new ArrayList<List<Map<String, String>>>(); for ( int i = 0 ; i < names.length; i++) { // 提供父列表的数据 Map<String, String> maps = new HashMap<String, String>(); maps.put( "names" , names[i]); group.add(maps); // 提供当前父列的子列数据 List<Map<String, String>> child = new ArrayList<Map<String, String>>(); for ( int j = 0 ; j < names.length; j++) { Map<String, String> mapsj = new HashMap<String, String>(); mapsj.put( "map" , childnames[i][j]); child.add(mapsj); } ss.add(child); } /** * 第一个参数 应用程序接口 this 第二个父列List<?extends Map<String,Object>>集合 为父列提供数据 * 第三个参数 父列显示的组件资源文件 第四个参数 键值列表 父列Map字典的key 第五个要显示的父列组件id 第六个 子列的显示资源文件 * 第七个参数 键值列表的子列Map字典的key 第八个要显示子列的组件id */ SimpleExpandableListAdapter expand = new SimpleExpandableListAdapter( this , group, R.layout.images, new String[] { "names" }, new int [] { R.id.txtName }, ss, R.layout.items, new String[] { "map" }, new int [] { R.id.items }); ep = (ExpandableListView) findViewById(R.id.expanable_mylist); ep.setAdapter(expand); } } 效果跟上面相同: 本文转自Fly_Elephant博客园博客,原文链接:http://www.cnblogs.com/xiaofeixiang/p/4107356.html,如需转载请自行联系原作者

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册