亚洲色成人网站www永久,亚洲欧美人成视频一区在线,亚洲国产成人高清在线观看,亚洲精品久久久久久动漫,亚洲国产精品久久电影欧美

數(shù)據(jù)專欄

智能大數(shù)據(jù)搬運(yùn)工,你想要的我們都有

科技資訊

科技學(xué)院

科技百科

科技書籍

網(wǎng)站大全

軟件大全

我覺得每個(gè)人都有過想寫日記的沖動(dòng),但是大部分人又會(huì)因?yàn)樾枰ㄙM(fèi)過多的時(shí)間和精力而勸退。那么這部分人要怎么記錄生活呢? 對(duì)此,我寫了一個(gè)應(yīng)用,每天只需要語音回答幾個(gè)問題就足夠記錄每天的日常。 鏈接: https://apps.apple.com/app/%E8%87%AA%E9%97%AE%E7%AD%94-%E8%AF%AD%E9%9F%B3%E8%AF%86%E5%88%AB%E6%97%A5%E8%AE%B0/id1517295263 有興趣的朋友可以試試,完全免費(fèi)!
前沿探索
2020-08-21 08:28:51
? ?
Cloudopt Next 是一個(gè)非常輕量級(jí)且現(xiàn)代的、基于 Kotlin 編寫的全棧開發(fā)框架,同時(shí)支持 Java 和 Kotlin,您可以處理 Url 的解析,數(shù)據(jù)的封裝,Json 的輸出等等,從根本上減少開發(fā)時(shí)間、提升開發(fā)體驗(yàn)。
Cloudopt Next 主要擁有以下特點(diǎn): 簡(jiǎn)單 極簡(jiǎn)設(shè)計(jì),幾乎不要任何配置,不依賴 Tomcat 、Jetty 等 Web 容器。 異步 基于 vertx 輕松實(shí)現(xiàn)高性能的異步服務(wù)。 擴(kuò)展 支持 vertx 體系的各種組件,同時(shí)支持通過插件擴(kuò)展功能,官方也提供了大量好用的插件。 中文 全中文文檔、中文社區(qū),幫助中文開發(fā)者快速上手。
GitHub:
開源中國(guó):
性能
測(cè)試電腦的 CPU 是 2.2 GHz 六核 Intel Core i7,內(nèi)存為 16 GB 2400 MHz DDR4 。
吞吐量參數(shù)為用戶數(shù) 10,循環(huán) 10000 次。
| 框架名稱 | 吞吐量 | | --- | :---: | | Cloudopt Next | 20267.5/sec | | Spring Boot | 10698.2/sec | | Flask | 440.8/sec |
根據(jù)性能測(cè)試結(jié)果:Cloudopt Next 的性能是 Flask 的 50 倍,是 Spring Boot 的兩倍。
示例
您可以通過訪問 Cloudopt Next 的官網(wǎng) 來查看文檔,也可以前往 Example 查看簡(jiǎn)單的示例。
路由
讓我們來看看一個(gè)簡(jiǎn)單的基于 Cloudopt Next 的路由: @API("/") class IndexController : Resource() { @GET fun get(){ renderHtml(view = "index") } } @API(value = "/") public class IndexController extends Resource { @GET public void get(){ View v = new View(); v.setView("index"); renderHtml(v); } }
啟動(dòng) fun main(args: Array) { NextServer.run() } public static void main(String args[]) { NextServer.run(); }
WebSocket @WebSocket("/websocket") class WebSocketController : WebSocketResource { override fun handler(userWebSocketConnection: ServerWebSocket) { println("Connected!") userWebSocketConnection.writeTextMessage("Hello World") userWebSocketConnection.frameHandler { frame -> println(frame.textData()) } } }
SockJS @SocketJS("/socket/api/*") class SocketController : SocketJSResource { override fun handler(userSocketConnection: SockJSSocket) { println(userSocketConnection) userSocketConnection.handler {message-> println(message) userSocketConnection.write("Hello world!") } } }
插件 fun main(args: Array) { NextServer.addPlugin(TestPlugin()) NextServer.addPlugin(EventPlugin()) NextServer.run() }
尋求幫助
在使用 Cloudopt Next 的過程中遇到了問題?您可以通過下面途徑尋求幫助: 請(qǐng)關(guān)注我們的 推特 ,以便獲得最新的信息。 請(qǐng)仔細(xì)檢查 參考文檔 ,查看具體的代碼案例或者是常見問題。 如果您在升級(jí)版本以后遇到問題,可以查看 Wiki 中的升級(jí)說明。 請(qǐng)發(fā)送郵件到 support @cloudopt.net 請(qǐng)?jiān)?GitHub 發(fā)送 Issue 提交您的問題,我們將盡快為您解答。 如果您在中國(guó),還可以加入交流 QQ 群:557692142 。
前沿探索
2020-08-21 08:28:39
地址: Netlify
GitHub: https://github.com/jwenjian/parent-style-social-profile
首頁動(dòng)畫用的 animate.css
前沿探索
2020-08-21 08:28:34
前言
由于 typecho 的 win95 主題作者并沒有寫 閱讀統(tǒng)計(jì)、頁面評(píng)論、和頁面分頁 /分享功能 ,這對(duì)于一個(gè)喜歡這個(gè)懷舊主題的我實(shí)在難以接受,所以在原版的基礎(chǔ)上加上了這些功能。
地址
Go To Github
結(jié)語
給那些喜歡這個(gè)主題的人用吧,應(yīng)該不止我一個(gè)人吧。希望給個(gè) star !
前沿探索
2020-08-21 08:28:29
想到每個(gè)月的公司報(bào)銷日,都是我最難的一天??,因?yàn)橐砀鞣N發(fā)票還要和財(cái)務(wù)扯皮。
先要從郵箱把之前開過的發(fā)票一個(gè)個(gè)下載到本地并且整理好,然后把每張發(fā)票的信息手動(dòng)錄入到用于報(bào)銷的 Excel 表格,最后財(cái)務(wù)還要核驗(yàn)下發(fā)票是不是有效的。整個(gè)過程其實(shí)是特別消耗時(shí)間、精力(比寫代碼還累。。。),如果上面這些步驟能有一個(gè)工具幫我自動(dòng)完成的話,真能省不少事。
這樣一個(gè)工具(暫時(shí)稱為「發(fā)票助手」)有這些下面功能點(diǎn): 注冊(cè)后,「發(fā)票助手」會(huì)給你一個(gè)郵箱地址,你每次開發(fā)票時(shí),將郵箱地址填為這個(gè)。 當(dāng)「發(fā)票助手」檢測(cè)到你收到新發(fā)票后,會(huì)自動(dòng)識(shí)別發(fā)票的內(nèi)容(發(fā)票代碼、發(fā)票號(hào)碼、開票日期、發(fā)票金額等等)并且為你整理好,同時(shí)幫你查驗(yàn)發(fā)票是否有效。 可以通過「發(fā)票助手」看到所有為你整理好的發(fā)票,選擇批量導(dǎo)出后,「發(fā)票助手」會(huì)為你自動(dòng)生成 Excel 表格(里面包含了所有報(bào)銷需要用到的數(shù)據(jù)),然后把這些發(fā)票打包好方便你批量打印或轉(zhuǎn)發(fā)給財(cái)務(wù)。
大伙們覺得這個(gè)想法咋樣,有這樣一個(gè)工具你們會(huì)用么?
前沿探索
2020-08-21 08:28:23
簡(jiǎn)單粗暴的導(dǎo)航頁面,愛點(diǎn)外賣的友友們可以先領(lǐng)紅包再點(diǎn)外賣,省一塊兩塊也是愛啊。有好的建議,請(qǐng)留言,謝謝! 對(duì)開發(fā)小程序感興趣的同仁們也可以加我微信 phpcoder666 一起交流搞事情
前沿探索
2020-08-21 08:28:15
維護(hù)了很久的一個(gè) Alfred workflow : https://github.com/wensonsmith/YoudaoTranslate
生了娃拖了好久沒處理 issue,今天處理了一下,重大更新當(dāng)然是加了二維碼。??
看看能不能收到孩子的奶粉錢,哈哈哈
前沿探索
2020-08-21 08:28:08
拓?fù)渑判邪?https://the.top
本來我只是隨便玩玩,沒想到后來不斷改進(jìn)成了現(xiàn)在這個(gè)樣子。
剛開始的時(shí)候就幾個(gè)節(jié)點(diǎn),后來慢慢增加到了現(xiàn)在大約快 200 個(gè)節(jié)點(diǎn),爬蟲代碼也寫了一千行(不算調(diào)度與雜項(xiàng)), 這些節(jié)點(diǎn)根據(jù)多方面考量,大致分為 五分鐘、一刻鐘、一個(gè)小時(shí)、三個(gè)小時(shí)、六個(gè)小時(shí)、十二個(gè)小時(shí)、二十四個(gè)小時(shí)等不同的定時(shí)爬取等級(jí)。
為什么放出 api ?
有利益考量,也有發(fā)電情懷。 有不少人需要,一些導(dǎo)航網(wǎng)站或者自己博客,甚至是自己練手寫著玩。再寫一些爬蟲,學(xué)習(xí)成本高。 激勵(lì)自己維護(hù)節(jié)點(diǎn),由于這些節(jié)點(diǎn)都是我一個(gè)人寫的,所有導(dǎo)致一些節(jié)點(diǎn)出現(xiàn)了問題不能及時(shí)發(fā)現(xiàn),希望各位在使用過程中能夠及時(shí)的將問題反饋到群中。 提高知名度, 希望使用者在使用的過程中掛上友情鏈接,或者注明來源。 節(jié)省服務(wù)器帶寬,已經(jīng)有一部分人開始直接爬取 the.top ,不如直接放出 api 。
如何使用 API ? 查詢所有節(jié)點(diǎn)相關(guān)信息
節(jié)點(diǎn)分為大節(jié)點(diǎn)和小節(jié)點(diǎn),拿知乎來舉例子,知乎是個(gè)大節(jié)點(diǎn),知乎子板塊比如全站熱搜、科學(xué)板塊熱搜、運(yùn)動(dòng)板塊熱搜,這些就是小節(jié)點(diǎn)。
API 地址: https://the.top/nodes
如下圖:
根據(jù)節(jié)點(diǎn)取信息
假如你想取知乎 最熱門的討論: API 地址: https://the.top/v1/節(jié)點(diǎn)名稱 /第幾頁 /每頁多少數(shù)據(jù)
那你就該訪問: https://the.top/v1/zhihu_total/1/20
返回如下格式數(shù)據(jù):
其中 pages 就是 總頁面數(shù),count 就是你獲取的條數(shù),data 里面的每一個(gè)成員都是一條新聞,包含了標(biāo)題、鏈接、熱度等信息。
知乎實(shí)時(shí)熱搜數(shù)據(jù)大約 50 條,如果你取每頁 50 條數(shù)據(jù),那么返回的 pages 就會(huì)為 1
關(guān)于穩(wěn)定性:
自己寫的爬蟲,還算挺穩(wěn)定的,除了個(gè)別偷懶的節(jié)點(diǎn),主流節(jié)點(diǎn)自從我寫完以后基本沒有出過問題。
使用交流及反饋交流群:
QQ 群:114177
如果你有好的節(jié)點(diǎn)分享, 我也會(huì)考慮寫一個(gè)對(duì)應(yīng)的爬蟲。 謝謝。
前沿探索
2020-08-21 08:28:03
雖然已經(jīng) 3 年了,但是流量一直在 1000 左右- -。一直在虧本運(yùn)營(yíng)。算是個(gè)愛好吧~~收集一些美圖~~~分享給大家~~ www.obzhi.com 歡迎大家圍觀~ 還有關(guān)注下我公眾號(hào)可以么- -! 420 個(gè)粉絲了 還差 80 個(gè) 可以開廣告,我想試試開起來什么亞子~ 公眾號(hào)叫: 高清壁紙站 也可以直接掃碼~ http://www.obzhi.com/wp-content/uploads/2018/08/qrcode_for_gh_1a0c3a514ed6_258.jpg
前沿探索
2020-08-21 08:27:56
MacOS 平臺(tái)上的應(yīng)用程序還是比較齊全的,像有些 Linux 軟件不提供 Windows 包、有些 Windows 軟件不提供 Linux 包,但基本都會(huì)提供 MacOS 的包。
不過有時(shí)候需要用 PC 來處理一些工作上的事情,需要用的軟件不能全都很好地在 Windows 或 Linux 上運(yùn)行,用 VirtualBox 、VMWare 等虛擬機(jī)仍然難以達(dá)到像 MacOS 在統(tǒng)一平臺(tái)上使用所帶來的便捷性。
了解到很多人認(rèn)為 VS Code 的 WSL 擴(kuò)展功能非常實(shí)用,以至于一些人去給 JetBrains 提建議 讓 IDEA 也有類似的 WSL 擴(kuò)展能力,但顯然這個(gè)功能短期內(nèi)不會(huì)出現(xiàn)。
我想起 Linux 中的 X 是可以走網(wǎng)絡(luò)的,所以就像看看能否在 Windows 中跑 X Server 、在 WSL 中跑 X 應(yīng)用程序,然后實(shí)現(xiàn)從 Windows 上直接顯示 WSL 中 GUI 程序的界面。
一開始我用了 Xming 來作為 X Server,但后來這個(gè)軟件要求必須贊助才能下載,所以我換了 Cygwin 里的 xlaunch,這玩意用起來、看起來和 Xming 完全一樣(我懷疑哪個(gè)才是原版),甚至依靠 Cygwin 背書感覺更靠譜。
基本思路是: 在 Windows 中運(yùn)行 X Server 。 在 WSL 中安裝一個(gè)終端模擬器(我用的是 Terminator )。 在 WSL 中使用 Windows 的 X Server 地址來啟動(dòng)終端模擬器,于是就看到 Widnows 中顯示出了這個(gè)終端模擬器的界面。 在 WSL 中安裝一個(gè)支持 X 的、帶有 GUI 的軟件(比如基于 Java 的 IDEA )。 從步驟 3 顯示出的終端模擬器里像在 Linux 發(fā)行版里一樣啟動(dòng)這個(gè) GUI 軟件。最終在 Windows 上看到這個(gè) GUI 。
經(jīng)驗(yàn)證完全可行,顯示正常,無卡頓,而且打開的 GUI 界面能很好響應(yīng) Windows 中拖拽到左右邊填充左右半邊和拖拽到上邊最大化的手勢(shì)。
我調(diào)好了 xlaunch 的配置、寫了啟動(dòng)腳本、配置了快捷方式,能夠?qū)崿F(xiàn)在 Windows 里雙擊快捷方式直接打開 WSL 里的終端模擬器,以及在終端模擬器里運(yùn)行任何 GUI 程序都直接在 Windows 里顯示。把相關(guān)配置和使用方法發(fā)到了 GitHub 上,歡迎提 Issue 和 PR 。
前沿探索
2020-08-21 08:27:51
一款基于豆瓣電影 Api 使用 Flutter 開發(fā)的移動(dòng)端應(yīng)用。 Flutter: Channel stable, v1.17.5 運(yùn)行環(huán)境:iOS 8.0 或以上(暫未適配 Android ) 項(xiàng)目地址
更新 默認(rèn)語言改為簡(jiǎn)體中文 支持分享功能 支持分享功能 修復(fù)視頻播放 Bug 簡(jiǎn)化側(cè)邊欄
預(yù)覽 日間模式
夜間模式
依賴庫 flutter_i18n cached_network_image dio cupertino_icons provider package_info shimmer webview_flutter fluro font_awesome_flutter pull_to_refresh fluttertoast shared_preferences palette_generator photo_view video_player chewie share
其他作品 macOS HostsToolforMac :一款輕量級(jí)本地 hosts 更新工具 LunarCalendar :一款簡(jiǎn)潔的日歷、時(shí)間顯示工具 Hackintosh MSI B360M MORTAR :一套基于微星 B360M 迫擊炮主板的黑蘋果配置及 EFI
前沿探索
2020-08-21 08:27:44
制作 VS Code 虛擬二次元插件 Demo,讓虛擬人物陪著你寫稿,會(huì)暖心提醒跟拍馬屁。演示鏈接:https://www.bilibili.com/video/BV1NT4y177r1 代碼開源: https://github.com/gdxz123/vscode_extension_kaguya
前沿探索
2020-08-21 08:27:40
今天下午想學(xué)習(xí)一下 VUE,就做了個(gè)這個(gè),給 V 友們康康,有用就用~
代碼可能比較丑陋,歡迎大佬提提建議啊,我是個(gè)文科菜雞 QAQ ?? 立即使用!
特性 使用特定行數(shù)和列數(shù)生成 KaTex 兼容代碼 目標(biāo)表格的實(shí)時(shí)預(yù)覽 表頭自定義選項(xiàng)
截圖 界面:
Notion 效果:
捐贈(zèng)
衷心感謝您的幫助。 ??
依賴 Vue KaTex
查看更多信息?你可能想看看 作者的博客 .
由 GitHub 托管。
前沿探索
2020-08-21 08:27:31
歷經(jīng)一年的時(shí)間,我重構(gòu)了 kotomi-ui 庫,并提煉出來組件的一些問題。最終完了這個(gè) UI 庫。
包含以下的功能。
表格 無限滾動(dòng) 高級(jí)查詢 多列排序 多列分組 虛擬滾動(dòng)
等等, 還有很多很多功能,大家可以在 https://github.com/jhoneybee/rwpjs 這里查看到。
Q: 為什么要采取 AGPLv3 這種不友好的開源協(xié)議? A: 因?yàn)槲蚁肭★垺?( /ω\ )
地址: https://rwpjs.vercel.app/ 網(wǎng)站 https://github.com/jhoneybee/rwpjs 源碼
看看能不能騙個(gè)贊 [doge]
前沿探索
2020-08-21 08:27:25
昨天發(fā)了個(gè)基金的,今天把股票加上,順便發(fā)在市場(chǎng)
小韭菜,在這種時(shí)候更需要緊盯盤??!
源碼和使用說明: github 地址
插件地址

