GitHub漫游指南:10个值得你关注的Java项目

作为开源代码库以及版本控制系统,Github在全球拥有1500多万开发者用户,托管着3800多万个代码库,而这其中有330550个库是Java的。当你需要使用相关代码来帮助你开发项目或者制作一个简单的小游戏时,及时了解GitHub上值得关注的项目无疑会让你的开发事半功倍。在这里,我们整理了在Github上值得你关注的10个Java项目。

1. 极简化的Java技术

Bootique是用于构建较少容器的可运行Java应用程序的极限化技术。这个项目支持你以模块为基础创建REST服务、web应用程序、数据库迁移任务等工作,因此,你可以使用简单的命令来运行和控制它们。

这个项目背后的目标是把应用程序从Java容器中解放出来,让开发者改造他们的主程序。这个技术还有一个好处,它包含了一些内置命令,因此如果你不需要太多代码或者你没有向应用程序导入任何模块,你仍然可以使用Bootique来执行。

2. 优雅的问题解决之道

这个项目的名字说明了一切:99-problems。正如你所猜想的那样,它是一个通过收集问题来帮助你在逻辑编程下实践自己技术的项目。你可以选择使用Java 8、Scala还是Haskell来解决问题,而你最终的目标是找寻最优雅的问题解决方案。

如果你是一个难题爱好者——不用担心,这里有各种不同的难度,不同时间跨越(15分钟-几小时)的难题在等待着你。没有人会检查你解决问题所花费的时间,但它会给你一个解决该问题的时间标准。

如果已经努力完成了这99个问题,你还会可以面对另外一个挑战,这是为开发者们准备的小游戏:Java死亡竞赛。如果你被某些难题卡住了,你不妨参看下这篇文章

3. 字符串的处理

Strman-java是一个关于字符串处理的Java 8代码库。正如你所了解的那样,它处理问题的方式非常直接。它能够运行在Maven上,你所需要做的全部工作就是为你的构建工具选择添加一个依赖关系。

如果你使用过Kik(Node.js的扩展包),并听说过当它被撤包后所产生的leftPad危机,那么你一定会喜欢上Strman的,它包含了一个通过返回指定长度的新字符串来填补初始字符串的选项。

除此之外,你还可以在其中找到包括将字符串附加到数值、在特定索引获取字符以及返回一个包含从头到尾字符串的数组等各种函数的列表。

4. 数据浏览

如果你想找一个实现数据交互的炫酷方式,你可以留意下Dex。通过它,你可以对数据进行提取、转换和可视化,同时还可以获得数据预测的能力。你可以将数据通过3D的形式或者其它你喜欢的HTML样式来进行可视化。

Dex集成了超过50种可视化模式,包括了世界地图、约定时间线、网络使用率等。你可以通过运行的R实例来对其进行集成,然后利用其复杂的统计分析和预测分析。

民主党还是共和党?一张弦图说明美国历任总统的阵营

5. 小型的大数据设计

Tablesaw是一个包含了数据工具和以列(column)为主要存储形式的响应式内存数据表格插件。它围绕着没有谁愿意为小型任务进行分布式分析的理念而设计,你可以在一台单独服务器上使用一个200万行的表格进行交互性的工作。

你可以使用Tablesaw来演示呈现的布局、数据优先级或者为用户提供数据显示与交互的一系列扩展控制。在Tablesaw中,你可以导入来自RDBMS和CSV文件的数据,添加或者移除列、执行示图,通过压缩的柱状储存格式来减少表格的操作和存储。

6. 键值存储

Chronicle Map是用于存储内存键值的插件。它主要面向诸如贸易和金融市场应用这一类低延迟和多进程应用程序。这个代码库专注于读写查询的平均延迟,它能够让你编写与服务器中硬件执行线程数量相当的查询。

这个插件的主要用例是可在单独的服务器(比如Redis)上移除那些缓慢的键值存储以及通过类似于JVM-centric的解决方案来对其加速。

