星期五。見面

程式 | 學習 | 日記 | 玩樂

    [論文速速讀]系列文章介紹

前言

論文速速讀系列是從今年四月開始,我開始寫一些論文的中文讀書筆記,還記得第一篇是[論文速速讀]ReZero is All You Need: Fast Convergence at Large Depth,之後發現儘管自己已經陸續產出了幾篇文章,可是好像都沒正式的跟大家介紹這系列文章的由來xD

所以這篇文章就是來講講這系列文章到底是什麼,以及我會和會想寫這些文章。

論文速速讀系列是什麼?

由於在AI領域每年總是有一些非常重大的突破和應用,如果跟不上潮流很有可能就會錯失許多機會。例如,對NLP領域熟悉的話你一定聽過2013年的word2vec、2014年開始流行的attention、2018年的Bert…這些很有名的技術。

還記得Bert剛出的時候我好像剛進碩士實驗室,當時只知道這個技術屌打了當時一堆NLP的研究,但我想也想不到兩年後Bert已經造成如此大的影響力,一堆基於Bert的變形應用在各大領域上都取得了非常優異的結果。

因此,我想要藉由這系列的文章讓自己能夠更加快速的了解AI的新技術和研究,同時逼迫自己看論文xD

繼續閱讀

    [課程筆記]課程筆記系列總覽

本文記錄了自己在上課時所記錄的一些課程筆記,可以透過這邊文章連結到所有以往發過的課程筆記文章。

繼續閱讀

[讀書心得]35歲,為什麼還沒被重用?

書籍資訊

  • 書名: 35歲,為什麼還沒被重用
  • 作者: 薛明玲口述、賴燕芳 採訪撰文
  • 出版日期: Jan 12, 2014
  • 金石堂網址: 35歲,為什麼還沒被重用

(本文是【35歲,為什麼還沒被重用】的讀書心得)

是什麼關鍵,讓鴻海、台達電、統一、旺旺成為簽證客戶?
是什麼原因,讓近百位合夥人願意提早將退休金全部結算?
一本值得反覆咀嚼的好書,告訴你如何創造自己價值、如何找出成功方法,如何走出數字迷思。

薛明玲,曾任全球四大會計師事務所之一的「資誠聯合會計師事務所」所長,也是台灣第一個和企業老闆並坐股東會的會計師。事實上,自稱「老薛」的他,是一個沒有顯赫家世、求學不順利、在台中鄉下長大的孩子。

「把每一件經過手邊的事情做到最好」,是薛明玲馳騁職場的成功心法。他曾主動將整套稅務法規整理出兩頁的「實用密笈」送給客戶,迅速建立起專業知名 度。在股東會現場,他會準備多張試算表,提供企業主隨機應變……他發現,成功企業家最在意的,不僅是財報數字正不正確,更強調邏輯思維!

他說,35歲是人生的分水嶺,心態也轉趨成熟,這時若有成功者指引方向、提供經驗,就能少走冤枉路。因此,薛明玲提供自己30多年的「職場金三角」工 作學,也分享他與鄭崇華、郭台銘、杜英宗、戴勝益等企業家領袖,深度接觸的心得,給你再出發的勇氣,縱使35歲之後,機會依舊等著你。

繼續閱讀

[課程筆記]Linux Driver正點原子課程筆記 - Course 4

〖想觀看更多課程筆記,至[課程筆記]課程筆記系列總覽可以看到目前已發布的所有文章!〗

Course 4 - Led燈驅動實驗

嘗試透過driver去操作led register來達到led開關的實驗。

地址映射

Linux下無法直接對physical address做讀寫操作,因為linux會enable MMU(Memory Manage Unit),MMU的功能為

  1. virtual address (VA) <-> physical address (PA)的mapping
  2. 內存保護、register的訪問權限

對於32 bit的processor來說,virtual address的range是2^32=4GB。假設開發版有512MB的physical address,則MMU可以將512MB映射到4GB的虛擬空間。

  • 但PA有512MB,VA有4GB,要如何mapping? 這邊先不討論,有興趣的可以去看MMU的詳細介紹

繼續閱讀

[課程筆記]Linux Driver正點原子課程筆記 - Course 3

〖想觀看更多課程筆記,至[課程筆記]課程筆記系列總覽可以看到目前已發布的所有文章!〗

Course 3 - 我的第一個Linux驅動

字符設備驅動框架

上次有說到字符驅動提供給外部的api都被定義在file_operations structs內,這個結構被定義在/include/linux/fs.h下

0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
/* /include/linux/fs.h */
struct file_operations {
struct module *owner;
loff_t (*llseek) (struct file *, loff_t, int);
ssize_t (*read) (struct file *, char __user *, size_t, loff_t *);
ssize_t (*write) (struct file *, const char __user *, size_t, loff_t *);
ssize_t (*read_iter) (struct kiocb *, struct iov_iter *);
ssize_t (*write_iter) (struct kiocb *, struct iov_iter *);
int (*iterate) (struct file *, struct dir_context *);
int (*iterate_shared) (struct file *, struct dir_context *);
__poll_t (*poll) (struct file *, struct poll_table_struct *);
long (*unlocked_ioctl) (struct file *, unsigned int, unsigned long);
long (*compat_ioctl) (struct file *, unsigned int, unsigned long);
int (*mmap) (struct file *, struct vm_area_struct *);
unsigned long mmap_supported_flags;
int (*open) (struct inode *, struct file *);
int (*flush) (struct file *, fl_owner_t id);
int (*release) (struct inode *, struct file *);
int (*fsync) (struct file *, loff_t, loff_t, int datasync);
int (*fasync) (int, struct file *, int);
int (*lock) (struct file *, int, struct file_lock *);
ssize_t (*sendpage) (struct file *, struct page *, int, size_t, loff_t *, int);
unsigned long (*get_unmapped_area)(struct file *, unsigned long, unsigned long, unsigned long, unsigned long);
int (*check_flags)(int);
int (*flock) (struct file *, int, struct file_lock *);
ssize_t (*splice_write)(struct pipe_inode_info *, struct file *, loff_t *, size_t, unsigned int);
ssize_t (*splice_read)(struct file *, loff_t *, struct pipe_inode_info *, size_t, unsigned int);
int (*setlease)(struct file *, long, struct file_lock **, void **);
long (*fallocate)(struct file *file, int mode, loff_t offset,
loff_t len);
void (*show_fdinfo)(struct seq_file *m, struct file *f);
#ifndef CONFIG_MMU
unsigned (*mmap_capabilities)(struct file *);
#endif
ssize_t (*copy_file_range)(struct file *, loff_t, struct file *,
loff_t, size_t, unsigned int);
int (*clone_file_range)(struct file *, loff_t, struct file *, loff_t,
u64);
int (*dedupe_file_range)(struct file *, loff_t, struct file *, loff_t,
u64);
int (*fadvise)(struct file *, loff_t, loff_t, int);
} __randomize_layout;

簡單介紹一下這個struct內的member:

  • owner: 擁有該結構的module pointer,一般設置為THIS_MODULE
  • llseek(): 用於修改當前文件的讀寫位置
  • open(): 打開文件
  • read() & write():用來存取文件
  • poll(): 用來輪詢device是否可以進行non-blocking的讀寫
  • unlocked_ioctl() & compat_ioctl(): 提供對設備控制的街口
  • mmap(): 將device memory mapping到process memory,如此就不用做繁瑣的memory copy

function pointer不用全部實現,會用到哪個就實作哪個就好。

繼續閱讀

全台灣最大數據分析競賽上線啦!蝦皮2020數據分析競賽心得

這篇文章紀錄2020/11/21的蝦皮數據分析競賽心得~

競賽介紹

儘管競賽名稱是全台灣最大數據分析競賽,但實際上的競賽內容我覺得還不太夠格冠上這個名稱xD

為何這樣說呢?

首先,組別總共分成學生組和職業組,根據組別其實競賽題型差異極大:

  • 學生組: 考類似leetcode的演算法題型
  • 職業組: 考kaggle數據分析競賽

並且使用的平台都是在kaggle上(不太知道學生組這樣的題型要如何在kaggle上去做排名?)

接下來是競賽時間,他是線下賽,一開始想說一個kaggle的線上賽好說歹說都是星期起跳的,線下賽好歹你也要給個一天的時間吧

結果競賽時間只有2個小時,你沒看錯就是120分鐘而已呢。

繼續閱讀

[讀書心得]富爸爸商學院

書籍資訊

(本文是【富爸爸商學院】的讀書心得)
聽到「直銷」或「業務」,你的第一反應是先拒絕再說?
你知道銷售力可以帶來超越想像的成長,培養出過人的商業技巧與成功心態嗎?

跟大多數人一樣,當羅勃特.T.清崎第一次聽到直銷時,他也抱著懷疑的態度。

不過,經過深入了解,他發現直銷產業其實是一所真正的商學院,不只沒有高不可攀的入學門檻,還蘊藏著足以改變一生的核心價值。

繼續閱讀

>