作原理编辑 通常情况下，VPN网关采取双网卡结构，外网卡使用公网IP接入Internet。 网络一(假定为公网internet)的终端A…

…访问网络二(假定为公司内网)的终端B，其发出的访问数据包的目标地址为终端B的内部IP地址。 网络二的VPN网关在接收到终端A发出的访问数据包时对其目标地址进行检查，如果目标地址属于网络二的地址，则将该数据包进行封装，封装的方式根据所采用的VPN技术不同而不同，同时VPN网关会构造一个新VPN数据包，并将封装后的原数据包作为VPN数据包的负载，VPN数据包的目标地址为网络二的VPN网关的外部地址。 网络二的VPN网关将VPN数据包发送到Internet，由于VPN数据包的目标地址是网络一的VPN网关的外部地址，所以该数据包将被Internet中的路由正确地发送到网络二的VPN网关。 网络二的VPN网关对接收到的数据包进行检查，如果发现该数据包是从网络一的VPN网关发出的，即可判定该数据包为VPN数据包，并对该数据包进行解包处理。解包的过程主要是先将VPN数据包的包头剥离，再将数据包反向处理还原成原始的数据包。 网络二的VPN网关将还原后的原始数据包发送至目标终端B，由于原始数据包的目标地址是终端B的IP，所以该数据包能够被正确地发送到终端B。在终端B看来，它收到的数据包就和从终端A直接发过来的一样。 从终端B返回终端A的数据包处理过程和上述过程一样，这样两个网络内的终端就可以相互通讯了。 通过上述说明可以发现，在VPN网关对数据包进行处理时，有两个参数对于VPN通讯十分重要：原始数据包的目标地址（VPN目标地址）和远程VPN网关地址。根据VPN目标地址，VPN网关能够判断对哪些数据包进行VPN处理，对于不需要处理的数据包通常情况下可直接转发到上级路由；远程VPN网关地址则指定了处理后的VPN数据包发送的目标地址，即VPN隧道的另一端VPN网关地址。由于网络通讯是双向的，在进行VPN通讯时，隧道两端的VPN网关都必须知道VPN目标地址和与此对应的远端VPN网关地址。 分类标准编辑 根据不同的划分标准，VPN可以按几个标准进行分类划分： 1、按VPN的协议分类： VPN的隧道协议主要有三种，PPTP、L2TP和IPSec，其中PPTP和L2TP协议工作在OSI模型的第二层，又称为二层隧道协议；IPSec是第三层隧道协议。 2、按VPN的应用分类： （1）Access VPN（远程接入VPN）：客户端到网关，使用公网作为骨干网在设备之间传输VPN数据流量； （2）Intranet VPN（内联网VPN）：网关到网关，通过公司的网络架构连接来自同公司的资源； （3）Extranet VPN（外联网VPN）：与合作伙伴企业网构成Extranet，将一个公司与另一个公司的资源进行连接。 3、按所用的设备类型进行分类： 网络设备提供商针对不同客户的需求，开发出不同的VPN网络设备，主要为交换机、路由器和防火墙： （1）路由器式VPN：路由器式VPN部署较容易，只要在路由器上添加VPN服务即可； （2）交换机式VPN：主要应用于连接用户较少的VPN网络； （3）防火墙式VPN：防火墙式VPN是最常见的一种VPN的实现方式，许多厂商都提供这种配置类型 4．按照实现原理划分： （1）重叠VPN：此VPN需要用户自己建立端节点之间的VPN链路，主要包括：GRE、L2TP、IPSec等众多技术。 （2）对等VPN：由网络运营商在主干网上完成VPN通道的建立，主要包括MPLS、VPN技术。 实现方式编辑 VPN的实现有很多种方法，常用的有以下四种： 1．VPN服务器：在大型局域网中，可以通过在网络中心搭建VPN服务器的方法实现VPN。 2．软件VPN：可以通过专用的软件实现VPN。 3．硬件VPN：可以通过专用的硬件实现VPN。 4．集成VPN：某些硬件设备，如路由器、防火墙等，都含有VPN功能，但是一般拥有VPN功能的硬件设备通常都比没有这一功能的要贵。 常用VPN技术编辑 1．MPLS VPN是一种基于MPLS技术的IP VPN，是在网络路由和交换设备上应用MPLS（Multiprotocol Label Switching，多协议标记交换）技术，简化核心路由器的路由选择方式，利用结合传统路由技术的标记交换实现的IP虚拟专用网络（IP VPN）。MPLS优势在于将二层交换和三层路由技术结合起来，在解决VPN、服务分类和流量工程这些IP网络的重大问题时具有很优异的表现。因此，MPLS VPN在解决企业互连、提供各种新业务方面也越来越被运营商看好，成为在IP网络运营商提供增值业务的重要手段。MPLS VPN又可分为二层MPLS VPN（即MPLS L2 VPN）和三层MPLS VPN（即MPLS L3 VPN）。 2．SSL VPN是以HTTPS（Secure HTTP，安全的HTTP，即支持SSL的HTTP协议）为基础的VPN技术，工作在传输层和应用层之间。SSL VPN充分利用了SSL协议提供的基于证书的身份认证、数据加密和消息完整性验证机制，可以为应用层之间的通信建立安全连接。SSL VPN广泛应用于基于Web的远程安全接入，为用户远程访问公司内部网络提供了安全保证。 3．IPSec VPN是基于IPSec协议的VPN技术，由IPSec协议提供隧道安全保障。IPSec是一种由IETF设计的端到端的确保基于IP通讯的数据安全性的机制。它为Internet上传输的数据提供了高质量的、可互操作的、基于密码学的安全保证。 常见问题编辑 错误691：提示“由于域上的用户名和/或密码无效而拒绝访问” 一般的原因是VPN连接时输入的账户和/或密码不正确，或是没有使用VPN服务的权限。 VPN一个账号默认仅限一台电脑使用，检查您的用户名有无登录重复。 若您是在使用的途中掉线了，不要急着再次连接，请耐心等待几分钟。 若还是提示错误，请联系网络管理员。 错误691：提示“端口已断开连接” 市面上有一小部分的路由器对VPN支持不好，从而引起错误691、只能连接几台机、经常掉线等多种问题，有时候还会出现错误800。原因是路由器采用NAT方式，不能让VPN协议穿透。 如果计算机中开启了系统防火墙，可以先关闭后再重试。 如果偶尔出现，重拨几次，或者重新启动计算机及路由器后再重试。 如果是通过局域网或者通过路由器上网的用户，请网络管理员在服务器或者路由器上打开UDP端口1701~1704。 如果路由器中不能设置，可以尝试将计算机直接连到外网，用单机拨号方式连接互联网，再重试VPN拨号。 部分网络如校园网、广电网、长城宽带、宽带通，容易出现691错误，需要与网络接入部门联系。 安装了简化版的操作系统容易缺少相关组件，可以下载安装错误691注册表文件。 错误721：提示“远程计算机没反应” 这种情况可能是网络延迟造成的，可以多连几次试试，如果还是不行，可以尝试以下解决方法： 单击“开始”，然后单击“运行”。 在“运行”中，键入regedit.exe，然后单击“确定”。 在注册表编辑器中，找到以下子项：HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Class/{4D36E972-E325-11CE-BFC1-08002bE10318}/<000x>，其中<000x>是WAN微型端口（PPTP）驱动程序的网络适配器。 在“编辑”菜单上，指向“新建”，然后单击“DWORD 值”。 键入ValidateAddress，然后按 Enter。该值的默认设置为“1”（打开）；因此，您可以通过将其设置为“0”将其关闭。 退出注册表编辑器。 重新启动计算机。 错误742/741：提示“远程服务器不支持加密” 选择VPN连接，右键属性，点击安全。 在数据加密项选择“没有加密也可以连接”（Win7下点击网络共享中心—更改适配器—点击VPN连接图标—查看属性—安全数据加密—选择“没有加密也可以连接”）。 错误800：提示是“不能建立VPN连接，VPN服务器不能到达” 如果计算机中开启了系统防火墙，可以先关闭后再重试。 如果有安装路由器的用户，建议重启一下路由器。 部分网络如校园网、广电网、长城宽带、宽带通，容易出现800错误，需要与网络接入部门联系。 桌面右键单击“我的电脑”或“计算机”，打开“管理”，在“服务和应用程序”中，点击“服务”，找到“IPsec Policy Agent”服务，检查有没有禁用该服务。如果为禁用状态则改为自动状态，启动该服务。 错误619 如果打开了防火墙（包括系统自带的）：关闭防火墙，或者设置防火墙允许UDP 1701端口。 使用路由器上网：不使用路由器，或者映射UDP 1701端口。 如果无以上两种现象存在，但是还出现619错误：关闭所有正在使用网络的软件，重新启动计算机然后重新进行连接。 连上国外VPN后打开国内网页速度很慢 因为连接上了VPN的国外线路，本地网络出口已经变更为了国家带宽出口，因此在连接VPN的状态下访问国内的网页速度是比较慢的，可简单理解成：因为线路的传输需要从国内到国外，再从国外返回国内。而如果是访问国外网页的话，此时线路方式从国内直接传输到国外是相对最快的。而且还取决于您所选的线路距离，如果您选择的是美国的线路，那么访问国内的网页肯定较慢。 移动终端连接不上 当前网络是3G网络：3G网络通常都不稳定，不保证每次都可以连接上。 如果正在办公室使用公司的无线网络但连不上VPN或发生无法响应PPTP服务器错误：请详细咨询相关人员所处的网络宽带服务商是否支持VPN，其次看所处的网络路由器是否禁止了VPN端口。 电脑上可以连接VPN，但手机就不行：请确认电脑中的VPN是否处于“正在连接”的状态，如果是，请先断开电脑中的，再次连接手机试试。请注意一个账号不能同时登录在两个设备中。
作原理编辑 通常情况下，VPN网关采取双网卡结构，外网卡使用公网IP接入Internet。 网络一(假定为公网internet)的终端A…

…访问网络二(假定为公司内网)的终端B，其发出的访问数据包的目标地址为终端B的内部IP地址。 网络二的VPN网关在接收到终端A发出的访问数据包时对其目标地址进行检查，如果目标地址属于网络二的地址，则将该数据包进行封装，封装的方式根据所采用的VPN技术不同而不同，同时VPN网关会构造一个新VPN数据包，并将封装后的原数据包作为VPN数据包的负载，VPN数据包的目标地址为网络二的VPN网关的外部地址。 网络二的VPN网关将VPN数据包发送到Internet，由于VPN数据包的目标地址是网络一的VPN网关的外部地址，所以该数据包将被Internet中的路由正确地发送到网络二的VPN网关。 网络二的VPN网关对接收到的数据包进行检查，如果发现该数据包是从网络一的VPN网关发出的，即可判定该数据包为VPN数据包，并对该数据包进行解包处理。解包的过程主要是先将VPN数据包的包头剥离，再将数据包反向处理还原成原始的数据包。 网络二的VPN网关将还原后的原始数据包发送至目标终端B，由于原始数据包的目标地址是终端B的IP，所以该数据包能够被正确地发送到终端B。在终端B看来，它收到的数据包就和从终端A直接发过来的一样。 从终端B返回终端A的数据包处理过程和上述过程一样，这样两个网络内的终端就可以相互通讯了。 通过上述说明可以发现，在VPN网关对数据包进行处理时，有两个参数对于VPN通讯十分重要：原始数据包的目标地址（VPN目标地址）和远程VPN网关地址。根据VPN目标地址，VPN网关能够判断对哪些数据包进行VPN处理，对于不需要处理的数据包通常情况下可直接转发到上级路由；远程VPN网关地址则指定了处理后的VPN数据包发送的目标地址，即VPN隧道的另一端VPN网关地址。由于网络通讯是双向的，在进行VPN通讯时，隧道两端的VPN网关都必须知道VPN目标地址和与此对应的远端VPN网关地址。 分类标准编辑 根据不同的划分标准，VPN可以按几个标准进行分类划分： 1、按VPN的协议分类： VPN的隧道协议主要有三种，PPTP、L2TP和IPSec，其中PPTP和L2TP协议工作在OSI模型的第二层，又称为二层隧道协议；IPSec是第三层隧道协议。 2、按VPN的应用分类： （1）Access VPN（远程接入VPN）：客户端到网关，使用公网作为骨干网在设备之间传输VPN数据流量； （2）Intranet VPN（内联网VPN）：网关到网关，通过公司的网络架构连接来自同公司的资源； （3）Extranet VPN（外联网VPN）：与合作伙伴企业网构成Extranet，将一个公司与另一个公司的资源进行连接。 3、按所用的设备类型进行分类： 网络设备提供商针对不同客户的需求，开发出不同的VPN网络设备，主要为交换机、路由器和防火墙： （1）路由器式VPN：路由器式VPN部署较容易，只要在路由器上添加VPN服务即可； （2）交换机式VPN：主要应用于连接用户较少的VPN网络； （3）防火墙式VPN：防火墙式VPN是最常见的一种VPN的实现方式，许多厂商都提供这种配置类型 4．按照实现原理划分： （1）重叠VPN：此VPN需要用户自己建立端节点之间的VPN链路，主要包括：GRE、L2TP、IPSec等众多技术。 （2）对等VPN：由网络运营商在主干网上完成VPN通道的建立，主要包括MPLS、VPN技术。 实现方式编辑 VPN的实现有很多种方法，常用的有以下四种： 1．VPN服务器：在大型局域网中，可以通过在网络中心搭建VPN服务器的方法实现VPN。 2．软件VPN：可以通过专用的软件实现VPN。 3．硬件VPN：可以通过专用的硬件实现VPN。 4．集成VPN：某些硬件设备，如路由器、防火墙等，都含有VPN功能，但是一般拥有VPN功能的硬件设备通常都比没有这一功能的要贵。 常用VPN技术编辑 1．MPLS VPN是一种基于MPLS技术的IP VPN，是在网络路由和交换设备上应用MPLS（Multiprotocol Label Switching，多协议标记交换）技术，简化核心路由器的路由选择方式，利用结合传统路由技术的标记交换实现的IP虚拟专用网络（IP VPN）。MPLS优势在于将二层交换和三层路由技术结合起来，在解决VPN、服务分类和流量工程这些IP网络的重大问题时具有很优异的表现。因此，MPLS VPN在解决企业互连、提供各种新业务方面也越来越被运营商看好，成为在IP网络运营商提供增值业务的重要手段。MPLS VPN又可分为二层MPLS VPN（即MPLS L2 VPN）和三层MPLS VPN（即MPLS L3 VPN）。 2．SSL VPN是以HTTPS（Secure HTTP，安全的HTTP，即支持SSL的HTTP协议）为基础的VPN技术，工作在传输层和应用层之间。SSL VPN充分利用了SSL协议提供的基于证书的身份认证、数据加密和消息完整性验证机制，可以为应用层之间的通信建立安全连接。SSL VPN广泛应用于基于Web的远程安全接入，为用户远程访问公司内部网络提供了安全保证。 3．IPSec VPN是基于IPSec协议的VPN技术，由IPSec协议提供隧道安全保障。IPSec是一种由IETF设计的端到端的确保基于IP通讯的数据安全性的机制。它为Internet上传输的数据提供了高质量的、可互操作的、基于密码学的安全保证。 常见问题编辑 错误691：提示“由于域上的用户名和/或密码无效而拒绝访问” 一般的原因是VPN连接时输入的账户和/或密码不正确，或是没有使用VPN服务的权限。 VPN一个账号默认仅限一台电脑使用，检查您的用户名有无登录重复。 若您是在使用的途中掉线了，不要急着再次连接，请耐心等待几分钟。 若还是提示错误，请联系网络管理员。 错误691：提示“端口已断开连接” 市面上有一小部分的路由器对VPN支持不好，从而引起错误691、只能连接几台机、经常掉线等多种问题，有时候还会出现错误800。原因是路由器采用NAT方式，不能让VPN协议穿透。 如果计算机中开启了系统防火墙，可以先关闭后再重试。 如果偶尔出现，重拨几次，或者重新启动计算机及路由器后再重试。 如果是通过局域网或者通过路由器上网的用户，请网络管理员在服务器或者路由器上打开UDP端口1701~1704。 如果路由器中不能设置，可以尝试将计算机直接连到外网，用单机拨号方式连接互联网，再重试VPN拨号。 部分网络如校园网、广电网、长城宽带、宽带通，容易出现691错误，需要与网络接入部门联系。 安装了简化版的操作系统容易缺少相关组件，可以下载安装错误691注册表文件。 错误721：提示“远程计算机没反应” 这种情况可能是网络延迟造成的，可以多连几次试试，如果还是不行，可以尝试以下解决方法： 单击“开始”，然后单击“运行”。 在“运行”中，键入regedit.exe，然后单击“确定”。 在注册表编辑器中，找到以下子项：HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Class/{4D36E972-E325-11CE-BFC1-08002bE10318}/<000x>，其中<000x>是WAN微型端口（PPTP）驱动程序的网络适配器。 在“编辑”菜单上，指向“新建”，然后单击“DWORD 值”。 键入ValidateAddress，然后按 Enter。该值的默认设置为“1”（打开）；因此，您可以通过将其设置为“0”将其关闭。 退出注册表编辑器。 重新启动计算机。 错误742/741：提示“远程服务器不支持加密” 选择VPN连接，右键属性，点击安全。 在数据加密项选择“没有加密也可以连接”（Win7下点击网络共享中心—更改适配器—点击VPN连接图标—查看属性—安全数据加密—选择“没有加密也可以连接”）。 错误800：提示是“不能建立VPN连接，VPN服务器不能到达” 如果计算机中开启了系统防火墙，可以先关闭后再重试。 如果有安装路由器的用户，建议重启一下路由器。 部分网络如校园网、广电网、长城宽带、宽带通，容易出现800错误，需要与网络接入部门联系。 桌面右键单击“我的电脑”或“计算机”，打开“管理”，在“服务和应用程序”中，点击“服务”，找到“IPsec Policy Agent”服务，检查有没有禁用该服务。如果为禁用状态则改为自动状态，启动该服务。 错误619 如果打开了防火墙（包括系统自带的）：关闭防火墙，或者设置防火墙允许UDP 1701端口。 使用路由器上网：不使用路由器，或者映射UDP 1701端口。 如果无以上两种现象存在，但是还出现619错误：关闭所有正在使用网络的软件，重新启动计算机然后重新进行连接。 连上国外VPN后打开国内网页速度很慢 因为连接上了VPN的国外线路，本地网络出口已经变更为了国家带宽出口，因此在连接VPN的状态下访问国内的网页速度是比较慢的，可简单理解成：因为线路的传输需要从国内到国外，再从国外返回国内。而如果是访问国外网页的话，此时线路方式从国内直接传输到国外是相对最快的。而且还取决于您所选的线路距离，如果您选择的是美国的线路，那么访问国内的网页肯定较慢。 移动终端连接不上 当前网络是3G网络：3G网络通常都不稳定，不保证每次都可以连接上。 如果正在办公室使用公司的无线网络但连不上VPN或发生无法响应PPTP服务器错误：请详细咨询相关人员所处的网络宽带服务商是否支持VPN，其次看所处的网络路由器是否禁止了VPN端口。 电脑上可以连接VPN，但手机就不行：请确认电脑中的VPN是否处于“正在连接”的状态，如果是，请先断开电脑中的，再次连接手机试试。请注意一个账号不能同时登录在两个设备中。
作原理编辑 通常情况下，VPN网关采取双网卡结构，外网卡使用公网IP接入Internet。 网络一(假定为公网internet)的终端A…

