在MAC上配置Iterm2和zhs


前两天剁手入了MBP哈哈,那个跟了我快五年的老Dell终于可以退休了,MBP用起来简直不要太爽,我现在已经可以完全的脱离windows了,因为OS X是基于unix的,所以一些命令也是可以在上面执行的,当然也支持终端,奈何默认终端实在是太丑没法用,于是在网上找了下美化教程,下面整理分享下。

首先安装HomebrewHomebrew是Mac下的一个套件管理器,可以理解为ubuntu下面的apt包管理器。

在终端下面输入

  /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/m[......]

Read more

基于python的Dropbox,FTP上传下载工具


最近忍痛买了Pythonista这个APP,可以在iPhone上面跑python程序,简直不要太high,常用的库都内置了,如果没有你想要的库的话可以在电脑上用pip安装,之后传到手机上就好了,因此写了使用Dropbox和FTP上传,下载的工具,这样可以同步代码到手机上,ok,下面放出代码. 首先是dropbox的

#!/usr/bin/env python
# encoding: utf-8

"""
@version: ??
@author: liangliangyy
@license: Apache Licence 
@contact: liangliangyy@gmail.com
@[......]

Read more

C#中泛型的协变和逆变


今天读CLR Via C#时看到了泛型的协变和逆变.泛型倒是熟悉.协变和逆变还真没怎么注意过.回来之后翻了下资料才慢慢明白了.做下记录.

可变性的类型:协变性和逆变性
可变性是以一种类型安全的方式,将一个对象当做另一个对象来使用.如果不能将一个类型替换为另一个类型,那么这个类型就称之为:不变量.协变和逆变是两个相互对立的概念.

先看看MSDN中的协变和逆变的概念

协变和逆变都是术语,前者指能够使用比原始指定的派生类型的派生程度更小(不太具体的)的类型,后者指能够使用比原始指定的派生类型的派生程度更大(更具体的)的类型。

也就是说.

如果某个返回的类型可以由其派生类型替换[……]

Read more

一个基于MVC的博客系统


这个东西写了也蛮久了.一直都是有时间就写点有时间就写点.或者是想到什么地方可以优化或者是可以使用新的组件(纯粹为了学习,场景不一定适用)来完成某些功能.就开始修改代码.到现在也算有了个基本的样子了吧.下面大概介绍下.

界面部分

界面是使用的Bootstrap框架来完成的.在网上找了个模版然后直接套用了(毕竟前端渣…). 后台部分的文章编辑和创建是使用的ckeditor来做的.后台界面也是套用的模版.其他的就没啥说的.

功能部分

用户部分

  1. 使用新浪微博登录.QQ登录.(由于微信部分需要企业认证.所以这部分没有)
  2. 新浪微博,QQ和系统帐号帐号绑定.
  3. 权限控制(可以精确到每个Acti[……]

Read more

win10启用IIS


最近手贱将系统升级到了WIN10.发现iis需要重新注册.下面是方法.
我使用的是vs2015.用管理员权限打开vs2015开发人员命令提示.输入下面命令并回车
dism /online /enable-feature /all /featurename:IIS-ASPNET45

Autofac使用Castle.DynamicProxy实现AOP


根据官网的文档写了一些测试代码.分享给大家.

首先使用nuget安装.在包管理器中搜索Autofac.Extras.DynamicProxy2并安装就好了.
第一种方式.直接在接口中指定类型.
下面是代码.
接口:

[Intercept(typeof(CallLog))]
public interface ICategoryService  
{
    List<string> GetCategoryList();
    Task<List<string>> GetCategoryListAsync();
}

实现类:

public class[......]

Read more

c#使用NPOI导入excel


使用NPOI可以很方便的处理excel.记录下导入excel生成DataTable的方法.

public static DataTable ExcelToDataTable(string fileName, bool isFirstRowColumn, string sheetName = null)
    {
        ISheet sheet = null;
        DataTable data = new DataTable();
        FileStream fs = null;
        IWorkbook workbook = null;[......]

Read more

使用gunicorn和nginx,Supervisor部署Django项目


uwsgi部署django怎一个蛋疼了得啊.配置好久都没有成功.照着官方文档做还各种错误.烦死了简直.Google的时候发现了gunicorn,看了下文档.天呐,感觉我的天空星星都亮了~~~

gunicorn可以很方便的配置django项目.配合Supervisor可以很简单的解决.下面介绍下.

首先,需要安装.这个很简单.直接pip安装下就好了 pip install gunicorn ubuntu安装supervisor使用下面命令 sudo apt-get install supervisor

安装完成之后,就可以在django项目目录中执行 gunicorn project[......]

Read more