上周跟领导产生了一点点分歧。原因是我建议我们团队搞一个 Github Pages 把我们今年打算 研究的一些技术以博客的形式分享出来,领导的意思是在工作期间内研究的的属于公司不能对 外输出。我当然知道博客中不能透露公司或项目的一些敏感信息,那么这种情况我们还能不能 写博客呢?
今天早上躺在床上思考了几个问题:
- 员工在公司研究的一些技术能不能写博客?
- 公司应不应该鼓励员工写博客?
- 我写博客的目的是什么?
员工在公司研究的一些技术能不能写博客
我的观点是可以,但是有个大前提:
博客内容不涉及公司利益相关的内容。至于哪些是公司利益相关的解释权其实归公司,保密协议里应该有提。 (说实话我根本不记得公司的保密协议具体内容了,但这是基本职业操守)
我认为可以的观点:
- 调研的一些开源技术本来就是业界共享的,不存在公司机密这一说;
- 一些软件开源协议本身就要求你修改了其代码之后需要再开源,但实际上一些小公司大量的使用、修改开源软件,但很少遵守协议,更鲜有贡献;
- 一些文档使用了像creative commons这样的协议,原作者有权利要求你按照同样的协议再分发(复制、修改等之后的)内容,所谓的“分享主义”(Sharism)。
没涉及到法律,欢迎法律方面的大神来扫盲。
公司应不应该鼓励员工写博客
这是一个伪命题,鼓励与否是公司的主观行为。换个角度来说这个问题,如果鼓励员工写博客有什么好处和坏处:
好处
- 这是员工体现自我价值的一个途径、打造自己的一个名片,从而提升自己的成就感;
- 通过写博客能够提升员工的能力,如文档写作能力、沟通能力;
- 如果员工很牛,名声在外,也能提升公司的形象;
- 是团队组员之间或团队与团队之间交流的一个方式,可以加强技术氛围。
……
坏处
- 写博客花费了大量的精力,影响上班时间的工作;
- 上面提到的可能在博客中泄露公司的敏感信息;
- 上班时间写博客,“不务正业”。
……
关于最后一点我想再谈下,如果一个员工一段时间内就是工作上不是很忙,有一些空余时间,那他写一些技术博客可以否? 就像一些公司明明没那么多事非要逼得员工留下加班的这种傻逼文化,真的能提高员工的产出吗?
(当然这很大程度上取决于员工的素质)
我理解员工在公司最重要的是两件事: 为公司创造价值 和 实现自我价值,说白了养家糊口。公司把员工看成什么,员工就会对等 的去看公司。
没涉及到公司规章制度,法律合同。仁者见仁,智者见智。大家可以一起讨论下这个问题?
我写博客的目的
为了装,为了自我显摆。我从不否认这点,我前面的观点也提到这是体现自我能力,打造个人品牌的一个途径。现在这个社会 信息量太大,信噪比太低,早已过了酒香不怕巷子深的年代了。化装为动力没啥不好的,但只是这样就太low了。
哇,好炫酷,好牛!
我一开始写博客就是这个目的,觉得那些大牛都有博客,那么我也得有一个,写的博客也是为了写给别人看,有人浏览有人评论 都觉得开心,特羡慕那些粉丝上千的大牛们。简历上有一个博客园的链接,倍有面子。
瞎比折腾
程序员不就是喜欢折腾吗。我一开始用博客园写博客,然后用WordPress自己搭站,后来觉得国外VPS太慢还花钱,所以又用 Github Pages写博客,折腾了git、jekyll、markdown、sphinx,接触了Ruby和Python 等等。所以这个时候写博客本身倒不是 我主要目的了,而是我去年自己定的一个目标:让自己更Geek一点。
写给自己看
人贵我自知之明,慢慢我发现自己火候不行、文笔又不行,既不能深入浅出,也走不了程序员界段子手的路线。而且工作、 生活压力越来越大,也没时间折腾了。 渐渐觉得博客更主要还是自我总结和沟通交流吧,因为有些知识学习了再提炼总结下会印象更深, 掌握的更牢固,多和别人沟通才不会成为井底之蛙。其次才是给别人看,少点错别字最起码的吧。选择博客园是因为习惯了,还有就是简单、纯粹,大家都很可爱。
我相信很多人最后都会达到“不写”的境界,博客写与不写不是重点,重点是自我总结与沉淀。
最后,欢迎大家也来聊聊你们写博客的目的是啥?
本文链接:写博客的目的,转载请注明。
如题,初探oracle删除重复记录,只保留rowid最小的记录(rowid可以反映数据插入到数据库中的顺序)
一、删除重复记录可以使用多种方法,如下只是介绍了两种方法(exist和in两种)。
1.首先创建一个测试表。
id number,
username varchar2(20),
sal number
)
2.插入测试数据
for i in 1..10 loop
insert into my_users values(i,'carl_zhang',i+10);
end loop;
end;
begin
for i in 1..10 loop
insert into my_users values(i,'carl_zhang',i+20);
end loop;
end;
insert into my_users values(100,'carl',20.3);
commit;
3.查看重复记录
where 1=1
and exists(
select 'exist' from my_users b
where 1=1
and a.id=b.id
and a.username=b.username
having count(*)>1
)
order by rowid
4.查看重复数据中,rowid最大的记录(rowid可以反映数据插入到数据库中的顺序)
where 1=1
and exists(
select 'exist' from my_users b
where 1=1
and a.id=b.id
and a.username=b.username
-- having count(*)>1
having count(*)>1 and a.rowid=max(b.rowid)
)
order by rowid
5.删除重复数据,保留rowid最小的记录
where 1=1
and exists(
select 'exist' from my_users b
where 1=1
and a.id=b.id
and a.username=b.username
-- having count(*)>1
having count(*)>1 and a.rowid=max(b.rowid)
)
二、以上方法是通过exist实现,相比in、not in更加的快速。
1.如下,查看重复记录。
where 1=1
and (a.id,a.username) in(
select b.id,b.username from my_users b
where 1=1
having count(*)>1
group by b.id,b.username
)
没有评论:
发表评论