作者归档:月小升

关于 月小升

正在创业

对一个未知类型的数据,进行java判断

常见的情况是,我们从mysql读出了数据,批量灌入到HASHMAP里,于是这个HashMap里,有int类型,有string,有boolean,有long 下面的函数,直接判断出数据的类型,方便我们做转义的操作。之前写过一个instanceof 的专门用法。 public static <T> String getType(T t){ if(t instanceof String){ return "string"; }else if(t instanceof Integer){ return "int"; }else if(t instanceof Boolean){ return "boolean"; }else{ return " do not know"; } } 一般这么用。 Iterator iter = h.entrySet().iterator(); while … 继续阅读

发表在 JAVA | 标签为 , , , | 一条评论

ssh 隧道 技术

以下极其简单的ssh隧道技术,适用于任何操作系统,前提只有一个是你要有一台可以ssh的境外服务器。其实没有,去租一个,也非常便宜的 能做什么,带你去任何地方 1.ssh隧道的建立 ssh -D 7001 root@211.144.36.34 2.安装switchysharp http://www.switchysharp.com/file/switchysharp-v1.10.4.zip 在你没有能翻出去之前是无法上google的应用商店的,老实使用手动安装 手工安装 打开 Chrome,选择右上角的菜单选择 工具 -> 扩展程序(如图)或者在地址栏输入 chrome://extensions 按回车键。 将下载的压缩包解压,然后将那个crx文件拖到chrome里。 就好了。 如下设置 上一下youtube感受一下。 显然我们在用SOCKS代理 理解SOCKS代理其实非常简单。HTTP代理都用过吧,浏览器其实也是支持SOCKS代理的,玩法几乎一样,只是SOCKS代理通常不限制端口,所谓来者不拒。 实际上SOCKS代理普遍被许多应用程序支持:QQ、浏览器、MSN… 参考地址http://www.switchysharp.com/install.html

发表在 Linux | 标签为 , , | 留下评论

优秀程序员的10个好习惯,你有几个

