[转载]Groovy简洁开发,我用到的简洁之处 - 几番思念 - 博客园

mikel阅读(889)

[转载]Groovy简洁开发,我用到的简洁之处 – 几番思念 – 博客园.

最近一直在用Groovy开发以前的项目,一边学习一边开发,工具用的是IDEA(欲哭 无泪,不熟悉真是搞死人)…….由于我做的是服务层,是为公司其它项目做服务支撑的,所以就没有用框架,只有一些servlet与dao,下面写 下我体会到的groovy的好处。

1、def

def定义无类型的变量,我的理解就是根据你所赋值的进行自动转换。其实这点个人感觉对于用惯了java语言的我来说并没有多大的方便。在这里面我还走过误区,如下:

1
2
3
4
5
6
7
8
9
def stateStr = request.getParameter("state")//state传1
def state=0
state = stateStr
if(state==1){
      println "1"
}
if("1".equals(state)){
    println "2"
}    

其实这个最后打印出来的是“2”,原先我写的是上面那个if,还以为def等自动匹配,看来没这么智能

2、是否为空判断

1
2
3
4
5
6
7
8
9
10
11
12
def stateStr = request.getParameter("state")
if(stateStr){
        println "stateStr不为空"
}else{
        println "stateStr为空"
}
//当然也可以用!
if(!stateStr){
        println "stateStr为空"
}
   

这个确实方便

3、json、xml解析

1
2
3
4
def root = new JsonSlurper().parseText(allStr)
println "======root.access_token======"+root.access_token
codeToAccessToken = root.access_token
codeToOpenid = root.openid

这个模块里面一个服务是微信消息服务,微信服务器给我返回的json格式字符串allStr,一句话就可以解析这个json,xml类似

4、SQL

1
2
3
4
5
6
7
8
9
10
11
void insertAccessToken(def access_token){
        def create_time = new Date()
        SQL db = new Sql(Commons.getDatasource())
        println db.execute("insert into access_token(access_token,create_time) values(${access_token},${new Date()})")
    }
    def getAccessToken(){
        Sql db = new Sql(Commons.getDatasource())
        def row = db.firstRow("select * from access_token order by id desc")<br>        println row.id
        row
    }

这就是groovy.sql的一部分用法,其中在String中用${}也是很爽的

5、循环、遍历

1
2
3
4
5
6
7
data.eachWithIndex {it,i ->
            if(i==0){
                dataBuff.append("{name:'${it.get("trans_name")}',y: ${it.get("trans_amount")},sliced: true,selected: true},")
            }else{
                dataBuff.append("['${it.get("trans_name")}',${it.get("trans_amount")}],")
            }
        }
1
2
3
4
5
for(i in 1..15){
            nowCl.add(Calendar.DAY_OF_MONTH,1)
            year = nowCl.get(Calendar.YEAR)
            list.add("${year}-${month}-${day}")
        }

还有each等,总的来说确实简便了许多

刚接触groovy,以后要学习的地方还有很多,不断记录,不断积累,不断进步

[转载]Android数据库升级不丢失数据解决方案 - lsc183 - 博客园

mikel阅读(1070)

[转载]Android数据库升级不丢失数据解决方案 – lsc183 – 博客园.

Android开发中,SQLite至关重要,增删查改不多说,难点在于,1,并发,多个线程同时操作数据库。2,版本升级时,如果数据库表中新加了个字段,如何在不删除表的情况下顺利过渡,从而不丢失数据。

数据库操作建议用ORM框架,简单高效。这里推荐xUtils,里面包含DBUtils。github地址:https://github.com/wyouflf/xUtils。关于DBUtils,它是这样介绍的:

  • Android中的orm框架,一行代码就可以进行增删改查;
  • 支持事务,默认关闭;
  • 可通过注解自定义表名,列名,外键,唯一性约束,NOT NULL约束,CHECK约束等(需要混淆的时候请注解表名和列名);
  • 支持绑定外键,保存实体时外键关联实体自动保存或更新;
  • 自动加载外键关联实体,支持延时加载;
  • 支持链式表达查询,更直观的查询语义,参考下面的介绍或sample中的例子。

用单例方式获取数据库实例。

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
  static DbUtils db = null;
  public static DbUtils getDb(Context context) {
    if (context == null) {
      context = DoctorApplication.getInstance();
    }
    if (db == null) {
      db = DbUtils.create(context, "xUtils.db");
    });
    db.configAllowTransaction(true);
    return db;
  }
    db.configAllowTransaction(true);
    return db;
}
    db.configAllowTransaction(true); 标示开启事务,这样多个线程操作数据库时就不会出现问题了。

数据库升级解决方案。首先创建一个实体类,对应数据库中的表。

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
@Table(name = "User")
  public class User {
    private int id; //主键ID,必须
    private String uid;  
    private String type;
    public int getId() {
          return id;
      }
       public void setId(int id) {
            this.id = id;
      }
    public String getType() {
      return type;
    }  
    public void setType(String type) {
      this.type = type;
    }
    public String getUid() {
      return uid;
    }
    public void setUid(String uid) {
      this.uid = uid;
    }
  }

 

如果由版本1到版本2中,User表中新增了个字段title,如何在不删除表User的情况下顺利过渡呢,我们知道,如果不作处理,数据库就会报错,没有列title。我们修改数据库的创建方式,实现升级接口。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
db = DbUtils.create(context, "xUtils.db", 3, new DbUpgradeListener() {
  @Override
  public void onUpgrade(DbUtils db, int oldVersion, int newVersion) {
    if (newVersion > oldVersion) {
      updateDb(db, "User");
    }
  }
  });

 

  updateDb方法中比较类的属性和之前版本数据库表中的字段,如果属性没有对应到字段,则添加相应的字段。

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
53
54
55
56
57
58
59
60
61
private static void updateDb(DbUtils db, String tableName) {
try {
Class<EntityBase> c = (Class<EntityBase>) Class.forName("com.henizaiyiqi.doctorassistant.entitis." + tableName);// 把要使用的类加载到内存中,并且把有关这个类的所有信息都存放到对象c中
if (db.tableIsExist(c)) {
List<String> dbFildsList = new ArrayList<String>();
String str = "select * from " + tableName;
Cursor cursor = db.execQuery(str);
int count = cursor.getColumnCount();
for (int i = 0; i < count; i++) {
dbFildsList.add(cursor.getColumnName(i));
}
cursor.close();
Field f[] = c.getDeclaredFields();// 把属性的信息提取出来,并且存放到field类的对象中,因为每个field的对象只能存放一个属性的信息所以要用数组去接收
for (int i = 0; i < f.length; i++) {
String fildName = f[i].getName();
if (fildName.equals("serialVersionUID")) {
continue;
}
String fildType = f[i].getType().toString();
if (!isExist(dbFildsList, fildName)) {
if (fildType.equals("class java.lang.String")) {
db.execNonQuery("alter table " + tableName + " add " + fildName + " TEXT ");
} else if (fildType.equals("int") || fildType.equals("long") || fildType.equals("boolean")) {
db.execNonQuery("alter table " + tableName + " add " + fildName + " INTEGER ");
}
}
}
}
} catch (Exception e) {
}
}

 

