2018年11月14日 星期三

ubuntu 7-zip 安裝與使用

安裝指令
sudo apt-get install p7zip-full

執行壓縮: 7z a 壓縮檔案 目標來源
7z a demo.7z demo_path_or_file

執行加密壓縮: 7z a 壓縮檔案 目標來源 -p加密密碼
7z a demo.7zp demo_path_or_file -pMYPASSWD

執行密碼解壓縮: 7z x 壓縮檔案 -p加密密碼
7z x demo.7zp -pMYPASSWD

2018年10月19日 星期五

2018年4月1日 星期日

把 IPython notebook貼上Blogger文章上分享

In [1]:
import win32com.client
import time

xlApp = win32com.client.Dispatch("Excel.Application")
xlApp.Visible=1

workBook = xlApp.Workbooks.Open(r"C:\Users\kenne\Desktop\datelist.xlsx")
print(str(workBook.ActiveSheet.Cells(1,1)))
now = time.time()
workBook.ActiveSheet.Cells(1, 2).Value = now
#SaveChanges = 1 : Save flle
# SaveChanges = 0 : Nothing Saved
workBook.Close(SaveChanges=1)
xlApp.Quit()
參考此篇(How to quickly turn an IPython notebook into a blog post)",將 .ipynb 轉成 HTML code
!ipython nbconvert --to html --template basic filename.ipynb
接下來就把目錄底下的 filename.html 檔案內的HTML原碼貼上 blogger.com ,然後記得在HTML原碼前面加上底下的CSS碼,就可以囉~
<style type="text/css">
.highlight{background: #f8f8f8; overflow:auto;width:auto;border:solid gray;border-width:.1em .1em .1em .1em;padding:0em .5em;border-radius: 4px;}
.k{color: #338822; font-weight: bold;}
.kn{color: #338822; font-weight: bold;}
.mi{color: #000000;}
.o{color: #000000;}
.ow{color: #BA22FF;  font-weight: bold;}
.nb{color: #338822;}
.n{color: #000000;}
.s{color: #cc2222;}
.se{color: #cc2222; font-weight: bold;}
.si{color: #C06688; font-weight: bold;}
.nn{color: #4D00FF; font-weight: bold;}
</style>

同場加映補充資料:HTML Encoder

python +pywin32 操作 Excel

import win32com.client
import time

xlApp = win32com.client.Dispatch("Excel.Application")
xlApp.Visible=1

workBook = xlApp.Workbooks.Open(r"C:\Users\tekibrain\Desktop\datelist.xlsx")
print(str(workBook.ActiveSheet.Cells(1,1)))
now = time.time()
workBook.ActiveSheet.Cells(1, 2).Value = now
#SaveChanges = 1 : Save flle
# SaveChanges = 0 : Nothing Saved
workBook.Close(SaveChanges=1)
xlApp.Quit()

2017年12月12日 星期二

Windows 10 64bits + Arduino IDE + ESP8266 (ESP-01)


  1. Arduino.cc 下載最新版 Arduino IDE (以1.8.5版為例)
  2. 將 arduino-1.8.5-windows.zip 解壓縮至指定目錄下,安裝好 Arduino IDE
  3. 啟動 Arduino IDE,開啟「檔案 > 偏好設定 (preferences)」 視窗
  4. 偏好設定
  5. 在「額外的開發版管理員網址」(Additional Board Manager) 輸入網址:
  6. 開啟「工具 (Tools) > 開發板 (Board) > 開發板管理員 (Boards Manager)」後,搜尋 "esp" 並且安裝 esp8266 套件
    安裝 esp8266 (可以看見其實有錯誤發生)

    正常的套件下載安裝畫面
  7. 安裝完成後,下次就能選擇 ESP8266 開發板,進行IDE程式開發與上傳功能


後記:
  • 如果下載時發生了"下載http://downloads.arduino.cc/packages/package_index.jsp時發生錯誤"的訊息,可以在「檔案 > 偏好設定 > 網路」設定 proxy 來解決。
  • 網路上有些說法是設定 JAVA IPv4Stack=true 即可: setx _JAVA_OPTIONS -Djava.net.preferIPv4Stack=true
  • 不過對我來說似乎沒有用,反而是最簡單的 proxy 解決了我的問題。
  • 下載套件時的錯誤訊息

    設定 Java IPv4Stack ,不過對我來說沒用處

    設定 proxy

2017年9月19日 星期二

新 iPhone 是否會熱銷?

Google趨勢比較結果

市場是不少看衰此次 iPhone 8/iPhone X的消息與傳言,就連股市裏相關的蘋果概念股一時間股價也被看空。那到底銷售情況會如何呢?

沒有甚麼大數據分析能力,但Google Trends比較一下或許能告訴我們一些答案

#

2017年6月4日 星期日

取得台北火車站附近最熱門的打卡點 (留給自己參考)

* 參考來源:苗栗最熱門的打卡點? Andrew Tang

  • 修改:
    • gcode將"台北車站"字串以iconv從big5編碼為utf8
    • 取得個地點打卡次數時,順便將location寫入fields取回lat, lng等地理座標資訊
install.packages("ggmap")
install.packages("leaflet")
install.packages("DT")
install.packages("jsonlite")
install.packages("curl")
install.packages("dplyr")

library(ggmap)
library(leaflet)
library(DT)
options(stringsAsFactors = F)

(myplace <- geocode(iconv("台北車站", "big5", "utf8")))
顯示台北火車站座標結果
      lon      lat
1 121.517 25.04774
繪製出台北火車站方圓5公里(radius=5000)的範圍
leaflet() %>% addTiles() %>% 
  fitBounds(0, 40, 10, 50) %>% 
  setView(myplace$lon, myplace$lat, zoom = 12) %>% 
  addCircles(myplace$lon, myplace$lat, radius = 5000)
台北火車站方圓5公里
至Facebook 圖形API測試工具 取得程式權杖(token)
library(jsonlite)
經緯度 <- paste(myplace$lat, myplace$lon, sep=",")
方圓幾公尺 <- 5 * 1000
token <- "EAACEdEose0(略)ppeaL"
url <- sprintf("https://graph.facebook.com/search?type=place¢er=%s&distance=%s&limit=50000&access_token=%s", 經緯度, 方圓幾公尺, token)

tmp <- fromJSON(url)
result <- tmp$data[c("category","name","id")]
while(!is.null(tmp$paging$`next`)){
  tmp <- fromJSON(tmp$paging$`next`)
  result <- rbind(result, tmp$data[c("category","name","id")])
}

datatable(result, 
          extensions = 'Scroller', options = list(
          deferRender = TRUE,
          scrollY = 500,
          scroller = TRUE
        ))
##執行結果

取得每個地點的 名稱(name)、打卡數(checkins)、地點類別(category)、和座標資料(location)
library(dplyr)
fields <- "name,checkins,category,location"
checkin <- sapply(result$id, function(id){
  url <- sprintf("https://graph.facebook.com/%s?fields=%s&access_token=%s", id, fields, token)
  #unlist(fromJSON(url))
  fromJSON(url)
})

mycheckin <- as.data.frame(t(checkin))
mycheckin$checkins <- as.integer(mycheckin$checkins)
mycheckin <- mycheckin[order(mycheckin$checkins, decreasing = T),]
row.names(mycheckin) <- NULL
datatable(mycheckin, 
          extensions = 'Scroller', options = list(
          deferRender = TRUE,
          scrollY = 200,
          scroller = TRUE
        ))
##執行結果
#