2022年8月26日 星期五

 Python install twine on Mac

1. Need to install macports first, https://ports.macports.org/port/twine/

 2. sudo port install twine 


Pycharm is my favor IDE for python


https://mis.twse.com.tw/stock/api/getStockInfo.jsp?ex_ch=tse_{argv[0]}.tw

mis.twse.com.tw

欄位說明

tv當盤成交量
ps
pz
bp
fv
oa
ob
a賣方價格
b買方價格
c股票代號
d日期
ch台灣股票代號
ot零股交易截止時間
tlongepoch毫秒數
f揭示賣量(配合「a」,以_分隔資料)
ip
g揭示買量(配合「b」,以_分隔資料)
mt
ov
h最高
i
it
oz
l最低
n公司簡稱
o開盤
p
ex上市別(上市:tse,上櫃:otc,空白:已下市或下櫃)
s
t最近成交時刻(HH:MM:SS)
u漲停價
v累積成交量
w跌停價
nf公司全名
y昨收
z當盤成交價
ts

2021年3月15日 星期一

 Python:

1. Free python IDE: google colabatory : https://colab.research.google.com/notebooks/intro.ipynb#recent=true

From here, you can run python in interactive mode or even create a python .py file and run it easily.



2020年4月17日 星期五

Ansible

1. Install ansible & ssh packages first
2. create ssh keys
   ssh-keygen -t ed25519 -C "Desktop ssh key"
  ssh-copy-id -i $HOME/.ssh/id_ed25519.pub dyu@192.168.128.138
3. Create a an ansible inventory file. i.e. hosts
   [local]
127.0.0.1 [remote] 192.168.1.2
4. basic commands
ansible -i ./hosts --connection=local local -m ping
ansible -i ./hosts remote -m ping
   ansible -i ./hosts local --connection=local  -m shell -a 'apt-get -y install nginx'

2019年8月29日 星期四

Nagios setup(1) : pretty  simple and straightforward. just download nagiosxi(vmware or virtualbox image),
1. go to  download site :https://www.nagios.com/downloads/nagios-xi/vmware/,select

Workstation Pro/Player 64bit,( the file could be :nagiosxi-5.6.6-64.ova)

