手機系統及安全更新排行:Nokia 居冠、OPPO 射後不理

手機系統及安全更新排行:Nokia 居冠、OPPO 射後不理

https://report.counterpointresearch.com/posts/report_view/Individual/1418
本次調查兩大結論: 1. 主要手機品牌中,只有不到三分之二的中低階智慧型手機能更新到最新 Android 系統版本。Nokia 則以更新超過 90% 的中低階手機居冠! 2. 只有約四分之一的旗艦安卓手機有更新至最新作業系統。

閱讀全文〈手機系統及安全更新排行:Nokia 居冠、OPPO 射後不理〉
Facebook Comments

日本「公主大學」排名

日本「公主大學」排名

關東篇

第三名: 聖心女子大學
聖心女子大學是完全的女子學校,從小學到大學,學生特點是父母富裕,但因為家庭背景給人的印象,通常被認為有點公主病且自私。聖心女子大學以與慶應義塾大學男生結婚比例高聞名,可能是穩定就業機會與有個性的特質有關。

閱讀全文〈日本「公主大學」排名〉
Facebook Comments

資產分配不平等 1978年後世代買不起房

資產分配不平等 1978年後世代買不起房
資料來源: 內政部不動產資訊平台 http://pip.moi.gov.tw
住宅價格指數趨勢圖 全國與新北市
資料來源: 內政部不動產資訊平台 http://pip.moi.gov.tw
住宅價格指數趨勢圖 台北市
資料來源: 內政部不動產資訊平台 http://pip.moi.gov.tw

然後連租金指數也不斷上漲……

閱讀全文〈資產分配不平等 1978年後世代買不起房〉
Facebook Comments

台灣5G市場分析

台灣5G市場分析

釋出的兩個主要頻段:3.5GHz、28GHz,NCC分別都設下單一業者最多可取得頻寬:
一、3.5GHz 頻段(頻寬270MHz)得標上限為100MHz。
二、28GHz 頻段(頻寬2500MHz)得標上限為800MHz。

NCC釋出的頻寬有多大、上限多寡,將影響有多少業者能參與5G大戰。以3.5Ghz頻段為例,頻寬總共270MHz,除以取得上限100MHz,代表若有兩家業者砸錢標滿100M頻寬(100M+100M,剩下70M),最多可能只有三家業者會拿到「門票」。

財團法人國家實驗研究院科技政策研究與資訊中心指出,5G的主要頻段包含6GHz以下(Sub-6GHz)頻段與28GHz為主毫米波(mmWave)頻段。其中兵家必爭之地就是各國5G建設的主力—3.5GHz

林之晨是台灣大哥大總經,從”電力”角度切入挺特別的……
可以理解電信三雄想要降低5G市場裡的競爭者數目,但台灣大跟遠傳最近發放股利大於 EPS ,這代表:部份的股利是由資本公積配發出來,雖然殖利率能維持大約 4% 水準,但 EPS 若常年跟不上股利、以資本公積來配息,這不像是對5G競標的準備。 (來源)

Facebook Comments

安裝OpenCV

需要事先安裝好的套件包括build-essential, cmake, git, libgtk2.0-dev, pkg-config, libavcodec-dev, libavformat-dev, libswscale-dev

[compiler] sudo apt-get install build-essential
[required] sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
[optional] sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

接著下載opencv的原始碼

cd ~/<my_working_directory>
git clone https://github.com/opencv/opencv.git
git clone https://github.com/opencv/opencv_contrib.git

建立build folder, build script並進行make

cd ~/opencv
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
make
Facebook Comments

開源中文字體資源整理

開源中文字體資源整理

思源體系

https://www.google.com/get/noto/ 

2014 年 Google 和 Adobe 共同合作開發一款名為「思源黑體」開放原始碼字型,,這項計畫最令人期待的是 CJK 字型支援,也就是針對繁體、簡體中文、日文及韓文分別設計不同字型,而且也符合 Google「No more tofu」的目標──致力於解決全世界跨系統、語系無法正確顯示部分字元等問題,

 

思源字體以螢幕顯示為目的,但缺少美學成分或創新,閱讀起來容易感到無趣,批評者認為顯得非常呆板而且機械化。設計上過於注重形式上的統一,忽略了適當的變化。

閱讀全文〈開源中文字體資源整理〉
Facebook Comments

Face Recognition sample code in Python

Face Recognition sample code in Python
import face_recognition
import PIL.Image
import PIL.ImageDraw
from pathlib import Path