这样以后如果表中新增了字段,只需把数据库版本号加1,数据库就会自动升级一次,就能保证数据正常了。

[转载].NET平台机器学习资源汇总,有你想要的么? - asxinyu - 博客园

mikel阅读(829)

[转载].NET平台机器学习资源汇总,有你想要的么? – asxinyu – 博客园.

   接触机器学习1年多了,由于只会用C#堆代码,所以只关注.NET平台的资源,一边积累,一边收集,一边学习,所以在本站第101篇博客到来之际,分享 给大家。部分用过的 ,会有稍微详细点的说明,其他没用过的,也是我关注的,说不定以后会用上。机器学习并不等于大数据或者数据挖掘,还有有些区别,有些东西可以用来处理大数 据的问题或者数据挖掘的问题,他们之间也是有部分想通的,所以这些组件不仅仅可以用于机器学习,也可以用于数据挖掘相关的。

按照功能把资源分为3个部分,开源综合与非综合类,以及其他网站博客等资料。都是能够在.NET平台使用的。谢谢大家支持,这些组件我日后肯定也会研究其使用,到时候有心得再分享上来。如果有兴趣,可以关注本博客。

本文原文地址:http://www.cnblogs.com/asxinyu/p/4422050.html

1.开源综合类

1.1 AForge.NET

  AForge.NET是一个专门为开发者和研究者基于C#框架设计的,他包括计算机视觉与人工智能,图像处理,神经网络,遗传算法,机器学习,模糊系统,机器人控制等领域。这个框架由一系列的类库组成。主要包括有:

AForge.Imaging —— 一些日常的图像处理和过滤器
AForge.Vision —— 计算机视觉应用类库
AForge.Neuro —— 神经网络计算库AForge.Genetic -进化算法编程库
AForge.MachineLearning —— 机器学习类库
AForge.Robotics —— 提供一些机器学习的工具类库
AForge.Video —— 一系列的视频处理类库
AForge.Fuzzy —— 模糊推理系统类库
AForge.Controls—— 图像,三维,图表显示控件

来自:http://baike.haosou.com/doc/1786119-1888850.html

官方网站http://www.aforgenet.com/

我个人认为这个是.NET平台机器学习和数据挖掘发展时间最长,最好,最全面的开源.NET组件之一。博客园有很多园友写过专门的使用文章。我本人也只是关注,还没有使用,因为方向和处理的问题不一样,暂时还没有实际应用。源代码,案例等都非常全面。

1.2 Accord.NET Framework

Accord.NET Framework是在AForge.NET基础上封装和进一步开发来的。功能也很强大,因为AForge.NET更注重与一些底层和广度,而 Accord.NET Framework更注重与机器学习这个专业,在其基础上提供了更多统计分析和处理函数,包括图像处理和计算机视觉算法,所以侧重点不同,但都非常有用。

官方网站http://accord-framework.net/

1.3 Math.NET

不管是机器学习还是数据挖掘,都与数学离不开关系,既然是在.NET平台,那么这个组件以后你也许用得上。Math.NET是.NET平台下最全面的数学计算组件之一,基础功能非常完善。我的博客有对这个组件的详细研究:http://www.cnblogs.com/asxinyu/p/4329737.html 。 当然更多的功能还得大家自己使用中发掘,毕竟提供了源代码。Math.NET初衷是开源建立一个稳定并持续维护的先进的基础数学工具箱,以满足.NET开 发者的日常需求。目前该组件主要分为以下几个子项目,该组件同时也支持Mono,而且支持的平台也非常广泛。Math.NET Numerics是核心功 能是数值计算。主要是提供日常科学工程计算相关的算法,包括一些特殊函数,线性代数,概率论,随机函数,微积分,插值,最优化等相关计算功能。详细的介绍 和使用可以参考本站的菜单“Math.NET”,查看目录。

官方网站http://www.mathdotnet.com/

1.4 Infer.NET

好吧,上面说的那些很强大,强大一方面是说包括的面广,一方面是代码,注释,资源,案例也很完善。如果说上面那些是大炮,那么我认为这个 Infer.NET就是战斗机,零零散散接触和研究,以及翻译它的文档代码已经有5个月了,时间越久,越感觉到它的火力之强大。我博客已经发表了2篇翻译 的文档:http://www.cnblogs.com/asxinyu/p/4329742.html,请关注。

Infer.NET是微软剑桥研究院基于.NET平台开发的一款机器推理组件,该组件的采用的是Microsoft Research License Agreement 授权,Non-Commercial Use Only.Infer.NET是一个概率图模型中(graphical models)用于运行贝叶斯推理机(Bayesian inference)的框架。如果对概率图模型或者贝叶斯推理的意义不了解,你可以参考一下相关资源文件,在Resources and References page页面。Infer.NET为各种应用程序所需要推理提供了先进的消息传递算法和统计程序。Infer.NET更关注与概率图编程或者贝叶斯理论的 相关应用。这个随机因素和不确定世界中的很多问题,都可以适用,所以他的强大一方面是专注,另一方面是提供的建模语言。与其他的组件不同,其他组件是算法 级,而Infer.NET是建模级别,附带了各种通用和常见的推理算法。可以通过简单的代码来创建模型,按照微软的话说是MSL建模语言,这也是这个组件 让我肃然起敬的地方,估计也只有微软的研究人员才会想到这么干一劳永逸的事情。

官方网站http://research.microsoft.com/en-us/um/cambridge/projects/infernet/default.aspx

1.5 numl