在这个世界上,有数百万的人热衷于软件开发,他们有很多名字,如:软件工程师(Software Engineer),程序员(Programmer),编码人(Coder),开发人员(Developer)。经过一段时间后,这些人也许能够成为一个优秀的编码人员,他们会非常熟悉如何用计算机语言来完成自己的工作。但是,如果你要成为一个优秀的程序员,你还可以需要有几件事你需要注意,如果你能让下面十个条目成为你的习惯,那么你才能真正算得上是优秀程序员。 1. 学无止境。就算是你有了10年以上的程序员经历,你也得要使劲地学习,因为你在计算机这个充满一创造力的领域,每天都会有很多很多的新事物出现。你需要跟上时代的步伐。你需要去了解新的程序语言,以及了解正在发展中的程序语言,以及一些编程框架。还需要去阅读一些业内的新闻,并到一些热门的社区去参与在线的讨论,这样你才能明白和了解整个软件开发的趋势。在国内,一些著名的社区例如:CSDN,ITPUB,CHINAUINX等等,在国外,建议你经常上一上digg.com去看看各种BLOG的聚合。 2. 掌握多种语言。程序语言总是有其最适合的领域。当你面对需要解决的问题时,你需要找到一个最适合的语言来解决这些问题。比如,如果你需要性能,可能C/C++是首选,如果你需要跨平台,可能Java是首选,如果你要写一个Web上的开发程序,那么PHP,ASP,Ajax,JSP可能会是你的选择,如果你要处理一些文本并和别的应用交互,可能Perl, Python会是最好的。所以,花一些时间去探索一下其它你并熟悉的程序语言,能让你的眼界变宽,因为你被武装得更好,你思考问题也就更为全面,这对于自己和项目都会有好的帮助。 3. 理性面对不同的操作系统或技术。程序员们总是有自己心目中无可比拟的技术和操作系统,有的人喜欢Ubuntu,有的人喜欢Debian,还有的人喜欢Windows,以及FreeBSD,MacOSX或Solaris等等。只有一部分优秀的程序员明白不同操作系统的优势和长处和短处,这样,在系统选型的时候,才能做到真正的客观和公正,而不会让情绪影响到自己。同样,语言也是一样,有太多的程序员总是喜欢纠缠于语言的对比,如:Java和Perl。哪个刚刚出道的程序员没有争论去类似的话题呢?比如VC++和Delphi等等。争论这些东西只能表明自己的肤浅和浮燥。优秀的程序并不会执着于这些,而是能够理性的分析和理心地面对,从而才能客观地做出正确的选择。 4. 别把自己框在单一的开发环境中。 再一次,正如上面所述,每个程序员都有自己忠爱的工具和技术,有的喜欢老的(比如我就喜欢Vi编辑程序),而有的喜欢新的比如gedit或是Emacs等。有的喜欢使用像VC++一样的图形界面的调试器,而我更喜欢GDB命令行方面的调式器。等等等等。程序员在使用什么样的工具上的争论还少吗?到处都是啊。使用什么样的工具本来无所谓,只要你能更好更快地达到你的目的。但是有一点是优秀程序员都应该了解的——那就是应该去尝试一下别的工作环境。没有比较,你永远不知道谁好谁不好,你也永远不知道你所不知道的。 5. 使用版本管理工具管理你的代码。千万不要告诉我你不知道源码的版本管理,如果你的团队开发的源代码并没有版本管理系统,那么我要告诉你,你的软件开发还处于石器时代。赶快使用一个版式本管理工具吧。CVS 是一个看上去平淡无奇的版本工具,但它是被使用最广的版本管理系统,Subversion 是CVS的一个升级版,其正在开始接管CVS的领地。Git 又是一个不同的版本管理工具。还有Visual SourceSafe等。使用什么样的版本管理工具依赖于你的团队的大小和地理分布,你也许正在使用最有效率或最没有效率的工具来管理你的源代码。但一个优秀的程序员总是会使用一款源码版本管理工具来管理自己的代码。如果你要我推荐一个,我推荐你使用开源的git。 6. 是一个优秀的团队成员。 除非你喜欢独奏,除非你是孤胆英雄。但我想告诉你,今天,可能没有一个成熟的软件是你一个人能做的到的,你可能是你团队中最牛的大拿,但这并不意味着你就是好的团队成员。你的能力只有放到一个团队中才能施展开来。你在和你的团队成员交流中有礼貌吗?你是否经常和他们沟通,并且大家都喜欢和你在一起讨论问题?想一想一个足球队吧,你是这个队中好的成员吗?当别人看到你在场上的跑动时,当别人看到你的传球和接球和抢断时,你的团员成员能因为你的动作受到鼓舞吗? 7. 把你的工作变成文档。 这一条目当然包括了在代码中写注释,但那还仅仅不够,你还需要做得更多。有良好的注释风格的代码是一个文档的基础,他能够让你和你的团队容易的明白你的意图和想法。写下文档,并不仅仅是怕我们忘了当时的想法,而且还是一种团队的离线交流的方法,更是一种知识传递的方法。记录下你所知道的一切会是一个好的习惯。因为,我相信你不希望别人总是在你最忙的时候来打断你问问题,或是你在休假的时候接到公司的电话来询问你问题。而你自己如果老是守着自己的东西,其结果只可能是让你自己长时间地深陷在这块东西内,而你就更本不可以去做更多的事情。包括向上的晋升。你可能以为“教会徒弟能饿死师父”,但我告诉你,你的保守会让你失去更多更好的东西,请你相信我,我绝不是在这里耸人听闻。 8. 注意备份和安全。 可能你觉得这是一个“废话”,你已明白了备份的重要性。但是,我还是要在这里提出,丢失东西是我们人生中的一部份,你总是会丢东西,这点你永远无法避免。比如:你的笔记本电脑被人偷了,你的硬盘损坏了,你的电脑中病毒了,你的系统被人入侵了,甚至整个大楼被烧了,等等,等等。所以,做好备份工作是非常非常重要的事情,硬盘是不可信的,所以定期的刻录光盘或是磁带可能会是一个好的方法,网络也是不可信的,所以小心病毒和黑客,不但使用软件方面的安全策略,你更需要一个健全的管理制度。此外,尽量的让你的数据放在不同的地方,并做好定期(每日,每周,每月)的备份策略。 9. 设计要足够灵活。 可能你的需求只会要求你实现一个死的东西,但是,你作为一个优秀的程序,你应该随时在思考这个死的东西是否可以有灵活的一面,比如把一些参数变成可以配置的,把一些公用的东西形成你的函数库以便以后重用,是否提供插件方面的功能?你的模块是否要以像积木一样随意组合?如果要有修改的话,你的设计是否能够马上应付?当然,灵活的设计可能并不是要你去重新发明轮子,你应该尽可能是使用标准化的东西。所谓灵话的设计就是要让让考虑更多需求之外的东西,把需求中这一类的问题都考虑到,而不是只处理需求中所说的那一特定的东西。比如说,需要需要的屏幕分辨率是800×600,那么你的设计能否灵活于其他的分辨率?程序设计总是需要我们去处理不同的环境,以及未来的趋势。我们需要用动态的眼光去思考问题,而不是刻舟求剑。也许有一天,你今天写的程序就要移植到别的环境中去,那个时候你就能真正明白什么是灵活的设计了。 10. 不要搬起石头砸自己的脚。程序员总是有一种不好的习惯,那就是总是想赶快地完成自己手上的工作。但情况却往往事已愿违。越是想做得快,就越是容易出问题,越是想做得快,就越是容易遗漏问题,最终,程序改过来改过去,按下葫芦起了瓢,最后花费的时间和精力反而更多。欲速而不达。优秀程序员的习惯是前面多花一些时间多作一些调查,试验一下不同的解决方案,如果时间允许,一个好的习惯是,每4个小时的编程,需要一个小时的休息,然后又是4个小时的编码。当然,这因人而异,但其目的就是让你时常回头看看,让你想一想这样三个问题:1)是否这么做是对的?2)是否这么做考虑到了所有的情况?3)是否有更好的方法?想好了再说,时常回头看看走过的路,时常总结一下过去事,会对你有很大的帮助。 以上是十条优秀程序员的习惯或行为规范,希望其可以对你有所帮助。

