2022年6月19日

鳳梨奶酪


鳳梨奶酪

100cc 鮮奶油
300cc 牛奶
二砂20 克(20:1)
5克吉利丁(80:1)
加入鳳梨果泥
洒上杏仁果粒
漂亮好吃


巧克力脆皮雪糕



巧克力脆皮雪糕

250 克鮮奶油
20 克細砂糖
打發到有勾勾(料理盆先冰過幫助打發)


打發完加入
90 克優酪
20 克煉乳
攪拌均勻

想加果粒、OREO 等配料自定

準備巧克力脆皮
150 克巧克力隔水溶化,加入
40 克椰子油 (精練椰子油,這種不會有椰子味)
20 克堅果


最難的是脫模,我用的是最小的紙杯,冰凍後直接撕破紙杯就會有一個不錯的圓桶狀,裹上巧克力就很漂亮

2019年12月21日

Kittenblock

官網:https://www.kittenbot.cn/
下載安裝
選Kitterblock










安裝完,先不要執行

在桌面捷徑上使用右鍵,以系統管理員身份執行


2019年3月20日

Arduino 按鈕開三色燈

使用 Ywrobot 面板



String colourPicker(int r, int g, int b) {
       String r1, g1, b1;
       r1 = String(r, HEX);
       if(r < 16)
         r1 = "0"+r1;
       g1 = String(g, HEX);
       if(g < 16)
         g1 = "0"+g1;
       b1 = String(b, HEX);
       if(b < 16)
         b1 = "0"+b1;
       String rgbcolor = "#"+r1+g1+b1;
       return rgbcolor;
}
int LightRGBLED(int r_pin, int g_pin, int b_pin, String rgb)
{
   char *str = (char *)rgb.c_str()+1;
   int r, g, b;
   sscanf(str, "%02x%02x%02x", &r, &g, &b);
   analogWrite(r_pin, r);
   analogWrite(g_pin, g);
   analogWrite(b_pin, b);
}

String RandomColour( ) {
       String r1, g1, b1;
       int r = random(0,255);
       int g = random(0,255);
       int b = random(0,255);
       r1 = String(r, HEX);
       if(r < 16)
         r1 = "0"+r1;
       g1 = String(g, HEX);
       if(g < 16)
         g1 = "0"+g1;
       b1 = String(b, HEX);
       if(b < 16)
         b1 = "0"+b1;
       String rgbcolor = "#"+r1+g1+b1;
       return rgbcolor;
}
void setup()
{
  pinMode(2, INPUT);
  pinMode(9, OUTPUT);
  pinMode(10, OUTPUT);
  pinMode(11, OUTPUT);
  randomSeed(analogRead(3));


}


void loop()
{
    if (digitalRead(2) == 1) {
      LightRGBLED(9,10,11,colourPicker(0,0,0));
    } else {
      LightRGBLED(9,10,11,RandomColour());
    }

}

Arduino 按鈕開燈

使用 Ywrobot 面板


 void setup()
{
  pinMode(2, INPUT);
  pinMode(12, OUTPUT);

}

void loop()
{
    if (digitalRead(2) == 1) {
      digitalWrite(12,LOW);
    } else {
      digitalWrite(12,HIGH);
    }

}

2019年3月18日

複視

農曆年前老媽的眼睛出現複視,正巧學校老師在學期末也是相同的症狀。兩相比照這可令人擔心,在地區醫院做了各項的檢查找不出很確定的原因,得到一項明顯的結果是胛狀腺異常,但這跟眼睛複視似有點距離。

擔心了整個寒假,計畫著要如何到高雄做進一步檢查,一整個無任何頭緒。就在某日問到老媽現在眼睛的狀況…媽媽說:「之前跟爸爸的車外出,在車上發現路中分隔線不再是扭曲、彎曲的模樣」。意思就是說那個複視現像有消退,聽到這個消息真是令人振奮,媽說她還在自我觀察。

再隔數日我又問了一次,目前複視的狀況好像真的改善了。老媽剛有這症狀時我是有爬過網路上的醫療文章,其中就有提及有部份患者會自行恢復。目前狀況如果持續穩定就是再去給醫生檢查,眼睛真的很重要,要做好日常保養。

我也是一樣,手機就別再玩了,然後每天準時早睡,沒事別熬夜

2019年3月17日

桂格大燕麥片

最近幾次的簡易健檢中,自已也經到了膽固醇偏高的年紀,而且有越來越高的趨勢。

之前聽到好同學說過他的經驗,說這個膽固醇會驅使脖子僵硬,對照一下自已的狀況好像也是這麼回事,每多想一下自已都覺得替自已擔心。

好就相信一下廣告吧!買了廣告大使吳念真推薦的桂格大燕麥片,有效控制體脂肪、膽固醇…持續吃持續降!

每天早餐就配合桂格或萬歲的麥片調理包增加點口感,第一罐快吃完了,真得的有效果。感覺脖子放鬆了,體重也比較好控制,可以看得到久未謀面6字頭,69這數字真讓人遐想

正當自已有信心要持續吃,持續降的當下…今早起床哎呀我落枕…脖子又硬了。但這個狀況跟膽固醇無關,這個大燕麥片會給他繼續吃下去,自已的身體要自已顧

鮮蔬多不錯,另一種鮮菇多是目前吃過最好吃的。萬歲牌的類似產品就稍微遜色

Arduino 紅藍輪流閃燈

使用 Ywrobot 面板





void setup()
{
  pinMode(12, OUTPUT);
  pinMode(13, OUTPUT);
}

void loop()
{
    digitalWrite(12,HIGH);
    digitalWrite(13,LOW);
    delay(500);
    digitalWrite(12,LOW);
    digitalWrite(13,HIGH);
    delay(500);
}