另外一个小巧的,包含比较多的机器学习算法类库,支持监督式和非监督式学习。支持很多常见的机器学习算法,文档资源还不错。包括 Cluster,KMeans,PCA,DecisionTree,KNN,NaiveBayes,NeuralNetwork等学习算法,内容也非常丰 富,功能强大,同时也包括一些数值计算的实现。这个组件个人认为没有以上的那么复杂,结构小巧合理,代码也很优雅。看看下面这段代码,很快就可以构建一个 决策树学习器进行预测:

复制代码
 1 var generator = new DecisionTreeGenerator();
 2 generator.Descriptor = Descriptor.Create<Tennis>();
 3 generator.SetHint(false);
 4 
 5 Tennis[] tennis = TennisData.GetData();
 6 
 7 var learned = Learner.Learn(tennis, 0.80, 1000, generator);
 8 
 9 IModel model = learned.Model;
10 double accuracy = learned.Accuracy;
11 
12 Tennis t = new Tennis
13 {
14     Outlook = Outlook.Sunny,
15     Temperature = Temperature.High,
16     Windy = false
17 };
18 
19 Tennis predictedVal = model.Predict(t);
复制代码

  numl的入门案例和文档比较全面,如果本身对算法比较了解,熟悉C#,那入门应该不是问题。并且可以通过组件本身构建和解决更加复杂的问题。

官方网站http://numl.net/

1.6 Alglib

  ALGLIB是一个跨平台的数值分析和数据处理函数库,该函数库包括开源版本和商业版本。它支持多种编程语言,如C++,C#,Pascal,VBA等,可以在多个操作系统平台上运行,如:Windows,Linux和Solaris。ALGLIB有以下特点:

(1)线性代数(包括矩阵分析);
(2)方程求解(线性和非线性);
(3)插值;
(4)最优化;
(5)快速傅里叶变换;
(6)数值积分;
(7)线性和非线性最小二乘拟合;
(8)常微分方程求解;
(9)特殊函数;
(10)统计(描述统计、假设检验);
(11)数据分析(分类、回归、神经网络);

官方网站http://www.alglib.net/

2.开源.NET平台非综合类

2.1 Adaboost算法

1.https://github.com/bgorven/Classifier

2.https://github.com/ElmerNing/Adaboost

2.2 Apriori算法

1.https://github.com/Omar-Salem/Apriori-Algorithm

2.https://github.com/simonesalvo/apriori

2.3 PageRank算法

https://github.com/archgold/pagerank

2.4 NativeBayes(朴素贝叶斯)算法

1.https://github.com/Rekin/Naive-Bayes-Classifier
2.https://github.com/ArdaXi/Bayes.NET
3.https://github.com/amrishdeep/Dragon
4.https://github.com/joelmartinez/nBayes

2.5 kmeans算法

http://visualstudiomagazine.com/articles/2013/12/01/k-means-data-clustering-using-c.aspx

3.其他资源与技术博客

【资源】108个大数据文档PDF开放下载-整理后打包下载,虽然是大数据的相关资料,主要是PPT等,但也有和机器学习有一点关系,需要的看看;

白话贝叶斯理论及在足球比赛结果预测中的应用和C#实现【附资料】 里面有贝叶斯相关的论文资料,文章本身对朴素贝叶斯的原理也介绍得非常清楚;

数据挖掘领域十大经典算法初探

机器学习10大经典算法

支持向量机通俗导论(理解SVM的三层境界)

从决策树学习谈到贝叶斯分类算法、EM、HMM

自然语言处理博客 ,包含的内容非常多,可能理论性有点强 http://www.52nlp.cn/

西北工业大学博导聂飞平博客:http://www.escience.cn/people/fpnie/index.html

一个机器学习数据挖掘的博客,有不少资源链接:http://www.zhizhihu.com/

http://mlg.eng.cam.ac.uk/mlss09/schedule.htm

一个机器学习资源集中平台  http://www.kernel-machines.org/software

算法杂货铺——分类算法之朴素贝叶斯分类(Naive Bayesian classification)

最大熵模型介绍

概率图模型

博客园Bobby0322的博客:http://www.cnblogs.com/Bobby0322/p/4052495.html 中的商务智能与数据挖掘应用系列文章:

  1. 《BI那点儿事》数据挖掘初探
  2. 《BI那点儿事》数据挖掘的主要方法
  3. 《BI那点儿事》浅析十三种常用的数据挖掘的技术
  4. 《BI那点儿事》数据挖掘与相关领域的关系
  5. 《BI那点儿事》Microsoft 关联算法
  6. 《BI那点儿事》Microsoft 聚类分析算法
  7. 《BI那点儿事》Microsoft 聚类分析算法——三国人物身份划分
  8. 《BI那点儿事》Microsoft 决策树算法
  9. 《BI那点儿事》Microsoft 决策树算法——找出三国武将特性分布,献给广大的三国爱好者们
  10. 《BI那点儿事》Microsoft 线性回归算法
  11. 《BI那点儿事》Microsoft 逻辑回归算法
  12. 《BI那点儿事》Microsoft 逻辑回归算法——预测股票的涨跌
  13. 《BI那点儿事》Microsoft Naive Bayes 算法
  14. 《BI那点儿事》Microsoft Naive Bayes 算法——三国人物身份划分
  15. 《BI那点儿事》Microsoft 神经网络算法
  16. 《BI那点儿事》Microsoft 顺序分析和聚类分析算法
  17. 《BI那点儿事》Microsoft 时序算法
  18. 《BI那点儿事》Microsoft 时序算法——验证神奇的斐波那契数列
  19. 《BI那点儿事》数据挖掘各类算法——准确性验证

4.我的100篇博客之路

从2009年8月1日注册博客园开始,已经有5年多的时间了。这是博客的第100篇正式随笔文章。在2015年元旦的时候,看着自己的博客很久 没有更新,只有40多篇文章,然后列出了一个写作计划,初期是至少完成高质量的文章50篇左右。而到现在只有4个月,没想到我几乎完成了全年的目标。当然 发表的50多篇文章中,我认为高质量和有意义的可能只有40篇,但丝毫没关系,至少还有很多时间。这些文章是对自己经历和知识的总结,也是一个提高。在这 100篇博客里程碑到来的时候,我简单的回顾了一下这100篇文章。

第1篇首日浏览量到1000的文章:

XCode使用记录—使用XCode自动向数据库插入测试数据(2012-04-25 09:11)

