https://youtu.be/x7DT-gELsUM 不免俗的 趁現在還一月 可以參考國外學霸的人生規劃方法 當作一個指標 不一定要完全照著做 參考看看 打造很棒的2024!!
問題描述: 在testfn函數中,switch imbue的部分會被filestr.imbue(std::cout.getloc());觸發, 接下來理論上會cout, 接著LOG(我自己寫的輸出封裝函數), 但是cout後就離開switch, 觸發流刪除事件了,LOG沒有觸發。 如果先LOG再cout則沒問題, LOG和cout都會被輸出到console。 像這樣,提供出stream.imbue_event非常多的信息。 ``` LOG [enum std::ios_base::event] stream.imbue_event = 1At testfn ,line 00219 imbue_event erase_event ``` 出事代碼 C++ ``` #include <iostream> //std::ios, std::cout, std::cerr, std::clog, std::left #include <iomanip> #include <fstream> // ofstream #include <locale> // std::locale #include <typeinfo> #include <chrono> #include <thread> #include <ctime> #include <sstream> template <typename T> void Log(const char* varName, T var, int line, const char* functionName) { std::stringstream ss; ss << "[" << typeid(var).name() << "] " << varName << " = " << var; std::ios_base::fmtflags originalFlags = std::cout.flags();/*FORMAT FLAG*/\ /*auto now = std::chrono::system_clock::now();*//*TIME*/\ /*std::time_t timestamp = std::chrono::system_clock::to_time_t(now);*//*TIME*/\ /* std::cout << "\nTime taken at Total : " << duration.count() / 1000.0 << " millisecond" << std::endl;*//*TIME*/ std::cout.width(0); std::cout << std::setfill(' ') << std::left << "LOG "\ << std::setw(50) << ss.str()/*TYPE*//*VARIABLE*//*VALUE*/\ << "At " << std::setw(15) << functionName /*FUNCTION*/\ << std::dec << ",line " << std::setw(5) << std::setfill('0') << std::right << line /*LINE*/\ /*<< "File: " << __FILE__ */ /*FILE*/\ /*<< ", Thread ID: " << std::this_thread::get_id() << ", "*//*THREAD*/\ << std::endl; \ std::cout.flags(originalFlags); } //register_callback, imbue_event, erase_event void testfn(std::ios::event ev, std::ios_base& stream, int index) { switch (ev) { case stream.copyfmt_event: std::cout << "copyfmt_event\n"; break; case stream.imbue_event: std::cout << "imbue_event\n"; break; Log("stream.imbue_event", stream.imbue_event, 219, __FUNCTION__); case stream.erase_event: std::cout << "erase_event\n"; break; } } void funcPart6() { /*register_callback*/std::cout << "//---//\n"; std::ofstream filestr; filestr.register_callback(testfn, 0);/*imbue_event*//*erase_event*/ filestr.imbue(std::cout.getloc()); /* * 使用register_callback來設定事件 如 copyfmt_event imbue_event erase_event * filestr.register_callback(testfn, 0); * /* * 筆記: * 試圖複製或複製但是構造了一個 std::basic_ofstream 對象,該類的複製構造函數是被刪除的(deleted)。 * 這是因為 std::basic_ofstream 對象通常代表一個文件流,而文件流的複製構造函數不是允許的, * 因為一個檔案流在複製時可能會引起一些不可預測的行為。在這種情況下,應該避免直接複製 std::basic_ofstream 物件。 */ } ```
正在寫元件測試 很多個元件有用到 pinia 測試的時候,我是希望能提供 initial state、然後可以用 cypress.intercept 替換掉 ajax 回應 根據官方文件,我使用 ``` createTestingPinia({ stubActions: false, }) ``` 結果 action 一直沒有呼叫,研究了好幾個小時 最後發現是,需要提供一個 dummy spy object 才可以 ``` const spy = (action) => action; createTestingPinia({ stubActions: false, createSpy: (action) => spy(action), }) ``` 筆記一下,因為國內外都沒有文章提過,這應該要放在官網說明才對
看到一篇滿好的文章 https://jiongks.name/blog/introducing-zhlint 作者親自寫了一個工具 值得學習
#我要做一個自動解方程 主控臺 --- "Error solving equation: Invalid left hand side of assignment operator = (char 5) Return:a + 27 = 0" --- ```<!DOCTYPE html> <html> <head> <meta name="description" content="math.js | basic usage"> <title>math.js | basic usage</title> <script src="https://unpkg.com/mathjs/lib/browser/math.js"></script> </head> <body> <script> function solveEquation(equationString, variableRange = { start: -10, end: 10, step: 0.1 }) { if (typeof equationString !== 'string') { throw new Error('Equation must be a string'); } const equation = equationString.replace(/\s/g, ''); const variables = equation.match(/[a-zA-Z]+/g); if (!variables) { throw new Error('No variables found in equation'); } const parser = math.parser(); variables.forEach(variable => { parser.evaluate(`${variable} = ${variableRange.start}:${variableRange.step}:${variableRange.end}`); }); let result; try { result = parser.evaluate(equation); } catch (error) { throw new Error('Error solving equation: ' + error.message + "\nReturn:" + equationString); } return result; } const equationString = "a + 27 = 0"; try { const result = solveEquation(equationString); console.log("方程的解为:", result); } catch (error) { console.error(error.message); } </script> </body> </html>
看到一則廣告 https://sites.google.com/view/202201kittencoding-teacher/main 有人去試過嗎 需要賺外快的朋友們可以參考看看喔!
我有一個資料表 大概 15 萬筆資料 其實也沒很多 before ``` $posts = Post::inRandomOrder() ->limit(1000) ->get(); ``` 這樣寫,結果跑起來超慢,然後我改寫 after ``` $posts = Post::orderBy('id', 'desc') ->where('id', '<', rand(1, \DB::table('posts')->max('id'))) ->limit(1000) ->get(); ``` 雖然,這樣就沒有很隨機了,而是從隨機中間點,抽 1000 筆出來 但因為我在產生 sitemap 而已,所以其實可接受 算是 laravel 小小地雷
處理大量資料,會去用 chunk 如果先用 limit 限制數量,再用 chunk 結果 limit 好像會無作用 https://github.com/laravel/ideas/issues/103 https://github.com/laravel/framework/issues/9649
轉職前端系列,我發現完成系列一~九就差不多了,後面非必要 為避免誤解,我乾脆把原本的十、十一移到現役前端系列 並且改名為 `後端 JS 訓練(一)` 與 `後端 JS 訓練(二)` 另外,因為現役前端系列,目前內容不多 我就先把現役前端系列的內容,都先設為免費 以上更新,簡單公告~
家裡有一台 2018 年的 asus 舊筆電 硬碟大概有 100GB 的閒置空間 剛好最近家裡 中華電信網路升級,想說來用出租硬碟 挖挖看 storj 幣 --- https://www.storj.io/host-a-node 跟著步驟跑 在 `Generate node identity` 這步驟 發現他會狂跑CPU 直到算出一個難度為 36 以上的 key 為止 我筆電大概算到 33 就算不出來了,後面算很久都還是 33 要算到 36 恐怕要一星期吧 --- 上網查了一下報酬 https://www.reddit.com/r/storj/comments/17uk8er/is_it_worth_starting/ 看起來大家都是用 10 - 40 TB 左右的硬碟出租,每個月報酬 10 - 30 美元左右 這個報酬顯然很不划算,可能連電費都付不了? 我就中止嘗試了 分散式的硬碟雲端儲存,所謂的 web3 應用,還要再等等
最近幫客戶研究 ab testing,目前找到最適合的服務是 GrowthBook 在研究這服務的時候,找到介紹文章 https://news.ycombinator.com/item?id=30515940 > Developers often launch a feature without understanding the impact it has on their users and business. This is a big deal, because only 1/3 of product launches actually improve the desired metrics. Of the rest, 1/3 have no effect, and the last 1/3 actually hurt [1]. The best way to measure this is to use feature flags and controlled experiments (A/B tests). 翻譯起來就是 > 開發人員經常在不了解其對用戶和業務的影響的情況下推出一項功能。這是一件大事,因為只有1/3 的產品發布實際上改善了所需的指標。其餘的1/3 沒有效果,而最後 1/3 實際上會造成傷害 [1]。衡量這一點的最佳方法是使用功能標誌和受控實驗(A/B 測試)。 最近覺得這確實滿重要的,如果可以很方便地導入 ab 測試,容易使用、容易查看,那的確值得多多觀察、輔助決策 我也許會找時間寫一款基本的 ab 測試套件,給 laravel 社群使用~
哈囉大家好,我加入這平台有九個多月,後來神隱一段時間,趁現在的我有空閒時間,趕緊與大家分享我的轉職之路。 神隱的這段時間想當然是成功轉職,跑去上班,才有辦法與大家分享我的轉職心得XDD。開始上班後,因為有太多東西都是第一次接觸到,忙得不可開交,所以拖到現在才上來分享,抱歉><" ! 那麼就進入正文吧! 我大學是有接觸過程式的經驗的,正確來說,應該是這科系本來就會接觸到( C、C++、Java、Python等),但因為學校的特殊性,也有碰到硬體,當時我是比較傾向於硬體,所以程式沒甚麼太專研,成績有過就好,後來畢業後也是從事硬體職位,程式幾乎只記得超基礎的東西。後來的職涯目標轉變,所以重新開始寫程式,跟別人不太一樣的地方大概就是有一點程式的基礎,但我也沒接觸過網頁,所以是從大概距離起跑點十的位置前進吧 ? 哈哈哈 ~ 確定目標後就果斷離職,離職後開始全力進修學網頁(3月開始),也設定了進度: 三月 ~ 六月 : 學會HTML、 CSS、JS最基本語法。 六月 : 開始準備履歷作品、學 Vue 及投履歷 七月 : 邊面試、邊修履歷及作品 八月 : 開始上班。 一開始在找資源時,因緣際會下,發現到這平台,就跟著站長的那些課程進度走。我就真的只有上站長這裡的課程,完全沒去其他地方,例如udemy、Hahow 好學校等。沒錯......因為我想省錢,當時是想說先上看看,真的不行再去買那些課程,結果就一路到現在都還沒買其他課程......。 跟了這平台的課程後,也認識到了一些學習前端的免費資源,像是W3Schools等,所以雖然是跟著進度上,但我是搭配著上。甚麼意思呢 ? 舉例來說,在學HTML時,站長在文內可能只說學第幾個(A)跟第幾個(B)即可完成這作業,但在W3Schools,A跟B之間可能還有其他的部分,所以我是照W3Schools裡的HTML的順序學下來,學到課程內要學的A跟B,就先去完成作業,再接下去學。因為也有提供中文的W3Schools,所以也是這樣喔 ! 寫過的就當作複習,加深印象,打好基礎~ 而在自學中,最難的事之一就是自律這件事,所以我每天都一定強迫自己最晚十點到圖書館,午休一個小時,因為有找個兼職,要維持生活開銷,所以到六點就會離開圖書館。除了休息那一個小時外,我都是在學習,沒有中途玩手機還是做其他事喔 ! (有時覺得用眼過度,抬頭看窗外,那不到三分鐘的事不算~),一周有六天都是如此,禮拜天就會給自己放鬆一下,只到下午兩、三點。 一直這狀態直到六月,開始準備作品,當時也是爬文、看別人都是怎麼準備、展示自己的作品的,就發現大多的人都會做個人網頁。而要怎麼做個人網頁呢?就繼續爬爬爬...,就認識到GitHub有提供GitHub Pages,能把自己的作品上傳到這後,別人就可以看到你的作品。真的是非常方便,而且又是免費的阿 ! 剛好課程也有教到Git指令,所以就架了一個自己的履歷網頁~ 準備得差不多後,就照著站長建議的,把工作經驗一年以下、無經驗的、可以應屆畢業生(雖然我不是),全都投了一遍,只留自己夢想公司,這樣就能先累積面試經驗,並依面試得到的反應去修改自己的作品,再最後投夢想公司。能投得都投後,就開始照課程學框架Vue,若有做出作品就隨時更新到我的個人履歷網頁上。 面試時,大多都是看履歷問問題,有些有筆試,但都是像網路上大家說的那樣,前端必學觀念,沒遇過上機coding的。有些有手寫code,通常只有1-2題,印象中,有個題目是要你把字串反過來,怎麼寫 ? 只要把網路上大家說的必考題目弄熟,基本沒有太大問題。 而個人面試時有遇到的幾個問題,第一個是作品有點陽春Q,本身也沒有UI/UX的經驗等,所以是這職位轉過來的在這點上就會很加分呢 ! 我只能靠時間一點點的累積、培養了QQ。再來就是很常被問自學的困難點,又加上我只在這平台學習(雖然他們不知道),但我認為最重要的還是有沒有決心想學前端,如果有就一定會去找資源,遇到問題,也不會那麼容易就挫折、放棄,畢竟已經下定決心自學的人都早就帶有這覺悟了吧 ? 就像在學Vue時,可能在這課程學到的不完善,但我認為這裏只是給一個學習的方向,那麼就可以朝這方向去找更多資訊,也能知道哪邊需要在著重釐清概念,就可以去看這部分的影片! 之後,運氣非常好的收到幾個offer,並在八月如預期開始上班,真是太開心了( 灑花~ 最後就說一些建議,雖然還是菜鳥,但應該可以多少能給一些方向 ? 這些建議是,若我今天還沒開始上班,我還會做甚麼事,大家就當作參考吧~ 假如我能帶著上班後遇到問題的記憶回到還沒就職時,我會: 1. 把JS基礎打好,多找題目做! 2. (假如學的框架是Vue),慢慢開始從API換成CLI,並多做作品,熟悉框架物件等等之間的傳遞。 3. 認識更多套件,並學會使用,可以的話套看看在框架上,並把每個套件組合成一個流暢性的作品。 4. Code Review : 會打程式固然重要,但專案的架構、流程設計的好,真是輕鬆一半,也會更清楚程式間是如何傳遞的! 5. 課程的每個作業能把它做到最好就做到最好~ 就先大概這樣吧,真的是有太多東西等著我去學,希望未來的我不要菜味這麼重,也能為大家提出更實質性的建議或幫助,不管是自學的還是轉職的,大家一起加油吧 ! ( 我可能又會神隱一段時間,但有時間,一定會繼續完成站長的課程 & 與大家分享工作心得的 !
看到一篇文章 提到 trunk based development 以及 feature flag 的使用 我在想 好像還可以搭配 ab testing 進行 https://koenvangilst.nl/blog/trunkbased-development 分享跟大家參考
來,讓我們特別關心轉職成功、上班大約半年的 @birdie2019 @JoeyLai 最近有學到新東西? 是否變得越來越有自信? 該不會想要跳槽去別間公司了吧? 隨時歡迎上來分享工作筆記 or 上來發問卡關問題~
正在評估幫一組開發團隊導入新工具 方便寫技術文件 管理技術債 也進行內部知識管理 我發現三大 git hosting 都有 pages 功能 其中 github 跟 gitlab 的 pages 可以限定權限瀏覽 https://docs.github.com/en/enterprise-cloud@latest/pages/getting-started-with-github-pages/changing-the-visibility-of-your-github-pages-site https://docs.gitlab.com/ee/user/project/pages/pages_access_control.html 可是 bitbucket 就沒有這個功能 https://jira.atlassian.com/browse/BCLOUD-9491 真的覺得 bitbucket 在這方面還是有點落後 --- 除此之外 gitbook 也是不錯的選擇 不過團隊版要另外付錢 https://www.gitbook.com/solutions/internal-knowledge-base
遇到一個有趣的問題 我開發的某組 API 多位用戶回報不能使用 使用 `fetch()` 可以執行 但使用 `axios.get()` 就不能執行 會被 CloudFlare 報 403 錯誤擋住 我估計是發出的 http request headers 內容有差異 暫時不研究差異何在 # 解決方法如下 Security -> WAF -> Custome rules -> Create rule If incoming requests match… `URI Path` 在 value 輸入 API 相對網址 WAF components to skip 只要勾選 `All Super Bot Fight Mode Rules` Deploy 之後問題就解決了!
我最近使用dev tool來觀察網站的fetch 因為網頁上是動態抓取資料 在顯示內容 我使用檢查的功能 直接複製POST ![](https://i.imgur.com/KszbS1h.png) 再丟出去 照理說這是相同的request 應該也要得到response 結果卻失敗惹 拿回來的preview是空的 ![](https://i.imgur.com/o6568r6.png) 重新整理了幾次 發現網頁丟出的request都能得到回應 不知道為何 我使用複製卻不能重現? preload的內容都一樣才對呀? 以上請教各位前輩
歡迎最近新註冊的用戶 @fanjunran @hygge54812 @prince811009 @frog0708 @wiyoy24437 @nieh099 @sindy1280 歡迎在留言處簡單自介一下~ 可以說一下從哪邊發現這論壇的~最近在學什麼東西~或者是關於你的一件小趣事~ 也請大家多多回覆別人的留言,問別人小問題,或者回個「嗨嗨 👋」都很好~ **歡迎各位加入這個技術成長社群!**
請問各位先進或是其他同學 使用jsfiddle練習 會不會出現以下情況 這個網頁無法正常運作jsfiddle.net 將您重新導向的次數過多。 試試看清除 Cookie. ERR_TOO_MANY_REDIRECTS 有清除Cookie. 結果只能開個一兩次網頁就掛了 後來使用無痕模式就正常了 但這個有其他解法嗎
歡迎最近新註冊的用戶 @Kenjiwuuu @ck1040308 @cony991 @MollyLin @sungcowcow @kelo @macweather 歡迎在留言處簡單自介一下~ 可以說一下從哪邊發現這論壇的~最近在學什麼東西~或者是關於你的一件小趣事~ 也請大家多多回覆別人的留言,問別人小問題,或者回個「嗨嗨 👋」都很好~ **歡迎各位加入這個技術成長社群!**
你的轉職路上,還缺少一份自學作業包!寫完這幾包,直接拿作品去面試上班!
本論壇另有附設一個 LINE 新手發問&交流群組!歡迎加入討論!