fedora23 编译 WizNote2.3.3

前期环境准备

  1. 为了方便操作,请先切换到root环境下!
  2. 前期的gcc,make 等编译环境应该默认你们有了。

下载WizNote 源码

  1. 打开官网应该都知道源码的地址放在哪,如果你会点git操作就更好了。
    地址:https://github.com/WizTeam/WizQTClient
  2. 下载回来解压,然后cd进目录,直接执行./linux-package.sh 进行编译安装。
  3. OK,可以吗?反正我就是不行,报了一大堆问题,所以继续。

准备依赖环境

本次依赖环境所需是根据本次经验而成,如果有其他问题可以留言。

核心就是:缺什么装什么,有yum(dnf)就直接装,没有先找找有没现成的 rpm ,再没有就编译。所以不必惊慌。

以下是我所遇到的问题,如果同样问题的可以对号入座,如果不一样,可以留言,看到就回:

  1. 卡在了这,提示我找不到 这几个库文件。
    1
    2
    3
    4
    5
    cp /usr/lib/x86_64-linux-gnu/libQtWebKit.so.4 ./
    cp /usr/lib/x86_64-linux-gnu/libQtGui.so.4 ./
    cp /usr/lib/x86_64-linux-gnu//libQtXml.so.4 ./
    cp /usr/lib/x86_64-linux-gnu/libQtNetwork.so.4 ./
    cp /usr/lib/x86_64-linux-gnu/libQtCore.so.4 ./

团队建设-Maven 仓库 Sonatype Nexus 的搭建

PS:新瓶装老酒,都是些老东西,写写提提神。

协作是团队开发和个人开发最主要的区别,除了日常必要的磨练和沟通之外,最重要的是如何定一个合理的规矩,用来解决团队所可能出现的冲突,且慢慢积累团队技术底蕴和文化。

Sonatype 私有库

日常开发中Maven 已经必备!

不过一般个人开发也不用配置什么,直接使用Maven 中央库即可,就算有什么私人或没传到中央库的jar文件,也可以使用各种方式加入到项目中来,所以不太必要有什么自己的私有库。

不过团队开发中,有些企业内部有自己不宜公开的开发框架或基础框架等,如果上面个人的解决方案,可能是生成一个Jar文件扔到项目里面,不过如果涉及到基础框架更新或维护,这可能就不太理想了,所以有一套团队或企业内部的私有库,就显的很重要了。

好了,完毕!不罗嗦了。

PS2:英文文档很全,如果没什么压力的话,可以直接看官方文档。 :)

地址:https://books.sonatype.com/nexus-book/3.0/reference/index.html

php 用nginx实现拦截器的思路

首先感谢一老友提供的思路。
接着~,
PHP现有项目上发现一个问题,上传到项目的文件随意用了随机字符串,但只有登陆用户把这个地址发出去,其他人就可以直接访问或下载该文件。
比如:http://wwww.test.com/upload/xxxxx.xls
可以直接下载下来,因为是直接存在的文件。
此时要做限制,思路就是拦截下 /upload/ 这个路径,用Java的话就是加个拦截器,PHP的话没做过这个,友人提供的思路用nginx实现。
用nginx做匹配拦截,然后转发到对应的php方法,将之后的xxxxx.xls 当作参数传,如下:

1
2
3
4
5
location  ~ /upload/ {
rewrite ^/upload/(.*)$ /index.php/Filter/get_img?path=/$1 last;
break;

}

此时在 PHP做处理即可。
记录下~

有感而发 , 前端该如何与Java服务端配合开发

Java 最烦的的几点就是安装麻烦,配置麻烦,运行麻烦。
其中每一点只要遇到问题就进行不下去。
这点相比PHP真的差远了,只要安装一个XMAPP,一条龙服务到位,而且文件不用编译,不用重启,既改既生效。
工作这几年下来,与前端的分工总不是那么理想,前前后后尝试了好几种方式,都是不怎么太理想,最近所在的公司是让前端安装了一模一样的开发环境,Eclipse!,然后所有的环境Java人员帮配好,但是一旦有修改文件,而又不是Eclipse里面修改(现在前端习惯使用 sublime text ),就不会自动同步对应的容器中,要回到Eclipse中刷新才生效,繁琐的多余的流程,让前端也很不爽。

java amr格式转mp3格式(完美解决Linux下转换0K问题)

问题