第1篇首日浏览量到3000的文章:

拥有自己的代码生成器—Newlife.XCode模板编写教程 (2012-05-11 08:35)

第1篇 上博客园头条的文章:

挑战ORM性能——Newlife.XCode下500万sqlite数据库的分页(2012-08-22 12:22)

第1篇 推荐超过60的文章:

【原创】开源Word读写组件DocX介绍与入门 (2013-02-22 10:35)  24

第1篇 推荐超过80的文章:

【5.1送礼】国内第一部Matlab和C#.Net混合编程视频教程【免费】 (2014-04-29 08:02)

第1篇 总浏览量超1.6万的文章:

【吐槽】VS2012的安装项目只能用InstallShield Limited Edition (2013-09-07 11:20)

在所有的100篇随笔中,有13篇是目录和链接汇总,不能算是写的随笔,还有9篇文章是刚开始来博客园的时候,还在学习,技术含量不高。但我也 没删除,毕竟是一段历史。加上有2篇关于比特币和源码的文章,准确的说不是我写的,大部分是@大石头的内容,还有2篇资源和百度吐槽是很随意临时写的,根 本没打算发表在首页,只是做一个记录。所以实际比较有技术一点的文章或者心得数量是73篇。这73篇文章中:

在个人认为还不错的文章中有至少15 篇上了博客园头条(包括“最多推荐”和“最多评论”以及“编辑推荐”)

1.白话贝叶斯理论及在足球比赛结果预测中的应用和C#实现【附资料】

2.你用过这种奇葩的C#注释吗?如何看待 (2015-04-17 10:04)

3.【原创】C#玩高频数字彩快3的一点体会 (2015-04-11 09:03)

4.【踩坑经历】一次Asp.NET小网站部署踩坑和解决经历 (2015-04-01 06:10)

5.【分享】博客美化(4)为博客添加一个智能的文章推荐插件 (2015-03-24 07:55)

6.【原创】Newlife.XCode的常见功能使用(一)查询与数据初始化 (2015-01-26 08:52)

7.【原创】开源Math.NET基础数学类库使用(13)C#实现其他随机数生成器 (2015-03-18 08:32)

8.【反传销】传销故事总结—如何尽可能保护自身和家人安全 (2015-03-09 07:37)

9.【反传销】春节一个短暂误入传销和脱身的真实故事以及对技术的思考 (2015-03-03 06:10)

10.App乱世,3721离我们有多远 (2015-02-10 09:24)

11.【原创】开源Word读写组件DocX介绍与入门 (2013-02-22 10:35)

12.【原创】C#开源轻量级对象数据库NDatabase介绍 (2013-02-20 09:35)

13.【原创】.NET开源压缩组件介绍与入门 (2013-03-05 07:59)

14.【5.1送礼】国内第一部Matlab和C#.Net混合编程视频教程【免费】 (2014-04-29 08:02)

另外还有一篇文章被博客园作为编辑推荐文章:

15.【原创】Matlab.NET混合编程技巧之直接调用Matlab内置函数

    总的来说,文章是非常高效和得到大家的认可的,虽然技术含量不是特别高级,但可能基础的技术更多的能引起共鸣吧。我想说的是,每一篇文章都是经过很用心的编辑和写出来的,结果也是非常理想的,得到了很多人的支持和理解,所以才有了如此高效的访问量和推荐以及评论。


如果您觉得阅读本文对您有帮助,请点一下“推荐”按钮,您的“推荐”将是我最大的写作动力!欢迎各位转载,但是未经作者本人同意,转载文章之后必须在文章页面明显位置给出作者和原文连接,否则保留追究法律责任的权利。

.NET技术爱好者,彩票分析预测

本文原始作者博客http://www.cnblogs.com/asxinyu

E-mail:1287263703@qq.com

互联网+下的域名市场的春天来了

mikel阅读(1055)

股市疯长的时候,域名市场也随着互联网+的风起,在这个台风来了猪都能飞的时候,没有个好域名的互联网公司都不好意思跟人打招呼,从小米到京东再到最近的腾讯的weixin.com的高价域名交易,让这个春天的季节里域名市场的交易的春天也来了。

再说最近的行情,域名当然是越短越好,不少高价成交的域名都是短域名,可也不是绝对的,双拼的也很有市场,作为投资者的米农们已经屯好了不少米,然后跃跃欲试的想卖个好价钱,对于后缀来说com依然是万众瞩目的,cn和最近风起的cc貌似市场也不错,毕竟域名是稀有资源,com卖高价,怎么cn和cc也不能少了价钱不是?!

域名投资有风险,对于不熟悉市场的还是谨慎入市,域名如果仅仅是为了投资,还不如自己建站来得实在,毕竟不能资源浪费,很多域名都在米农手中流通着,想要做高价的出售一时半会儿也很难。所以说想要注册域名还是本着建站的目的为好,卖不出不至于成了鸡肋,留不留都是痛。

又看到一篇关于O2O的文章《关于O2O的6个段子:你的项目是”狗屁”吗?》,摘要:

老刘说的没错儿。纵观14年留存至今的社区O2O,活下来的跑腿儿项目反而是送桶装水的,也许因为桶装水不只是“下楼拿一下儿”这么轻松。另外, 桶装水购买频率也比较高,用户几天以后买水的时候还想得起来几天前用的app,这和家电维修、装饰装潢之类两次使用隔了仨新手机的需求就太不一样了。

老刘居然是一个洞悉了O2O本质的男人,难怪满嘴狗屁。我顿时对他接下来要说的产生了兴趣。倒不是指望他说出多么惊天的idea,我就是想搞清楚to B的O2O该怎么做。

 

无独有偶,想把O2O做成to B项目的不止老刘一个人,领域当然也不局限于社区。名校毕业的小黄也曾找到我,倾诉他的融资需求。

“我们要在中国建立类似欧洲的餐饮业采购物流。”

少年有志气。多少个餐馆老板不必再每天半夜亲自跑到批发市场买菜了,我代表他们的发际线感谢你。

“交给员工也不行,员工会吃回扣,老板放心不下。找供货商也不好,经常送了几个月就开始漫天要价了。你连夜跑到菜市场询价,发现还得自己去 买。”小黄的语气坚定得仿若自己被无良员工和不要脸的供货商坑了10年,我严重怀疑他以前的创业项目就是自己开餐馆,开一家倒一家。