…访问网络二(假定为公司内网)的终端B，其发出的访问数据包的目标地址为终端B的内部IP地址。 网络二的VPN网关在接收到终端A发出的访问数据包时对其目标地址进行检查，如果目标地址属于网络二的地址，则将该数据包进行封装，封装的方式根据所采用的VPN技术不同而不同，同时VPN网关会构造一个新VPN数据包，并将封装后的原数据包作为VPN数据包的负载，VPN数据包的目标地址为网络二的VPN网关的外部地址。 网络二的VPN网关将VPN数据包发送到Internet，由于VPN数据包的目标地址是网络一的VPN网关的外部地址，所以该数据包将被Internet中的路由正确地发送到网络二的VPN网关。 网络二的VPN网关对接收到的数据包进行检查，如果发现该数据包是从网络一的VPN网关发出的，即可判定该数据包为VPN数据包，并对该数据包进行解包处理。解包的过程主要是先将VPN数据包的包头剥离，再将数据包反向处理还原成原始的数据包。 网络二的VPN网关将还原后的原始数据包发送至目标终端B，由于原始数据包的目标地址是终端B的IP，所以该数据包能够被正确地发送到终端B。在终端B看来，它收到的数据包就和从终端A直接发过来的一样。 从终端B返回终端A的数据包处理过程和上述过程一样，这样两个网络内的终端就可以相互通讯了。 通过上述说明可以发现，在VPN网关对数据包进行处理时，有两个参数对于VPN通讯十分重要：原始数据包的目标地址（VPN目标地址）和远程VPN网关地址。根据VPN目标地址，VPN网关能够判断对哪些数据包进行VPN处理，对于不需要处理的数据包通常情况下可直接转发到上级路由；远程VPN网关地址则指定了处理后的VPN数据包发送的目标地址，即VPN隧道的另一端VPN网关地址。由于网络通讯是双向的，在进行VPN通讯时，隧道两端的VPN网关都必须知道VPN目标地址和与此对应的远端VPN网关地址。 分类标准编辑 根据不同的划分标准，VPN可以按几个标准进行分类划分： 1、按VPN的协议分类： VPN的隧道协议主要有三种，PPTP、L2TP和IPSec，其中PPTP和L2TP协议工作在OSI模型的第二层，又称为二层隧道协议；IPSec是第三层隧道协议。 2、按VPN的应用分类： （1）Access VPN（远程接入VPN）：客户端到网关，使用公网作为骨干网在设备之间传输VPN数据流量； （2）Intranet VPN（内联网VPN）：网关到网关，通过公司的网络架构连接来自同公司的资源； （3）Extranet VPN（外联网VPN）：与合作伙伴企业网构成Extranet，将一个公司与另一个公司的资源进行连接。 3、按所用的设备类型进行分类： 网络设备提供商针对不同客户的需求，开发出不同的VPN网络设备，主要为交换机、路由器和防火墙： （1）路由器式VPN：路由器式VPN部署较容易，只要在路由器上添加VPN服务即可； （2）交换机式VPN：主要应用于连接用户较少的VPN网络； （3）防火墙式VPN：防火墙式VPN是最常见的一种VPN的实现方式，许多厂商都提供这种配置类型 4．按照实现原理划分： （1）重叠VPN：此VPN需要用户自己建立端节点之间的VPN链路，主要包括：GRE、L2TP、IPSec等众多技术。 （2）对等VPN：由网络运营商在主干网上完成VPN通道的建立，主要包括MPLS、VPN技术。 实现方式编辑 VPN的实现有很多种方法，常用的有以下四种： 1．VPN服务器：在大型局域网中，可以通过在网络中心搭建VPN服务器的方法实现VPN。 2．软件VPN：可以通过专用的软件实现VPN。 3．硬件VPN：可以通过专用的硬件实现VPN。 4．集成VPN：某些硬件设备，如路由器、防火墙等，都含有VPN功能，但是一般拥有VPN功能的硬件设备通常都比没有这一功能的要贵。 常用VPN技术编辑 1．MPLS VPN是一种基于MPLS技术的IP VPN，是在网络路由和交换设备上应用MPLS（Multiprotocol Label Switching，多协议标记交换）技术，简化核心路由器的路由选择方式，利用结合传统路由技术的标记交换实现的IP虚拟专用网络（IP VPN）。MPLS优势在于将二层交换和三层路由技术结合起来，在解决VPN、服务分类和流量工程这些IP网络的重大问题时具有很优异的表现。因此，MPLS VPN在解决企业互连、提供各种新业务方面也越来越被运营商看好，成为在IP网络运营商提供增值业务的重要手段。MPLS VPN又可分为二层MPLS VPN（即MPLS L2 VPN）和三层MPLS VPN（即MPLS L3 VPN）。 2．SSL VPN是以HTTPS（Secure HTTP，安全的HTTP，即支持SSL的HTTP协议）为基础的VPN技术，工作在传输层和应用层之间。SSL VPN充分利用了SSL协议提供的基于证书的身份认证、数据加密和消息完整性验证机制，可以为应用层之间的通信建立安全连接。SSL VPN广泛应用于基于Web的远程安全接入，为用户远程访问公司内部网络提供了安全保证。 3．IPSec VPN是基于IPSec协议的VPN技术，由IPSec协议提供隧道安全保障。IPSec是一种由IETF设计的端到端的确保基于IP通讯的数据安全性的机制。它为Internet上传输的数据提供了高质量的、可互操作的、基于密码学的安全保证。 常见问题编辑 错误691：提示“由于域上的用户名和/或密码无效而拒绝访问” 一般的原因是VPN连接时输入的账户和/或密码不正确，或是没有使用VPN服务的权限。 VPN一个账号默认仅限一台电脑使用，检查您的用户名有无登录重复。 若您是在使用的途中掉线了，不要急着再次连接，请耐心等待几分钟。 若还是提示错误，请联系网络管理员。 错误691：提示“端口已断开连接” 市面上有一小部分的路由器对VPN支持不好，从而引起错误691、只能连接几台机、经常掉线等多种问题，有时候还会出现错误800。原因是路由器采用NAT方式，不能让VPN协议穿透。 如果计算机中开启了系统防火墙，可以先关闭后再重试。 如果偶尔出现，重拨几次，或者重新启动计算机及路由器后再重试。 如果是通过局域网或者通过路由器上网的用户，请网络管理员在服务器或者路由器上打开UDP端口1701~1704。 如果路由器中不能设置，可以尝试将计算机直接连到外网，用单机拨号方式连接互联网，再重试VPN拨号。 部分网络如校园网、广电网、长城宽带、宽带通，容易出现691错误，需要与网络接入部门联系。 安装了简化版的操作系统容易缺少相关组件，可以下载安装错误691注册表文件。 错误721：提示“远程计算机没反应” 这种情况可能是网络延迟造成的，可以多连几次试试，如果还是不行，可以尝试以下解决方法： 单击“开始”，然后单击“运行”。 在“运行”中，键入regedit.exe，然后单击“确定”。 在注册表编辑器中，找到以下子项：HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Class/{4D36E972-E325-11CE-BFC1-08002bE10318}/<000x>，其中<000x>是WAN微型端口（PPTP）驱动程序的网络适配器。 在“编辑”菜单上，指向“新建”，然后单击“DWORD 值”。 键入ValidateAddress，然后按 Enter。该值的默认设置为“1”（打开）；因此，您可以通过将其设置为“0”将其关闭。 退出注册表编辑器。 重新启动计算机。 错误742/741：提示“远程服务器不支持加密” 选择VPN连接，右键属性，点击安全。 在数据加密项选择“没有加密也可以连接”（Win7下点击网络共享中心—更改适配器—点击VPN连接图标—查看属性—安全数据加密—选择“没有加密也可以连接”）。 错误800：提示是“不能建立VPN连接，VPN服务器不能到达” 如果计算机中开启了系统防火墙，可以先关闭后再重试。 如果有安装路由器的用户，建议重启一下路由器。 部分网络如校园网、广电网、长城宽带、宽带通，容易出现800错误，需要与网络接入部门联系。 桌面右键单击“我的电脑”或“计算机”，打开“管理”，在“服务和应用程序”中，点击“服务”，找到“IPsec Policy Agent”服务，检查有没有禁用该服务。如果为禁用状态则改为自动状态，启动该服务。 错误619 如果打开了防火墙（包括系统自带的）：关闭防火墙，或者设置防火墙允许UDP 1701端口。 使用路由器上网：不使用路由器，或者映射UDP 1701端口。 如果无以上两种现象存在，但是还出现619错误：关闭所有正在使用网络的软件，重新启动计算机然后重新进行连接。 连上国外VPN后打开国内网页速度很慢 因为连接上了VPN的国外线路，本地网络出口已经变更为了国家带宽出口，因此在连接VPN的状态下访问国内的网页速度是比较慢的，可简单理解成：因为线路的传输需要从国内到国外，再从国外返回国内。而如果是访问国外网页的话，此时线路方式从国内直接传输到国外是相对最快的。而且还取决于您所选的线路距离，如果您选择的是美国的线路，那么访问国内的网页肯定较慢。 移动终端连接不上 当前网络是3G网络：3G网络通常都不稳定，不保证每次都可以连接上。 如果正在办公室使用公司的无线网络但连不上VPN或发生无法响应PPTP服务器错误：请详细咨询相关人员所处的网络宽带服务商是否支持VPN，其次看所处的网络路由器是否禁止了VPN端口。 电脑上可以连接VPN，但手机就不行：请确认电脑中的VPN是否处于“正在连接”的状态，如果是，请先断开电脑中的，再次连接手机试试。请注意一个账号不能同时登录在两个设备中。
作原理编辑 通常情况下，VPN网关采取双网卡结构，外网卡使用公网IP接入Internet。 网络一(假定为公网internet)的终端A…