因项目需求,需要将 amr 格式的文件转成 mp3格式。
网络上提供的思路大多是使用jave-x-x.jar。
这个包确实有用,因为开发时是在windows环境中,测试转换虽然报了异常:

1
it.sauronsoftware.jave.EncoderException:   Duration: N/A, bitrate: N/A

但也确实转换成功了,可以播放。
可是一旦部署到Linux环境当中,不是转换失败,就是转换的文件为大小 0 k。百思不得其解。

[然并卵系列] 使用工具或软件时,你知道它们的特点,优缺点吗?

今天去某点公司面试,受了点打击,自以为知识面很广,方方面面的都接触过一些,结果在面试的时候,一些简单的概念都说不清楚。比如:Nginx你说快,为什么快?Nginx和Apache之间有异同点? Tomcat的通讯模型?Hibernate优缺点在哪?

每个工具、软件和框架,不管是开源闭源都好,它们总会因为某些原因或理念才会被设计出来,这些是他们的核心。

1、他们为了解决什么问题?
2、同类中有相同的产品吗?
3、如果有,他们的侧重点有什么不同?
4、你知道他们的原理吗?.

我们可以不知道代码具体是怎么实现的,但上面提到的每个问题,包括原理,你都自问一遍,你有去关注过吗? 我们为了用而用,用到最后,你知道为什么要用吗?因为大家都用吗?

被打击也同样学习到很多。面试也是检验自身的一种方式,虽然有的公司面试官很坑,但不妨碍我们寻找找好的公司,好的面试官啊。

再次感谢某点的技术总监和人力资源总经理,经理是很好的说客!人也好看!!

Tomcat 多实例部署脚本-下

###思路
上一篇Tomcat 多实例部署脚本 大概说了些多实例的一些方案,现在这篇就纯粹的说自动化脚本。
轻拍。

####思路(基于上篇博文的基础):

0、建立一个新目录, mkdir default_template
1、在Tomcat中的将所需的配置文件取出来,放到这个新目录中
2、修改 server.xml 文件,将所有所需手工替换的用占用符占用
3、在conf 目录中,建立一个./conf/Catalina/localhost/ROOT.xml 文件(注1 说明为什么建立这个文件)
4、在default_template目录中建立:logs,temp,work 等三个为目录
5、在目录中建立启动和停止实例的脚本,参考上篇博文,(见注2)
6、使用脚本,替换此目录中所有的占位符,替代手工操作

注1:Tomcat中,如果要使用域名的根目录访问,需要将项目文件放在ROOT目录中,否则只能采用二级目录访问,而建立此ROOT.xml 文件,则可以任意指定,此文件中仅一句:<Context path="" docBase="webapps_dir" />,其中path若为空,则默认为根目录没,具体可以下载此文件查看。 当然,还有其他的方式,只不过个人认为这种比较灵活

注2:或者直接下载此文最下面提供的示例

Tomcat 多实例部署脚本

###单实例部署的麻烦

掀桌!单实例部署,TMD的每次重启所有项目都被影响!!

单实例部署时,不管是直接放在webapps下,还是增加配置文件./conf/server.xml 中的<host> ,关闭和启动都是所有项目都受到影响 ,特别一些启动时间比较长的项目,等待很艹蛋,更特别的在于如果没有热部署或者热部署失败时,修改一个class或配置文件,重启的效率能让你掀桌!!

###多实例的几种方式

1.多Tomcat软件实例
2.增加 CATALINA_BASE
3.其他的先略过不表

Y,多实例不可避免,多实例的两种方式上面说了。

####1.最简单就是多Tomcat,
部署时拷贝一个Tomcat,然后修改端口。

1
2
3
4
5
6
7
8
9
10
11
<!-- 用来停止Tomcat的端口(8005),需改 -->
<Server port="8005" shutdown="SHUTDOWN">
...
<!-- Http 访问端口(8080),续改 -->
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />

....
<!-- Ajp端口(8009) ,负责和其他的HTTP服务器建立连接。没用到就注释掉。 -->
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
<Server>

那些年一起写过的博客

因为域名过期忘记续费,然后就没有然后了。
服务器的资料备份的零零散散的,之后域名又被我重新买了回来,幸运!
但是资料基本都丢失了。
今天查自己域名的时候,突然发现一个网站居然还有我域名的历史快照。
感动!虽然只有两张。