我明白了小黄创业项目的用意:“你想打破供货商垄断的菜价信息吧?破除这个信息不对称,让餐馆老板可以在网上直接查询当时当地批发市场的菜价,没错吧。”

“对,还要配备自己的物流,让老板们可以放心收到高质菜。你要是直接拿着价格管供货商要菜,他们给你的质量就没法儿保证了。”

我心说,就算按照供货商的报价买菜,质量也从来不是有保障的事儿——然而小黄啊,你们要怎么保证质量呢?

“我们会建立自己的质检流程,通过一系列检测,判断菜品的新鲜程度和受污染状况,按照质量划分等级。我们再将菜品做一些粗加工,用自建的物流向餐馆送货。”

我琢磨了一下,小黄可能需要自主联系菜农,自己建立工厂,再搞一堆大卡车天天奔驰在京郊到二环的公路上。

并不是说学校没商机,学生不靠谱儿。打脸的事实就在眼前,校园O2O项目也能拿到千万级投资。

都说吸引消费者容易,跟机构谈合作难——都那么容易可不就是谁都做O2O谁都死么,脏活累活一律甩手不干就是互联网精神了?我看未必。至于原因,去问美团王老板吧。

虽然就现阶段来看,服务类O2O想有竞争力就得品控好,想要品控好就得地推好,而地推就是脏活累活,不过脏活累活也不能代表O2O。

观点:

线下的服务不好做,想要通过互联网解决线下的问题,同样要找到痛点,否则用户闲麻烦,需求不大,商家看着鸡肋觉得无利可图不配合,你就只剩下地推和热脸贴冷屁股的境遇了,想要彻底O2O那就得符合老百姓的生活习惯和需求,别试图教育老百姓什么是O2O,老百姓关心的只是自己的小日子过得方便,别麻烦,省钱省事儿,你要让他们再学习怎么用那还不如自己走两步就解决了,或者打个电话就完事儿的事儿,何必费事的还得用你的应用呢?!

 

当数据映照出现实

mikel阅读(1002)

大数据的概念从出现到普及到底有多远?对于我们这些小老百姓来说有多远?这些问题很少有人提及,也很少有老百姓关心这个,其实不知不觉我们已经在用大数据只是我们不清楚,从百度知道到百科,再到支付宝的晒账单,等等都已经被数据改变了生活的方方面面,可能你觉得这在普通不过了,我那么点数据也算大数据吗?可是如果是全国上亿的用户的数据中统计出你的十年账单,阿里背后掌控得是全中国的网络消费习惯数据,然后进行分析得出每个人的账单。

微信朋友圈的宝马广告赤裸裸的鄙视了草根的同时,也让老百姓们在数据的获取方面分出了三六九等,当然这种不是无缘无故的就不给你看的,都是现有因再有果的,都是从你日常发布的信息中给你这个人进行了数据画像,然后给你定位到某个等级,别以为自己晒晒自驾车的照片或者晒晒新买的爱马仕,只是让别人看看,其实这些数据已经被采集到了你的个人数据库中,并且再次对你的数据画像添加了一笔,让你在数据的世界里面更加接近现实。

未来的某一天,数据围绕着生活的方方面面,各种传感器采集着你的数据然后提交到云端,进行分析处理加工,然后再反馈到现实中影响你的生活的时候,你不知不觉已经被数据化了,就像平行的两个空间一样,现实中的你和数据里面的你同步了,结果是不知道是数据改变了生活,还是生活改变了数据。

[转载]Android制作曲线、柱状图、饼形等图表——使用AChartEngine - 杰瑞教育 - 博客园

mikel阅读(1078)

[转载]Android制作曲线、柱状图、饼形等图表——使用AChartEngine – 杰瑞教育 – 博客园. 之前在java开发中实现图表使用JFreeChar组件,最近有个小项目要求在Android端进行数据分析,如何实现图表呢?查了一下google提供了一个开源组件Achartengine非常好用,可实现绘制各种图形,完全满足了开发的需要,下面就说说如何使用。

一、准备工作

下载jar包

官网地址:http://code.google.com/p/achartengine/

网盘地址:http://pan.baidu.com/s/1EYhUe(含API文档,代码)

二、关键点说明——AchartEngined的使用

1、ChartFactory组件

  ChartFactory组件提供getXXXX方法可获得不同的图形,例如

getBarChartView()柱状图

getPieChartView()饼图

getLineChartView(Context context ,XYMultipleSeriesDataset dataset, XYMultipleSeriesRenderer renderer)//折线图

getCubeLineChartView() //圆滑曲线图

2、CategorySeries和DefaultRenderer

  这些方法一般都有三个参数依次为(不同图形还会有增加一些参数)

  Context context,CategorySeries dataset, DefaultRenderer renderer

Context:表示应用上下文

CategorySeries:是图表的数据信息,包含构成的元素名称和值AchartEngined就是根据这个数据统计所占百分比的

DefaultRenderer:设置图片的样式,如设置每个元素的颜色、标题大小、背景颜色等

  如绘制饼图,代码如下:

复制代码
//创建CategorySeries 组件
CategorySeries series=new CategorySeries(“第一季度销售分析”);
series.add(“一月”,30000);
series.add(“二月”,40000);
series.add(“三月”,36000);
//创建DefaultRenderer组件
DefaultRenderer renderer = new DefaultRenderer();

renderer.setMargins(new int[] { 20, 30,  0 });//设置图例之间的间接单位为px
renderer.setLabelsTextSize(15);//设置标签的字体大小
renderer.setLegendTextSize(15);//设置图例的字体大小
SimpleSeriesRenderer r1 = new SimpleSeriesRenderer();
r1.setColor(Color.BLUE);
renderer.addSeriesRenderer(r1);//设置饼图颜色,一月份
SimpleSeriesRenderer r2 = new SimpleSeriesRenderer();
r1.setColor(Color.GREEN);
renderer.addSeriesRenderer(r2);//设置饼图颜色,二月份
SimpleSeriesRenderer r3 = new SimpleSeriesRenderer();
r1.setColor(Color.RED);
renderer.addSeriesRenderer(r3); //设置饼图颜色,三月份
//产生饼图
GraphicalView view=ChartFactory.getPieChartView(context, series, renderer);
复制代码

3、GraphicalView

  这些方法返回呈现图表的View——GraphicalView ,使用Layout的addView()方法添加到布局中即可显示,如:

