我使用的Google搜素技巧

 

1. + 强制搜索

由于Google会忽略和过滤一些常用词(称为stop words / common words),如and、how等。使用+可以让搜索引擎强制包括这些词。使用+还可以强制过滤关键词变体形式(不让搜索结果出现关键词的其它形式),如单复数、动词时态、ing形式等等。

2. – 逻辑非

用于过滤-号后面的关键词。如:MP3 -MP4,表示只搜索MP3而不要MP4的搜索结果。 -号后面没有空格。

3. ~ 同义词

关键词前加波浪线。如:~table 。

4. * 通配符

如:Google was founded in * 。

5. ** 指数

作用同 ^ ,如:2**10 。

6. ” ” 引号

用引号精确搜索,有时可只用左侧引号。如:”Google hacking” = “Google hacking 。

7. | 逻辑或

作用同 OR ,如:Google hacking | hacks 。

8. .. 数字范围

用于限定数值范围,如:spring festival logo 2002..2009 。

9. define: 关键词定义

查询关键词的网络释义。如: define:google 。

10. ext/filetype: 限定搜索指定文件类型

作用同 filetype:
filetype: 限定搜索指定文件类型
作用同 ext: 如:filetype:pdf = ext:pdf 。目前文件类型支持如下格式:

Adobe Acrobat PDF (.pdf)
Adobe Postscript (.ps)
Autodesk DWF (.dwf)
Google地球 KML (.kml)
Google地球 KMZ (.kmz)
Lotus 1-2-3(wk1、wk2、wk3、wk4、wk5、wki、wks、wku)
Lotus WordPro (.lwp)
MacWrite (.mw)
Microsoft Excel (.xls)
Microsoft Powerpoint (.ppt)
Microsoft Word (.doc)
Microsoft Works(wks、wps、wdb)
Microsoft Write (.wri)
Rich Text Format富文本格式 (.rtf)
Shockwave Flash (.swf)
纯文本(ans、txt)

11. intitle: 限定搜索标题中含指定关键词的网页

如: intitle:google search guide 。限定多个关键词用 allintitle:

12. inurl: 限定搜索url中含指定关键词的网页

如: inurl:google search guide 。通过inurl:view.shtml 你可以找到在线的网络摄像头。 限定多个关键词用 allinurl:

13. inanchor: 限定搜索页面链接锚文本中含指定关键词的网页

如: inanchor:google search guide 。限定多个关键词用 allinanchor:
intext: 限定搜索正文文本(不含标题和链接)中含指定关键词的网页
如: intext:google vs mircosoft。

14. site: 限定搜索某网站的网页

如: site:www.xifarm.com

15. link: 搜索链向某网站/网址的网页

如: link:www.xifarm.com

16. related: 搜索与某网页相似或相关的页面

如: related:www.xifarm.com

17. cache: 搜索某网页在Google缓存(网页快照)中的旧版本

如: cache:www.xifarm.com

18. info: 综合查询某网页的信息,即列出上述四个命令

如: info:www.xifarm.com 。作用同 id:

19. 图片搜索与影视搜索

filetype: 限定搜索指定文件类型的图片,支持如下格式:
• filetype:jpg
• filetype:gif
• filetype:png
• filetype:bmp
imagesize: 限定搜索指定尺寸的图片,如: imagesize:800×600
URL 参数:加在图片搜索网页的 URL 后面,可以实现更精细的搜索
• &imgtype=news 资讯
• &imgtype=face 脸部特写
• &imgtype=clipart 剪贴画
• &imgtype=lineart 素描
• &imgtype=photo 照片
• &imgc=gray 黑白图片
• &imgc=mono 灰阶图片
• &imgc=color 全彩图片

20. google.com/ncr 无区域重定向

像黑客一样写博客–Pelican快速搭建静态博客

“像黑客一样写博客”,通过文本编辑器(Markdown编辑器)即可实现写博客,而且是静态的,很神奇吧,这里的方案是Pelican.

为啥叫 Pelican 这么奇怪的名字
“Pelican” is an anagram for calepin, which means “notebook” in French. ;)

Pelican 是基于Python实现的开源静态博客系统,所谓静态博客系统就是无需数据库,每一篇文章会事先渲染成HTML静态文件,访问速度非常快。所以今天给大家介绍下怎么使用Pelican。

安装 pelican

pip3 install pelican markdown –upgrade

创建项目

```
>mkdir blog  # 创建项目目录

>cd blog # 进入项目目录

\blog>pelican-quickstart  # 生成pelican骨架
Welcome to pelican-quickstart v3.7.1.

This script will help you create a new Pelican-based website.

Please answer the following questions so this script can generate the files
needed by Pelican.
...
Done. Your new project is available at \blog
```

安装过程过,会有很多需要你输入的配置项,如果不知道怎么填就直接忽略或者选择n,因为这些配置项在后面可以自己手动再添加的。