7. 负载研究

Gumshoe可以让你能够监控应用程序的性能统计。使用它,你可以精确的找到代码的行数并获取调用堆栈及单个堆栈框架的相关统计数据。这意味着你能够分析你电脑资源的使用情况(TCP、UDP、文件系统或处理器利用率)

这个代码库支持屏幕截图、过滤以及生成可视化的数据统计,并且能够给予你关于火焰图和根图(flame and root graphs)的直观视图。如果你还想要寻找关于应用程序的更多细节,你还可以在捕捉或者可视化的时候对堆栈框架进行过滤,并在运行时进行改变。

8. Java音乐器

SoundSea可以让你通过其内置的元数据和音乐集搜索和下载歌曲。当你在搜索某一个歌曲时,SoundSea会寻找iTunes上的相关元数据和音乐集。如果拥有超过一首可用的结果,你可以从中再筛选需要的那一个。

歌曲的下载来自于Pleer.com,你可以通过高,低或者VBR比特率来进行过滤。如果你比较幸运,你甚至可以立刻下载作为最终结果的第一个搜索结果。此外,它还拥有一个迷你播放器,无需重载音乐库就可以简单倾听歌曲。

9. 检测内存泄露

LeakCanary是一个可帮助你阻止内存泄露的开源库,你可以用它来构建调试检测Java内存泄漏(以及Android)。

在你安装了LeakCanary之后,你可以通过设置使检测到内存泄露时进行自动的通知显示。该插件另一个用途是通过建立智能插脚(smart pins)检测某些对象是否已经被垃圾回收。

10. 多维数组

ND4J是一个开源的代码库,它将来自于Python社区的直观科学计算工具带到了JVMs中。它主要运用于生产环境,因此它拥有运行快速且内存需求小的特点。通过它的使用,工程师们找到了一种将算法和接口导入其它Java和Scala库的简单方法。

作为能够提供通用的n维数组对象,包含GPUs、线性代数、信号处理等功能的多功能平台,ND4J集成了Hadoop、Spark以及它们的模仿流行Python数学库Numpy语义的API接口。

 

本文翻译自dzone.com

展开阅读全文

10值得关注的优秀CSS框架

11-11

cssrnrn 大多数做过网页设计的都知道“CSS框架”,而且肯定有很多设计师已经开始在作品中使用CSS框架。rnrn 就像其他编程语言一样,CSS也可以把一些重复使用的代码整合起来,这样可以减轻很多的工作量。rnrn 恰当地利用CSS框架可以缩短开发时间,不过话说回来,如果选错了CSS框架胡乱用于实际开发中,必然会适得其反。rnrn 下面介绍的是一些值得深入研究的开源CSS框架,你可以通过搜索轻易地获取源代码。rnrn rnrn 1.Blueprint:rnrnrnrnBluepring 包含了方便实现浏览器兼容的reset css。另外,它还包含了在网页开发中经常用到的很多外部工具和模板。rnrn rnrn2.960 Grid Systemrnrnrnrn又一个值得深入研究的CSS框架,提供的源文件包含了Firework、Photoshop、Inkscape等等的模板,可以拿来随手即用,PSD文件中已经预置了参考线,可以为设计师节省不少时间。rnrn rnrn3.Tripoli FrameworkrnrnTripoli可以支持几乎现有的所有浏览器,甚至是IE5,包含了一些基础css库,和一些封装过的CSS插件,比如:Layout、Visual、Type、Negative。rnrn rnrn4.YAML - Yet Another Multicolumn LayoutrnrnYAML是一款开发文档齐全、非常可靠的框架,参照它给出的PDF文档和官方网站上的示例可以很轻松地上手,它也提供很多开发中可以利用的工具,比如李咏YAML Builder可以构造一个机遇YAML的CSS布局实例。rnrn rnrn5.YUI Grid CSSrnrnYUI Grid CSS不仅支持固定宽度的布局实现还支持不定宽度的布局,这也是它比其他框架更为灵活的地方,你可以下载YUI的cheat sheet和官方网站的YUI Grids Builder来快速上手使用YUI Grids CSS。rnrn rnrn6.BlueTriprnrnrnrnBlue Trip区别与其他框架的特点是它非常有特色而且十分美观,它的官方网站上有完整的开发文档和demo。rnrn rnrn7.Content With StylernrnrnrnConten With Style是一款固定宽度布局的CSS框架,包含了一系列的布局示例比如,一列垂直导航、两列垂直导航等等。rnrn rnrn8.Elastic CSS FrameworkrnrnrnrnElastic提供了用声明式语言来定义布局结构和行为,这个框架还刚刚起步,最好的Demo就是它的官网本身。rnrn rnrn9.Molio CSS/HTML TemplatesrnrnMollio的开发始于IE7暴露出很多渲染的问题,它可以作为网站布局的参考,特别适合CSS初学者。rnrn rnrn10.SenCSSrnrnrnrnSen并没有提供布局方面实例,但是有一些类似baseline, fonts, paddings, margins的css可利用,它包含了一个开发版本和一个发布版本。 rnrn其他的一些CSS框架,可能你也会喜欢: rnrnWYMstylernCSS-boilerplaternTypogridphyrnCleverCSSrnLogicssrn rnrn选择一框合适的CSS框架不管对学习CSS还是实际开发都是非常有用的,熟悉更多的框架就可以通晓这些框架设计和实现的可鉴之处,提高CSS框架设计水平之日可待。rnrn本站文章如无特殊说明均为原创,转载的朋友请保留文章链接和出处:rn本文链接:http://jsssc.cn/10-promising-css-framework-that-worth-a-look/ 论坛