发表在 科技精品 | 标签为 , | 一条评论

redis操作命令大全

一、key pattern 查询相应的key   (1)redis允许模糊查询key  有3个通配符 *、?、[]   (2)randomkey:返回随机key     (3)type key:返回key存储的类型   (4)exists key:判断某个key是否存在   (5)del key:删除key   (6)rename key newkey:改名   (7)renamenx key newkey:如果newkey不存在则修改成功   (8)move key 1:将key移动到1数据库   (9)ttl key:查询key的生命周期(秒)   (10)expire key 整数值:设置key的生命周期以秒为单位   (11)pexpire key 整数值:设置key的生命周期以毫秒为单位   (12)pttl key:查询key 的生命周期(毫秒)   (13)perisist key:把指定key设置为永久有效 二、字符串类型的操作   (1)set key value [ex 秒数] … 继续阅读

发表在 数据库 | 标签为 , , | 留下评论

redis使用场景

不要放冷数据 首先,对于冷数据,无论大小,都不建议放在 Redis 中。Redis 数据要全部放在内存中,资源宝贵,把冷数据放在其中实在是一种浪费,冷数据放在普通的存储比如关系数据库中就好了。 冷数据的例子 1.网站的文章 2.几万年不变的数据 放热数据 尤其是写频繁的热数据,如果量比较小,是最适合放到 Redis 中的。 热数据的例子 1.用户注册数 2.文章阅读量 3.热度排行榜 4.用户订阅量 一个游戏,用户分数存储结构     ZADD leaderboard <score> <username> 例子:一个在线游戏你会需要 1.前100名高手榜 ZREVRANGE leaderboard 0 99 2.某一个用户在游戏的实时排名 ZRANK leaderboard <username> 3.强大的计数功能 这要感谢INCRBY和其他相似命令。 INCR user: EXPIRE     user: … 继续阅读

发表在 JAVA, 数据库 | 标签为 , | 留下评论