for filename in Path("./").glob("*.jpg"):

    # Load the jpg files into numpy arrays
    image = face_recognition.load_image_file(filename)

    # Generate the face encodings
    face_encodings = face_recognition.face_encodings(image)

    if len(face_encodings) == 0:
        # No faces found in the image.
        print("No faces were found in {}.".format(filename))

    else:
        # Grab the first face encoding
        first_face_encoding = face_encodings[0]

        # Print the results
        print("Face encoding for {}\n".format(filename),first_face_encoding)
        # Find all facial features in all the faces in the image
        face_landmarks_list = face_recognition.face_landmarks(image)

        number_of_faces = len(face_landmarks_list)
        print("I found {} face(s) in this photograph.".format(number_of_faces))

        # Load the image into a Python Image Library object so that we can draw on top of it and display it
        pil_image = PIL.Image.fromarray(image)

        # Create a PIL drawing object to be able to draw lines later
        draw = PIL.ImageDraw.Draw(pil_image)

        # Loop over each face
        for face_landmarks in face_landmarks_list:

            # Loop over each facial feature (eye, nose, mouth, lips, etc)
            for name, list_of_points in face_landmarks.items():
                # Print the location of each facial feature in this image
                print("The {} in this face has the following points: {}".format(name, list_of_points))

                # Let's trace out each facial feature in the image with a line!
                draw.line(list_of_points, fill="red", width=2)

        pil_image.show()
Source: Wikipedia
閱讀全文〈Face Recognition sample code in Python〉
Facebook Comments

談過去幾年AMD的專利授權

談過去幾年AMD的專利授權

CPU

https://www.inside.com.tw/article/16815-lynn_amd_supercomputer

2016年AMD 與中國天津海光宣布合作,幾年來雙方對合作一直保持低調,幾乎沒什麼聲音出現。如今藉由 Linux 內核開發者的數據曝光,才讓外界知道這宗合作案已有結果。當時 AMD 曾指出與中國天津海光協議並不違反 2009 年 AMD 與英特爾簽署的交叉授權合約。合資公司所有權結構不同 ( 海光微電子由 AMD 控股 51%,天津海光控股 49%。另外一家成都海光積體電路設計公司,天津海光控股 70%,AMD 控股 30%。前者主要享授權 IP 所有權,並負責晶片生產,後者則以晶片設計和銷售為主。 ),且轉讓給中國的所有資訊都符合美國出口法規。天津海光和 AMD 成立的合資公司確實可修改 AMD 的 CPU 核心,變相享有 x86 授權,而天津海光可透過購買合資公司研發的 CPU 核心,開發伺服器 CPU,不過這些僅限中國市場。

閱讀全文〈談過去幾年AMD的專利授權〉
Facebook Comments

Python: 透過Open Weather Map API抓取天氣資料

https://openweathermap.org/
https://openweathermap.org/current

透過HTTP Request要求的天氣資料可以用城市、城市ID、經緯度、或是郵遞區號(僅限美國)來指定。像是查詢英國倫敦的話:

api.openweathermap.org/data/2.5/weather?q=London
api.openweathermap.org/data/2.5/weather?q=London,uk

以下的Python程式碼透過傳入的經緯度透過api要求天氣資料。這段程式碼寫在我的Line Chatbot裡,當使用者在機器人對話裡打卡的時候回傳當地資料。

import json
import requests
import configparser
import logging

def getWeather(latitude, longitude):
    config = configparser.ConfigParser()
    config.read("config.ini")
    appid = config['openwweather']['key']
    openweatherapiurl = "https://api.openweathermap.org/data/2.5/weather?lat="+latitude+"&lon="+longitude+"&APPID="+appid
    logging.info("[getWeather] request URL:" + openweatherapiurl)
    try:
        response = requests.get(openweatherapiurl)
        data = response.json()
        logging.info(data)
        answer = data['weather'][0]['description'] + ". Temp:" + str(int(data['main']['temp']-273.15))+ " (High "+str(int(data['main']['temp_max']-273.15))+", low " +str(int(data['main']['temp_min']-273.15))+". Humidity: "+str(data['main']['humidity'])+"\n"
        logging.info("[getWeather]:" + answer)
        return answer    
    except:
        return None

透過HTTP Request傳遞查詢地點跟appid之後收到下面的HTTP Response資料,包在Json格式當中,像是以下的形式。
其中氣溫是凱式溫標,需要減去273.15度才是我們習慣的攝氏單位

{
  "coord": { "lon": 121.57, "lat": 25.04 },
  "weather": [
    { "id": 801, "main": "Clouds", "description": "few clouds", "icon": "02d" }
  ],
  "base": "stations",
  "main": {
    "temp": 305.75,
    "pressure": 1005,
    "humidity": 60,
    "temp_min": 303.71,
    "temp_max": 309.15
  },
  "visibility": 10000,
  "wind": { "speed": 7.2, "deg": 280 },
  "clouds": { "all": 20 },
  "dt": 1560929615,
  "sys": {
    "type": 1,
    "id": 7949,
    "message": 0.0071,
    "country": "TW",
    "sunrise": 1560891849,
    "sunset": 1560941141
  },
  "timezone": 28800,
  "id": 1675720,
  "name": "Xianeibu",
  "cod": 200
}
Facebook Comments