GraphicalView view=ChartFactory.getPieChartView(context, series, renderer);
layout.addView(charView);

  绘制其他图形步骤和饼图大同小异,大家可以结合API文档测试一下

三、实现案例

   该案例包含绘制曲线、柱状图、饼形,进行了在AchartEngined组件基础上化封装,核心代码上述例子已经讲解,这里只提供下载地址

  源码下载地址:http://pan.baidu.com/s/1eQlJJVG

项目管理那些事儿

mikel阅读(864)

想了一晚上关于项目管理的问题,怎么才能高效高质量的保证项目开发?

因为一直以来很多时候都是项目跟着客户的需求跑,也就是所谓的定制开发,很少有和客户说“不”的情况,结果导致项目的功能都是定制的,结果项目是做完了,总是成不了产品,而仅仅是一个项目而已。

难道需求不是通用的就不能开发出一个通用的产品吗?有一个问题摆在面前。

思来想去究其原因还是适应变化的框架设计问题,需求总是变的,你想要做到通用就要尽量的抽象化,而不是具体化,否则越做越死,也就出现前面说的问题,然后就是人工维护多个同质化项目的成本的增长,导致管理成本的上升等等诸多资源的浪费。

怎么才能做出一个嫩巩固适应变化的框架?

首先要规范项目管理和开发流程,现在的项目管理有很多适应变化的开发模式比如极限编程、迭代开发等等都是讲开发周期缩短到一个点,然后不断的跟随需求迭代的完成这个点以及诸多点,然后将这些点连接起来组成一个整体的产品,这是开发管理上。

然后就是技术层面的技术框架设计了,没有万能的框架,只有适合的框架,一个项目最基础的应该就是框架设计,设计一个标准的不冗余的框架,会对日后的开发有很大帮助,一定要规范化开发流程,明确开发步骤和职责,然后利用辅助的开发工具减少工作量,降低开发门槛,让人人都能开发功能。

说到人人都能开发,似乎说的有点儿神乎其神,即使不懂程序开发的人也可以开发吗?其实并不神奇,只要你封装的到位,完全可以无障碍的开发程序,怎么这么说,就好比智能手机为什么从三岁小孩到70岁老人都能上手一样,因为谁也不用关系那个大大的屏幕下面装得的电路板的布线以及cpu的运行原理,只要知道怎么上网、聊微信就可以了。程序开发最终也会做到这种程度,变化得是需求,不变得是框架和开发模式。

再说项目管理,其实归根结底还是人,人作为一个变化元素充斥着整个项目,所以说不管怎么样灵活的框架和开发工具,都要人来操作,人管理不好就会延误项目进度,大到小作坊式的3-5个人的小团队,大到windows这种上千人的开发公司,都需要把握好人的管理,才能有条不紊的让项目开发工作正常运行下去,否则将会是场灾难。怎么管理?我也只是从我个人经验来说想了很多其实也没那么复杂,就是明确职责、及时反馈、设置预警机制、积极应对变化。

 

[转载]如何摆脱APP速死症?

mikel阅读(1409)

[转载]如何摆脱APP速死症?.

3W选自每日经济新闻

作者:马伟民

 

近日,艾媒咨询的分析师还指出,“APP的生命周期平均只有十个月,85%的用户会在1个月内将其下载的应用程序从手机中删除,而到了5个月后,这些应用程序的留存率仅有5%。”

 

对于留存率低的原因,友盟副总裁叶谦表示,“一般来说,一个APP有其独有且相当固定的生命周期。造成目前生命周期短的主要原因是,同质化竞争严重,以及一些APP缺乏有效运营,最终导致用户流失。”《每日经济新闻》记者通过采访以及查阅资料发现,事实上,APP是因为患上了各种“病”,才导致留存率低。

 

同质竞争

 

由于开发门槛较低,加上整个APP市场已趋于饱和,因此市场上同质化应用泛滥。而出现同质化的一个最大原因就是,目前很多APP开发时,定位不不清晰、需求错乱,可归纳为以下几种“病症”。

 

论坛病:一些老的APP创业者因为经历过BBS时代,所以从一开始就没弄清楚社交和社区的区别在哪里。

 

小众病:现在的市场大家都讲小而美,但小而美绝对不是简单的小众。

西化病:国外什么火了,国内创业者就做什么。其实国外的很多产品可能根本不适应中国。分析需求而非照搬玩法套路,找到套路背后所对应的新一代年轻人未被满足的需求,用本地化的新玩法去满足,才是制胜之道。

 

一招鲜病:很多产品一上来的点子真的很不错,可是缺乏持续的创新迭代能力,过早地把资源投入战术运营上,而不是战略层面产品的打磨上,这是火一把就死者的通病。

 

运营不当

 

除了同质竞争导致开发者定位不清晰、需求错乱外,开发者自身的内部原因也是导致APP生命周期短的一个重要因素。

 

例如,一些APP开发者只注重开发,但对上线后如何经营用户,提高存留率等,显得非常茫然。又比如在运营层面,开发者需要更多的使用统计分析、消息推送、用户反馈等工具,来实现更精细化的用户营销以及对创业团队进行精细化管理。叶谦就表示,开发者需要持续满足用户的需求,并注重基于数据的运营。“因为用户的兴趣点在不断迁移,这对开发者来说,既是考验,也是机遇。”

 

现实却是,目前,多数创业团队难做到上述要求,且在运营、管理、营销呈现出以下“病灶”。

 

宣传病:去看看Appstore,多少宣传文案让消费者看得心里直痒痒,但下载后多数消费者会很失望,宣传过度导致大幅度抬高了用户预期,一旦体验跟不上,即便是已经很不错的产品,也难免遭到厌弃。

 

高成本病:消费者参与一些APP的成本太高。例如,消费者如果要在一款APP里找到存在感和归属感,必须拍一段视频或者录一段声音或者走到某个地方,累死了累死了。

 

转移成本病:有的产品,做得已经很用心、很好了,但因为产品对应的需求可能已经被某个竞品充分满足了,导致用户的转移成本太高。

 

贸然入行病:社交类APP死亡率最高。社交产品实际上门槛不在于想法或产品,而在于运营,这里比的是创业者对用户的理解、对资源的把控力,以及跟平台共舞、从平台获取用户的能力,话题制造的公关能力,融资能力。社交APP领域进入了太多搞不清楚状况的创业者,死亡率最高也正常。

 

