Quantcast
Channel: 周曙光的网络日志
Viewing all 114 articles
Browse latest View live

简单介绍一下台湾2016选举背景知识

$
0
0
我来台湾四年多了,加上明天的总统选,我算是遇到了三次选举。一次是2012年初的总统大选,马英九连任成功后,眼睁睁地看着他骂得臭头,支持率掉到传说中的9%,用台湾话说是9啪总统(9 percent叫9啪) ,然后去2014年的九合一选举,是选里长村长市长县长乡代表市代表,结果因为2014年国民党强推黑箱服贸引发太阳花学运的原因,国民党大败,导致马英九连国民党的党主席位置都丢了,让连任新北市成功的朱立伦捡了个党主席当,也导致2016年总统大选时,国民党内竟无一人是男儿,都知道局势不利,大角色都不敢冒头来参选,于是洪秀柱女士抛砖引玉主动请樱代表国民党征战总统大选,想不到洪秀柱女士没把握好国民党的“九二共识”传统,引发国民党的其他大佬不满,于是朱立伦想法子把洪秀柱请下,自己硬着头皮上阵对站民进党的蔡英文,不敢破釜沉舟背水一站,都给自己留后路了,本来答应把新北市市长“做好做满”,却不敢辞职参选总统,而是请假参选总统,总统选不上还可以继续当新北市的市长。

这就是近几年台湾的政治背景。我再来介绍一下台湾各个党派。

先说一下国民党。国民党源自大陆,前身是兴中会和同盟会。失去大陆的执政地位后在台湾执政了40多年后,终于民主转型成功,国民党的李登辉是第一个民选总统。但他2001年成立台湾团结联盟,被国民党开除了。国民党始终惦记着大陆,用的党徽也是和国徽差不多的图案,党国不分的一部分原因也在这里。国民党和共产党都想用“中国”这个名称,所以九二共识里就是“一中各表”,共产党认为一中是“中华人民共和国”,国民党认为一中就是“中华民国”,他们两党的共识就是“一中一台”是不符合他们的要求的,所以坚决不承认台湾是独立的国家。国民党若承认台湾是国家,则他们丢了法理上的“大陆沦陷区”; 共产党若承认台湾是国家,则丢了他们从中华民国那里继承的“台湾”。需要注意的,辛亥革命让中华民国继承了清朝的领土,昔日的中华民国是共产党和国民党一起执政的中华民国,1949年是共产党用内战把国民党赶出了大陆,所以共产党口头上说是1949年建国,但仍然和国民党一样尊孙中山为国父,逢国庆还是会把孙中山头像和毛泽东头像一起摆天安门。所以共产党虽然不用中华民国的国号,但还是认为台湾从清朝到1949都是领土。


接下来说民进党。创立于1986年。民主进步党简称民进党,是源自台湾本土的政党,是台湾人民反抗国民党的独裁统治的情况下形成的政党,在70年代和80年代,台湾逐渐有党外运动,用办报办杂志的方式参与讨论公共事务,遭遇国民党的打击和镇压的情况下缓慢地得到社会的认可,也得到了国际社会关注和宗教团体人权组织的帮助,经过30年多的发展,终于成为一股对抗民国党统治的新的政治力量,民进党的陈水扁由人权律师成长为中华民国总统,执政了8年。韩国的总统卢武铉也人权律师成长起来的,所以中国共产党这些年抓了许多人权律师,应该是共产党从2050年穿越到2015来阻止某位人权律师成为中国大陆的民选总统。民进党源自台湾本土,用的颜色是绿色,通常把亲近台湾本士的党派和人士就叫亲绿。

台联也是小党。成立于2001年8月12日。一帮从国民党出来的亲近本士派的跟随李登辉的政党,灵魂人物李登辉。亲近台湾本士叫偏绿。

亲民党也是小党。成立于2000年3月31日。也是从国民党出来,跟台联不一样,倾向于统一,偏蓝。灵魂人物宋楚瑜。宋楚瑜当过前台湾省的省长,也当过新闻局的局长,当年钳制言论的代表人物,亲绿的人老跟他算这帐,所以他拍视频广告自嘲身上泥巴多。

社会民主党。小党,2015年3月29日宣布成立。灵魂人物是范云,1990年野百合学生运动的学生领袖。

台湾绿党。成立于1996年1月25日 ,搞环保议题的小党。目前第五大政党。

绿社盟。在2015年8月31日成立的选举联盟,由社会民主党和绿党联合起来为争取获得足够支持率进入国会而成立的联盟。

时代力量。2015年1月25日成立。

以上这些政党分别有不同年段的支持者。
  1. 时代力量的支持者最为年龄,因为时代力量和社会民主党都是2014年的319太阳花学生运动后崛起的新兴政党,所以支持者为学生和社会新鲜人,约在20到30岁这个年龄段。
  2. 社会民党的创始人是范云,她成名于1990年的野百合学生运动,所以知名度应该在30-50岁的人群之间。
  3. 民进党的支持者的年龄跨度又稍微大一些,只要是在台湾长大,但不是出生在军人、公务员、教师以及权贵家庭,他们都会比较有台湾本土意识,所以支持者从20到80都有。
  4. 相对来说,国民党的支持者年龄层比较狭窄。通常只是50岁以上的老人由于受的教育认为大陆对他们很重要,所以没有本土意识。年轻后代甚至会有跟上一代有人不同的政治观点,新生代都自称为“天然独”“原生独”,他们根本不在乎大陆的观点,他们认为尊严更重要。估计国民党和共产党意识到原生独的趋势了,所以去年黑箱强推“微调课纲”,想在教科书里植入更多大陆意识,灌输统一意识。
我的看法不一定完全准确,只是作一个记录。万一有人想问我,我就给他这个链接就好了。



家庭医药箱的非处方药清单

$
0
0
我在中华民国台湾省花莲县瑞穗乡租了一栋两层的楼房在住,只住了我和老婆,还有一只狗,4个卧室自己用了一间,一间当书房在用,还有两间卧室就放到Airbnb. com 上出租给路过瑞穗乡的背包客和单车客,收费是30美元一晚。

前天晚上来了两个西安的客人,聊天时得知他们夫妻都是医院的药剂师,专门管理药品,我就跟他们商量,请他们花十到二十分钟写一个家庭医药箱的非处方药清单,换取我开车送他们去泡温泉和第二天去瑞穗牧场、北回归线标志公园、吉蒸牧场等景点观光的服务。他们也就欣然同意了。

开家庭医药箱的非处方药清单之前,我跟他们确认了我对医药的一些认知:
  1. 医药行业很黑,百度是帮凶之一;
  2. 越常见的药越便宜,有效;
  3. 滥用抗生素会导致产生抗药性,后果是将来真需要抗生素时,医生却摸不准剂量,导致丧失救治机会或延误救治时机。
我于是让药剂师夫妇帮我写一个不包含抗生素和新药的家庭医药箱的非处方药清单,用的花越便宜越好。


于是得到了这个清单
  • - 布洛芬。 解热,镇痛,抗炎。头痛、经痛时可以缓解,但未知原因的病痛不要用镇痛药掩盖病症 
  • - 氨酚曲麻(或近似药物)。治疗感冒症状(替代药物:抗病毒颗粒,莲花清瘟胶囊) 
  • - 马来酸氯苯那敏。抗过敏,有过敏体质的人可以用来缓解过敏症状。 
  • - 盐酸小檗碱。 止泻 
  • - 开塞露 。治疗便秘,皮肤开裂,甘油成分,润肤。 
  • - 红霉素软膏。毛囊炎,皮肤感染,用于烧烫伤,防感染。大面积烧烫伤还是需要去医院处理。 
  • - 多潘立酮。 治疗消化不良 
  • - 创可贴、纱布、脱脂棉球、止血带。用处理外伤,大伤口初步处理后还是要去医院缝合。 
  • - 碘伏。皮肤消毒,擦伤后需要消毒。 
  • - 云南白药。 外伤止血,内服有乌头碱中毒风险
  • - 0.9% 氯化钠溶液。 清洗伤口或补充盐分,脱水后需要补充盐分,如长跑后和腹泻后。 
  • - 5% 或 10% 葡萄糖溶液。 补充能量,葡萄糖是单糖可以被人体直接吸收。 
  • - 薄荷桉油含片。 治疗咽喉肿痛 
  • - 复方醋酸底色米松乳膏。 治疗皮肤瘙痒 
  • - 温度计。测量体温。 
  • - 冰袋。用于冰敷。 
  • - 藿香正气水。治疗中暑, 肠胃型感冒。 
  • - 苯海拉明 。治疗晕车。 
这个清单有止痛药、感冒药、止泻药、消炎药、外伤药,由于是“非处方药“,所以不用医生开处方单子也能自己亲自购买和使用。处方药的意思就是要凭处方才能购买,如镇痛的吗啡就必须由有资格的医生才能开单子购买。

这个清单里有云南白药和藿香正气水为中药,忌讳中药的朋友在去药房采购时可以跳过不买。药剂师提到布洛芬比阿司匹林副作用小,所以阿司匹林没写进去。

我去微信上问冯大辉他们丁香园有没有比较权威的家庭用药清单,冯大辉给我这个: http://dxy.com/column/1917 我看了后还是觉得上面清单更方便采购,丁香园这个文章里推荐了各种厂商的“对乙酰氨基酚 ”,选择起来伤脑筋,甚至推荐了诺氟沙星这种抗生素。我回头去问问药剂师“对乙酰氨基酚 ”和布洛芬的区别去。也许这个清单还有进一步完善的空间。

以上清单仅供参考,欢迎留言补充药物,可增加以上药物的应用场景说明。我觉得人们对这个家庭医药箱的兴趣很大呢,一天过去了,现在有超过100人转发和收藏了。

内容创业这把虚火值得支持

$
0
0
记得有个教化学的老师在课间布道时提到,人读的书,先是变厚,然后变薄,然后又变厚的过程。彼时不到16岁的我,居然记住了这句话,差点没记住这老师叫周国奇,冥想一番才想起他的名字。

我是读过不少乱七八糟的东西的“非读书人”,我觉得周国奇提到的这个说法,应该是类似“看山是山,看山不是山,看山还是山”这样的演变,先是胡乱读一些读物,然后就会归类和分析,让知识系统化,探寻出事物背后的逻辑和伦理,然后再获取更多的知识。

最近才知道,许多人在微信上创业,有的是利用微信提供的种种接口,写出独特的应用,吴骋孜的“大弓”开创了付费后阅读被马赛克的内容的付费阅读先河;知乎简单地抄了大弓,做了一个“值乎”; 姬十三在行本来是做线下付费的经验分享,于是创新性的做了一个“分答”,做成线上的经验分享,还发展出“偷偷听”的分销模式,让提问者和回答者都能分红。夏炎也做了一个付费提问的工具,不过没有公开运营。蔡望勤做了一个80/20的BSP,提供BLOG服务,也是帮助用户获得打赏,用户和平台按比例分成。他们这些都是寄望于微信的支付平台和庞大的用户基础,试图帮助内容创业。

另一帮人在微信上创业的方式则“low tech"很多,就是想通过写微信公号来成为“网红”,成为网红后则想办法变现,代言,接广告,接软文,这些是看得到的方法,至于要不要睡粉丝就看姿色和体力了。