创建完成后生成的目录结构如下

.
├── Makefile # 管理博客
├── content/ #存放文章的源文件
├── develop_server.sh
├── fabfile.py
├── output/ #生成的静态文件存放目录
├── pelicanconf.py #博客配置文件
└── publishconf.py #发布文件

第一篇makedown文章

你的文章需要保存在content目录下,通常情况我们写文章采用markdown语法,所以,现在我们在content目录创建一篇文章,文章内容:

```
Title: My super title
Date: 2010-12-03 10:20
Modified: 2010-12-05 19:30
Category: Python
Tags: pelican, publishing
Slug: my-super-post
Authors: Alexis Metaireau, Conan Doyle
Summary: Short version for index and feeds
This is the content of my super blog post.
```

生成静态文件

pelican content

执行完成后,output 目录会多出一些文件,markdown文件最终也会转换成html文件放到该目录下

选择Apache 虚拟文件路径,启动你的博客网站吧: http://Youthblue.com

高级功能1:配置主题

在http://www.pelicanthemes.com/选择自己喜欢的主题
将从pelican-themes上下载主题到本地并安装
git clone https://github.com/getpelican/pelican-themes.git

在pelicanconf.py文件中,配置主题
THEME = “pelican-octopress-theme”

高级功能2:修改时区和默认的时间格式

TIMEZONE = ‘utc’
DATE_FORMATS = {
‘en’: ‘%a, %d %b %Y’,
‘jp’: ‘%Y-%m-%d(%a)’,
‘zh’: ‘%Y-%m-%d(%a)’,
}

AD:
http://kylinholding.com/

全球43 亿个 IPv4 地址正式耗尽了,未来IPV6会加速入场

长期以来,全球 IPv4 地址耗尽令人担忧,今天这一时刻终于来临。负责英国、欧洲、中东和部分中亚地区互联网资源分配的欧洲网络协调中心(RIPE NCC)宣布,其最后的 IPv4 地址空间储备池在 11 月 25 日 UTC + 1 15:35 完全耗尽,所有 43 亿个 IPv4 地址已分配完毕。这意味着没有更多的 IPv4 地址可以分配给 ISP 和其他大型网络基础设施提供商。

最新Instagram 包月赞,ins自动点赞加粉评论推广工具 wx 21372550  全球43 亿个 IPv4 地址正式耗尽了,未来IPV6会加速入场 20191129224400

该过程自 80 年代以来就已预见到。IP 地址的全球性管理机构为互联网号码分配局(IANA),其下有五个局域网际网络注册管理机构(RIR)。由 IANA 管理的 IPv4 位址,于 2011 年 1 月 31 日完全用尽。其他五个区域的可核发地址,除了为迁移 IPv6 而保留的最后一块 /8 地址外,也随之陆续用尽:亚太地区在 2011 年 4 月 15 日用尽,欧洲地区在 2012 年 9 月 14 日,拉丁美洲及加勒比海地区在 2014 年 6 月 10 日,北美地区在 2015 年 9 月 24 日,非洲地区在 2017 年 4 月 21 日。

IPv6 的出现是为了从根本上解决 IPv4 地址耗尽的问题。IPv4 版本的 IP 地址只有 4 字节大小,即 32 位长度的 IP 地址。IPv6 版本的 IP 地址有 16 字节大小,即 128 位的长度。

IPv6 技术在国家推进下全面进行。在 IPv4 时代,中国是没有根服务器的。全球被限制为总共 13 台根服务器,唯一主根部署在美国,其余 12 台辅根服务器有 9 台在美国,2 台在欧洲,1 台在日本。

为打破根服务器困局,中国领衔发起“雪人计划”(Yeti DNS Project),面向全球招募 25 个根服务器运营志愿单位,共同对 IPv6 根服务器运营、域名系统安全扩展密钥签名和密钥轮转等方面进行测试验证。到 2017 年“雪人计划”已在全球完成 25 台 IPv6(互联网协议第六版)根服务器架设,中国部署了其中的 4 台,由 1 台主根服务器和 3 台辅根服务器组成,打破了中国过去没有根服务器的困境。

最新Instagram 包月赞,ins自动点赞加粉评论推广工具 wx 21372550  全球43 亿个 IPv4 地址正式耗尽了,未来IPV6会加速入场 20191129224436

2017 年 11 月 26 日,中共中央办公厅、国务院办公厅印发《推进互联网协议第六版(IPv6)规模部署行动计划》。2018 年 6 月,三大运营商联合阿里云宣布,将全面对外提供 IPv6 服务,并计划在 2025 年前助推中国互联网真正实现“IPv6 Only”。2019 年 4 月 16 日,工业和信息化部发布《关于开展 2019 年 IPv6 网络就绪专项行动的通知》,计划于 2019 年末完成 13 个互联网骨干直联点 IPv6 的改造。

