• 欢迎加“百元导航”为主页,windows8风格,0.3s极速加载
  • 王柏元的博客专用搜索引擎:极客人,就用“极客搜”!
  • 置顶推荐

    歪脖子树与花痴

    歪脖子树与花痴

    我们家的“歪脖子” 小时候,我家门前有一棵歪脖子大梧桐。梧桐很大,打我出生时就在那,打小就是歪脖子。那时我小,我问爸爸:“这个好丑啊,种在家门口一点都不好看,砍掉吧。”,爸爸笑着说:“傻孩子,这棵树用处可大着咧!这棵树有感情,须得一颗真心待她。”我不懂,人怎么和树有感情。 后来在夏夜里,妈妈给我讲起歪脖子大梧桐的”光荣事迹“: 我们家建在临近水库的陡坡上。与水库的相接的坡十分陡峭,近乎垂直,坡离我家房屋不远。 歪脖子大梧桐本来不歪脖子的,身体匀称,枝繁叶茂。后来一年夏天,黄梅县起了一场大风,并伴随大雨。大风吹倒了公路旁的108颗行道树,连根拔起,七倒八歪地横在路旁。许多人家的房屋都被掀起砸中路上的车和人,还有人家主屋外面的厨房被倒下的大树砸中,生生被敲掉了一个边角。妈妈说,那是她出生以来见过的最大的一场大风雨了。 ”那咱家呢?咱家怎么样了?“ ”咱家的房瓦也掀起了不少,这还不是主要的。因为我们家靠近陡坡,那天雨很大,大雨冲刷着陡坡。雨水裹挟着上面不经风雨的小花小草,冲垮了一层又一层黄沙。眼看就要垮到了我们家房子……“ ”啊...“我听着妈妈的话简直吓呆了,眼里几乎泛起泪来。 ”后来,陡坡知道跨到了那颗梧桐树下。梧桐大半的根系尽漏,清清楚楚地可以看见它们在地底下的纵深绵延,粗壮的根系在冲刷下露出了一道道沟壑……”,妈妈的记忆仿佛又回到那场大风雨中,“最后,另一侧的根仍旧死死抓住土地,而在梧桐的后面,再也没有沙石被冲垮掉;可是大梧桐在那场风暴中被吹歪向水库那侧,半边的大树干被吹断”。 “所以,梧桐被吹断了一半,就变成歪脖子了?”,我的心里对大歪脖子梧桐油然而生一种敬意。从此,小学的作文里,《我们家的‘歪脖子’》被我炒了一次又一次剩饭。 自从听完妈妈的故事,我再也不说砍掉歪脖子大梧桐的话了。而且我还会偷偷拿些家里装修完剩下的石灰,涂在歪脖子被吹掉半边树干留下的“伤口”上,防止虫儿咬,鸟儿做窝。我明白爸爸所说的一颗”真心“待树的奥义了。 歪脖子树,陪我度过温馨的童年,曾记得无数个夏夜,我偎依在妈妈怀里,妈妈坐在小木凳子上,听爸爸给我讲故事背唐诗,我们仨就在枝繁叶茂的大梧桐下乘凉,看黑幕下星星眨眼,看月过梧桐的如同冰霜,看萤火虫漫天飞舞的微微荧光。我就这样沉睡入温柔的梦乡中,梦里,我们仨,还有一棵”歪脖子“。 “花痴” 爸爸喜欢捣弄些果树种在家后面,比如无花果,石榴、李子树啊,偶尔会间杂一些花草。布局匀整,花木多二不杂;后来只要有人到我家,都会看看我家的”后花果园“,多是称赞溢美之词。也有人会说:”老王啊,种些花多好看,家旁边种果树多俗,你家又不靠卖果子挣钱;还是多种花好看“。 种花是情趣,种果是实用。养花是修身养性的很好的方式,处一方繁华簇锦之所,赏花色、闻花香,享受在心里——一个理想主义的好去处;而在无趣之人的眼里,自然是果树实在,摸在手里,吃在肚里,真真切切。 无一例外的是,凡是参观我家”后花果园的“人都会注意到”鹤“立在花团中的歪脖子树:“老王啊,你们养的花也好,种的果也好,就是这颗大树不好。歪向一边,还掉叶子,不好看,也麻烦,砍掉算了,可以腾出一大块地方养花”。 爸爸总是笑笑说:“这棵树,防风固沙,对我家房子有救命之恩,丑点有什么关系,关键有感情”。我知道,爸爸是以待人之真心待树。 不然人家怎么说,爸爸还是没有砍树,这一直到高中。只是,果树都被砍掉,换成了花草,最后我们家的邻里也都种起了花草。几家之间”争芳斗艳“,乐此不疲。 生活总需要点点花草装束,热爱生活,就应该懂得生活的情趣。 后来我上了初中,读了高中,再也没有在作文里无休止地炒”我家的‘歪脖子树’“的剩饭,歪脖子看惯了,也就觉得没什么大不了的。 直到高二的一次周五回家,刚进家,就闻见一股油锯汽油味,然后是一阵轰鸣声。我跑到后院,爸爸正在拿着油锯锯我们家的”歪脖子“,在油锯的震动下,梧桐叶哗哗划下,落了后院满地;旁边是两位叔伯,拿着绳索困住”歪脖子“的枝干,在下面用力地拉住绳索把大梧桐往水库那边拽,防止魁梧的大梧桐倒下的时候砸向房子。我有点发愣,很惋惜,很不解,但是在几位叔伯面前。我不能暴露作为高中生却像孩子一样的稚气。 油锯声轰鸣了半小时便停止了,梧桐的主干几欲伐断。爸爸和叔伯几个一起拉住绳子,叫我来帮忙,他们几个吆喝着,使劲力气将梧桐最后的交连的主干拉扯断。伴随着”吱吱“的撕裂声,歪脖子倒下了,枝叶打在水面上,如同呜咽,水库上残页铺面,还有滚下的鸟窝。 大歪脖子的生命就这样走向终结。 后面的事你肯定能想到,大歪脖子被大卸八块,被斧子劈开。主干卖给了木料厂,枝干成了灶里的可燃物。 我不解,我问爸爸,为什么要砍歪脖子,不是说了不砍它吗。 ”树大了,占地方,放在院子里也不好看“。 ”不好看有什么关系呢?不是防风固沙么“ ”现在不需要了“,原来由于我家房子临近水库,政府加固道路在坡上砌成一堵水泥和大理石浇筑而成的石墙。 我还想接着问:”不是有感情吗,不是房子的救命恩人么“,出于不让别人看出我”稚气“的心理,我不再追问。不过作为接受了科学教育的我,明明就知道,梧桐护房,只是它根系粗壮而已,也可以认为是生命的本能。 万物本无情,本自人多情。当初留你是真心,现在放弃你也是真心。当初为你辩护留你是真心话,现在下决心放弃你的诸多理由也是真心话,不是虚伪。 人和树,怎么可能有感情?傻瓜! 爸爸在除掉梧桐空留的地方又种上了花,花的品种也换了一批又一批。他常常向别人打听什么季节应该种什么花,我们家种什么花最好看,许多他从来没见过的但自己觉得喜欢的花都给种上,可最后这些花还是被换掉。 最后,我不知道他养花是不是真的爱花,还是真的是”花痴“。 我想,养花无可厚非,砍掉大脖子树也无必伤心。只是花木而已,没必要上纲上线到”喜新厌旧“的层面上来。 直到多年以后,我发现自己也变成了那颗大歪脖子树。是啊,不论弃与留,都是真心。   缺月挂疏桐,漏断人初静。拣尽寒枝不肯栖,寂寞沙洲冷。 2016年6月24日上午 情节完全虚构,如有雷同,纯属你抄我

    2年前 (2016-06-24) 浏览: 427 评论: 1
    梦“杭”行-参访阿里巴巴

    梦“杭”行-参访阿里巴巴

    一些废话作为先导 当今中国的互联网格局,已成“BAT”三足鼎立之势。BAT,百度、阿里巴巴、腾讯。三者各有千秋,百度的搜索,阿里巴巴的电商服务,腾讯的社交,都在各自领域代表着中国的最高水准。作为与IT相关的人,对这几家公司都会有一定的向往之情。 百度总部在北京,腾讯的总部在深圳,而阿里巴巴的总部及其部分园区则恰位于我们这次社会实践活动进行的杭州市。马云,阿里巴巴教父级总裁,出生于浙江杭州,毕业于杭州师范学院,把总部和几个园区设立在杭州自然不足为奇。以前我对一个地方出的人物对这个地方能有多大的影响并不感冒,但是这次却亲身感受到。人杰然后凸显地灵。支付宝风靡全国,在杭州影响尤甚。当你走过杭州大大小小的餐饮店,你会发现柜台前“支付宝扫一扫付款”是多么的醒目,这恐怕是其它任何一个城市无法企及的。说到这,发现这几个大boss设立总部的城市还是蛮有意思的,李彦宏在北大,现在百度总部在北京;马化腾深圳大学毕业,现在腾讯总部在深圳! 16楼参观,马总你真有情怀 在社会实践活动出发前,我们约好了在阿里巴巴工作的师兄师姐。上午我们访问了蚂蚁金服,中午逛了一下西溪公园,下午访问西溪园区。在蚂蚁金服,接待我们的一个学姐,在西溪园区接待我们的是一个学姐和两位学长。 来到阿里巴巴大楼,我们根据阿里事前给我们发送的邀请短信在类似银行柜员机的机器前输入访问ID,然后机器里就吐出了几张票作为访问通行证。 参观的目的是在参观办公陈设、人员面貌的同时窥探一个企业的企业文化。 在这次参访中,我们的活动范围只有“支付宝”大厦16楼,根据阿里巴巴的公司制度,每年只有一天职工可以带着自己的亲友参观他们的办公环境(无法让我们看到传说中程序猿的办公环境是我们本次参观的一个遗憾),这一天是5月20日—阿里日又称“亲友日”,2005年阿里巴巴公司为了纪念2003年5月的“非典”时期阿里人的激情和信念。学姐告诉我们,2003年的非典,在杭州的阿里员工及其家人朋友近千人从5月7日起开始了为期一个星期的隔离生活,阿里人可以在家里完成自己的工作。到隔离结束,没有人察觉到阿里巴巴的任何变化,相反,阿里的业绩却未因为非典受挫,并突破当月历史新高。同时,每年的这一天,阿里巴巴公司都会有庆祝活动,举行集体婚礼。 支付宝大厦16楼基本是一个展示厅,在一面墙上是显示蚂蚁金服业务在全国的实时监控的巨幕显示屏(来自百度百科:蚂蚁金服旗下的业务包括支付宝、支付宝钱包、余额宝、招财宝、蚂蚁小贷和网商银行(筹)等),这个场景十分炫酷、科幻感超强(因为禁止拍照,所以没图)。在这块荧幕中标注了蚂蚁金服业务在全国实时进行的热度图,已经此时全国用户的转账等记录,极客人想验证一下就掏出手机拿出支付宝转了一笔账,不过并没有发现自己的账户在列。 阿里巴巴是个集团,旗下业务很多,不过跟我们生活息息相关的几个业务好像都在蚂蚁金服,除此以外可能最为大众熟知的就是淘宝、天猫,还有被IT人士、站长了解的阿里云了。尽管阿里的规模很大,但依旧在扩大业务面,几个园区和分布在各地的分公司也各司其职。 在了解这些的期间,学姐也给我爆料一个我似乎在百度找不到的段子。由于业务的需要,本来阿里的一些业务需要搬迁到一座新楼,这座新楼已经完工,但是马总叫人看了一下风水,由于风水不好,搬迁的工作暂告搁浅;现在正在重建一座新楼,而已经建好的大楼如今一直是座空楼。唉,杭州城,寸土寸金,建好的大楼不用就是浪费。我只能说:“马总,你真有“‘情怀’"。 在展厅一侧的圆柱勾起的兴趣,柱子外有玻璃围绕,这根柱子名叫“手印墙”。“手印墙”周身书写了几句诗句,大意是阿里拼搏进取之志;上嵌颜色各异的手掌大小盾牌,盾牌里则填满了手掌印。阿里员工会在“手印墙”上留下自己的手印,大致意思是按手印立信,而“信”,是支付宝等公司的立身之本。 总的来说,阿里巴巴蚂蚁金服里面的环境大气又不失优雅。玻璃幕墙,街景一览无余,室内有盆景藤蔓,淡雅整洁。不过16楼应该只是单纯的展示厅,再好也只是参观,工作人员真正的办公环境我们不得而知。在此如果我说的再多,就可能沦为为阿里写软文了。 工作还是读研 在阿里巴巴接待我们的师兄师姐是清一色的研究生毕业,入职都不久。根据他们的表述,研究生被招进阿里的几率更大,不过他们都基本认为在本科时期就能进入阿里是最好的,因为在企业中我们接触的往往是与实际生活相关的东西,在学校里读研固然能学到更多的理论,但是其实进入企业、企业还是要花相当长的时间来培训你。也有学长提到:研究生的潜力比较大,但刚入职的时候会有落差感。 就目前在阿里巴巴等等公司的招聘公告和我对互联网公司的了解,它们并没有多少公司对应聘者的学历院校甚至专业有门槛。和阿里的招聘的公告一样,学姐也谈到进阿里专业不是问题,只要你对互联网计算机有一颗热爱的心。其实这个也并不奇怪,因为互联网专业相对航天航空这些专业需要强大的硬件设施来支撑,没有公司给你试验器材你根本玩不转,而IT业则不同,只要给你网,给你电脑,你就可以自学很多东西、实现很多东西,这些你可以通过许多网络黑客仅仅是初中毕业这些事实得到佐证。 没有外物给你的高门槛,羁绊与成就你的,就恰恰是你自己的实力,同时也决定这个行业竞争相当残酷。 阿里等级制度带来的启示 阿里的技术岗等级代号为“P”,管理岗为“M”。本科生进入阿里巴巴的初始等级为P4,研究生为P5,这些等级大致决定了你的薪酬和阿里对你的能力认定。每年阿里会有一个答辩会让员工展示自己的绩效然后评分决定你是否可以升级。 根据学姐学长的表述,我从互联网上找到下面的阿里巴巴的等级表与技术-管理映射关系: 了解一个你还没进入的互联网公司的管理制度,我想似乎和我们并没有半毛钱关系。然而在与师兄师姐们的交流中,我们学习到的是重新审视了自己的求职观: ①找一个你有实力胜任、很愉快地去奉献拼搏、薪酬丰厚但重要程度其次的工作 在学校,我们大部分对未来理想工作的理解似乎很简单,工资高就好。IT是普遍认为比较辛苦、压力很大的一个行业,社会上对程序员的调侃有的的确过分了一点,但是某种程度也反映了现实。 我们问了在阿里工作的师兄师姐,他们的工作时间没有很苛刻的限制,必须几点上班,必须几点下班。加班往往也不是老板逼你,而是你心甘情愿或是受压力所迫。可能你在原则上规定的上班时间迟到或者早退,并没有人来管你或者罚你工资,但是,一个前提是:你必须完成团队分配给你的任务。团队对迟到早退的人“惩罚”也是象征性的,每次开会的时候出钱请大家吃水果。 一位师姐告诉我们,虽然公司给的下班时间是晚9点,但是她回到自己的住所后为了完成给的任务,常常也要到11点后才睡觉。 一位师兄说,在完成常规工作任务时,阿里并不赞同加班,他们甚至认为经常加班的原因是你能力不够。当然如果有临时特别重要的项目任务要加班加点来完成除外。 阿里每年有个绩效展示的答辩会,会根据你的评定得分决定你是否晋升。你连续几年的评分再差可能阿里巴巴都不会解雇你,因为公司主动辞你还要支付给员工一定的赔偿,但是这样的人往往会自己主动辞职,因为这样的工作可能是他无法胜任的,留在公司只会徒增痛苦,迫于压力和自信心的打击他必须寻找新的公司去找一个有实力胜任、很愉快地去奉献拼搏、薪酬丰厚但重要程度其次的工作。 ②你的第一个工作很重要 同行的姚老师告诉我们,第一个工作你能否胜任,你能否愉快地去奉献,决定你以后工作生涯的心态,第一个工作如果让你充满信心,你以后的工作一路坦途,相反可能就会“破罐子破摔”。 ③程序猿技术能转管理很重要 程序猿不可能干一辈子技术,如果要想在IT一直干下去,转型管理是关键。阿里技术的P6、P7分别对应管理的M1、M2,两者等价转换,当你的技术达到P6以上时,你可以自由选择是否转型做管理。 把研究生要做的事安排到大三大四来完成 有学姐说的一段话令我印象深刻:在大学我们经常纠结去做许多事情,很多事与其纠结选择哪个,不如直接利用纠结的时间把两个都做了,只有在做的过程中才能更好的理解每个的本质。还有,很多人觉得自己在本科时期和别人差距有点大,想通过上研究生来弥补差距,但其实,完全可以在大三大四别人准备考研时你自己努力提高能力追赶别人,要知道两年时间可以做很多事的。如果对毕业后直接就业或者考研没有很清楚的倾向,学长们的建议是选择就业,一是在公司里的学习速度远比在学校里快,更容易接触到实际生活的问题,也更容易提高自己的能力。 其它 ①大三那个暑假实习很重要。阿里的暑假实习(实习工资5000左右)其实就是在做一个阿里员工新进阿里的培训适应工作。进阿里的前三个月,公司会对你进行一些授课形式的培训。如果你能在暑假实习就完成这些培训,无疑掌握了一些先机。这肯定不仅仅适用于阿里巴巴。 ②师兄师姐在阿里(当然不仅仅局限于阿里)帮我们算是积攒了一些资源,内推不仅仅为我们提供便利,也是在为他们积攒人气,好好把握这些资源。 参考文章:http://qiezhijia.wang/shu_qi_shi_jian_zhi_a_li_zhi_xing/

    2年前 (2015-07-25) 浏览: 843 评论: 9

    最新文章

    用Ruby简书爬虫统计用户文章信息

    用Ruby简书爬虫统计用户文章信息

    算法语言 1年前 (2016-12-16) 浏览: 354 评论: 0

    思沃大讲堂培训,要求我们把自己学习的心得感悟输出在简书上,公司还会统计大家的文章,包括文章数量、评论量、被喜欢量等等。这么多人,人工统计起来自然很麻烦,当然程序员会把这么艰巨光荣繁琐的工作交给代码,于是他们就写了一个爬虫。适值极客人正在学习Ruby,所以就突发奇想写了一个Ruby爬虫统计简书用户的文章,带动自己的Ruby学习。 如果让我抓取一个网站的内容,我的第一想法可能会是抓取它的HTML,不过也会反过来问自己一句这个网站有没有Rss订阅源地址,RSS的订阅源的内容是xml,相比html更加简洁和高效,而且由于xml的结构稳定一点(html可能那天换一个css可能就会导致我的爬虫用不了啦),解析起来会更加方便一点。在考察完简书没有提供RSS后,我就决定选择html来暴力地抓取简书了。 分析简书网址 首页:http://www.jianshu.com/ 用户主页:http://www.jianshu.com/users/用户ID(暂估计这么说) 我们可以获取用户的关注、粉丝、文章、字数、收获喜欢等信息 Paste_Image.png 用户最新文章http://www.jianshu.com/users/用户ID(暂估计这么说)/latest_articles 我们可以获取用户文章列表,以此统计用户文章的评论量、阅读量等等,通过遍历文章列表将评论量、阅读量相加即可获取评论总量、阅读总量 需要指出的是,由于文章列表页不能把用户的文章全部列出来,而是列出10条,用户在浏览器中滚动到文章列表底部会自动加载,是用js向后台请求数据然后在前端多次拼接出来,所以想一次性地抓一次就把用户的评论总量、阅读总量是不行的,用户列表页分页的。所以我采取分页抓取的方式,那么怎么知道用户文章一共有多少页呢?我们从用户主页中获取了用户的文章总数,所以除以10加1可以获取页数 用户列表页分页的,10条/页,其中第 m 页URL: http://www.jianshu.com/users/用户ID(暂估计这么说)/latest_articles?page=m Paste_Image.png 抓取网页,获取html Ruby提供的HTTP访问方法十分简洁高效,当然方法不止一种,对其他方法感兴趣的同学我自行Google,在此我贴出自己的代码:   顾问生义,我想不需要解释代码的意思了吧 根据上面介绍的简书网址规则,就可以通过上述代码抓取到相应网页的HTML 分析抓取内容的结构 获取完相应网页的HTML内容后要做的就是分析HTML的内容和结构。我们用眼睛很容易看出网页上的内容,但是爬虫看到的只有html源代码。下面我从抓取的HTML中提取了下列有用的代码: 用于提取用户的关注量、粉丝量、文章数、字数、收获喜欢数   用于提取用户文章评论总量、阅读总量   抠出关键信息 上面我已经提取出有用的关键的HTML,现在要做的是让爬虫做同样的事情。所以我用到啦正则匹配。 正则匹配出粉丝", "关注", "文章", "字数", "收获喜欢"   其他匹配代码请参看源代码 整合信息,多样化地输出成果物 当统计出用户的文章信息后,就是把统计信息输出来。为了让输出的产物更加丰富和自定义程度更高,所以我采取了渲染模板的方式,将数据和界面分离。 模板文件:   然后在Ruby代码中加载模板文件,并将@{title}、@{time}、 @{content}、 @{content}替换真实的统计信息   当然,那天只要加一个out2json就可轻松做一个API,实现更高的定制化效果啦 项目主页 https://github.com/geekeren/jianshu_spider 使用方法 下载项目代码并运行 更详细的项目介绍请移步Github项目主页

    Html5,你为什么要语义化标签?

    Html5,你为什么要语义化标签?

    算法语言 1年前 (2016-12-07) 浏览: 152 评论: 1

    语义化标签,顾名思义也就是可以直接读懂的标签。最早接触HTML5的时候,对HTML5的语义化并没有太深的理解,只是对Html几个新增的功能很感兴趣,比如画布;Html5的语义化标签,header,footer ,nav等,这些本质上就是Div,在html4时代,我们用div id="header","footer",也能漂亮地完成header、footer这些标签相同的效果,html5为什么要多此一举把这些div单独分离出来作为新的标签呢? 专注内容与结构 在HTML5之前,DIV+CSS实际上就能很好渲染出一个web页面。HTML5已不仅仅满足于怎样将一个网页表现出来了,而是更加专注网页的结构,更加务实地关注网页的内容。 我们用div来表示页面元素,但是这些div都没有实际意义。为了区分不同的结构,我们往往给这些div设置不同id,ID名称标记了这个Div负责的区块。而HTML5则为这些不同的区块创造不同的标签。 我们浏览过成千上万的网页,或看新闻,或听音乐,或看视频,最终你发现其实发现千万个网页实际上有着大同小异的结构:导航条、标题、内容、底部,几乎“万变不离其宗”,html5干脆使用不同的语义化的标签来各司其职地代表网页的不同部分。当使用了这些语义化的标签后,可以帮助你更好地理解网页的框架。 即使在没有CSS的情况下,HTML页面也能呈现出很好地内容结构、代码结构。 Paste_Image.png 我们来回顾几个HTML5几个语义化标签: 1):article标签:装载显示一个独立的文章内容。 例如一篇完整的论坛帖子,一则网站新闻,一篇博客文章等等,一个用户评论等等 artilce可以嵌套,则内层的artilce对外层的article标签有隶属的关系。 例如,一个博客文章,可以用article显示,然后一 些评论可以以article的形式嵌入其中。 2):section 标签:定义文档中的节(section、区段)。比如章节、页眉、页脚或文档中的其他部分。 3):aside 标签: 用来装载非正文类的内容。例如广告,成组的链接,侧边栏等等。 4):hgroup 标签:用于对网页或区段的标题元素(h1-h6)进行组合。 例如,在一个区段中你有连续的h系列的标签元素,则可以用hgroup将他们括起来。 5):header 标签:定义文档的页面组合,通常是一些引导和导航信息。 6):footer 标签:定义 section 或 document 的页脚。 在典型情况下,该元素会包含创作者的姓名、文档的创作日期以及/或者联系信息。 实例: 7):nav 标签:导航链接放在nav标签里。 nav标签里应该放入一些当前页面的主要导航链接。 例如在页脚显示一个站点的导航链接(如首页,服务信息页面,版权信息页面等等),就可以使用nav标签,当然,这不是必须的。 8):time 标签:定义公历的时间(24 小时制)或日期,时间和时区偏移是可选的。 该元素能够以机器可读的方式对日期和时间进行编码,搜索引擎也能够生成更智能的搜索结果 9):mark 标签:定义带有记号的文本。请在需要突出显示文本时使用 <mark> 标签。 10):figure标签:规定独立的流内容(图像、图表、照片、代码等等)。 figure 元素的内容应该与主内容相关,但如果被删除,则不应对文档流产生影响。 11):figcaption 标签:定义 figure 元素的标题(caption)。 语义化标签的默认CSS 语义化标签不是html5的“专利”,比如html5之前的h1、h2等等就是语义化标签,他们表示几级标题;虽然我们在html没有引入任何css时,我们仍然可以看到h标签有字体放大加粗的效果。 实际上,html本身是没有表现的,我们看到例如 h1标签是粗体,字体大小2em,加粗;strong是加粗的,不要认为这是html的表现,这些其实html默认的css样式在起作用,所以去掉或样式丢失的时候能让页面呈现清晰的结构不是语义化的HTML结构的优点,但是浏览器都有有默认样式,默认样式的目的也是为了更好的表达html的语义,可以说浏览器的默认样式和语义化的HTML结构是不可分割的。 浏览器默认的CSS 模块化,便于团队开发和维护 不同的语义化标签实际上为我们将网页划分了不同的模块,结构分明更利于分解模块,利于团队的合作和维护。或者当你自己审查元素的时候,当你看到“header”是自然知道这应该是网页的头部,你进入这个标签可能还会发现一个nav标签,你会很快联想到这是个导航条。你可以迅速顾名思义让自己或他人知道网页的结构,而不是看见一堆div让自己头大。 不同标签,其内容可能有不同的关注度 一个网页有不同的部分,但是不一定每一部分都是你感兴趣的,比如当你看到我写的这边文章时,你可能更加关注我的文章内容,可能不那么关注我叫什么名字,不会关注我有多少个粉丝。更夸张一点,当你看到一段精彩的电影时,不会关注旁边弹出的膏药一样的广告,相反广告只会让你恼怒。不同的语义化标签,实际上分割了不同的内容。 语义化标签更加标准化,让机器更懂HTML 读到上面的时候,你可能会说,用户看网页的时候,一般不会像那些程序员哥哥那样强迫症般地查看源代码来看看用了那些语义化标签(程序员哥哥。。。不好意思,好像说的是我自己),谁知道不同的模块,用了哪个语义化标签。对于人来说,不管你是语义化标签还是div,看到的都是活生生的、渲染好的网页啊! 其实,语义化标签,或许并不是给人看的(没有骂程序猿GG的意思),可能还是机器看的。 讲个例子,极客人在使用wordpress时装过一个为文章生成目录的插件。这个插件的原理就是遍历文章提取内容中的h标签,然后生成目录。实际上就是通过识别语义化标签的方式提取内容。 再讲一个类似的但是不是通过识别语义化标签的例子, 见过别人用过一些爬虫插件,就是把别人家网站的博客内容抓下来然后发布到自己的博客上,原理是需要在后台输出要抓取网页的网址,然后过滤网页内容中div的class属性来把文章的导航链接(往往是目录链接)、内容页分离出来。比如有的网站的文章目录使用div class="nav"的css样式,内容使用div class="content"的css,我们可以正则匹配一下nav、content把需要的信息过滤出来。但是不是所有的网站都是使用这种class名称,有的网站也许用div class="post"来表示文章内容。也就是说class="nav",class="content",不是一个标准化的名称。然后nav,article语义标签则为我们可以提供了一个标准化。如果我们很严格按照html5语义标签的使用规则来设计自己的网页,将很利于爬虫“看懂”我们的网页。 内容权重差异化,给SEO会带来变革吗 前面讲到,语义化标签更利于机器看懂我们写的html,同时不同的内容有着不同的关注度。个人绝对这对SEO可以带来一定的变革的。 当我们使用搜索引擎时,很恼火地搜到和搜索词完全不相干的内容。仔细一看才发现自己的搜索词实际上仅仅出现在一个网站的广告词。如果我们可以通过语义化标签,将网页的重点:比如文章的内容,放在一个article,不太重点的广告词、文章推荐列表放在aside里,就可以成功分化不同内容的权重。实际上搜索引擎可以给某些语义化标签更高一点的权重,从而提高搜索精准度。 当然,这是个人对搜索引擎的期待。若如此,这势必可以给SEO带来变革。 有许多个人观点希望大家交流斧正!

    Emmet优雅地搭建起Html骨架

    Emmet优雅地搭建起Html骨架

    技术应用 算法语言 软件开发 1年前 (2016-12-05) 浏览: 204 评论: 0

    曾经看见一位学长在PHP-Storm上输入一段奇怪的代码,当他按下了Tab键后,神奇的事情就发生了。 如果HTML也是一种编程语言的话,私以为Html会是我们接触到的最多的编程语言。可能有人并不知道什么是HTML(超文本标记语言),但是当他人生中第一次上网打开浏览器浏览网页的时候,他与HTML的邂逅就开始了……只是当初,他不知道纷繁绚丽的网页的背后,是HTML语言在默默支撑; HTML+JS+CSS是前端的三大语言。如果把网页比作人的话,HTML给了人以骨架,CSS未知赋予了血肉、发肤以至衣物、妆饰,而JS则给了他运动的灵魂。 这边文章从HTML讲起,对于HTML的基本知识在此就不便赘述了,Google一下,你就知道。在此,我主要讲的是怎样快捷地搭建起HTML的骨架。 把HTML比作骨架并非我心血来潮,我只是在告诉自己写HTML页面要有搭框架的意识。不瞒你说,我以前的HTML的代码都是拼凑而成的。哪里不对改哪里,效率很低。正向箭头 + 标签名+反响箭头这种重复的代码,写多了就觉得腻了。那么有没有什么快捷的方式让我们关注HTML的架构本身,而不是繁杂的html语言本身呢? 用Emmet Tab一下 Emmet的前身是大名鼎鼎的Zen coding,如果你从事Web前端开发的话,对该插件一定不会陌生。它使用仿CSS选择器的语法来生成代码,大大提高了HTML/CSS代码编写的速度 Emmet 的语法极客人目前还只是刚刚入门,这里主要是抛砖引玉一下,给大家几个例子,更专业的介绍与教程,给大家推荐下面文章:http://www.iteye.com/news/27580 ,在此我也就不大篇幅地复制粘贴了。 ** 输入“!”或“html:5”,然后按Tab键: ** * ** 连续输入元素名称和ID,比如输入p.foo: ** 还有一些较复杂的用法大家自行研究,在此不做赘述,因为我的作用就是抛砖引玉,勾起大家的兴趣。 ** 要见证奇迹的话建议自己亲手试一下!!** 一个例子:实现列表 我要实现的效果如下: 按照搭建骨架的意识,我们得弄清这个列表的结构是什么样子: ** 最外层一个无序列表,这个无序列表每个列表项都嵌套一个有序列表,这个有序列表有两个列表项,每个列表项含有个无序列表 ** Emmet语法如下:   Tab一下: 然后把文字填进去   效果预览 > Javascript 第一章 const let 第二章 function object Java 第一章 class package 第二章 private public 参考文章: * http://www.iteye.com/news/27580 * http://www.powerxing.com/emmet-syntax-cheatsheet/

    Ubuntu初见

    Ubuntu初见

    技术应用 1年前 (2016-12-03) 浏览: 212 评论: 0

    一、UI 大一的时候就喜欢装各种系统玩,所以在公司要求体验Ubuntu系统前就尝过鲜。对于一个初级用户来说,对一个操作系统最初的接触便是它的UI,我对Ubuntu系统的第一感觉是比较好看的Linux系统,它和Mac系统有点像,但是没有Mac好看。对于习惯了windows的操作系统的用户来说,我还是比较喜欢Windows7和Windows10的UI。不知道是系统本身的原因还是ubuntu对PC显卡支持的不太好的缘故,总有一种Ubuntu的界面渲染不够细腻的感觉。 不论怎样,Ubuntu在接触到的linux系统中是比较美观的一个,可视化操作的支持也是比较好的。如果你还抱怨Ubuntu不及windows漂亮的话,可以尝试在centos上安装一个KDE或者GNOME的桌面环境,就会发现Ubuntu是一个多么美观的Linux系统啦。 二、Linux的发行版 对Ubuntu的定义,最基本的就是Linux的发行版啦。以前总听说发行版这个词,却从来不知道发行版到底是个什么意思。于是查了一下资料在此和大家分享一下。 就Linux的本质来说,它只是操作系统的核心,负责控制硬件、管理文件系统、程序进程等,并不给用户提供各种工具和应用软件。所谓工欲善其事,被必先利其器,一套在优秀的操作系统核心,若没有强大的应用软件可以使用,如C/C++编译器、C/C++库、系统管理工具、网络工具、办公软件、多媒体软件、绘图软件等,也无法发挥它强大的功能,用户也无法仅仅使用这个系统核心进行工作,因此人们以Linux核心为中心,再集成搭配各种各样的系统管理软件或应用工具软件组成一套完整的操作系统,如此的组合便称为Linux发行版。 个人感觉,Linux和Ubuntu的关系与Android和MIUI的关系有一点像。不过Ubuntu在定制方面做的应该更多一点。纯净的Linux系统内核编译出来网上说只有几M大小,最小的Linux系统ttylinux 是一个只需要8M磁盘空间的小型发行版,最低要求是12M 内存。 三、推荐几个良心的GUI应用 wps wps office LInux版,强大的文字、表格、PPT办公软件。现在Android和Windows平台上的WPS office广告越来越多,而Linux上的却相当纯净。 下载地址:http://community.wps.cn/download/ 网易云音乐 发布不久后我就安装了,和Windows下桌面版和UWP版长得一模一样,支持在线和本地音乐播放,桌面歌词。 下载地址:http://music.163.com/#/download Wine QQ Linux下的QQ客户端,基本功能有的,但是感觉Bug比较多,因为和windows上2012年版的QQ差不多,现在好久没有更新了。 * 下载地址:http://www.ubuntukylin.com/applications/showimg.php?lang=cn&id=23 四、分享几个小技巧 多桌面和热区 下载Unity Tweak Tool,和Mac一样支持将鼠标移到屏幕的边缘显示桌面、窗口平铺、任务切换等。这个在同时打开很多窗口的情况下十分方便用户操作。 调出命令行窗口快捷键 Ctrl + Alt + T 更多使用技巧欢迎大家分享交流!

    网站自动跳转到cjb.net的惊险之旅

    网站自动跳转到cjb.net的惊险之旅

    计算机技术 1年前 (2016-11-07) 浏览: 404 评论: 1

    极客人昨天在访问王柏元的博客时发现,网站时不时地“抽风”地跳转向www.cjb.net这个网址,几乎刚一打开wangbaiyuan.cn就跳,访问其它的网址都没有遇到这等怪事。这种情况最开始只出现在360极速浏览器上,即使我下意识地清除缓存、cookie,依然没有奏效。最后我换了其它的浏览器,才发现就360极速浏览器才遇到这种情况,而且还是偶然出现的;在尝试网上的方法卸载浏览器插件等的方法解决未果的情况下我只得作罢。兴许360极速浏览器中毒了吧,呵呵,360还号称安全呢! 今天晚上,我发现自动跳转到cjb.net的恼火现象再次出现,而且这次不管什么浏览器都是如此,包括Edge、IE。这才让我觉得是不是网站被“入侵”了,而且”入侵“的方式很明显,植入了含有跳转代码的js。因为当我审查元素”禁用js“时跳转情况就不会出现。然后我看了看,王柏元的博客一个文章页就引用30个js,只要其中一个js文件植入了恶意跳转代码就会出现自动跳转,如此盲目地找谈何容易。 由于网址跳转得极为迅速,我相信这个js文件是在html的head 部分,最后发现我的头部引用一个新浪CDN的jquery.min.js,网址为: http://lib.sinaapp.com/js/jquery/1.7.2/jquery.min.js;这是我的wordpress主题提供的一个Jquery CDN源,当我把Jquery源由 CDN改成使用本地Jquery时,问题解决了,无疑是新浪的Jquery源被劫持了。打开这个js一看,难怪了: 而且lib.sinaapp.com域名下不管什么链接都是这个内容;最后发现网上推荐的Jquery CDN中,使用新浪的CDN还不少,估计这回中招的人应该不止我一个啊。最后我果断换成了百度的Jquery CDN:http://libs.baidu.com/jquery/1.9.1/jquery.min.js;当然,出现自动跳转到cjb.net的情况不一定和我是同一个原因,但是你可以按照我这个思路去找哪个js文件被污染了。    

    解决htacess RewriteRule中含有?的问题

    解决htacess RewriteRule中含有?的问题

    算法语言 1年前 (2016-11-07) 浏览: 103 评论: 0

    最近分别用PHP和java写个一个IP寻找地理位置的在线API,由于想让自己的URL看起来更加漂亮,便使用了htaccess Rewrite语法对URL进行了重写,其中出现无法匹配“?”的情况,最后解决了,在此给大家分享一下: 我想实现的效果是把 于是很容易写了下面规则: 然后始终无法实现相关效果,初步原因是rewrite不能把带问号的QUERY_STRING进行匹配,最后使用下面的规则成功了: %{变量名}可以获取请求的参数

    Android监听底部导航栏展开与隐藏

    Android监听底部导航栏展开与隐藏

    算法语言 1年前 (2016-08-12) 浏览: 760 评论: 2

    现在有些android手机具有底部虚拟按键的导航栏,这一设计去掉了物理按键,进一步增加了智能手机的屏占比。但这有时带来一些兼容性问题。 为了防止导航栏遮住布局,可以在布局上面添加“fitSystemWindows=true”属性。 如果要想监听导航栏的隐藏与显示,我们可以在布局文件的根节点下添加一个宽度和高度都“match_parent”的空布局,同时在布局上面添加“fitSystemWindows=true”属性,然后监听此布局的onLayoutChange事件,即可监听导航栏。

    Gradle下利用配置文件对构建工具版本集中控制

    Gradle下利用配置文件对构建工具版本集中控制

    技术应用 软件开发 1年前 (2016-08-12) 浏览: 148 评论: 0

    由于Android studio和Android相关SDK和构建工具具有极快的更新速度。对相关版本的修改有时候是一件比较敏感的事情,尤其是在团队项目中,个人在本地修改了相关工具的版本并且不小心提交到远程代码库,别人更新下来往往出现各种问题。Android studio项目文件中版本字段十分分散,当SDK环境出现改变时,修改起来还是比较麻烦的。本文章利用配置文件对构建工具版本集中控制。 在项目根目录下gradle.properties文件定义版本信息并赋值   在使用版本信息的地方引用gradle变量 Dependencies build.gradle(project) build.gradle(module)

    为什么要写作

    为什么要写作

    岁月 2年前 (2016-06-23) 浏览: 345 评论: 7

    初中高中的时候,我度过人生最苦痛的时候。所谓穷而后工,我喜欢上了写作,经历过一些事情,许多事看得更明白。一点新想法,一点对社会、政治、军事的思考,都喜欢诉诸笔底。生活的苦痛,自言自语地倾诉在周记本上,就是最好的疗养与调节。写周记是我高中时代最幸福的事情,也是最孤独的阶段,笔尖下的一撇一捺,是孤独行者心路的足迹。这条路上虽然只有你自己,但写作后的周记本,仿佛成为了解你全部的挚友。 初中的我语文很差,其实也不算差,只是语文在我的数理化面前相形太见绌。我很喜欢也很感谢初三的沈老师,她让我养成了写周记的习惯,经过一些事情“多愁善感”与无人理解的独语中,我喜欢上写作,那时的文字很多消极的语调,但是好在老师并没有给出所谓的“批评指正”,或许在我现在看来因为那些或许是每个人人生必经的负能量,让学生发泄一下是最好的引导解惑;相反,她还多次对我的所思、所痛表示赞赏与理解。写作,让我最后获得比同龄人更深沉的文字,也没让我走向消极与抑郁。 大学,尤其是今年,我想我又迎来人生思想涌动变化的高潮;关乎工作与时俱进的行业思维,关乎为人处世的世界观,关乎幸福的爱情婚姻观,都在发生变化。以前眼中自以为熟悉甚至视其为知己的人,一朝会变得完全不认识;对一个人的看法时而恨之极,时而爱之切。在思想的彷徨和爱与恨的交错间,曾经自认为稳重有沉淀的我再次在心中卷起狂风大浪。我认为,写作,能让我头脑更加清晰,心灵更加澄澈。头脑的混乱很容易让人对人对事发生误判,乃至对世界都充满恶意。做一个乐观积极的人,是那种经过锤炼依旧保持初心的乐观积极。初心决定前行的方向,锤炼让初心更强大。

    Android webview广告过滤的实现

    Android webview广告过滤的实现

    算法语言 2年前 (2016-05-02) 浏览: 4553 评论: 2

    现在大部分的android平台的浏览器都具有广告过滤的功能,同时大部分网站都有广告。广告行业是个盈利巨大的产业,就我看来,现在绝大部分的互联网产品,一般有两种营利模式:免费有广告和会员无广告;他们大部分(包括网站和APP等)盈利来源就是广告。作为用户而言,对广告十分反感,但是互联网上的服务我们能免费享受与支撑这些服务得以延续与成长却得益于广告。 百度了一下,网上竟然没有Android浏览器屏蔽广告的代码实现,所以极客人只能自己动手了。网页上的广告一般是站长在网页植入一段js代码,要想屏蔽广告只需要将这些js屏蔽掉即可。 WebViewClient的几个回调函数 要想对Webview实现一些高级操作,首先要学习WebViewClient的用法,这是Webview几个常用回调函数 1、public boolean shouldOverrideUrlLoading(WebView view, String url) : 在点击请求的是链接是才会调用,重写此方法返回true表明点击网页里面的链接还是在当前的webview里跳转,不跳到浏览器那边。 2、public void onReceivedSslError(WebView view, SslErrorHandler handler, android.net.http.SslError error): 重写此方法可以让webview处理https请求。 3、public boolean shouldOverrideKeyEvent(WebView view, KeyEvent event):重写此方法才能够处理在浏览器中的按键事件。 4、 public void onLoadResource(WebView view, String url) :在加载页面资源时会调用,每一个资源(比如图片)的加载都会调用一次。 5、 public void onPageStarted(WebView view, String url, Bitmap favicon) :在页面加载开始时调用。 6、public void onPageFinished(WebView view, String url) :在页面加载结束时调用。 初看上面的回调函数,极客人发现了一个巨大的坑,拦截广告就是拦截加载广告的js,上面的onLoadResource似乎是很合适的函数,只要判断onLoadResource的参数url是否是加载广告js的即可,如果不是广告相关的url正常加载,如果是则不加载。但是在使用onLoadResource之后才发现根本不行。 这里引用WebViewClient另外一个回调函数:public WebResourceResponse shouldInterceptRequest(WebView view, String url) shouldInterceptRequest有两种重载。 public WebResourceResponse shouldInterceptRequest (WebView view, String url) 从API 11开始引入,API 21弃用 public WebResourceResponse shouldInterceptRequest (WebView view, WebResourceRequest request) 从API 21开始引入 这里极客人暂且使用shouldInterceptRequest (WebView view, String url)完成对webview广告的拦截。 拦截广告资源URL 在Webview加载资源时会回调shouldInterceptRequest函数,我们可以通过重写shouldInterceptRequest函数实现对webview的资源请求进行处理。进行处理后返回数据。如果主程序返回的数据为null,WebView会自行请求网络加载资源。这里有个坑:不是shouldInterceptRequest函数返回null就能屏蔽掉请求!正确的屏蔽请求的方式: 下面是极客人写的屏蔽广告的NoAdWebViewClient类: 只需使用webview.setWebViewClient(NoAdWebViewClient webclient)即可屏蔽指定webview的广告。 判断URL是否含广告的ADFilterTool类:该类通过判断url是否包含在广告拦截库中 ADFilterTool.java 广告url资源文件(广告拦截库可自行百度更新):AdUrlString.xml 所谓广告拦截库,实际上是请求广告资源的url合集,网络上有大量的广告拦截库,读者可以定期更新一下文件来实现对广告的高效过滤。本文屏蔽的方式比较粗暴,凡是含有广告资源的域名统统禁止。要想实现更精准的过滤,访友你可以使用通配符匹配url的方式进行拦截,现在PC端的浏览器正是这样做的。    

    登录

    忘记密码 ?

    您也可以使用第三方帐号快捷登录

    切换登录

    注册