我对内容创业居然没什么兴趣,虽然我的公众号早就获得了原创和打赏的功能,但为了争取被分享被打赏而勤奋阅读勤奋写作,我已经没了这热情了; 先付款再阅读则对于订阅数不多的小户人家来说,等于是自掘坟墓。

Keso在《内容创业这把虚火》中认为写作没法规模化,没法取得规模化效益,没法持续的超常规增长; 霍炬撰文认为收费阅读对遏制网络霸凌有帮助,认为内容创造迟早都变成收费的劳动。我觉得Keso是从投资者角度认为是虚火,霍炬是从写作者立场支持内容付费和内容创业,我觉得“付费内容和内容创业是information technology 产业的有益补充”,值得支持。

只有免费内容,信息搬运者会越来越少; 只有付费内容,写作者得益于免费阅读,可搬运的信息越来越少。免费内容读得到,付费内容读得起,信息科技帮助信息流动创造社会价值。这观点是以读者立场产生的观点。

回到标题上,内容创业这把虚火值得支持,祝愿读者越来越多,各平台赚得越来越多,网红越来越红。


新奇特酷玩专访佐拉科技董事长周曙光

$
0
0
以下采访内容转载自微信公众号“新奇特酷玩”。

新奇特酷玩:周先生,很高兴你能接受新奇特酷玩首次面对热爱体验新科技产品,畅想未来生活形态的骨灰级互联网人物专访,首先我们希望你能和我们简单的做一个自我介绍。

佐拉:张先生,你好,我是周曙光,民国七十年出生,湖南宁乡人,资深独立网络日志作者。拥有17年互联网观察经验,12年自媒体经营经验,10年媒体观察经验。自2004年5月开始在( http://www.zuola.com/ )下写日志,分享一些有用或有趣的内容。目前旅居在台湾花莲县的乡下,仍然热爱体验新的科技应用,热衷畅想未来生活形态。小编注:微信公众号:imzola

新奇特酷玩:感谢周先生详尽的自我介绍,我们从互动百科了解到周先生近些年的生活工作动态,同时在微博上一直关注周先生的内容,也许是目前在科技发达的台湾旅居才对互联网新科技产品如此热衷和喜爱?能和我们谈谈目前您最感兴趣且在用的一些科技酷玩产品么?

佐拉:作为资深网民,网上任何新的科技应用都让人着迷,不仅是猎奇所致,也是兴趣所在,也是因为技术和市场的变化蕴含新的巨大的商机。需要纠正的是,台湾科技曾经发达,PC和手机相关产业都发达,可是台湾的科技应用反而落后于中国大陆,科技对人们生活的帮助反而不如中国大陆。所以不是因为旅居台湾才对新科技产品热衷,而是因为长期以来通过网络阅读培育的热情。

科技产品包括硬件产品和软件产品,软件应用通常可以通过网络体验到,至于硬件产品,束缚于财力水平,目前没有能力体验特斯拉电动汽车这类让人心羡的产品。
新奇特的产品往往比较超前,应用场景狭窄,短时间内难以被大众接受,但能解决特殊应用场景下的需求。我以前常去深圳华强北的电子产品展销中心,那里有很大机会碰到独特的新奇的产品。当然,目前无人机都不算新奇产品了,但十年前却是没有的。第一次看到无人机还是印度搞笑电影《3 idiot》里。

新奇特酷玩:感谢,被你谈到特拉斯,^_^?相信不久的将来也许就能体验到廉价的类似特拉斯的乐视版特拉斯?有期待和信心么?对乐视。对国内智能硬件厂商目前各种层出不穷的新产品感到满意么?
佐拉:能体验到新产品,和新产品真正塑造新的生活形态之间,还有非常长的路要走。期待能体验到各种山寨版的特斯拉汽车,但最期待让人有参与感和成就感的体验之后的反馈和需求能进入产品迭代中,成为改进产品的动力之一;从产品迭代这个角度来说,新产品永远只有惊喜,却没有“绝对满意”——作为用户,总有新的应用场景和新的需求。当然,许多事情无法真正亲自加入,期待别人做出我想像中的产品也是很不错的。

新奇特酷玩:谢谢这些中肯的建议,希望国内厂商能够更上新台阶,经常在您朋友圈能看到各式的手环和智能手表的试玩体验。能和我们谈谈目前时下最流行的智能穿戴行业么?这是一种刚需不?个人最近几个月出差外地,发现在上海和北京地区手环体验尤其是北京特别多,饭馆服务员几乎人手一个,这是地域特性么?也是源于北京科技更发达?

佐拉:我对国内的手环了解不多。我目前只接触过小米手环和麦步智能手表。以我的观察,台湾公务员群体中,小米手环的用户很多,可能是这个群体生活优渥却运动量小,有很大的健康关注需求,小米手环能帮她们监测运动量,所以有减肥需求的人比较热衷使用手环,这应该是一种刚需,并且大城市的居民需求跟消费能力更为旺盛。我关注麦步智能手表是因为我对智能手表有过一些畅想,觉得麦步智能手表接近我对智能手表的要求:收手机通知,无MP3和SIM卡支持,屏幕常亮,待机时间长,于是在众筹阶段就关注了,并且得到官方的联络,甚至基于他们提供的API写了自己的应用。
麦步智能手表和其他智能手表一样,把"always online"的人们从频繁的掏手机的动作中解放出来了,许多情况下只用抬手就不用掏手机了,节约了自己的时间,也节约了手机的电能消耗。外出旅行也能"永远在线“了,智能手表塑造了更好的生活形态:永远在线。

新奇特酷玩:我们关注到您的佐拉科技目前您自己的董事长兼总经理兼员工仅有一人? 对于公司目前的规划和未来您是如何规划的呢?

佐拉:我顺着”大众创业“的潮流注册了一个认缴注册资本50万实缴资本为0的皮包公司,所以我是”董事长兼总经理兼员工“,发展空间那叫一个巨大啊。目前正在规划一个网络创业项目,是做网络书签,方便找到读过的文章,不算有新意的项目,但目前没有满足自己需求的网络书签,所以决定先做一个工具给自己用。没准别人也需要这种工具呢。先做着瞧吧。
新奇特酷玩:我们同时关注到您目前移居台湾东部乡下,经营AIRBNB民宿,为杂志写专栏,偶尔为网友提供技术解决方案和培训服务。和我们谈谈您目前在台湾的生活吧,是不是有让人羡慕的室外桃源生活呢?

佐拉:我居住在台湾东部乡下是因为我没有巨大的野心,没有想要赚大钱过忙碌的生活。乡下的生活节奏慢一些,钱挣得少,未必是世外桃源,但来过我家的旅客都认为这里是风景怡人的峡谷中的乡村。一直期待着一种理想中的”数字游牧“生活形态:远离大城市也能挣钱,不用被高昂的房价所束缚在一个城市。现在科技发达了,已经可以通过电商网站和快递公司购买任何物品,也能透过网络收款和付款了,我作为技术提供者也能透过网络提供服务了,这种生活形态已经接近理想了。要是凭写文章就能过上”数字游牧“生活,那就更棒了。我做书签工具就是让自己成为更好的写作者,也是能帮助别人过上数字游牧生活的工具。AIRBNB民宿也是。欢迎你来台湾花莲县瑞穗乡体验台湾农村生活:)

新奇特酷玩:感谢,有机会到 台湾就来住你的民俗,我们关注到2007年,你曾经在厦门px事件抵达厦门全程直播相关事件,时隔九年,恍如昨日,今天想起的时候,你对当时的自己想说什么呢?

佐拉:2007年,厦门人上街游行抗议翔鷺石化的PX项目落户厦门海沧区,最终翔鷺把PX项目迁到漳州市古雷,2015年古雷的PX项目终于不可避免的爆炸了,厦门人庆幸当初有站出来抗议,不然受害者就是厦门人了。我想对自己说的就是,公民参与是民主政治重要的概念,关注公共生活,参与社会事务,社会作为一个关系到每一个人的“科技产品”,用户体验才会变得更美好。

新奇特酷玩:感谢周先生今天参与我们的互动专访,我们的访谈即将结束,最后,周先生和我们谈及未来愿景和规划一二,谢谢!

佐拉:我没有规划,对于科技应用的愿景是,持续debug,迭代别停下,一定会变得更好,无论是产品还是社会。

新奇特酷玩:再次感谢周先生的参与和互动,现代新奇特酷玩产品随着科技新时代的发展日新月异日渐强大鼎盛,时代是属于年轻人的!时代是属于有远见和主见的时代弄潮人,创业者,互联网开拓者!也终将离不开对互联网发展和社会变革提供和支持的彼此你我他。再次感谢!这里是新奇特酷玩互动专访(微信公众号:xqtkuwan), 再会!

我不看好“知识付费”

$
0
0
写书,办公开课,搞视频直播,搞付费订阅,这些都是“知识付费”鼓吹者试图帮助网络红人和公共知识分子赚钱的方式之一。

首先承认,这是不错的尝试,有付费意愿的人当然会越来越多,付费的方式也在增长,赚钱的方式也充满创意,这样的探索值得努力。

我对“知识付费”的可持续性表示忧虑。

以和菜头、冯大辉、李笑来的网络知名度,做一下“知识付费”的尝试,能赚到付费用户。读者也乐于自己微弱的支持能聚沙成塔,帮助写作者们持续写。但我很怀疑,网红写手的知识是否能持续的产出,读者能否持续的付费支持。

如果是一个学者,短则几个月,长则几年,才能有新的知识点产出。值钱。

如果是一个智库,则是以年为单位写出年度观察报告。值钱。

如果是财经分析人员,则是以财经事件为引子,基于彭博公司庞大的数据,在彭博终端前面花上几天时间,写出一篇几乎能摧毁一家上市公司的报告。值钱。

如果是新闻前线工作者,只身前往新闻现场,搜集一手资料,写出及时报道。值钱。

如果是深度调查,则和学者一样,短则几个月,长则几年,才能有新的调查报告产出。值钱。

如果网红日复一日的针对新闻事件搬运相关背景知识,这劳动是值钱的,为这样的“知识”付费的商业模式是可持续的。

像赏金猎手一样,就具体的问题作出详尽的解答,这样的知识搬运服务是值钱的。

如果做顾问,这倒是一个很好的“知识变现”的渠道,这完全是定制的“知识付费”服务,是边际成本降不下来的服务。值钱。

你一个网红,你就凭一台电脑一只手机加VPN,就能持续的创造内容,或说创造知识?有那么多新知识可分享吗?我对此表示怀疑。

也许真相是:你们网红不创造知识,你们只是知识的搬运工。

我的结论是:在知识付费领域,希望扩大用户量,又不增加边际成本,这只是一个美好的想像。换个说法是,一份二手知识,想单向地无差别地卖给N多个读者,这种商业模式不可持续。换成人话就是:搬运工把一篇文章卖一百遍,这事没戏

不过,若在搬运知识和围观搬运知识的过程中,形成了一个共同学习共同进步的互动社区,这却是一个极好的商业模式。但这已经不是“知识付费”要研究的内容了吧。


安装使用RESTful 框架SLIM笔记