预期 IPv4 与 IPv6 将会共存于互联网一段较长的时间。在未来过渡的数十年间,将会有多种网络形态存在。在过渡初期阶段,IPv4 网络已经大量部署,而 IPv6 网络只是散落在各地的孤岛;然后逐步是 IPv4 和 IPv6 网络重叠;最后阶段,会以 IPv4 孤岛为主,直至 IPv4 全部消失。

原文:全球 IPv4 地址正式耗尽

Docker实践的自我认知

Docker实践的自我认知

前几天翻译了一篇文章,郁闷了好几天:
我自己.net阵营下开发已有经年。

在VS 2003年时代,在学校做毕业设计,一个Winform程序,单机版,SQL Server数据库十几个表,。

业务场景是的旅游管理系统,简单的一些CRUD操作,我用的
ADO.net,通过获得DataSet、DataReader,进行insert、select、update、delete。
反正系统没人用,自写自话,没有啥框架、分层概念(虽然理论上知道这些概念,但是实战中没有这个需求),就1个人使用,10几个表,几十条数据记录。

https://www.codeproject.com 看看文章、下载源码。
http://www.codeplex.com/ 微软出的源码共享平台

www.github.com 下载源码。

后来参加工作后,接触项目,慢慢框架、分层、缓存等等融入:核心是有需求场景、有数据量、有用户,技术就得更新升级。

IIS

轻量级网络服务器 Self Hosting Nancy

selfhost

SharpDevleop: plugin方式的

ORMs
方案1:NHibernate ORM to the .NET Framework
方案2:EF ( ADO.NET Entity Framework)
方案3:LINQ to SQL

iBATIS
在*.xml里面写SQL,由iBATIS进行DTO转换。

Select操作,表关联导致SQL优化。

插入数据库,涉及到批量。

如几十条记录,可以通过如下方式优化
性能分析:

foreach (var adjective in adjectives) {
    dataContext.AdjectivesExpanding.InsertOnSubmit(adjective)
    dataContext.SubmitChanges();
}

Or:

foreach (var adjective in adjectives) {
    dataContext.AdjectivesExpanding.InsertOnSubmit(adjective);
}
dataContext.SubmitChanges();

如果成百上千,则通过BCP进行批处理,项目中曾经通过BCP处理50万入库情况,速度在生产环境没问题。
BCP在Oracle、Sybase、SQL Server都支持。

Java Spring全家桶三件套,基本满足Java需求了。

Docker解决实际问题1:VPS搭建xifarm.com博客

采购了VPS,刚学习开始LAMP,大约需要1天,不会Ubuntu Linux系统走了很多弯路。
三四次反复实践后,通过shell批处理脚本,能在2~3小时内从0把VPS搭建好,换VPS方便极了。

在有了Docker后,找现成的LAMP镜像,短短20分钟即可搭建好(VPS在海外,Docker 网速不是问题)

即,效率从1天3小时20分钟,分别提高了70%,1000%
就这一点看,Docker在部署环境上,功不可没,极大提高了DevOps生产效率。

Docker解决实际问题2: Tensflow的学习

学习Python、学习Tensflow,配置环境是新人头大的事情。 Python默认安装的3.7最新版,但是Tensflow最好支持的是Python 3.5版本,还有其他环境,仅仅折腾Linux系统环境,以我的经历,半天都未必搞得定。
而有了Docker后,直接下载Tensflow镜像,20~30分钟时间即可开始写机器学习的hello world应用了,一下子飞了起来。
再也不用被烦人的环境配置问题困扰了。

做技术的,经常保持知识刷新,这个是必须的,尤其是teamLeader、架构师,吃老本很快就回出问题。

Docker docker实践的自我认知 Docker实践的自我认知 vGuay

Docker解决实际问题3: 干净环境的测试电脑。

快速干净部署一个虚拟机。

+------------+  docker build   +--------------+  docker run -dt   +-----------+  docker exec -it   +------+
| Dockerfile | --------------> |    Image     | --------------->  | Container | -----------------> | Bash |
+------------+                 +--------------+                   +-----------+                    +------+
                                 ^
                                 | docker pull
                                 |
                               +--------------+
                               |   Registry   |
                               +--------------+

执行MySQL报错

今天新采购了柒比贰WordPress主题,安装主题时候报错: MySQL命令行使用sql语句进行建表时,MySQL 报错,遇到同一个问题,写一篇博客来加深印象。

原SQL语句:

CREATE TABLE wp_zrz_order 
(
    order_address longtext
) CHARSET = utf8

执行报错:

    [You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ') CHARSET=utf8' at line 21]

20191014222352.png 执行MySQL报错 执行MySQL报错 20191014222352