信息过载病:很多社交类APP,用户刚进入时的体验真的没话说,可往往就在用户数快速激增后,这类APP不行了,陷入了信息过载的汪洋,渐渐被用户抛弃。

 

缺融资能力病:自身很难有造血能力,又想拼命烧钱把用户量做大,这需要投资人来大量输血,所以融资能力和时机就决定了很多APP的生死。错过融资时机有时候很要命。

 

APP创业者“手头紧”:刷榜推广增加成本

 

对于APP创业者来说,要想获取用户,推广是绕不过去的槛。《每日经济新闻》记者了解到,目前APP推广成本相当高,大部分创业者开发的APP由于拿不出更多的推广费用在应用商店占据一个较好的榜单位与推荐位,最终导致无法获得很好曝光而无人问津,随即在APP的汪洋大海中沉寂。此外则是APP在推广中所遇的各种行业弊端,例如业内公开的秘密——“刷榜”,成为制约创业者发展的又一个绊脚石,一定程度上成为APP高死亡率的推手。

 

据了解,目前,由于应用商店中的榜单位置非常紧缺,一些APP为了获得较好的曝光和展示,会雇佣“水军”和刷榜公司通过大量重复性劳动,例如评论、下载、留存等来获得排名和资源,并维持一个看上去很好的运营状态。在移动互联网圈子里,尤其是以现金流巨大的游戏APP,刷榜几乎成了标配。

 

有业内人士指出,“不管是大公司,还是创业者都在刷榜。一些游戏公司甚至会投资一些刷榜公司专门为自己的游戏刷榜。”

 

更值得注意的是,刷榜情况主要集中在苹果商店,安卓的尽管也有不少,但没有苹果商店的严重。

 

对此,酷传的CEO李卫杰解释称,主要是因为苹果没有对外合作的通道,国内的安卓渠道,资源位可以通过商务合作购买,换句话说肯花钱就行,但苹果商店的应用排名,大都是根据苹果内部非常严格的算法进行排位,以及编辑挑选的精品应用,不会受到其他因素的干扰,这在一定程度上保证了客观和公正,但也由于这个原因,苹果商店成了刷榜重灾区。

 

由此来看,无论是商务合作购买资源位,还是进行“刷榜”都需要一定投入,这在一定程度上增加了APP开发者的成本,对于大公司而言,刷榜等所花的投入可能属于“小钱”,但对于刚刚开始创业的开发者来说则是很大一笔开支。

 

此外,创业APP在面对渠道商时也处于一种不对称的地位,就像上述创业者所说的那样,面对强势渠道,他们只能“抓狂”。因为渠道凭借其用户优势,已在移动互联网生态圈中建立了非常稳固的地位,一些强势的一线应用商店渠道,分成比例从5:5到7:3,强势程度可见一斑。这也可从另一个侧面看出APP在推广上需要付出的成本较高。

 

据了解,一般定义的渠道指的是应用商店,按照系统类型可分为安卓商店和苹果商店,由于苹果系统封闭性,用户只能从Apple store下载应用,安卓系统虽可以通过谷歌官方应用商店google play下载应用,但由于google play在我国无法使用,使得第三方应用商店快速崛起。

 

李卫杰告诉《每日经济新闻》记者,由于目前安卓渠道可以分为三种,第一类是传统的第三方软件商店;第二类是超级APP,也就是APP内部进行APP分发、置换,比如积分墙;第三类是线下厂商手机进行预装。 目前,国内应用商店的日分发量达到3.6亿。这些大型应用分发市场占据了国内80%以上的分发份额,APP开发者如果想要获得用户,向这些不同的渠道商上传应用并通过各种方式获得流量就成了不二选择。

 

 

APP创业窗口短期 3个月难立足即死亡

 

目前,我国已是拥有智能手机用户最多的国家,因此无数的创业者正在涌入APP开发领域。然而残酷的现实却是有些APP还没研发出来就胎死腹中,有些出生即是死亡,更多的虽仍在应用市场上,却早已无人问津。据艾瑞发布的报告显示,国内APP的生命周期平均只有十个月,应用程序的留存率仅有5%。APP涌现死亡潮,是否给移动互联网创业者直接泼了一盆冷水?在APP死亡潮的背后,又有哪些推手?

 

近年来,随着移动互联网的快速崛起,以及成本和行业门槛较低,并且刚起步和国外差距不大,再加上猎豹,陌陌等移动互联网公司成功上市的示范效应,APP开发成为当下流行的创业方向。

 

友盟统计的数据显示,2014年里,仅半年时间国内APP便增加了10万。另据艾瑞日前发布的报告显示,国内应用市场在统计上有着超过400万个的量级,但僵尸应用占8成。在100家死亡的APP里,社交类占了35%,是死亡率最高的类别。而在社交类APP开发者中,又聚集了大量的创业者。

 

这些没有足够推广资源和产品优势的创业者是如何看待APP高死亡率这一残酷现实,又将如何应对?

 

两个星期休一天

 

友诚大厦位于北京市北四环,离地铁健德门站不到200米的距离,这是一座略显老旧的写字楼,没有物业和电梯,只有一位在晚上10点按时锁门的阿姨。由于租金便宜,这里聚集了将近30多家创业公司,在狭长的走廊里,不时能够听到略显急促的走路声。

 

王春国在创业之初便把“家”安在了这里。如今,王春国和他的团队每天9点便来到办公室,通常会一直工作到晚上10点,两周休息一天,而这样高强度工作已持续近一年。

 

王春国是一名85后,之前在人人网负责技术,去年6月和2名合伙人决定出来创业,创业的原因按他的话说是“想出来做点事情”。

 

作为一名APP开发者,王春国算是幸运的,在创业之初,团队便拿到了天使投资,团队也从最初的3个人,扩展到现在的10个。王春国还告诉《每日经济新闻》记者,目前公司正在进行A轮融资。“天使主要看中APP的方向和模式,而A轮融资则会涉及APP的运营数据,比如用户数、留存率等,这些数据都会影响到产品估值。”一位投资人如此解释投资逻辑。换句话说,如果将天使轮比作试错,那么A轮融资则是长跑,但遗憾的是,很多APP开发者很难熬到下一轮融资,多数时候,APP开发属于“创业未半而中道崩殂。”

 

