stone2083

          2014年11月6日 #

          Camunda學習點滴

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

          posted @ 2022-05-16 10:10 stone2083 閱讀(525) | 評論 (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 閱讀(654) | 評論 (0)編輯 收藏

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

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

          docker overlay network

               摘要: docker overlay network  閱讀全文

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

          四張圖了解iptables原理和使用

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

          posted @ 2015-05-08 13:01 stone2083 閱讀(8617) | 評論 (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 閱讀(5606) | 評論 (2)編輯 收藏

          My Links

          Blog Stats

          常用鏈接

          留言簿(9)

          隨筆分類(94)

          隨筆檔案(93)

          tech

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 晋江市| 柘城县| 肇州县| 宁南县| 中江县| 东至县| 贵德县| 镇巴县| 崇仁县| 普定县| 南京市| 永新县| 社会| 兴安县| 博客| 东光县| 丰台区| 丽水市| 淮南市| 集贤县| 庆云县| 田阳县| 郧西县| 湘潭市| 信阳市| 句容市| 新河县| 天全县| 平南县| 阿鲁科尔沁旗| 桑日县| 上栗县| 星座| 邻水| 新兴县| 芷江| 凤台县| 钟山县| 南投县| 漳平市| 白银市|