前沿探索
2020-08-21 08:27:20
背景
剛學(xué)不久 Ruby 的小成果,分享一個(gè)寫腦圖的 DSL
Gems 上看了一些,DSL 不夠簡(jiǎn)單。直接用 Graphviz 或者用 Ruby 接入的接口,都略顯復(fù)雜。
借鑒了 PlantUML 對(duì) mindmap 的 DSL 語法。 語法簡(jiǎn)單,迅速表達(dá)。
地址
Github: https://github.com/Mark24Code/mini_mindmap
Gem: https://gems.ruby-china.com/gems/mini_mindmap
DSL require "mini_mindmap" name = 'mindmap' # filename output = { format: 'png', dir: "#{Dir.home}/mindmap" # output dir } # online dsl = %Q{ * MiniMindmap ** name ** DSL ** output *** dir *** format } demo = MiniMindmap::Mindmap.new(name,dsl,output) demo.export # export files to dir
輸出
前沿探索
2020-08-21 08:27:10
題主是南方人,不少前、后鼻音的漢字分不太清楚,所以做了這個(gè)小程序。沒事時(shí)就跟著練練發(fā)發(fā)音,發(fā)現(xiàn)確實(shí)有進(jìn)步。
前沿探索
2020-08-21 08:27:05
目前僅支持 iOS 端,下載地址: https://apps.apple.com/cn/app/id1521979672
懶貓存錢的產(chǎn)品來源
老婆懷孕,打算開始存奶粉錢,所以就想著 開發(fā)一款簡(jiǎn)單的存錢類 App ,簡(jiǎn)單的構(gòu)思之后很快納入了我的開發(fā)計(jì)劃,存錢功能基本寫完的時(shí)候想到了記賬功能, 因?yàn)榇驽X和記賬是相輔相成的,有的人存錢就是從記賬開始,所以順便把記賬功能也做上了 。
生活中很多人都想過存錢和記賬, 有時(shí)候記賬的目的是為了存錢,存錢的目的是為了更好地生活和享受人生,但你是否能為自己的存錢目標(biāo)或計(jì)劃而堅(jiān)持下去 。
懶貓存錢內(nèi)置 6 種存錢模式幫你更有計(jì)劃的存錢,同時(shí)還精心設(shè)計(jì)了超有愛的記賬模式 ,從此存錢、記賬兩不誤。
懶貓存錢有哪些具體的功能?
懶貓存錢支持 6 種存錢模式 ,比如: 365 天存錢法 52 周存錢法 12 存單 定額存錢法 自由存錢法 彈性存錢法
根據(jù)自己的存錢需求自由選擇,自動(dòng)計(jì)算每天要存入的金額,讓你更有計(jì)劃的堅(jiān)持存錢 。
記賬模式:內(nèi)置 9 個(gè)賬本,支出、收入、賬本、分類自由定義 ,快速記賬和查看每天的記賬信息。
記賬統(tǒng)計(jì):按周 /月 /年, 折線圖 / 柱狀圖 一目了然查看近期的記賬數(shù)據(jù) 。
記賬詳情:當(dāng)前記賬信息置頂, 自動(dòng)查詢當(dāng)天所有的記賬數(shù)據(jù) 。
賬本 /分類管理:可修改內(nèi)置賬本, 可自定義添加賬本 ,可修改支出、收入的分類, 可自定義添加支出、收入的分類 。
貨幣單位: 支持 10 種常見的貨幣單位,自由切換自動(dòng)計(jì)算 。
自定義底部欄: 存錢、記賬底部欄可互換位置 。
隱私保護(hù): 密碼鎖定,保護(hù)你的私密存錢 /記賬數(shù)據(jù) 。
懶貓存錢使用簡(jiǎn)潔的設(shè)計(jì)和功能,讓存錢和記賬變得從未如此簡(jiǎn)單,目前是第一個(gè)版本 1.0 剛上線, 可能會(huì)存在一些小 Bug,后續(xù)的版本迭代都會(huì)一一解決更加完善,希望得到你的支持 。
原文地址
前沿探索
2020-08-21 08:27:00
之前 分享了一款自己用 Go 寫的游戲加速器 IkaGo ,但是我也在文章中多次提到, 加速器最重要的是線路而不是技術(shù) 。為了能更好的利用好手上的一些優(yōu)質(zhì)的眾所周知的 SOCKS 代理,我又開發(fā)了一款加速器(或者說,半個(gè)加速器)……
pcap2socks
pcap2socks 是一個(gè)以 Rust 語言撰寫的,通過 pcap 重定向流量到 SOCKS 代理的代理。
效果圖(圖一樂,具體效果還得看線路):
特性 將 TCP/UDP 流量重定向到 SOCKS 代理 利用了代理 ARP 應(yīng)答指定 IP 地址的請(qǐng)求,實(shí)現(xiàn)將自身作為網(wǎng)關(guān)處理來自指定 IP 地址的網(wǎng)絡(luò)流量(也就是類似市面上的加速器,將主機(jī)的 IP 地址與網(wǎng)關(guān)設(shè)為網(wǎng)絡(luò)環(huán)境中不存在的值,由加速器來處理流量) 跨平臺(tái)、Full Cone NAT 、開源……
如何使用 pcap2socks -s <需要代理的設(shè)備的 IP 地址> -p <需要代理的設(shè)備上所填寫的網(wǎng)關(guān)> -d // 比如 Nintendo Switch 的 IP 地址填寫為 10.6.0.1,網(wǎng)關(guān)填寫為 10.6.0.2,自己的 SOCKS 代理在 127.0.0.1:1080,那么 pcap2socks -s 10.6.0.1 -p 10.6.0.2 -d 127.0.0.1:1080
與市面上的加速器的比較 免費(fèi)(可以利用各位自己搭建或購買的那些眾所周知的服務(wù))、啟動(dòng)快、無廣告、跨平臺(tái)、設(shè)置可自定義、開源……
一些不得不提的話
pcap2socks 的實(shí)現(xiàn)相較 IkaGo 簡(jiǎn)單得多,也復(fù)雜得多。簡(jiǎn)單在略去了很多功能的實(shí)現(xiàn),如代理、多路復(fù)用、監(jiān)控網(wǎng)絡(luò)流量等(以后可能會(huì)加回一部分),復(fù)雜在實(shí)現(xiàn)轉(zhuǎn)發(fā) TCP/UDP 到 SOCKS 的過程實(shí)際上是實(shí)現(xiàn)了一遍 TCP/UDP 棧,以及 Rust 函數(shù)式編程的編程范型與復(fù)雜的語法。開發(fā)的全過程也算是復(fù)習(xí)了一遍計(jì)算機(jī)網(wǎng)絡(luò),同時(shí)把自己的編程思想給更新了……
pcap2socks 相較 IkaGo 在體量上也小很多,使用其它軟件實(shí)現(xiàn)的代理也就不需要在服務(wù)器上部署 pcap2socks 的服務(wù)端。而且 pcap2socks 只是充當(dāng)被代理設(shè)備的流量到 SOCKS 流量轉(zhuǎn)換的角色,因此在代理的下方也可以接各種各樣不同的服務(wù),無論是 Udp2raw-tunnel,還是 kcptun,相較 IkaGo 也多了份自由。
因?yàn)闆]有 macOS 的設(shè)備,而 WSL 上的 Linux 無法使用 pcap,因此目前僅在 Windows 上測(cè)試通過(理論上各平臺(tái)適用)。
項(xiàng)目地址 pcap2socks https://github.com/zhxie/pcap2socks
希望 pcap2socks 也能幫助到需要解決聯(lián)機(jī)游戲問題的你 ??
前沿探索
2020-08-21 08:26:54
目前主要有日歷功能,后面逐步添加任務(wù)、提醒、備忘、倒計(jì)時(shí)等關(guān)于時(shí)間,時(shí)間管理方面的功能,目前還在開發(fā)中,名字叫生命不息,求一個(gè)更好的名字,采用了的話給你買杯咖啡或奶茶吧 ~.~
前沿探索
2020-08-21 08:26:47
字幕醬是一款在線懶人語音視頻生成字幕、字幕格式轉(zhuǎn)換、字幕翻譯的線上工具。體驗(yàn)地址: https://www.zimujiang.com/?utm_source=v2ex 主要功能 1.支持常見 flac,opus,mp3,m4a,wav,mp4 格式音視頻自動(dòng)生成字幕 2.支持中英日韓德法等語種 3.支持輕量級(jí)字幕在線批量?jī)?yōu)化修正功能 4.支持字幕在線翻譯,制作雙語字幕 5.支持常見 SRT,STL,SCC,XML,ASS 格式互相轉(zhuǎn)換 目前 1 分鐘內(nèi)短視頻免費(fèi),抖音快手足夠用。 隨時(shí)歡迎各位提 Bug,提建議,也可以給一些個(gè)性化需求定制 q:915947520 。 體驗(yàn)地址: https://www.zimujiang.com/?utm_source=v2ex 預(yù)覽: https://imgur.com/n2YGZwI https://imgur.com/bywKVzQ https://imgur.com/p4rKQGI
前沿探索
2020-08-21 08:26:44
之前看帖子/t/689005 中的 16 樓. 發(fā)現(xiàn)了一個(gè)神奇的網(wǎng)站,簡(jiǎn)直大愛,個(gè)人很喜歡手寫風(fēng)+末日倒計(jì)時(shí)+樹洞的概念.于是借鑒他搞了一個(gè)(css 直接拷來的,不知道這樣算不算抄襲,有在網(wǎng)站最后附上創(chuàng)意來源借鑒網(wǎng)站地址: https://www.thiswebsitewillselfdestruct.com/ 地址: http://treehole.ianimechina.com/ 代碼開源: 前端 vue https://github.com/luocjv587/treeHole 后端 hyperf https://github.com/luocjv587/treeHoleBack
前沿探索
2020-08-21 08:26:38
文章作者:「夜幕團(tuán)隊(duì) NightTeam 」 - 韋世東
潤(rùn)色、校對(duì):「夜幕團(tuán)隊(duì) NightTeam 」 - Loco
本文首發(fā)于「 NightTeam 」微信公眾號(hào),如需轉(zhuǎn)載請(qǐng)?jiān)谖⑿哦税l(fā)消息告知。
今天我們來拆解 Snowflake 算法,同時(shí)領(lǐng)略百度、美團(tuán)、騰訊等大廠在全局唯一 ID 服務(wù)方面做的設(shè)計(jì),接著根據(jù)具體需求設(shè)計(jì)一款全新的全局唯一 ID 生成算法。這還不夠,我們會(huì)討論到全局唯一 ID 服務(wù)的分布式 CAP 選擇與性能瓶頸。
已經(jīng)熟悉 Snowflake 的朋友可以先去看大廠的設(shè)計(jì)和權(quán)衡。
百度 UIDGenertor: https://github.com/baidu/uid-generator/blob/master/README.zh_cn.md
美團(tuán) Leaf: https://tech.meituan.com/2017/04/21/mt-leaf.html
騰訊 Seqsvr: https://www.infoq.cn/article/wechat-serial-number-generator-architecture
全局唯一 ID 是分布式系統(tǒng)和訂單類業(yè)務(wù)系統(tǒng)中重要的基礎(chǔ)設(shè)施。這里引用美團(tuán)的描述: 在復(fù)雜分布式系統(tǒng)中,往往需要對(duì)大量的數(shù)據(jù)和消息進(jìn)行唯一標(biāo)識(shí)。如在美團(tuán)點(diǎn)評(píng)的金融、支付、餐飲、酒店、貓眼電影等產(chǎn)品的系統(tǒng)中,數(shù)據(jù)日漸增長(zhǎng),對(duì)數(shù)據(jù)分庫分表后需要有一個(gè)唯一 ID 來標(biāo)識(shí)一條數(shù)據(jù)或消息,數(shù)據(jù)庫的自增 ID 顯然不能滿足需求;特別一點(diǎn)的如訂單、騎手、優(yōu)惠券也都需要有唯一 ID 做標(biāo)識(shí)。
這時(shí)候你可能會(huì)問: 我還是不懂,為什么一定要全局唯一 ID ?
我再列舉一個(gè)場(chǎng)景,在 MySQL 分庫分表的條件下,MySQL 無法做到依次、順序、交替地生成 ID,這時(shí)候要保證數(shù)據(jù)的順序,全局唯一 ID 就是一個(gè)很好的選擇。
在爬蟲場(chǎng)景中,這條數(shù)據(jù)在進(jìn)入數(shù)據(jù)庫之前會(huì)進(jìn)行數(shù)據(jù)清洗、校驗(yàn)、矯正、分析等多個(gè)流程,這期間有一定概率發(fā)生重試或設(shè)為異常等操作,也就是說在進(jìn)入數(shù)據(jù)庫之前它就需要有一個(gè) ID 來標(biāo)識(shí)它。
全局唯一 ID 應(yīng)當(dāng)具備什么樣的屬性,才能夠滿足上述的場(chǎng)景呢?
美團(tuán)技術(shù)團(tuán)隊(duì)列出的 4 點(diǎn)屬性我覺得很準(zhǔn)確,它們是: 全局唯一性:不能出現(xiàn)重復(fù)的 ID 號(hào),既然是唯一標(biāo)識(shí),這是最基本的要求; 趨勢(shì)遞增:在 MySQL InnoDB 引擎中使用的是聚集索引,由于多數(shù) RDBMS 使用 B-tree 的數(shù)據(jù)結(jié)構(gòu)來存儲(chǔ)索引數(shù)據(jù),在主鍵的選擇上面我們應(yīng)該盡量使用有序的主鍵保證寫入性能; 單調(diào)遞增:保證下一個(gè) ID 一定大于上一個(gè) ID,例如事務(wù)版本號(hào)、IM 增量消息、排序等特殊需求; 信息安全:如果 ID 是連續(xù)的,惡意用戶的爬取工作就非常容易做了,直接按照順序下載指定 URL 即可;如果是訂單號(hào)就更危險(xiǎn)了,競(jìng)爭(zhēng)對(duì)手可以直接知道我們一天的單量。所以在一些應(yīng)用場(chǎng)景下,會(huì)需要 ID 無規(guī)則、不規(guī)則。
看上去第 3 點(diǎn)和第 4 點(diǎn)似乎還存在些許沖突,這個(gè)后面再說。除了以上列舉的 ID 屬性外,基于這個(gè)生成算法構(gòu)建的服務(wù)還需要買足高 QPS 、高可用性和低延遲的幾個(gè)要求。
業(yè)內(nèi)常見的 ID 生成方式有哪些?
大家在念書的時(shí)候肯定都學(xué)過 UUID 和 GUID ,它們生成的值看上去像這樣: 6F9619FF-8B86-D011-B42D-00C04FC964FF
由于不是純數(shù)字組成,這就無法滿足趨勢(shì)遞增和單調(diào)遞增這兩個(gè)屬性,同時(shí)在寫入時(shí)也會(huì)降低寫入性能。上面提到了 數(shù)據(jù)庫自增 ID 無法滿足入庫前使用和分布式場(chǎng)景下的需求,遂排除。
有人提出了借助 Redis 來實(shí)現(xiàn),例如訂單號(hào)=日期+當(dāng)日自增長(zhǎng)號(hào),自增長(zhǎng)通過 INCR 實(shí)現(xiàn)。但這樣操作的話又無法滿足編號(hào)不可猜測(cè)需求。
這時(shí)候有人提出了 MongoDB 的 ObjectID ,不要忘了它生成的 ID 是這樣的: 5b6b3171599d6215a8007se0 ,和 UUID 一樣無法滿足遞增屬性,且和 MySQL 一樣要入庫后才能生成。
難道就沒有能打的了嗎 ?
大名鼎鼎的 Snowflake
Twitter 于 2010 年開源了內(nèi)部團(tuán)隊(duì)在用的一款全局唯一 ID 生成算法 Snowflake,翻譯過來叫做雪花算法。Snowflake 不借助數(shù)據(jù)庫,可直接由編程語言生成,它通過巧妙的位設(shè)計(jì)使得 ID 能夠滿足遞增屬性,且生成的 ID 并不是依次連續(xù)的,能夠滿足上面提到的全局唯一 ID 的 4 個(gè)屬性。它連續(xù)生成的 3 個(gè) ID 看起來像這樣: 563583455628754944 563583466173235200 563583552944996352
Snowflake 以 64 bit 來存儲(chǔ)組成 ID 的 4 個(gè)部分:
1 、最高位占 1 bit,值固定為 0,以保證生成的 ID 為正數(shù);
2 、中位占 41 bit,值為毫秒級(jí)時(shí)間戳;
3 、中下位占 10 bit,值為工作機(jī)器的 ID,值的上限為 1024 ;
4 、末位占 12 bit,值為當(dāng)前毫秒內(nèi)生成的不同 ID,值的上限為 4096 ;
Snowflake 的代碼實(shí)現(xiàn)網(wǎng)上有很多款,基本上各大語言都能找到實(shí)現(xiàn)參考。我之前在做實(shí)驗(yàn)的時(shí)候在網(wǎng)上找到一份 Golang 的代碼實(shí)現(xiàn):
代碼可在我的 Gist 查看和下載。
Snowflake 存在的問題
snowflake 不依賴數(shù)據(jù)庫,也不依賴內(nèi)存存儲(chǔ),隨時(shí)可生成 ID,這也是它如此受歡迎的原因。但因?yàn)樗谠O(shè)計(jì)時(shí)通過時(shí)間戳來避免對(duì)內(nèi)存和數(shù)據(jù)庫的依賴,所以它依賴于服務(wù)器的時(shí)間。上面我們提到了 Snowflake 的 4 段結(jié)構(gòu),實(shí)際上影響 ID 大小的是較高位的值,由于最高位固定為 0,遂 影響 ID 大小的是中位的值 ,也就是時(shí)間戳。
試想,服務(wù)器的時(shí)間發(fā)生了錯(cuò)亂或者回?fù)?這就直接影響到生成的 ID,有很大 概率生成重復(fù)的 ID 且 一定會(huì)打破遞增屬性 。這是一個(gè)致命缺點(diǎn),你想想, 支付訂單和購買訂單的編號(hào)重復(fù) ,這是多么嚴(yán)重的問題!
另外,由于它的 中下位 和 末位 bit 數(shù)限制,它 每毫秒生成 ID 的上限嚴(yán)重受到限制 。由于 中位 是 41 bit 的毫秒級(jí)時(shí)間戳,所以從當(dāng)前起始到 41 bit 耗盡 ,也 只能堅(jiān)持 70 年 。
再有,程序獲取操作系統(tǒng)時(shí)間會(huì)耗費(fèi)較多時(shí)間,相比于隨機(jī)數(shù)和常數(shù)來說,性能相差太遠(yuǎn),這是 制約它生成性能的最大因素 。
一線企業(yè)如何解決全局唯一 ID 問題
長(zhǎng)話短說,我們來看看 百度、美團(tuán)、騰訊 (微信)是如何做的。
百度團(tuán)隊(duì)開源了 UIDGenerator 算法.
它通過借用未來時(shí)間和雙 Buffer 來解決時(shí)間回?fù)芘c生成性能等問題,同時(shí)結(jié)合 MySQL 進(jìn)行 ID 分配。這是一種基于 Snowflake 的優(yōu)化操作,是一個(gè)好的選擇,你認(rèn)為這是不是優(yōu)選呢?
美團(tuán)團(tuán)隊(duì)根據(jù)業(yè)務(wù)場(chǎng)景提出了基于號(hào)段思想的 Leaf-Segment 方案和基于 Snowflake 的 Leaf-Snowflake 方案.
出現(xiàn)兩種方案的原因是 Leaf-Segment 并沒有滿足安全屬性要求,容易被猜測(cè),無法用在對(duì)外開放的場(chǎng)景(如訂單)。Leaf-Snowflake 通過文件系統(tǒng)緩存降低了對(duì) ZooKeeper 的依賴,同時(shí)通過對(duì)時(shí)間的比對(duì)和警報(bào)來應(yīng)對(duì) Snowflake 的時(shí)間回?fù)軉栴}。這兩種都是一個(gè)好的選擇,你認(rèn)為這是不是優(yōu)選呢?
微信團(tuán)隊(duì)業(yè)務(wù)特殊,它有一個(gè)用 ID 來標(biāo)記消息的順序的場(chǎng)景,用來確保我們收到的消息就是有序的。在這里不是全局唯一 ID,而是單個(gè)用戶全局唯一 ID,只需要保證這個(gè)用戶發(fā)送的消息的 ID 是遞增即可。
這個(gè)項(xiàng)目叫做 Seqsvr ,它并沒有依賴時(shí)間,而是通過自增數(shù)和號(hào)段來解決生成問題的。這是一個(gè)好的選擇,你認(rèn)為這是不是優(yōu)選呢?
性能高出 Snowflake 587 倍的算法是如何設(shè)計(jì)的?
在了解 Snowflake 的優(yōu)缺點(diǎn)、閱讀了百度 UIDGenertor 、美團(tuán) Leaf 和騰訊微信 Seqsvr 的設(shè)計(jì)后,我希望設(shè)計(jì)出一款能夠滿足全局唯一 ID 4 個(gè)屬性且 性能更高、使用期限更長(zhǎng)、不受單位時(shí)間限制、不依賴時(shí)間 的全局唯一 ID 生成算法。
這看起來很簡(jiǎn)單,但吸收所學(xué)知識(shí)、設(shè)計(jì)、實(shí)踐和性能優(yōu)化占用了我 4 個(gè)周末的時(shí)間。在我看來,這個(gè)算法的設(shè)計(jì)過程就像是液態(tài)的水轉(zhuǎn)換為氣狀的霧一樣,遂我給這個(gè)算法取名為 薄霧( Mist )算法 。接下來我們來看看薄霧算法是如何設(shè)計(jì)和實(shí)現(xiàn)的。
位數(shù)是影響 ID 數(shù)值上限的主要因素,Snowflake 中下位和末位的 bit 數(shù)限制了單位時(shí)間內(nèi)生成 ID 的上限,要解決這個(gè)兩個(gè)問題,就必須重新設(shè)計(jì) ID 的組成。
拋開中位,我們先看看中下位和末位的設(shè)計(jì)。中下位的 10 bit 的值其實(shí)是機(jī)器編號(hào),末位 12 bit 的值其實(shí)是單位時(shí)間(同一毫秒)內(nèi)生成的 ID 序列號(hào),表達(dá)的是這毫秒生成的第 5 個(gè)或第 150 個(gè) 數(shù)值,同時(shí)二者的組合使得 ID 的值變幻莫測(cè),滿足了安全屬性。實(shí)際上并不需要記錄機(jī)器編號(hào),也可以不用管它到底是單位時(shí)間內(nèi)生成的第幾個(gè)數(shù)值,安全屬性我們可以通過多組隨機(jī)數(shù)組合的方式實(shí)現(xiàn),隨著 數(shù)字的遞增和隨機(jī)數(shù)的變幻 ,通過 ID 猜順序的難度是很高的。
最高位固定是 0,不需要對(duì)它進(jìn)行改動(dòng)。我們來看看至關(guān)重要的中位,Snowflake 的中位是毫秒級(jí)時(shí)間戳,既然不打算依賴時(shí)間,那么肯定也不會(huì)用時(shí)間戳,用什么呢?我選擇自增數(shù) 1,2,3,4,5,... 。中位決定了生成 ID 的上限和使用期限,如果沿用 41 bit,那么上限跟用時(shí)間戳的上限相差無幾,經(jīng)過計(jì)算后我選擇采用與 Snowflake 的不同的分段:
縮減中下位和末位的 bit 數(shù),增加中位的 bit 數(shù),這樣就可以擁有更高的上限和使用年限,那上限和年限現(xiàn)在是多久呢?中位數(shù)值的上限計(jì)算公式為 int64(1<<47 - 1) ,計(jì)算結(jié)果為 140737488355327 。 百萬億級(jí) 的數(shù)值,假設(shè)每天消耗 10 億 ID,薄霧算法能用 385+ 年, 幾輩子都用不完 。
中下位和末位都是 8 bit,數(shù)值上限是 255,即開閉區(qū)間是 [0, 255]。這兩段如果用隨機(jī)數(shù)進(jìn)行填充,對(duì)應(yīng)的組合方式有 256 * 256 種,且每次都會(huì)變化,猜測(cè)難度相當(dāng)高。由于不像 Snowflake 那樣需要計(jì)算末位的序列號(hào),遂薄霧算法的代碼并不長(zhǎng),具體代碼可在我的 GitHub 倉庫找到:
聊聊性能問題,獲取時(shí)間戳是比較耗費(fèi)性能的,不獲取時(shí)間戳速度當(dāng)然快了,那 500+ 倍是如何得來的呢?以 Golang 為例(我用 Golang 做過實(shí)驗(yàn)),Golang 隨機(jī)數(shù)有三種生成方式: 基于固定數(shù)值種子的隨機(jī)數(shù); 將會(huì)變換的時(shí)間戳作為種子的隨機(jī)數(shù); 大數(shù)真隨機(jī);
基于固定數(shù)值種子的隨機(jī)數(shù)每次生成的值都是一樣的,是偽隨機(jī),不可用在此處。將時(shí)間戳作為種子以生成隨機(jī)數(shù)是目前 Golang 開發(fā)者的主流做法,實(shí)測(cè)性能約為 8800 ns/op 。
大數(shù)真隨機(jī)知道的人比較少,實(shí)測(cè)性能 335ns/op,由此可見性能相差近 30 倍。大數(shù)真隨機(jī)也有一定的損耗,如果想要將性能提升到頂點(diǎn),只需要將中下位和末位的隨機(jī)數(shù)換成常數(shù)即可,常數(shù)實(shí)測(cè)性能 15ns/op,是時(shí)間戳種子隨機(jī)數(shù)的 587 倍。 要注意的是,將常數(shù)放到中下位和末位的性能是很高,但是猜測(cè)難度也相應(yīng)下降。
薄霧算法的依賴問題
薄霧算法為了避開時(shí)間依賴,不得不依賴存儲(chǔ),中位自增的數(shù)值只能在內(nèi)存中存活,遂需要依賴存儲(chǔ)將自增數(shù)值存儲(chǔ)起來,避免因?yàn)殄礄C(jī)或程序異常造成重復(fù) ID 的事故。
看起來是這樣,但它真的是依賴存儲(chǔ)嗎?
你想想,這么重要的服務(wù)必定要求高可用,無論你用 Twitter 還是百度或者美團(tuán)、騰訊微信的解決方案,在 架構(gòu)上一定都是高可用 的,高可用一定需要存儲(chǔ)。在這樣的背景下,薄霧算法的依賴其實(shí)并不是額外的依賴,而是可以與架構(gòu)完全 融合到一起 的設(shè)計(jì)。
薄霧算法和 Redis 的結(jié)合
既然提出了薄霧算法,怎么能不提供真實(shí)可用的工程實(shí)踐呢?在編寫完薄霧算法之后,我就開始了工程實(shí)踐的工作,將薄霧算法與 KV 存儲(chǔ)結(jié)合到一起,提供全局唯一 ID 生成服務(wù)。這里我選擇了較為熟悉的 Redis,Mist 與 Redis 的結(jié)合,我為這個(gè)項(xiàng)目取的名字為 Medis 。
性能高并不是編造出來的,我們看看它 Jemeter 壓測(cè)參數(shù)和結(jié)果:
以上是 Medis README 中給出的性能測(cè)試截圖,在大基數(shù)條件下的性能約為 2.5w/sec 。這么高的性能除了薄霧算法本身高性能之外,Medis 的設(shè)計(jì)也作出了很大貢獻(xiàn): 使用 Channel 作為 數(shù)據(jù)緩存 ,這個(gè)操作使得發(fā)號(hào)服務(wù)性能提升了 7 倍; 采用 預(yù)存預(yù)取 的策略保證 Channel 在大多數(shù)情況下都有值,從而能夠迅速響應(yīng)客戶端發(fā)來的請(qǐng)求; 用 Gorouting 去執(zhí)行耗費(fèi)時(shí)間的預(yù)存預(yù)取操作,不會(huì)影響對(duì)客戶端請(qǐng)求的響應(yīng); 采用 Lrange Ltrim 組合 從 Redis 中批量取值,這比循環(huán)單次讀取或者管道批量讀取的效率更高; 寫入 Redis 時(shí)采用 管道 批量寫入,效率比循環(huán)單次寫入更高; Seqence 值的計(jì)算 在預(yù)存前進(jìn)行 ,這樣就不會(huì)耽誤對(duì)客戶端請(qǐng)求的響應(yīng),雖然薄霧算法的性能是納秒級(jí)別,但并發(fā)高的時(shí)候也造成一些性能損耗,放在預(yù)存時(shí)計(jì)算顯然更香; 得益于 Golang Echo 框架和 Golang 本身的高性能,整套流程下來我很滿意,如果要追求極致性能,我推薦大家試試 Rust ;
Medis 服務(wù)啟動(dòng)流程和接口訪問流程圖下所示:
感興趣的朋友可以下載體驗(yàn)一下,啟動(dòng) Medis 根目錄的 server.go 后,訪問 http://localhost:1558/sequence 便能拿到全局唯一 ID 。
高可用架構(gòu)和分布式性能
分布式 CAP (一致性、可用性、分區(qū)容錯(cuò)性)已成定局,這類服務(wù)通常追求的是可用性架構(gòu)( AP )。由于設(shè)計(jì)中采用了預(yù)存預(yù)取,且要保持整體順序遞增,遂單機(jī)提供訪問是優(yōu)選,即分布式架構(gòu)下的性能上限就是提供服務(wù)的那臺(tái)主機(jī)的單機(jī)性能。
你想要實(shí)現(xiàn)分布式多機(jī)提供服務(wù)?
這樣的需求要改動(dòng) Medis 的邏輯,同時(shí)也需要改動(dòng)各應(yīng)用之間的組合關(guān)系。如果要實(shí)現(xiàn)分布式多機(jī)同時(shí)提供服務(wù),那么就要 廢棄 Redis 和 Channel 預(yù)存預(yù)取機(jī)制 ,接著放棄 Channel 而 改用即時(shí)生成 ,這樣便可以同時(shí)使用多個(gè) Server,但性能的瓶頸就 轉(zhuǎn)移 到了 KV 存儲(chǔ) (這里是 Redis ), 性能等同于單機(jī) Redis 的性能 。你可以采用 ETCD 或者 Zookeeper 來實(shí)現(xiàn)多 KV,但這不是 又回到了 CAP 原點(diǎn) 了嗎?
至于怎么選擇,可根據(jù)實(shí)際業(yè)務(wù)場(chǎng)景和需求與架構(gòu)進(jìn)行討論,選擇一個(gè)適合的方案進(jìn)行部署即可。
領(lǐng)略了 Mist 和 Medis 的風(fēng)采后,相信你一定會(huì)有其他巧妙的想法,歡迎在評(píng)論區(qū)留言,我們一起交流進(jìn)步!
夜幕團(tuán)隊(duì)成立于 2019 年,團(tuán)隊(duì)包括崔慶才(靜覓)、周子淇( Loco )、陳祥安( CXA )、唐軼飛(大魚| BruceDone )、馮威(妄為)、蔡晉(悅來客棧的老板)、戴煌金(咸魚)、張冶青( MarvinZ )、韋世東( Asyncins |奎因)和文安哲( sml2h3 )。
涉獵的編程語言包括但不限于 Python 、Rust 、C++、Go,領(lǐng)域涵蓋爬蟲、深度學(xué)習(xí)、服務(wù)研發(fā)、逆向工程、軟件安全等。團(tuán)隊(duì)非正亦非邪,只做認(rèn)為對(duì)的事情,請(qǐng)大家小心。
前沿探索
2020-08-21 08:26:00
斷斷續(xù)續(xù) 花了半個(gè)月的晚上時(shí)間(程序員可能只有晚上才有屬于自己的時(shí)間吧????),用 Flutter 開發(fā)了一款詩詞類 APP 。 啟動(dòng)頁隨機(jī)顯示經(jīng)典詩句,3 秒后跳轉(zhuǎn)到首頁 首頁每天一首詩和一張背景圖(圖片網(wǎng)上找的直接鏈接,后面會(huì)處理下放到云上),可以點(diǎn)贊、分享、設(shè)為壁紙等 下滑展示更多歷史內(nèi)容 詩詞文字使用 黃令東齊伋體,安裝包略大。
歡迎大家下載體驗(yàn),提出寶貴的意見或建議,輕噴??
http://beta.xingzou.art/dailypoetry
前沿探索
2020-08-21 08:25:49
使用場(chǎng)景功能各位萬能 V 友可以腦補(bǔ)了哈,禁止安裝他人手機(jī)使用!!友好場(chǎng)景:可用于個(gè)人微信收款回調(diào)接口、個(gè)人支付寶收款回調(diào)接口、抖音互動(dòng)點(diǎn)贊信息監(jiān)控、手機(jī)短信監(jiān)控、銀行卡收款支出到賬監(jiān)控等所有應(yīng)用的推送監(jiān)控及手機(jī)廠商推送的監(jiān)控 真實(shí)場(chǎng)景:從前有一位穿拖鞋帶哭泣寶寶的老板,門店多、手機(jī)多、員工多,想即時(shí)知道各個(gè)燒烤攤的收款信息…… 下載 app 、設(shè)置傳輸接口及密鑰、開啟監(jiān)控即可 系統(tǒng)提供即時(shí)傳輸 API 服務(wù),接口設(shè)計(jì)可參考: https://www.kancloud.cn/ojbk1789/callback_api/1816709 app 下載地址: https://www.pgyer.com/huidiao 需要的可騷擾我 ali88pay 開通公測(cè)資格
前沿探索
2020-08-21 08:25:41
提交了三次終于成功上架微軟應(yīng)用商店了, ★,° :.☆( ̄▽ ̄)/$: .°★ 。
商店鏈接: https://www.microsoft.com/store/apps/9PDZ8MHCVCFR
介紹帖 (像 iOS 的自動(dòng)化快捷指令一樣,在你的 Win10 上體驗(yàn)類似的功能)
前沿探索
2020-08-21 08:25:36
修復(fù)了很多大家提出來的問題,應(yīng)該穩(wěn)定了不少,可以稍微放心推薦給大家了。
它是一個(gè)開源的 SpringBoot API 文檔生成工具,無需額外注解,輕松集成。目前有 800+star,已經(jīng)有不少小伙伴在使用了,并且有一個(gè)活躍的微信反饋群。
如果你已經(jīng)厭煩 Swagger 滿屏的注解和額外的工作量,你不妨一試!
功能亮點(diǎn) 基于源碼解析,無侵入性(也支持解析 jar,但需要內(nèi)部依賴); 支持多種格式導(dǎo)出( Html 、Markdown ); 直接不同版本比較; 同步生成 Android 和 iOS Model 類; 支持中文和英文版本導(dǎo)出; 支持自定義特性擴(kuò)展。
相關(guān)鏈接
在線示例: 點(diǎn)擊示例
文檔主頁: JApiDocs 中文文檔
GitHub: GitHub 倉庫
點(diǎn)個(gè)小星星,收藏一下?
關(guān)于我
我是葉大俠,一名獨(dú)立開發(fā)者。如果剛好喜歡吉他,向你推薦我的一個(gè)獨(dú)立小程序作品: 口袋樂譜 。
前沿探索
2020-08-21 08:25:30
前言
好久不見, 炒飯( chao.fun ) 又更新了。
這一個(gè)月主要做了下面兩個(gè)功能,希望大家能夠喜歡,即使不喜歡也希望能給大家一點(diǎn)啟發(fā)
類 Reddit 多級(jí)評(píng)論
其實(shí)不是很好實(shí)現(xiàn)的,這類多級(jí)評(píng)論不方便直接查詢,所以要離線實(shí)現(xiàn)了,但是離線實(shí)現(xiàn)不夠?qū)崟r(shí),所以想到了離線和緩存結(jié)合的方式,達(dá)到了基本的多級(jí)評(píng)論實(shí)時(shí),后續(xù)可能會(huì)做評(píng)論折疊等工作。
炒飯的秘密(盜圖)花園
50W 張沙雕 /美圖從境外抓取來的圖片等著你篩選,幫你自動(dòng)翻譯,你只需稍微修正下內(nèi)容和發(fā)布板塊(大部分時(shí)候無需修正)就可以一鍵發(fā)布了,無聊的時(shí)候可以來幫炒飯篩圖,看看大千世界,圖片做過緩存,每個(gè)用戶都不同,需要登錄。
實(shí)現(xiàn)方式就是簡(jiǎn)單的爬蟲了,用了云服務(wù)的機(jī)器翻譯加內(nèi)容安全(是真的貴),算是把國(guó)內(nèi)外通道打通了吧,也契合我們的 Slogan,分享奇趣,發(fā)現(xiàn)世界,后續(xù)會(huì)接入更多的數(shù)據(jù)源。
入口在 PC 的右邊欄
前沿探索
2020-08-21 08:25:27
近日,基于 Python 的 Django 框架編寫的開源 Markdown 在線文檔系統(tǒng)——MrDoc 覓道文檔發(fā)布了 0.5.5 版本,本版本主要帶來如來更新:
文集導(dǎo)入
文集導(dǎo)入是此版本的重點(diǎn)更新內(nèi)容,方便廣大的 MrDoc 使用者從其他文檔系統(tǒng)或本地導(dǎo)入文集到 MrDoc 。
本次新增的文集導(dǎo)入功能,僅支持 Markdown 文件的 zip 壓縮包格式進(jìn)行導(dǎo)入。文集上傳成功之后,可以對(duì)文集信息進(jìn)行編輯,以及可以拖拽式地對(duì)文檔進(jìn)行排序。
音視頻播放
對(duì)音視頻的支持是本次覓道文檔更新的另一個(gè)新功能點(diǎn)。
點(diǎn)擊菜單欄的多媒體播放按鈕,可以對(duì)下述形式的音視頻進(jìn)行插入: 音頻文件的 URL 鏈接; 視頻文件的 URL 鏈接; 視頻網(wǎng)站播放頁面的 URL 鏈接;
字符統(tǒng)計(jì)
之前版本的覓道文檔編輯器缺乏一個(gè)不是必需,但是缺少了又很不方便的功能,那就是字符統(tǒng)計(jì)。如今,字符統(tǒng)計(jì)功能也已添加到文檔編輯器中。
文集目錄渲染
在上一版本中,著重優(yōu)化了在海量文檔下,文集目錄渲染顯示的速度。在那之后,發(fā)現(xiàn)還有可優(yōu)化的空間,于是在這個(gè)版本中,又繼續(xù)進(jìn)行了優(yōu)化。
頁面分享組件
之前版本的頁面分享組件采用的是開源的 share.js 。雖然功能強(qiáng)大,支持的第三方網(wǎng)站也多,但是經(jīng)過反饋,這個(gè)組件在頁面上還是比較多余。于是本次更新對(duì)頁面的分享組件進(jìn)行了調(diào)整,采用按鈕+彈出框的形式進(jìn)行頁面分享。
圖片外鏈
本次更新還修復(fù)了一個(gè)圖片鏈接插入的問題。
有些朋友使用的圖片都是上傳到第三次存儲(chǔ)上的,所有他們不會(huì)將圖片上傳到覓道文檔。雖然可以輸入 Markdown 的圖片語法來插入,但也是很繁瑣的一件事?,F(xiàn)在,圖片管理的彈出框可以直接輸入圖片鏈接插入到編輯框。
編輯器布局
同時(shí),本次更新還優(yōu)化了文檔編輯器的布局,調(diào)整了保存和發(fā)布按鈕的位置,為文集的文檔樹添加了一個(gè)折疊面板,避免文檔多的時(shí)候影響按鈕操作。
項(xiàng)目地址
GitHub: https://github.com/zmister2016/MrDoc
碼云: https://gitee.com/zmister/MrDoc
示例站點(diǎn): http://mrdoc.zmister.com
前沿探索
2020-08-21 08:25:20
點(diǎn)擊前往: https://coredns.minidump.info/
代碼在 https://github.com/missdeer/coredns_custom_build/tree/master/dlredirector 長(zhǎng)年 C++/Go 用戶,前端苦手,不喜輕噴
魔改的 CoreDNS 在這: https://github.com/missdeer/coredns_custom_build,比官方多了一些插件,可實(shí)現(xiàn)國(guó)內(nèi) CDN 友好,防污染等等,具體可看 README.md ,墻裂推薦
之前發(fā)的桌面版在 /t/653844
前沿探索
2020-08-21 08:25:16
特點(diǎn):
采用簡(jiǎn)約設(shè)計(jì),無賬號(hào)系統(tǒng)
支持多張本
支持外幣入賬
支持定時(shí)記賬
支持成員記賬
支持本地備份和 webdav 網(wǎng)盤備份
支持 excel, csv 格式數(shù)據(jù)導(dǎo)出
支持多語言
支持表格排序查詢
支持暗夜模式
先放 20 個(gè)兌換碼,沒了在發(fā),兌換到得請(qǐng)說下已領(lǐng)取的,方便其他人
兌換方式:google play 下載安裝 i 簡(jiǎn)記-進(jìn)入功能頁面-點(diǎn)擊下方任意收費(fèi)功能-兌換碼兌換即可
(制作不易,如果滿意,還望賞個(gè)好評(píng),不要提兌換碼哈,拉仇恨。不滿意歡迎隨時(shí)提意見,更新很快?。?RVGT0UAFPKSFDA5MW6JDBJ3
EA034GCDM9JJCUBLYGU97UQ
KFZJ7DN73JP4VSQ25WHDXDM
GY3FVJ0CSL0FZ7ARG4R0G3D
XU9C509RTPMSU6RZWTFJR3R
SUV6BY7H73XASM1CD99HYTB
XNFCLXV6Z8VCDU81UZSF8J3
QGQUVC5MZNNB8FF9E40C945
4EGCNUN6AAUQY4UWCANY6SB
EGQ3CU81KRHP8GKLM74CXQ8
W1TJFNS2X4JTFU0FSA31PTN
DVVRZDRTRN6YFC0WM7AX6BB
6ENE1W0Z0NS2GQ01LZP9DCP
ZWCHY55NSVT5RF2MP4EMJE5
4Y7LFPL42HMKRRPDX9G044U
B6GLB6E0AC063ZPZXZ4A5YG
9M3GEHGE17CMR0FN7V2V0Y2
T5U6P9T1JBXUK7TNXBJU4EX
GE45YFTLXQY6G9N1CZQEELZ
480B5TSQWADZRCAE5FWU8YH
圖片
前沿探索
2020-08-21 08:25:08
項(xiàng)目各種包越來越多,手動(dòng)維護(hù)比較蛋疼,容易遺漏,所以搞了這么個(gè)工具。
https://github.com/makeflow/inplate
例子
Dockerfile FROM node # @inplate # {{#each packageFilePaths}} # COPY {{value}}{{padding}} /app/{{value}} # {{/each}} # @plate # @end
Dockerfile.js const Glob = require('glob'); module.exports = { data: { packageFilePaths: pad( Glob.sync('**/package.json', { ignore: '**/node_modules/**', }), ), }, }; function pad(values) { let maxLength = Math.max(...values.map(value => value.length)); return values.map(value => { return { value, padding: value.padEnd(maxLength).slice(value.length), }; }); }
執(zhí)行 inplate Dockerfile 后,文件就會(huì)被更新為類似: FROM node # @inplate # {{#each packageFilePaths}} # COPY {{value}}{{padding}} /app/{{value}} # {{/each}} # @plate COPY package.json /app/package.json COPY packages/foo/package.json /app/packages/foo/package.json COPY packages/bar/package.json /app/packages/bar/package.json # @end
CI 中可以執(zhí)行 inplate Dockerfile --assert 來確保文件已經(jīng)更新,當(dāng)然也支持配置文件、通配符等。
前沿探索
2020-08-21 08:25:02
GooglePlay 下載地址
目前只有 Android 版, 現(xiàn)在只有兩個(gè)詞根, 82 個(gè)單詞, 我會(huì)慢慢加單詞的
我收集了 8000 多個(gè)高頻詞, 目前在組合中.
前沿探索
2020-08-21 08:24:56
小程序叫 Mmrz,意思就是 Memorize,主要是我自己用來背日語單詞用的。但是同時(shí)也可以查日語單詞,幫助更好的記憶單詞嘛。有興趣的可以掃碼試一試。 大概長(zhǎng)下面這個(gè)樣子:
前沿探索
2020-08-21 08:24:51
使用很簡(jiǎn)單,訪問網(wǎng)站,代下云:www.daixiayun.com 搜索找到需要的資源,輸入卡密用戶名等待一會(huì)就可以了。 首次贈(zèng)送 15 個(gè)卡密用戶,每個(gè)用戶有 3 個(gè)代下額度,不知道大家有沒有需要,根據(jù)需求贈(zèng)送。 c66dd19a 5d2bcaa2 767f86ac 12a854ff 517f5271 c22e5232 1f25c1af e65cdc07 720ddc4c 27f0bae0 17f3a64e 5832cb29 61dc921b 00aba5e7 ae67cc6b
前沿探索
2020-08-21 08:24:46
在經(jīng)歷了大概半年多的開發(fā)后,我們?yōu)?tmp.link 添加了大量新功能,甚至改變了產(chǎn)品本身的屬性。現(xiàn)在,它不再是一個(gè)純粹的中轉(zhuǎn)站,而更傾向于網(wǎng)盤,但是初衷不變哦。tmp 始終致力于成為一款生產(chǎn)力工具。
新功能
1,新增了長(zhǎng)期存儲(chǔ),并且將長(zhǎng)期存儲(chǔ)作為默認(rèn)的上傳選項(xiàng)。
這主要是因?yàn)榇蠹腋鼉A向于存儲(chǔ)一些需要偶爾需要用到的文件。比如裝機(jī)軟件集合,以及下載后日常吃灰,但是又偶爾想要翻看的 PDF 。tmp 作為云端服務(wù),理應(yīng)讓云的特性好好發(fā)揮出來。為此,我們也在后端做了很多優(yōu)化,以應(yīng)對(duì)長(zhǎng)期存儲(chǔ)的成本問題。
2,文件夾上傳。
盡管 HTML5 已經(jīng)足夠先進(jìn),但是基于 Web 的文件操作還是不太方便??赡茉谀骋惶鞎?huì)沒有名為瀏覽器與桌面的高墻,不過就目前而言,這堵墻還是實(shí)際存在的。在進(jìn)行大量的文件組織和管理時(shí),在系統(tǒng)內(nèi)完成文件的組織和管理,然后再將整個(gè)文件夾上傳,可以更好地節(jié)約時(shí)間, 快速完成目標(biāo)。
3,搜索。
目前支持基于文件名的搜索,使用關(guān)鍵詞快速檢索出想要的文件,就像用 Spotlight Search 那樣。我們希望這個(gè)功能在未來更加 Spotlight 一些,比如大家可以設(shè)置成“允許 tmp 索引特定擴(kuò)展名的文件,以增加搜索范圍”。真正成為一個(gè)好用的辦公桌。
4,為攝影師優(yōu)化。
也許你已經(jīng)注意到文件列表的模式中有一個(gè)“照片模式”,沒錯(cuò),這是我們?yōu)閿z影師專門設(shè)計(jì)的模式,它可以很方便瀏覽所有的圖片文件。除此之外,tmp 還為大圖專?定制了文件提取頁。 為其他人分享照片時(shí),可以更好地展現(xiàn)出照片的魅力。
一些重大改變:
為了支持長(zhǎng)期存儲(chǔ),tmp 將不再支持無限空間以及免登錄上傳。我們?yōu)槊课挥脩襞鋫淞?10GB 的存儲(chǔ)空間,需求更大空間的用戶也可以選擇購買額外的存儲(chǔ)空間。
此外,我們將不再針對(duì)下載進(jìn)行限速,考慮到目前的儲(chǔ)備帶寬,除了高峰時(shí)期可能速度會(huì)有所影響,大部分時(shí)間都足夠。當(dāng)然,你也可以購買額外的下載通道。
額外存儲(chǔ)空間和下載通道,是 tmp 目前的付費(fèi)項(xiàng)目,我們希望 tmp 真正能為大家起到作用的同時(shí),并獲得大家的更多支持。
前沿探索
2020-08-21 08:24:35
之前在 v 站分享過一次:https://v2ex.com/t/640882 最近決定把項(xiàng)目開源了,如果有對(duì)相關(guān)技術(shù)感興趣的朋友歡迎 star 一下。 用到的技術(shù)棧包括:Node/React/WebRTC/WebSocket 地址: https://github.com/fanchangyong/deershare
前沿探索
2020-08-21 08:24:31
2020 有點(diǎn)懶散,終于更新了我們的播客,這次和一位短視頻英語學(xué)習(xí) app 的創(chuàng)始人聊了聊在線教育。完整訪談可以在 Apple 播客或者喜馬拉雅收聽: https://www.doko.com/podcasts/016-biz/tianshuo-hu-online-english-learning-xianzha-cofounder.php 從語言學(xué)習(xí)、在線教育到教育和人才的未來,胡老師從他自身的學(xué)習(xí)和資深教學(xué)經(jīng)驗(yàn)出發(fā),暢談了對(duì)教育、學(xué)習(xí)和人才的觀點(diǎn),非常有啟發(fā)性,非常值得每位學(xué)習(xí)者、教育者和家長(zhǎng)細(xì)細(xì)思考品味。 歡迎交流你理想中的學(xué)習(xí)方式是什么?
前沿探索
2020-08-21 08:24:25
先說下,本來這個(gè)產(chǎn)品是要在 2016 年開發(fā)的,當(dāng)時(shí)把域名買好了,圖片也爬好了,但由于技術(shù)有限,資金有限,就沒有搞成功,直到 2019 年才決定重啟這個(gè)項(xiàng)目,不知道是否有點(diǎn)遲了。
名稱:搜搜 GIF 域名: https://www.sosogif.com/
先放個(gè)首頁圖
當(dāng)然界面設(shè)計(jì)的并不是太好看,決定一步一步的來完成產(chǎn)品迭代,每個(gè)產(chǎn)品都需要給他點(diǎn)時(shí)間。
最好用的是工具,也是開發(fā)耗時(shí)最長(zhǎng)的
其中視頻轉(zhuǎn) GIF,GIF 編輯,表情包制作,GIF 裁剪還是很好用的,不過算法、功能還需要進(jìn)一步優(yōu)化
鏈接這里: https://www.sosogif.com/tool/
就說這么點(diǎn)吧,請(qǐng)各位大神不吝賜教。
前沿探索
2020-08-21 08:24:15
github 地址
還有需要哪些 feature (表格、公式、圖片、參考文獻(xiàn)、自定義模版編譯 LaTeX 、創(chuàng)建項(xiàng)目、文件列表... 做這個(gè)編輯器有意義嗎
前沿探索
2020-08-21 08:24:10