王春国创业的项目是一款体育社交类APP,用户可以上传和体育运动相关的照片,系统会根据标签和地理位置,以及算法进行自动分类,并为用户推荐兴趣相近的用户,如今这款APP已经有50万注册用户。

 

对研究机构所称的APP死亡率高等问题,王春国显得并不在意。王春国告诉《每日经济新闻》记者,一款产品能否成功最终还是要看能否抓住用户需求的痛点,一些APP的失败原因主要是产品本身的策略失误。

 

推广难带来焦虑

 

虽然王春国对APP高死亡率现状并不在意,但记者在友诚大厦最大的感受就是这些APP创业者们散发出的焦虑情绪,而焦虑的源头就是推广问题。“主要是担心产品能否获得用户认可,我们内部对产品的方向分歧很大。”一位不愿具名的创业者告诉《每日经济新闻》记者。

 

据了解,一般来说,APP的开发可以分为前期研发、正式上线、渠道推广、产品运营等几个过程,中间还包括内部测试,版本迭代等。产品研发完成后,工作才刚开始,开发者需要在不同的渠道进行推广,接入各种SDK,积累初始用户,并根据实际的运营情况进行修改和调整。

 

就APP而言,用户和流量是最能衡量APP好坏的重要标准,对于一些不缺钱的企业,可以靠砸钱来购买用户和流量,但对于创业团队来说,靠这一方式来推广的难度非常大。“我们主要是通过地推和垂直平台,如论坛、贴吧、体育媒体等进行产品推广。”王春国表示,由于是体育类的社交产品,相对于打车、团购APP,目标用户更精准,因此其产品在前期推广时,更多是通过特定人群以及口碑效益进行传播。

 

不过相对于社交类APP来说,50万的注册用户不够,王春国表示,A轮融资的钱除了提高产品研发外,将会更多的用在促使用户增长上。

 

在浩如烟海的APP中,“小步快跑”是最好的办法,速度稍有懈怠,很可能被直接宣布死亡。友盟副总裁叶谦表示,“留给APP的窗口期其实很短,如果在3个月没有把第一版做出来,那么就很难在市场上立足。”

 

的确,创业者稍有不慎就会跌入万丈深渊。“新产品中支付系统出现问题,就需要赶紧补救,但苹果这类企业的的审核流程最少需要7天,多则几个星期,而且开发中还有很多方面需要和苹果官方进行沟通,所消耗的时间也就更长,曾遇到过光沟通就花了1个月的情况,那时候整个团队都抓狂了。”一位创业者如此描述自己的遭遇,“这个时候,只能告诉自己,要冷静,不能着急,因为着急也没有用。”

网红周小姐

mikel阅读(1264)

事件始末摘要:

如果不是被众多粉丝客户声讨,周梦晗这个“90后”女孩,恐怕仍在“网红转战微商”的道路上一路狂奔,积累财富。

她的微博“坏脾气公子”的粉丝超过10万。已无法打开的美拍和微信账号,之前的粉丝数量也颇为可观。

10万,这个数字形成了一个圈子——营造“网红”身份,再转为朋友圈推荐,周梦晗积累了一众粉丝,也是潜在的买家。

在自己的圈子里,她成了明星。22岁的周梦晗,卖面膜,发展下线,壮大她的“事业”。她深谙营销之道,懂得如何利用资源,抓住买家心理,来寻找获利空间。

去年11月起,陆续有买家在网络上晒出面部发红、长痘甚至长毛的照片,称使用周梦晗卖的“三无面膜”后皮肤被毁,被医院诊断为过敏性皮炎和激素依赖性皮炎。

今年2月初,这个“明星”销声匿迹了。

但朋友圈里和周梦晗一样的“网红”们以及她们的“微商事业”,仍在继续。

 

在销售面膜前,周梦晗的另一个身份是“网红”。探寻周梦晗的“网红”之路不难发现,她早已提前埋下售卖面膜的伏笔。

有粉丝曾说,认识周梦晗是在2014年3月微博上的一个热门话题,“敢露额头才是美女”。在众多露额头女孩的照片里,周的美貌吸引了她,随即在周梦晗的微博里点了“关注”。

观点:

网红影响的更多的是这些人的财富积累速度和数值,至于如何将名气和粉丝变现,很多人就无底线了!所以很少关注这些所谓的网红名人,看到最近的网红新闻也都当成是营销案例分析分析,可苦了的还是那些不明真相的粉丝们,苦苦崇拜的网红名人居然将手毫不留情的伸向了他们的钱口袋,这不又彻彻底底的“扇”了脸!

没有无缘无故的网红,同样也没有无目的的网红,别相信那些我也不清楚自己怎么就红了的谎言。互联网上随时后会出现热点,同时也伴随着利益让那些推手们趋之若鹜,信了你就输了!这些所谓的网红还不如那些刷脸的主播们,最起码后者更加直接的明码标价卖脸。

微信很多人都在卖面膜,的确这种消耗品很容易卖也很好卖,于是大家都来淘金,然后就是中国人普遍范的毛病:人多了不干好事儿!以次充好,三无产品纷纷开始亮相,直到将一个赚钱的行业搞得乌烟瘴气鸡犬不鸣大家都闻风丧胆了,才像苍蝇一样一哄而散继续寻找下个没被搞坏的市场。互联网难怪“人傻、钱多、没人管”的状态更是助长了这些人的胆量,完全盯着眼前的利益,赚钱就行!

微商从出现到为人熟知不过几年时间,要想良性发展靠得不是周小姐这种无节操、无底线、唯利是图的人而是更多踏踏实实当成行业来做的商家,要么就又是一个剪不断理还乱的乱世!

空间 微博 公众号 博客一个都不能少

mikel阅读(981)

要想在互联网上做自媒体不要指望一个平台就能有效果,尽管你有每天写日志不懈努力的心,可是总是无法逃脱你是个网络没有归属感的人的命运。就这么飘在网上简称网飘儿!

要想有归属感还是建自己的网站吧!最起码一亩三分地儿自己说了算,大家都在建公众号然后刷订阅,可是到头来微信一则严打规则还不是让昔日的梦想成了一场黄粱美梦!最近空间就是个例子,不断的被封禁,不断的被屏蔽日志! 我也是醉了!自己想发出点儿声音就那么难吗?!

到底是世界在变得开放,还是变得壁垒重重,让人无处发声?!不知道互联网怎么了?!各种社会化媒体纷纷亮相的同时,背后却是多少人被禁声的血泪史?!