redis可视化数据查看工具

Redis是一个超精简的基于内存的键值对数据库(key-value),一般对并发有一定要求的应用都用其储存session,乃至整个数据库。不过它公自带一个最小化的命令行式的数据库管理工具,有时侯使用起来并不方便。不过Github上面已经有了很多图形化的管理工具,而且都针对REDIS做了一些优化,如自动折叠带schema的key等。 Redis Desktop Manager 一款基于Qt5的跨平台Redis桌面管理软件 几款开源的图形化Redis客户端管理软件推荐 支持: Windows 7+, Mac OS X 10.10+, Ubuntu 14+ 特点: C++ 编写,响应迅速,性能好。但不支持数据库备份与恢复。 项目地址: https://github.com/uglide/RedisDesktopManager 软件安装包下载地址 https://redisdesktop.com/download Redis Client 几款开源的图形化Redis客户端管理软件推荐 项目简介: 使用Java编写,功能丰富,缺点是性能稍差,网络不好时,会不时断线。 项目地址: https://github.com/caoxinyu/RedisClient Redis Studio 几款开源的图形化Redis客户端管理软件推荐 项目简介: 又一个C++编写的redis管理工具,仅支持windows平台,支持xp操作系统。 项目地址: https://github.com/cinience/RedisStudio ps: 后面两款为国人开发。

发表在 JAVA | 标签为 , | 留下评论

mac 下安装redis

本来以为mac下安装redis要折腾一会,完全出乎意外。和linux下基本一样 curl -O http://download.redis.io/releases/redis-3.2.4.tar.gz tar xzf redis-3.2.4.tar.gz $ cd redis-3.2.4 $ make test $ make install 搞定 启动redis $ src/redis-server 客户端 mac启动另外一个控制台 $ src/redis-cli redis> set foo bar OK redis> get foo "bar" 有点惊喜。上几天mac下安装PHP的图形处理,折腾了 好几天 redis的密码配置

发表在 JAVA, 数据库 | 标签为 , | 留下评论

脑洞:分类如何赚钱的

   偶然看到一个网友,说自己参加了各种网络赚钱的培训大会,然后呢,自己就选择了一个方向叫分类。 我属于平时比较忙,所以没什么时间去做一些想做的事情--借口。 分类的三大入口:58,赶集,百姓 大家都认为分类信息东西便宜,我们正好可以利用大部分人的信息差来赚钱 分类信息流量最大的三大版块是“招聘”、“女找男”、“二手产品” 二手产品转让,其中电子产品占了50%, 分类信息做手机千万不要太贵,一部手机利润在100-500元左右就可以了,   如果在分类卖产品,第一大忌千万不要先上货,一定要测试可以了,在上货,这样对于我们做分类没有资金压力。 分类的快速效应   如果你很浮躁,想在3天之内就能达到日赚几百,那么做分类吧。   因为没有收入,新人很难静下心来做项目,所以我通常建议新手从分类开始。   很多人专职做分类的,日收入在2000元以上。如果你在全国做置顶推广的话,一天赚5000很轻松,这时候主要就看你的客服话术了。像我们群里有几个做分类卖小米2的,每天都能赚2000以上。   一. 什么是分类   分类是分类信息的简称,就是通过分类信息网站销售产品或服务。   主流的分类信息网站有百姓网、58同城、赶集网。   全国包括地区性的分类网站有几百家,直接百度搜索“分类信息网址大全”……   二. 做分类的准备工作   注册帐号、学会发帖、准备几个客服QQ或手机,这些最基本的东西就不细说了。   三. 选择产品   选择产品的原则就是“别人卖什么,我就卖什么”。   以深圳百姓网为例:   打开http://shenzhen.baixing.com/ ,点击“物品交易”下的“二手手机”类目      在这里我们可以看到别人都在卖什么手机,包括品牌、型号、甚至价格区间      几乎清一色的苹果和三星,如果说不赚钱,你信吗?!   四. 如何找货源   我们已经决定卖苹果手机了。那么货源从哪里来呢?   货源分为网上和线下两种:   网上的有阿里巴巴、慧聪网、淘宝,还可以以关键字搜索查找货源QQ群,代发货平台……   线下的就是当地手机城等。   批发价一般比市场价低几百元,根据手机的档次有所不同。   比如小米2,我们群里有人提供货源,价格是1300元,你可以卖1600、1800都可以,这样一单就能赚300、500元了。   不要急着进货,先发帖测试下,如果有3、5个人咨询的话,你再少量进货,这样很快就能全部卖出去。 … 继续阅读