$
0
0
RESTful API框架有很多,其他语言不熟悉,我就找了PHP的。由于SLIM的有中文文档,阅读起来速度快许多,加之这篇文章里有非常易懂的示例,于是选了SLIM

相关框架:

  1. http://www.golaravel.com是一个PHP框架,内置名为LUMEN的 RESTful API框架,有中文文档,http://lumen.golaravel.com/docs/ 
  2. https://apigility.org/ 是基于ZEND框架的 RESTful API框架 。
  3. https://github.com/anandkunal/ToroPHP Toro is a PHP router for developing RESTful web applications and APIs. It is designed for minimalists who want to get work done. 
  4. https://github.com/yiisoft/yii2/ Yii PHP Framework Version 2 ,a modern PHP framework designed for professional Web development.

SLIM依赖composer来安装,不用composer安装还蛮困难的,没找到教程。经过一翻折腾后,我找到简便的安装方式了。


先去 https://getcomposer.org  下载  composer.phar

composer.phar 是一个PHP的压缩包,可直接运行,不需要想办法解开。



php composer.phar require slim/slim "^3.0"

代替 https://github.com/slimphp/Slim的说明书中提到的:

$ composer require slim/slim "^3.0"

这样相关的依赖包都安装上了:

$ php composer.phar require slim/slim "^3.0"
./composer.json has been created
Loading composer repositories with package information
Updating dependencies (including require-dev)
  - Installing container-interop/container-interop (1.1.0)
    Loading from cache

  - Installing nikic/fast-route (v1.0.1)
    Loading from cache

  - Installing psr/http-message (1.0.1)
    Loading from cache

  - Installing pimple/pimple (v3.0.2)
    Loading from cache

  - Installing slim/slim (3.5.0)
    Downloading: 100%         

Writing lock file
Generating autoload files

gongzuola:myfavor.link zola$ 

这样就安装好了。

把sample 文件夹里的index.php 和 .htaccess复制到根目录下就可以测试了。

要让API工作起来,就需要写对应的SQL语句,实现CRUD操作了。CRUD操作是对数据库进行creat、read、update、delete操作的意思。

55岁的时候我会怎么想?写写35岁的时候我在想什么

$
0
0
今天是农历九月初六,我的35岁生日。

早上拿出手机输入2016减1981,结果是35,也就是说,今天是我36岁的第一天。我操,就居然35岁了。我15岁的时候在干嘛,我怎么也35岁了?55岁的时候我会怎么想?我觉得我需要写写35岁的时候我在想什么。

我是农村长大的人,小时的生日都是依照农历日期来过,生日的时候会比较有存在感,父亲会拿一个鸡蛋,用黄草纸包着,弄湿后塞进做过饭的火坑里,过一个小时,就有一个可能烧糊了的煨鸡蛋可以吃。家里其他没过生日的兄弟姐妹只有看我独享的份,这是过生日的人的特殊待遇。现在想来,要是煨的鸡蛋是鸵鸟蛋,我们应该会像城里人切蛋糕一样分着吃吧。

我最近觉得,我过生日,最开心的人反而是的我家人。老婆就一直掂记着今天要去哪里请我吃大餐,父母和兄弟姐妹也陆续远隔千里送上祝福。我对生日是否让自己变得与众不同没有什么热情,煨鸡蛋已经不罕见了,蛋糕也随手可得,最重要的是快乐也不是奢侈品:我的生活中处处皆是微小的快乐源泉,累了倒头可睡,醒了可以看电视玩手机搜索文章写代码,倦了就带上小狗去溪里探索新路径,要是有伴同行可以去附近爬山、冲浪、浮潜。要知道,我10年前就已经“退休”了,不再朝九晚七的上班了,只能在周末睡到自然醒的人们的满心欢喜我是体会不到了,倒是能体会到心如止水的平静,从不焦虑。

早上下大雨,开车送老婆上学后自己一个人撑伞去当地朋友的早餐店吃早餐。薯条、咔啦雞腿堡和柠檬红茶是我的固定早餐内容。吃早餐时在想赚些生日祝福的同时为最近写的书签网站打广告,后来想想,这网站虽然主要功能都能完成了,但未经考验,搞不好有BUG,还是先服务自己一段时间再说。前段时间一起在加紧写代码,想在生日这天推出。在写的过程中,经常在苦苦研究方案后决定“先这么着,等有钱有高手帮忙再换成更好的方案”,于是舍弃追求“完美”,奉行“完成比完美重要”的原则,总算把网站功能拼凑出来了,非常有成就感。我没打算一开始就服务于成千上万的人,先服务自己,把流程和体验优化,然后服务于100个人,等这100个人满意了,我再找钱找服务器尝试服务于1000人..... 就算我瞄准的这个创业方向是逆潮流的,我还是坚信至少这工具对自己有用。要知道,我在做这个网站的一个月里,已经有类似的书签网站宣布关门了,老牌的del.icio.us 也半死不活很多年了。

还有一个产品,也在酝酿中,预计明年4月发布。合伙人要求暂时不公布,所以就不多说了。

睡个午觉醒来,有人说张锐去世了。 我去搜索一下才发现就是我想到的那个张锐: http://blog.donews.com/zrde/ 的作者,他的BLOG停在2008年年底,想不到他离开网易新闻后去创业创办了春雨医生,结果自己倒下了,创办春雨医生也没能让自己避免猝死。我订阅了张锐的BLOG读了很多年,他的BLOG的副标题是“新闻是一种理想”,完整的句式是:“新闻是一种理想。在白天,这是一句壮语;在夜里,那是一声叹息。” 这句话一直让我印象深刻,虽然我不是新闻从业者。

在张锐的BLOG首页底下,又惊现米兰昆德拉的话:

在《笑忘书》中,米兰昆德拉说:“人与强权的斗争是记忆与遗忘的斗争”

看到这几个字,我马上从床上坐起来,打开电脑,写下以上文字。

我的创业项目,奉行的正是这理念:自由开放的互联网应该是有记忆的,收藏是为了更好的记忆。

35岁在瑞穗的街头

台湾统一证号编码原则

$
0
0

外来人口统一证号编码原则
本署核发之外来人口统一证号编码,共计10码,前2码使用英文字母,
第1码为区域码(同国民身分证注1)
第2码为性别码(注 2)、3至10码为阿拉伯数字,其中第3至9码为流水号、第10码为检查号码。

注1:英文字母代表直辖市、县、市别:
台北市 A、台中市 B、基隆市 C、台南市 D、高雄市 E
新北市 F、宜兰县 G、桃园县 H、嘉义市 I、新竹县 J
苗栗县 K、原台中县 L、南投县 M、彰化县 N、新竹市 O
云林县 P、嘉义县 Q、原台南县 R、原高雄县 S、屏东县 T
花莲县 U、台东县 V、金门县 W、澎湖县 X、连江县 Z

注2:
台湾地区无户籍国民、大陆地区人民、港澳居民:
男性使用A、女性使用B 

外国人:
男性使用C、女性使用D

统一证号的含义

        自九十年一月一日起:()由内政部警政署入出境管理局针对港澳、大陆地区人民及华侨于核发台湾地区居留证时,配赋统一证号。()由内政部警政署所属各居留地之警察局针对一般之外侨于核发外侨居留证时,配赋统一证号。(三)未曾取得前述机关所发证件,而有申报所得税需要之已入境外国人或在台无户籍本国人,一般外侨可由当事人或被委托人检附护照,向当地警察局外事科()提出申请,港、澳、大陆地区人民及华侨则检附台湾地区入出境许可证件,向入出境管理局及其所属台中、高雄及花莲服务处提出申请发给中华民国统一证号基资表


统一证号编码规则

一、统一证号编列规则:
共计十码,第一码为区域码(同国民身分证)、第二码为性别码(AB;警察局外事科/课使用CD)、第三至九码为流水号、第十码为检查号码。

二、检查号码计算规则:
第一码英文字母转换为二位数字码(转换之数字与国民身分证同),分别乘以特定数;第二码英文字母转换成二位数字后,只取尾数乘以特定数;余第三~九码,亦分别乘以特定数。检查号码=10-相乘后个位数相加总和之尾数。惟若相乘后个位数相加总和尾数为0,则迳以“0”为检查号码。
        举例:FA12345689
        (F:转换为15,A转换为10─>取尾数“0”)
        【第一码区域及第二码性别之英文码,先依据下列数字表换算,惟性别转换后之二位数字码,只取尾数。】
        

A


B


C


D


E


F


G


H


J


K


L


M


N


10


11


12


13


14


15


16


17


18


19


20


21


22


P


Q


R


S


T


U


V


X


Y


W


Z


I


O


23


24


25


26


27


28


29


30


31


32


33


34


35

        
                 1501234568(  )
            ×1987654321(特定数)
                 1507256528(不进位)
        
               1507256528
               41(将相乘后个位数相加)
               “41”(取尾数1───若尾数为0,则迳以“0”为检查号码)
           检查号码=1019

三、基资登录标准:
    依据机器可判读护照(Machine Readable Passport,简称MRP护照)之编列规则登录个人基本资料(先姓后名,姓名及护照号码均不准登录标点符号)

四、新旧居留证号转码方式:
    例:旧号:A123456   ──>新号:AC01234567
    说明:第一码维持不变;第二码依实际性别转换为CD;第三码补0;第四至九码带入旧号之六位数流水号码;第十码依据前述检查号码计算规则计算得出。
统一证号编码规则虽非机密资料,但仍请限目的内使用。

注:现在已经全部由入出国移民署负责,但编码规则仍然没有改变。

我在台湾经历、经验和感受

$
0
0
杨恒均前段时间带读者游学团来台湾,他说想听听我在台湾的经历、经验和感受。自从2009年分别在广州和韶山见过就一直没见过了。

我写下来,也许其他朋友们也想听听我的经验和感受。搞不好还能挣到打赏和红包呢。

前几天过生日,老婆说我这是在台湾的第6个生日了,我才住满5年,因为我是30岁的公历生日前一天来到台湾,所以说是第6个生日也没错。

我的生日是农历九月初六,公历10月3日,我是农村长大的,公历生日其实不重要。

2011年1月24日和老婆在大陆办完结婚证,经历护照、香港通行证被注销,老婆写陈情信透过海基会、海协会向中国公安部申诉,暑假还亲自拜访当地国保大队长,终于重新办理了护照和台湾通行证。


2011年的10月2日傍晚,我终于飞抵台北松山机场。第二天是我的公历生日。可以这么说,30岁以前本公子都住在大陆,30岁以后已经在台湾住满了五年。

每个人的生活其实和电影一样,差别就在于有没有背景音乐和观众。

初来乍到一个陌生的国家,我可没打算在台湾装“过江龙”,有次聚会,作家张铁志问我要不要帮我推荐一些演讲机会,我表示台湾像我这样的人很多,我在台湾贬值了,婉拒了他的好意。

我在台北的汀州路和牯嶺街交叉的附近住了一年,在淡水的学府路住了一年,然后搬到了花莲县的瑞穗乡,又住了三年了。

汀州路是安静的旧城区,淡水的学府路是繁华的游客区,瑞穗乡是安静的游客区。

我不住城市里的原因是,我没计划去大公司上班,不拉帮结派别也不开宗立派,没想过要发大财,赚少一点钱,节奏慢一点会更开心。