这个问题是语法上的错误,在MySQL中,为了区分MySQL的关键字与普通字符,MySQL引入了一个反引号。在上述的sql语句中,数据库名称使用的是单引号而不是反引号,所以会就报了这个错误出来。修改后为:

CREATE TABLE `wp_zrz_order`
(
    order_address longtext
) CHARSET=utf8

在英文键盘输入环境下,按图示按钮输入反引号 `
20191014222803.png 执行MySQL报错 执行MySQL报错 20191014222803

推荐一下,柒比贰WordPress主题真的好用,比较适合国内情况,推荐。

完美解决 ERROR 1064 (42000): You have an error in your SQL

 今天新采购了[柒比贰WordPress主题](https://7b2.com/?i=vXxymqWPj),安装主题时候报错: MySQL命令行使用sql语句进行建表时,MySQL 报错,遇到同一个问题,写一篇博客来加深印象。   原SQL语句:“`CREATE TABLE wp_zrz_order (    order_address longtext) CHARSET = utf8“`执行报错:
        [You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘) CHARSET=utf8’ at line 21] 
![20191014222352.png](http://pic.xifarm.com/.img/20191014222352.png)

这个问题是语法上的错误,在MySQL中,为了区分MySQL的关键字与普通字符,MySQL引入了一个反引号。在上述的sql语句中,数据库名称使用的是单引号而不是反引号,所以会就报了这个错误出来。修改后为:“`CREATE TABLE `wp_zrz_order`(    order_address longtext) CHARSET=utf8“`
在英文键盘输入环境下,按图示按钮输入反引号 `![20191014222803.png](http://pic.xifarm.com/.img/20191014222803.png)
推荐一下,[柒比贰WordPress主题](https://7b2.com/?i=vXxymqWPj)真的好用,比较适合国内情况,推荐。

.NET Core 很酷,你不得不知!

我一直回想我的第一篇博文,那是关于多个服务的服务器平台的详细教程,它使用 GitLab CI 在 AWS 上,当时使用单个命令行进行部署, 至今回想,令人感觉很酷。

image .NET Core 很酷,你不得不知! .NET Core 很酷,你不得不知! 1240

前几天,我偶然听说一些软件公司的 HR 在招聘原则上拒绝任何希望使用.NET 的候选人,原因如下:
.NET 是一个古老的封闭式生态系统,与其他更性感的开发平台截然不同,如 NodeJS 或 RubyRails,这些开发平台更加灵活和开放。.NET 实际上有点像 Java,但是,JAVA 拥有强大的开源生态圈、而且可以跨平台,关键的是 Java 不被邪恶的微软一家垄断。

当时,我正在我的个人 MacBook 上使用 C#和.NET Core 开发 Web 应用程序,我使用 Lambdas 函数,Linux EC2 和 Docker 容器在 AWS 上使用 GitLab 进行部署。我甚至 5 年前曾经在.NET Core 的官方开源 Github 存储库中 Pull 了一些代码和测试,这些存储库仍在其上。

毋庸置疑,我作为一名.NET 开发人员,听到这一点消息,我的内心开始觉得不舒服。

所以在此,我想做几个 demo,来告诉大家可以在 C#和.NET Core 中轻松快速地开发、部署,就像我们在 JavaScript 和 NodeJS 中所做的那样: 跨平台、开源、一个命令行搞定一切。

.NET Core 平台是什么?

当我们谈论.NET Core 平台时,事情很快变得比较复杂,在这里,我只引用官方文档:

  • .NET Core 运行时:类型系统,程序集加载,垃圾收集器,本机互操作和其他基本服务。 .NET Core 框架库提供原始数据类型,应用程序组合类型和基本实用程序。
  • ASP.NET 运行时:提供了一个框架,用于构建基于云的互联网应用程序,例如 Web 应用程序,IoT 应用程序和移动后端。
  • .NET Core CLI: 提供工具和语言编译器(Roslyn 和 F#)支持.NET Core 开发人员体验。
  • dotnet 工具:用于启动.NET Core 应用程序和 CLI 工具。它选择并托管运行时,提供程序集加载策略并启动应用程序和工具。

以上内容总结:

  • 运行时,可以通过执行.NET Core 的二进制文件。
  • ASP.NET Core 是一个框架和一组库,可以用来构建 Web 应用程序和 Web API。
  • .NET Core CLI 与其他平台 CLI 类似,允许创建,构建,发布,设置和支撑项目以及其他操作。

Hello world,动手操作吧:

我的目标是向您展示如何快速轻松地使用.NET Core 来创建应用程序和网站,就像使用 NodeJS 或 RubyRails 一样 – 让我们开始吧:

在 Linux 安装很简单 ; 只需点击此链接并选择您的发布,同时注册 Microsoft 密钥和 feed。
安装必要的软件包需要大约三、四个命令。

在 Linux Ubuntu 上,从终端看起来的样子:

wget -q https://packages.microsoft.com/config/ubuntu/19.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
sudo apt-get install apt-transport-https
sudo apt-get update
sudo apt-get install dotnet-sdk-2.2

安装完成后,通过如下命令进行测试是否成功:

dotnet --version
> 2.2.300

在 MacO 或 Windows 上安装.NET Core 更简单:只需从官方 Microsoft 门户下载安装包,安装程序为您自动完成这些工作,通常只需要几分钟。

Hello World!

在众所周知的程序教程中,首先创建一个控制台应用程序:显示 Hello World!。

通过命令行来创建文件夹,然后通过命令行创建控制台应用程序工程:

mkdir hello-world
cd hello-world
dotnet new console

你将得到如下文件结构:

hello-world
├── bin
├── obj
├── hello-world.csproj
├── Program.cs

您可以忽略 bin 和 obj 文件夹,这些文件夹仅用于构建和调试。 事实上,我在 VSCode 和 Git 上都忽略了它们。

.csproj 文件包含有关运行时,包,版本和其他项目配置属性的信息。 它默认很小。

<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>

<OutputType>Exe</OutputType>

<TargetFramework>netcoreapp2.2</TargetFramework>

</PropertyGroup>

</Project>

最后,我们最重要的文件:Program.cs。

using System;
namespace HelloWorld
{
  class Program
  {
    static void Main(string[] args)
    {
        Console.WriteLine("Hello World!");
    }
  }
}

在这里,没有什么是棘手的 – 你有你的默认命名空间。 通过静态方法 Main()声明主入口点的类。 类或命名空间可以更改为您想要的任何内容,也不需要公开,Main 方法也不需要。 这里的类是内部的,方法是私有的。

唯一的限制是至少要有这个静态 Main 方法。 甚至参数都是可选的,但它们的存在是为了通过命令行执行提供对参数的访问。

现在,让我们运行应用程序:

dotnet run
> Hello World!

.NetCore, 就这么简单!

要获得可在具有.NET Core 运行时(此处为 2.2 版)的任何环境中部署的应用程序的发行版,只需按如下方式发布应用程序:

dotnet publish -c Release -o dist

生成的 dist 文件夹应如下所示:

dist
├── hello-world.deps.json
├── hello-world.dll
├── hello-world.pdb
├── hello-world.runtimeconfig.json

可以删除 hello-world.pdb,因为它仅用于调试目的,但默认情况下会生成 pdb,即使在发布模式下也是如此。 您可以通过将此代码段添加到 hello-world.csproj(在标记下)来禁用此自动生成 pdb。

<PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
<DebugType>None</DebugType>
<DebugSymbols>false</DebugSymbols>

</PropertyGroup>

hello-world.dll 就是是您编译的代码,使用此运行时命令可执行:

dotnet hello-world.dll

deps.json 和 runtimeconfig.json 文件分别用于处理其他包的依赖关系和配置运行时。

最后,您可以使用 dotnet publish 运行时标识符目录轻松地在发布特定平台:

dotnet publish -c Release -r win-x64 -o dist/win-x64
dotnet publish -c Release -r osx-x64 -o dist/osx-x64
dotnet publish -c Release -r linux-x64 -o dist/linux-x64

Hello Web !

好吧,这很酷,我们很容易在控制台上写了一行,但是有些网络 Web 呢? 好吧,这也很容易做到!

首先,让我们添加 ASP.NET Core 的包:

dotnet add package Microsoft.AspNetCore

引用新包就像为 NodeJS 导入 npm 包一样。
这个包将允许我们配置,构建和运行一个简单的 WebHost 程序。 这可以在 Main()方法中的单行代码中完成。

生成的 Program.cs 应如下所示:

using System;
using Microsoft.AspNetCore;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;


namespace HelloWorld
{
    class Program
    {
        static void Main()
        {
            Console.WriteLine("Hello World!");


            WebHost.CreateDefaultBuilder()
                .Configure(app => app.Run(context => context.Response.WriteAsync("Hello World!")))
                .Build()
                .Run();
        }
    }
}

您可以使用与上面相同的命令来运行和构建应用程序:

dotnet run

现在打开你的浏览器,转到 http:// localhost:5000,享受这个简洁的 Hello World, 网页:

本文到此为止,本次实践完全基于 Macbook 电脑,在 Linux 命令行下完成,很酷,不是嘛。

在阅读完之后,我真的希望你对.NET Core 的看法有所改变:微软在多年前对.NetCore 进行开源, .NetCore 不仅仅只支持 Windows、而是可以跨平台和开源,令人兴奋的是是,到 2019 年秋天,.NET Core 3.0 即将问世,作为技术从业人员,这些惊喜的变化你不得不关注。

关于WCF、WebAPI、WebService之间的区别总结 分布式通信技术(Distributed Communication Technologies)浅析

关于WCF、WebAPI、WebService之间的区别总结
分布式通信技术(Distributed Communication Technologies)浅析

早在1996年Gartner就前瞻性地提出了面向服务架构的思想(SOA),SOA 的走红在很大程度上归功于 Web Service 标准的成熟和应用的普及。 Service Oriented Ambiguity 中文一般理解为:面向服务架构,简称SOA,这个概念算得上微服务的鼻祖了。 SOA 的提出是在企业计算领域,就是要将紧耦合的系统,划分为面向业务的、粗粒度、松耦合、无状态的服务。服务发布出来供其他服务调用,一组互相依赖的服务就构成了SOA架构下的系统。 SOA 本质上是服务的集合。 在分布式通信技术选型中,就本人曾经使用过的基于微软平台的分布式通信进行概述,先明确一下分布式框架的三个基本需求:
  • 客户端: Web、Android、IOS、跨平台(Java 开发的系统和.NET 开发的系统可以通信)
  • 服务端:部署在Windows、Linux
  • 合约(Contract):传递的格式(REST,Json、SOAP、XML)、通信协议(HTTP、XML-RPC、TCP)、消息超时设置、消息包大小
要打造分布式平台,各家技术栈多有不错的实践,这里重点说一下微软技术栈下,丰富的技术选型:
  • .NET Remoting (15年前技术,目前已经失传)
  • Web Service (ASMX, ASP .NET Web Services,15年前技术,维护项目依然存在)
  • WCF (Windows Communication Foundation,10年前技术,维护项目中比较多)
  • Web API (5年前技术开始火起来,和跨平台需求密不可分,最近3年的新需求大部分迁移在这里了)
下面展开来说:

.NET Remoting

是2.0时代的产物, 即2004年的技术,我还没有机会实战过。在微软Roadmap中已被WCF取代(.NET Remoting做得到的事,理论上WCF都可以实现) 依据微软一份,WCF在效能上比ASP.NET Web Service快了25%-50%,比.NETRemoting快25%,弃.NET Remoting改用WCF将有性能能上的突破。 详见报告链接

Web Service

在很早前开发WebForm ASP.NET中用的比较多,因此可以将 Web Service 理解为一个基于 HTTP 协议开发的上层应用程序 Web service 是一个平台独立的,低耦合的,自包含的、基于可编程的 Web 的应用程序,可使用开放的 XML(标准通用标记语言下的一个子集)标准来描述、发布、发现、协调和配置这些应用程序,用于开发分布式的互操作的应用程序。 Simple Object Access Protocol,中文为简单对象访问协议,简称 SOAP。
1、它是基于SOAP协议的,数据格式是XML (SOAP )

2、只支持HTTP协议

3、它不是开源的,但可以被任意一个了解XML的人使用

4、它只能部署在IIS上 

SOA 不是 Web Service,Web Service 是当年最适合实现SOA的技术。

WCF

WCF是取代Web Service及.NET Remoting的接班人,我记得这个是微软2010年开始力推的技术。 我第一次是用WCF是2012年,做一个电信级项目,结合微软吹水的Silverlight技术(Silverlight技术,2013年底该技术被微软安乐死了,again!)
1、这个也是基于SOAP的,数据格式是XML

2、这个是Web Service(ASMX)的进化版,可以支持各种各样的协议,像TCP,HTTP,HTTPS,Named Pipes, MSMQ.

3、WCF的主要问题是,它配置起来特别的繁琐!!! (此处特别强调了3个感叹号 )

4、它不是开源的,但可以被任意一个了解XML的人使用

5、它可以部署应用程序中或者IIS上或者Windows服务中

WCF门槛有些太高,仅仅在Windows平台开发,而且配置文件比较复杂(WCF 客户端\WCF 服务器端,仅Binding、Behavior的复杂度就能单独写一篇文章,踩过不少坑,都是泪。) 众所周知,微软.net技术未来是.netCore,成熟的.NetCore3 2019年底就可以应用于生产系统了, 但多年来微软一直拒绝将WCF 的服务器端移植到.NET Core, 导致这个分布式技术,面临的极大的技术瓶颈,即若干年后几无可用人才来维护WCF项目,所以大约3年前开始,我知道周围朋友公司的新项目大都避而不谈WCF了。

ASP.NET Web API

随着SOAP 逐渐淡出,RESTful大行其道, Web API火了起来。 微软技术栈的工程实现是 ASP.NET Web API,而且微软建议使用 ASP.NET Core Web API 或 gRPC,它们提供基于跨平台和跨编程语言的 RPC,也能使用 gRPC 来编写代码,并替换掉一些 WCF 服务器服务。
1、一个简单的构建HTTP服务的新框架

2、在.net平台上Web API 是一个开源的、理想的、构建REST-ful 服务的技术

3、不像WCF REST Service.它可以使用HTTP的全部特点(比如URIs、request/response头,缓存,版本控制,多种内容格式)

4、它也支持MVC的特征,像路由、控制器、action、filter、模型绑定、控制反转(IOC)或依赖注入(DI),单元测试。这些可以使程序更简单、更健壮

5、它可以部署在应用程序和IIS上

6、这是一个轻量级的框架,并且对限制带宽的设备,比如智能手机等支持的很好

7、Response可以被Web API的MediaTypeFormatter转换成Json、XML 或者任何你想转换的格式。

WCF 的未来是Web API,而且微软2014年推出开源.NetCore中就有ASP.Net Core Web API,可见重视程度。

分布式技术这么多,我该选谁?

都2019年了,新项目肯定是WebAPI,原因如下:
WebAPI只要有能力发送HTTP Request跟解析JSON,比较符合微服务要求, 跨平台支持。

创建一个基于HTTP的面向资源的服务并且可以使用HTTP的全部特征时(比如URIs、request/response头,缓存,版本控制,多种内容格式),你应该选择WebAPI

让你的服务用于浏览器、手机、iPhone和平板电脑时,你应该选择Web API

双工消息模式,过SignalR和WebSockets整合(创建一个支持消息、消息队列、双工通信的服务时)

微软.Net Core 3.0 预览版 7 发布:大幅减少 SDK 空间大小

这个预览版是 .Net Core 3 中重要的版本,可以视为原计划在 7 月发布的 RC 版本 (引自微软 .NET Core 首席 Program Manager Richard 先生原话),故可在生产环境进行开发和部署。

据悉,这个预览版是 .Net Core 3 中重要的版本,可以视为原计划在 7 月发布的 RC 版本 (引自微软 .NET Core 首席 Program Manager Richard 先生原话),故可在生产环境进行开发和部署。 Windows, macOS 和 Linux 版本的Download .NET Core 3.0 预览版 7 下载地址如下: 与此同时,ASP.NET Core 和EF Core 实体框架 也同于同一天发布。 针对 .NET Core 3.0 预览版 7 的新特性,Visual Studio 用户需要在 Visual Studio 2019 16.3 预览 1 中使用。 Microsoft .NET 站点已更新为.NET Core 3.0 预览版 7(请参阅网站页脚中提示 Powered by .NET Core 3.0.0-preview7-27912-14)。 且该站点已经在预览 7 上正常运行了两周多。 微软声称可能会在几周内将 Microsoft .NET 网站迁移到.NET Core 3.0 预览 8 版本。 另外,开发团队正在努力确保与 .NET Core 1.x 和 2.x 应用程序的高度兼容性,从而可以直接将现有应用程序快速升级到 .NET Core 3.0 版本。

.NET Core SDK 大小精简

使用 .NET Core 3.0 的 .NET Core SDK 要小得多。 主要原因是改变了构建 SDK 的方式改变,转而使用各种特定的“包”(引用程序集,框架,模板)。 在以前的版本(包括 .NET Core 2.2)中,我们使用 NuGet 包构建了 SDK,其中包含许多不需要的引用,导致浪费了大量空间。 您可以在.NET Core 3.0 SDK Size Improvements如何计算这些文件大小。 文章提供了详细说明,以便在自己的环境中运行相同的测试。 .NET Core 3.0 SDK 大小(括号中标注了大小更改)
操作系统 安装包大小 占用磁盘大小
Windows 164MB (-440KB; 0%) 441MB (-968MB; -68.7%)
Linux 115MB (-55MB; -32%) 332MB (-1068MB; -76.2%)
macOS 118MB (-51MB; -30%) 337MB (-1063MB; -75.9%)
Linux 和 macOS 的大小改进是令人惊奇的。 Windows 的改进较小,因为我们已将 WPF 和 Windows Forms 添加作为 .NET Core 3.0 的一部分。 令人惊讶的是,我们在 3.0 中添加了 WPF 和 Windows Forms,并且安装程序仍然(稍微)小一些。 您可以通过.NET Core SDK Docker映像包看到改进也不错(此处仅限于 x64 Debian 和 Alpine)。
发行版 2.2 压缩大小 3.0 压缩大小
Debian 598MB 264MB
Alpine 493MB 148MB
.NET Core 3.0 版本即将完成,故不再构建新功能,因此团队专注于稳定性和可靠性。 请尽快通过 Github 告诉开发团队您发现的任何问题,这样在发布 3.0 版本之前尽可能多地修复问题。

牛人故事:青年如何实现财务自由

We are not biggest but we inject the most ads into their site.

Whistleblower. I want to tell you the truth about my ad injection company.

My company is building apps that are in your app store and we auto-emable them on users and over time insert ourselves into those computers then inject ads and other tools.

I am a whisteblower. My company injects ads, monitor user behaviour, cheat affilaite system etc to make money.

The company name is Sterkly and Revizer. You may also knows us as Sambreel. We got sued by Facebook in 2011.

Please read this email.

I am going to give you secrets today that can get me fired and also hurt physically.

I am scared so I will no tell you my name.

The company is Revizer from Israel which merged with Sterkly from USA to form another entity named Avantis.

The company and it’s partners have made millions without anyone knowing.

My ex company is the underbelly of dark site of internet abuse..

We are so good, we have fooled Yahoo, Microsoft, Google, Amazon, facebook and every anti-virus companies.

The company leaders have even tried to bribe Microsoft and anti-virus company officers.

In Facebook we inject ads to make revenue.

They wont be able to trace it back to Sterkly as we have shell companies that hide our tracks.

We also track users so we know where your users are browsing and sell that data to RTB networks and data gathering companies. Its easy money and you never find out.

That traffic is high quality and we make lot of money from it.

Not everyone in my company knows about this as its a secret.

I am one of the few that know.

WHAT DO THE DO:

– Ad injection – we insert ads into white spaces in a browser and match it to look like the site

– Pop-under – easy money

– Pop-Up – easy money. Good for distributing pc and virus products that annoy you till you call the call center or buy it online.

– White space ads on Facebook

– Search injection into Google Bing and Yahoo. We make our listing look just like theirs and we make millions from this.

– Selling user browsing data to 3rd parties. This is easy as we track all users.

– Blocking Chrome, Firefox and Internet Explorer functions. They update their product to stop us so we inject software to disable updates and so we can keep the user for long time.

– Stuffing computers with affiliate links to earn money. We use this with Ebay, Amazon and many large ecommerce companies.

– Auto-enabling our ad units without user’s consents. We do installs of our software with companies below. The software we installs looks innocent, but after we get into the network, we change the file and now can install on a computer withou user consent.

HOW WE GREW TO BECOME ONE OF THE LARGEST COMPANIES:

– We made a lot of money from the list above.

– We became clients of large install companies in Israel to gain installs from Adult, Movie, File Sharing, Image and MP3 download sites. Its easy to get millions of users from here.

– We also know how to get good traffic. We have tools that we give to other companies that will inject into Google search results, Yahoo search results, and Bing.

– Also, some of our partners inject into Online Shopping for Electronics, Apparel, Computers, Books, DVDs & more, Newegg and others.

– The best customers are easily from Facebook. We inject hidden links and ads into their pages. We made it look like facebook, so user’s never knew. They clicked and we made millions.

The company leaders below push us to make aggressive products that hack.

– we are congratulated when we hack someone like you or Apple.

Sterkly Founder and CEO Markus:
https://www.linkedin.com/in/markus-levin

– he is a smart guy and has been in injection ads for long time

– he made millions doing this

Revizer CMO:
https://www.linkedin.com/in/tom-zakheym-b1946724

– Tom Zakheym | Facebook
https://www.facebook.com/zakheym

– He is the brains behind most of my companies products. He thinks of new hacks all day to make money.

– Tom is on cocaine or pot everynight but someone comes to work and works hard.

– He comes up with ideas on how to hack and built products that we can inject into all day.

– He throws parties in USA for all his partners that make him money. I am too low to be sent there, but other team members talk about the crazy parties in Vegas.

– He worked in porn industry before, so he has lots of connections there to adult sites to get installs.

New Company: http://www.linkedin.com/company/…. This article talk about the acquistion: Software developer ad co Revizer raises $20m – Globes English

WE ARE GOOD:

– We have companies in various islands, so that no one can touch us.

– We have shell companies we make when we want to.

– Sterkly is secretly giving us more ad technology so that we make more money.

– We attend tradeshows, finance groups so that we look good and get away with it all.

Clients who work with Sterkly, Revizer or Avantis (whatever you want to call it).

– Perion

– 50onRed

– Crossrider

– Cnet’s Free Software, Apps, Downloads, and Reviews

– OpenCandy

– Advertise.com | Online Advertising Network | Ad Network

– Superfish- yes the company that hacked Lenovo (Lenovo Only Made Up To $250,000 From Nightmare Superfish Deal, Say Sources)

– Dealply

– Revenue Wire

– Aedgency

– Webpick- lots of adult traffic that CEO loved

– Bittorrent

– Matomy Media

WHY AM I SAYING ALL THIS:

– I am sick of it.

– I show little kids ads to download games so that without their parents know we inject ads

– I fool less computer knowledge people like old folks to install our stuff

– I helped hack Facebook, Google, Apple either direclty or supported them

– This company is making too much money, they need to be legally stopped.

借用顾小北的一句话,来结束这篇英文文章:

我们,对于很多的事,选择去质疑,去嘲讽,去不屑….

但质疑的人或许并非无知,只是事情超过了他们的认知范围。互联网的三个世界,在地下世界发生地事情,地面上的人永远不知道是怎么回事。