天道酬勤,学无止境

我的新Blog地址:brantchen.com

嘿嘿,我开了个新blog,在这里贴一下:brantchen.com

受限制的 HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。

相关推荐
  • 【DB笔试面试433】在Oracle 12c中,在数据泵(expdp)方面有哪些增强的新特性?
    Q 题目 在Oracle 12c中,在数据泵(expdp)方面有哪些增强的新特性? A 答案 Oracle 12c的数据泵新增了很多的新特性,分别如下所示:(1)在Data Pump中引入了新的TRANSFORM的选项DISABLE_ARCHIVE_LOGGING,这对于表和索引在导入期间提供了关闭Redo日志生成的灵活性。当为TRANSFORM选项指定了DISABLE_ARCHIVE_LOGGING:Y值,那么在整个导入期间,表和索引的Redo日志就会处于关闭状态,仅生成少量的日志。这一功能在导入大型表时缓解了压力,并且减少了过度的Redo产生,从而加快了导入。这一属性对表和索引都适用。不管是在非归档还是归档情况下使用DISABLE_ARCHIVE_LOGGING都会减小导入时间,减少归档量。但是需要注意的是,如果数据库处于FORCE LOGGING模式,那么DISABLE_ARCHIVE_LOGGING参数会无效。以下SQL演示了这一功能:l impdp directory=dpump dumpfile=abcd.dmp TRANSFORM=DISABLE_ARCHIVE_LOGGING:Y logfile=abcd.logl impdp hr/hr DIRECTORY=dpump_dir1 DUMPFILE=hr.dmp SCHEMAS=hr TRANSFORM
  • 【DB笔试面试432】在Oracle 12c中,在RMAN方面有哪些增强的新特性?
    Q 题目 在Oracle 12c中,在RMAN方面有哪些增强的新特性? A 答案 Oracle 12C的RMAN中新增了很多的新特性,分别如下所示:(一)新的备份用户特权(SYSBACKUP)在Oracle 11gR2中,引入了SYSASM特权用来执行与ASM相关的特定操作。同样地,在Oracle 12c中引入了3个新的系统用户SYSBACKUP、SYSDG和SYSKM,其中,SYSKM可以执行与透明数据加密密钥(Transparent Data Encryption keystore)相关的操作,SYSDG可以在DGMGRL或命令行接口里执行与DG(Data Guard)相关的操作,而SYSBACKUP特权用来在RMAN或SQL*Plus中执行备份和恢复命令。因此,可以在数据库中创建一个本地用户并在不授予其SYSDBA权限的情况下,通过授予SYSBACKUP权限让其能够在RMAN中执行备份和恢复相关的任务,不再需要SYSDBA这个超级权限。这一特性强制执行了职责安全模型的分离,即备份操作只需要SYSBACKUP权限来运行RMAN命令,并从需要真正的SYSDBA特权的数据库管理员那里承担独立的职责。RMAN连接到数据库的方式与SQL*Plus连接到数据库的方式相同。唯一的区别是,RMAN连接到目标或辅助数据库需要SYSDBA或SYSBACKUP特权。任何用户都可以授予此特权。$
  • 是否可以通过C ++的新操作保证地址返回对齐?(Is there any guarantee of alignment of address return by C++'s new operation?)
    问题 大多数有经验的程序员都知道数据对齐对于程序的性能很重要。 我已经看到一些程序员编写的程序分配的缓冲区大小超出了他们的需要,并使用对齐的指针作为开始。 我想知道我应该在程序中执行此操作吗,我不知道是否可以保证C ++的新操作返回的地址对齐。 所以我写了一个小程序来测试 for(size_t i = 0; i < 100; ++i) { char *p = new char[123]; if(reinterpret_cast<size_t>(p) % 4) { cout << "*"; system("pause"); } cout << reinterpret_cast<void *>(p) << endl; } for(size_t i = 0; i < 100; ++i) { short *p = new short[123]; if(reinterpret_cast<size_t>(p) % 4) { cout << "*"; system("pause"); } cout << reinterpret_cast<void *>(p) << endl; } for(size_t i = 0; i < 100; ++i) { float *p = new float[123]; if(reinterpret_cast<size_t>(p) % 4) { cout << "*
  • 如何从网站地址中删除文件扩展名?(How can I remove file extension from a website address?)
    问题 我正在设计一个网站。 我希望我的网站地址如下图所示: 我不希望我的网站看起来像http://something.com/profile.php 。 我希望有人打开我的网站时,在地址栏中删除.php扩展名。 换句话说,我希望我的网站像:http://something.com/profile 作为第二个示例,您可以查看Stack Overflow网站地址本身。 我怎样才能做到这一点? 回答1 只需将.htaccess文件添加到您网站的根文件夹(例如/home/domains/domain.com/htdocs/)中,其中包含以下内容: RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME}\.php -f RewriteRule ^(.*)$ $1.php 这些页面的工作原理的更多信息:mod_rewrite指南(简介,使用指南),参考文档 回答2 首先,确认已安装mod_rewrite模块。 然后,要小心了解它的工作原理,许多人会倒退它。 您不会隐藏网址或扩展名。 您要做的是创建一个指向旧网址的新网址,例如 放置在您网站上的URL将是yoursite.com/play?m=asdf 甚至更好 yoursite.com/asdf 即使目录asdf不存在。
  • 解决国内访问github pages慢的方法(更新)
    本文首发在个人博客上(https://7988888.xyz/),此文章中所有链接均通过博客进行访问。(ps:可快速访问国内镜像网址https://cn.7988888.xyz/) 在很多时候,我发现我在访问我的博客时,非常缓慢。这将很影响我的浏览体验,GitHub pages是GitHub提供的一项静态站点托管网页,由于国内问题,访问延迟200-300ms,当然这还是在网络较好的时候,在网络差的情况下会很难加载完全网页,异常烦躁。于是,我开始搜索相关教程,决定解决这个问题。 第一种方法:减少图片素材的本身大小 在加载过程中,很多时间是图片加载缓慢,可以通过图片压缩工具进行减少容量,我使用的是Mac imageoptim 第二种方法:使用CDN为网站加速。 CDN是什么?CDN的全称是Content Delivery Network,即内容分发网络。CDN是构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。CDN的关键技术主要有内容存储和分发技术(摘自百度百科)。 国内的CDN要么收费,要么就是网站要备案。 更新:可使用cloudflare进行免费的cdn加速。 第三种方法:双重布局在国内的coding和国外的GitHub上。
  • 长期引用IOS地址簿条目(Keeping a long-term reference to an IOS AddressBook entry)
    问题 鉴于ABRecordID可以在云同步和其他情况下在我无法控制的情况下更改,我如何维护对IOS通讯簿记录的长期引用? 苹果提供以下指导: “建议长期保留对特定记录的引用的方法是,除了标识符之外,还存储名字和姓氏,或者名字和姓氏的哈希值。当您通过ID查找记录时,请进行比较记录的名称更改为您存储的名称。如果它们不匹配,请使用存储的名称查找记录,然后存储该记录的新ID。” 但是我不明白这个指导。 如果地址簿中可以包含重复的名称,并且由于用户可以在记录中修改名称,该建议将如何工作? 例如,如果用户修改了地址簿记录的名称,我的例程将无法通过ABRecordID找到它,因此,如果我认为按我存储的名称哈希进行搜索,我将找不到一个重复的名称,而不是针对该特定名称的新ABRecordID我以前引用的记录? 最后,获得对IOS AddressBook记录的长期引用的最佳方法是什么? 如果上述建议确实有效,那么我会缺少什么呢? 回答1 最可靠的方法(尚未完全失效保护)是对ABRecord字段进行优先级排序,并从该列表中将尽可能多的可用记录与ABRecordID一起存储为您自己的(散列)私有记录格式。 检索私有记录时(或在其他方便的时间),您可以验证私有记录是否与ABRecord匹配,并通过一系列后备检查来确保其准确性。 优先级排序示例: ABRecordID 名姓电话号码邮政编码 检索记录时
  • 使用哈希部分(锚点)重定向301#(Redirect 301 with hash part (anchor) #)
    问题 我们的网站之一具有这样的URL: example.oursite.com 。 我们决定使用类似www.oursite.com/example的URL来移动我们的网站。 为此,我们在Apache服务器中编写了一个重写规则,该规则使用代码301重定向到我们的新URL。 许多网站都以example.oursite.com/#id=23的形式链接到我们。 问题是重定向使用IE擦除了URL的哈希部分。 据我所知,哈希部分永远不会发送到服务器。 我想用javascript实现重定向以保留哈希部分,但是搜索引擎不会知道我们的URL已更改。 (未返回代码301) 我希望我们的新URL(301)通知搜索引擎,因为我们需要将页面排名转移到我们的新URL。 有没有一种方法可以使用301代码进行重定向并将URL的哈希部分( #id=23 )保留在URL中? 回答1 实际上,搜索引擎确实关心哈希标签,它们经常使用它们来突出显示页面上的特定内容。 但是,问题是,不幸的是,锚点位置未作为HTTP请求的一部分发送到服务器。 如果要重定向用户,则需要在客户端使用Javascript进行此操作。 好文章:http://web.archive.org/web/20090508005814/http://www.mikeduncan.com/named-anchors-are-not-sent/ 回答2
  • 在Oracle 12c中,在RMAN方面有哪些增强的新特性?
    今天小麦苗给大家分享的是在Oracle 12c中,在RMAN方面有哪些增强的新特性?。在Oracle 12c中,在RMAN方面有哪些增强的新特性? (一)新的备份用户特权(SYSBACKUP)在Oracle 11gR2中,引入了SYSASM特权用来执行与ASM相关的特定操作。同样地,在Oracle 12c中引入了3个新的系统用户SYSBACKUP、SYSDG和SYSKM,其中,SYSKM可以执行与透明数据加密密钥(Transparent Data Encryption keystore)相关的操作,SYSDG可以在DGMGRL或命令行接口里执行与DG(Data Guard)相关的操作,而SYSBACKUP特权用来在RMAN或SQL*Plus中执行备份和恢复命令。因此,可以在数据库中创建一个本地用户并在不授予其SYSDBA权限的情况下,通过授予SYSBACKUP权限让其能够在RMAN中执行备份和恢复相关的任务,不再需要SYSDBA这个超级权限。这一特性强制执行了职责安全模型的分离,即备份操作只需要SYSBACKUP权限来运行RMAN命令,并从需要真正的SYSDBA特权的数据库管理员那里承担独立的职责。RMAN连接到数据库的方式与SQL*Plus连接到数据库的方式相同。唯一的区别是,RMAN连接到目标或辅助数据库需要SYSDBA或SYSBACKUP特权。任何用户都可以授予此特权。$
  • 如何从Android设备访问本地主机?(How can I access my localhost from my Android device?)
    问题 我可以使用Android模拟器访问笔记本电脑的Web服务器,我使用的是10.0.2.2:portno效果很好。 但是,当我连接真正的Android手机时,手机浏览器无法连接到笔记本电脑上的同一Web服务器。 手机使用USB电缆连接到笔记本电脑。 如果运行adb devices命令,则可以看到我的手机。 我想念什么? 回答1 USB不为移动设备提供网络。 如果您的台式机和电话都连接到同一WiFi (或任何其他本地网络),请使用路由器分配的台式机IP地址(不是localhost而不是127.0.0.1 )。 要查找您的桌面的IP地址,请执行以下操作: 在命令行中输入ipconfig (Windows)或ifconfig (Unix) 在Linux上的一线ifconfig | grep "inet " | grep -v 127.0.0.1 ifconfig | grep "inet " | grep -v 127.0.0.1 ifconfig | grep "inet " | grep -v 127.0.0.1将仅产生重要的内容关于如何在Windows上具有类似的输出,有很多建议将会有一堆IP 尝试所有的方法(上述的localhost和127.0.0.1除外) 如果您的电话已连接到移动网络,那么事情将会变得更加艰难。 要么去铁杆: 首先找出您的路由器外部IP地址(https:/
  • 程序员把地府后台管理系统做出来了,还有3.0版本!12月7号最新消息:已在开发中有github地址
    第一幕:缘起 听说阎王爷要做个生死簿后台管理系统,我们派去了一个程序员…… 996程序员做的梦: 第一场:团队招募 为了应对地府管理危机,阎王打算找“人”开发一套地府后台管理系统,于是就在地府总经办群中发了项目需求。 话说还是中国电信的信号好,地府都是满格,哈哈!!! 经常会有外行朋友问:看某网站做的不错,功能也简单,你帮忙做一下? 而这次,面对这样的需求,这个程序员也是虎躯一震,本来想拒绝的,不过做不完就不让回去,而且,貌似这也是他报仇的好机会啊! 产品同学也被勾下来了。。 第二场:研发过程中的新需求 项目开发过程中,阎罗王发来了一个消息: 第三场:程序员还阳 项目进行中,程序员偷偷地在系统上留了一个后门,不仅回到了阳间,还将自己的寿命修改为+∞。 地府中留下的,是产品经理孤寂的身影。 这个故事告诉我们,做产品的,不能提太多的需求,也不能完全不懂技术,否则,可能会死的不明不白的。 第二幕:地府管理2.0研发 地府管理系统项目上线后,阎王尝到了很大的甜头,地府工作效率提高了很多倍,于是,“地府2.0计划”紧锣密鼓的开始了。 越是,不少人做梦,都梦见自己死了…… 设计师: 昨晚做梦梦到我死了,进了阎王殿 阎王爷让我给他的地府做一张宣传海报 HR: 昨晚做梦梦到我死了,进了阎王殿 阎王爷让我给他考核一下地府在职人员的业绩 文案: 昨晚做梦梦到我死了,进了阎王殿
  • 【Servlet】请求转发与重定向
    重定向(Redirect): 使用格式:response.sendRedirect(“路径”);处理过程: 客户端(浏览器)向Web服务器端发送一个请求,Web服务器端使用HttpServletResponse的sendRedirect()方法将结果(结果中头信息内HTTP状态码为302,Location响应报头域中保存响应回来的地址)返回客户端浏览器客户端浏览器收到服务器端结果后解析其头部信息,然后自动按照头部指定地址以GET方式再次向Web服务器端发请求,此时地址栏URL发生变化服务器端接收到新的请求再将结果返回至客户端浏览器,客户端浏览器解释执行返回结果并将执行结果显示给用户,至此该过程结束 形象实例:手机京东购物付款:京东收到“微信支付”的请求后由于其自身无法处理,所以自动向微信发送“付款”请求。该过程共有两次请求与两次响应,最终呈现给用户的是微信中付款成功的页面 请求转发(Forward): 使用格式:request . getRequestDispatcher(“路径”) . forward (request, response);处理过程:请求转发指客户端浏览器向Web服务器端发送请求,服务器端收到请求后自动进行相应处理后再将该请求转发到另外的资源(这一“资源”可以是servlet也可以是jsp),服务器端对该资源进行处理后反馈给客户端形象实例:手机天猫购物付款
  • 【OS】Linux和AIX修改主机名的方法
    【OS】Linux和AIX修改主机名的方法 linux修改主机名的方法用hostname命令可以临时修改机器名,但机器重新启动之后就会恢复原来的值。#hostname //查看机器名#hostname -i //查看本机器名对应的ip地址另外一种方法就是之久修改配置文件修改/etc/sysconfig/network 修改这个文件,系统才有效 /etc/hosts hostname命令读这个配置文件网上有很多朋友说直接修改/etc/hosts文件就可以,但系统本身用到主机名的地方不会变化,所以我觉得 /etc/hosts 是网络中用的,/etc/sysconfig/network是本机起作用,而且经络测试也是这样的,我得版本是linux as3总结:所以要修改主机名,就两个文件都更改 Linux操作系统的hostname是一个kernel变量,可以通过hostname命令来查看本机的hostname。也可以直接cat /proc/sys/kernel/hostname查看。 #hostname #cat /proc/sys/kernel/hostname 上面两种输出结果相同。 修改运行时Linux系统的hostname,即不需要重启系统 hostname命令可以设置系统的hostname #hostname newname newname即要设置的新的hostname
  • 在REST API实际场景中使用PUT与PATCH方法(Use of PUT vs PATCH methods in REST API real life scenarios)
    问题 首先,一些定义: PUT在RFC 2616第9.6节中定义: PUT方法请求将封闭的实体存储在提供的Request-URI下。 如果Request-URI引用了已经存在的资源,则应将封闭的实体视为原始服务器上的资源的修改版本。 如果Request-URI没有指向现有资源,并且请求用户代理能够将该URI定义为新资源,则原始服务器可以使用该URI创建资源。 PATCH在RFC 5789中定义: PATCH方法请求将在请求实体中描述的一组更改应用于由Request-URI标识的资源。 同样根据RFC 2616,第9.1.2节PUT是幂等的,而PATCH不是。 现在让我们看一个真实的例子。 当我使用数据{username: 'skwee357', email: 'skwee357@domain.com'}对/users进行POST,并且服务器能够创建资源时,它将响应201和资源位置(假设/users/1 )和对GET /users/1下一次调用将返回{id: 1, username: 'skwee357', email: 'skwee357@domain.com'} 。 现在,让我们说我想修改我的电子邮件。 电子邮件修改被认为是“一组更改”,因此我应该使用“补丁文件”来修补/users/1 。 在我的情况下,它将是json文档: {email: 'skwee357@newdomain
  • 谷歌浏览器“ window.open”的解决方法?(Google Chrome “window.open” workaround?)
    问题 我一直在开发Web应用程序,对于其中的一部分,我需要打开一个新窗口。 我可以在所有浏览器上使用它,我的重点是使用Google Chrome浏览器。 Chrome似乎忽略了导致我出现问题的窗口功能,而我苦苦挣扎的事情是我需要在新窗口中可编辑地址栏。 FF,IE,Safari和Opera可以做到这一点,Chrome则不能。 我的代码: function popitup(url) { newwindow=window.open(url, 'name', 'toolbar=1,scrollbars=1,location=1,statusbar=0,menubar=1,resizable=1,width=800,height=600'); if (window.focus) { newwindow.focus() } return false; } 回答1 其他答案已经过时。 Chrome for window.open的行为取决于从何处调用。 另请参阅本主题。 当从通过用户操作(例如onclick事件)触发的处理程序中调用window.open ,其行为类似于<a target="_blank"> ,默认情况下会在新选项卡中打开。 但是,如果在其他地方调用window.open ,Chrome将忽略其他参数,并始终打开一个带有不可编辑地址栏的新窗口。 这看起来像某种安全措施
  • 【五】Java数组
    所有知识体系文章,GitHub已收录,欢迎Star!再次感谢,愿你早日进入大厂! GitHub地址: https://github.com/Ziphtracks/JavaLearningmanual 搜索关注微信公众号“码出Offer”,送你学习福利资源! 目录 一、数组的概念 二、数组的声明和赋值 三、数组的下标 四、数组的异常错误 五、数组的遍历 六、数组的应用 七、数组的排序 八、关于二维数组 知识章节参考:【五】Java数组思维导图 【二维数组经典案例与详解】打印“杨辉三角”的三种方案(个别方案超纲!) 【排序经典案例与详解】Java排序法合集(冒泡、选择、JDK排序详解) 【习题与详解】 1、自定义一个数组a,读入一个整数n,如果n在数组中存在,则输出n的下标,不存在输出-1 2、定义一个数组,输出数组中的最大值和最小值 3、定义一个数组,进行数组中元素的倒置 4、创建一个数组,利用数组知识实现对数组元素的增删改查和我的心得与建议 一、数组的概念 概念: 一组连续的存储空间,存储多个相同数据类型的值特点: 1、类型相同2、长度固定 数组的创建 二、数组的声明和赋值 声明赋值方式具体声明赋值方法先声明、再分配空间数据类型[] 数组名; 数组名 = new 数据类型[长度];声明并分配空间数据类型[] 数组名 = new 数据类型[长度];声明并赋值(繁)数据类型[] 数组名
  • 使用codeigniter检索用户的真实IP(Retrieve real IP of user using codeigniter)
    问题 我的应用程序跟踪登录该站点的用户的IP地址。 在常规的Web服务器上(我们在hostgator上),跟踪工作正常,但是当我们切换到PaaS平台(pagodabox)时,似乎开始跟踪奇数IP地址。 pagodabox的负载平衡器/路由器的IP并获取用户的实际IP地址,我必须使用HTTP_X_FORWARDED_FOR 我正在使用codeigniter的输入类函数$this->input->ip_address()检索用户的IP。 我查看了该函数,发现它们具有某种功能来获取HTTP_X_FORWARDED_FOR IP值,但是我不确定如何使用它。 我是否需要在配置中更改/添加某些内容? 编辑:在一些用户指出我应该在负载均衡器的IP地址列表中添加的位置之后,出现了一个新问题:如果IP列表频繁更改,我该怎么办? (即没有静态IP,全部是动态的) 回答1 我敢肯定您现在已经解决了这个问题,但是我想我会发布正确的答案以供将来参考。 我遇到了同样的问题(在AWS上使用CodeIgniter应用程序使用负载均衡器。)正如您所指出的,使用HTTP_X_FORWARDED_FOR标头很容易在负载均衡器或其他分布式环境中获取正确的IP。 问题是我们如何在CodeIgniter中正确实现此解决方案? 如先前的答案所指出:编写您自己的IP函数。 问题是,如果在整个应用程序中都调用ip_address(
  • 在MVC 5中使用Google Auth时如何检索电子邮件地址?(How do i retrieve the email address when using google auth in mvc 5?)
    问题 我仅在我的asp.net mvc 5应用程序中启用了Google Auth。 我看到当我重定向到googles身份验证屏幕时,我正在请求查看用户名和电子邮件地址的权限。 然后,我从Google返回,登录并命名我的新用户。 我显然已经请求查看该电子邮件地址的权限,但是默认情况下不存储该地址。 我如何将其存储在用户表中? 我尝试过编辑startup.auth中的选项,但是与电子邮件没有任何关系。 通过oAuth进行操作时,您需要手动提出要求。 我只是不知道我应该在哪里索要电子邮件地址... 另外,我该如何询问他们的Google帐户图片? 回答1 您可以从ClaimIdentity检索它作为电子邮件声明 检查这个例子 var email = externalIdentity.FindFirstValue(ClaimTypes.Email); 回答2 ASPNET MVC5中的完整代码 var googleOption=new GoogleAuthenticationOptions() { Provider = new GoogleAuthenticationProvider() { OnAuthenticated = (context) => { var rawUserObjectFromFacebookAsJson = context.Identity; context
  • 使用ContactsContract创建的新联系人不会出现在“联系人”应用中(New contacts created using ContactsContract do not appear in Contacts app)
    问题 我正在使用以下代码创建新的联系人。 它紧密遵循Android提供的ContactManager示例。 问题是,创建的联系人没有出现在Android随附的“联系人”应用程序中。 但是,当我从电话簿中加载所有联系人时,可以看到新创建的联系人。 私有void insertPBEntry()抛出RemoteException,OperationApplicationException { ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>(); ops.add(ContentProviderOperation.newInsert(ContactsContract.RawContacts.CONTENT_URI) .withValue(ContactsContract.RawContacts.ACCOUNT_TYPE, "Account type") .withValue(ContactsContract.RawContacts.ACCOUNT_NAME, "Account name") .build()); ops.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI)
  • java程序员从小工到专家成神之路(2020版)-持续更新中,附详细文章教程
    文章目录1. 工具2. JDK3. 框架4. 测试框架5. 实用库1.1 开发工具1.2 构建工具1.3 虚拟化工具1.4 CI工具2.1 Java Collections2.2 Java并发和多线程2.3 Java 8-15的新特性2.4 Java IO2.5 深入理解JVM3.1 Spring3.2 Spring Boot3.3 Netty & Mina3.4 ORM3.5 微服务1. Git & Github2. Linux3. 数据结构和算法4. HTTP / HTTPS5. 设计模式6. 计算机原理必须掌握的基础知识java学习之路Keep learningjava作为第一大编程语言,可谓源远流长,一代又一代的java程序员前仆后继走在java学习的路上。java程序员的学习之路在2020年又有什么变化呢?本文详细附上了每一个部分所需知识的教程链接地址,并会持续更新,希望能够和大家一起进步!先上图:上面的RoadMap图中列出了作为一个java程序员需要掌握的技术路线,所有技术都懂那当然非常好,如果还没掌握也没关系,just keep learning!必须掌握的基础知识作为程序员当然是有门槛的,这个门槛就是所需要掌握的基础知识,写好了程序不仅要知其然,更要知其所以然。这样才能在写程序的过程中,透过现象看到本质,从本质上提升写代码的功力。1. Git &
  • Iptables 之recent模块小结
    Iptables的recent模块用于限制一段时间内的连接数, 是谨防大量请求***的必杀绝技! 善加利用该模块可充分保证服务器安全。recent常用参数--name 设定列表名称,即设置跟踪数据库的文件名. 默认DEFAULT;--rsource 源地址,此为默认。 只进行数据库中信息的匹配,并不会对已存在的数据做任何变更操作;--rdest 目的地址;--seconds 指定时间内. 当事件发生时,只会匹配数据库中前"几秒"内的记录,--seconds必须与--rcheck或--update参数共用;--hitcount 命中次数. hits匹配重复发生次数,必须与--rcheck或--update参数共用;--set 将地址添加进列表,并更新信息,包含地址加入的时间戳。 即将符合条件的来源数据添加到数据库中,但如果来源端数据已经存在,则更新数据库中的记录信息;--rcheck 检查地址是否在列表,以第一个匹配开始计算时间;--update 和rcheck类似,以最后一个匹配计算时间。 如果来源端的数据已存在,则将其更新;若不存在,则不做任何处理;--remove 在列表里删除相应地址,后跟列表名称及地址。如果来源端数据已存在,则将其删除,若不存在,则不做任何处理;recent模块需要注意的地方a) 目录/proc/net/下的xt