…访问网络二(假定为公司内网)的终端B，其发出的访问数据包的目标地址为终端B的内部IP地址。 网络二的VPN网关在接收到终端A发出的访问数据包时对其目标地址进行检查，如果目标地址属于网络二的地址，则将该数据包进行封装，封装的方式根据所采用的VPN技术不同而不同，同时VPN网关会构造一个新VPN数据包，并将封装后的原数据包作为VPN数据包的负载，VPN数据包的目标地址为网络二的VPN网关的外部地址。 网络二的VPN网关将VPN数据包发送到Internet，由于VPN数据包的目标地址是网络一的VPN网关的外部地址，所以该数据包将被Internet中的路由正确地发送到网络二的VPN网关。 网络二的VPN网关对接收到的数据包进行检查，如果发现该数据包是从网络一的VPN网关发出的，即可判定该数据包为VPN数据包，并对该数据包进行解包处理。解包的过程主要是先将VPN数据包的包头剥离，再将数据包反向处理还原成原始的数据包。 网络二的VPN网关将还原后的原始数据包发送至目标终端B，由于原始数据包的目标地址是终端B的IP，所以该数据包能够被正确地发送到终端B。在终端B看来，它收到的数据包就和从终端A直接发过来的一样。 从终端B返回终端A的数据包处理过程和上述过程一样，这样两个网络内的终端就可以相互通讯了。 通过上述说明可以发现，在VPN网关对数据包进行处理时，有两个参数对于VPN通讯十分重要：原始数据包的目标地址（VPN目标地址）和远程VPN网关地址。根据VPN目标地址，VPN网关能够判断对哪些数据包进行VPN处理，对于不需要处理的数据包通常情况下可直接转发到上级路由；远程VPN网关地址则指定了处理后的VPN数据包发送的目标地址，即VPN隧道的另一端VPN网关地址。由于网络通讯是双向的，在进行VPN通讯时，隧道两端的VPN网关都必须知道VPN目标地址和与此对应的远端VPN网关地址。 分类标准编辑 根据不同的划分标准，VPN可以按几个标准进行分类划分： 1、按VPN的协议分类： VPN的隧道协议主要有三种，PPTP、L2TP和IPSec，其中PPTP和L2TP协议工作在OSI模型的第二层，又称为二层隧道协议；IPSec是第三层隧道协议。 2、按VPN的应用分类： （1）Access VPN（远程接入VPN）：客户端到网关，使用公网作为骨干网在设备之间传输VPN数据流量； （2）Intranet VPN（内联网VPN）：网关到网关，通过公司的网络架构连接来自同公司的资源； （3）Extranet VPN（外联网VPN）：与合作伙伴企业网构成Extranet，将一个公司与另一个公司的资源进行连接。 3、按所用的设备类型进行分类： 网络设备提供商针对不同客户的需求，开发出不同的VPN网络设备，主要为交换机、路由器和防火墙： （1）路由器式VPN：路由器式VPN部署较容易，只要在路由器上添加VPN服务即可； （2）交换机式VPN：主要应用于连接用户较少的VPN网络； （3）防火墙式VPN：防火墙式VPN是最常见的一种VPN的实现方式，许多厂商都提供这种配置类型 4．按照实现原理划分： （1）重叠VPN：此VPN需要用户自己建立端节点之间的VPN链路，主要包括：GRE、L2TP、IPSec等众多技术。 （2）对等VPN：由网络运营商在主干网上完成VPN通道的建立，主要包括MPLS、VPN技术。 实现方式编辑 VPN的实现有很多种方法，常用的有以下四种： 1．VPN服务器：在大型局域网中，可以通过在网络中心搭建VPN服务器的方法实现VPN。 2．软件VPN：可以通过专用的软件实现VPN。 3．硬件VPN：可以通过专用的硬件实现VPN。 4．集成VPN：某些硬件设备，如路由器、防火墙等，都含有VPN功能，但是一般拥有VPN功能的硬件设备通常都比没有这一功能的要贵。 常用VPN技术编辑 1．MPLS VPN是一种基于MPLS技术的IP VPN，是在网络路由和交换设备上应用MPLS（Multiprotocol Label Switching，多协议标记交换）技术，简化核心路由器的路由选择方式，利用结合传统路由技术的标记交换实现的IP虚拟专用网络（IP VPN）。MPLS优势在于将二层交换和三层路由技术结合起来，在解决VPN、服务分类和流量工程这些IP网络的重大问题时具有很优异的表现。因此，MPLS VPN在解决企业互连、提供各种新业务方面也越来越被运营商看好，成为在IP网络运营商提供增值业务的重要手段。MPLS VPN又可分为二层MPLS VPN（即MPLS L2 VPN）和三层MPLS VPN（即MPLS L3 VPN）。 2．SSL VPN是以HTTPS（Secure HTTP，安全的HTTP，即支持SSL的HTTP协议）为基础的VPN技术，工作在传输层和应用层之间。SSL VPN充分利用了SSL协议提供的基于证书的身份认证、数据加密和消息完整性验证机制，可以为应用层之间的通信建立安全连接。SSL VPN广泛应用于基于Web的远程安全接入，为用户远程访问公司内部网络提供了安全保证。 3．IPSec VPN是基于IPSec协议的VPN技术，由IPSec协议提供隧道安全保障。IPSec是一种由IETF设计的端到端的确保基于IP通讯的数据安全性的机制。它为Internet上传输的数据提供了高质量的、可互操作的、基于密码学的安全保证。 常见问题编辑 错误691：提示“由于域上的用户名和/或密码无效而拒绝访问” 一般的原因是VPN连接时输入的账户和/或密码不正确，或是没有使用VPN服务的权限。 VPN一个账号默认仅限一台电脑使用，检查您的用户名有无登录重复。 若您是在使用的途中掉线了，不要急着再次连接，请耐心等待几分钟。 若还是提示错误，请联系网络管理员。 错误691：提示“端口已断开连接” 市面上有一小部分的路由器对VPN支持不好，从而引起错误691、只能连接几台机、经常掉线等多种问题，有时候还会出现错误800。原因是路由器采用NAT方式，不能让VPN协议穿透。 如果计算机中开启了系统防火墙，可以先关闭后再重试。 如果偶尔出现，重拨几次，或者重新启动计算机及路由器后再重试。 如果是通过局域网或者通过路由器上网的用户，请网络管理员在服务器或者路由器上打开UDP端口1701~1704。 如果路由器中不能设置，可以尝试将计算机直接连到外网，用单机拨号方式连接互联网，再重试VPN拨号。 部分网络如校园网、广电网、长城宽带、宽带通，容易出现691错误，需要与网络接入部门联系。 安装了简化版的操作系统容易缺少相关组件，可以下载安装错误691注册表文件。 错误721：提示“远程计算机没反应” 这种情况可能是网络延迟造成的，可以多连几次试试，如果还是不行，可以尝试以下解决方法： 单击“开始”，然后单击“运行”。 在“运行”中，键入regedit.exe，然后单击“确定”。 在注册表编辑器中，找到以下子项：HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Class/{4D36E972-E325-11CE-BFC1-08002bE10318}/<000x>，其中<000x>是WAN微型端口（PPTP）驱动程序的网络适配器。 在“编辑”菜单上，指向“新建”，然后单击“DWORD 值”。 键入ValidateAddress，然后按 Enter。该值的默认设置为“1”（打开）；因此，您可以通过将其设置为“0”将其关闭。 退出注册表编辑器。 重新启动计算机。 错误742/741：提示“远程服务器不支持加密” 选择VPN连接，右键属性，点击安全。 在数据加密项选择“没有加密也可以连接”（Win7下点击网络共享中心—更改适配器—点击VPN连接图标—查看属性—安全数据加密—选择“没有加密也可以连接”）。 错误800：提示是“不能建立VPN连接，VPN服务器不能到达” 如果计算机中开启了系统防火墙，可以先关闭后再重试。 如果有安装路由器的用户，建议重启一下路由器。 部分网络如校园网、广电网、长城宽带、宽带通，容易出现800错误，需要与网络接入部门联系。 桌面右键单击“我的电脑”或“计算机”，打开“管理”，在“服务和应用程序”中，点击“服务”，找到“IPsec Policy Agent”服务，检查有没有禁用该服务。如果为禁用状态则改为自动状态，启动该服务。 错误619 如果打开了防火墙（包括系统自带的）：关闭防火墙，或者设置防火墙允许UDP 1701端口。 使用路由器上网：不使用路由器，或者映射UDP 1701端口。 如果无以上两种现象存在，但是还出现619错误：关闭所有正在使用网络的软件，重新启动计算机然后重新进行连接。 连上国外VPN后打开国内网页速度很慢 因为连接上了VPN的国外线路，本地网络出口已经变更为了国家带宽出口，因此在连接VPN的状态下访问国内的网页速度是比较慢的，可简单理解成：因为线路的传输需要从国内到国外，再从国外返回国内。而如果是访问国外网页的话，此时线路方式从国内直接传输到国外是相对最快的。而且还取决于您所选的线路距离，如果您选择的是美国的线路，那么访问国内的网页肯定较慢。 移动终端连接不上 当前网络是3G网络：3G网络通常都不稳定，不保证每次都可以连接上。 如果正在办公室使用公司的无线网络但连不上VPN或发生无法响应PPTP服务器错误：请详细咨询相关人员所处的网络宽带服务商是否支持VPN，其次看所处的网络路由器是否禁止了VPN端口。 电脑上可以连接VPN，但手机就不行：请确认电脑中的VPN是否处于“正在连接”的状态，如果是，请先断开电脑中的，再次连接手机试试。请注意一个账号不能同时登录在两个设备中。
作原理编辑 通常情况下，VPN网关采取双网卡结构，外网卡使用公网IP接入Internet。 网络一(假定为公网internet)的终端A…

…访问网络二(假定为公司内网)的终端B，其发出的访问数据包的目标地址为终端B的内部IP地址。 网络二的VPN网关在接收到终端A发出的访问数据包时对其目标地址进行检查，如果目标地址属于网络二的地址，则将该数据包进行封装，封装的方式根据所采用的VPN技术不同而不同，同时VPN网关会构造一个新VPN数据包，并将封装后的原数据包作为VPN数据包的负载，VPN数据包的目标地址为网络二的VPN网关的外部地址。 网络二的VPN网关将VPN数据包发送到Internet，由于VPN数据包的目标地址是网络一的VPN网关的外部地址，所以该数据包将被Internet中的路由正确地发送到网络二的VPN网关。 网络二的VPN网关对接收到的数据包进行检查，如果发现该数据包是从网络一的VPN网关发出的，即可判定该数据包为VPN数据包，并对该数据包进行解包处理。解包的过程主要是先将VPN数据包的包头剥离，再将数据包反向处理还原成原始的数据包。 网络二的VPN网关将还原后的原始数据包发送至目标终端B，由于原始数据包的目标地址是终端B的IP，所以该数据包能够被正确地发送到终端B。在终端B看来，它收到的数据包就和从终端A直接发过来的一样。 从终端B返回终端A的数据包处理过程和上述过程一样，这样两个网络内的终端就可以相互通讯了。 通过上述说明可以发现，在VPN网关对数据包进行处理时，有两个参数对于VPN通讯十分重要：原始数据包的目标地址（VPN目标地址）和远程VPN网关地址。根据VPN目标地址，VPN网关能够判断对哪些数据包进行VPN处理，对于不需要处理的数据包通常情况下可直接转发到上级路由；远程VPN网关地址则指定了处理后的VPN数据包发送的目标地址，即VPN隧道的另一端VPN网关地址。由于网络通讯是双向的，在进行VPN通讯时，隧道两端的VPN网关都必须知道VPN目标地址和与此对应的远端VPN网关地址。 分类标准编辑 根据不同的划分标准，VPN可以按几个标准进行分类划分： 1、按VPN的协议分类： VPN的隧道协议主要有三种，PPTP、L2TP和IPSec，其中PPTP和L2TP协议工作在OSI模型的第二层，又称为二层隧道协议；IPSec是第三层隧道协议。 2、按VPN的应用分类： （1）Access VPN（远程接入VPN）：客户端到网关，使用公网作为骨干网在设备之间传输VPN数据流量； （2）Intranet VPN（内联网VPN）：网关到网关，通过公司的网络架构连接来自同公司的资源； （3）Extranet VPN（外联网VPN）：与合作伙伴企业网构成Extranet，将一个公司与另一个公司的资源进行连接。 3、按所用的设备类型进行分类： 网络设备提供商针对不同客户的需求，开发出不同的VPN网络设备，主要为交换机、路由器和防火墙： （1）路由器式VPN：路由器式VPN部署较容易，只要在路由器上添加VPN服务即可； （2）交换机式VPN：主要应用于连接用户较少的VPN网络； （3）防火墙式VPN：防火墙式VPN是最常见的一种VPN的实现方式，许多厂商都提供这种配置类型 4．按照实现原理划分： （1）重叠VPN：此VPN需要用户自己建立端节点之间的VPN链路，主要包括：GRE、L2TP、IPSec等众多技术。 （2）对等VPN：由网络运营商在主干网上完成VPN通道的建立，主要包括MPLS、VPN技术。 实现方式编辑 VPN的实现有很多种方法，常用的有以下四种： 1．VPN服务器：在大型局域网中，可以通过在网络中心搭建VPN服务器的方法实现VPN。 2．软件VPN：可以通过专用的软件实现VPN。 3．硬件VPN：可以通过专用的硬件实现VPN。 4．集成VPN：某些硬件设备，如路由器、防火墙等，都含有VPN功能，但是一般拥有VPN功能的硬件设备通常都比没有这一功能的要贵。 常用VPN技术编辑 1．MPLS VPN是一种基于MPLS技术的IP VPN，是在网络路由和交换设备上应用MPLS（Multiprotocol Label Switching，多协议标记交换）技术，简化核心路由器的路由选择方式，利用结合传统路由技术的标记交换实现的IP虚拟专用网络（IP VPN）。MPLS优势在于将二层交换和三层路由技术结合起来，在解决VPN、服务分类和流量工程这些IP网络的重大问题时具有很优异的表现。因此，MPLS VPN在解决企业互连、提供各种新业务方面也越来越被运营商看好，成为在IP网络运营商提供增值业务的重要手段。MPLS VPN又可分为二层MPLS VPN（即MPLS L2 VPN）和三层MPLS VPN（即MPLS L3 VPN）。 2．SSL VPN是以HTTPS（Secure HTTP，安全的HTTP，即支持SSL的HTTP协议）为基础的VPN技术，工作在传输层和应用层之间。SSL VPN充分利用了SSL协议提供的基于证书的身份认证、数据加密和消息完整性验证机制，可以为应用层之间的通信建立安全连接。SSL VPN广泛应用于基于Web的远程安全接入，为用户远程访问公司内部网络提供了安全保证。 3．IPSec VPN是基于IPSec协议的VPN技术，由IPSec协议提供隧道安全保障。IPSec是一种由IETF设计的端到端的确保基于IP通讯的数据安全性的机制。它为Internet上传输的数据提供了高质量的、可互操作的、基于密码学的安全保证。 常见问题编辑 错误691：提示“由于域上的用户名和/或密码无效而拒绝访问” 一般的原因是VPN连接时输入的账户和/或密码不正确，或是没有使用VPN服务的权限。 VPN一个账号默认仅限一台电脑使用，检查您的用户名有无登录重复。 若您是在使用的途中掉线了，不要急着再次连接，请耐心等待几分钟。 若还是提示错误，请联系网络管理员。 错误691：提示“端口已断开连接” 市面上有一小部分的路由器对VPN支持不好，从而引起错误691、只能连接几台机、经常掉线等多种问题，有时候还会出现错误800。原因是路由器采用NAT方式，不能让VPN协议穿透。 如果计算机中开启了系统防火墙，可以先关闭后再重试。 如果偶尔出现，重拨几次，或者重新启动计算机及路由器后再重试。 如果是通过局域网或者通过路由器上网的用户，请网络管理员在服务器或者路由器上打开UDP端口1701~1704。 如果路由器中不能设置，可以尝试将计算机直接连到外网，用单机拨号方式连接互联网，再重试VPN拨号。 部分网络如校园网、广电网、长城宽带、宽带通，容易出现691错误，需要与网络接入部门联系。 安装了简化版的操作系统容易缺少相关组件，可以下载安装错误691注册表文件。 错误721：提示“远程计算机没反应” 这种情况可能是网络延迟造成的，可以多连几次试试，如果还是不行，可以尝试以下解决方法： 单击“开始”，然后单击“运行”。 在“运行”中，键入regedit.exe，然后单击“确定”。 在注册表编辑器中，找到以下子项：HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Class/{4D36E972-E325-11CE-BFC1-08002bE10318}/<000x>，其中<000x>是WAN微型端口（PPTP）驱动程序的网络适配器。 在“编辑”菜单上，指向“新建”，然后单击“DWORD 值”。 键入ValidateAddress，然后按 Enter。该值的默认设置为“1”（打开）；因此，您可以通过将其设置为“0”将其关闭。 退出注册表编辑器。 重新启动计算机。 错误742/741：提示“远程服务器不支持加密” 选择VPN连接，右键属性，点击安全。 在数据加密项选择“没有加密也可以连接”（Win7下点击网络共享中心—更改适配器—点击VPN连接图标—查看属性—安全数据加密—选择“没有加密也可以连接”）。 错误800：提示是“不能建立VPN连接，VPN服务器不能到达” 如果计算机中开启了系统防火墙，可以先关闭后再重试。 如果有安装路由器的用户，建议重启一下路由器。 部分网络如校园网、广电网、长城宽带、宽带通，容易出现800错误，需要与网络接入部门联系。 桌面右键单击“我的电脑”或“计算机”，打开“管理”，在“服务和应用程序”中，点击“服务”，找到“IPsec Policy Agent”服务，检查有没有禁用该服务。如果为禁用状态则改为自动状态，启动该服务。 错误619 如果打开了防火墙（包括系统自带的）：关闭防火墙，或者设置防火墙允许UDP 1701端口。 使用路由器上网：不使用路由器，或者映射UDP 1701端口。 如果无以上两种现象存在，但是还出现619错误：关闭所有正在使用网络的软件，重新启动计算机然后重新进行连接。 连上国外VPN后打开国内网页速度很慢 因为连接上了VPN的国外线路，本地网络出口已经变更为了国家带宽出口，因此在连接VPN的状态下访问国内的网页速度是比较慢的，可简单理解成：因为线路的传输需要从国内到国外，再从国外返回国内。而如果是访问国外网页的话，此时线路方式从国内直接传输到国外是相对最快的。而且还取决于您所选的线路距离，如果您选择的是美国的线路，那么访问国内的网页肯定较慢。 移动终端连接不上 当前网络是3G网络：3G网络通常都不稳定，不保证每次都可以连接上。 如果正在办公室使用公司的无线网络但连不上VPN或发生无法响应PPTP服务器错误：请详细咨询相关人员所处的网络宽带服务商是否支持VPN，其次看所处的网络路由器是否禁止了VPN端口。 电脑上可以连接VPN，但手机就不行：请确认电脑中的VPN是否处于“正在连接”的状态，如果是，请先断开电脑中的，再次连接手机试试。请注意一个账号不能同时登录在两个设备中。
作原理编辑 通常情况下，VPN网关采取双网卡结构，外网卡使用公网IP接入Internet。 网络一(假定为公网internet)的终端A…

