http/ftp/IE/Chrome/Firefox
文章平均质量分 67
章志强
资深软件工程师,C/C++全栈技术专家,证券金融科技行业专家,mdb、zqdb、mytrader作者
展开
-
Protobuf使用手册
Protobuf使用手册第1章 定义.proto 文件首先我们需要编写一个 proto 文件,定义我们程序中需要处理的结构化数据,在 protobuf 的术语中,结构化数据被称为 Message。proto 文件非常类似 java 或者 C 语言的数据定义,可以使用C或C++风格的注释。下面是一个proto文件的例子。 package tutorial; op...转载 2018-10-10 17:07:51 · 1521 阅读 · 0 评论 -
云端持续集成——AppVeyor拥抱GitHub
想着你正在做一个网站终于大功告成了,提交了代码后,你按下了开发环境的Build菜单,一杯咖啡后,Build Succeed,然后连接服务器,开始部署当你乐滋滋的享受着你的开发成果时,突然发现了一个bug!于是你再次修改代码,build,部署发现bug … 修改 … build … 部署…发现bug … 修改 … build … 部署……No! 真是够了,好烦云端的持续集转载 2017-02-18 11:29:15 · 2302 阅读 · 1 评论 -
前端持续集成解决方案
前段时间读到一篇优秀的文章《前端开源项目持续集成三剑客》,就想试着运用到自己的项目中去。(好吧,老实说,我只是个徽章收集爱好者。)持续集成持续集成,这个概念对后端来说应该并不陌生,甚至可以说是司空见惯吧。但是,这对曾经(除了那些大厂)单元测试都不一定要写的前端来说,或许是个陌生的词。然而,随着前端飞速地发展,不断吸取后端长久以来积累的经验,以及前端对单元测试越来越重视,持续集成作为前端转载 2017-02-18 11:15:39 · 2453 阅读 · 0 评论 -
前端开源项目持续集成三剑客
开发业务代码的时候,我们总能发现一些通用的功能。这时候,作为一个在互联网时代富有分享精神的程序员,就会想要把项目开源出去,让更多的小伙伴去使用,偶尔可能会有大神评论,能学到很多。 在 GitHub 上, README 是最先让人看到的,一些应用广泛的项目的 README ,除了非常详细的文字介绍,还常常会带有很多小徽章,比如Vue 的这个 README 的开头:Vue这些徽章转载 2017-02-18 11:10:54 · 2485 阅读 · 0 评论 -
如何构建自动化的前端开发流程
如今的前端开发中,已经不再只是一些简单的静态文件了,对于很多Web App来说,前端代码甚至比后端代码要更加复杂,更加难于管理,例如:我们有许多的第三方库的依赖需要管理;我们有独立的前端测试需要自动运行;我们还有很多代码需要在发布时进行打包压缩;⋯⋯ 所以构建一个自动化的前端开发流程是非常必要的,但现在前端开发流程的构建是百花齐放,没有一个统一的标准,还有很多依赖于后端的架构来做转载 2017-02-18 11:03:31 · 2408 阅读 · 0 评论 -
Angular+Electron+VSCode的桌面应用开发入门笔记(1)
第一部分 Electron开发入门笔记GitHub 的 Electron 框架(以前叫做 Atom Shell)允许你使用 HTML, CSS 和 JavaScript 编写跨平台的桌面应用。它是 io.js 运行时的衍生,专注于桌面应用而不是 web 服务端。Electron 丰富的原生 API 使我们能够在页面中直接使用 JavaScript 获取原生的内容。本文学习的主要转载 2017-02-05 11:47:31 · 2688 阅读 · 0 评论 -
V8 引擎使用心得
在公司一直负责一个界面引擎的模块的设计开发工作,主要使用XML和JavaScript两种技术。最初我们使用的是MS的JS引擎(由IActiveScript及一些相关接口组成,下称MS-JS),后来由于一些问题,将MS-JS替换成Google才推出不久的JS引擎V8(下称V8-JS)。MS-JS不知道多久没更新了,不过也还好用,文档写得也清楚。V8-JS是Google的Chrome浏览器转载 2016-12-18 11:01:15 · 5429 阅读 · 0 评论 -
Building Ardublockly
Building ArdublocklyThe package folder contains the Python scripts required to package Ardublockly into a standalone executable. This way it can be distributed without any dependencies other than转载 2016-12-21 12:52:10 · 915 阅读 · 0 评论 -
C++和JS的交互2 - Invoke
近关于vc++里面通过IDispatch的Invoke来实现和js的交互做点了tp,并且对以前不了解的“直接读取js变量值”和“传递多个参数”的部分重新实现了下。1,调用js的函数,并传递多个参数[c-sharp] view plain copyCComQIPtr pDoc = m_browser.get_Document();转载 2016-12-22 12:15:51 · 1155 阅读 · 0 评论 -
使用 CEFPython 打造自己的浏览器视图
1. CEFPython是什么东西CEFPython 是 CEF 的 Python 绑定实现。CEF https://bitbucket.org/chromiumembedded/cef ,是 Chromium 的一套嵌入式实现。简单来说, CEF 实现了浏览器外在的简单功能,可以直接渲染一个全功能的页面。它包含了页面布局渲染的引擎,也包含了执行 JS 的引擎(V8)。但是转载 2016-12-21 14:23:40 · 18859 阅读 · 4 评论 -
Create Blocks ~ Extending Ardublockly
(This is a stub of the documentation for the functionality included to easily extend Ardublockly to support new blocks)(Introductory paragraph should go here)(Top view description of the exten转载 2016-12-21 12:55:41 · 658 阅读 · 0 评论 -
利用 AppVeyor 实现 GitHub 托管项目的自动化集成
基本流程状态显示(Status Badge)控制部署的触发今天拿手头一个 GitHub 项目实验了一下在线的集成服务,前后试用了TravisCI, CircleCI 和 AppVeyor。由于测试工程内包含了一些使用了 WPF 的 C# 代码,前面两个跑在 Linux/Mono 上不是很友好,而 AppVeyor 的配置非常顺利,与 GitHub 的互操作也没有任何问题转载 2017-02-18 11:30:42 · 5311 阅读 · 3 评论 -
WebAssembly,Web的新时代
在浏览器之争中,Chrome凭借JavaScript的卓越性能取得了市场主导地位,然而由于JavaScript的无类型特性,导致其运行时消耗大量的性能做为代价,这也是JavaScript的瓶颈之一。WebAssembly旨在解决这一问题。本文从WebAssembly的起源到开发实践对其做全面探究,帮助开发者对WebAssembly有全面的了解。缘起让我们从浏览器大战说起。微软凭借W转载 2017-03-10 12:50:05 · 23607 阅读 · 3 评论 -
HTTPS原理
一 前言 在说HTTPS之前先说说什么是HTTP,HTTP就是我们平时浏览网页时候使用的一种协议。HTTP协议传输的数据都是未加密的,也就是明文的,因此使用HTTP协议传输隐私信息非常不安全。为了保证这些隐私数据能加密传输,于是网景公司设计了SSL(Secure Sockets Layer)协议用于对HTTP协议传输的数据进行加密,从而就诞生了HTTPS。SSL目前的版本是3.0,被I转载 2017-03-21 12:13:27 · 379 阅读 · 0 评论 -
SSLError: [SSL: SSLV3_ALERT_BAD_RECORD_MAC] sslv3 alert bad record mac (_ssl.c:1864)
主要问题:SSLError: [SSL: SSLV3_ALERT_BAD_RECORD_MAC] sslv3 alert bad record mac (_ssl.c:1864)解决方案:import requests.packages.urllib3.util.ssl_requests.packages.urllib3.util.ssl_.DEFAULT_CIPHERS = 'ALL'参考链接...原创 2018-03-31 21:48:51 · 9134 阅读 · 1 评论 -
ssl.SSLEOFError: EOF occurred in violation of protocol (_ssl.c:748) Pytorch下载VGG时的错误
主要问题:ssl.SSLEOFError: EOF occurred in violation of protocol (_ssl.c:748)解决方案 pip install incremental参考链接 https://github.com/pypa/pip/issues/4205转载 2018-03-31 21:39:37 · 7257 阅读 · 0 评论 -
gRPC vs Thrift
简单分布式架构基本问题 传输什么样的数据,用哪种协议哪种方式数据交换的效率好服务端如何处理请求需要扩展服务端时当你的服务超过最简单结构时,你想要 灵活性可扩展低延迟当然,你更想要简单应该用这些协议吗SOAP XML, XML还是XMLCORBA 美好的想法,糟糕的实现过渡设计和臃肿DCOM, COM+主要用于windows平台HTTP/TCP/Socket/Whatever 久经考验的但是缺少协议...转载 2018-02-11 15:39:58 · 2622 阅读 · 0 评论 -
python通过get方式,post方式发送http请求和接收http响应-urllib urllib2
import urllib模块,urllib2模块, httplib模块 测试用CGI,名字为test.py,放在apache的cgi-bin目录下:#!/usr/bin/Pythonimport cgidef main(): print "Content-type: text/html\n" form = cgi.FieldStorage()转载 2017-11-02 09:43:59 · 490 阅读 · 0 评论 -
使用 AngularJS 和 Electron 构建桌面应用
使用 AngularJS 和 Electron 构建桌面应用 GitHub 的 Electron 框架(以前叫做 Atom Shell)允许你使用 HTML, CSS 和JavaScript 编写跨平台的桌面应用。它是 io.js 运行时的衍生,专注于桌面应用而不是 web 服务端。Electron 丰富的原生 API 使我们能够在页面中直接使用转载 2017-06-11 19:53:32 · 1302 阅读 · 0 评论 -
RESTful API设计技巧经验总结
简单说一下代码重用记得在Ken Rogers的Medium博客里曾经见过这么一句话(原文出自海明威):我们都是手艺学徒,没有人会成为大师。在我写这篇文章的时候,我不禁笑了起来,因为从这件事情的背后看到了一个伟大的类比,那就是从其他人那里引用了海明威的话。也就是说,我不需要为了得到类似的功能和结果而花费精力自己去创建一个与众不同的东西,上面提到的海明威的话正是代码重用在文转载 2017-06-07 12:39:44 · 704 阅读 · 0 评论 -
前端模块化发展简史
前端发展日新月异,短短不过 10 年已经从原始走向现代,甚至引领潮流。网站逐渐变成了互联网应用程序,代码量飞速增长,为了支撑这种需求和变化,同时兼顾代码质量、降低开发成本,接入模块化势在必行。伴随这一变化的是相对应的构建工具的快速成长,或是为了优化、或是为了转义,都离不开这类工具。所谓温故而知新,本篇回顾总结下前端模块化的发展历程及辅助工具。在回顾中可以更清晰的看到当前我们用的方案所处的位转载 2017-06-07 12:36:56 · 3097 阅读 · 0 评论 -
HTTPS 与 HTTP2 协议分析
HTTPS协议原理分析HTTPS协议需要解决的问题HTTPS作为安全协议而诞生,那么就不得不面对以下两大安全问题:身份验证确保通信双方身份的真实性。直白一些,A希望与B通信,A如何确认B的身份不是由C伪造的。(由C伪造B的身份与A通信,称为中间人攻击)通信加密通信的机密性、完整性依赖于算法与密钥,通信双方是如何选择算法与密钥的。能同时解决转载 2017-03-22 12:39:36 · 7046 阅读 · 0 评论 -
Adding a New Language to Ardublockly
Adding a New Language to Ardublockly(Work in Progress: This page should describe how to add new languages to Ardublockly)While Blockly has been translated to a large number of languages using转载 2016-12-21 12:58:25 · 655 阅读 · 0 评论 -
Adding a New Arduino Board to Ardublockly
Adding a New Arduino Board to ArdublocklyAs long as the board you would like to add is supported by the Arduino IDE, adding support within Ardublockly is a simple task that only required two files转载 2016-12-21 12:57:57 · 809 阅读 · 0 评论 -
Ardublockly Git Settings
Git SettingsThis page lists the general git settings used to maintain this repository. Not everything described here needs to be configured for local development, but it might be useful to at leas转载 2016-12-21 12:54:55 · 605 阅读 · 0 评论 -
使用API判断网络是否连通(InternetGetConnectedState / IsNetworkAlive)
// test.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include "test.h"#include #include #ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic转载 2016-05-26 09:52:05 · 6290 阅读 · 1 评论 -
挂接浏览器事件
当你决定看这篇文章的时候我已假设你具备了以下知识:①掌握了COM的一些基本知识,如连接点,接收器等;②具有一定的MFC编程经验,了解MFC接收器(Sink)的内部实现;③了解HTML的基础知识;④对IE内部接口有一定的了解(如IWebBrowser2, IHTMLDocument2等)本文通过一个MFC对话框程序实现的接收器达到挂接IE事件的目的。在Visual stdio2008,IE 8.转载 2016-04-18 13:59:42 · 1456 阅读 · 0 评论 -
获取IE默认代理配置
BOOL GetWinetProxy(LPSTR lpszProxy, UINT nProxyLen){unsigned long nSize = 4096;char szBuf[4096] = { 0 };INTERNET_PROXY_INFO* pProxyInfo = (INTERNET_PROXY_INFO*)szBuf;i原创 2013-07-04 09:50:16 · 1964 阅读 · 0 评论 -
Winet API 支持HTTPP/SOCKS代理
源程序1、Winet API 支持使用IE代理、或者不使用代理、或者使用自定义代理三种方式。2、使用自定义代理的话,支持HTTP代理,SOCKS代理,但是SOCKS代理不知支持用户名密码,HTTP代理支持3、这里写了一个使用Winet API写的测试程序,测试Winet API对各种代理的支持,截图如下:4、下面是程序源码:void GetLastErrorMe原创 2013-06-27 14:22:34 · 3176 阅读 · 0 评论 -
UILite——C++类库(XLib非界面功能库+UI和DirectUI库)简介
UILite是一款继承自WTL以及和界面无关的功能库的合集,能够生成很小的可执行文件。如果你也象我一样希望自己的程序又小又快的话,UILite就是你的选择。当然,我们还要克服一些障碍: 1) ATL/WTL样式的模板类初看起来有点怪异 2) 没有类向导的支持,所以要手工处理所有的消息映射。 3) MSDN没有正式的文档支持,你现在看到的就是UILite的最权威的文档4原创 2013-06-14 13:29:48 · 4462 阅读 · 5 评论 -
网页自动点击软件
网页自动点击软件下载:网页自动点击软件目录下有一个webapp.xml,使用时可以修改该配置来模拟网页自动点击功能autoclick 的属性 enable表示启用还是禁用自动点击autoclick 的属性 timeout 每隔多少秒,切换下一个websiteautoclick 的属性 loop表原创 2013-02-04 20:31:42 · 2168 阅读 · 0 评论 -
IE WebBrowser 深度复制拷贝/三种遍历IFRAME方式
使用方式:if (m_pBrowserApp != NULL) { HRESULT hr; LPDISPATCH lpDisp = GetHtmlDocument(); if (lpDisp != NULL) { CComPtr spDocument; hr = lpDisp->QueryInterface(IID_IHTMLDocument2, (原创 2012-06-11 14:14:14 · 2657 阅读 · 0 评论 -
Chrome插件资料
chrome插件开发详解http://www.cnblogs.com/zhouliweiblog/archive/2012/09/24/2700039.html1、chrome插件简单介绍 1.1基本概念 一个chrome插件其实是压缩在一起的一组文件,包括HTML、CSS、JavaScript脚本,图片文件、还有其它任何需要的转载 2013-01-31 13:33:46 · 2206 阅读 · 1 评论 -
判断IE WEBBROWSER IHTMLDocument2 是否用户正在编辑
BOOL IsActiveElementEdit(CComQIPtr& spDocument){ BOOL bEditMode = FALSE; if(spDocument) { /*BSTR p = NULL; spDocument->get_designMode(&p); CString strDesignMode = p; if(strDesignMo原创 2013-01-31 13:35:24 · 1065 阅读 · 0 评论 -
nginx openssl 的集成代码流程
说明:一、这里个人测试完全和nginx处理流程和返回的数据完全一致二、这里做了只是做了简要抽取,如果作为服务器,能实现这些步骤整体ssl处理应该没有任何问题。三、这里包含三个文件:NGXSSL.c 为主文件,source.h为头文件,source.c为部分代码文件。source.h点击(此处)折叠或打开/* * source.转载 2016-06-02 12:10:53 · 2005 阅读 · 0 评论 -
SSL握手通信详解及linux下c/c++ SSL Socket代码举例
SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层对网络连接进行加密。 安全证书既包含了用于加密数据的密钥,又包含了用于证实身份的数字签名。安全证书采用公钥加密技术。公钥加密是指使用一对非对称的密钥进行加密或解密。每一对密钥由公钥转载 2016-06-02 12:12:09 · 7561 阅读 · 1 评论 -
关于TCP连接时间
对于TCP连接需要多长时间,可以分几种情况,情况1、对方IP和端口都不存在,这时由于路由表找不到对应的主机,需要不停的往外路由,会很慢,如果还要dns解析就会更慢,基本只能等TCP连接超时情况2、对方IP存在,端口不存在,这时依赖对方IP和本地主机的物理位置和网络环境了,一般情况下都会立马返回连接错误情况3、对方IP存在,端口存在,这时也是同情况2类似,依赖当时的网络环境,一般情况下都原创 2016-10-24 14:30:11 · 6696 阅读 · 0 评论 -
Running Uncompressed Ardublockly
Runninng Uncompressed ArdublocklyDuring development you could implement your changes to the source files and re-build each time (using the Building Ardublockly instructions), however the code is转载 2016-12-21 12:52:46 · 667 阅读 · 0 评论 -
Installing Ardublockly
Install ArdublocklyIn order to simplify its use and to make it available to restricted systems, Ardublockly does not need to be installed, just downloaded and executed.Ardublockly needs the Ar转载 2016-12-21 12:51:07 · 1311 阅读 · 0 评论 -
让你的程序可以执行脚本并和脚本实现交互
#ifndef _H_WTLVC6SCRIPT_H_#define _H_WTLVC6SCRIPT_H_#include #include /////////////////////////////////////////////////////////////////////////////class UIAxDispatch : public IDi原创 2016-12-16 16:55:55 · 4182 阅读 · 0 评论