Arduino 閃單色燈

使用 Ywrobot 面板

void setup()
{
  pinMode(13, OUTPUT);

}


void loop()
{
    digitalWrite(13,HIGH);
    delay(500);
    digitalWrite(13,LOW);
    delay(500);

}

2018年11月5日

ubuntu 排程 crontab

在linux系統中,如 ubuntu,cron 排程的資料是存在
/etc/crontab 中
直接輸入 sudo nano /etc/crontab 進行編輯

2018年9月19日

安裝phppgadmin

資料來源:https://www.howtoforge.com/tutorial/ubuntu-postgresql-installation/


2017年12月10日

老鼠走迷宮

#include 
#include 
#define N 100

typedef struct{
  int row,col,dir;
}locate;

typedef struct{
  int horiz,vert;
}offsets;

int Top=-1;                                   /* 初始堆疊頂端 */
locate Stack[N];

offsets move[4]={
  [0]={ .horiz=0,   .vert=-1},    //N
  [1]={ .horiz=1,   .vert=0},     //E
  [2]={ .horiz=0,   .vert=1},     //S
  [3]={ .horiz=-1,  .vert=0}      //W
};

void Push(locate);
locate Pop();
void PrintStack();

int main()
{
    int mrows,mcols,exitrow,exitcol,i,j,row,col,dir=0;
    locate position;

    scanf("%d %d",&mrows,&mcols);           /* Input maze size m*n */
    scanf("%d %d",&exitrow,&exitcol);       /* Input exitrow exitcol */
    int maze[mrows+2][mcols+2];
    int mark[mrows+2][mcols+2];             /* Record Visited position in mark array */

    for(i=0;i<mrows+2;i++)                  /* Initial maze and mark array */
    {
      for(j=0;j<mcols+2;j++)
        {
          mark[i][j]=0;                                 /* Initial mark array to 0 */
          if(i==0 || i==mrows+1 || j==0 || j==mcols+1)  /* if row=0 or row=last row col=0 or col=last col set maze[i][j]=1 be wall */
            maze[i][j]=1;
          else
            scanf("%d",&maze[i][j]);                    /* else input maze data*/
        }
    }

    printf("\n===== 顯示迷宮 =====\n");
    for(i=0;i<mrows+2;i++)
    {
      for(j=0;j<mcols+2;j++)
      {
        if(maze[i][j]==1)
          printf("█");
        else
          printf(" ");
      }
      printf("\n");
    }
    //printf("\n");
    int entr_ROW=1,entr_COL=1;                 /* Set maze entraence(1,1) */
    int next_ROW,next_COL;                     /* next position */

    Top=0;                                     /* push entrance to Stack */
    Stack[0].row=entr_ROW;
    Stack[0].col=entr_COL;
    Stack[0].dir=dir;
    mark[entr_ROW][entr_COL]=1;
    //PrintStack();

    while(Top > -1)
    {
      position=Pop();                          /* pop position from Stack */
      row=position.row;
      col=position.col;
      dir=position.dir;
      //printf("%d %d %d\n",row,col,dir);

      while(dir<4)
      {
        next_ROW=row+move[dir].vert;
        next_COL=col+move[dir].horiz;
        //printf("%d %d %d",next_ROW,next_COL,dir);//break;

        if(next_ROW==exitrow && next_COL==exitcol)
        {
            //mark[next_ROW][next_COL]=1;
            position.row=row;
            position.col=col;
            position.dir=dir;
            Push(position);

            printf("\n===== 顯示迷宮路徑 =====\n");

            for(i=Top;i>=0;i--)
            {
              maze[Stack[i].row][Stack[i].col]=3;
              //printf("%d %d %d\n",Stack[i].row,Stack[i].col,Stack[i].dir);
            }


            for(i=0;i<mrows+2;i++)
            {
              for(j=0;j<mcols+2;j++)
              {
                if(maze[i][j]==0)
                  printf(" ");
                else if(maze[i][j]==1)
                  printf("█");
                else
                  printf("○");
              }
              printf("\n");
            }

            return 0;
        }
        else if(maze[next_ROW][next_COL]==0 && mark[next_ROW][next_COL]==0)
        {
            mark[next_ROW][next_COL]=1;

            position.row=row;
            position.col=col;
            position.dir=dir;
            Push(position);     /* Save the current position */

            row=next_ROW;       /* Specify the next position */
            col=next_COL;
            dir=0;              /* Zero the direction */
        }
        else
            dir++;
      }

    }
   printf("迷宮沒有出口!\n");

   return 0;
}

void Push(locate item)
{
  if(Top==(N-1))
  {
    printf("= Stack full ! =\n");
  }
  else
  {
    //Top=Top+1;
    Stack[++Top]=item;
  }
}

locate Pop()
{
  if(Top==-1)
  {
    printf("= Stack empty ! =\n");
  }
  else
  {
    return Stack[Top--];
  }
}

void PrintStack()
{
  int i;
  if(Top==-1)
  {
    printf("堆疊是空的!\n");
  }
  else
  {
    printf("= Stack contain : =\n");
    for(i=Top;i>=0;i--)
      printf("%d %d %d\n",Stack[i].row,Stack[i].col,Stack[i].dir);
    printf("\n");
  }
}

2017年10月17日

配合排程使用 forfiles 刪除指定檔案

刪除指定的檔案
forfiles /p c:\02FirefoxPortable /s /m *.dll /c "cmd /c erase @path"
forfiles /p c:\02FirefoxPortable /s /m *.chk /c "cmd /c erase @path"
配合排程