2. Use vmware workstation or virutalbox to import 
3. Launch this imported virtual image(the virtual machine's OS is centos)
4. After the virtual machine running. id/pw : root/nagiosxi
5. at the centos console, type :ip addr to get  its ip address(i.e. 192.168.0.32)
6. Open a browser : type : http://192.168.0.32
Click "Access Nagios Xi",  to setupo Nagios Xi, remember to input  user/pasword : nagiosadmin/passw0rd,
7. After installation successfully.  type :http://192.168.0.xx to access NagiosXi













2013年7月16日 星期二

java的2個練習題

1. Please reference : http://www.javaworld.com.tw/jute/post/view?bid=29&id=90143&sty=3


2.
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;


public class Test0716 {

     public static void main(String args[])
      {
       
            int[][] answer=new int[4][7];
            for (int i=0; i<4; i++)
                for (int j=0; j<7; j++){
                    answer[i][j]=0;
                }
                try {
                    File input = new File("record.txt");
                   
                    Scanner sc = new Scanner(input);   
           
                  
                    while(sc.hasNextLine()) {
                      String s = sc.nextLine();
                      String[] splitarray = s.split("\\|");
           
                         String age = splitarray[0];
                      String sex = splitarray[1];
                      String salary=splitarray[2];                     

                     
                      int ageint, sexint, salaryint;
               ageint=Integer.parseInt(age.trim());
                   
                      sexint=Integer.parseInt(sex.trim());
                      salaryint=Integer.parseInt(salary.trim());
                      if (ageint <20)  ageint=19;
                     
                     if (ageint <20)
                     {
                           answer[0][0]=answer[0][0]+1;
                           if (sexint==0)  answer[0][5]=answer[0][5]+1;
                           else answer[0][6]=answer[0][6]+1;
                           if (salaryint <20)      
                               answer[0][1]=answer[0][1]+1;
                           else if (salaryint<=29)
                               answer[0][2]=answer[0][2]+1;
                           else if (salaryint <= 39)
                               answer[0][3]=answer[0][3]+1;
                           else
                               answer[0][4]=answer[0][4]+1;
                     }
                     else if (ageint <= 39)
                     {
                           answer[1][0]=answer[1][0]+1;
                           if (sexint==0)  answer[1][5]=answer[1][5]+1;
                           else answer[1][6]=answer[1][6]+1;
                           if (salaryint <20)      
                               answer[1][1]=answer[1][1]+1;
                           else if (salaryint<=29)
                               answer[1][2]=answer[1][2]+1;
                           else if (salaryint <= 39)
                               answer[1][3]=answer[1][3]+1;
                           else
                               answer[1][4]=answer[1][4]+1;
                     }
                     else if (ageint <= 59)
                     {
                           answer[2][0]=answer[2][0]+1;
                           if (sexint==0)  answer[2][5]=answer[2][5]+1;
                           else answer[2][6]=answer[2][6]+1;
                           if (salaryint <20)      
                               answer[2][1]=answer[2][1]+1;
                           else if (salaryint<=29)
                               answer[2][2]=answer[2][2]+1;
                           else if (salaryint <= 39)
                               answer[2][3]=answer[2][3]+1;
                           else
                               answer[2][4]=answer[2][4]+1;
                     }
                     else if (ageint > 59)
                     {
                           answer[3][0]=answer[3][0]+1;
                           if (sexint==0)  answer[3][5]=answer[3][5]+1;
                           else answer[3][6]=answer[3][6]+1;
                           if (salaryint <20)      
                               answer[3][1]=answer[3][1]+1;
                           else if (salaryint<=29)
                               answer[3][2]=answer[3][2]+1;
                           else if (salaryint <= 39)
                               answer[3][3]=answer[3][3]+1;
                           else
                               answer[3][4]=answer[3][4]+1;
                     }      
                    
                    }
                    System.out.println("===================================");
                    System.out.println("<20  /20~29/ 30~39/>39//男 /女");
                    System.out.println("*****************************");
                    for (int i=0; i<4; i++) {
                         if (i==0) System.out.print("<20  ");
                         else if (i==1) System.out.print("20~39");
                         else if (i==2) System.out.print("40~59");
                         else  System.out.print(">59  ");
                        for (int j=1; j<7; j++){
                        //'    if (j==6) System.out.print(answer[i][j]);
                   
                             System.out.print("/  "+answer[i][j]);
                        }
                  System.out.println();
                
                    }
                    System.out.println("==================================");
                    System.out.print("合計      ");
                      System.out.print("/  "+(answer[0][1]+answer[1][1]+answer[2][1]+answer[3][1]));
                      System.out.print("/  "+(answer[0][2]+answer[1][2]+answer[2][2]+answer[3][2]));
                      System.out.print("/  " +(answer[0][3]+answer[1][3]+answer[2][3]+answer[3][3]));
                      System.out.print("/  "+(answer[0][4]+answer[1][4]+answer[2][4]+answer[3][4]));
                      System.out.print("/  " +(answer[0][5]+answer[1][5]+answer[2][5]+answer[3][5]));
                      System.out.print("/  "+(answer[0][6]+answer[1][6]+answer[2][6]+answer[3][6]));
                }
                catch(FileNotFoundException e) {
                    System.err.println("File not found. Please scan in new file.");
                }
               
            }
      }

2013年6月23日 星期日

Customer price

import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JRootPane;
import javax.swing.JTextField;

class   NewFrame extends JFrame implements ActionListener {
    JPanel panel = new JPanel();
      JPanel toppanel=new JPanel();
      JPanel middlepanel=new JPanel();
      JPanel bottompanel=new JPanel();
         private JButton PressResult;
          String sex[]={"Male","Female"};
          String subject[] = {"Standard", "Gold", "Premimum", "Diamond"};
          private double discount;
          private JTextField memnum, listprice;
          private JTextField result;
    NewFrame()
    {
      JLabel label0=new JLabel("Customer List price");
      listprice=new JTextField(5);
      listprice.setText("10000");
      JLabel label1=new JLabel("First name");
       JTextField first=new JTextField(5);
       JLabel label2=new JLabel("Middle name");
       JTextField middle=new JTextField(5);
       JLabel label3=new JLabel("Last name");
       JTextField last=new JTextField(5);
       JLabel label4=new JLabel("Gender");
       JComboBox<String> gender=new JComboBox<String>(sex);
       JLabel label5=new JLabel("Membership");
       final JComboBox<String> membership = new JComboBox<String>(subject);
       membership.addActionListener(this);
       membership.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
               System.out.println("The membership is "+ membership.getSelectedItem());
               String choice=(String)membership.getSelectedItem();
               switch(choice) {
               case "Standard":
                   discount=1;
                   break;
               case "Gold":
                   discount=0.9;
                   break;
               case "Premimum":
                   discount=0.85;
                   break;
               case "Diamond":
                   discount=0.75;
                    break;
                    default:
                        break;
               } 
               panel.updateUI();
           }
       });
      
   //    JTextField membership=new JTextField(5);
       JLabel label6=new JLabel("membership number");
 memnum=new JTextField(5);
      
      panel.add(toppanel);
      panel.add(middlepanel);
      panel.add(bottompanel);
     
     
      panel.setLayout(new GridLayout(3,1 ));
        setUndecorated(true);
        getRootPane().setWindowDecorationStyle(JRootPane.PLAIN_DIALOG);
        toppanel.add(label0);
       toppanel.add(listprice);      
       toppanel.add(label1);
       toppanel.add(first);
       toppanel.add(label2);
       toppanel.add(middle);
       toppanel.add(label3);
       toppanel.add(last);
       toppanel.add(label4);
       toppanel.add(gender);
       toppanel.add(label5);
       toppanel.add(membership);
       toppanel.add(label6);
       toppanel.add(memnum);     
     
       
       result=new JTextField();
        PressResult=new JButton("Press to get purchase price");
        PressResult.addActionListener(this);
        bottompanel.add(PressResult);
        result=new JTextField(5);
        bottompanel.add(result);       
       
        add(panel);
        setSize(500,400);
        setVisible(true);
        setTitle("Customer price");       
       
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);   
  
    }
    public void actionPerformed(ActionEvent e) {
    //    System.out.println("testing99:" +e.getActionCommand());
       if (e.getActionCommand().equals("comboBoxChanged")) comboselect(e);
      if (e.getActionCommand().equals("Press to get purchase price")) gettotal(e);  
    }
    void  comboselect(ActionEvent e){
       
       JLabel label21=new JLabel("membership discount");       
        JTextField memcut=new JTextField(5);
        memcut.setText(Double.toString(discount));
    
        middlepanel.removeAll();
       repaint();      
        middlepanel.add(label21);
        middlepanel.add(memcut);
       
    }
    public void gettotal(ActionEvent e){
        double total=0;
        int num=0, listpricen;
        num=Integer.parseInt(memnum.getText());
        listpricen=Integer.parseInt(listprice.getText());
        total=discount*num*listpricen;  
            result.setText(Double.toString(total));
           result.updateUI();
       
    }
 }

 public class CustomerGUI {
  public static void main(String[] args) {   
   new NewFrame();  
    } 
 }
   

 Python install twine on Mac 1. Need to install macports first, https://ports.macports.org/port/twine/  2.  sudo port install twine   Pychar...