值得关注的TOMCAT的问题

10-15

我昨天在我的机器的进程里面就发现了有tomcat.exe 可是我并没有启动它,而且直接结束进程不行---拒绝访问,我只能把TOMCAT卸载了,好象好了。可昨天安装完后,毛病又发了,而且启动TOMCAT都启不了的,报错如下: 请问大家有没有哪位碰到过类似的问题?rnrnrnCatalina.start: LifecycleException: null.open: java.net.BindException: Addressrn already in use: JVM_Bind:8080rnLifecycleException: null.open: java.net.BindException: Address already in use:rn JVM_Bind:8080rn at org.apache.catalina.connector.http.HttpConnector.initialize(HttpConnernctor.java:1130)rn at org.apache.catalina.core.StandardService.initialize(StandardService.jrnava:454)rn at org.apache.catalina.core.StandardServer.initialize(StandardServer.javrna:553)rn at org.apache.catalina.startup.Catalina.start(Catalina.java:780)rn at org.apache.catalina.startup.Catalina.execute(Catalina.java:681)rn at org.apache.catalina.startup.Catalina.process(Catalina.java:179)rn at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)rn at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.rnjava:39)rn at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccesrnsorImpl.java:25)rn at java.lang.reflect.Method.invoke(Method.java:324)rn at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:243)rn----- Root Cause -----rnjava.net.BindException: Address already in use: JVM_Bind:8080rn at org.apache.catalina.connector.http.HttpConnector.open(HttpConnector.jrnava:950)rn at org.apache.catalina.connector.http.HttpConnector.initialize(HttpConnernctor.java:1128)rn at org.apache.catalina.core.StandardService.initialize(StandardService.jrnava:454)rn at org.apache.catalina.core.StandardServer.initialize(StandardServer.javrna:553)rn at org.apache.catalina.startup.Catalina.start(Catalina.java:780)rn at org.apache.catalina.startup.Catalina.execute(Catalina.java:681)rn at org.apache.catalina.startup.Catalina.process(Catalina.java:179)rn at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)rn at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.rnjava:39)rn at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccesrnsorImpl.java:25)rn at java.lang.reflect.Method.invoke(Method.java:324)rn at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:243)rnrn 论坛

没有更多推荐了,返回首页