…访问网络二(假定为公司内网)的终端B，其发出的访问数据包的目标地址为终端B的内部IP地址。 网络二的VPN网关在接收到终端A发出的访问数据包时对其目标地址进行检查，如果目标地址属于网络二的地址，则将该数据包进行封装，封装的方式根据所采用的VPN技术不同而不同，同时VPN网关会构造一个新VPN数据包，并将封装后的原数据包作为VPN数据包的负载，VPN数据包的目标地址为网络二的VPN网关的外部地址。 网络二的VPN网关将VPN数据包发送到Internet，由于VPN数据包的目标地址是网络一的VPN网关的外部地址，所以该数据包将被Internet中的路由正确地发送到网络二的VPN网关。 网络二的VPN网关对接收到的数据包进行检查，如果发现该数据包是从网络一的VPN网关发出的，即可判定该数据包为VPN数据包，并对该数据包进行解包处理。解包的过程主要是先将VPN数据包的包头剥离，再将数据包反向处理还原成原始的数据包。 网络二的VPN网关将还原后的原始数据包发送至目标终端B，由于原始数据包的目标地址是终端B的IP，所以该数据包能够被正确地发送到终端B。在终端B看来，它收到的数据包就和从终端A直接发过来的一样。 从终端B返回终端A的数据包处理过程和上述过程一样，这样两个网络内的终端就可以相互通讯了。 通过上述说明可以发现，在VPN网关对数据包进行处理时，有两个参数对于VPN通讯十分重要：原始数据包的目标地址（VPN目标地址）和远程VPN网关地址。根据VPN目标地址，VPN网关能够判断对哪些数据包进行VPN处理，对于不需要处理的数据包通常情况下可直接转发到上级路由；远程VPN网关地址则指定了处理后的VPN数据包发送的目标地址，即VPN隧道的另一端VPN网关地址。由于网络通讯是双向的，在进行VPN通讯时，隧道两端的VPN网关都必须知道VPN目标地址和与此对应的远端VPN网关地址。 分类标准编辑 根据不同的划分标准，VPN可以按几个标准进行分类划分： 1、按VPN的协议分类： VPN的隧道协议主要有三种，PPTP、L2TP和IPSec，其中PPTP和L2TP协议工作在OSI模型的第二层，又称为二层隧道协议；IPSec是第三层隧道协议。 2、按VPN的应用分类： （1）Access VPN（远程接入VPN）：客户端到网关，使用公网作为骨干网在设备之间传输VPN数据流量； （2）Intranet VPN（内联网VPN）：网关到网关，通过公司的网络架构连接来自同公司的资源； （3）Extranet VPN（外联网VPN）：与合作伙伴企业网构成Extranet，将一个公司与另一个公司的资源进行连接。 3、按所用的设备类型进行分类： 网络设备提供商针对不同客户的需求，开发出不同的VPN网络设备，主要为交换机、路由器和防火墙： （1）路由器式VPN：路由器式VPN部署较容易，只要在路由器上添加VPN服务即可； （2）交换机式VPN：主要应用于连接用户较少的VPN网络； （3）防火墙式VPN：防火墙式VPN是最常见的一种VPN的实现方式，许多厂商都提供这种配置类型 4．按照实现原理划分： （1）重叠VPN：此VPN需要用户自己建立端节点之间的VPN链路，主要包括：GRE、L2TP、IPSec等众多技术。 （2）对等VPN：由网络运营商在主干网上完成VPN通道的建立，主要包括MPLS、VPN技术。 实现方式编辑 VPN的实现有很多种方法，常用的有以下四种： 1．VPN服务器：在大型局域网中，可以通过在网络中心搭建VPN服务器的方法实现VPN。 2．软件VPN：可以通过专用的软件实现VPN。 3．硬件VPN：可以通过专用的硬件实现VPN。 4．集成VPN：某些硬件设备，如路由器、防火墙等，都含有VPN功能，但是一般拥有VPN功能的硬件设备通常都比没有这一功能的要贵。 常用VPN技术编辑 1．MPLS VPN是一种基于MPLS技术的IP VPN，是在网络路由和交换设备上应用MPLS（Multiprotocol Label Switching，多协议标记交换）技术，简化核心路由器的路由选择方式，利用结合传统路由技术的标记交换实现的IP虚拟专用网络（IP VPN）。MPLS优势在于将二层交换和三层路由技术结合起来，在解决VPN、服务分类和流量工程这些IP网络的重大问题时具有很优异的表现。因此，MPLS VPN在解决企业互连、提供各种新业务方面也越来越被运营商看好，成为在IP网络运营商提供增值业务的重要手段。MPLS VPN又可分为二层MPLS VPN（即MPLS L2 VPN）和三层MPLS VPN（即MPLS L3 VPN）。 2．SSL VPN是以HTTPS（Secure HTTP，安全的HTTP，即支持SSL的HTTP协议）为基础的VPN技术，工作在传输层和应用层之间。SSL VPN充分利用了SSL协议提供的基于证书的身份认证、数据加密和消息完整性验证机制，可以为应用层之间的通信建立安全连接。SSL VPN广泛应用于基于Web的远程安全接入，为用户远程访问公司内部网络提供了安全保证。 3．IPSec VPN是基于IPSec协议的VPN技术，由IPSec协议提供隧道安全保障。IPSec是一种由IETF设计的端到端的确保基于IP通讯的数据安全性的机制。它为Internet上传输的数据提供了高质量的、可互操作的、基于密码学的安全保证。 常见问题编辑 错误691：提示“由于域上的用户名和/或密码无效而拒绝访问” 一般的原因是VPN连接时输入的账户和/或密码不正确，或是没有使用VPN服务的权限。 VPN一个账号默认仅限一台电脑使用，检查您的用户名有无登录重复。 若您是在使用的途中掉线了，不要急着再次连接，请耐心等待几分钟。 若还是提示错误，请联系网络管理员。 错误691：提示“端口已断开连接” 市面上有一小部分的路由器对VPN支持不好，从而引起错误691、只能连接几台机、经常掉线等多种问题，有时候还会出现错误800。原因是路由器采用NAT方式，不能让VPN协议穿透。 如果计算机中开启了系统防火墙，可以先关闭后再重试。 如果偶尔出现，重拨几次，或者重新启动计算机及路由器后再重试。 如果是通过局域网或者通过路由器上网的用户，请网络管理员在服务器或者路由器上打开UDP端口1701~1704。 如果路由器中不能设置，可以尝试将计算机直接连到外网，用单机拨号方式连接互联网，再重试VPN拨号。 部分网络如校园网、广电网、长城宽带、宽带通，容易出现691错误，需要与网络接入部门联系。 安装了简化版的操作系统容易缺少相关组件，可以下载安装错误691注册表文件。 错误721：提示“远程计算机没反应” 这种情况可能是网络延迟造成的，可以多连几次试试，如果还是不行，可以尝试以下解决方法： 单击“开始”，然后单击“运行”。 在“运行”中，键入regedit.exe，然后单击“确定”。 在注册表编辑器中，找到以下子项：HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Class/{4D36E972-E325-11CE-BFC1-08002bE10318}/<000x>，其中<000x>是WAN微型端口（PPTP）驱动程序的网络适配器。 在“编辑”菜单上，指向“新建”，然后单击“DWORD 值”。 键入ValidateAddress，然后按 Enter。该值的默认设置为“1”（打开）；因此，您可以通过将其设置为“0”将其关闭。 退出注册表编辑器。 重新启动计算机。 错误742/741：提示“远程服务器不支持加密” 选择VPN连接，右键属性，点击安全。 在数据加密项选择“没有加密也可以连接”（Win7下点击网络共享中心—更改适配器—点击VPN连接图标—查看属性—安全数据加密—选择“没有加密也可以连接”）。 错误800：提示是“不能建立VPN连接，VPN服务器不能到达” 如果计算机中开启了系统防火墙，可以先关闭后再重试。 如果有安装路由器的用户，建议重启一下路由器。 部分网络如校园网、广电网、长城宽带、宽带通，容易出现800错误，需要与网络接入部门联系。 桌面右键单击“我的电脑”或“计算机”，打开“管理”，在“服务和应用程序”中，点击“服务”，找到“IPsec Policy Agent”服务，检查有没有禁用该服务。如果为禁用状态则改为自动状态，启动该服务。 错误619 如果打开了防火墙（包括系统自带的）：关闭防火墙，或者设置防火墙允许UDP 1701端口。 使用路由器上网：不使用路由器，或者映射UDP 1701端口。 如果无以上两种现象存在，但是还出现619错误：关闭所有正在使用网络的软件，重新启动计算机然后重新进行连接。 连上国外VPN后打开国内网页速度很慢 因为连接上了VPN的国外线路，本地网络出口已经变更为了国家带宽出口，因此在连接VPN的状态下访问国内的网页速度是比较慢的，可简单理解成：因为线路的传输需要从国内到国外，再从国外返回国内。而如果是访问国外网页的话，此时线路方式从国内直接传输到国外是相对最快的。而且还取决于您所选的线路距离，如果您选择的是美国的线路，那么访问国内的网页肯定较慢。 移动终端连接不上 当前网络是3G网络：3G网络通常都不稳定，不保证每次都可以连接上。 如果正在办公室使用公司的无线网络但连不上VPN或发生无法响应PPTP服务器错误：请详细咨询相关人员所处的网络宽带服务商是否支持VPN，其次看所处的网络路由器是否禁止了VPN端口。 电脑上可以连接VPN，但手机就不行：请确认电脑中的VPN是否处于“正在连接”的状态，如果是，请先断开电脑中的，再次连接手机试试。请注意一个账号不能同时登录在两个设备中。


I was thinking of having them optional in start_test (so still, for minimal usage you can just call start_test). start_test would just call `settings` with the arguments it gets. That would allow you do e.g.
`start_test(spy_groups=('my group'))`
if you knew, for example, that all of your tests in the suite needed the same group, instead of the slightly more verbose
`start_test()
settings(spy_groups=('my group'))`


