beego整合go-bindata

最近蚊子在学习beego,beego是一个开源的golang web开发框架。具体beego相关文档,请移步官方网站。网站开发完成,自然就需要涉及到打包发布的过程。但在看了beego的打包发布后发现,beego并没有将静态文件编译到生成的二进制文件中。对于大型的网站来说,静态文件和二进制分离固然好,可以引用nginx, 单独服务静态文件同时反向代理go动态内容。可对于只有一页的工具类页面,总觉得怪怪的,

以下内容引用自beego文档

发行部署

Go 语言的应用最后编译之后是一个二进制文件,你只需要 copy 这个应用到服务器上,运行起来就行。beego 由于带有几个静态文件、配置文件、模板文件三个目录,所以用户部署的时候需要同时 copy 这三个目录到相应的部署应用之下

beego自身还有个一个工具叫“bee“

bee 工具是一个为了协助快速开发 beego 项目而创建的项目,通过 bee 您可以很容易的进行 beego 项目的创建、热编译、开发、测试、和部署。

其中bee工具有个命令是bale

bale 命令

这个命令目前仅限内部使用,具体实现方案未完善,主要用来压缩所有的静态文件变成一个变量申明文件,全部编译到二进制文件里面,用户发布的时候携带静态文件,包括 js、css、img 和 views。最后在启动运行时进行非覆盖式的自解压。

Continue reading “beego整合go-bindata”

使用golang的net/smtp包发送邮件

SMTP是一种将邮件从一端发送到另一端的一种机制。其工作在TCP/IP模型的应用层。有时使用TLS或SSL来建立终端系统之间的安全连接。

当SMTP客户端有消息要发送时,其会建立到SMTP服务器的双向传输通道。连接建立后,客户端启动邮件传送事务,该事务由一系列发送到服务器的命令构成。服务器回应每条消息。回应表明命令是否被接受,或者需要额外的数据或是否有任何错误。

这是一个简单的SMTP交互如何完成(来源维基百科)。

Continue reading “使用golang的net/smtp包发送邮件”

创建新的独立screen会话执行命令

screen命令想必linuxer都知道并用过,对于那些想要放在前台跑又不想在terminal关掉的时候退出的应用很有用,最近wenzi就遇到一个新需求,我在用aws的cloud-config配置服务器自启动执行脚本的时候,希望在机器初始化之后,紧接着就跑一个脚本。

而且这个脚本我又不想使用nohup的方式跑,于是乎我就想到了screen,经过查看manpage,果然找到了好办法,既能使用screen多次连接的功能,又可以用screen命令直接运行命令并自动退出会话 Continue reading “创建新的独立screen会话执行命令”

MMDrawerController搭配storyboard使用详解

MMDrawerController是一个iOS抽屉式导航控件,支持自定义的过渡动画(滑动,滑动和缩放等)来展示或者隐藏“抽屉”。官方网站:https://github.com/mutualmobile/MMDrawerController

看过MMDrawerController源码和demo的人应该都知道,通篇都是找不到一个storyboard文件或者xib文件的,所有功能实现都是代码。按讨论组里作者的意思,这样更容易在大型项目中使用,可是对于我们个人初中级的开发者来说就有些许的不方便了,大神级的人物完全可以忽略。 Continue reading “MMDrawerController搭配storyboard使用详解”

sinatra使用mysql做为数据库

sinatra,一个轻量级的ruby web框架。如果要写一个不怎么复杂的web小应用,使用这个就在适合不过了。

最近蚊子就自己尝试着写一个小应用,结果在使用mysql这块犯了愁,正常情况下,ruby程序调用mysql还是很容易的,只需要这样做就行了

Continue reading “sinatra使用mysql做为数据库”

脚本分享–删除指定目录下过期文件

这两天用python写了一个删除指定目录下过期时间的脚本。也可能是我初学python,对python还不够熟习,总觉得这个脚本用shell写应该更简单也更容易些。

就功能上来说,该脚本已经实现了我想要的效果,不过该脚本还不够通用性,还有更多可以完善的地方。目前该脚本在python2.4下运行良好。同时,蚊子在脚本中加入了对python版本的判断,理论上2.7下也应该可以正常使用。有环境的朋友可以帮忙测试一下。

Continue reading “脚本分享–删除指定目录下过期文件”

perl printf函数[转]

蚊子最近在写网络tcpping测试的脚本,最终输出结果需要格式化好入库,于是学了一下perl中printf的用法,特此记录下来,以免忘了。

printf函数可以格式化输出字符串
用法:

printf FILEHANDLE FORMAT, LIST

printf FORMAT, LIST

例如:

printf函数先格式化字符串再输出到指定文件或当前缺省文件中,如:
printf OUTFILE (“You owe me %8.2f”, $owing);
此语句取出变量$owing的值并替换掉串中的%8.2f,%8.2f是域格式的例子,把$owing的值看作浮点数。 Continue reading “perl printf函数[转]”

shell基础–带条件的参数替换

这次我们来讨论一下变量的求值运算。变量求值运算的结果取决于该变量的值是null还是一个数值。shell的这个特性被称为参数替换。Bourne shell也有这个特性。变量求值运算的一般形式为:

${<var>:<opt><stg>}

上式中,<var>表示一个变量,后面跟一个冒号(:),冒号后面的<opt>是可选项,它是+、-、=、?四个符号中的任一个;符号后面又跟一个字符串<stg>。除了一种例外情况外,参数替换不会改变变量本身的值,但会影响变量的求值运算结果。变量的求值运算有四种方式:

+可选项

这种方式下,如果变量var已经定义且是一个非空字符串,则对变量var的求值运算结果为stg。常利用这个可选项,当变量值为非空时,把命令的结果赋给这个变量,并回显一个消息:

如果ls命令找不到任何文件,则它不会回显任何消息,在这种情况下,变量found为一个空值。当然当ls命令至少找到一个文件时,则回显”This directory is not empty”信息。 Continue reading “shell基础–带条件的参数替换”

eclipse安装shelled错误处理

蚊子在上篇《eclipse支持shell和perl开发》介绍了如何通过添加插件来让eclipse成为shell的开发环境。

在windows下,我很顺利的就把shelled安装上了,我使用的是Eclipse Classic 3.7,下载地址http://www.eclipse.org/downloads/

但今天我在linux下的eclipse安装shelled的时候,却报有个关联包找不到,错误类似如下

Continue reading “eclipse安装shelled错误处理”