顯示文章

這裡允許您檢視這個會員的所有文章。請注意, 您只能看見您有權限閱讀的文章。


文章 - hoyo

頁: [1] 2 3 ... 128
1
雜七雜八 / Hoyo 自製派對遊戲 - 問答桌遊
« 於: 2023-01-24 19:17 »
親友相聚,不知道做什麼打發時間,或是想要熱絡氣氛,可以來玩 Hoyo 的問答桌遊

https://test.hoyo.idv.tw/SportsBoardGame

2
會後整理

1. 網頁簡報 https://hoyo.idv.tw/mopcon2019/
2. 全台南市 Beacon 分佈 https://hoyo.idv.tw/beacon/Json.html

感謝大家參與,第二次講這個議題,感覺還是沒講好,比較詳細的解說可以看 https://blog.hoyo.idv.tw/?cat=306 這裡,不過整理很久也還沒完成

3
自己的 XX 自己 x

自己的活動自己推

讚~~~~

4
雜七雜八 / Re: 歡迎一起來 MOPCON 2019
« 於: 2019-11-15 08:47 »
已經進入敲日期、地點的階段,有興趣的同學可以提早準備

牽扯範圍太大,所以如果提問應該就是自己回家用關鍵字做功課,不會有太多實作

5
雜七雜八 / Re: 歡迎一起來 MOPCON 2019
« 於: 2019-11-10 22:05 »
IoT 在台灣搞不熱啊 ...

軟體、韌體、硬體三方面要妥善搭配不容易,控制不好產品沒競爭力,有競爭力在生態上也無法切入市場

有興趣的話再安排時間在酷學園上和大家說說,反正現在已經都將所有程式碼公開

7
雜七雜八 / 歡迎一起來 MOPCON 2019
« 於: 2019-09-10 22:02 »
歡迎酷學園的老夥伴一起到 MOPCON 2019 來聚聚,「順便」聽 Hoyo 久久一次的產業大爆料

主題:致敬「米家」 - 我家就是米家

介紹:
網頁 DIY, APP DIY, 電腦 DIY, 完整 IoT 生態可不可以 DIY?
Honeywell 用不起、Apple Homekit 用不起,連小米也用不起,用(買)不起還不能自己做嗎?
從 ESP8266 寫程式連到自己的通訊主機,到從網站主動發出控制推送到 ESP8266 的完整過程及實體展示
不搞 IoT 的純軟體工程師,也可以聽聽 Socket 通訊內容更了解 WebSocket 的通訊設計理念

https://mopcon.org/2019/

8
最近嘴癢也缺錢,剛好看到這個 https://seminar.ithome.com.tw/live/MW19-CFP/index.html

剛好前幾個月搞了一陣子 Arduino 在資料連線及處理上有一點心得,想要去投個稿賺個零用錢 (其實剛好夠付車馬費 = =a)

不知道各位大大有什麼好建議和推坑的壞建議

9
應該就是自問自答的答案

https://4tv.in.ua/wifi-adapter-ralink-rt7601

10
Linux 討論版 / Re: 請問最簡單的webmail
« 於: 2018-11-15 13:07 »
現在的工作是專職寫程式,就培養寫出 「大家都看得懂」的程式 (不是優美或是精簡)

因為看不懂維護起來很慘 .....

11
Linux 討論版 / Re: 請問最簡單的webmail
« 於: 2018-11-13 09:52 »
https://github.com/php-mime-mail-parser/php-mime-mail-parser 也許可用

目前流通的 PHP email parse 都有多多少少的問題,例如附件解析不出來或是該 base64 decode 卻沒有 decode

所以還是要自己拿 Mailparse  libary 自己寫遇到問題才比較容易解決

http://php.net/manual/en/book.mailparse.php

只是問題出在最開始說的,Gmail 流行了,自己搞 Mail Server 的人少了,所以相關資訊及文件相對就少了

12
Linux 討論版 / Re: 請問最簡單的webmail
« 於: 2018-11-13 09:48 »
代碼: [選擇]
<?php
ini_set
('display_errors',true);
ini_set('error_reporting',E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED);

mb_internal_encoding('UTF-8');

const 
path '/var/spool/mail';

$userArray scandir(path);
$users =array();

foreach( 
$userArray as $k=>$user ){
    if ( 
$user !='.' && $user !='..' ){
        
$users[] = $user;
    }
}

// 選取了使用者信箱
if ( $_GET['a'] =='user' ) {

    
$mail = array();
    
$m '';

    
$f path .'/'$_POST['user'];
    
$handle = @fopen($f"r");
    
$mail $body = array();
    
$i = -1;
    if (
$handle) {
        
$header true;
        while ((
$line fgets($handle4096)) != false) {
            if ( 
preg_match('/^From /'$line) ){
                
$header true;
                ++
$i;
                
$mail[$i] .= $line;
            }
            else{
                if ( 
$header == true ) {
                    
$mail[$i] .= $line;
                }
                else{
                    
$body[$i] .= $line;
                }
            }

            if ( 
preg_match('/^\n$/'$line) ) {
                
$header false;
            }
        }
        
fclose($handle);
    }
    
    
// 讀取單一信件
    
$m = array();
    foreach( 
$mail as $k=>$v ){
        
// 將信件內容丟進 mailparse 進行解析
        
$mime mailparse_msg_create();
        
mailparse_msg_parse($mime$v);

        
// 讀取信件結構 -> header & body
        
$structure mailparse_msg_get_structure($mime);
        
$parts = array();
        foreach(
$structure as $part_id) {
            
$part mailparse_msg_get_part($mime$part_id);
            
$parts[$part_id] = mailparse_msg_get_part_data($part);

            
// 將信件結構存入陣列
            
$m[$k] = $parts[$part_id];
        }
        
//print_r($m);
    
}

    
$mail = array();
    foreach( 
$m as $k=>$v ){
        
$mail[$k]['subject'] = mb_decode_mimeheader($v['headers']['subject']);
    }

    if ( 
count($m) >=){
        
$Return = array( 'Result'=>true'Data'=>$mail );
    }
    else {
        
$Return = array( 'Result'=>false );
    }
    echo 
json_encode($Return);
    exit;
}

//
if ( $_GET['a'] =='mail' ) {
    
$mail = array();
    
$m '';

    
$f path .'/'$_POST['user'];
    
$handle = @fopen($f"r");
    
$mail $body = array();
    
$i = -1;
    if (
$handle) {
        
$header true;
        while ((
$line fgets($handle4096)) != false) {
            if ( 
preg_match('/^From /'$line) ){
                
$header true;
                ++
$i;
                
$mail[$i] .= $line;
            }
            else{
                if ( 
$header == true ) {
                    
$mail[$i] .= $line;
                }
                else{
                    
$body[$i] .= $line;
                }
            }

            if ( 
preg_match('/^\n$/'$line) ) {
                
$header false;
            }
        }
        
fclose($handle);
    }
    
    if ( 
count($m) >=){
        
$Return = array( 'Result'=>true'Data'=>$body[$_POST['mail']] );
    }
    else {
        
$Return = array( 'Result'=>false );
    }
    echo 
json_encode($Return);
    exit;
}
?>

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width"/>
    <title></title>
    <style>
        *{
            font-size: 16px;
        }
        pre{
            background-color: #eee;
            border: 1px solid #aaa;
            border-radius: 8px;
            padding: 16px;
            margin: 16px;
        }
        .box{
            margin: 16px;
            padding: 16px;
            border-radius: 8px;
            border: 1px solid #ddd;
        }
    </style>
</head>
<body>

<div class="box">
    <label>選擇使用者帳號:
        <select name="user" onchange="selectUser(this)">
            <option value="">- 選擇信箱 -</option>
            <?php foreach($users as $k=>$v){ ?>
                <option value="<?php echo $v;?>"><?php echo $v;?></option>
            <?php ?>
        </select>
    </label>
</div>

<?php echo $_POST['user'];?>

<div class="box">
    <label>選取信件:
        <select name="mail" onchange="readMail(this)"></select>
    </label>
</div>

<div>信件內容:</div>
<pre id="MailBody"></pre>

<script src="//code.jquery.com/jquery-1.11.3.min.js"></script>
<script>
    var user = '';

    function selectUser(obj){
        var $this = $(obj);
        user = $this.val();

        $.ajax({
            url: '?a=user',
            type: 'post',
            data: {
                user: $this.val()
            },
            dataType: 'json',
            success: function(json){

                var h = '<option value="">- 選擇信件 -</option>';
                if ( json['Result'] ==true ){
                    $.each( json['Data'], function(k,v){
                        h += '<option value="'+ k +'">'+ v['subject'] +'</option>';
                    } );
                }

                $('[name="mail"]').html(h);
            }
        });
    }

    function readMail(obj){
        var $this = $(obj);

        $.ajax({
            url: '?a=mail',
            type: 'post',
            data: {
                user: user,
                mail: $('[name="mail"]').val()
            },
            dataType: 'json',
            success: function(json){

                var h = '';
                if ( json['Result'] ==true ){
                    h += json['Data'];
                }

                $('#MailBody').html(h);
            }
        });
    }
</script>
</body>
</html>

獻上 hoyo 版本, MIME 格式郵件還沒繼續處理,需要的人把 mail 區段 $body 繼續解析即可

13
Linux 討論版 / Re: 請問最簡單的webmail
« 於: 2018-11-09 18:00 »
不過 maildir 對於程式的記憶體處理並沒有帶來優勢,還是需要把所有的檔案讀入才可以進行解析

解析後才可以讀出信件主旨,如此才可正確選到想讀取的信件

14
Linux 討論版 / Re: 請問最簡單的webmail
« 於: 2018-11-09 17:27 »
如果要直接解讀 /var/spool/mail 內檔案可能會有點困難

因為那是一個單大容量文字檔,信件都放在一起,讀入檔案再進行切割解讀信件應該是一件很耗硬體資源的事情

我無聊的時候寫個 php 測試看看

換成 maildir 會不會好些?

如果已經是 maildir 架構, dark 兄就不會有這個問題了

郵件已經分成一對一檔案,要讀取相對容易些

15
Linux 討論版 / Re: 請問最簡單的webmail
« 於: 2018-11-09 14:13 »
才發現 win7 後不支援 outlook 之類的讀郵件程式 ...

1. Mozilla Thunderbird
2. windows live mail 2012 (https://www.mobile01.com/topicdetail.php?f=511&t=5083767)

16
Linux 討論版 / Re: 請問最簡單的webmail
« 於: 2018-11-08 14:26 »
代碼: [選擇]
<?php
ini_set
('display_errors',true);
ini_set('error_reporting',E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED);

const 
path '/var/spool/mail';

$users scandir(path);

foreach( 
$users as $k=>$user ){
    if ( 
$user !='.' && $user !='..' ){
        echo 
$user;

        
$mime mailparse_msg_parse_file(path .'/'$user);
        
$structure mailparse_msg_get_structure($mime);
        
$parts = array();
        foreach(
$structure as $part_id) {
            
$part mailparse_msg_get_part($mime$part_id);
            
$parts[$part_id] = mailparse_msg_get_part_data($part);
            
print_r($parts[$part_id]);
        }
    }
}

把這個程式碼丟在網站內讀讀看  可以的話就是可以使用了

17
Linux 討論版 / Re: 請問最簡單的webmail
« 於: 2018-11-08 14:17 »
https://github.com/pugong/phabricator/tree/master/externals/mimemailparser

使用 php parse mail Google 就可以找到已經寫好的套件了

不過問題一樣,要先自己打開檔案讀取權限

18
Linux 討論版 / Re: 請問最簡單的webmail
« 於: 2018-11-08 13:58 »
藉由網頁透過 php 讀取 /var/spool/mail 是不可行的,除非把檔案權限設定成開放讀取

預設應該是 660 的 mail 權限, apache 並無法讀取檔案

不過如果撇開權限決心硬幹的話  那有進一步的成果再分享

19
Linux 討論版 / Re: 請問最簡單的webmail
« 於: 2018-11-08 13:45 »
如果要直接解讀 /var/spool/mail 內檔案可能會有點困難

因為那是一個單大容量文字檔,信件都放在一起,讀入檔案再進行切割解讀信件應該是一件很耗硬體資源的事情

我無聊的時候寫個 php 測試看看

20
Linux 討論版 / Re: 請問最簡單的webmail
« 於: 2018-11-08 13:24 »
我自己做了一個 webmail , 本來的用途是免費限時收信的 webmail ,後來自己寫著寫著忽然覺得發現了什麼就往正式的 mail 系統開發

https://hoyo.idv.tw/wm/

使用 PHP MySQL ,帳號、信件全部存在資料庫,收信直接使用網頁,不支援 imap 和 pop3 (哈哈哈)

---

正式的資料還沒整理完全

https://blog.hoyo.idv.tw/?p=4774

可以使用 postfix mysql Google 或是先參考下面幾個網址

https://wiki.gentoo.org/wiki/Complete_Virtual_Mail_Server/Postfix_to_Database
https://serverfault.com/questions/722137/how-to-specify-target-directory-in-postfix-with-mysql

---

有興趣的人如果多就找時間說一場,如果還是小眾就等小弟的資料或努力 Google 吧  = =a

21
sqlite3 目前只用在 APP 內

因為使用在 APP 所以資料的增減以及使用頻率就不會太頻繁  幫不上忙  sorry

而且 sqlite3 也只用過一次  也算是還沒出新手村的超新手了

22
BSD 討論版 / Re: FreeBSD IFF_RUNNING??
« 於: 2018-05-29 15:40 »

----

直接題外話

現在 storage 的主題這幾天都在搞 hadoop 可惜電腦還不夠多,還在想辦法生電腦中

初步測試起來是類似 amazon s3 的東西,不過因為找不到後續應用的場合所以已經有點懶了

23
資料庫的主題現在只想知道那些超大的大陸網路公司是怎麼使用上萬台 MySQL 的?

可惜搜尋了一堆網路資料,看了 N 個網頁、N 個 PPT 和演講影片 ,都沒有搔到癢處 ....

還是打開的姿勢不對!?

24
如果具有 「解決問題的能力」 那無論何時都還是吃的開的,而解決問題的能力也是現在企業所看重的,畢竟詐騙的人太多了

不過解決問題通常牽扯的範圍非常大,以資訊相關的話通常都要具備

1. 平台:也就是作業系統
2. 操作界面 (網站、APP)
  2.1 網站程式
  2.2 APP 嘗試
3. 資料庫

為了解決問題當然在工具的選擇上使用 OpenSource 是較佳或唯一選擇,例如要架構 WebRTC 就只有 OpenSource 可以選擇 (當然你硬要在 Windows 上裝 Nodejs, Python 然後說這是 Windows 解決方案我也無話可說了)

想要當網管自己架設網站我覺得是必要的,當然世界上的網管有 99% 都是沒有自己架設的網站,直接拿公司的主機來當白老鼠試驗的

自己架設的網站撐下來了,在公司就有底器說話可以「很大聲」

我自己架站 17 年,之前被入侵的不要不要的,後來知道眉角之後就可以把主機丟在角落不管他了

--

至於區域網路的防護及工作職責問題,你是想多了  這個時候網管只是拿來當砲灰的

如果不想當砲灰就拿出「解決問題的能力」把有資安風險的軟體及作法改進吧

25
Linux 以及 Windows 的啟動區都必須在硬碟前面

根據版本不同可以「容忍」的極限也不同,可能有些可以跨過 512G 有些就不行

26
雜七雜八 / Re: 二手的硬體能買嗎 ?
« 於: 2017-10-11 19:56 »
1. 不知道
2. 不知道

3. 會買二手的資訊硬體,例如之前買數據機就只有二手可以買
4. 二手硬碟應該是一種賭運氣的裝置
5. 應該就是大公司淘汰的 (猜的)
6. 家裡不會放 Server 只放 PC,話說,現在的 MIS 還是都沒有自己架站的經驗就直接拿公司的主機當白老鼠嗎?

-----

如果今天開公司,有另外的辦公場所,主機就有可能買二手的

不過最大的可能應該還是買 Server 機殼之後,自己組 = =a

27
時代果然進步了

現在都有 youtube 直播了

可惜現在忙、而且已經不玩音響了,沒參加真可惜

28
WD 5 年保固,只是 S.M.A.R.T 出現警告,直接丟代理商換一顆新的回來

硬碟我是決定數量才是重點,家裡一堆硬碟總和才超過 50T

現在 5 顆 10T 硬碟就有了,而且相較之下又更省電,時代很進步了

---

不是 5 年保固的硬碟都不在購買考慮內

29
Linux 討論版 / Re: linux搭建WEB服务器问题!
« 於: 2016-11-01 20:51 »
MySQL 安裝時會有假想的使用環境設定參考檔

例如以 FreeBSD 為例,路徑在 :/usr/local/share/mysql

my-*.cnf 就是不同營運環境的參考設定檔,一般懶的人都是複製一份相近的環境,或是從內複製來使用

30
到論壇問一個自己還「PS 備註」做不到的事情,問該怎麼作到?

還有兩位大大回應,我也是很醉 .... = ="

頁: [1] 2 3 ... 128