住到瑞穗乡后,邻居非常友善,乡下可以养狗,可以上网,可以在家写文章写代码,可以和下班的老婆在周围的农田附近骑自行车兜风,周末可以去附近上山下海游山玩水,远离水深火热的大陆,rapid growth markets也跟我无关,有点“小舟从此逝,荒岛寄余生”的意思。

杨恒均多年来自称是“民主小贩”,游历过许多民主国家,我就讲讲台湾的民主社会里的生活感受吧。

台湾的生活看上去很浪漫,台湾的历史其实很残酷。

我先说浪漫的部分吧,残酷的部分后面有空再说。

台湾有一个正式的名字叫“中华民国”,但有些人的政治观点认为两者是不能等同的名词,有些人认为是可以等同的名字。当然,谈起这个就会马上有争议,承认别人有不同看法就好,不必试图说服对方完全接受自己的观点。在此不赘述和延伸。

据我所知,有名气的人里,有韩寒、蒋方舟、笑蜀都在台湾经历了丢钱包却失而复得的经验,于是台湾让部分爱好“民国”的人里有了“纯洁的民主社会里的人道德水平极高”的想像。失而复得的经验确实让人由衷赞叹台湾人民相对大陆人民的精神境界,不过,还是建议大家来台湾时照顾好自己的钱包,不要让其他人造成困扰,拿走你的钱包费时间,不拿走你的钱包也得费时间帮钱包找原主人。故意让钱包经历浪漫的冒险之旅就更不可取了。要知道,台湾的“电信诈骗”可是全球闻名,人都没见到,钱就被诈走了。盲目相信“民主社会居民道德水平极高”,和盲目相信“台湾人都是电信诈骗专家”,还有盲目相信“台湾人只要不爱国民党就是支持台独”,这都是一种偏见。

刚到台湾时,《赛德克巴莱》正上演,成为台湾电影的骄傲之作。这是一部介绍原住民对日本统治台湾的反抗的电影, “如果文明是要我們卑躬屈膝, 那我就讓你們看見野蠻的驕傲” 这句话感染了许多人。

《牽阮的手》是另一部台湾电影,纪录台南的社运人士田朝明医师田孟淑夫妇的浪漫故事,时代背景是台湾近半个世纪的民主运动发展历史,医师、律师、宗教人士、人权工作者、作家一起推动了台湾的民主进程。

刚到台湾的第一个星期,我就去了宜兰的慈林教育基金會,参观了台湾的百年社会运动史料中心,那里能看到《自由中国》杂志,能看到雷震的照片,还有许许多多政商文化名人的照片和故事,彼时对台湾的历史还不太熟悉,未能记住许多人名,也许有空还要再去一次。

和老婆度婚假的时候环岛旅行了一番,去绿岛看到了劳动改造的“新生训练营”,参观了他们的宿舍,里面的场景似乎跟我去外地读书的宿舍差不多,甚至还有人在睡觉前弹吉它的蜡人像,劳动改造似乎也很浪漫的样子。我拿走了一张“新生证”,大意是经过劳动改造,思想也被改造了,可以重新进入社会获得“新生”了。 

还进关过柏杨、李敖、陈水扁等人的绿岛监狱参观了。这可是我人生第一次真正进监狱,里面像学生宿舍,但四个走廊联结成X型。有一个狱室里还有人行立牌,演示入狱的人的日常生活,大概20平方米的房间要挤十来个人。能毫发无损进监狱又出来,只有在绿岛能实现了。这辈子不犯法又能进监狱体会高墙铁窗内的心情的机会就在绿岛,走过路过不要错过。

在台湾,有很多参加社会运动的机会,可以无所顾忌地走在大街上跟着别人一起游行。如反核电大游行、声援洪仲丘大游行,示威活动就比较难,因为示威比游行难遇到,游行要申请,可以提前得知,示威则通常是突发的。第一次参加示威是在台北士林王家文林苑强拆案,当时在家里听网络直播,后来听到警察强行拉人强拆了,我就去了现场,许多人已经被拉走了,警察站成人墙,这个时候就是示威的时候,许多人都会愤怒的向现场围观的人喊话,向警察喊话,只要不碰触警察,基本上不会有被打被抓的风险。这跟大陆不一样。警察通常是为自己的职业服务,其实也只是为上司服务,但不至于冒着被判刑的风险为上司服务,所以他们通常是没有任何表情的拿着木棍和盾牌站着。这个时候站在警察前面自拍是一点风险都没有的,可以上传到朋友圈展示你的勇气。我就这么干了,对比之下,台湾的社会运动安全多了。为什么这样呢?因为台湾的民间团体和新闻机构比较发达,社会制度里也对各种职业进行了专业的划分,警察和官员都要守法,人权公约写入了宪法,民众还有集会示威表达看法的权利,官员若胡作非为还是会有代价。

2014年3月,我还在318学运后进入立法院睡了三天两夜,做些力所能及的事,看到许多名人来演讲来打气,遇到许多有意思的年轻朋友。立法院相当于中国大陆的人民代表大会堂,能跟着抗议的人们一起占领立法院,听起来也很酷很浪漫啊。

2014年9月底,在香港参加香港记者协会举办的会议,香港警察对占领街头的香港人施放催泪瓦斯了,正好会议结束,我在午夜到来之前去现场用twitter做直播,在警察人墙前面自拍,体验了瓦斯的厉害,保鲜膜护眼有效,地上捡条毛巾打湿护口鼻有效,但脖子和手臂还是会被辣到。无法想像被催泪瓦斯醺到的人会怎么样,眼泪鼻涕和胃水都要辣出来,生不如死。但我活着回来了,很浪漫是不是?

2014年11月,台湾九合一選舉,正式称呼是“2014年中華民國地方公職人員選舉”。我在乡下观察了台湾的选举过程,选举前采访了四位乡长候选人中的三位,投票前一晚还坐乡人候选人的车去巡视村庄,所谓“护票”,是担心有人深夜用钱buy票。这次选举后国民党失去大片区域,主席马英九辞职,新北市朱立伦保住了市长位置,然后他当了国民党主席。

2016年的中華民國總統選舉,结果朱立伦见势不妙,迟迟不肯代表国民党参选总统,洪秀柱毛遂自荐,获得国民党提名为总统候选人,结果临近选举,朱立伦又想法让洪秀柱主动让他来选,在黄安的帮助下输给了蔡英文,为败选负责,洪秀柱没当上总统却当上了国民党主席。国民党沦落到“竟无一人是男儿”的地步。

在台湾也常在网络上看到昔日一起吃饭聊天的人陆续进了监狱失去自由,也不免想想,我在台湾享受到的自由也非常难得。

网络自由度话题

$
0
0
著名的关注自由的人权组织Freedom House在4天前发布了2016年度的全球网络自由度报告《Silencing the Messenger:Communication Apps Under Pressure》,各国政府增加对社群媒体及通讯应用App的审查压力,已对网路自由造成冲击。
推特CEO Jack Dorsey 今天为推特自动允许一个散布仇恨和白人至上的广告出现在推特上而道歉:
台湾的中央社作了简短解读《2016年全球网路自由度下滑 中国连续两年倒数第一》:
根據自由之家在今年初公布的報告顯示,台灣在該次評比中則維持和去年一樣的成績,在滿分100為最自由分數中,台灣得分89,亞洲地區中僅次於日本的96,名列亞太第2。亞洲地區僅有5個國家名列自由國家,按得分高低分別為日本、台灣、蒙古國、南韓與印度。

不过我没有在报告中找到taiwan字样,报告上的地图显示台湾并未纳入统计,呈灰色。不知道是不是我打开的页面不对。倒是新闻自由度报告上有台湾的评级,网络自由度(Freedom on the Net 2016)报告和新闻自由度报告(Freedom of the Press 2016 report)是两个不同的报告。

下图来自全球网络自由度报告,显示叙利亚都比中国强,就伊朗比中国差,垫了个底。
今年一月份的时候,有一个“大陆宪政民主派”的人发表了一篇文章评论GFW审查系统,在承认GFW和共产党应该被指责的同时,赞美了GFW对中国网络产业的贡献,也提出在有明确法规下,民主的国家也会对网络进行审查:
即使中國大陸未來民主化,也一定會針對恐怖主義、邪教、宗教極端主義、煽動極端政治思潮、煽動族群歧視或仇恨的網站或訊息,進行一定程度的控制措施。——在明確法規和依法處置的前提下。
我当然不完全认可他的观点,因为从文章看来,他在不同的立场和政治观点中切换,从经济层面的分析,把网络产业上经济成就视为政治层面的合理性的来源,强调“网络疆域”的观点,认为美国“挾自由民主之名,行殖民全球網路的暴利之實”。

我知道,在中国,从环球时报胡锡进到地方的国内保卫警察,官方一直在强调“网络疆域”的概念,认为美国透过国际互联网扩展了社会治理的疆域,对中国是一种威胁,所以中国要在政治上持反美态度——虽然经济交流上绝不反美——设置网络防火长城,消除外国网络和媒体对中国人的影响,捍卫“意识形态领域安全”。

为什么要删除或审查内容?
中国是一个一党专政的国家,没有真正的反对党,共产党执政的政府享有威权,对于社会治理采取粗暴的方式,不经充分讨论作出决策,快速推行政策,不允许反对,也不希望被纠错,对于来自民间的批评,不想花时间解决问题,而是解决提出问题的人,这样能营造“和谐社会”的社会面貌,政策推动比较高效,但不够民主。传统媒体如报纸、杂志、电视、电台,早已经体制化了,受制约无法鼓励公众透过媒体参与社会治理,网络发展起来后,声音更加多元,中国的各级政府采购“舆情监控系统”,用网络爬虫抓取网络内容,透过敏感词发现批评意见,然后联络网站网站运营方要求删除。

中国政府在网络上对外使用防火长城,先是屏蔽外国任何中文媒体,甚至英文媒体; 对内则使用“非营利网络备案制度”和“ICP许可证”制度,对所有产生文字内容的网站进行管控,若发现有对政府的批评文章,则责令删除,否则施加各种合法或非法的压力,迫使相关人作来删除措施。在这种“删除”文化的影响下,最早抄袭twitter的fanfou.com被拨掉网线了,而新浪微博则禁止搜索引擎索引内容的同时,加大审查内容的投入,则获得了生存机会,现在微信也是这样,制造了一个“不联网”的暗网的同时,增加审查力度,获得在“删除”文化下的喘息的机会。

这种“删除”文化带来什么的影响?

我在不同场合见过美国来中国交流的使馆官员,网友们常问他们对中国的GFW怎么看,美国外交官员显然不方便评论中国的政治,因为中国政府要求外国人“互不干涉内政” ,美国官员总是把政治问题切换成经济问题,认为审查影响创新,对经济影响是负面的。 同事,审查和过滤批评意见,对社会治理来说,失去了获取报bug的机会,这样会积累许多社会问题。

从删除到抓捕

在薄熙來主政重庆的时代,透过网络批评重庆政府的人都被公安抓到,然后不经法院审判就把人送到劳教所进行劳动教养,台湾的劳改营叫“新生训练营”。不过自薄熙來倒台后,侵犯人权的劳教制度也从法律层面废除了。不过,许多人因为网上言论被以“寻衅滋事罪”和“煽动颠覆”为罪名被抓捕了。更多的人是被封禁社交媒体帐号。


