2019年11月5日 星期二

解決Blogger無法登入或是作者變成Unknown

如果確認已經使用正確的電子信箱但還是無法登入自己的Blogger後台,並且發現自己的作者名稱被改成Unknown,那麼可以嘗試使用下列的方法解決


問題出現的原因是Google+ 停止服務造成的
新版的 Google+ Android 應用程式已經於 2019 年 2 月 21 日推出。所有 Android 使用者都必須立即更新至這個 Google+ Android 應用程式,才能繼續使用應用程式。舊版應用程式將不再受支援。使用者還是可以在行動裝置上前往 plus.google.com 使用 Google+。不過請注意,Google+ 消費者 (個人) 版將於 2019 年 4 月 2 日停止服務。


最早在開始註冊Blogger的時候, 設定作者簡介時可決定是使用 Blogger本身的,還是使Google+

如果是設定Google+就無法登入Blogger後台, 所以如果當初帳號的設定是用Google+,作者的名字會變成Unknown

解決方法
先在Google首頁登入你的帳號(Google首頁、Gmail、Youtube...等等都可以) 然後進入這網址設定作者名字
https://www.blogger.com/switch-profile.g (現在可以自動轉向這網頁)



設定完Blogger作者的名字後, 就可以正常登入Blogger後台了


2017年1月17日 星期二

Note for Linux Device Drivers

Linux Kernel 2.4

Ch1.


write kernel code to access the hardware, but don't force particular policies on the user.

Class of Devices and Modules
1. Character Devices
Ex: text console, serial port


2. Block Devices
Ex: /dev file system

3. Network interfaces
Ex: eth0

4.Other
SCSI

Ch2. 

modularization
kernel header __KERNEL__ preprocessor

prevent namespace pollution and declare all symbols as static

Ch3.

Character Devices

Ch4.

Debugging skills

Ch5.

important operations: select, ioctl

Ch6.

time management

Ch7.

memory allocation


2016年12月25日 星期日

Misc about C Pointer

C Pointer

ptr++;    // Pointer moves to the next int position (as if it was an array)
++ptr;    // Pointer moves to the next int position (as if it was an array)
++*ptr;   // The value of ptr is incremented
++(*ptr); // The value of ptr is incremented
++*(ptr); // The value of ptr is incremented
*ptr++;   // Pointer moves to the next int position (as if it was an array). But returns the old content
(*ptr)++; // The value of ptr is incremented
*(ptr)++; // Pointer moves to the next int position (as if it was an array). But returns the old content
*++ptr;   // Pointer moves to the next int position, and then get's accessed, with your code, segfault
*(++ptr); // Pointer moves to the next int position, and then get's accessed, with your code, segfault


C Function Designator

A function designator is an expression that has function type. Except when it is the operand of the sizeof operator or the unary & operator, a function designator with type ‘‘function returning type’’ is converted to an expression that has type ‘‘pointer to function returning type’’.

References

2015年8月8日 星期六

Docker Networking


  • Install Docker
    1. exec ifconfig



  • Run Docker
    1. Docker can expose container services through port mapping
    2. docker run -it --rm busybox

2015年7月26日 星期日

Network Virtualization

What is Network Virtualization?

Network virtualization is a specific abstraction of a physical network that allows the support of multiple logical networks running on a common shared physical infrastructure.

How to implement Network Virtualization?

In order to virtualize network, we first build virtual nodes or machines on physical infrastructure.
One particular approach for doing that is the Xen Virtual Machine Monitor. Another is User-Mode Linux, with something called network namespaces. Network namespaces were originally an add
on to the Linux kernel and they're now part of the main line Linux kernel.

KVM is another virtualization technology. And there's certainly others as well. VMWare of course makes their own commercial virtual machine technology. And Virtual Box is one that free choice.

The examples of Network Virtualization

SDN Control Plane

Introduction to SDN Control Plane

The network consists of routers, switches and controllers. 
The controller speaks to the switch over a secure control channel and the SDN protocol effectively instructs the switch to update its flow table entries to take different actions on various traffic flows that pass through the switch.The purpose of the control channel is effectively to update this flow table and all of the logic concerning how the flow table entries are updated are contained at the controller.

SDN Controllers

When a packet arrives at the switch, it parses the header fields, and based on the values of those header fields, it will attempt to match that packet against flow table entries in any one of several flow tables. If there is no match in any of those tables, the traffic is sent to the controller.

NOX was a first-generation OpenFlow controller. It is open source, stable, and fairly widely used. There are two flavors of NOX. One, Nox-Classic, was the original NOX, and was implemented in C++ and Python. It's no longer supported. The new NOX is C++ only.

POX is essentially NOX in Python. It currently supports only version 1.0. An advantage of POX is that it's widely used, maintained and supported and it's relatively easy to read and write code. The main disadvantage of POX is performance.

Ryu is an open source Python controller. It supports all versions of OpenFlow from 1.0 to 1.4 as well as various mysteria extensions. A disadvantage of Ryu with respect to some of the other commercial grade controllers is performance.

Floodlight is an open-source Java controller that supports OpenFlow 1.0. It's a fork from the Beacon Java OpenFlow controller. And is maintained by Big Switch. Some of the advantages include good documentation and integration with the REST API. It's also production level, and supports and
provides support for OpenStack and Multi-Tenant Clouds.

OpenDaylight (ODL) is to provide a common industry supported platform with a robust, extensible open source codebase and common abstractions for northbound capabilities. OpenDaylight is written by Java and has many advantages including widespread industry acceptance and integration with OpenStack and other types of cloud applications. However, it's extremely complex. 

Frenetic
Pyretic = Python + Frenetic

Customize Network Control

NFV Service Chaining

2015年7月25日 星期六

SDN Control and Data Separation

SDN Control and Data Separation



What is the control/data plane separation?

The control plan is logic that controls the forwarding behavior in the network.
Examples of the control plane are routing protocols, network box configuration such as firewall configuration or load balancer configuration, and so forth. One can think of it in some ways as the brain of the network.

The data plane on the other hand forwards traffic according to the control plane logic.
Examples of data planes are IP forwarding layered to switching and so forth.

Why we need the control/data plane separation?

One reason of the control/data plane separation is that control plane and data plane can evolve and be developed independently. In particular the software control of the network can evolve independently of the hardware. That means one can buy a router, switches, middle boxes, and so forth deploy them in the network and not be bound by capabilities of software that ship with the hardware at that particular time.

The second reason to separate the control and data planes is that it allows the network to be controlled from a single high level software program. The higher order programs could easily control or debug  the behavior of the entire network instead of reconfigure/check each network component one by one.

The opportunities and challenges of control/data plane separation

The first opportunity of separating the data and control plane can help in data centers and in routing. The second advantage of the control and  data plane separation can help make certain applications in enterprise networks easier to manage.

There are also challenges to make the control and data plane separation being a reality.
The first is scalability, once we separate the control elements from the forwarding elements. The other challenge is reliability or security what happens if a controller fails or is compromised?

Reference: