stone2083

          2014年11月6日 #

          Camunda學習點滴

               摘要: 1. 主要包括:
          架構總覽、核心概念關系、場景例子、源碼分析
          2. 建議閱讀順序
          2.1 從架構總覽,了解整體camunda概念,包括DB表結構,內心有概念和底層存儲的關系映射
          2.2 再解核心概念關系,建立業務概念、代碼模型、表結構的映射關系
          2.3 通過場景例子,了解不同概念的使用場景,配置
          2.4 通過源碼分析,了解底層實現,方便必要時對其做擴展  閱讀全文

          posted @ 2022-05-16 10:10 stone2083 閱讀(533) | 評論 (0)編輯 收藏

          IEEE 754 浮點存儲小記

          IEEE 754:

          https://zh.wikipedia.org/wiki/IEEE_754


          FLOAT:

          31  30         22       15          7          0

          +---+----------+---------+----------+----------+

          |   |          |                               |

          +---+----------+---------+----------+----------+

          + S +     E    +               M               +


          EXAMPLE(5.5):

          =============================

          int main() {

              float a = 5.5;

              int *p = &a;

              printf("%d\n", *p);

              printf("%X\n", *p);

          }


          gcc -o main main.c; ./main

          十進制:    1085276160

          十六進制:  40B00000

          =============================



          十進制 = 二進制 = 二進制指數形式

          5.5    = 101.1  = 1.011 * 2^2


          ==> S=0 E=2 M = 11


          31  30         22       15          7          0

          +---+----------+---------+----------+----------+

          | 0 | 10000001 | 0110000 | 00000000 | 00000000 |

          +---+----------+---------+----------+----------+

          + S +     E    +               M               +


          轉換成INT:

          二進制:    01000000101100000000000000000000

          十進制:    1085276160

          十六進制:  40B00000



          EXAMPLE(5.1):

          ===========================================

          int main() {

              float a = 5.1;

              int *p = &a;

              printf("Float:\t%f\n", a);

              printf("十進制:\t%d\n", *p);

              printf("十六進制:\t%X\n", *p);

          }


          gcc -o main main.c; ./main

          Float:    5.100000

          十進制:    1084437299

          十六進制:  40A33333

          ===========================================


          存儲形式:0b01000000101000110011001100110011

          有效尾數:01000110011001100110011

          表達方式:1.01000110011001100110011 * 2^2 ==> 101.000110011001100110011


          101 ==> 5

          0.000110011001100110011 ==> 2^-4 + 2^-5 + 2^-8 + 2^-9 + 2^-12 + 2^-13 + 2^-16 + 2^-17 + 2^-20 + 2^-21


          實際表達:      5.09999990463256836

          保留6位小數:   5.100000

          posted @ 2017-10-12 11:23 stone2083 閱讀(662) | 評論 (0)編輯 收藏

          socks協議+netty實現(協議部分)

          posted @ 2016-09-08 12:51 stone2083 閱讀(1750) | 評論 (0)編輯 收藏

          docker overlay network

               摘要: docker overlay network  閱讀全文

          posted @ 2015-10-21 15:14 stone2083 閱讀(5772) | 評論 (0)編輯 收藏

          四張圖了解iptables原理和使用

               摘要: 四張圖了解iptables原理和使用  閱讀全文

          posted @ 2015-05-08 13:01 stone2083 閱讀(8630) | 評論 (0)編輯 收藏

          mykeepass for command line

          命令行下的類似keepass一個東東.

          如何使用
          Command line for Keep Password.
          Usage:
            keepass.sh -l
            keepass.sh -e plain-text
            keepass.sh -d encoded-text
            keepass.sh -s encoded-text name

          -l
          展示保存下所有加密后的密碼信息
          -e
          將明文密碼, 加密, 密文自動保存到剪切板上
          -d
          將密文界面, 解密后的明文自動保存到剪切板上
          -s
          將密文持久化保存到文件中

          代碼實現
          #!/bin/sh

          DATA="$HOME/.password/data"
          declare -a passwords

          function enc()
          {
              #$1: plain text
              echo "$1" | openssl enc -des | base64
          }

          function dec()
          {
              #$1: encoded text
              echo "$1" | base64 -D | openssl enc -des -d
          }

          function sync()
          {
              for ((loop=0;loop<${#passwords[*]};loop++))
              do
                  if [ -z "${passwords[$loop]}" ];then
                      continue
                  fi
                  value="$value\n${passwords[$loop]}"
              done
              echo $value > $DATA
          }

          function save()
          {
              #$1 encoded password
              #$2 name
              for ((loop=0; loop<${#passwords[*]}; loop++))
              do
                  info=${passwords[$loop]}
                  password=$(echo $info | awk '{print $1}')
                  name=$(echo $info | awk '{print $2}')
                  if [ "$2" == "$name" ];then
                      passwords[$loop]="$1 $2"
                      return
                  fi
              done
              passwords[$loop]="$1 $2"

              sync
          }

          function delete()
          {
              #$1: name
              for ((loop=0; loop<${#passwords[*]}; loop++))
              do
                  info=${passwords[$loop]}
                  password=$(echo $info | awk '{print $1}')
                  name=$(echo $info | awk '{print $2}')
                  if [ "$1" == "$name" ];then
                      passwords[$loop]=""
                  fi
              done

              sync
          }

          function list()
          {
              for ((loop=0;loop<${#passwords[*]};loop++))
              do
                  echo ${passwords[$loop]}
              done
          }

          function help()
          {
              echo "Command line for Keep Password.
          Usage:
            keepass.sh -l
            keepass.sh -e plain-text
            keepass.sh -d encoded-text
            keepass.sh -s encoded-text name"
          }

          function init()
          {
              loop=0
              while read line
              do
                  if [ -z "$line" ];then
                      continue
                  fi
                  passwords[$loop]=$line
                  loop=$(echo $loop+1 | bc)
              done < $DATA
          }

          init
          case "$1" in
              -l)
                  list
                  ;;
              -e)
                  enc "$2" | tr -d '\n' | pbcopy
                  ;;
              -d)
                  dec "$2" | tr -d '\n' | pbcopy
                  ;;
              -s)
                  save "$2" "$3"
                  ;;
              -r)
                  delete "$2"
                  ;;
              *)
                  help
                  ;;
          esac

          備注:
          1. 純shell打造
          2. 目前支持Mac shell, 理論上支持linux系統(唯一的改動, 把pbcopy改成linux下剪切板復制的命令即可)


          posted @ 2014-11-06 14:45 stone2083 閱讀(5611) | 評論 (2)編輯 收藏

          主站蜘蛛池模板: 黔南| 孝昌县| 涞源县| 满洲里市| 垣曲县| 穆棱市| 东乡县| 东安县| 上栗县| 南投县| 兴义市| 海门市| 镇宁| 阿拉善左旗| 静海县| 上蔡县| 宽城| 南京市| 绵竹市| 伊宁市| 赣榆县| 宿松县| 齐河县| 新兴县| 西和县| 两当县| 凤庆县| 镇坪县| 通州区| 来凤县| 柳江县| 云梦县| 行唐县| 金堂县| 津南区| 通山县| 合水县| 瓮安县| 阳信县| 兴安县| 奇台县|