跳到主要內容

發表文章

羅技滑鼠送修過程紀錄

今天拿到替換品的滑鼠,整個送修事件算是告一個段落 寫一下流程紀錄讓有需要的人參考 之前購買鍵盤滑鼠的時候已經稍微查過現在的滑鼠生態 似乎現在滑鼠的微動裝置出現問題的時間都不會太短 羅技的滑鼠相較便宜貨較貴的價值就在3年保固 品質的話不熟悉這個產業也不多說什麼 不過聽說羅技早期是用日本製的微動,現在都改用中國製的 這次送修的滑鼠有兩隻,M705 跟 M105 M705是滿好用的滑鼠,不過買的時候也查到滿多案例是不長的時間內會出現連點問題 M105是價位低的有線滑鼠,這隻買來跟筆電帶來帶去也還能湊合用 前陣子M705出現連點狀況,並能排除靜電因素 結果過沒幾天,比他晚買的M105居然也開始有連點狀況 這下更是讓我打定主意非得兩隻都送修 畢竟滑鼠雖是消耗品,但價格也沒便宜到能夠讓我隨便換 都買了比較貴的保固,沒有用到比其他牌更久的時間,那不修真的是浪費錢

AWS S3 Java code samples

紀錄最近在處理 AWS 相關 issue 時用的部分 method 最基本的 download、upload等等還滿好在 AWS 上找到範例 不過似乎有些要求就沒那麼好找 從AWS下載檔案的檔案名稱(alias name)或其他 Header 調整 AWS示範了建立供下載使用的連結的範例 public static URL getURLPresigned(String bucket, String s3name) {     AmazonS3 s3client = new AmazonS3Client(new BasicAWSCredentials(accessKey, secretKey));     Date expire = new Date(new Date().getTime() + 86400000L);     // set to be available for 1 day.     return s3client.generatePresignedUrl(bucket, s3name, expire, HttpMethod.GET); } 但是會使用AWS的,絕大多數都是有大量檔案存取需求 應該有不少公司的做法也會是上傳的檔案會加上 hash 避免檔案被覆蓋或作為多版本紀錄用途 但是給使用者下載的檔案名稱還是要使用原先上傳時的才比較合理 一個可行的做法就是調整下載的回應的 Content-Disposition Header 這個 Header 可以用來設定下載的檔案名稱,規格的說明可以查看 定義文件 寫出來的範例如下: public static URL getURLPresigned(String bucket, String s3name, String contentDisposition) {     AmazonS3 s3client = new AmazonS3Client(new BasicAWSCredentials(accessKey, secretKey));     Date expire = new Date(new Date().getTime() + 8...

避免 scroll bar 影響網頁元件的外觀

Scroll bar 是網頁上常見的設計之一 只是有時候不太能預期你的 element 的內容是否多到需要用 scroll bar 或者是 element 的內容會隨著操作而變動 這種不確定性會對網頁的排版造成影響,很可能 scroll bar 的產生會擠壓到原本的元素 上面的示範提供了兩個例子 先注意原本的外觀後繼續操作 移動滑鼠到 element 上就可以看到 scroll bar 的產生 第一個例子的當 scroll bar 出現後,原本的文字排版也跟著變化 第二個例子則是出現 scroll bar 前後的文字排版都相同 建議不要想著去計算 scroll bar 的寬度 首先是 scroll bar 的寬度依各家瀏覽器廠商的實作而不同 再來是用 JavaScript 計算會有效能上的損耗,以及可能有相容性的問題 第二個例子的處理方式是在外面的 element 及內部的 element 中間塞入了個 div 這個 div 的外觀依需求將寬或長指定的跟外層 element 相同 這樣就能保持內容的外觀,scroll bar 也只會影響這個中介 div 很多 web 的設計都能使用這個想法,插入中介 element 讓外層跟內部的顯示效果區隔

Java 實現 JavaScript 的 encodeURIComponent

參考文章: encodeURIComponent and decodeURIComponent in Java 很多時候需要將字串轉成 UTF-8 編碼後的ascii,特別是在 Web 端的輸出 Java 裡的內建 Class URLEncoder 裡的 encode 方法看起來雖然像是為此產生 少部分沒那麼嚴謹的教學也會說用這個方式就能編譯 UTF-8 但之後可能會碰到意料之外的問題 雖然大部分的文字編碼結果都沒有問題,但極少部分的符號編碼卻跟JavaScript的不同 最明顯的就是 space,空白用Java的 URLEncoder 會編譯成 + 而不是 %20 在 Java 端產生的網址字串可能就因此不能作用

[轉載] [Growth Hack] 如何系統性的救回半死不活的 MVP 產品?

原文連結: [Growth Hack] 如何系統性的救回半死不活的 MVP 產品? 這篇將工具推薦跟使用理由都寫得不錯 進行轉換率增加的步驟時可以參考這篇文章 ================================= 坦白說,這個標題若照 Growth Hack 的定義,有點誤用 因為若照矽谷的建議來說,Growth Hack 的 tunning 是建議 Product Market Fit 之後才進行 這個原因是因為 Growth Hack 屬於 Marketing 範圍的一種,而且是創意的 Marketing 實作需要大量資源。而且沒進入 PMF 的話, Funnel 漏水率太兇 所以比較正確的標題應該是: 「如何用 Growth Hack 中使用的技術工具,將自己半死不活的 MVP 產品推破 Product Market Fit 的下限」 不過顯然這樣「政治正確」的下標法,沒有人要看 所以我還是沿用原標題好了 XD 每月在舉辦 Intro to Growth Hack 講座傳授「Growth Hack 心法」的緣故 我有時候會收到聽眾事前一些相當精彩的問題,發現大家困擾其實都長的差不多 這一次因為收到一個「典型技術開發者」的問題,我覺得相當適合整理成具體的 FAQ 因此取得提問者的同意,把產品細節馬賽克之後放上來 (因為這個問題的相同變形實在出現太多次了,包括我以前也有這樣的困擾)

[轉載] 王功權:不是所有創業公司都適合拿風投

我喜歡這篇的一段話 人一生的才華、資源、熱情一定要放在自己最感興趣的一件事上,這樣工作才不至於成為你的負擔 不至於企業走到半路要大幅調整方向,不至於在生命快要結束的時候感到後悔 原文連結 8月2日,第三屆常春藤論壇在北京召開 大會邀請了著名投資人王功權先生分享對年輕人創業的建議 以下為經過編輯的演講實錄。 人的一生,首先要趕上時代的潮流,趕上了就有很大贏的希望 回顧我自己的一生,幾乎每一次有所作為、有所突破,都是因為趕上了大時代中某個關鍵的機會 但年輕人去追趕大潮也有一個問題,就是定了大方向之後依然沒有辦法起步 比如移動互聯網、人工智能是大趨勢,這個人人都能看到 但對年輕人來說最重要的問題是:你能否在大趨勢中找到適合自己的奮鬥方向? 你一定要明白,自己是在什麼狀態下出來創業的,要做一件什麼事情 阿里巴巴上市之前一共拿了 95 億美金,京東拿了 20 億 但不是所有創業者都應該去追求這種規模非常大的創業 更多人創業最後做的其實是應該中型、甚至是小而精緻的企業 人一生的才華、資源、熱情一定要放在自己最感興趣的一件事上,這樣工作才不至於成為你的負擔 不至於企業走到半路要大幅調整方向,不至於在生命快要結束的時候感到後悔 創業者應該去把這件事情找到,如果它是一件規模很大的事情,那就去找大資本 如果不是一件大規模的事情,就去找相適應的團隊和資本 這個過程不應該是反過來的 比如因為大家都在做平台、做互聯網金融,都在拿大筆風投,你也去這麼做 如果你在做的事情不是一種快速成長的模式,即使拿到了一大筆風投,也注定會死亡的 就我這些年的經驗 由於拿的錢、找的團隊和項目本身不契合,而使企業陷入困境甚至死亡的案例至少佔到 30% 這只是保守估計 不同類型的項目,需要不同類型的團隊,拿不同類型的資金 並不是所有項目都需要常青藤畢業的豪華團隊,也並不是所有項目都適合拿風險投資 如果你拿到了風險投資,目標是快速成長到 IPO 階段,那麼創始人需要更加警醒 要注意在每個操作環節都必須規範經營,不能違規、變通,甚至偷稅漏稅,和特權結合 這些都有可能導致企業走向毀滅 這裡我說的不是道德問題,不是法律問題,而是企業的風險問題 曾經有一個創業者告訴我,某企業的老總要把一塊場地以很便宜的價格租給他 條件是在這家創業公司佔股 ...