发表在 互联网观察 | 标签为 , , | 留下评论

如何防止自己忘记密码

密码,一个心痛,一个折腾 我曾经遇到的情况 1.银行密码忘记了。我去银行,带上一堆证件 2.支付宝账户密码忘记了。花了半小时没找回 3.邮箱密码忘记了 如何避免自己的密码忘记 1.密码诗歌策略 自己来首喜欢的诗歌,比如 床前明月光,地上鞋两双。 好了,开始 不重要的账户直接 cqmygdsxls 够乱吧,不过好记 加强版 我要防止不同的网站密码相同 那么这样 比如 百度的 bdcqmygdsxls sina的 sinacqmyg sohu 的 sohucqmyg 现在国内黑客常用手段之一,获取一个id的密码后,到各大网站尝试是否能登录,所以还是要保证重要帐号密码不一样就ok了。 2.网站名字和自己生日组合 比如 百度 我的生日是1013 baidu1013 sina sina1013 加强版本 带有特殊字符会加强密码 sina!0!3 我将1换成了叹号 如果你的生日没有1 只有2 那么换成@ 就是2头上的东西 … 继续阅读

发表在 互联网观察, 吐槽 | 标签为 , , | 2 条评论

mysql 的 MyISAM和 InnoDB的区别

  一、文件存储     MyISAM   每个MyISAM在磁盘上存储成三个文件。第一个文件的名字以表的名字开始,扩展名指出文件类型。   .frm文件存储表定义。   数据文件的扩展名为.MYD (MYData)。   索引文件的扩展名是.MYI (MYIndex)。   InnoDB   基于磁盘的资源是InnoDB表空间数据文件和它的日志文件,InnoDB 表的大小只受限于操作系统文件的大小,一般为 2GB   二、事务支持   MyISAM   MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快,但是不提供事务支持   InnoDB   InnoDB提供事务支持事务,外部键等高级数据库功能   三、mysql执行方式   MyISAM   如果执行大量的SELECT,MyISAM是更好的选择   InnoDB   1.如果你的数据执行大量的INSERT或UPDATE,出于性能方面的考虑,应该使用InnoDB表   2.DELETE FROM table时,InnoDB不会重新建立表,而是一行一行的删除。   3.LOAD TABLE FROM MASTER操作对InnoDB是不起作用的,解决方法是首先把InnoDB表改成MyISAM表,导入数据后再改成InnoDB表,但是对于使用的额外的InnoDB特性(例如外键)的表不适用   四、AUTO_INCREMENT   每表一个AUTO_INCREMEN列的内部处理。   MyISAM为INSERT和UPDATE操作自动更新这一列。这使得AUTO_INCREMENT列更快(至少10%)。在序列顶的值被删除之后就不能再利用。(当AUTO_INCREMENT列被定义为多列索引的最后一列,可以出现重使用从序列顶部删除的值的情况)。   AUTO_INCREMENT值可用ALTER TABLE或myisamch来重置   对于AUTO_INCREMENT类型的字段,InnoDB中必须包含只有该字段的索引,但是在MyISAM表中,可以和其他字段一起建立联合索引   更好和更快的auto_increment处理   INNODB   如果你为一个表指定AUTO_INCREMENT列,在数据词典里的InnoDB表句柄包含一个名为自动增长计数器的计数器,它被用在为该列赋新值。   自动增长计数器仅被存储在主内存中,而不是存在磁盘上   关于该计算器的算法实现,参考AUTO_INCREMENT列在InnoDB里如何工作 … 继续阅读

发表在 数据库 | 标签为 , , | 留下评论