TeamCity OSS :: Kubernetes Mesos :: 5 - Smoke Tests (docker/mesos) [Build 761](https://teamcity.mesosphere.io/viewLog.html?buildId=58297&buildTypeId=Oss_KubernetesMesos_5SmokeTestsDockerMesos&guest=1) outcome was **SUCCESS**
Summary: Tests passed: 1, ignored: 190 Build time: 00:03:52


fix_binary_literal_sizing (lefticus) - x86_64-Linux-Ubuntu-14.04-cppcheck-1.67: OK (0 of 0 tests passed)

![Build Badge](http://img.shields.io/badge/build%20status-warnings-yellow.svg)


#test-branch (lefticus) - x86_64-Linux-Ubuntu-14.04-clang-3.5: OK (376 of 376 tests passed)

![Build Badge](http://img.shields.io/badge/build%20status-warnings-yellow.svg) ![Test Badge](http://img.shields.io/badge/tests%20passed-100.0%25-green.svg)


#test-branch (lefticus) - x86_64-Linux-Ubuntu-14.04-clang-3.5-LibC++: OK (376 of 376 tests passed)

![Build Badge](http://img.shields.io/badge/build%20status-warnings-yellow.svg) ![Test Badge](http://img.shields.io/badge/tests%20passed-100.0%25-green.svg)


나도 써야징


I've been using the grouping grid, but there are problems in the summary footer, how to display the percentage that was obtained from the summary column 3 / summary column 4
I need advice from you, thank you


Threading was required due to the constant polling from the network client.
Commands were taking too long to resolve and the client ended up showing errors because the client was sending more request then the server could handle. Threading helped the server handle more request simultaneously.
Agreed that threading should probably take place inside the network server when it receives the request from the client directly however i wasn't 100% sure about changing your network server request code inside the loop and knew it could also have an effect on your flyver work.


PHPCS: Method name "BuildServiceTest::testExecute_CreateDuplicateBuild" is not in camel caps format


There is no need to set it at least now. `X-Server-Version` is not used at the sender side.


ok


Maybe a rename then? `TargetFramework`?


#test-branch (lefticus) - x86_64-Linux-Ubuntu-14.04-clang-3.6-AddressSanitizer: OK (376 of 376 tests passed)

![Build Badge](http://img.shields.io/badge/build%20status-warnings-yellow.svg) ![Test Badge](http://img.shields.io/badge/tests%20passed-100.0%25-green.svg)


tiny little tab issue here.. (hardly worth fixing but..)


Mais já? kkk, Olha a última frase kkk


By the way, if `\VerbatimFootnotes` really is appearing in the template regardless of contents, that might be some kind of regression related to the `verbatim-in-note` variable in recent builds, since this works properly for me under 1.15.0.4.


#test-branch (lefticus) - x86_64-Linux-Ubuntu-14.04-clang-3.6-ThreadSanitizer: OK (376 of 376 tests passed)

![Build Badge](http://img.shields.io/badge/build%20status-warnings-yellow.svg) ![Test Badge](http://img.shields.io/badge/tests%20passed-100.0%25-green.svg)


Just submitted a pull request of a fix for this issue.  It is fully tested and working.


Note: formats were already escaped as the ``name`` of a client-side effect is escaped HTML.


Malloc for more than that. I know the standard says 32 bytes but an IE can be up to 255 bytes long and an attacker could use that against us.


init_os_support() may be called multiple times with different options, so this option should be set even if it is the default option!


#test-branch (lefticus) - x86_64-Linux-Ubuntu-14.04-gcc-4.8: OK (376 of 376 tests passed)

![Build Badge](http://img.shields.io/badge/build%20status-passing-green.svg) ![Test Badge](http://img.shields.io/badge/tests%20passed-100.0%25-green.svg)


Let's try githubs comment system for nitpicking :)


See main comment on this commit.  This works but feels dirty.  Is it ok that I have to lookup my puppet defined type in graphing this way?  lib/puppet/type/whit.rb seems to mention this may be a legacy thing or?


Do you mean that ec and non-ec getattr behaves differently (ENOENT vs ENODATA) when the object doesn't exist?


Wow! Thats really great idea! I think in some cases this feature can be VERY useful.
p.s. Sometimes I remember my first look at Mycodo(my mind then says me: WTF is going on here?:))) and thinking about new people, which will look first time at Mycodo Project and that make me smile :)). Im talking about so many great features are already released and ideas are going fall like a rain...)


@inexuscore Add "Armin Zia, Amin Roosta, Arnab Karmakar" as the authors in bower.json


#test-branch (lefticus) - x86_64-Linux-Ubuntu-14.04-gcc-4.6: OK (376 of 376 tests passed)

![Build Badge](http://img.shields.io/badge/build%20status-passing-green.svg) ![Test Badge](http://img.shields.io/badge/tests%20passed-100.0%25-green.svg)


Estaba tratando de imprimir un mensaje con el número de guía después de guardar el registro, pero no lo logré XD Creí que había eliminado la línea...


It seems the performance hit of the recursion was actually negligible.  I blame profiling artifacts for making me think otherwise.  It seems that the real culprit is `substitutionModel.getTransitionProbabilities()`.


181以前安装过openvpn，所以，应该不是iptable的问题。


Should have 2 space indentation, per Google style


It's in git so of course it would be included with release-archive, there's no special build option for it after all...


Yes, for ec-ob, it check attr_cache(it return ENODATA), but for no-ec ob, it use store->getattr(because no ob exist, it should return ENOENT)


#test-branch (lefticus) - x86_64-Linux-Ubuntu-14.04-cppcheck-1.67: OK (0 of 0 tests passed)

![Build Badge](http://img.shields.io/badge/build%20status-warnings-yellow.svg)


PHPCS: Each class must be in a namespace of at least one level (a top-level vendor name)


Fairly good, however still some suggestions as follows.
* Fix the typos and maintain the consistence of format in the report.
* Highlight some key words with **bold** or *italic* font of different colors or sizes.
* Many information was given in a paragraph, and maybe it is not easy to catch up what you want to tell. Thus, a list is neede for better illustrations of the information. An example is demonstrated.

  >In the 1.1 Initialization, a graphic user interface (GUI) was generated and some parameters were initialized.
  >* XData and YData: blabla...
  >* TimePoint: blabla...
  >* FileNum: ...
* For the clear logic display, it's better to give some codes (i.e., below) in the report.
```C++
if (rate > 0)
  flag = true;
```
* In the 2.1 Design logic, I have several questions.
 * What do you do if the sample rate was set as a **negative** number?
 * It's OK to use the UI logic for the protected coding. It's a good habit to seperate the UI and backend for the future extenstion. A struct could be defined to store the parameters in the initialization, and a variable *flag* could be defined to determine whether the initialization is performed. Thus, in the callbacks of the defined buttons, just **if-condition** can avoid the error according to the value of *flag*.
* In the 2.2 Time-consuming draw and 3 the settings of sample rate, I'm quite confusing why *drawnow* in conjunction with **BufferedAI** could not provide the good display of high-frequency signals.


Class RemoveUniqueNameIndex does not have a Docblock comment.


The latest release is from 18 days ago, which was before #3 was fixed.


Hi, would you mind sending me a PR with this commit?


In future releases, obviously.

Building with your body_LZ.bin now...


PHPCS: Line exceeds 120 characters; contains 173 characters


PHPCS: Line exceeds 120 characters; contains 135 characters


PHPCS: Line exceeds 120 characters; contains 147 characters


PHPCS: Line exceeds 120 characters; contains 327 characters


PHPCS: Line exceeds 120 characters; contains 228 characters


PHPCS: Line exceeds 120 characters; contains 293 characters


PHPCS: Line exceeds 120 characters; contains 166 characters


PHPCS: Line exceeds 120 characters; contains 139 characters


I like everything about this.


oh yeah


dfs


Migrated to Windows 10, forgot to set AutoCrLf to true...


Agora a porra ficou séria! Sobre a última frase, tenho uma confissão a fazer... Não foi o gerador de lero lero que escreveu ela. Mas não deixa de ser verdade


Thanks!


XSRF not require hijack the session. i.e. The attacker created a page with a hidden form on other site with the action point to a transition (https://yoursite/createAdminUser) and target to a hidden iframe, send a link to the victim. If the victim open the link in the browser which already authenticated as admin  to moqui. That page can submit the hidden form by onload event.

The attacker not need the sessionId, browser will use exists session automatically. only require the attacker known the form fields and URL.
Using HTTPS and POST only make XSRF attack difficult.


Wow!


Also, the problem **MAY** have been because I added `BOOTGAMECARD=1 GAMECARD_PADCHECK=0x100` (I used the command you use for the releases, with those and the theme path added). I wanted to have Themehax boot my game if I hold R, which is something that should also be in the release build. However, I'm not sure if that IS the problem.
Also, I don't know how I was able to build it the first time, but I get a `/bin/sh: error: command not found` error when I try to compile. And also, how do I include my bgm.bcstm?


TeamCity OSS :: Kubernetes Mesos :: 5 - Smoke Tests (docker/mesos) [Build 762](https://teamcity.mesosphere.io/viewLog.html?buildId=58306&buildTypeId=Oss_KubernetesMesos_5SmokeTestsDockerMesos&guest=1) outcome was **SUCCESS**
Summary: Tests passed: 1, ignored: 191 Build time: 00:03:58


nice!


"And also, how do I include my bgm.bcstm" <- See the README.


This is a really bad idea.

What is the motivation behind this?


OK :+1:


PHPCS: Each class must be in a namespace of at least one level (a top-level vendor name)


Them Tab Section


Class RemoveUniqueNameIndex does not have a Docblock comment.


World's weirdest merge. Extra commit from the merge I did.


saw approval from cuyler
at https://github.com/basho/bitcask/commit/76b3e33dd9da03afb91ca7f1be84742238f0a9fa


merging basho/bitcask/feature/bch/upgrade-cuttlefish-on-1.7 = 76b3e33d into borshop-integration-223-feature/bch/upgrade-cuttlefish-on-1.7


basho/bitcask/feature/bch/upgrade-cuttlefish-on-1.7 = 76b3e33d merged ok, testing candidate = f5317be0


Does the use of `as` mean it won't create the new queue if one is already registered with that name?


Yeah. Fixed the same way.


So sometimes the call method takes one arg and it's a dict, and sometimes it takes a list of positional args? This feels a bit unorthodox. Can we just make the implementations of these methods accept methods in a standard manner?


You failed to add the actual source files for the SDL parser to the repo, so I can't build right now :(


add_examples (lefticus) - x86_64-Linux-Ubuntu-14.04-clang-3.5: OK (376 of 376 tests passed)

![Build Badge](http://img.shields.io/badge/build%20status-warnings-yellow.svg) ![Test Badge](http://img.shields.io/badge/tests%20passed-100.0%25-green.svg)


I believe it registers this pool in the same way as Celluloid::Actor[name] = pool did.
If I have some time later I will check wether there's a spec that covers that registered? correctly returns true after the pool is initialised.


So, do I put bgm.bcstm in the same folder as themehax_installer.3dsx?
Also, what do I about the `/bin/sh: error: command not found` error when trying to build? I get that error when I try to compile in Command Prompt, but I instead get `make: mkdir: Command not found` in MINGW32.


I'm pretty sure we don't need this since quirk already applied https://github.com/kumajaya/android_kernel_cyanogen_msm8916/blob/cm-12.1-amss-2.1-wt88047/drivers/mmc/core/mmc.c#L84


Check out https://github.com/DispatchMe/mgp


Currently this is so that the endpoint that's replacing multi report can take an array instead of a dict. However, the multi suggest endpoint will take { 'assignments': assignments, 'count':count }, which isn't an array, so maybe it's not worth the hassle to insist that the multi report endpoint takes an array.


Yeah, I'll leave that decision to you whether it's more appropriate for multi report to take an array vs. some other format. Dicts are nice because you can add more keys later instead of being stuck.

If we do want it to stay an array though, why is it `*args` instead of `args`? Would be nice if the _get/_post/_put/_delete endpoints just always took one arg and that was representative of the json body


Wrong


Wow it works..


Should this code have been checking if init.all_warnings == 'INDIVIDUAL' ?

# Warnings
out_file.write('WARNINGS\n{\n')
if init.all_notifications == 'INDIVIDUAL':


Doesn't Chromium identify as Chrome?


FYI, this commit break something in the following scenario:

    $ dlv test
    > b file:line
    > c
    at this moment dlv hangs

I am running this using go-dlv.el emacs plugin, so might be related. dlv built from the parent commit works.

I don't have time to investigate now, will report later if I find something.


"put bgm.bcstm in the same folder ..." Yes.

Not sure what command is triggering that sh error - details?


Thanks, only one I might object to is the parenthetical with capitalization. But i appreciate the help cleaning this up.


What's the point of this class?


PHPCS: Each class must be in a namespace of at least one level (a top-level vendor name)


Cool. That might explain why the specs that check to see if it's registered aren't failing. Would just like to confirm that's the case when you can.


Unused field, use it or delete it


Class RemoveUniqueNameIndex does not have a Docblock comment.


TeamCity OSS :: Kubernetes Mesos :: 5 - Smoke Tests (docker/mesos) [Build 763](https://teamcity.mesosphere.io/viewLog.html?buildId=58314&buildTypeId=Oss_KubernetesMesos_5SmokeTestsDockerMesos&guest=1) outcome was **SUCCESS**
Summary: Tests passed: 1, ignored: 191 Build time: 00:04:13


Ahh actually, I don't know who did that original change... 79ce2764 is just the squashed commit. Could even have been me!


I think that would be a good approach if we start to build up a lot of boilerplate in the handlers. But at the moment these functions are very simple, so I'm not sure there's a lot of benefit to adding more abstraction.


should this be translated?


TeamCity OSS :: Kubernetes Mesos :: 5 - Smoke Tests (docker/mesos) [Build 794](https://teamcity.mesosphere.io/viewLog.html?buildId=58428&buildTypeId=Oss_KubernetesMesos_5SmokeTestsDockerMesos&guest=1) outcome was **SUCCESS**
Summary: Tests passed: 1, ignored: 190 Build time: 00:07:39


And it isn't even called `libc6-dev` on hurd-* and kfreebsd-*, but build-essential takes care of that.


TeamCity OSS :: Kubernetes Mesos :: 5 - Smoke Tests (docker/mesos) [Build 793](https://teamcity.mesosphere.io/viewLog.html?buildId=58427&buildTypeId=Oss_KubernetesMesos_5SmokeTestsDockerMesos&guest=1) outcome was **SUCCESS**
Summary: Tests passed: 1, ignored: 190 Build time: 00:07:46


it's my fail


Was throwing an error in OpenCV 3.


which design doc? did u send any updated one? I have the one u sent for the first time . I had reviewed that and asked u certain questions in earlier email.


We shouldn't, that's why they're sanitized, not escaped?


No. The API is deprecated and I believe the include is deliberately in a part of the tree not on the include path. vchiq needs updating to use a different API which will take a while.

As an alternative hack, I've changed it to remove the ``#include`` and directly include the prototypes/defines needed.


nice


Not really. The only change there is so `reset()` is called on the correct `Options` objects i.e. the existing ones and not the newly assigned ones. Everything else is the same as before.


removed in c91da2965b3e5238ccfdd83f66295bdaf0610b00


thanks ! actually, I already did it on devel branch ;)
just add this line in your Gemfile

```ruby
gem 'has_friendship', git: 'https://github.com/yhoshino11/has_friendship.git', branch: 'devel'
```


Something like:
```
:setting:`POOTLE_TM_SERVER-AUTO_UPDATE`
```


Why do you go down all layers?
Why not start at the bottom and go up?

Why do you "Always start at a layer divisible by infill_sparse_combine"?

Note that the layers with index below bottom_layers and layers with index above n_layers - 1 - top_layers never have infill. You can take advantage of that.

Please put the start_layer_index in a separate variable with its own comment. Long for-loops are hard to read.


Its not a critical error.  I'd default to ``False``


the name of this method doesn't signal what it's for?
undoable states are realtime too?


There is one other problem here. ``scipy.stats.sigmaclip`` does not allow for an ``axis`` parameter but we do. So maybe wrap this ``if ... elif ...`` in an
```if axis is None:
   <fill in the current if ... elif ...>
else:
    warnings.warn("You specified an axis parameter so we need to operate on masked data", AstropyUserWarning)
```
Additionally something similar should happen with the ``iters`` parameter (or you simply wrap the call to scipys function) inside an ``for i in range(iters):`` loop before returning.


what's the fallthrough policy, seeing this one and the one above seem to be doing the same thing?


save my life


reply


This commit also fixes the wrapping behavior of menu items.
Forgot to add this to my commit log.


I would remove the name() so that one can use lambda to define actions.
I don't think the name is useful, it's stole purpose I could see is to put it in a map keyed by its name, but that does not necessarily means it has to be on the interface.


Sure, agreed, but i can see us doing the same thing quite a lot of times in the future.

It would at least also partially remove the need for the `isMounted`

The reason why that occurs is that the `dataApprovalLevelStore.subscribe()` creates a subscription but that subscription lives on after the component is unmounted. So therefore it will run the handler.

So as an alternative to the `this.isMounted()` something like this might be even better way of doing it as resolves the a subscription sticking around.

```js
// In componentWillMount
this.dataApprovalLevelStoreDisposable = dataApprovalLevelStore.subscribe(approvalLevels => {});

//In componentWillUnMount
this.dataApprovalLevelStoreDisposable.dispose();
```
But for now this will work fine :) Just keeping these notes here so we can go back and look at history of them.


Changing the default keybinding should not be part of this pull request, since it does not contribute to solving the issue you are describing. Also, players who are playing with this configuration in multiplayer mode will have their hand crossing (R and V are really close to each other), so I think this is not a good default keybinding.
<review


also, I send a pull request to the creater of this gem couple of weeks ago, but i've got no response yet... （；￣ェ￣）


3.38 pm changed


Yes, Jessie and Wheezy with backports are stuck with 1.7.2 :(


*sent*


Para que se te evalue la práctica 1 tienes que tener hechos los ejercicios del tema 1 y los objetivos de las 2 emanas. En caso contrario, la práctia 1 estará automáticamente suspensa.


refactored in:
* 231a232617ebdb58a885651fa16e73c9860edf95 - set propTypes for Statistics component
* af449ee3d7f280a78c5aed727ce9cefae4a53a5a - move tds to separate components
* 36ba188cf484eba6fcd1951fdc36789f5aec0701 - bind context in constructor
* f6ca564af047975bdb47d45b55d55684e0b2dc3e - renaming functions
* 64df7f80fa3187a127c2ded75eab3164fe54bec4 - form moved to separate component


Since you're touching lots of files during this work, it would be great to install the pre-commit git hook from #493 for PEP8 formatting.


Thanks no error more


Close button placed beside title in tab.
Order of tab creation and placement reversed


internal / protected(class A) is effective visibility which is "effectively visible" inside A inheritors (protected) which are in the same module (internal), both should be true. Protected bound is a lower bound of two unrelated protected, see comment in KT-9583. The whole effective visibility lattice can be seen above.


Where this route helper comes from?


We have discussed this. It is not the best solution but I am okay with it.


TeamCity OSS :: Kubernetes Mesos :: 5 - Smoke Tests (docker/mesos) [Build 795](https://teamcity.mesosphere.io/viewLog.html?buildId=58433&buildTypeId=Oss_KubernetesMesos_5SmokeTestsDockerMesos&guest=1) outcome was **SUCCESS**
Summary: Tests passed: 1, ignored: 190 Build time: 00:03:51


这次催稿人应该是sway吧....


//TODO
1.게시판 글 수정버튼 : 당사자만 나오게끔
2.게시판 글 삭제 : 비밀번호 불일치할때 다시입력하게 만들기
 -비밀번호 불일치 메시지 추가로 띄워서

3.방명록 글 삭제 : 비밀번호 불일치할때 다시입력하게 만들기
 -비밀번호 불일치 메시지 추가로 띄워서

4.내부 Board Table 에서 member_name 지우기

5.회원정보 수정기능 추가하기


fast-forwarding end-to-end/timeseries to borshop-integration-1221-fix/at/query_response_error2 = f5c1d282


//TODO
1.게시판 글 수정버튼 : 당사자만 나오게끔
2.게시판 글 삭제 : 비밀번호 불일치할때 다시입력하게 만들기
-비밀번호 불일치 메시지 추가로 띄워서

3.방명록 글 삭제 : 비밀번호 불일치할때 다시입력하게 만들기
-비밀번호 불일치 메시지 추가로 띄워서

4.내부 Board Table 에서 member_name 지우기

5.회원정보 수정기능 추가하기

6.게시판,방명록에서
내용.replaceAll("\n","중괄호시작 br중괄호끝")을 통해 줄변경은 가능하게 만들었는데
중괄호시작 br중괄호끝 이 써지질 않는 상항..


Ok found it

```ruby
module CsvFilePaths
  extend RSpec::SharedContext

  Dir[Dir.pwd + '/spec/support/csv_files/*.csv'].each do |file_path|
    let("#{File.basename file_path, ".*"}_path") { file_path }
  end
end
```

Really smart!!!


Would be nice to release this as current beets version is crashing /cc https://github.com/NixOS/nixpkgs/issues/10376


If I understand correctly, this function compares the whole column / row against other columns/rows.

For example:

```jl
julia> a = [ones(5) ones(5) zeros(5)]
5x3 Array{Float64,2}:
 1.0  1.0  0.0
 1.0  1.0  0.0
 1.0  1.0  0.0
 1.0  1.0  0.0
 1.0  1.0  0.0

julia> unique(a, 1)
1x3 Array{Float64,2}:
 1.0  1.0  0.0

julia> unique(a, 2)
5x2 Array{Float64,2}:
 1.0  0.0
 1.0  0.0
 1.0  0.0
 1.0  0.0
 1.0  0.0
```

Where does the number of unique elements in the row / columns become a problem?


I'm definitely not okay with this, it's totally against common patterns in UI on web.


Mantab!


Aktuieller Stand - 14.10.15:

Ich habe mal kurz zusammengefasst was uns jetzt für die Aufgabe noch fehlt:

Die J-Unit tests (wobei hier fraglich ist, was genau "nicht trivial" ist...). Das müssten wir dann eben nochmals besprechen, eventuell auch mit den Tutoren aber hier mal ein paar (triviale?:P) Ideen:

*JUTEST: Spielfigur: Farb und Positionsabfrage
*JUTEST: Spielbrett: über System.out.print testen lassen (Stimmt die Notation/ID-Zuweisung?)
*JUTEST: Spielfeld: Kennt das Feld einen Spieler? (Die ID wird ja bereits über das Spielbrett überprüft)
*JUTEST: Spieler: Name+Farbe testen

Zusätzlich zu den Unit-Tests müssen wir unseren Klassen noch folgende Änderungen implementieren:

Spielfigur: Muss eine Position kennen
Spielfeld: muss Spielfigur kennen
Spieler: Hat Name und Farbe aus FarbEnum, diese können wir dem Konstruktor ja einfach übergeben.
(Eventuelle Einschränkungen muss man sich halt dann überlegen, wie "gleicher Name oder gleiche Farbe", ist hier aber nicht explizit aufgeführt..) sowie "Spieler kann aus Objekt der Klasse KI bestehen" was wir über den Konstruktor realisieren sollen


@pfalcon, any reason not to use enumerate() here? Also, have you considered creating na ffi instance on the fly to pass varargs instead of populating an array? I am not saying it's better overall but the implementation would look more compact, just wondering if you considered it or not.
```python
def execvp(f, args = []):
    args_ = [f] + args + [None]
    execvp_ = libc.func("i", "execvp", "s"*len(args_))
    r = execvp_(*args_)
    check_error(r)
```


(6bb32d5557fc6b150bdb1430b640c1d63b62b87c) This line has more than 100 chars (100 < 101) : feat(doc): Document reset of CORE_TMPDIR and FREEDOM_UPLOADDIR when restoring an archive (refs #5811)


Indentation is a bit off there. :straight_ruler:


Not sure about the whole idea of using an enum for identifying keys.
If the goal is to be able to support any kind of key sequences, such an enum is not really useful.
Anyone who wants to map a sequence of key will have to write his own KeyEvent interface.
As the KeyEvent represents an actual sequence of characters from the input stream, why not simply using a String ?

With a few helper methods, people can then translate "named" key-bindings into the real sequence of characters.
     translate("^X^V") would return "\u0024\u0022"
Users can they bind anything.

Also I don't think int[] is a good representation for user-facing stuff.  Strings are usually easier to deal with.


Replace "Email" in the messages with the "Email Id"


With regard to `layer_index` and the spaces after semicolons, neither were specified in our code style discussions last year as far as I can recall. There was never any conclusion on where to put spaces except for indent (I explicitly remember that), and I think for naming conventions all that was mentioned is to use more descriptive variable names than `i` if possible. So then I go by what seems neatest to me. Perhaps we'll have to use more restrictive coding standards.

Agreed on the rest. I'll see to it.


TeamCity OSS :: Kubernetes Mesos :: 5 - Smoke Tests (docker/mesos) [Build 797](https://teamcity.mesosphere.io/viewLog.html?buildId=58434&buildTypeId=Oss_KubernetesMesos_5SmokeTestsDockerMesos&guest=1) outcome was **SUCCESS**
Summary: Tests passed: 1, ignored: 190 Build time: 00:03:59


"Copyright {yyyy} {name of copyright owner}"
I guess it is a bit too generic :)


this is why I am an idiot, dahhhh


I'm having this same issue, are you using folders? I noticed that if I run the seed job 2x then the update shows up.


TeamCity OSS :: Kubernetes Mesos :: 5 - Smoke Tests (docker/mesos) [Build 796](https://teamcity.mesosphere.io/viewLog.html?buildId=58435&buildTypeId=Oss_KubernetesMesos_5SmokeTestsDockerMesos&guest=1) outcome was **SUCCESS**
Summary: Tests passed: 1, ignored: 190 Build time: 00:06:04


Tags will be stored as comma separated list in the google doc and read out as string.
You will need to convert it into a Python list

``` Python
tags = wks.cell(cell.row,11).value.split(", ")
```


Move key to before cache bust


Current date not defined


Точно. Поправил: https://github.com/bogachev-pa/rdo-xtext/commit/d3611f004aa7b1a5c222c75ddcb602c41155329f


You mean logout button, right?

And I can't see any reason why it is a bad idea. I wouldn't say it is a *very* bad idea, that's such a strong word. It's unusual, but you can see it in many applications - the user controls are in bottom left/right corner. You want me to find you examples of apps with user acc buttons at the bottom?

But whatever, if you want logout button and user info at the top, find a solution, how to put there all the things we want to have there (title, subtitle, search, logged user, logout button)


Already: where "find png first"


I think a test should be added for if the renameFile times out.


Tags are multi items and behave differently
you can add a list like this
``` Python
metadata.tags.removeall() #  remove existing tags first
metadata.tags.add(tags) # add new tags afterwards
'''


Oh, that was totally unclear to me – that makes sense. I thought it was doing the unique operation in each column/row.


I was copypasting from existing component. Let's keep it this way until we decide to remove classes from everywhere.


TeamCity OSS :: Kubernetes Mesos :: 5 - Smoke Tests (docker/mesos) [Build 799](https://teamcity.mesosphere.io/viewLog.html?buildId=58437&buildTypeId=Oss_KubernetesMesos_5SmokeTestsDockerMesos&guest=1) outcome was **SUCCESS**
Summary: Tests passed: 1, ignored: 190 Build time: 00:06:34


Ok


FYI, I've applied your patch on Grid'5000 reims site (I cherry picked it against 2.5.4 version used in Grid'5000 and I had to finish the merge manually but it seems ok).

Performance seems a lot better and I did not had any deadlock yet.

I will give more feedback when more testing will be done.


yeah, not finished. I just pushed it to get it on my other machine


TeamCity OSS :: Kubernetes Mesos :: 5 - Smoke Tests (docker/mesos) [Build 798](https://teamcity.mesosphere.io/viewLog.html?buildId=58436&buildTypeId=Oss_KubernetesMesos_5SmokeTestsDockerMesos&guest=1) outcome was **SUCCESS**
Summary: Tests passed: 1, ignored: 190 Build time: 00:07:26


Thanks Muaz. Its working now ;)


e se no?


Well, I should clarify that I did get the proxy working, I could log in and run a command or two, but the packets would increase in size as the two systems negotiated MTU settings, and at some point everything would freeze and mosh would start complaining about invalid signatures.


Well yquake2 is `arch: any-amd64 any-i386`, but I can't find any hurd of kfreebsd package here https://packages.debian.org/sid/yamagi-quake2 ...

What would have more real-life users is arm support in yqukae2. (Q2 should run on those cheap ChromeBooks)


Parecchi.


We don't need any of the code on line 121 and line 128-136 then either. Can you remove that as well?


Is this correct?


TeamCity OSS :: Kubernetes Mesos :: 5 - Smoke Tests (docker/mesos) [Build 800](https://teamcity.mesosphere.io/viewLog.html?buildId=58438&buildTypeId=Oss_KubernetesMesos_5SmokeTestsDockerMesos&guest=1) outcome was **SUCCESS**
Summary: Tests passed: 1, ignored: 190 Build time: 00:07:03


TeamCity OSS :: Kubernetes Mesos :: 5 - Smoke Tests (docker/mesos) [Build 801](https://teamcity.mesosphere.io/viewLog.html?buildId=58444&buildTypeId=Oss_KubernetesMesos_5SmokeTestsDockerMesos&guest=1) outcome was **SUCCESS**
Summary: Tests passed: 1, ignored: 189 Build time: 00:03:47


Don't think so. Not worth it for two cases.


Perchè lasciarla vuota?


Use Update frequency description for phrases
Update frequency is a dropdown list in the XML file
``` Python
metadata.update_frequency_description.set(update_frequency)
```


Consistent styles please. Notice the spaces around `==`. This ensures that your code is more readable by other developers meaning that your app is more popular.


:+1: with @MMajko.


I don't think everything needs to be in the coding standard. Not all remarks are derived from the coding standard. I think consistency in naming is just a general good thing.

The `i` was just an example placeholder variable name.

Not everything that was discussed then is currently in the coding standard. See documentation/code_conventions.md


Go with button on the bottom. Once we figure out a better overall layout, we can move this elsewhere.


OpenPower, or OpenBMC?


refactored in:
* 0e7f0b5b9abf1b4cd1be7e7aa4ed2f2d5550bddc
* bde99e64deb206a1ceec1420e7f52201633671ac


Oops, I think you both misunderstood. @csobier notice this branch is not from Yash: https://github.com/CartoDB/docs/compare/new-items, but he just did the last change there as he was asked to :-) Perhaps Andrew knows more what this is :) The dedicated server thing is something totally unrelated.


This is expecting a list (same as tags)

Use Extent Description for phrases
``` Python
metadata.extent_description.set(geographic_coverage)


TeamCity OSS :: Kubernetes Mesos :: 5 - Smoke Tests (docker/mesos) [Build 802](https://teamcity.mesosphere.io/viewLog.html?buildId=58445&buildTypeId=Oss_KubernetesMesos_5SmokeTestsDockerMesos&guest=1) outcome was **SUCCESS**
Summary: Tests passed: 1, ignored: 189 Build time: 00:04:03


javascript has indexOf


Please use defineDebugInfoPackage() and extractDebugInfo() to create a debug package instead of doing things manually.


It's not useless!  It prevents URLs like `/lobbyist/foo/ha/I/can/append/anything/here` from working.


Well, you can always use ppa:ansible/ansible but yeah I understand

Do you know if Ansible Galaxy validates this when downloading the role or is it just some informational metadata?


Saving for the next release.


Ah yes, I see the special case for Nature Power happens afterwards anyway.


Rather than use `msg.nick`, you can simply something else like `msg.status` or even create a new event like `chat:error` or `status:error`. Thinking logically, you don't need to check everytime you receive a message now do you?


ES5 brought us `Array.prototype.filter` :)

```javascript
searchForNamespaces(needle) {
  return this.namespaces.filter(function(namespace) {
    namespace.search(escapeRegex(needle) !== -1);
  });
}
```


test page


This does not fix all greps on /var/log/lastlog though.
Right now I see
14284 pts/2    S      0:00 /bin/sh /usr/share/crmsh/hb_report/hb_report -Z -Q -f Wed Oct 14 02:28:48 2015 /var/cache/crm/history/live
14286 pts/2    S      0:00  \_ /bin/sh /usr/share/crmsh/hb_report/hb_report -Z -Q -f Wed Oct 14 02:28:48 2015 /var/cache/crm/history/live
14290 pts/2    S      0:00  |   \_ /bin/sh /usr/share/crmsh/hb_report/hb_report __slave
14545 pts/2    S      0:00  |       \_ /bin/sh /usr/share/crmsh/hb_report/hb_report __slave
14546 pts/2    S      0:00  |           \_ /bin/sh /usr/share/crmsh/hb_report/hb_report __slave
14547 pts/2    S      0:00  |               \_ /bin/sh /usr/share/crmsh/hb_report/hb_report __slave
14551 pts/2    S      0:00  |               |   \_ /bin/sh /usr/share/crmsh/hb_report/hb_report __slave
14552 pts/2    D      0:03  |               |       \_ grep -l -e Mark:HB_REPORT:1444818529 /var/log/ConsoleKit /var/log/anaconda.ifcfg.log /var/log/anaconda.log /var/log/anaconda.program.log /var/log/anaconda.storage.log /var/log/anaconda.syslog /var/log/anaconda.xlog /var/log/anaconda.yum.log /var/log/archives /var/log/as.log /var/log/audit /var/log/bje.log /var/log/boot.log /var/log/btmp /var/log/btmp-20151007 /var/log/cluster /var/log/crm_report.tar.bz2 /var/log/cron /var/log/cron-20151007 /var/log/cron-20151012 /var/log/ddn_services.log /var/log/dmesg /var/log/dmesg.old /var/log/dracut.log /var/log/httpd /var/log/lastlog /var/log/log.ctdb /var/log/lost+found /var/log/maillog /var/log/maillog-20151007 /var/log/maillog-20151012 /var/log/messages /var/log/messages-20151012 /var/log/ntpstats /var/log/pgsql /var/log/prelink /var/log/rabbitmq /var/log/redis /var/log/sa /var/log/secure /var/log/secure-20151007 /var/log/secure-20151012 /var/log/spooler /var/log/spooler-20151007 /var/log/spooler-20151012 /var/log/srp_daemon.log /var/log/tallylog /var/log/wactl.log /var/log/wosaccess_report_20151007_074157.tar.gz /var/log/wosrest_trans.log /var/log/wtmp /var/log/yum.log
14548 pts/2    S      0:00  |               \_ awk {print $1}
14287 pts/2    S      0:00  \_ /bin/sh /usr/share/crmsh/hb_report/hb_report -Z -Q -f Wed Oct 14 02:28:48 2015 /var/cache/crm/history/live
14288 pts/2    S      0:00      \_ tar xf -


Tienes 3 ejercicios en el tema 1. Para que se te evalúe la práctica 1 tienes que tener al menos 4, en caso contrario, la práctica estará automáticamente suspensa.


A la ligne 19 : "tronquer le nom de l'algorithme à 3 caractère" il faudrait un S à "caractère".
Bon, c'est juste histoire de tester hein ^^


So why your former comment "Why '/$" ?


@k-nakahr ゴミが残っているので消しておいてください。


LGTM.


This line is now missing its comma.


The message should be placed in README or some other place - where you wish a notice to be available as an option to specify license.

The LICENSE file is intended for be redistributed and does not require patching.


I meant why not `/?$`?


Never ever ever post this kind of stuff in a public repository!
Add file to git ignore file so that its is not displayed here


I'm obviously too dumb to code in GitHub comment fields, edited to code above to not have syntax errors :D


missing translated title and overview
add like this

``` Python
metadata.locales["french"].add() #  currently excepts "french", "english", "spanish". We can easily add any other language
metadata.locales["french"].title.set(translated_title)
metadata.locales["french"].abstract.set(translated_overview)
```


No problem. If there is a reset button on the ARTY can you add it to the target?


TeamCity OSS :: Kubernetes Mesos :: 5 - Smoke Tests (docker/mesos) [Build 804](https://teamcity.mesosphere.io/viewLog.html?buildId=58448&buildTypeId=Oss_KubernetesMesos_5SmokeTestsDockerMesos&guest=1) outcome was **SUCCESS**
Summary: Tests passed: 1, ignored: 189 Build time: 00:03:49


TeamCity OSS :: Kubernetes Mesos :: 5 - Smoke Tests (docker/mesos) [Build 803](https://teamcity.mesosphere.io/viewLog.html?buildId=58446&buildTypeId=Oss_KubernetesMesos_5SmokeTestsDockerMesos&guest=1) outcome was **SUCCESS**
Summary: Tests passed: 1, ignored: 190 Build time: 00:04:02


nice!


The ansible-galaxy 1.7 do not validates it. I've installed `ansistrano-symfony-deploy` which requires ansible 1.8, without any notice.


caractères


избыточно, m_pIndex всегда != nullptr.


Testing comment from MA


Typo: `depricated->deprecated`.


Thanks, I'll make sure all subscriptions are properly disposed of :+1:


Since I must admit I don't understand the end of these regexps yet I just agree with your judgement. :)


How we can use the above modified code.Whether we need to override onfling method or ?


Cool :) Thanks for checking this out @ajgarlag !


Du kannst ab sofort einen individuellen Port für die Anbindung von MySQL vornehmen. Definiere eine Konstante DB_PORT unter config.inc.php mit deinem neuen Port. Die Angabe ist nur sinnvoll wenn die Konfiguration vom Standardport abweicht.


maybe you should move name normalisation at start of your function. It would handle the case for `is_company=True` and  `name = ' '`.  eg. the @anonymous company ;)


fix #14


Agreed with Jesse, this function does not belong in this pull request with a different intention.  Could also mess up the work in the other ongoing pull request #199.

<review


The name of this method makes me go: errrrmmmm. Can't we add the player index as a parameter? Or something like that. I'll have to think about it myself :)

< layout, naming


mloskot/libgeos@48aed720192c74f88aa932158d72208bc0dbce0f :)


Hum, big big code smell here: never guess ;)


`Connect_` is also missing. Here are 2 same strings now.


What's the license of this code?


Héhé, ça marche :smile:

![capture d ecran_2015-10-14_12-46-42](https://cloud.githubusercontent.com/assets/2682011/10481576/b016904c-7271-11e5-97f2-bd64bfde4be5.png)


TeamCity OSS :: Kubernetes Mesos :: 5 - Smoke Tests (docker/mesos) [Build 805](https://teamcity.mesosphere.io/viewLog.html?buildId=58449&buildTypeId=Oss_KubernetesMesos_5SmokeTestsDockerMesos&guest=1) outcome was **SUCCESS**
Summary: Tests passed: 1, ignored: 190 Build time: 00:03:52


For the future, please always use brackets when putting condition on next line.

Thanks


created new brach for dev server


Well, I even wonder about the InputProcessor parameter.
Lambda expressions are quite powerful and can easily capture the variables they need.
The InputProcessor could also be given when the class is created (if not using a lambda to point to a method), I suppose the action implementations are quite closely related to the InputProcessor anyway.
For example if the InputProcessor has a complete() method, you can use something like

 mappings.add(translate("^I"), this::complete);

When using classes:

class CompleteAction implements Action {
  private final InputProcessor inputProcessor;
  public CompleteAction(InputProcessor inputProcessor) {
    this.inputProcessor = inputProcessor;
  }
  public void apply() {
    // do its stuff
  }
}

mappings.add(translate("^I"), new CompleteAction(this));


COM8 er porten som det lyttes til i Programmet


It doesn't say anything about the license on this page


> any reason not to use enumerate() here?

enumerate() can be compiled away from uPy, and I'd like stdlib to work even in this case. Maybe it's overoptimizing, but it's better than err on other side ;-).

What do you mean "I consider"? Of course I considered it briefly. But: I don't remember how libffi supports varargs, which surely means that I didn't implement support for them in modffi. And given that while doing this, I worked on something completely different, I didn't drop everything and started implementing them (but execvp() accepts array of args anyway, execl*() takes varargs)

> execvp_ = libc.func("i", "execvp", "s"*len(args_))

Nope, such implementation I didn't even consider. libc.func() should be considered and expensive, and "meta" operation, which should be done once on module load. Of course, it doesn't have to be like that, but it is, and it can be considered an implementation pattern of micropython-lib. So, if there's a need for varargs, they should be implemented properly on modffi level.


We can also remove it and just have a link to the file?


beautiful ... I like it :+1: .. also we can use tabs to make it easier for the user to find related settings to modify


так может стоит передавать туда geometry = {0}, GDK_HINT_POS ?
оно так же избавит от critical..
это я к чему.. в roadmap же есть поддержка wayland...
кстати, я непротив помочь с развитием проекта, только не уверен с чего начать :)


We are missing a space here between format.Used


nvfmx


Is there a double-space between hashes  in or is github playing tricks on my eyes?


This check should really be done at parsing time, not when we apply the limit.


Copy/paste detected, consider extracting method or superclass


We need a space between *sampass,const


Minor: It might be nice to use Rails' `Array#to_sentence` here.


we need a space between kickoff_time,str_hex_pwd


I am also seeing `TypeError: m.path.split is not a function`, so I think you perhaps need the same or similar fix to line 516, possibly:

    516: var mNestingLevel = m.path.toString().split('/').length;


:))))) tjohooo


@mcostalba @zamar @glinscott: can you also keep the lazy_smp branch in sync ? best way is to merge every commit in both master and lazy_smp branches. if you do it every time, you make your life easier with merge conflicts (trying to catch up lots of commit in one go can be a nightmare).


I recently converted all invocations of log_xyz_errno() in our sources to not take error numbers unless they were received already. i.e. when we write a log message, log any error numbers we received, but do not log error number we generate. Hence I'd prefer if this would use "log_debug()" followed by a "return -EFBIG", instead of a log_debug_errno().


You just need to call setMinDate() or setMaxDate() on the calendar view, to set the limits.


Removed :) thanks for the obs.


应该催稿 @swaylq 交稿 @swaylq @at15 @arrowrowe 吧......


Other than those formatting issues, I have very positive reports back from other users of this patch.

Reviewed-by: Andrew Bartlett <abartlet@samba.org>

(I'm also happy to fix up the formatting if you need me to, but an upgrade branch in the pull request would be great!)


Why don't you use @Table and @Column annotations? For example @Column is composite annotations with multiple params for validation: nullable, length, updateable, unique etc. For example some entities and fields can have different names in db or can change in time.


Do we need to be concerned with coredumps larger than what we can map into memory at once?

Presumably not, but I do wonder about this..


gg get rekt


The alg name has changed but the output is still called CAREA? I would expect it to change accordingly...


This was there to allow following use the same connection:

```lua
concurredis.execute(function(r)
  concurredis.execute(function(r) ... end)
end)
```


mmap() returns MAP_FAILED (which is -1), not NULL on error.


I'm not sure this class is needed.
So the int[] is redundant when the user creates the mapping, and this means instances of this class have to be generated on the fly when an unknown binding is seen.


It's probably worth disabling the fling gesture also, when you don't have infinite scrolling. I submitted a separate pull request to add that feature.
https://github.com/alamkanak/Android-Week-View/pull/174


ack


Sorry haven't been back to F# for awhile. My goal is to be cross platform (aka Mono for OS X & Linux) so Framework needs to stay 4.5.  There isn't anything in IFSharp that requires 4.5.1 that I know of.


Compare must be with MAP_FAILED, not against NULL...


What do you mean? Of course you cannot perform the checks when the user just calls the apns, but what can you do with that? Check is performed upon usage instead during init, but the result is the same, isn't it? I mean the exception is thrown on send...


There is a reset button, but it seems to be intended as a "ChipKit" reset and not as a FPGA design reset. Its routed to FPGA and arduino shield pins and maybe more (AFK right now)

I think we should decide if we want to support the chipkit stuff in the platform file.
If we do, then we cannot use this pin for the FPGA reset as some target (in misoc sense) might want to use it as chipkit reset.

Or.... we just put an ``__init__`` keyword like ``with_reset_button`` so that anyone could inherit from basesoc/minisoc and chose whether CRG use the chipkit reset as fpga rst or not.

That seems doable!
(I am DMAing from my thoughts directly to this comment :p)


So maybe using a Map<String, int[]> would make more sense here ?


What you think about use one style handler for all?

~~~
// Use adds a Handler onto the middleware stack. Handlers are invoked in the order they are added to a Negroni.
func (n *Negroni) use(handler Handler) {
	n.handlers = append(n.handlers, handler)
	n.middleware = build(n.handlers)
}

// Use adds a Handler onto the middleware stack
func (n *Negroni) Use(handler interface{}) {
	switch handler := handler.(type) {
		case http.Handler:
			n.use(Wrap(handler))
		case Handler:
			n.use(handler)
		case func(rw http.ResponseWriter, r *http.Request, next http.HandlerFunc):
			n.use(HandlerFunc(handlerFunc))
		case func(rw http.ResponseWriter, r *http.Request):
			n.use(Wrap(http.HandlerFunc(handlerFunc)))
		default:
			panic("unknown handler")
	}
}
~~~


Hi ! @stevoland thx for your work on this issue, I've detect only one problem when you use an onEnter hook with the indexRoute.

This code make all routes work fine in my project.
```javascript
  if (routes.indexRoute) {
    makeHooksSafe(routes.indexRoute, store);
  }
```


Лучше начать с h1 и перебить остальные заголовки с h3 на h2. Странно, что мы начинаем с h2, а h1 на странице у нас нет.


You're explicitly hiding your feedbackPanel in #onConfigure():

  setVisible(anyMessage());

Your change breaks applications, which leave their feedbackPanels visible.


TeamCity OSS :: Kubernetes Mesos :: 5 - Smoke Tests (docker/mesos) [Build 806](https://teamcity.mesosphere.io/viewLog.html?buildId=58450&buildTypeId=Oss_KubernetesMesos_5SmokeTestsDockerMesos&guest=1) outcome was **SUCCESS**
Summary: Tests passed: 1, ignored: 190 Build time: 00:03:52


> Did you consciously decide not to use the 400-week salary response (rather than 10000-year) which seems to be used in the Smartdown scenarios?

It wasn't a conscious decision not to use the 400-week salary response - I simply didn't look at the Smartdown scenarios to see what they were using.


actually I don't think we need this, if you want something you can do it via dependency injection

$container->set('bryglen\apnsgcm\Apns', [
   'environment' => \bryglen\apnsgcm\Apns::ENVIRONMENT_SANDBOX,
   'pemFile' => dirname(__FILE__).'/apnssert/apns-dev.pem',
   // 'retryTimes' => 3,
   'options' => [
        'sendRetryTimes' => 5
    ]
]);


> How confident are you that this variety of responses give good enough test coverage?

I've done some more work on this branch locally and am now much more confident that the revised set of inputs I have gives nearly complete test coverage.


Oh there was no need to use `appendChild(createTextNode(...))`, you should just use `textContents` instead of `innerText` for cross-browser.


Plural? This should be IPv6HopLimit=


This wasn't nice API change :-/ -> https://github.com/yhat/ggplot/issues/457


Spurious newline.


Coś tu nie gra z wcięciami :P


Did you consider using a required named parameter here to avoid needing to conditionally raise an exception below?


Can you please make your message understandable?
On Oct 13, 2015 8:57 PM, "GTZ" <notifications@github.com> wrote:

> you are man in the computer!Do you have programming every day!!
>
> —
> Reply to this email directly or view it on GitHub.
>


this what?


what if a filename has an upper-case extension?


Confirmed


I prefer you keep word like floatLinearTextureSupport. often you strip it. It's better if you keep it


Здесь забыла показать вложенность..


Te faltan los ejercicios del tema 1. Si no entregas al menos 4 de los 5 que hay, la práctica estará automáticamentes suspensa.


Continuing our skype discussion in this !
[1:23:09 PM] Vineet Gupta: Noam tell me one thing - this early platform thing in asm - can u not do this in ur reset vector handling code
[1:25:20 PM] Vineet Gupta: that way even GET_CPU_ID will start working for u
[1:34:38 PM] noam camus: Only thread!=0 pass through res_service:
[1:35:38 PM] noam camus: When core starts with its thread 0 its first pc is first_lines_of_secondary and master CPU starts at stext


```
user = await db.User.findOne({
  where: {id: passport.UserId}
});
```


Very nice, thanks !
@robe, is there a jenkins bedge that can be added there ?


Just did, its fixed.


extensions are 'lowercased' in utils.audioprocessing.get_sound_type (https://github.com/MTG/freesound/blob/58fc0612516e65a02c4a243cc0e04241166d05c0/utils/audioprocessing/__init__.py#L24)


Последние два набора правил не по кодстайлу. Скобки с новой строки.


Perhaps instead create a function (`check`?) that takes the container name and expected network mode, and does the inspect+assert.


So it seems thread != 0starting at first_lines_of_secondary is not a specific hardware requirement, but just the way wake_cpu callback is implemented - it is always passed that PC - which platform can choose to over-ride ! So infact in eznps_smp_wakeup_cpu() u can ignore the PC and just set it to res_service

What that brings to table
1. Exact same boot sequence for all cores
2. Since u are implementing the reset vector yourself, u can add the plat_early_setup inside there w/o need for round about calling from ARC common code
3. Reduces one thing for me to maintain !


Давай добавим ссылок к email адресам.


That's obviously a copy'n'paste error. ;-)


I do not understand why would we need to be able to override all the BEM classes? I feel that since you already have default BEM classes, the user can already do whatever he wants.

Also, allowing BEM classes customization from the widget API that are targeting the default template are useful only if you use the default template.

I think having only the possibility to allow classes override for every wrapper element is enough (header, root, list, item, footer).

What do you think?


Thanks :)


Oh! Here they are! Yes! Thanks for that!


Apparently it works this way (tested).


TeamCity OSS :: Kubernetes Mesos :: 5 - Smoke Tests (docker/mesos) [Build 807](https://teamcity.mesosphere.io/viewLog.html?buildId=58452&buildTypeId=Oss_KubernetesMesos_5SmokeTestsDockerMesos&guest=1) outcome was **SUCCESS**
Summary: Tests passed: 1, ignored: 189 Build time: 00:03:53


that's a lot of changes I feel we should discuss first otherwise this may endup in a unlimited PR. :)


This is needed even if you change the default templates, this will fail with the user custom templates as soon as they put checkboxes and labels


I just added an assumption to the test - this test will be skipped if ArchiveAnalyzer has already been loaded.


TeamCity OSS :: Kubernetes Mesos :: 5 - Smoke Tests (docker/mesos) [Build 808](https://teamcity.mesosphere.io/viewLog.html?buildId=58464&buildTypeId=Oss_KubernetesMesos_5SmokeTestsDockerMesos&guest=1) outcome was **SUCCESS**
Summary: Tests passed: 1, ignored: 189 Build time: 00:03:54


One more test


The Travis CI was failing and I figured out that it was because I removed the import to the global scope.  Because there were a lot of symbols in the palettes.py module, I decided to import into a symbol to keep the namespace cleaner.  [I do not know if this is correct, I am still new at Python].  If we find that the current `LinearColorMapper` class can be removed and replaced with the proposed solution, the double import can go away.


@Majkl578 Who does nothing, can't do anything wrong.

I just tried to fix https://forum.nette.org/cs/22402-nejvetsi-zaseky-v-nette-drobnosti-na-kterych-se-da-viset-i-nekolik-hodin. Nobody cares, I tried it. This is not feature. This is not BC break. I made a mistake, which at maximum can result in few warning on production when template is compiled. Then I fixed it.

Vaše kecy mám u prdele.


> What should I do? Change the code in my fork and pull again?

Rewrite first commit with 4 space indentation instead of tabs and force push to you branch again


Nope... and I don't have resources to troubleshoot it right this moment.


@torinfo I've added this code so that links added through ckeditor default to target="_blank" rather than replacing the Xerte LO. If this isn't the best editor file to put this in then feel free to move/delete it.


We should use real checkboxes and not unicode characters, this is a hack our users can do but not sure we want to go this way.


The use of whitespace in this file is highly inconsistent.


Getting following error:
    for at, watts, tmpr in read_data(open(device, errors='ignore')):
TypeError: 'errors' is an invalid keyword argument for this function


The logger should be injected.


I don't understand why we have any "purge by path" logic at all.


- added map to view
- now we don't use check filters in enabledViews as they are always enabled


I think they usually only use pkg-config for installed packages. We also try to do that in the step above if it is installed. It has been implemented in the same way for other modules as well, for example with Ivykis. You are right in that these are very fragile and almost magical lines and I would be eager to try any and all better solutions if you could give a hint.


This may cause extra trailing space if `theme_title_display_path` is **no** and `theme_title_display_process` is **yes**. See update in #11


Please, align it properly, like other values.


What if we lose network connection midway and fail because of that? Will someone set this again for next scheduled/manual sync so that we'll try again?


Please add acestream missing module from openelec x86_64. Only sopcast is available. If you need u send you the zip.


Since this I get the following error:
```
npm ERR! Darwin 15.0.0
npm ERR! argv "/usr/local/Cellar/node/4.2.1/bin/node" "/usr/local/bin/npm" "update"
npm ERR! node v4.2.1
npm ERR! npm  v3.3.8
npm ERR! code E404

npm ERR! 404 no such package available : @reactivex/rxjs
```


https://github.com/voidlinux/void-packages/pull/2749 hehe, will close my pull request


Try this


I don't see the test case that checks that setter for the method has been invoked.


nothing


How about this ?


@miigotu this is why all_tests arent running. Travis used to build SR and get all errors. Need to remove all_tests.py from blacklist

like this https://travis-ci.org/SiCKRAGETV/SickRage/jobs/71761576
```
ERROR: testAll (__main__.AllTests)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "./tests/all_tests.py", line 36, in setUp
    self.suites = [unittest.defaultTestLoader.loadTestsFromName(file_string) for file_string in self.module_strings]
  File "/opt/python/2.7.9/lib/python2.7/unittest/loader.py", line 91, in loadTestsFromName
    module = __import__('.'.join(parts_copy))
  File "/home/travis/build/SiCKRAGETV/SickRage/tests/feedparser_tests.py", line 3, in <module>
    import test_lib as test
  File "/home/travis/build/SiCKRAGETV/SickRage/tests/test_lib.py", line 30, in <module>
    import sickbeard
  File "/home/travis/build/SiCKRAGETV/SickRage/sickbeard/__init__.py", line 37, in <module>
    from sickbeard import providers, metadata, config, webserveInit
  File "/home/travis/build/SiCKRAGETV/SickRage/sickbeard/config.py", line 28, in <module>
    from sickbeard import naming
  File "/home/travis/build/SiCKRAGETV/SickRage/sickbeard/naming.py", line 24, in <module>
    from sickbeard import tv
  File "/home/travis/build/SiCKRAGETV/SickRage/sickbeard/tv.py", line 658
    checkQualityAgain = False
                    ^
SyntaxError: invalid syntax
```


Please, align value like other values.


Testing comment from github


A propos ,,IHS Global - Ciekawostki'', skrót zasad stosowania dywizu, półpauz i pauz:

http://fontnieczcionka.pl/trzy-znaki-czyli-dywiz-polpauza-i-pauza


Testing comment from MA


Sebastian skomentował, żeby pokazać jak działają komentarze i że teraz wcina surówkę gapiąc się na GitHuba zamiast pracować.


Sorry! In fact, I want to say is that you are the greatest person in the computer, please forgive my English is not good, I am a Chinese, a not love English, but had to learn English, because programming!


test


Para que se te evalue la práctica 1 tendras que haber superado al menos el 80% de los objetivos propuesto en las dos primeras sesiones de la asignatura (los correspondientes al tema 1).


@Jorch95 @santimarrone Hay algo con lo que tengo dudas en el UML. La clase `Seccion` tiene como subclases a `Intermedia` `Inferior` y `Superior` ?? O vamos a hacer que la clase `Seccion` tenga por composicion las tres secciones?? Porque si es por composicion entonces el arreglo de `ventanas` tendria que ir dentro de las otras clases


I'll merge this - eventually these print statements will go away or be replaced with log messages


thks


It's nullable, so you should remove `nullable = false`.
Also, please, create a constant for `7` (see other fields as example).


I believe that we should reformat other values to use a similar indentation.


Why can’t you run the one that’s already there?


okies


Should be 24x24 actually!


No problem @brandizzi, thanks.


dg: could you edit your last post to include `/--abusive`? As someone pointed out in Nette forum, it could greatly improve motivation in the community https://forum.nette.org/cs/24090-budte-mili-napomocni-a-konstruktivni#p161568

The guy who wrote that forum post actually has the same avatar as you! And even the initials make it look like you're the same person. Uncanny.

This is "komunita nadšených lidí, kteří se navzájem povzbuzovali" at its best!


typo:
` return state.set('authToken', action.authToken);`


You are correct - I think the original intent was to have the friendly name being passed up to the general get/set. The friendly name is still being mangled to create the `prop_name` used in the specific getter/setter, and we're `autogen`ing everything anyways, so I agree with this change as well. Thanks!


El resultat de fer això:
tesauros_forts = Tesauro.objects.filter(Q(etq1=etiqueta)).exclude(Q(etq2=etiqueta))
tesauros_debils = Tesauro.objects.filter(Q(etq2=etiqueta)).exclude(Q(etq1=etiqueta))

No es el mateix que fer això?
tesauros = Tesauro.objects.filter(Q(etq1=etiqueta)|Q(etq2=etiqueta))


You're double escaping here. `text()` already escapes the text, so if there happens to be `<` or `>` in the format name, it will end up looking like `>` etc


likewise


@ne0-cz tomu ty říkáš nadšené povzbuzování? Když jediné, co slyším, je jaxem to zase posral?


Nooo
Its wrong
@TheNoobProgrammer will give proper in some time :D
On Oct 14, 2015 5:08 PM, "srisurya95" <notifications@github.com> wrote:

> kang code from @akhilnarang
>
> ---
> Reply to this email directly or view it on GitHub:
>
> https://github.com/srisurya95/srisurya95.github.io/commit/96ad9fd035830f4ec7c303accd266b1fe8efaaa4
>


Did not realize. But I am missing something. What do you mean by you are
the best man in the computer? Am I misunderstanding or is this a metaphor
for something?
On Oct 14, 2015 7:35 AM, "GTZ" <notifications@github.com> wrote:

> Sorry! In fact, I want to say is that you are the greatest person in the
> computer, please forgive my English is not good, I am a Chinese, a not love
> English, but had to learn English, because programming!
>
> —
> Reply to this email directly or view it on GitHub
> <https://github.com/torvalds/linux/commit/9a78f9c3c68c4d57f602b4100e766945d3362f4d#commitcomment-13764347>
> .
>


Looks good :+1:


@flavour added a config here?


@flavour Works okey except the last output is cruel http://i.imgur.com/WAu0OI8.jpg. What should be the output here?

Also please review the method


Also, it seems that addons and libs should be stripped as well.


Thank you, fixed in abab3f5186ab28afcd5cc6089edef7131025d0c4.


In the last 2 weeks, you broke three things in stable version:
- this
- https://github.com/nette/latte/issues/86
- https://github.com/nette/application/issues/99

Sorry to disappoint you by pointing these things out, but it seems it STILL doesn't bother you at all.
I don't mind you are breaking your own code of conduct, but please, stop hurting the framework users.


"famous" :)


we can add `.clearfix` hack here since some of the child elements are in float.
we can also discuss more about the `overflow:auto;`


TeamCity Glyssen :: Glyssen-master Continuous [Build *.*.995.95dfc32e9c889ec4dd710ddd5378b421ebbdc98f](http://build.palaso.org/viewLog.html?buildId=64251&buildTypeId=bt431) outcome was **SUCCESS**
Summary: Tests passed: 546, ignored: 6 Build time: 00:06:17


@Myoldmopar @mjwitte The build is clean except one warning on the MacOS clang build:

third_party/gtest/include/gtest/gtest.h:1448:16
	comparison of integers of different signs: 'const int' and 'const unsigned int' [-Wsign-compare]

I am not sure what this is referencing since it is a line in gtest.h and not in any lines of code that I added. I tried increasing the warning level in Visual Studio but I can't find anything similar. I don't see a similar warning in other recent pull requests so I assume it is related to my code changes. Any suggestions on what to do at this point?

Who on the team works on a Mac using Clang?


Where is the test for this?


see https://github.com/liedekef/spacewalk_scripts/issues/28


Coś ty sobie myślał??


@simonster, any thoughts on why this is necessary all of a sudden? Can we fix if?


@jeffworley your code is neat!


That's a great point!


For the host OS to get access to MySQL server on the VM.


@Jorch95 @santimarrone que les parece un return boolean??


This problem has a separate ticket #511


leave TODO so during code reviews I know exactly what is done and what is you stll need to do
syntax "//TODO .... "


I very much agree.  This PR is a bit stale the latest version is much cleaner.


#1 Show and hyperlink to the last build.


Can this ever succeed? `RUNNER_USER` is set to `''` above in line 24. Was `RUNNER_USER` intended to be set to something like `RUNNER_USER=${RUNNER_USER:-}` instead? Example on linux (tested with ArchLinux and Debian Jessie):

    $ sh --posix
    sh-4.3$ RUNNER_USER=
    sh-4.3$ [ "$RUNNER_USER" ]
    sh-4.3$ echo $?
    1


To fix this issue, #510 needed to be implemented too. So that ticket can probably be closed.


wow, nice


I know that you hate this and want it to go away and under normal circumstances when everything is working this should be totally unnecessary.

Unfortunately on a Prime build when something goes wrong we need this ability.


Can i use tab for reformat?


Checkmarx scan results 14 Oct 2015 14:52 UTC +03:00

High
Medium
Low
Info

New
50
27
57
0

Recurrent
0
0
0
0

Fixed
0
0
0
0

 Open Viewer
Included commits

Commit ID	Owner

5036e2ca99e2863a443b2404ebbe984af70ee251	@dudug


Yeah, sorry, should have used a few more words. Meant it is too generic to spread out through the files of the repo, which I expected to be the next step and that it would need to be a 1:1 duplication of the licence appendix. But if it is not necessary - even better.


1: M111 unrecognized component name: dojson


Now that we have two different registration pages (Users and Patients) it's worth refactoring to create a common interface. Java = OOP = Inheritance, Encapsulation, and Polymorphism


Google with a G


Кто этот чувак?


Just added a file named something like calling you C# minor text. Encoded in UTF-8 just in case some Japanese character included incidentally.


Note that this change impacts the C# plugin as well


Yeah... and now there are some more information in the auto syncs.... sorry for not taking the time to write specific commit messages for every single auto commit... you know... because it is auto :-)


This probably doesn't belong here, since it is specific to a patient tablet. Maybe in RegistratioinService?


k


she probably she means that you are a excellent developer :walking: And that she does not like english as much as programming but has to learn english as she is learning programming, so excuse her for her broken english.


Ho cambiato la frase mostrata a video e... stop!


Is it `contatcs:merge` or `contacts:merged` (I see twos later)


This name is crap. If mine is named TABLE_NAME then we both need to rename them to differentiate. Readability and nomenclature and are incredibly important, even if some of the variable names get a little long.


@ryanbr: here is a page which is broken without the exception filter: <https://www.redfin.com/MD/Baltimore/3508-Bank-St-21224/home/11080920>.

It's the request `https://ssl.cdn-redfin.com/v75.0/includes/js/dojo-release-1.8.0-src/redfin/common/analytics/PixelTracking.js` which gets blocked by `/pixeltracking.` in EasyPrivacy.


Yes, it is not required, as if no license specified in a file, a license from a project taken. If no license in a project then default governmental license (in your country) is assumed.
We can add this to readme to clarify of the licensing but I think that this would add useless info to it leading to TL;DR issue :)


Same thing here. What is PCOLUMN_1 represent? The names, ESPECIALLY constant names, should be more descriptive. Maybe something like "PATIENT_COLUMN_ID"?


Ora aggiungo una seconda modifica


remove this comment entirely


If I'm reading this right, this is actually minimum number of decisions _per variation_, right? That seems like the best option, but we should double check the help text and docs as I think it says differently.


What makes this bad? On todays monitors you can split and still read both source files?

I never understood the fixation on 80 chars, please enlighten me.


Besides the Docs comment above, this makes sense to me and looks right.


Note that this blows the minimal ISO by including gcc-4.8 (~~70 MB), as syslinux retains a link to it.


Do we have cases with negative lengths? If not then:
```python
if not monitorable_subjobs:
    continue
```
would be better.


rather than returning a pointer, i'd return `(roachpb.StoreID, bool)`


There's a big difference between pointing out and bullshiting.

> Not only it introduces BC breaks, it also makes it much harder to mantain documentation for stable versions.

This is just normal bullshit. In addition, you know very well that nobody writes documentation.


You should use %q to add a quoted string instead of `%s`


how about a more generic "getAllocateTarget queries the allocator for the range and ..."


ditto make this more generic so you dont need to mention specific methods


include -> includes


No, inside of the lines it's better to use spaces.


Add "To return to the previous behavior, set the rcParam `mathtext.fontset` to `cm`."


~~2459~~ which PR was this supposed to reference?


you should check out http://drake.mit.edu and in the options choose WITH_LITTLEDOG=ON.


@vhda, could you review this expected.tags and input.vr files?


Do we want to be catching *all* exceptions here? Bear in mind that this also hides `NameError` and `SyntaxError` so we won't get information about bugs in the code. At the very least it should be `except Exception as err`.


After looking at this, we might not need either enum. It's only used one place (LoginService I believe) so it might be worth considering just using the constants instead.


TODO


@thaJeztah @vdemeester I agree that *libcompose* shouldn't use an environment variable to configure the client API version. I've changed this to use (an optional) ApiVersion field in ClientOpts defaulting to DefaultApiVersion const (currently, "1.20").


Quoting others people without proper copy-past is quite unfair.
Why is it bullshit? The fact, that nobody does it, can't make the statement bullshit.


Ha! Even nullptr! :)


When doing a percent-encoded format string, there's no need to convert the parameter to a string explicitly. According to https://docs.python.org/2/library/stdtypes.html#string-formatting, `%s` always converts with `str()` itself.


What is TestActivity? Is that TestConstruction? Just "Test" is a little ambiguous I think.


should this go inside the Exception?


Kanon Jocke !!


With multiple comparisons against the same variable, it can be easier to read to write:

```python
if keyin in ('y', ''):
    ...
```


Shouldn't this rather be a trap, i.e., raise some dedicated exception that gets translated to an `Error` in `eval.ml`? Then you could include a test for it as well.


Please not **all** Config keys, only the ones we need. Around 14 or so.
And use B::C::Flags **is** needed.


LGTM


This could probably just be
```python
if temp_block:
    ...
```


**semi**: Missing semicolon.


**max-nested-callbacks**: Too many nested callbacks (4). Maximum allowed is 3.


**no-undef**: "expect" is not defined.


**no-undef**: "ReactDOM" is not defined.


**no-undef**: "it" is not defined.


**no-undef**: "before" is not defined.


**no-undef**: "describe" is not defined.


**require-jsdoc/require-jsdoc**: Missing @jsdoc for fake


**no-undef**: "TestUtils" is not defined.


**no-unused-expressions**: Expected an assignment or function call and instead saw an expression.


**no-unused-vars**: domNode is defined but never used


**no-spaced-func**: Unexpected space between function name and paren.


This is already merged into master


Tienes los objetivos del tema 1, pero no los ejercicios. Si no entregas al menos 4 de los 5 ejercicios del tema 1, tendras la práctica 1 automáticamente suspensa.


Again with the general exception handlers (and commas instead of `as`).


I rather believe shared hash keys should always be const. I'll check...


@dg I think that a good compromise is to simply open a pullrequest, leave it be for two days and wait if somebody spots any problems.


I think we need to create a Permit per entity rather than per client, right ?


Thanks! This is ready for the next merge round now. I will edit the subject a little just to get it under the 72 char limit (I'll also add that to the contributor docs as it's not mentioned explicitly atm).


Maybe you are angry because we are pointing at your mistakes, but please don't get it wrong. We consider such mistakes as TOTALLY NORMAL and usual. That's the reason why it should not go to stable version such early.

@fprochazka I don't think it's enough and it would work well.


You need a View - otherwise Web2Py renders the dict() like this


I'll check why I needed this local $B::C::const_strings in AV ...


I think the comment should also be adjusted then :)


test


Now that we have two different kinds of registrations, we might want to separate the two and create a common interface. I'm not sure. If we know or even there could be more things to register, then definitely. Otherwise there might  be enough similarities to keep them together under one common service. We want to keep our code as discrete and modular as possible. Also makes testing easier. Side note: we will want to start making tests for some of these. Since there isn't necessarily explicit logic here, tests after are ok.


**no-undef**: "expect" is not defined.


**no-undef**: "it" is not defined.


**semi**: Missing semicolon.


**no-undef**: "sinon" is not defined.


**no-undef**: "describe" is not defined.


**no-undef**: "before" is not defined.


**require-jsdoc/require-jsdoc**: Missing @jsdoc for fake


**no-undef**: "ReactDOM" is not defined.


**no-unused-expressions**: Expected an assignment or function call and instead saw an expression.


**max-nested-callbacks**: Too many nested callbacks (4). Maximum allowed is 3.


Yup, fine...although you're not using it yet, so maybe comment out until needed?


@fprochazka its very hard to get someone to test even the beta version. Pull requests are good to talk about implementation, but not for testing.


Is there any reason why this was never merged?


I think the simplest fix would be to just add ENOENT to the error code exception list along with ENODATA.  If the rados users wants to fail on ENOENT they can add an exists op to the request...


It's hard to read XML, but is Gender a text field? Should definitely be like a checkbox or something. And then this value should be an enum.


This can fail due to a magnitude of different types of errors, remember this talks to Dirac as well as a lot of internal Ganga stuff. Yes it's better to standardise all backends to protect against all unknown errors and throw a backend error but until we're at this stage with the backends I'd rather catch everything here and make it clear that we've caught an unknown unexpected error. It's not expected that this function should throw horrible exceptions but it often does.


@bleroy: I believe there are cases when non-responsive makes more sense, such as when you are not targeting a responsive site/theme at all, or when for whatever reason you want a more "static" layout that scales fluidly, but does not wrap.

The current row in Orchard.Layouts is a bad compromise. It is *sort of* responsive, but it can only represent the layout above a certain breakpoint, and that breakpoint cannot even be controlled in the editor; it is up to the theme to define. Also it does not support the concept of wrapping - it assumes the sum of all widths and offsets should be 12, and it also enforces this through its interaction model.

A truly responsive row should:
- Allow the user to actually specify the breakpoints.
- Allow the user to graphically edit the column widths and offsets for *each* breakpoint.
- Support wrapping.

To support those things, the interaction can no longer help maintain the "total width is always 12" invariant. But when you are not interested in wrapping or breakpoints at all, that interaction model is actually pretty darn helpful, hence I'd like to also have a standard non-responsive row where this model makes sense.


nvm, we had a company npm repository which used an old npm version.