如果上面的链接404了的话,打开这个链接找: https://github.com/citizenlab/chat-censorship/tree/master/livestream

不写了,要写得完整就像写论文一样了,太辛苦:)


可以玩四年川普总统了

$
0
0
注意标题,是“可以玩四年川普总统了”,不是“可以玩四年的川普总统”,主语不是川普总统。

川普总统正式成为总统是在2017年的1月20号。这个“嘴巴很独特”的“黄毛小子”,从参选前到参选后都制造了N多话题,不知道是媒体在玩他,还是他在玩媒体,反正是大家都很嗨。

今天他制造了另一个政治不正确,惹来更多话题了:

他是称呼台湾的蔡英文总统为“President of Taiwan”,而法新社(AFP)则是用“Taiwan leader”
这两者有什么区别呢?对英文世界里的人没区别,目前都是指蔡英文总统; 对中文世界里的人区别可大了,称“President of Taiwan”是承认台湾有总统,是独立国家; 称“Taiwan leader”是“台湾领导人”,不否认台湾是独立国家,也不承认台湾是独立国家,照顾了北京的中国政府的情绪。通常在外交层面上为了给北京的中国政府的面子,都会用“Taiwan leader”来指代“President of Taiwan”。

相似的外交用语还有用 government on Taiwan 替代 government of Taiwan,字面上都是“台湾政府”,但后者就不政治正确。不过川普总统一向都是政治不正确的家伙,所以,在即将到来的四年任期里,川普总统一定继续挑站政治正确,一定能让媒体精英们玩上四年。

你看,川普总统反问了:
他说,奇了个怪了,为什么美国卖了几亿美元的军队装备给台湾我就不能接受台湾的祝贺电话。 他还是不知道为什么“President of Taiwan”应该替换成“Taiwan leader”。

也许他知道,他就是想玩玩大家。没准过几天他就开始改口喊“Taiwan leader”了。

注:“嘴巴很独特”的“黄毛小子”,纯粹字面意义,请川普总统及其华裔支持者看到此文不要来骂我哦。

申请成为twitter认证帐号的过程

$
0
0
看到方舟子居然成为认证帐号了,我于是也动了申请认证帐号的念头。

@Dennis_Chang 告诉我流程:
我打开twitter网站上看,上面的验证要求是:
We approve account types maintained by users in music, acting, fashion, government, politics, religion, journalism, media, sports, business, and other key interest areas. If you believe your account is of public interest and should be verified, this article outlines information about submitting a request.

说他们twitter公司只批准在音乐、表演、时尚、政府、政治、宗教、新闻业、媒体、运动和商业等方面有影响力的帐号类型,如果你认为自己的帐号对公共利益有关值得验证,你也可以申请。如果没申请成功,30天后再申请。申请验证必须提交以下资料:验证过的电话号码和EMAIL,提供简介,有设置大头照和页眉照片还有生日,有官方网站,twitter内容设置为公开。

我于是打开 https://verification.twitter.com/welcome开始提交资料

我提交了以下经验证尚未失效的链接,有美国使馆的链接,有时代杂志的链接,有BBC广播电台的链接,还有德国之声的链接,我想够借来装逼了:
http://iipdigital.usembassy.gov/st/english/article/2010/02/20100201172421ajesrom0.4381067.html
http://www.time.com/time/magazine/article/0,9171,1706500,00.html
http://www.bbc.com/zhongwen/trad/china/2010/02/100202_twitter_democracy.shtml
http://www.bbc.com/news/world-asia-china-24383291
http://www.dw.com/zh/a-3511869
其实还有美国国务院的链接,但失效了。

然后提交要求认证的理由,当然是想办法用英文吹嘘自己了,不过都有外部链接证实的哦:
Hi, My name is Zhou Shuguang  aka ZUOLA or Zola, I am a independent blogger , network engineer  , used to be very active at China,  many media call me " China's first citizen reporter ", focus on report sensitive issue and report online even Great Firewall blocked my website by social media like twitter since 2006 with one man one computer one camera.  like a lonely knight.
Time Magazine call me : Zhou Shuguang's brief but spectacular career as China's first roving citizen reporter on the Internet "
I was win a award from US department of state,  Twitter Contest Challenges the World to Define Democracy, here is link and photo :http://www.zuola.com/weblog/2010/02/1460.htm
https://www.flickr.com/photos/zola/4468241803/
http://www.america.gov/st/democracyhr-chinese/2010/February/20100202164217ajesrom0.5221783.html
http://www.voachinese.com/a/chinesecitizenwonusstatedept-20100202-83335657/460716.html
here is my English biography :
  Zhou Shuguang, a.k.a. Zola, is a self-taught internet technologist and former
  network administrator who received his certification as a network engineer in
  2004. Since May 2004, Zola has maintained a blog at http://www.zuola.com
  where he shares often useful and interesting information, occasionally focused
  on social issues. In 2007, Zola reported on what was being called "the
  most awesome nail house in history" in Chongqing, subsequently attracting
  the attention of traditional media. Since then, Zola has participated on the
  reports of various sensitive stories and breaking news events such as the "Resist
  P-Xylene Plant" Demonstration in Xiamen, the Yilishen scandal in Shenyang,
  the "Weng'an Uproar", the CCTV headquarters fire, the stabbing of
  a prominent blogger in Qianliexian, and the news of Hangzhou resident Tan Zhuo
  who was killed by a speeding sports car. By reporting on these and other events,
  through various social networking platforms, Zola has since received widespread
  international attention. He is one of the many veterans fighting the censorship
  of news and Internet restrictions in China. Zola has received interviews by
  both domestic and international media, and is the subject of much academic discussion
  in the area of new media. Zola has been invited to Beijing Foreign Studies University,
  Beijing University, Tianjin Normal University , National Chung Cheng University,Soochow University,Leiden University to exchange with journalism students.
  Zola continues to host seminars on new media technology in Beijing, Guangzhou
  and throughout mainland China. At present, Zola has been providing independent
  blog services and other technical training services for netizens .

当然,下面的内容长长,并且不许放链接,于是删除成这个样子:

提交后再确认内容:

12月1号申请,过了三天,今天4号,居然就发现自己有蓝色的勾了。这样我就成了中文用户里不多的验证帐号之一啦。不枉我9年多来一直在使用twitter啊。以后我就可以更有底气跟人家谈广告合作啦,欢迎用心做产品的人给我产品和奶粉钱啊,我会用心写评测哦。






伊斯兰传教网站edialogue.org背景调查

$
0
0
https://edialogue.org/ 的中文广告出现在 adsence上面:

我觉得惊讶,想知道这是ISIS用来在中国找持中国护照的人肉炸弹,还是某些情报机构用来钓鱼的网站。于是作一些调查。



首先,从域名持有人入手:

http://who.is/来查,https://who.is/whois/edialogue.org

得到的信息如下:

  • 域名在godaddy.com 注册;
  • 注册信息被隐藏了,购买了godaddy的 whois 隐藏服务;
  • 注册时期是2016年9月8日;
  • 域名续费了4年,2020年10月20号过期;
  • 用了cloudflare.com 的服务,隐藏了主机位置;

干得干净漂亮,藏得很好,一点痕迹都没有,以个人力量找不到这幕后的操作者和背景。

然后从网站证书找线索,得到如下信息:

  • 证书由 COMODO ECC Domain Validation Secure Server CA 2 颁发;
  • 证书由CloudFlare提供,同时提供给39个域名使用;
  • 证书有效期只有半年。

又隐藏得漂亮。

从网站上面找线索。

首页标题是“寻找人生的目的”,页面中间是“让生活更美好”:

“关于我们”这页提供了以下信息:

寻找真正的目的&和平
很简单地介绍伊斯兰
希望能在友好、轻松、热情的氛围中与非穆斯林一起分享伊斯兰的真理和美好。使用独特的科技手段,娱乐消闲中为您解说伊斯兰是我们的荣幸,我们的操作员为您提供24/7的服务,他们能回答所有的问题,我们的开始只是一个点击。
请您今天与我们进行在线聊天!
01. 我们的使命
使用礼貌并且有趣的科技手段,打破障碍,消除误解,从而开导和启发非穆斯林
02. 我们的愿景
给全世界的非穆斯林解疑答惑,带去伊斯兰的祝福。
03. 我们的团队
该团队是由一群富有激情,奉献精神的客服组成,他们将以明确、真诚并且很有趣地方式给大家分享美丽的伊斯兰真理

从“常见问题”里找到另一个网站: NewMuslimAcademy.org ,先不进行研究;

从“联系我们”找一个GOOGLE地图地址:
مركز ركن الحوار - eDialogue Center
在google maps里搜索,得到这个地址:
Al Rawdah, 达曼 32256沙特阿拉伯
edialoguec.com
+966 13 840 6464
看来在沙特阿拉伯的达曼市真有这么一个叫eDialogue Center的商家地址,看google地图上的评论,最早的点评是3年前的,不过都是阿拉伯文,看不懂。都是5星点评,应该都是赞美和祝福的话吧。

“联络我们”页面里,提供了一个窗口,提交名字、EMAIL就可能会被他们联系上。也提供在线聊天界面。

从相关的社交帐号查痕迹,有twitter帐号: https://twitter.com/edialoguezh 用的是蛋头,注册日期是2016年9月28日,无关注者,无被关注者,不过选择的地点是 Saudi arabia,即沙特阿拉伯,是一个政教合一的国家,关押着世界上最多的政治犯,也盛产石油。

另一个 facebook页面 https://www.facebook.com/eDialogueZH-683297908375641/示2014年2月23号就创建了, 6675 人说对此赞好,而且有 6672 人在追踪此专页,但没什么内容,不过也提供了和google maps里相同的信息,不过地图标记略有偏差。

这个网站还提供多种语言的界面:中文、Français、Русский、日本語、Español、Tagalog、Română、English。

从目前的信息来看,这个网站背后的人力物力支出不小,从9月开始,3个月就让网站上线,使用各种技术防范攻击(隐藏真实主机位置),而且采取的传播方式是先用google adsense打广告,然后获得有兴趣的人的主动联络,然后从中发展信徒。 

目前,我不确定这网站是不是ISIS的招募网站,也无法确认是不是政府支持项目。

可以得出的结论是:运营这个网站不是个人之力能做到的,应该有财团、宗教或政府的奖金在支撑。

若要进一步探究,则需要找个人发邮件过去研究一番了。在这之前,先得找一个简历比较有趣的人去做,万一对方是个机构,也懂得用GOOGLE去调查人家的背景呢。

被大公司“缺席審判”是甚麼樣的感受

$
0
0
海外網站博訊網的 facebook账号突然被删除,facebook不給任何解釋,並且強調不能恢復,意思是“你別抱怨”。
英文通知:
人工OCR如下:

hi,
Your personal account was recently disabled by Facebook. We are writing on behalf of the Facebook team to let you know that any applications that were under your sole control as a developer have also been disabled as a precautionary measure, which include :BowenPress (id #1014800445199267
if your account is disabled, please note that the Platform team cannot re-enable your account. To find out more about your disabled account, please visit the page of our Facebook Help Center http://www.facebook.com/help/?page=1048
Thank you,
The Facebook Platform Team
http://www.facebook.com/help/?page=1048會跳轉到  https://www.facebook.com/help/185747581553788內容是:

停權帳戶
如果您的帳戶已經停用,您將無法登入。請謹記,帳戶遭停用的原因有很多,而我們亦會依照個別情況處理不同個案。 
我的帳戶被停用
如果您的 Facebook 帳戶已被停用,您將會在嘗試登入時看見特殊訊息。
我們會停用違反 Facebook 使用條款的用戶帳戶。範例包括:
  • 違反 Facebook 使用條款的帖子內容
  • 使用虛假姓名
  • 冒充他人
  • 持續在 Facebook 上做出不被允許、違反社群守則的行徑。
  • 出於騷擾、廣告宣傳、推銷、交友聯誼或其他我們不允許的行為目的而與他人聯繫
如果您認為您的帳戶被錯誤停用,請提出申訴
注意: 如果您在嘗試登入時沒有看到停用訊息,表示您可能遇到登入問題。請前往幫助中心,取得帳戶登入的相關支援
你覺得這個答案有多少幫助?
在某些情形下,我們可能不會在停用帳戶前先發出警告。此外請注意,對於嚴重違反 Facebook 社群守則而被停用的帳戶,我們不會將其復權。
不知道博訊網是否有關係能讓Facebook的人重新檢查停用帳號的流程,是否有具體的事由導致帳號被禁用。

面對大公司的粗暴處理,個人往往感到無力。我被GOOGLE停用過adsense廣告,上門問理由也被拒絕回復; 我被豆瓣網刪除揭露騙子公司的文章,人家也是不吭聲不解釋。

被大公司欺負,往往是大公司擔當了“法官”這一角色,卻不給當事人“申辯”的機會,卻被“法官”作出了缺席審判和裁決。這就是被大公司欺負的感受。

小民無力,只有默默記錄下來。這是弱者唯一的反抗手段。當然,這手段在沒有言論自由的地方都無法成為手段,比如在中國(這裡的中國不包括台灣,台灣還是有言論自由的地方)。

IP地址与门牌号码对应起来你怕怕吗?

$
0
0
昨天,看到有人在twitter上批评百度高精度IP数据,介绍如何防范百度获得真实IP数据,基本原理是在手机里屏蔽百度的URL,防止信息被传送到百度的服务器上去。

为什么会有人想要阻止百度获取IP对应GPS定位数据呢?因为百度这项技术会暴露翻墙用户的真实地理位置,也会暴露使用其他固定IP上网的人们真实物理位置。

使用ADSL动态IP上网则会导致GPS地址飘忽不定,因为会有很多人得到这个IP,与GPS地址对应的关系也就没那么精确。

比如我家就是用的固定IP上网,当我打开 http://www.ipip.net/ip.html这个网站时,就会显示 中国台湾省花莲县瑞穗乡××路××段×××号” ,虽然门牌号码只差一位数就是我家正确地址,这也蛮可怕了。


但使用国外固定代理服务器上网的人就一定会被”百度高精度IP数据库“建立起精确的对应关系。

当你租用了一台国外的VPS,安装上VPN服务,用手机联接上VPN服务器,结果百度还是把你的VPS服务器IP对应上你家里的地址,而你不知情,以为在网上骂人没关系,于是破口大骂,然后被你骂的人找到你骂人用的IP,到“百度高精度IP”里查一查,找到你的门牌号码,在你家门上泼油漆,或是晚上堵在你家门口把你蒙个黑袋子打一顿,或是被人“查水表”...

http://www.ipip.net/这个网站是高春辉的,里面的数据都是他逐个整理的,他们不是以“高精度”为目标,而是以“准确度”为目标,我并不担心他们作恶。而百度的高精度IP数据就比较可怕,他们一定是通过手机软件获得GPS地址和IP的对应关系的。 也就是说,IPIP.NET可能知道我住在瑞穗乡,也会让他们的服务的使用者知道我这个IP是瑞穗乡的,而百度则会让“高精度IP数据”的用户知道我家的门牌号码。我当然会骂百度的老板李彦宏,而不会骂IPIP.NET的老板高春辉。

高春辉介绍道:“只要有app开GPS权限,你就有可能暴露!”

余晟说:“你用百度外卖下个单,收货地址详细到楼层和房间号”

也许有人觉得反正我在网上不做坏事,我不用担心隐私。但若是骗子利用了这些信息,你是否有心理准备,是否有知情权(be informed)呢?百度、腾讯、新浪、淘宝、顺丰、美团,这些能获取你IP、GPS和收货地址的网络公司,他们是否知会你收集并出售了这些数据用于其他用途?

我写这文章不是为了耸人听闻,而是inform(知会) 你,让你知道有些可能性,让你知道你能做什么。

防范“百度高精度IP数据”的方法有前面提到的屏蔽百度URL,http://zuo.in/blockbdiphttps://breakwa11.blogspot.tw/2016/12/baidu.html  都是这类方法。

另一种方式是不使用百度地图和百度旗下的手机软件,或者是使用百度的软件的时候不要给GPS权限。

得罪了有权势的人,如大老婆,或是当地大领导,然后在你逃亡和住宿的时候,安全的做法是,所有手机软件都不要开GPS权限; 或者你要“知情”,要了解到手机软件会泄露你的物理位置。

当你读完以上内容,哪天陌生电话能呼出你的名字,能说出你家住址,甚至能叫出你父母的名字,你不会惊讶,你会在心中大喊:“操他妈,我的个人资料又被卖了!” 恭喜你,你已经be informed .


在Ubuntu 14.04.1 LTS下安装Shadowsocks的笔记

$
0
0
听说Shadowsocks比较好用,于是买了一个内存极小价钱也很便宜的VPS来体验一下,顺便记录一下安装过程,免得下回换VPS服务器又要重头找教程。


Shadowsocks的官方网站内容貌似被删除了:

应该是创始人 clowwindy被喝茶了,所以被迫删除了。不过github上的项目是任何人都可以fork一下,复制到自己帐号底下,这个项目的源代码应该还某些帐号底下存在着。

都还在。这款翻墙软件支持多种平台。

第一步:

在Ubuntu 14.04.1 LTS下安装Shadowsocks很简单。只需要依次执行下面3条命令:apt-get update apt-get install python-pip pip install shadowsocks

第二步:

用vi /etc/shadowsocks.json 编辑文本文件,写入服务器地址和端口还有密码。对VI命令操作文本编辑界面不熟悉的,可以用熟悉的文本编辑器编辑好shadowsocks.json再用FTP软件上传到/etc/。
{
"server":"224.222.222.222",
"server_port":8080,
"local_address": "127.0.0.1",
"local_port":1080,
"password":"fuckgfw",
"timeout":300,
"method":"rc4-md5",
"fast_open": false
}
运行
ssserver -c /etc/shadowsocks.json -d start
这样就开启Shadowsocks服务器了。
如果遇到 ssserver: command not found 的情况,用下面的绝对路径指明ssserver的地址就好:
/usr/local/bin/ssserver -c /etc/shadowsocks.json -d start

第三步:


vi /etc/shadowsocks.sh

/usr/local/bin/ssserver -c /etc/shadowsocks.json -d start 
放到 /etc/shadowsocks.sh 里

第四步:

输入:
vi /etc/rc.local
在/etc/rc.local 里加入
nohup bash /etc/shadowsocks.sh > /root/rc_nohup.txt
服务器重启后就能自动开启Shadowsocks服务。

搞定!

备注:
 /etc/shadowsocks.sh 这个文件是把命令写在文件里,方便调用。
/root/rc_nohup.txt这个文件是方便排查故障的文件,里面有记录;

对VI命令操作文本编辑界面不熟悉的,可以用FTP软件下载rc.local后再上传到同样位置。

用crontab -e 把
@reboot nohup bash /etc/shadowsocks.sh
加进去也行,也是重启后运行。

收工。

关于德国雕塑上搭弓射箭的手法

$
0
0
我在台湾常常见到原住民在庆祝活动中拿弓箭比赛,发现弓箭工艺比较简单,于是上网搜索了一下弓箭,发现弓箭还蛮好玩的,有木弓,竹弓,PVC管弓,玻璃纤维弓,蒙古复合弓,有现代复合弓,有日本长弓,台湾原住民的弓比较接近日本长弓,比较长,力度也不大。蒙古复合弓比较传统,但工艺复杂,昂贵; 有现代复合弓工艺略简单,只有玻璃纤维弓最便宜,力道也大,工艺简单。我于是在淘宝买了制作玻璃纤维弓的套件,自己花一天就组装完成了。

射箭的手法有两种,箭搭在弓的左边还是搭在右边,拉弓弦的手法也相应的不一样,否则箭会掉下来,完全射不出去。

一种射箭手法是用大拇指勾弦,箭搭在弓的右边,虎口和食指压住箭尾,拳背与弓弦垂直,这样可以更紧的压住箭和弦,如果更用力一点,让箭向左弯曲,在放箭时会反弹,慢镜头可以看到箭尾会刚好避开左手的握把,不会擦到弓。这种射箭手法在网上被称之为“蒙古射箭法”。据说蒙古人发明了便于携带的能在马背上使用的强力的使用多种材料的复合短弓,加上独特的射箭手法比“地中海式射法”更快的射第二只箭,靠这点科技领先征服了亚洲。我试了一下,确实把箭搭在右边比搭在左边更快完成射箭动作。
佐拉在瑞穗秀姑峦溪河床上摆POSE教射箭

大拇指勾弦是蒙古射箭法的特征,所以通常要给大拇指戴皮套,或用玉扳指,至于后来王公贵族把玉扳指发展成身份地位象征那是后话不说了。

另一种射箭手法是使用右手的食指中指或加上无名指勾住弦。这种手法在网上被人称为“地中海式射法”。使用这种手法,箭必须搭在弓的左边。如下图这个黑人就是用这种手法:

微信上的朋友“文武之道”给我一张德国柏林的弓箭手雕像照片,我觉得手法有问题。根据F.LEPCKE BOGENSPANNERIN搜索到维基百科这更清晰的图片。我觉得下图雕塑中的拉弓女射手的射箭手法,是无法射出箭的,因为食指中指在拉弦的同时,会有一个向右的力让箭偏离弓,所以需要把箭放在弓的左边。放右边就总是会让箭掉落下来:
拉弓女射手雕像,柏林美术教授Ferdinand Lepcke作品,图片来自 wikipedia

下图都是拉弓女射手雕像,是柏林美术教授Ferdinand Lepcke作品,,这雕像似乎原来在波兰的比得哥什,后来弄丢了,搞了个复制品在德国柏林的旧国家美术馆。我认为这美术教授Ferdinand Lepcke真不会射箭。不知道从1910年这雕像面世以来,有没有人发现雕塑作者的这个错误。

我不懂德文,GOOGLE翻译也不完整,以上中文简介我是猜的,等熟悉德语的朋友留言补充啦。

维基百科这么介绍 ,:


图片来自Flickr用户 eT-pek

图片来自wikipedia

The Female Archer at The Alte National Galerie, Berlin 图片来自Yellopad

台湾自由行关于买上网卡和银行换台币的小建议

$
0
0
来台湾玩,推荐使用台湾的中华电信跟中国的华厦银行。不想错过中国手机的电话,那还是开通国际漫游吧。拿大陆漫游到台湾的手机,打台湾的任何电话0.99元人民币一分钟,跟台湾手机网内互打价格差不多,比台湾手机打台湾固话等不同运营商便宜0.6元人民币每分钟。  #宁赠友邦不予家奴#  #

经常有朋友来台湾环岛旅行,我会看到他们的旅行计划,不知道哪里的旅行书籍还是网站会推荐一些“传说中”的“名店”“必吃店”,结果他们都把这些我听都没听过的店写在旅行计划里了。

我觉得这样很傻,那些店未必非去不可。倒是太多按照旅游手册慕名而来游客去之后,反而本地居民并不青睐这些“名店”,我觉得,来台湾就是要理解台湾本地居民的生活方式,旅游景点和名店里的“特色”未必就是“台湾特色”,我觉得那些店是迎合了游客的特色店。

来台湾第一件事,是下飞机,第二件事是买手机上网卡,第三件事是签到打卡发照片。

台湾有至少三家移动电话运营商,远传电信,中华电信,台湾大哥大,好像还有一个威宝电信,不过不太出名,我也没体验过。我曾是台湾大哥大的用户,打电话不便宜,上网费不便宜。中华电信也不便宜。什么便宜?拿中国移动的电话漫游到台湾打电话和接电话都比台湾手机便宜,打台湾电话一块人民币一分钟,接电话两块,这比用台湾手机打台湾手机便宜。这样,祖国同胞就明白台湾手机费贵到什么程度了吧。台湾大哥大手机打台湾大哥大手机是网内电话收费4.8台币每分钟,合人民币1块,打其他运营商的电话是6.8台币,折合人民币1块四。中华电信也差不多贵,网页互打是4.8台币(约一块人民币),打台湾其他运营商或固定电话是 8.1~8.3台币,约人民币1.6元。来台湾也能看到“宁赠友邦不予家奴”的场景了。 所以啊,大陆游客来台湾,电话开通国际漫游就好,有电话接就是两块钱一分钟,打台湾电话就一块。下飞机就在机场买个中华电信的7天卡或15天卡,台湾把“不限流量”叫做“吃到饱”,7天卡约500块新台币,折合人民币100元左右。

03.jpg
中华电信提供外籍旅客通过网络预约预付卡的服务:https://123.cht.com.tw/webecss/PrePaidCard/Introzhcn.aspx

我为什么推荐中华电信呢,因为我去过一次八通关古道,发现山区有中华电信的手机信号却没有台湾大哥大的信号,作为游客,肯定不会只呆在城市里,一定会到乡下走走,中华电信就是首选了。我这个台湾大哥大用户,搬家搬到瑞穗乡下,结果这里没有台湾大哥大的营业厅。并且台湾大哥大没有自己的电信基础设施,网络接入基础设施都是租用中华电信的设施,中华电信的地位就想当于中国大际的中国电信,国有企业,基础设施好又多。

中华电信预付卡"如意卡”,无月租,但话费有有效期,接电话免费,180台币买1G流量,280台币买3G流量,可以用60天,用完为止,或满60天为止。但申请手续复杂,需要提供旅行证件,我不清楚持旅游签证能否办理到,我是用我的依亲居留证件申请了一张如意卡放在iPad里。 http://www.idealcard.com.tw/net.php

或用中华电信“放心讲方案”,需要签约,注销手续复杂,不适合游客。费用不贵,196元台币每月,可以用其中的180元买1G流量
http://www.emome.net/cell_phone_plans/monthly_rate_plan/relax_talk_plan 这些都比较合算,不绑约,不会爆掉帐单。

出机场前,大陆游客还得找银行换钱,把人民币换成台币才行。台湾的便利店内基本都有ATM机,可以用银联卡提现,但我不清楚手续费和汇率差价损失。要省钱,我觉得直接带人民币过来,然后找家“台湾银行”就可以不用手续费按当前汇率购买台币,注意,是“台湾银行”,不是台湾的银行,台湾的其他银行都会收取100台币左右的兑换货币手续费,“台湾银行”是国营的,工作人员都算是公务员,所以这家银行不会收取服务费或手续费。

另一个选项是在国内办一张华厦银行的储蓄卡,在海外每天有一次取款免费的机会,取款额度也够游客使用。不过最近国内有外汇限制,不知道这个渠道还好不好用。这几年碰到的来自中国大陆的交换学生基本都有一张华厦银行的储蓄卡。

另外,台湾许多地方提供iTaiwan和TPE-FREE的免费WIFI,只需要拿手机短信验证就可以免费上网,但只有火车站、地铁站和政府机关提供,繁忙地段会上不到网。我的TPE-FREE帐号可以免费用:用户名0920955544,密码112211,请多加利用。遇到iTaiwan的WIFI热点也可以用TPE-FREE的帐号,遇到WEB验证登录的时候选择TPE-FREE就行了。

总算搞清楚郭文贵和博讯创办人韦石在吵什么架了

$
0
0
郭文贵是谁?这是一个风云人物,跟关键词“盘古大观”“国安部副部长马建”相关的人,以下国内网络未被和谐的链接供了解郭文贵的背景:
  1. 财经独家:起底郭文贵 有中国特色的崛起之路
  2. 风暴眼:盘古大观背后的“贵”人秘事
  3. 腾讯财经:郭文贵与他的神秘“盘古会”
韦石又是谁? 也是一个风云人物,真名孟维参,海外中文网站博讯网的创办人,国保警察都要想办法翻墙去读的网站,谁在博讯网出名了,就把谁抓起来或监控起来。

郭文贵被反腐的中共逼得逃到海外去了,然后在尝试用twitter和海外中文网站爆料,不知道是想捍卫价值还是向中共敲山震虎来保护自己的财产和家人,总之,郭文贵是一个跟中国的贪官有密切联系的人,他知道很多事情,媒体也想利用他的爆料争取曝光率。

郭文贵 的twitter帐号是 https://twitter.com/KwokMiles ,围观者注意,这帐号仍然有cosplay的可能性。

韦石(孟维参) 的twitter帐号是  https://twitter.com/wmeng8 ,围观者注意,这帐号常发自拍和生活照片,cosplay的可能性比较低。

这几天老看到有人在转 郭文贵 和肖建华的内容,可我对官场八卦不感兴趣,也不知道 韦石 在和 郭文贵 吵什么架。今天早上被一个叫 “感恩吴” @ganenwu 的人拉到一个twitter私信群,说 自己是郭文贵,原来的帐号被锁了,暂时用这个。可我对 郭文贵 不熟,也不相信。直到后来中文  郭文贵  的 @KwokMile 恢复了,然后私信回复说 ganenwu 是他的帐号。不过,仍然有可能是“感恩吴”获得了“郭文贵”的帐号呢。不管了,是真是假对我不重要。

我去郭文贵 的twitter帐号看图片,然后花了几十分钟把图片拼起来,这才知道韦石在和郭文贵吵架的原因:
原来韦石的博讯网上有郭文贵不喜欢的内容,也可能是"Fake News",也可能是“Alternative Truths",反正是郭文贵希望删除的内容。 郭文贵私信联系韦石,提出可以提供千万投资,韦石信以为真,提出一个合作思路,强调博讯“没有为报道收费也没有为删文收费”,哪知道郭文贵仍然惦记的是删除内容,要求先“处理虚假报道, 我们再来谈投资”。

后来两个就扯破脸开始撕逼了,相互说对方私通中共,说对方下流。还把私信截图都晒出来了,然后我就把这些截图拼起来方便了解整个对话。图片被blogspot压缩,本来是576像素宽的,现在成这么窄了,如果需要原图,跟我要就是。


这个吵架的故事告诉我们,威逼利诱是江湖常见套路,能玩转“前国家安全部副部长马建”还能全身而退的郭文贵,可不是平凡人啊,这可是比赖昌星还牛的人啊。

要想关注这事的发展,请关注这个包含相关人ID的list: https://twitter.com/zuola/lists/storify 

我在研究如何对图像进行二维快速傅里叶变换,求指点

$
0
0
我发现了一个给图片加不可见的水印的方法, 据说这种“盲水印”不影响用户体验,又能追溯图片来源和传播过程,在捍卫版权和知识付费越来越看重的现在,这个东西应该蛮有前途的。我就在想,我没有Matlab2010a这软件,我无法体验给图片加密,我试试找找能否用PHP实现在线加盲水印的办法,希望能做成WEB应用。

我得到的线索来自这里:
解密:阿里巴巴公司根据截图查到泄露信息的员工的技术是什么
https://www.zhihu.com/question/50735753
解密:阿里巴巴公司根据截图查到泄露信息的员工的技术是什么
http://www.phpchina.com/portal.php?mod=view&aid=40242

大概技术细节是这两张图来解释:
加水印:
 然后解水印:

里面关键的部分是对图片进行“二维快速傅里叶变换”,英文叫 Two-Dimensional Fast Fourier Transform,在技术文档里通常简称为FFT。


我阅读了Fuqiang Liu 的Matlab2010a下的源代码,也去读了《如果看了此文你还不懂傅里叶变换,那就过来掐死我吧【完整版】  》,初步了解了快速傅里叶变换是怎么回事。

我找到以下关于FFT的PHP代码实现相关链接:
https://www.phpclasses.org/package/6193-PHP-Compute-the-Fast-Fourier-Transform-of-sampled-data.html ,这个类库能Compute the Fast Fourier Transform of sampled data,但我不知道怎么使用,有样本代码教我怎么做FFT和inverse FFT。
http://www.jasonbailey.net/stuff/php-fast-fourier-transform-fft-brighton-php-october-2013/

我也尝试找PHP是否支持 快速傅里叶变换,找到有图像组件
http://php.net/manual/zh/book.imagick.php下的 Imagick::forwardFourierTransformImage是支持 “离散傅里叶变换”,英文是discrete Fourier transform (DFT) ,但不知道与“快速傅里叶变换”Fast Fourier Transform(FFT)有什么差别。

这里还有一个 Two-Dimensional Fast Fourier Transform(二维快速傅里叶变换) 的文章,
http://imagejdocu.tudor.lu/doku.php?id=gui:process:fft 也是基于 Matlab在讲。

现在问题是,用php里的imagecopy函数合并背景图片和水印到同一张照片的功能我测试通过了,如何用FFT的类库对图片作FFT和inverse FFT操作?求有图像处理经验的的高手指导一下,我已经试过用英文搜索了,如 php Fourier image / php fft convert image / ,找到这些链接,http://www.fmwconcepts.com/misc_tests/FFT_tests/
http://www.roborealm.com/help/FFT.php
都不知道如何使用傅里叶变换对图片进行操作。

盲水印有人用clojure写了一个,还公开了源代码:一个智慧的水印 - Share - Clojure China http://clojure-china.org/t/topic/545

下面是Fuqiang Liu 的Matlab2010a下的源代码:
%%傅里叶变换加水印源代码
%% 运行环境Matlab2010a
clc;clear;closeall;
alpha=1;

%% read data
im=double(imread('gl1.jpg'))/255;
mark=double(imread('watermark.jpg'))/255;
figure,imshow(im),title('original image');
figure,imshow(mark),title('watermark');

%% encode mark
imsize=size(im);
%random
TH=zeros(imsize(1)*0.5,imsize(2),imsize(3));
TH1=TH;
TH1(1:size(mark,1),1:size(mark,2),:)=mark;
M=randperm(0.5*imsize(1));
N=randperm(imsize(2));
save('encode.mat','M','N');
fori=1:imsize(1)*0.5
forj=1:imsize(2)
TH(i,j,:)=TH1(M(i),N(j),:);
end
end
% symmetric
mark_=zeros(imsize(1),imsize(2),imsize(3));
mark_(1:imsize(1)*0.5,1:imsize(2),:)=TH;
fori=1:imsize(1)*0.5
forj=1:imsize(2)
mark_(imsize(1)+1-i,imsize(2)+1-j,:)=TH(i,j,:);
end
end
figure,imshow(mark_),title('encoded watermark');
%imwrite(mark_,'encoded watermark.jpg');

%% add watermark
FA=fft2(im);
figure,imshow(FA);title('spectrum of original image');
FB=FA+alpha*double(mark_);
figure,imshow(FB);title('spectrum of watermarked image');
FAO=ifft2(FB);
figure,imshow(FAO);title('watermarked image');
%imwrite(uint8(FAO),'watermarked image.jpg');
RI=FAO-double(im);
figure,imshow(uint8(RI));title('residual');
%imwrite(uint8(RI),'residual.jpg');
xl=1:imsize(2);
yl=1:imsize(1);
[xx,yy]=meshgrid(xl,yl);
figure,plot3(xx,yy,FA(:,:,1).^2+FA(:,:,2).^2+FA(:,:,3).^2),title('spectrum of original image');
figure,plot3(xx,yy,FB(:,:,1).^2+FB(:,:,2).^2+FB(:,:,3).^2),title('spectrum of watermarked image');
figure,plot3(xx,yy,FB(:,:,1).^2+FB(:,:,2).^2+FB(:,:,3).^2-FA(:,:,1).^2+FA(:,:,2).^2+FA(:,:,3).^2),title('spectrum of watermark');

%% extract watermark
FA2=fft2(FAO);
G=(FA2-FA)/alpha;
GG=G;
fori=1:imsize(1)*0.5
forj=1:imsize(2)
GG(M(i),N(j),:)=G(i,j,:);
end
end
fori=1:imsize(1)*0.5
forj=1:imsize(2)
GG(imsize(1)+1-i,imsize(2)+1-j,:)=GG(i,j,:);
end
end
figure,imshow(GG);title('extracted watermark');
%imwrite(uint8(GG),'extracted watermark.jpg');

%% MSE and PSNR
C=double(im);
RC=double(FAO);
MSE=0;PSNR=0;
fori=1:imsize(1)
forj=1:imsize(2)
MSE=MSE+(C(i,j)-RC(i,j)).^2;
end
end
MSE=MSE/360.^2;
PSNR=20*log10(255/sqrt(MSE));
MSE
PSNR

%% attack test
%% attack by smearing
%A = double(imread('gl1.jpg'));
%B = double(imread('attacked image.jpg'));
attack=1-double(imread('attack.jpg'))/255;
figure,imshow(attack);
FAO_=FAO;
fori=1:imsize(1)
forj=1:imsize(2)
ifattack(i,j,1)+attack(i,j,2)+attack(i,j,3)>0.5
FAO_(i,j,:)=attack(i,j,:);
end
end
end
figure,imshow(FAO_);
%extract watermark
FA2=fft2(FAO_);
G=(FA2-FA)*2;
GG=G;
fori=1:imsize(1)*0.5
forj=1:imsize(2)
GG(M(i),N(j),:)=G(i,j,:);
end
end
fori=1:imsize(1)*0.5
forj=1:imsize(2)
GG(imsize(1)+1-i,imsize(2)+1-j,:)=GG(i,j,:);
end
end
figure,imshow(GG);title('extracted watermark');

%% attack by cutting
s2=0.8;
FAO_=FAO;
FAO_(:,s2*imsize(2)+1:imsize(2),:)=FAO_(:,1:int32((1-s2)*imsize(2)),:);
figure,imshow(FAO_);
%extract watermark
FA2=fft2(FAO_);
G=(FA2-FA)*2;
GG=G;
fori=1:imsize(1)*0.5
forj=1:imsize(2)
GG(M(i),N(j),:)=G(i,j,:);
end
end
fori=1:imsize(1)*0.5
forj=1:imsize(2)
GG(imsize(1)+1-i,imsize(2)+1-j,:)=GG(i,j,:);
end
end
figure,imshow(GG);title('extracted watermark');


%%小波变换加水印,解水印大家按照加的思路逆过来就好
clc;clear;closeall;
%% read data
im=double(imread('gl1.jpg'))/255;
mark=double(imread('watermark.jpg'))/255;
figure,imshow(im),title('original image');
figure,imshow(mark),title('watermark');
%% RGB division
im=double(im);
mark=double(mark);
imr=im(:,:,1);
markr=mark(:,:,1);
img=im(:,:,2);
markg=mark(:,:,2);
imb=im(:,:,3);
markb=mark(:,:,3);
%% parameter
r=0.04;
g=0.04;
b=0.04;
%% wavelet tranform and add watermark
% for red
[Cwr,Swr]=wavedec2(markr,1,'haar');
[Cr,Sr]=wavedec2(imr,2,'haar');
% add watermark
Cr(1:size(Cwr,2)/16)=...
Cr(1:size(Cwr,2)/16)+r*Cwr(1:size(Cwr,2)/16);
k=0;
whilek<=size(Cr,2)/size(Cwr,2)-1
Cr(1+size(Cr,2)/4+k*size(Cwr,2)/4:size(Cr,2)/4+...
(k+1)*size(Cwr,2)/4)=Cr(1+size(Cr,2)/4+...
k*size(Cwr,2)/4:size(Cr,2)/4+(k+1)*size(Cwr,2)/4)+...
r*Cwr(1+size(Cwr,2)/4:size(Cwr,2)/2);
Cr(1+size(Cr,2)/2+k*size(Cwr,2)/4:size(Cr,2)/2+...
(k+1)*size(Cwr,2)/4)=Cr(1+size(Cr,2)/2+...
k*size(Cwr,2)/4:size(Cr,2)/2+(k+1)*size(Cwr,2)/4)+...
r*Cwr(1+size(Cwr,2)/2:3*size(Cwr,2)/4);
Cr(1+3*size(Cwr,2)/4+k*size(Cwr,2)/4:3*size(Cwr,2)/4+...
(k+1)*size(Cwr,2)/4)=Cr(1+3*size(Cr,2)/4+...
k*size(Cwr,2)/4:3*size(Cr,2)/4+(k+1)*size(Cwr,2)/4)+...
r*Cwr(1+3*size(Cwr,2)/4:size(Cwr,2));
k=k+1;
end;
Cr(1:size(Cwr,2)/4)=Cr(1:size(Cwr,2)/4)+r*Cwr(1:size(Cwr,2)/4);

% for green
[Cwg,Swg]=WAVEDEC2(markg,1,'haar');
[Cg,Sg]=WAVEDEC2(img,2,'haar');
Cg(1:size(Cwg,2)/16)=...
Cg(1:size(Cwg,2)/16)+g*Cwg(1:size(Cwg,2)/16);
k=0;
whilek<=size(Cg,2)/size(Cwg,2)-1
Cg(1+size(Cg,2)/4+k*size(Cwg,2)/4:size(Cg,2)/4+...
(k+1)*size(Cwg,2)/4)=Cg(1+size(Cg,2)/4+...
k*size(Cwg,2)/4:size(Cg,2)/4+(k+1)*size(Cwg,2)/4)+...
g*Cwg(1+size(Cwg,2)/4:size(Cwg,2)/2);
Cg(1+size(Cg,2)/2+k*size(Cwg,2)/4:size(Cg,2)/2+...
(k+1)*size(Cwg,2)/4)=Cg(1+size(Cg,2)/2+...
k*size(Cwg,2)/4:size(Cg,2)/2+(k+1)*size(Cwg,2)/4)+...
g*Cwg(1+size(Cwg,2)/2:3*size(Cwg,2)/4);
Cg(1+3*size(Cg,2)/4+k*size(Cwg,2)/4:3*size(Cg,2)/4+...
(k+1)*size(Cwg,2)/4)=Cg(1+3*size(Cg,2)/4+...
k*size(Cwg,2)/4:3*size(Cg,2)/4+(k+1)*size(Cwg,2)/4)+...
g*Cwg(1+3*size(Cwg,2)/4:size(Cwg,2));
k=k+1;
end;
Cg(1:size(Cwg,2)/4)=Cg(1:size(Cwg,2)/4)+g*Cwg(1:size(Cwg,2)/4);

% for blue
[Cwb,Swb]=WAVEDEC2(markb,1,'haar');
[Cb,Sb]=WAVEDEC2(imb,2,'haar');
Cb(1:size(Cwb,2)/16)+b*Cwb(1:size(Cwb,2)/16);
k=0;
whilek<=size(Cb,2)/size(Cwb,2)-1
Cb(1+size(Cb,2)/4+k*size(Cwb,2)/4:size(Cb,2)/4+...
(k+1)*size(Cwb,2)/4)=Cb(1+size(Cb,2)/4+...
k*size(Cwb,2)/4:size(Cb,2)/4+(k+1)*size(Cwb,2)/4)+...
g*Cwb(1+size(Cwb,2)/4:size(Cwb,2)/2);
Cb(1+size(Cb,2)/2+k*size(Cwb,2)/4:size(Cb,2)/2+...
(k+1)*size(Cwb,2)/4)=Cb(1+size(Cb,2)/2+...
k*size(Cwb,2)/4:size(Cb,2)/2+(k+1)*size(Cwb,2)/4)+...
b*Cwb(1+size(Cwb,2)/2:3*size(Cwb,2)/4);
Cb(1+3*size(Cb,2)/4+k*size(Cwb,2)/4:3*size(Cb,2)/4+...
(k+1)*size(Cwb,2)/4)=Cb(1+3*size(Cb,2)/4+...
k*size(Cwb,2)/4:3*size(Cb,2)/4+(k+1)*size(Cwb,2)/4)+...
b*Cwb(1+3*size(Cwb,2)/4:size(Cwb,2));
k=k+1;
end;
Cb(1:size(Cwb,2)/4)=Cb(1:size(Cwb,2)/4)+b*Cwb(1:size(Cwb,2)/4);
%% image reconstruction
imr=WAVEREC2(Cr,Sr,'haar');
img=WAVEREC2(Cg,Sg,'haar');
imb=WAVEREC2(Cb,Sb,'haar');
imsize=size(imr);
FAO=zeros(imsize(1),imsize(2),3);
fori=1:imsize(1);
forj=1:imsize(2);
FAO(i,j,1)=imr(i,j);
FAO(i,j,2)=img(i,j);
FAO(i,j,3)=imb(i,j);
end
end
figure,imshow(FAO);title('watermarked image');



Viewing all 114 articles
Browse latest View live