Jump to...
redirecting...

Log for YSITD

我剛剛就提了 margin
它就 毫無反應
[photo](media:AgADBQADNKgxG1n-eVQcxTWkSv9H7TgnzDIABHBR32b_FnhJU3cBAAEC@telegram)
[photo](media:AgADBQADNagxG1n-eVT42Cxq504TiEQOzDIABEKE4QhDt56x83cBAAEC@telegram)
[photo](media:AgADBQADNqgxG1n-eVRN0eY-upIw6d4bzDIABJxAycDQp3SULXcBAAEC@telegram)
當時沒看到 sorry
不會啊 我覺得有點書籍說明很好啦
有沒有 來點 margin 好點吧
是阿
不是所有人都很擅長抄抄抄就生出東西啊
感謝 =D
但你應該用容器包起來
抄抄抄就生出東西,本身就是種天賦阿
不然你這樣浪費 tocas ui
所以我叫他去用bootstrap
又有完整中文文件
又有一堆範例和模版
若不看文件用哪套都一樣
該用DW了喔
User太笨也是一個原因
現在開始感覺需要理解的語言很難
#content {
margin-top:20px;
margin-left:20px;
margin-right:20px;
margin-bottom:20px;
border: 1px solid 000000;
}
多餘了
好的
你該換寫法
容器不是 div 之類的東西嗎?
對阿
Tocas UI 有設計好的東西 你就套用再來改啊
是直接 style?
你要完全自己生? 那你怎不手刻就好
這樣用 Tocas UI 幹嘛?
div style...
人家有現成的
喔喔
我再翻一下
別說了 看看他剛剛貼的截圖
他用 Tocas UI 連個官網都沒看 連文件都不想看
那你還是手刻好了
你怎麼會覺得他會想看文件
期望他學一點啊
還是早點睡吧🙈
好了
參考範例
增加
    <div class="ts narrow container">
然後只留下 margin-top
[photo](media:AgADBQADN6gxG1n-eVSrNI8BEcSX9pAdzDIABMV_jXjbFj2dfHQBAAEC@telegram)
結果
可以
對不對這樣好多了
CTA 可以明顯一點ㄇ
讓他變 primary button
然後不換行什麼的
[photo](media:AgADBQADOKgxG1n-eVRn_z5-_fBPmEoNzDIABP0IunofDgr3hXIBAAEC@telegram)
然後做成這個樣子 ...
我有點想做 CMS 了欸
你先學好物件導向
絕對讓你寫起來得心應手
如果讓新手一開始就學FP
的話 會怎樣ㄇ
會自殺(?
有好的物件導向概念 寫程式會很順
可是到後面會爆炸
畢竟OOP
好沒4
-.-
明天再看了
我現在只看到 Class、類別跟 (php, C++...) 都是使用物件導向
然後聽起來很困難
然後你就不學了
我幫妳forward你講過的話等等啊
然後你要的 CMS 你就會發現寫起來很痛苦
學吧 雖然難 不過你這年紀好好學很棒啊
寫CMS為什麼會需要OOP
同意後者
為什麼不需要
功能越強大物件導向做得好會讓程式更加簡單易讀阿
[photo](media:AgADBQADOagxG1n-eVQrP9GKtA__BIkTzDIABOgaVYhasrpyt3YBAAEC@telegram)
🤔不是該學 MVC 架構嗎
問一下
聽起來很吃土
2017前端
OOP 我覺得算底吧
自殺
MVC架構真的有讓維護比較輕鬆嗎
我要質疑
有底 再來做事會方便很多啊
我還是不知道MVC是啥
寫起來真的比較輕鬆
假設在搜尋框輸入 test
然後按下 Enter

我的想法是他會到:

www.google.com/search?q=test

所以大概就是這樣:

使用者輸入字串之後按下 Enter
將會導向到 www.google.com/search?q=(字串)

要怎麼實現?
你要前端還是後端的做法
我都前後段分離 沒寫過MV吸
javascript可以在前端輕易辦到
php可以輕易在後端辦到
view 跟 model 分開的話,要修改輸出的 html 會變很簡單
然後一句話木馬 :D
前後端都可以很輕衣
木你的頭
前端
不然用 for 迴圈硬拚出 html 是一件很崩潰的事
那很百度w
真的
你用 jquery 做就好
而且會整個畫面都
html += '<div>';
html += SomeValue;
歡迎回來
牧人復活了
去讀欄位
然後開分頁帶欄位的東西
Hi
自己學怎弄
你可能寫完一個禮拜就忘了你當初在寫三洨
Hello😅
Hi
[sticker](media:AAQCABOrNIINAARpyuFc2wW3xr-_AAIC@telegram)
給點溫暖(摩擦生火)
睡覺
這隻bot居然還活著
pm2掛著,就算躺了也會死者甦醒的
真好
QwQ
為什麼不是用forever?
[sticker](media:AAQCABPk3kcNAASSKPUHeaDhO18jAAIC@telegram)
給你多一點
是說我找不到我要forward過來的那句😅
因為pm2可以記錄城市列表,開機時自動執行
s/城市/程式
@windasd 認為 @mmis1000 的意思是: 因為pm2可以記錄程式列表,開機時自動執行
hi
用 kubernetes 的表示重啟沒所謂
死掉會自己開新的 container
[photo](media:AgADBQADzKcxG5LIeFQHL1S7kbcPvCgVzDIABNZVGZi3rnrvnXcBAAEC@telegram)
4 是 EV
2 是 IV
by_____ 的知識真是不敢領教 (
3 是 OV
所以如果這樣排下去 他說 OV 跟 EV 是免費耶 (
這到底是哪個 __________ 才能寫出來的文章
也就是 DV SSL
最早期驗證最簡單的
採用 Class 1/2 的付費 SSL 證書,也可以採用 Class 3/4 的免費 SSL 證書
http://puu.sh/x8km1/a2c14112c4.png 實際上也是真的自爆了不少次
210
wwwww
爆也沒關係, log 留下來就好了
等一下,anime bot還活著喔
好,明天改
每次都是因為 api 莫名地傳來 undefined 而爆炸的
yes
[photo](media:AgADBQAD0KcxG5LIeFR2oWaVJIhATIoTzDIABKTEk_AlJOwE_nIBAAEC@telegram)
講的好像大家好像都不會google
可是搜尋炸了吧?
沒啊?
那是因為你沒用Arch
看那精美的Arch wiki (X
原來還活著
然後windows超難好ㄇ
AD摸了好久到現在我還是不懂他
可是他說Ubuntu欸
總是摸了好久突然就work惹 magic
這是我第一次被他講欸
好像應該是吧?
就是一個 Ubuntu = Linux (蚌
Linux超棒OUO
就超級複雜😅
是說有沒有人覺得用了 Arch 以後自然就會用其他版本的 Linux 了
會用Arch你就懂Linux啦(?
安安有人住台北 內湖或大直嗎
至少你不會被Linux玩啦w
哥想夜遊
(還是該說會習慣被玩啊(X
沒用過arch別說自己會用linux
你這樣要 Gentoo 用戶當上帝嗎(?
來台南玩(逃
太遠
可是我用了arch還是不會啊
(看著手上ARM開發版撞牆中
LFS呢(ry
linux from scratch的不就創世神(
[sticker](media:AAQFABMbtssyAASxUPH1BgepOYsOAAIC@telegram)
其实我都是用 crux linux 的
wwwwwww
wwwwwwww
linux from scratch 其实就是找着命令打啊
要就玩带 类ports 源代码安装的,极简的 Linux。Crux Linux 🌚
LFS, Arch 跟 Gentoo 的差別說不定只在於遇到問題的時候的解決時間長短((
還有編譯時間長短(?
LFS 提供的指引是講得很明啦
指令照打 ok
但是就是花時間還有終端機會有很多東西流過看起來非常黑黑 (?
ARM 開發版?覺得有趣
聽起來很RPi阿
其实只要会 Linux 的话,什么 Linux 都一样,但是就要看发行版了
會這樣說的就不是 RPi 了吧(?
rPi很好用啊
至少支援很棒
安装时间,Arch 二进制安装 (abs 除外)
[sticker](media:AAQBABMfue8vAAQP7Rcavf6GObIzAAIC@telegram)
其他拼價格的開發版就(ry
我是 Crux Linux 传教士
你们想要知道什么体位?
之前nvm意外從原始碼安裝node,到最後我就「從編譯到放棄」了
为嘛?
這個 Distro 的社區狀況?
因為bug
nvm 我记得不是二进制安装
极度简单的 distro 不需要社群
我用直覺的 🙈
你要的包自己维护
但是大部分基本的库都有了啦
nvm因為不明理由下載二進制包失敗,以為這個distro沒有編譯好的binary,然後就試圖從原始碼編
自己維護?類似 AUR 那樣嗎
🌚 因为它的包管理器没有检查很多东西。所以你可以自由在 bin 放你的东西,或者是放在 /local/bin 这样自由管理
不知道 nvm 在 rpi 上有沒有 binary
那為甚麼不用 Arch...
看 OS
每個人喜歡的 Distro 不同嘛
因为 arch 太主流 XD
我愛 RPM 體系
开玩笑,因为 arch 太不稳定了
可是公司都 deb
嗚嗚
不穩定?
有一天,我滚一滚更新
apt-get install yml
结果全部东西都乱了
um...我沒遇過耶...
XDDDD,聽起來很 Arch 的作風
你太久沒滾了吧
然后需要另外开个电脑上 arch 官网看 announcement
要天天滾阿
才知道应该怎么做
我ubuntu跑apt跑死到不記得幾次了
滾回去阿(?
是說我決定玩看看 Crux,可是沒有亞洲區的 Mirror 嗎
不然自己 debug,修理都不知道怎么做
arch我還沒滾掛過啊
因为是 pacman 的错
不用到天天吧,每週一次應該差不多
我可以生一個 但 不知能活多久(?
[sticker](media:AAQEABO7v94ZAASddAAB6aXZ1WkBFgACAg@telegram)
有人很久沒滾,然後沒事啊
我是重開就會嘗試滾滾看
ubuntu是每次升每次死吧?
感覺很神祕誒,你生吧(?
幾千個套件更新吧
但是我uptime<1day
不用天天滚,滚之前看看官网
對,很幹
我学到了
那是沒裝啥東西吧?
原本就應該關注官網阿
Fedora 滾上去沒事
你可以寫個 memo 放在螢幕旁邊,寫「更新系統」
我覺得 ubuntu 可以自殺了
雖然太久沒滾第一個會遇到的應該是signing全失效XDDDD
*升
我的系统正常更新,为啥我要关注官网?稳定性大丈夫?
滚动更新 distro 滚一滚就死
这叫什么滚动更新?
你知道更新個Linux kernel都要看看Linux公告嗎
因為套件變更阿...
那又不是發行版的鍋
有那麼嚴重嗎?
我都是在 Docker 上跑,升級沒甚麼必要, docker pull 一下就好了
上游的變更不能怪到arch上阿
我很确定问题是在 pacman
好啦 ubuntu 就是去死
windows更新一般人也不會去看update note 吧?
我就是討厭 跟討厭 FF一樣
雖然公司用 ubuntu 幹
你大概撞到pacman架構變更吧
不 distro upgrade 就對了
FInal Fantacy(?
因为我尝试检查问题,修理了也没有用,要上官网才知道正确做法
Firefox
跟你老闆反應啊(?
之后我就跳到 gentoo 了
其他交給 AWS 做
滾動更新是隨時都在更新
QQ
那我要跟其他人反應
這要多久沒更新才會踩到啊…
更新有事情要注意很正常吧
好啦其實系統都是我在管我爽用什麼都行(?
[sticker](media:AAQFABOXJtAyAATtTu2_4KbwC8kwAAIC@telegram)
原本就是阿
好吧是我的错吧
\Windows 萬歲/
\Windows 萬歲/
很多程式也常常在那改conf
也公告要自己轉換設定格式啊
自動轉換不是必備功能好ㄇ
更新不是先更再說,死了的時候一邊抱怨一邊查更新紀錄嗎(?
那我的口味不对这样的系统
那些非滾動更新的也是把注意事項寫在release noto或者upgrade noto裡吧
[photo](media:AgADBQADOqgxG1n-eVS_WODcTGZZGiEnzDIABN9XdMt3vhQYPXQBAAEC@telegram)
沒有我要的
openSUSE 可以考慮
\FreeBSD/
\FreeBSD/
用 Amazon Linux 就對了
他port很好用
pkg也很棒
我只覺得你不適合任何滾動式更新
你這種用法哪個distro都有機會撞到問題的
那么 gentoo 是不是比 Arch 好?因为重来不会有滚动更新就会死的现象?
聽起來很適合CentOS呢
你沒遇到罷了
我覺得
pacman也就這麼一次架構大改動
你剛好遇到
喜歡滾動可以選 openSUSE Tumbleweed
Linux好容易死掉
你保證gentoo不會?
事实上,因为 arch 激进的更新包而造成不稳定的现象不只是我一个人遇到
你確定不是人的問題?(#
我沒用過gentoo,但是我用arch還沒滾死過
那天openrc大更新會不會你也撞死
當然目前沒發生過
而且也沒遇過沒看官網所以系統爆炸的
你的問題啊!
不用
pacman那次只要沒看公告的都死
你是例外吧,大概死亡機率是在場所有人加起來多一點(?
因為要先更新過資料庫XD
我觉得我讨论的是 distro 捆绑的包,例如包管理器
那是舊版都不相容嗎
你要不要轉 #archlinux-cn 去問有多少人滾死過.-.

但中間有段過渡期
只是沒自動轉換格式
要手動轉w
來用 CoreOS 好了
一般這種不是會自動幫你migrade,或是乾脆阻止你嗎?
是說我記得我第一次灌 Arch 的時候遇到過法國 mirror 死掉,沒辦法裝 yaourt,超緊張的(?
Cliff 別怕,我用Linux也常常死掉
Fedora萬歲
我觉得不必了,我生活过得好好的,没必要输出麻烦
Fedora 萬歲
你知道archlinux-cn看到yaourt就會好心勸退嗎(?
只是说我的观点,并不是事实
是說我家 kde 好久沒自殺了
為什麼,那個對懶人來說很好用啊
yaourt有些包build不起來
為啥
fedora好用這是真的
環境設定問題吧
其實yaourt蠻容易搞壞東西的XDDD
雖然我還是習慣用它XDDD
真的,不管他怎樣靠盃
他很方便
arch很潮。不過我沒那麼勤奮,所以我就裝了延伸版本
我記得當時有說過沒自動migrate的原因
不過要查才知道w
OpenSUSE也蠻棒的
這很好用
Antergos (
我覺得這裡有種只要講對話就會開啟 Distro 大戰的感覺(?
哥要出門耍廢
其實
有其他helper好用
只是我懶得換wwww
我都叫他yogurt
我覺得它把 Arch 搞太肥了
[photo](media:AgADBQADO6gxG1n-eVR-3r78q4ZrbEUYzDIABPUMm2swwKp0j3cBAAEC@telegram)
芒果
[sticker](media:AAQEABPjIGswAAR9oLB6AgWzvlAfAAIC@telegram)
然後開live是ㄇ (#
花了一點時間
寫完了
不知道為什,我不喜歡那東西。
會嗎
沒用過
其他helper也沒差吧,他們不是建議手動嗎
@TsundereChen 你要 mirror 的话,你用 git 的都行
放心改成 gnome 或 kde 你一時之間可能也認不出來(?
等等
arch在我的印象中應該是一套只要隨身碟就可以安裝的系統阿(?
可是你拿了他們貼紙(#
wwww
他的KDE不好看,我說剛裝好的狀態
有什么 distro 不是
變色龍可愛。但是系統我大概連拿來用Server都不要
你還要網路
windows表示
沒有一套是
首先
kde 不是超容易死嗎?
你要有電腦
git ?
[sticker](media:AAQFABP_-ssyAASqqLSedgpT7NIZAAIC@telegram)
@TsundereChen 你把你的 Crux Linux 源都换成这个 https://github.com/6c37
幹話
沒別的原因,就是氣場不合。
然後
還要有插座
AC的
所以要有變電箱
電網
發電廠
發電廠
燃料
Crux Linux 作为的哲学就是,包管理器滚动绝对不会一滚就死
你需要很多東西
發電廠就跟distro一樣
[sticker](media:AAQBABPwYe8vAATz54Yjvy2Mkc4dAAIC@telegram)
不用看官网看这次翻滚需要注意什么
[sticker](media:AAQBABNeW-8vAATFD2NrAThNDDMaAAIC@telegram)
有很多版本
[sticker](media:AAQBABM4Qu8vAARz_sYyX340YhwaAAIC@telegram)
[sticker](media:AAQBABOxWu8vAAROdo7S2DBLE_EbAAIC@telegram)
[sticker](media:AAQFABP_-ssyAASqqLSedgpT7NIZAAIC@telegram)
這樣說吧
你能保證gentoo不會遇到更改包管理系統架構?
當然gentoo就我所知遇到機會不大
畢竟gentoo是比起效能或方便性
更優先以簡單管理設定為主
不 這不需要出現在電腦裡(#
在這樣繼續下去我會把元素週期表貼完
[sticker](media:AAQEABPIZ6YwAAS9wwHlJjAu2JccAAIC@telegram)
我們來討論裝好一套系統不需要什麼好了
出門ㄛ
我安裝成功的時候會告訴你的(?
[photo](media:AgADBQADPKgxG1n-eVSzyjcY-UjdFNcXzDIABJ_Q8J4iDeGHC3cBAAEC@telegram)
如果一个发行版的包管理器更换架构,还是 whatever shit 的话,不影响未来包管理器的运行方式的话,那才是好的发行版
No foul languages!
上面回答"你"的都雞掰人(#
Arch Linux的哲學是RTFM
至少 Arch認為先搞清楚你要幹什麼這點是必須的
而不是什麼都不知道就傻傻更新
嗯,最后我还是修理好了,不过我需要 RTFM
连正常安装包都需要 RTFM
结果竟然是包管理器读不到我安装了什么
那么是我的错?
有M能看都算好
你沒遇過連M都沒有的
是說
Linux的包管理器感覺很方便
我有點意外 Crux 的 iso image 居然要用 BT 下載的...
還好吧 省資源w
那為什麼Windows安裝軟體還是比較方便
[photo](media:AgADBQADPagxG1n-eVRx_K7HESMy6MEmzDIABIT3Ld0RHO2zoXgBAAEC@telegram)
用 CDN 不就好了
什麼都幫你做好了
沒做好的你也沒得處理
出門
$$$
哪有
CloudFlare 呢(?
[photo](media:AgADBQADPqgxG1n-eVRwtyU8Aq7HDxAczDIABB9dftr2of42oXMBAAEC@telegram)
为什么需要 M ? 因为这个系统复杂?还是因为这个系统的包管理器需要让我知道我更新之后有可能爆炸?
有沒有哪個Linux也是這樣的
你好 歡迎跟我代購 Akamai CDN
Crux Linux 就是 M 都没有的那个 🌚
你很適合用windows
因為沒有windows使用者會去RTFM
[sticker](media:AAQBABOcbe8vAAR3B73YU8V5O48NAAIC@telegram)
[photo](media:AgADBQADP6gxG1n-eVQnaMuBYP_18dUhzDIABE8B1CHGmOP5tHoBAAEC@telegram)
嗯……
我用 Linux 时间长过我用 Windows
事實上M$甚至把原本有的M刪掉呢
你的建议我会考虑
人家Linux宅(#
那個help戳下去根本直接跳回官網的
說真的 @zypeh 用 Crux 到現在有什麼抱怨過嗎
我基本整个电脑生涯都是 Linux 的。
如果要我说淦话的话,那就是包管理器的包够用就好。
那我離個題
PHP5->PHP7砍了一堆5就要砍的舊東西
這時一堆人來罵7亂砍東西你說合理嗎?
Arch更新了 但他也公告了 而且也不是今天公告明天就改
我覺得你用了一個東西要知道他怎用
更新時他改了什麼是使用者的義務
不然我建議你買服務 讓人把你的東西處理的好好的
這裡不少人都是這樣欸(?
那么不是更应该友好开放吗?
如果你什麼都不想管
那被炸到我只能說理所當然
人嘛,就這樣嘍XD
我覺得系統間各有所長啦…總不可能叫Linux去跑巫師三嘛w
我覺得
系統各有所長
但是某些系統就是比某些系統長
@koru1130 你要不要試試看在windows安裝firefox chromium obs ffmpeg mpv vs_code libreoffice java hexchat 和在linux上那個比較快比較方便好用
linux一行指令搞定
其實win也可以(?
問題是
windows還要用edge打開網頁下載firefox然後再用firefox開一堆網頁下載一堆安裝檔
有時候相依性會炸
那建構在套件管理上。
你還可以自己選喜歡的管理器用(?
ninite.com
不客氣
然後要自己修相依性
反正就是會噴錯
nuget(?
現在Windows也在跟進啊(?)
Windows Store(笑
你說從裡面抓 Ubuntu 來用嗎,對啊,進步了XDDD
進步很大!
他沒有我上面寫的全部吧
人的問題...
可是可以應付一般人的一堆需求了
一般人不就chrome沒了嗎
[sticker](media:AAQFABM0fb8yAAR5Ho6cL2HtrG4bAAIC@telegram)
现在我也来离个题
如果有天 Windows 变得更加开源了,大量的 Linux 用户进来。你感觉到 Windows 变了,变得更加稳定了,感觉 Windows 内部的架构明朗了许多,你觉得更有信心了。信心来自哪里呢?来自于你理解整个架构。有天你如期更新了,却发现到你开机不能,开机了也辨别不到你所安装的程序,你很疑惑,究竟你干了什么,找来找去也找不到问题,你才发现官网通告说 “肥肠抱歉,我们更新了你的东西,你应该 xxxx 做"。啊啦!你修好了,你就吐槽 Windows 系统做到很烂,烂在更新包竟然会导致你的系统不正常运作。啊竟然没有做到更新 bugfixes 也没有分离配置…… 这样那样客观的建议。

结果被一群 Linux 派的精英主义分子抨击说,用 Arch 的说"RTFM 啦,官网不是写了吗?活该!",Kernel developers 说 “你看看你,竟然不看看 patch 就更新,活该“, Crux Linux 的说 "你应该用了假的包管理器吧?", Windows 的官方回答说:“我们都写了官方通告了,连解决方案都写了,还做了好人,更新了 Manual, 你的问题你家的事“
可能我不知道吧?我也不适合用 Linux 吧?
我只是想要做一个可以用得安心的系统给自己玩
那我問你 你覺得像前相容要做多久才行?
是要做到像windows一樣又肥又大但又做不好嗎?
要更新不會死的系統就windows阿,更新失敗還會還原呢
然後不斷向下相容www
win 2k的程式現在還能跑呢
還是你願意當社群裡那個花費大把時間做向前相容還被罵到死的開發者?
你動物農莊逆
举出一个例子包管理向前兼容?包管理器需要维护 API ?
我覺得向前相容是很重要的
沒有辦法向前相容的東西就可以改名不要用舊名字了
你覺得包的相依性怎處理?
難道裝了包相依性自動解?
這麼方便還需要包管理做什麼?
JVM 嗎?
他更新
超慢
我是覺得major改了就OK了
或者你覺得FIrefox該改名了嗎(X
(望隔壁棚
可是還是很QQ
而且他那版本號
根本
不改名就會產生更新的一堆問題
沒價值了
都是Chrome教壞的(X
譴責
現在
想當年firefox跨版更新都有慶祝的
然後?
又一堆人罵舊的放生不更新XDDD
不會啊
要用新的就自己下載啊
\XP再戰10年/
\XP再戰10年/
一行指令是有多難
然後呢
改了名大多人不會知道有新的啊
因為不同東西嘛XD
嗯,不错很 arch 。这就是把包的 metadata 读取方式和安装方式连在一起。
不知道有新的的人也不知道他不能向前相容啊
比更新之後炸掉好
我觉得啦
我还是道歉比较好,我觉得是我的错
跳出大大的跳窗,你知道有更新的XXX了,要試試看嗎?就像某些中國app(?)
反正要用新功能的會自己去找的
XDDDDD
而且只有dismiss沒有永久取消的選項那樣
我不懂你要說什麼
包管理器知道你裝了什麼就是看metadata
今天metadata格式變了
沒更新自然讀不出來
這點不管什麼包管理器都一樣
没关系
每調用一次就 print 一次問題
「發現到新版本,是否更新?」[(Y)es / (R)emind me later]
當然一般distro會盡量讓你幾年前的版本還是能支援自動更新
不過我只能說這不是Arch的作風
一般的系統也只能讓你更新相鄰版本號吧
可是arch的更新速度(?
所以不切實際?
剛起床
來圍觀
我要睡觉了
arch另一個常遇到的是pacman local的pgp key過期XDDD
不過key過期是很小的小問題www
[sticker](media:AAQEABO7v94ZAASddAAB6aXZ1WkBFgACAg@telegram)
總不可能為了從 1.0 更新到 1.9 ,把 1.1 1.2 13....1.9 全部下載一遍之類
其實如果是資料庫部分變動
是可以寫很多版本的migrate 然後只抓這些啦
還算實際(?
包管理一般會處裡migrate嗎?
但這是他自己的db啊XD
不過ubuntu就真的只能 14.0 14.1 14.2 -> 15.0 這之類一個一個跳了,因為根本沒有跨版本的migrate
ubuntu要被罵惹(X
但是我還沒有一次更新沒被炸掉系統的,總覺得...不太實際?
但我實際上還沒有ubuntu更新被炸很慘的說XDDD
這跟我ubuntu只用lts有關嗎wwwww
可能歐
還是debian testing比較安定(X
kubuntu 每次跳出的系統更新按鈕,都讓我覺得很毛
ubuntu可以LTS更新啊
就兩年一次
是說你們會更新系統kernel嗎?
改成 4.8 之類
arch常更新 無感(?
arch一直都是mainline版吧?
明明是stable w
mainline是有要追的才會用啊w
雖然我有在用mainline啦
4.13
Allwinner真的很棒(ry
有人玩過我滿懷希望的有並嗎
推嗎
戳戳戳戳戳
沒了
@coin3x 我決定問你
看了一下才注意到
原來4.13不知不覺上到rc4惹
阿幹他就真的只是戳戳戳戳戳阿
原來是stable阿
你是lts用太習慣當它stable了嗎w
話說除了mainline
不知道有沒有人用linux-next的XD
怎樣
我不久前把 Server 更新到 4.11,然後 Docker 就死掉惹
蒸蜯
OWO
docker太舊惹(?
推嗎
沒欸,我記得都有更新,是 Kernel 好像不支援 AUFS
是說 Docker 用不同 Storage Driver 會有什麼大影響嗎
aufs一直都沒進kernel啊
請自行上patch
效能跟穩定性差異(?
還有空間差異w
…算了,反正只是拿來開 Shadowsocks,沒差
我在想我610有沒有可能串流1080p60
幫 Kernel 上 Patch 不會很痛苦嗎
棒,重新編譯
我最近才上了好幾個
沒啥啊
雖然我覺得 根本沒上成功(?
覺得複雜
還在悠閒找問題🙈
可是如果上了以後重開機炸了,可是碰不到機器,那不就悲劇了(?
你說有病嗎
Patch
我以為更新kernel本來就要摸得到的狀況下做
沒有很複雜,五個英文字母而已
比起environment簡單多了
那裝 Ubuntu 提供的 Kernel deb 檔不算更新 Kernel 嘍(?
算啊
看你信不信ubuntu的kernel沒問題這樣(?
雖說上repo的東西應該要沒問題啦(?
我顯卡光是合成1080p的影像就不到60fps了.-.
但ubuntu也沒全世界的機器可以測試XDD
不,那是從網站上抓下來的 XD
慘案
被你這樣一說,我開始擔心我的伺服器炸掉了QQ
正常吧OWO?
上了 大屯山
然後
還好啦w
三棵單眼電池都沒電
伺服器爆炸是日常(X
忘記充電?
QQQQQQQQ
恩忘記
你跟你旁邊那位借一下就行了(?
還好你有 iPhone(?
我可憐N家
旁邊都canon
有的可以限大小,有的不行
話說
限大小記得不多吧w
有人帶了 1500mm 反射鏡
跟人一樣高的
好www
機器操作轉向
devicemapper可以,其他我就不清楚了
該下山了
有看到幾顆流星
世說c9.io是怎麼做到動態調整device mapper的colume的,我記得那明明就是docker daemon的參數阿
能動態調整根本不科學阿
?
c9.io用了某種方法,在不reload docker daemon得前提下,開出不一樣大小的 devicemapper 的容器
理論上容器大小是直接寫在 daemon 設定上的
或是他直接用device mapper的指令暴力調整容器大小呢...
你是說container的大小限制?
yep
run可以指定一段時間了吧?
只有io速度跟權重吧?
可以直接下 —storage-opt 啊
早安
剛下山
都還沒看到太陽呢(X
沒辦法單眼沒電
Telegram 除了阿姆斯特丹有資料中心 還有哪裡啊
天殺慢
可能用可以線上調整大小的fs然後直接整個分割去掛進去
可是c9.io存在更久了
打點patch而已啊OWO
自訂改造版的docker的意思?
昨天是英仙座流星雨
我知道啊
所以我上山看
我去海邊看🙈
然後幹沒一張照片中流行
然後我單眼沒電
笑死
Xdd
3科都沒電
我昨天也看到一堆流星
接機車電瓶(
110v 充電器
手機上了(X
[photo](media:AgADBQADv6cxG1n-gVR1wrkq5NbWKQQRzDIABOWQD4bTYxiiBHsBAAEC@telegram)
obike
OwO
我還沒看過流星欸
嗚嗚
應該只有熬夜的人才看得到吧
而且還要去很遠的地方
沒關係
台北連星星都看不到幾顆
嗚嗚嗚
對(
網路上有
<!DOCTYPE html>
<html lang="en">
<head>
  <!-- byStarTW 製作範本 -->
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <!-- Tocas UI:CSS 與元件 -->
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/tocas-ui/2.3.3/tocas.css">
  <!-- Tocas JS:模塊與 JavaScript 函式 -->
  <script src="https://cdnjs.cloudflare.com/ajax/libs/tocas-ui/2.3.3/tocas.js"></script>
  <title> {網站標題} </title>
  <!-- Tocas UI: 自適應設定 -->
  <style type="text/css">
html {
  margin-top:20px;
  border: 1px solid 000000;
    font-size: 16px;
}
// 在行動裝置上將字體轉換成 `14px` 大小。
@media (max-width: 768px) {
    html {
        font-size: 14px;
    }
}
</style>
</head>
<body>
<div class="ts narrow container">
<!-- 網站主體 -->
<!-- 網站編碼請設定為 UTF-8-->
<!-- 請善用 Tocas UI 的範例 & 素材 -->
</div>
</body>
</html>
Tocas UI 範本
我是覺得拉 你連metadata都沒有
不過這只是從服務頁面分離出來的欸
服務頁面基本上不會被 Google 索引
然後 metadata 晚點加
en 🌚
<meta http-equiv=”Content-Language” content=”zh-TW”>
[sticker](media:AAQCABNeJ4MqAARuGIzcqRbMxm0OAAIC@telegram)
[sticker](media:AAQFABOJ_MAyAAQk3ClWwIWgIO4eAAIC@telegram)
喔好 <html lang=zh>
這樣可以嗎?
:D
[photo](media:AgADBQADwacxG1n-gVTjYqLF3MMYlDYUzDIABKWz-7ssXDCrP3MBAAEC@telegram)
喔對了,因為懶著調 Firefox 的搜尋引擎,所以就用 Yahoo
因為這一次他每次調完 Search Engine 重開機後都會消失
What The Fuok
好像是語系問題
剛剛又拿朋友手機評分🌚
應該是語系問題
親,刷排名嗎
只是讓他好看點
熱門榜也不是這點規模辦得到的
我覺得 Google Play 會依照 Google 帳號的語系 or 手機語系來調整 Google Play 的留言。
也許吧
我不知道
既然人都出來了,順手刷三個五星吧 (#
好喔
你應該有 5+ Google 帳號🌚
我要給一星
(#
[photo](media:AgADBQADxKcxG1n-gVSgFBYMXgtVwKEezDIABGDZnqVFtxcpAAF2AQABAg@telegram)
支持
這有什麼用
你問這 App 用途嗎
就是 Bot API Sender 啊
[photo](media:AgADBQADxacxG1n-gVQAAROmCUB2xfwJDswyAAT9BNmch7xnO-t3AQABAg@telegram)
沒後門,放心
[photo](media:AgADBQADxqcxG1n-gVR88fdt9Ps-0qMazDIABOO-JZW73vxMi3oBAAEC@telegram)
不懂
就這樣
唯一記錄資料是 OneSignal 回傳型號
Invoke
懂了嗎
[photo](media:AgADAQADwqcxG9-MgURENrR4Kr-t3ud_3i8ABIhu-HKB8eglay8CAAEC@telegram)
唉呦 不只(#
呼叫API的
[photo](media:AgADBQADx6cxG1n-gVQo5L7nKXWmDNwVzDIABC_MhlxlPE8mE3QBAAEC@telegram)
每日更新呢
還可以送通知
好的,看起來很沒用就對了
你的出現為YSITD貢獻不少水量
[photo](media:AgADBQADyKcxG1n-gVSqhjg-99tX8LsozDIABM-9pHAG3eLa5ngBAAEC@telegram)
只是警告 Auto Update 很煩而已
[photo](media:AgADAQADw6cxG9-MgUSaeguZmy-lFVVe9y8ABLzso9ICIt36t14BAAEC@telegram)
可以看 GitHub Commit Log
他也不會把VLC或potplayer寫在上面阿(?
那不是遊戲
你說沒有把chrome和firefox寫在上面還比較合理
那很遊戲
只要把網路線拔掉, Chrome 本身就是遊戲了
喔好吧 不懂梗就算了
[photo](media:AgADBQADyqcxG1n-gVRi-wGMN-vSJQABDcwyAASdHusXbWWG8_t0AQABAg@telegram)
恭喜 :)
Weekly
排名前面不是全部,都是水也沒用
QQ
覺得也許可以增加可以自己選Limux發行版的選項(但會產生流量,因為會從官網載)
WordPress某一些第三方插件因此關閉,雖然對我來說沒有差

但架構大轉換在Firefox,有很多插件作者不滿覺得要重寫,因此宣布棄坑(新程式碼做得到但作者不爽開發)
或是自己上傳 iso 檔案 (?
光是介面要全部打掉重寫就夠坑了吧…很多plugin都有超複雜的設定畫面,
所以,大型架構替換,無法向下相容確實會引發開發者不滿
而且有可能新的架構不能支援某些功能
不然就是要花更多的時間去完成
這也是java必須一直向下相容舊程式的原因XDD
因為java肥的跟什麼一樣,重寫會死人
光是標準API要重寫就會死人了www
其實我覺得 java 可以重新改名為 "java-new"
然後打掉舊架構,直接寫改良版。

就算不能向下相容,還有 java 可以用啊。 💯
但如果 java-new 更肥的話就算了
這樣子喔
然後社群就分裂了,就像Python一樣
java 改良版 - nawa(
Python 3 🌝
我是覺得JAVA 9可以淘汰掉java 6了啦
但是 java 6 的程式還一堆欸
特別是 2008~2011 年的開發工具
[photo](media:AgADAQADxKcxG9-MgUTOg-kBY8YjOsOE3i8ABP_Qub2Ditx8xeABAAEC@telegram)
java的每一個舊版的程式碼,都是符合格式的新版程式碼啊
js 也是
[photo](media:AgADBQADy6cxG1n-gVRqvJR6wNEv2qIZzDIABBj8NxLBxyMeCnoBAAEC@telegram)
Perfect :)
只要拿高版本的jdk重編,就能無痛升級啊
<del>如果程式開發者也懶著安裝新版 JDK 的話呢?</del>
不會怎樣,反正新版jvm也可以跑舊版編出來的東西
事實上現在是根本不用重編那個bytecode就可以直接在新版runtime跑
[photo](media:AgADBQADzKcxG1n-gVQffM12oKAHDbAUzDIABFc-_VUVM98T2HYBAAEC@telegram)
但是java 9模組化阿,整個jar架構有改
鏡淨
雖然還是有做向下相容.-.
接著 Java 11 就可以破 1GB 大關了
更肥
更臃腫
Java 主程式大小的趨勢是越來越高還是基本上持平?
不過覺得php轉7聽起來沒有Firefox換架構被批得那麼慘
因為 Firefox 的外掛架構改很大啊
他意思不是要令照片變復古
是令復古照片變正常
所以 濾淨 沒問題
php 7 在部份情況下可以向下相容
Firefox 新版架構就完全不能向下相容
至少 echo "hello world" 還能用啊
java 9沒有rt.jar惹
蒸棒
再也不用開個JVM就載入那肥到爆炸的rt.jar
firefox是跟你說全部都要打掉,要你從0個字重寫啊
嗯,難怪
除非原本就有chrome版
不過有chrome版的外掛功能都不複雜阿
很多套件本身就不可能有chrome版,因為都是直接修改firefox的UI
其實 Firefox 如果釋出可以方便讓開發者轉移程式碼至新版的工具
也許就不會罵的那麼慘了
像是下載列之類有的沒的,或是修改firefox下載選項裡的清單
那些都是直接動firefox本身ui
原來下載選項清單沒有被移植到web ext API?
光字面意思就沒有了
chrome哪來下載清單
可是mozilla有加一堆新API進去阿
web ext 又不是 Firefox 獨佔的
嗚嗚
但firefox沒有義務一切跟著chrome的api走
FasterFox 就要死了
@licson 你最愛的CMS GC被刪掉了
被G1GC取代
你說Java lang 還JVM
那蛇ㄇ
Java lang
打開你的java安裝資料夾
那就改用Kotlin好了(#
Google不是在推嗎
Google [rt.jar Java]
lib裡面
他幹嘛的
用你好蚌蚌7zip打開他
rt.jar --> Runtine
time
JRE下的rt.jar:

这个文件是极为重要的一个文件,rt是runtime的缩写,即运行时的意思。是java程序在运行时必不可少的文件。

里面包含了java程序员常用的包,如java.lang,java.util,java.io,java.net,java.applet等

 

1. rt.jar 默认就在 根classloader的加载路径里面 放在claspath是多此一举  

不信你可以去掉classpath里面的rt.jar  

然后用 java -verbose XXXX 的方式运行一个简单的类 就知道 JVM的系统根Loader的路径里面  不光rt.jar jre/lib下面的大部分jar 都在这个路径里
這很殘體
所以要 Big5 化嗎
類似.net lib的概念嗎
你只要知道你開JVM的瞬間他就把那肥爆的東西載入進去就對了
The problem is that Java 9 JDK has different file structure, e.g. tools.jar and rt.jar
are completely gone. These files are used by the IDEs to work with JDK. From this articles it seems IntelliJ Idea does not support Java 9:
https://youtrack.jetbrains.com/issue/IDEA-145206
剛查了一下
我不太確定這是不是 rt.jar 消失的原因
挖屋
沒事,看錯了
[sticker](media:AAQBABOcbe8vAAR3B73YU8V5O48NAAIC@telegram)
簡單的講
rt.jar 被 Jigsaw 取代了
單純只是被拆成好幾個module而已
Q每周精要。

马上订阅



中文

Java 9终于要包含Jigsaw项目了 1喜欢

登陆InfoQ,与你最关心的话题互动。

E-mail

密码

使用Google账号登录使用Microsoft账号登录使用Weibo账号登录

忘记密码?没有帐号?立即注册





关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。



内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。



获取更新

设置通知机制以获取内容更新对您而言是否重要

作者 Nicolai Parlog ,译者 张卫滨 发布于 2016年2月3日 
估计阅读时间: 2 分钟

添加至阅
读列表

查看我的
阅读列表

当Jigsaw在Java 9中最终发布时,这个项目的历史已经超过八年了。

在最初的几年中,它必须要与另外两个类似的Java规范请求(Java Specification Request)进行竞争,这两个规范名为JSR 277 Java模块系统(Java Module System)以及JSR 294 增强的模块化支持(Improved Modularity Support)。它还导致了与OSGi社区的冲突,人们担心Jigsaw项目会成为不必要且不完备的功能性重复,逼迫Java开发人员必须在两种互不兼容的模块系统中做出选择。

在早期,这个项目并没有充足的人手,在2010年Sun并入Oracle的时候,甚至一度中断。直到2011年,在Java中需要模块系统的强烈需求被重申,这项工作才得到完全恢复。

接下来的三年是一个探索的阶段,结束于2014年的7月,当时建立了多项Java增强提议( Java Enhancement Proposal),包括JEP 200 模块化JDK(Modular JDK)、JEP 201 模块化源码(Modular Source Code)和JEP 220 模块化运行时镜像(Modular Run-Time Image),以及最终的JSR 376 Java平台模块系统(Java Platform Module System)。上述的最后一项定义了真正的Java模块系统,它将会在JDK中以一个新JEP的形式来实现。

在2015年7月,JDK划分为哪些模块已经大致确定(参见JEP 200),JDK的源码也进行了重构来适应这种变化(参见JEP 201),运行时镜像(run-time image)也为模块化做好了准备(参见JEP 220)。所有的这些都可以在当前JDK 9的预览版中看到。

针对JSR 376所开发的代码很快将会部署到JDK仓库中,但是令人遗憾的是,现在模块化系统本身尚无法体验。(目前,Java 9的预览版本已经包含了模块化功能。——译者注)

驱动力

在Jigsaw项目的历史中,它的驱动力也发生过一些变化。最初,它只是想模块化JDK。但是当人们意识到如果能够在库和应用程序的代码中也使用该工具的话,将会带来非常大的收益,于是它的范围得到了扩展。

不断增长且不可分割的Java运行时

Java运行时的大小在不断地增长。但是在Java 8之前,我们并没有办法安装JRE的子集。所有的Java安装包中都会包含各种库的分发版本,如XML、SQL以及Swing的API,不管我们是否需要它们,都要将其包含进来。

对于中等规模(如桌面PC和笔记本电脑)以上的计算设备来说,这不算是什么严重的问题,但是对于小型的设备来说,这就很严重了,比如在路由器、TV盒子和汽车上,还有其他使用Java的小地方。随着当前容器化的趋势,在服务器领域也有相关的要求,因为减少镜像的大小就意味着降低成本。

Java 8引入了 compact profile的功能,它们定义了三个Java SE的子集。在一定程度上缓解了这个问题,但是它们只有在严格限制的场景下才能发挥作用,profile过于死板,无法涵盖现在和未来所有使用JRE部分功能的需求。

JAR/Classpath地狱

JAR地狱和Classpath地狱是一种诙谐的说法,指的是Java类加载机制的缺陷所引发的问题。尤其是在大型的应用中,它们可能会以各种方式产生令人痛苦的问题。有一些问题是因为其他的问题而引发的,而有一些则是独立的。

无法表述依赖

JAR文件无法以一种JVM能够理解的方式来表述它依赖于哪些其他的JAR。因此,就需要用户手动识别并满足这些依赖,这要求用户阅读文档、找到正确的项目、下载JAR文件并将其添加到项目中。

而且,有一些依赖是可选的,只有用户在使用特定功能的特性时,某个JAR才会依赖另外一个JAR。这会使得这个过程更加复杂。

Java运行时在实际使用某项依赖之前,并不能探测到这个依赖是无法满足的。如果出现这种情况,将会出现NoClassDefFoundError异常,进而导致正在运行的应用崩溃。

像Maven这样的构建工具能够帮助解决这个问题。

传递性依赖

一个应用程序要运行起来可能只需依赖几个库就足够了,但是这些库又会需要一些其他的库。问题组合起来会变得更加复杂,在所消耗的体力以及出错的可能性上,它会呈指数级地增长。

同样,构建工具能够在这个问题上提供一些帮助。

遮蔽

有时候,在classpath的不同JAR包中可能会包含全限定名完全相同的类,比如我们使用同一个库的两个不同版本。因为类会从classpath中的第一个JAR包中加载,所以这个版本的变种将会“遮蔽”所有其他的版本,使它们变得不可用。

如果这些不同的变种在语义上有所差别,那将会导致各种级别的问题,从难以发现的不正常行为到非常严重的错误都是有可能的。更糟糕的是,问题的表现形式是不确定的。这取决于JAR文件在classpath中的顺序。在不同的环境下,可能也会有所区别,例如开发人员的IDE与代码最终运行的生产机器之间就可能有所差别。

版本冲突

如果项目中有两个所需的库依赖不同版本的第三个库,那么将会产生这个问题。

如果这个库的两个版本都添加到classpath中的话,那么最终的行为是不可预知的。首先,因为前面所述的遮蔽问题,两个版本的类中,只会有一个能够加载进来。更糟糕的是,如果某个类位于一个JAR包中,但是它所访问的其他类却不在这个包中,这个类也能够加载。所导致的结果就是,对这个库的代码调用将会混合在两个版本之中。

在最好的情况下,如果试图访问所加载的类中不存在的代码,将会导致明显的NoClassDefFoundError错误。但是在最坏的情况下,版本之间的差别仅仅是在语义上,实际的行为会有细微的差别,这会引入很难发现的bug。

识别这种情况所导致的难以预料的行为是很困难的,也无法直接解决。

复杂的类加载机制

默认情况下,所有的类由同一个ClassLoader负责加载,在有些场景下,可能有必要引入额外的加载器,例如允许用户加载新的类,对应用程序进行扩展。

这很快就会导致复杂的类加载机制,从而产生难以预期和难以理解的行为。

在包之间,只有很弱的封装机制

如果类位于同一个包中,那Java的可见性修饰符提供了一种很棒的方式来实现这些类之间的封装。但是,要跨越包之间边界的话,那只能使用一种可见性:public。

因为类加载器会将所有加载进来的包放在一起,public的类对其他所有的类都是可见的,因此,如果我们想创建一项功能,这项功能对某个JAR是可用的,而对于这个JAR之外是不可用的,这是没有办法实现的。

手动的安全性

包之间弱封装性所带来的一个直接结果就是,安全相关的功能将会暴露在同一个环境中的所有代码面前。这意味着,恶意代码有可能绕过安全限制,访问关键的功能。

从Java 1.1开始,有一种hack的方式,能够防止这种状况:每当进入安全相关的代码路径时,将会调用SecurityManager,并判断是不是允许访问。更精确地讲,它应该在每个这样的路径上都进行调用。过去,在有些地方遗漏了对它们的调用,从而出现了一些漏洞,这给Java带来了困扰。

启动性能

最后,Java运行时加载并JIT编译全部所需的类需要较长的时间。其中一个原因在于类加载机制会对classpath下的所有JAR执行线性的扫描。类似的,在识别某个注解的使用情况时,需要探查classpath下所有的类。

目标

Jigsaw项目的目标就是解决上面所述的问题,它会引入一个语言级别的机制,用来模块化大型的系统。这种机制将会用在JDK本身中,开发人员也可以将其用于自己的项目之中。

需要注意的是,对于JDK和我们开发人员来说,并不是所有的目标都具有相同的重要性。有一些与JDK具有更强的相关性,并且大多数都对日常的编程不会带来巨大的影响(这与最近的语言修改形成了对比,如lambda表达式和默认方法)。不过,它们依然会改变大型项目的开发和部署。

可扩展性的平台

JDK在模块化之后,用户就能挑出他们需要的功能,并创建自己的JRE,在这个JRE中只包含他们需要的模块。这有助于在小型设备和容器领域中,保持Java作为关键参与者的地位。

在这个提议的规范中,允许将Java SE平台及其实现分解为一组组件,开发人员可以把这些组件组装起来,形成自定义的配置,里面只包含应用实际需要的功能。—— JSR 376

可靠的配置

通过这个规范,某个模块能够声明对其他模块的依赖。运行时环境能够在编译期(compile-time)、构建期(build-time)以及启动期(launch-time)分析这些依赖,如果缺少依赖或依赖冲突的话,很快就会发生失败。

强封装

Jigsaw项目的一个主要目标就是让模块只导出特定的包,其他的包是模块私有的。

模块中的私有类就像是类中的私有域。换句话说,模块的边界不仅确定了类和接口的可见性,还定义了它的可访问性。——Mark Reinhol
d所撰写的文章“Project Jigsaw:将宏伟蓝图转换为可聚焦的点”

提升安全性和可维护性

在模块中,内部API的强封装会极大地提升安全性,因为核心代码对于没有必要使用它们的其余代码来讲是隐藏起来的。维护也会变得更加容易,这是因为我们能够更容易地将模块的公开API变得更小。

随意使用Java SE平台实现的内部API不仅有安全风险,而且也会带来维护的负担。该提议规范能够提供强封装性,这样实现Java SE平台的组件就能阻止对其内部API的访问。 —— JSR 376

提升性能

因为能够更加清晰地界定所使用代码的边界,现有的优化技术能够更加高效地运用。

很多预先(ahead-of-time)优化和全程序(whole-program)优化的技术会更加高效,因为能够得知某个类只会引用几个特定组件中的类,它并不能引用运行时所加载的任意类。 —— JSR 376

核心概念

因为模块化是目标,所以Jigsaw项目引入了模块(module)的概念,描述如下:

命名、自描述的程序组件,会包含代码和数据。模块必须能够包含Java类和接口,组织为包的形式,同时也能以动态加载库的形式(dynamically-loadable library)包含原生代码。模块的数据必须能够包含静态资源文件和用户可编辑的配置文件。 —— Java平台模块系统:需求(草案2)

为了能够基于一定的上下文环境来了解模块,我们可以想一下知名的库,如Google Guava或Apache Commons中的库(比如Collections或IO),将其作为模块。根据作者希望划分的粒度,每个库都可能划分为多个模块。

对于应用来说也是如此。它可以作为一个单体(monolithic)的模块,也可以进行拆分。在确定如何将其划分为模块时,项目的规模和内聚性将是重要的因素。

按照规划,在组织代码时,模块将会成为开发人员工具箱中的常规工具。

开发人员目前已经能够考虑到一些标准的程序组件,如语言层面的类和接口。模块将会是另外一种程序组件,像类和接口一样,它们将会在程序开发的各个阶段发挥作用。 ——Mark Reinhold的文章“Project Jigsaw:将宏伟蓝图转换为可聚焦的点”

模块又可以进一步组合为开发阶段的各种配置,这些阶段也就是编译期、构建期、安装期以及运行期。对于我们这样的Java用户来说,可以这样做(在这种情况下,通常会将其称之为开发者模块),同时这种方式还可以用来剖析Java运行时本身(此时,它们通常称之为平台模块)。

实际上,这就是JDK目前进行模块化的规划。

(点击放大图像)



特性

那么,模块是如何运行的呢?查阅一下Jigsaw项目的需求以及 JSR 376将会帮助我们对其有所了解。

依赖管理

为了解决“JAR/Classpath地狱”的问题,Jigsaw项目的一个关键特性就是依赖管理。让我们看一下这些相关的组件。

声明与解析

模块将会声明它需要哪些其他的模块才能编译和运行。模块系统会使用该信息传递性地识别所有需要的模块,从而保证初始的那个模块能够编译和运行。

我们还可以不依赖具体的模块,而是依赖一组接口。模块系统将会试图据此识别模块,这些模块实现了所依赖的接口,能够满足依赖,系统会将其绑定到对应的接口中。

版本化

模块将会进行版本化。它们能够标记自己的版本(在很大程度上可以是任意格式,只要能够完全表示顺序就行),版本还能用于限制依赖。在任意阶段都能覆盖这两部分信息。模块系统会在各个阶段都强制要求配置能够满足所有的限制。

Jigsaw项目不一定会支持在一个配置中存在某个模块的多个版本。但是,稍等,那该如何解决JAR地狱的问题呢? 好问题!

版本选择——针对同一个模块,在一组不同版本中挑选最合适的版本——并没有作为规范所要完成的任务。所以,在我撰写的上文中,模块系统会识别所需的模块进行编译,在运行时则可能会使用另外一个模块,这都基于一个假设,那就是环境中只存在模块的一个版本。如果存在多个版本的话,那么上游的步骤(如开发人员或者他所使用的构建工具)必须要做出选择,系统只会校验它能满足所有的约束。

封装

模块系统会在各个阶段强制要求强封装。这是围绕着一个导出机制实现的,在这种情况下,只有模块导出的包才能访问。封装与SecurityManager所执行的安全检查是相独立的。

这个提议的具体语法尚没有定义,但是JEP 200提供了一些关键语义的XML实例。作为样例,如下的代码声明了java.sql模块。

<module> <!-- 模块的名字 --> <name>java.sql</name> <!-- 每个模块都会依赖java.base --> <depend>java.base</depend> <!-- 这个模块依赖于java.logging和java.xml 模块,并重新导出这些模块所导出的API包 --> <depend re-exports="true">java.logging</depend> <depend re-exports="true">java.xml</depend> <!-- 这个模块导出java.sql、javax.sql以及 javax.transaction.xa包给其他任意的模块 --> <export><name>java.sql</name></export> <export><name>javax.sql</name></export> <export><name>javax.transaction.xa</name></export> </module>

从这个代码片段我们可以看出,java.sql依赖于java.base、java.logging以及java.xml。在稍后介绍不同的导出机制时,我们就能理解上文中其他的声明了。

导出

模块会声明特定的包进行导出,只有包含在这些包中的类型才能导出。这意味着其他模块只能看到和使用这些类型。更严格是,其他模块必须要显式声明依赖包含这些类型的模块,这些类型才能导出到对应的模块中。

非常有意思的是,不同的模块能够包含相同名称的包,这些模块甚至还能够将其导出。

在上面的样例中,java.sql导出了java.sql、javax.sql以及javax.transaction.xa这些包。

重新导出

我们还能够在某个模块中重新导出它所依赖的模块中的API(或者是其中的一部分)。这将会对重构提供支持,我们能够在不破坏依赖的情况下拆分或合并模块,因为最初的依赖可以继续存在。重构后的模块可以导出与之前相同的包,即便它们可能不会包含所有的代码。在极端的情况下,有一种所谓的聚合器模块(aggregator module),它可以根本不包含任何代码,只是作为一组模块的抽象。实际上,Java 8中所提供的compact profile就是这样做的。

从上面的例子中,我们可以看到java.sql重新导出了它依赖的API,即java.logging和java.xml。

限制导出

为了帮助开发者(尤其是模块化JDK的人员)让他们所导出API的有较小的接触面,有一种可选的限制导出(qualified export)机制,它允许某个模块将一些包声明为只针对一组特定的模块进行导出。所以使用“标准”机制时,导出功能的模块并不知道(也不关心)谁会访问这些包,但是通过限制导出机制,能够让一个模块限定可能产生的依赖。

配置、阶段以及保真性(Fidelity)

如前所述,JEP 200的目标之一就是模块能够在开发的各个阶段组合为各种配置。对于平台模块可以如此,这样就能够创建与完整JRE或JDK类似的镜像,Java 8所引入的compact profile以及包含特定模块集合(及其级联依赖)的任意自定义配置都使用了这种机制。类似的,开发人员也可以使用这种机制来组合他们应用程序的不同变种。

在编译期(compile-time),要编译的代码只能看到所配置的模块集合中导出的包。在构建期(build-time),借助一个新的工具(可能会被称为JLink),我们能够创建只包含特定模块及其依赖的二进制运行时镜像。在安装期(launch-time),镜像能够看起来就像是只包含了它所具有的模块的一个子集。

我们还能够替换实现了授权标准(endorsed standard)和 独立技术(standalone technology)的模块,在任意的阶段都能将其替换为较新的版本。这将会替代已废弃的授权标准重载机制(endorsed standards override mechanism)以及扩展机制(参见下文。)

模块系统的各个方面(如依赖管理、封装等等),在所有阶段的运行方式是完全相同的,除非因为特定的原因,在某些阶段无法实现。

模块相关的所有信息(如版本、依赖以及包导出)都会在代码文件中进行描述,这样会独立于IDE和构建工具。

性能

全程序优化的技术

在模块系统中,借助强封装技术,能够很容易自动计算出一段特定的代码都用在了哪些地方。这会使得程序分析和优化技术更加可行:

快速查找JDK和应用程序的类;及早进行字节码的检验;积极级联(aggressive inlining)像lambda表达式这样的内容以及其他的编译器优化;构建特定于JVM的内存镜像,它加载时能够比类文件更加高效;预先将方法体编译为原生代码;移除没有用到的域、方法和类。——Jigsaw项目: 目标 & 需求(草案3)

有一些被称为全程序优化(whole-program optimization)的技术,在Java 9中至少会实现两种这样的技术。还有包含一个工具,使用这个工具能够分析给定的一组模块,并使用上述的优化技术,创建更加高性能的二进制镜像。

注解

目前,要自动发现带有注解
的类(如Spring注解标注的配置类),需要扫描特定包下的所有类。这通常会在程序启动的时候完成,这在相当程度上会减慢启动的过程。

模块将会提供一个API,允许调用者识别所有带有给定注解的类。一种预期的方式是为这样的类创建索引,这个索引会在模块编译的时候创建。

与已有的概念和工具集成

诊断工具(如栈跟踪信息)将会进行更新,其中会包含模块的信息。而且,它们还会集成到反射API中,这样就能按照操作类的方式来使用它们,还会包含版本信息,这一信息可以进行反射,也可以在运行时重载。

模块的设计能够让我们在使用构建工具时“尽可能地减少麻烦(with a minimum of fuss)”。编译之后的模块能够用在classpath中,也能作为一个模块来使用,这样的话,库的开发人员就没有必要为classpath应用和基于模块的应用分别创建多个构件了。

与其他模块系统的相互操作也进行了规划,这其中最著名的也就是OSGi。

尽管模块能够对其他的模块隐藏包,但是我们依然能够对模块包含的类和接口执行白盒测试。

特定OS的包

模块系统在设计时,始终考虑到了包管理器文件格式,“如RPM、Debian以及Solaris IPS”。开发人员不仅能够使用已有的工具将一组模块集合创建为特定OS的包,这些模块还能调用按照相同机制安装的其他模块。

开发人员还能够将组成应用的一组模块打包为特定OS的包,“终端用户能够按照目标系统的通用做法,安装和调用所打成的包”。基于上述的介绍,我们可以得知只有目标系统中不存在的模块才必须要打包进来。

动态配置

正在运行中的应用能够创建、运行并发布独立的模块配置。在这些配置中,可以包含开发者和平台模块。对于容器类架构,这会非常有用,如IDE、应用服务器或其他Java EE平台。

不兼容性

按照Java的惯例,这些变更在实现时,会强烈关注到向后的兼容性,所有标准和非废弃的API及机制都能够继续使用。但是项目可能会依赖其他缺乏文档的构造,这样的话,在往Java 9迁移的时候,就需要一些额外的工作了。

内部API不可用了

借助于强封装,每个模块能够明确声明哪些类型会作为其API的一部分。JDK将会使用这个特性来封装所有的内部API,因此它们会变得不可用了。

在Java 9所带来的不兼容性中,这可能是涵盖范围最大的一部分。但是这也是最明显的,因为它会导致编译错误。

那么,什么是内部API呢?毫无疑问,位于sun.*包中的所有内容。如果位于com.sun.*包中,或者使用了@jdk.Exported注解,在Oracle JDK中它依然是可用的,如果没有注解的话,那么它就是不可用的了。

能产生特殊问题的一个样例就是sun.misc.Unsafe类。它用在了很多项目中,用来实现关键任务或性能要求较高的代码,它将来可能不可用引发了很多的相关讨论。不过,在一次相关的交流中曾经提出,通过一个废弃的命令行标记,它依然是可用的。考虑到无法将其所有的功能都放到公开API中,这可能是一种必要的权衡。

另外一个样例是com.sun.javafx.*包中的所有内容。这些类对于构建JavaFX控件是至关重要的,并且它们还有一定数量的bug要修改。这些类中的大多数功能都会作为发布的目标。

合并JDK和JRE

在具有可扩展的Java运行时之后,它允许我们很灵活地创建运行时镜像,JDK和JRE就丧失了其独有的特性,它们只是模块组合中的两种形式而已。

这意味着,这两个构件将会具有相同的结构,包括目录结构也相同,任何依赖它(如在原来的JDK目录中会有名为jre的子目录)的代码就不能正常运行了。

内部JAR不可用了

像lib/rt.jar和lib/tools.jar这样的内部JAR将不可用了。它们的内容将会存储到特定实现的文件中,这些文件的格式还未明确说明,有可能会发生变化。

任何假设这些文件存在的代码将无法正确运行。这可能对IDE或其他严重依赖这些文件的工具带来一些切换的麻烦。
欠ban逆
等等
我剛節選一段
但突然 Lag
然後就 orz 了
是喔
真的喔
[photo](media:AgADBQADzacxG1n-gVR3hr8BpW-I_n4dzDIABGldzV1dgFxLe3YBAAEC@telegram)
Sorry
不要不懂裝懂 真的
Kotlin owo(來去看看
[photo](media:AgADAQADxacxG9-MgURccqmMEiMtFh6j3i8ABNAkscZ3rT7pMMABAAEC@telegram)
快去學,學完告訴我感想
我猜前面
我覺得 yyyy/mm/dd 以外的表示方式都很機掰
yyyy mm dd
mm dd yyyy
dd mm yyyy
我猜是第二個
要怎樣才能創造自己的程式語言阿(?
只要你有創造力
你就可以在 Notepad 亂打一通
[sticker](media:AAQCABO_JUsNAAQpLaq_6IgPHiGbAAIC@telegram)
不要再幹話了好不好
[sticker](media:AAQFABP_-ssyAASqqLSedgpT7NIZAAIC@telegram)
好啦
不好
你要自己寫出函數
然後自己對應到機器碼
剩下的我也不知道
反正你的語言就是要有編譯器轉換成機器語言啦
你知道嗎?
不知道可以不要發表意見
竟然沒delay load和API forwarder也是醉了。
那什麼?
看完java 9的關鍵變更了
結論就是除了模組化以外沒什麼變化._.
java 8.5 (#
win10的kernel32.dll就是一堆指到ms-*.dll的forwarder
龜殼弄了這麼久還是像屎一樣的java9
java社群發展永遠比官方更新快很多.-.
官方更新慢的跟什麼一樣
java 7 有甚麼大的變化嗎?
RTFM
[sticker](media:AAQFABORNtAyAASDb5i0XaQYUzQaAAIC@telegram)
還是你要3D版
[photo](media:AgADBQADzqcxG1n-gVQoeV7liqQLdbANzDIABF1inMJYRHQ3iHwBAAEC@telegram)
每次版本更新一定都有大的變化
可以這很 D
阿不就好3D
不,是甚麼可以讓 Java 7 拖了五年才推出的功能
你可以自己去看
他加了多少東西
當然前提是你看的懂英文啦
我覺得 yy-mm-dd 或 mm-dd yy 或 mm-dd yyyy 都很不錯R
我覺得用unixtime表示最棒了
(X
不過換算要很久
[sticker](media:AAQCABN6L4INAAR6Wy_bjCZj1w28AAIC@telegram)
等溢位(###
owo//
你要從 1970-1-1 8:00 AM 開始一秒一秒算
或是靠機器幫你算
我記得是三十年後?
2038 年 1 月的某一日
\世界末日/
\世界末日/
有些情況下是 2036 年
你知道嗎,他沒有理會潤秒
你這樣算會錯很大
Umm
好喔
unixtime是機器時間,換算成人類時間是很複雜的
所以 unixtime 還是不太適合
靠機器換算就好
unixtime很棒阿,他可以代表一個時間點
還可以精準到奈秒呢
[sticker](media:AAQFABOPGMEyAAQemZqjAAHSdeGiEwACAg@telegram)
2038年問題可能會導致某些軟體在2038年1月19日3時14分07秒之後無法正常工作。
換資料型態嚕
這很簡轉繁
新的64位元運算器可以記錄至約2900億年後的292,277,026,596年12月4日15:30:08,星期日(UTC)。
真的假的,java可以AOT成機器碼了喔
android表示:
然後SHA1證書被幹掉了
某x孩不是很討厭這裡
不是覺得tg很不友善
這是什麼意思阿
2147483647
java可以寫js?
還是什麼鬼
他們已經完整支援了 ECMAScript 6
我看的懂英文
都64bit了不如改進秒數的精度豈不更好。
java內建js runtime
ECMAScript 6是國際JavaScript新版的標準,該標準的出現將對JavaScript帶來不同的定位,此次更新提供結構化與模組化的寫法,強化了語言本身的架構;而更高語言撰寫約束,則是避免個模組之間產生衝突,雖然發展越來越接近一般的高階編程語言,但這也讓在Web Client端能夠使用的應用越來越強大與複雜。
是喔OAO
第一次知道
我知道ECMAScript是什麼
你可以不用講廢話
這裡不需要你在那邊貼google就找的到的東西
Xdd
Q
[sticker](media:AAQEABOcaSQZAAQD5k2ydTQZeJMRAAIC@telegram)
這樣子喔,完全不懂
JVM的js runtime效能應該不怎麼樣吧?
我決定我不要再浪費時間看java 9有什麼新功能了
我要趕快把遊戲玩一玩
java8的js runtime據說效能比舊版好很多
[sticker](media:AAQFABPKMtAyAASAKUE7_TOVTvcfAAIC@telegram)
做好惹 (?
十分的立體
那個 我知道
[photo](media:AgADAQADxqcxG9-MgUQ9kB2TMHrsoHcR9y8ABCoVYuJpsfTn1jwAAgI@telegram)
至少他還去Google😂
可是不需要貼出來
反正再快也快不過node
是v8
是v8真的
那很猛
余承澧 昨天你說的 class ssl 等級已經改掉了
[photo](media:AgADBQAD0KcxG1n-gVTkkjVA2QjARMoXzDIABCKK-SEBPEHL8HoBAAEC@telegram)
在手機版版面下,排版亂掉了
自己去搜尋RWD 怎麼做,RTFM
人家 Tocas UI 寫得很清楚
[photo](media:AgADBQAD0acxG1n-gVQlD44dzxstH-UNzDIABJSKfykWmneb_XgBAAEC@telegram)
電腦版介面
[photo](media:AgADBQAD06cxG1n-gVQN_f1i5qft68cWzDIABJztJ1_dyr5zU3wBAAEC@telegram)
手機版介面
我對你的網站介面長怎樣一點興趣都沒有啊,manual有寫的東西硬要問人是一件很失禮的事
沒啊,這是成果
那又關我什麼事,你個版逆
好奇發作定義是什麼🙈
wwwwwwwwwww
而且我沒 tag 你啊
@windasd 去 tag 你,我只把截圖貼上來
這不是你個版
要吵滾蛋
整個畫面都他媽的是你的圖片啊
不要逼我禁止你發圖歐
可以禁止發訊息連結圖片
我可以幫忙寫自動刪圖片 (?
這裡bot滿了吧?xd
可以加到我的bot上用 (?
這是很簡單ㄉ
oh...感覺很讚
優質
其實最快就塞進spam
然後給bot管理員就可以開始刪惹 (?
或許我們該寫個工具
讓一個bot可以當兩個bot用
排擠神器
bot bot api
common proxy gateway 之類的(?
ysitd chat room api(X
感覺這種東西需要很多限制
模組化bot (?
yet another bot api
不然可能 /help 打下去就噴到api限制了
不錯欸
不 是跳出 你要看什麼bot的help (#
Wwwwww
還是說要@bot這樣
bot 串接
hmm我之前有想過(?
感覺這樣會帶動風潮
這感覺很讚
一堆人可能會照做(x
首創 chat room api
可是感覺很浪費主機XDD
用 inline button 跳選項,讓你決定選哪一隻 bot 跟 指令
我們已經浪費不少了,在多一點不是問題
wwwwwwww
你說和踩地雷一樣多的按鈕嗎
然後sub bot最好還要可以過http協議
嗚嗚嗚只有我沒有主機((
買買買
opensift
yet another bot api through http protocol
窮窮窮
openshit
openshit
我可以提供lxc (#
YSITD cloud
甩甩甩!!!
該吃毒囉!!!
那東西不是難產嗎(#
始春了🙈
需要金援
應該 @tonyhhyip
還要tag @tonyhhyip
感覺這種東西需要全職開發才行(?
不然一天一行真的會始春
洨安:
那東西我還在做
@koru1130 :我一天做一點地圖
然後
一定始春
然後__
沒有然後了
[sticker](media:AAQFABOJ_MAyAAQk3ClWwIWgIO4eAAIC@telegram)
頂級
我們一起 @koru1130 map request
---有效關閉水閘。---
對了,我的 YSITD Cloud 是 PaaS 來的
如果我筆電有前鏡頭的話我真的很想開著直播。
現在我這的情境有夠廚的
雙引號
你要不要試試看全行空白:D
Bot API For Bots
BA4B
剛才抓到一個 IP

城市: Taipei
進入位置: services.bystartw.ga
嘗試進入 services.bystartw.ga/favicon.ico 失敗
IP: 122.***.33.80
UTC 06:53:43
好可惜,沒找到 @bystartw 的帳號
QQ
這樣子喔
你知道favicon.ico是什麼嗎.-.
還是只留下 send Messages 的權限好了
++
不說我都沒注意到ww
dd/mm/yyyy明明很棒(?
[sticker](media:AAQFABOPGMEyAAQemZqjAAHSdeGiEwACAg@telegram)
[photo](media:AgADBQAD1KcxG1n-gVTtB3k7gF-5ISATzDIABMKFEt-eJXkN6XsBAAEC@telegram)
我還是覺得unixtime
所以勒,你到底想表示什麼
真的 時間為一格式(?
一個404是能代表什麼.-.
沒事
那你可以不用發 真的
[photo](media:AgADAQADx6cxG9-MgURbHmIcrLhkDeN93i8ABFdFnRhg1tlMny0CAAEC@telegram)
[photo](media:AgADBQAD1acxG1n-gVQll0WG81jETdwhzDIABLAQVWJz2HvZQHgBAAEC@telegram)
🌚
你是說最後一個嗎
[photo](media:AgADAQADyKcxG9-MgUQkau2U3jNfuGwU9y8ABBxUTFvAlvPMXz0AAgI@telegram)
掛了 w
乾淨
我看過最乾淨的網頁之一
[photo](media:AgADBQAD1qcxG1n-gVQL6ft4G-JOnIkMzDIABIHts7wvWqkwhnoBAAEC@telegram)
這是你最好看的網頁了(#
不過你可以把畫面縮小
所以這是怎麼了?
要不要把主題調成亮色呢🌚
那是他的Tocas UI
[photo](media:AgADAQADyacxG9-MgUR9VutsZg_MJDiQ3i8ABLgwHSPn3QuWx8QBAAEC@telegram)
fixed
可能還不夠(#
可惡 變醜惹(?
然後我的日誌裡面一直跑 IP 欸
我要刪一下 log 檔了
[photo](media:AgADAQADyqcxG9-MgUS71kW7OmiDuCGV3i8ABPE43F6BTIGKOMEBAAEC@telegram)
但已經修好了欸 XD
不打算 F5 嗎
你知道我整個分頁關掉重開的嗎
那太小了
YSITD 第一屆 DDOS大賽
計分板等等上線(X
好像很厲害
[sticker](media:AAQFABOPGMEyAAQemZqjAAHSdeGiEwACAg@telegram)
然後我就開始偵測主 IP
然後就呵呵了
[photo](media:AgADBQAD16cxG1n-gVRgLWQ9do2jdx4TzDIABJf6o9myq6SW_nsBAAEC@telegram)
你歧視259*192的瀏覽器ㄇ
又不是每個人都跟你一樣智障
歡迎吉我啊
[sticker](media:AAQFABMbebMyAASjxfVXD1vK-4smAAIC@telegram)
你還沒攻擊啊
[sticker](media:AAQFABPcKdAyAATjqQfafgrxxAolAAIC@telegram)
沒有啊
問個 你用什麼開發你那個頁面的?
Notepad(?
Notepad++(?
notepad++
好的owo
我不在意
純手工完成
我比較需要全自訂。我會弄全紫色的 :D
跟家裡電腦一樣(?
很松
記事本(X
好喔
你們比較喜歡甚麼顏色
抱歉,我用的是無害紫
幹你娘
那他媽是你的網頁欸
www
不,我覺得你們的審美觀比我還要好
想看我自己寫的直播網頁嗎:D
超乾淨的
乾淨
255,0,255
255,255,0
0,255,0
0,255,255
你先說服自己的審美觀。你要先吸引跟你相似的人們
真的
我的審美觀就是現在這個樣子
空白網頁嗎?
你還沒 F5 吧
敲桌為什麼靠北bystartw還沒更新(🙈
更新內容: 刪除訊息
那個
美麗的顏色
快來用
想看他直播的畫面嗎
有很原生的播放控制介面喔
還會因瀏覽器不同而不同喔,超潮的
想OUO
昨天用手機開不了(?
完全符合打死不自幹理念
可是我不知道要直播什麼
[photo](media:AgADBQAD2KcxG1n-gVTSY9Xhe0uC_xcWzDIABP935YerZ0IX23sBAAEC@telegram)
紫色
好喔
手機可以開阿
直播打galgame
認真?
是可以阿
好.等等試試
上上上
我找個有中文化的玩好了
他沒辦法擷取到VNR
其實也沒有中文化是沒差啦
可是你看不懂
[sticker](media:AAQFABOJ_MAyAAQk3ClWwIWgIO4eAAIC@telegram)
tocas.css 都被壓縮了
進度更新,上 4100USD 啦XDD
Q
不用擔心啦!
哇塞
這麼刺激
妹有畫面.-.
喔有了
wow
畫質很好欸
聲音TM有夠大
[sticker](media:AAQBABOcbe8vAAR3B73YU8V5O48NAAIC@telegram)
你是用哪個直播軟體?看起來很順
我的手機打開只有播放 戳了沒用qwq
OBS
他會串流
他應該會有畫面
重整大力按個幾下
仁翔 你打不打算在下面增加直播觀看人數? XD
仁翔 你玩一般向的嗎?
TODO
不是,這是18禁的
只是還在共同線
有小朋有欸
他說他滿18了
byStarTW 怎麼可能滿18
你覺得我現在在看嗎?
umm 現在畫面是全年齡沒問題的
拿卡出來刷啦,副卡管他18不18(?
[photo](media:AgADBQAD2acxG1n-gVTRY6i8vC0fkQYfzDIABGW6TFIvvXj7znsBAAEC@telegram)
我他媽問鬼歐
[photo](media:AgADBQAD2qcxG1n-gVRgNVztE-02kzAgzDIABE_-au5duiQdIH0BAAEC@telegram)
不能播的手機通通50收(X
從極了
嘗試 Chrome
[photo](media:AgADAQADy6cxG9-MgUSUR2LI9fx0vPKc3i8ABCcwSX8AAdczSY2-AQABAg@telegram)
不要
H Game
甲賽
chrome不錯阿,不要IE就好
一堆 APP 都用 Chrome 開
垃圾
那你就看看 OpenH264 是不是開著
平板有qwq
@windasd 提議的
ffmpeg怎麼直播阿?
你是想擷取畫面然後直播還是播檔案?
吃畫面
不好意思🙇
那要去從X抓畫面
截畫面啊
不然我改玩全年齡的好惹
好啊
沒關係,你繼續玩
直播你自己開爽就好了
反正我不會看(x
接下來弄個聊天室就可以拿來直播了🙈
是的
[photo](media:AgADBQAD26cxG1n-gVTD-FVDPxpU6DsRzDIABM0r4F-iDx_rqn0BAAEC@telegram)
然後再弄個斗內
@james58899 直播主機在哪一台?
[sticker](media:AAQFABNL5ssyAARrNYIPZSjygtg_AAIC@telegram)
我firefox beta正常
chris那台
那開個 Ok1_stream_chatroom 吧
窩 Focus 也不能
聊天室最好搞定了
好歐
\就可以賺錢錢惹/
\就可以賺錢錢惹/
我去關切關切(🙈
講的一副你很會寫
話說 Focus 是用 gecko ㄇ
[photo](media:AgADBQAD3KcxG1n-gVTO4PCty5rUAnoozDIABMXez5DLBFsEzHoBAAEC@telegram)
直播解壓縮:D
你知道我的意思嗎?我根本沒有說要寫喔
[photo](media:AgADBQAD3acxG1n-gVRaHAjeQpQ3LSgMzDIABDwowlAAAaB8igp6AQABAg@telegram)
Chrome 46.0
about:about (
about:firefox
[photo](media:AgADBQAD3qcxG1n-gVRpOYdeJVTMKnAUzDIABFEPp1dDpl8iGIEBAAEC@telegram)
你用第一個試試看
[photo](media:AgADBQAD36cxG1n-gVQSeDxyM82e-qQhzDIABGPcP5pMsI1bungBAAEC@telegram)
那就不要講幹話
有人要斗內我SSDㄇ
about:focus ?
因為 Focus 疑似是用 Android Webview
所以我也不太確定
[photo](media:AgADBQAD4KcxG1n-gVRvhQ_c_3o0BYAgzDIABOAwGYiH4FG6B38BAAEC@telegram)
[sticker](media:AAQCABNcGksNAAQabBruSdrCurz9AAIC@telegram)
[photo](media:AgADBQAD4acxG1n-gVTLAAEMX7dxY2YhH8wyAASNeMZTDzHXrIN8AQABAg@telegram)
喔他終於解完了
7 GB ?!
不要激動,還要再複製一次(?
Orz
你可以用剪下的方式
如果是槽對槽,幾乎是秒速
你看到畫面上是從哪裡貼到哪裡
你覺得光碟機可以剪下嗎
[sticker](media:AAQBABOcbe8vAAR3B73YU8V5O48NAAIC@telegram)
我是看這張圖啊 QwQ
[photo](media:AgADBQAD3KcxG1n-gVTO4PCty5rUAnoozDIABMXez5DLBFsEzHoBAAEC@telegram)
直播玩Minecraft(X
不行我顯卡不夠力
會30fps
你很lag
那玩gal的時候邊玩osu
一樣不夠力阿
:<
QQ
我光玩Minecraft就跑不到30了
這樣你可以體驗我平常玩osu的環境ㄝ
🌚👍👍👍
複製完了
::+1::
好吧qwq
是開垂直同步嗎?
Focus 可以自編 Gecko 版,有興趣可以試試看
https://wiki.mozilla.org/Mobile/GeckoView
怪了,我的版本是 Gecko 嗎?
因為頁面不存在的畫面跟 @Zeinok 不同
你覺得我會開垂直同步就跑不到30嗎?
白話文
麻煩你瘋狂點再試一次
首先你要先會編譯

你中文有困難嗎?
[photo](media:AgADBQAD46cxG1n-gVRdcfTfn7ZJXP0MzDIABMN5vQ6USDxIEX0BAAEC@telegram)
麻煩你瘋狂點再試一次
wow
剛有個白色畫面閃過去
程式不會動.-.
不 要 理 他 不 就 好 了 幹
那不是桌布啊 XD
管理員ban人不是比較快
是說
我覺得某個一直驚嘆號的人好煩
不 要 理 他 不 就 好 了 幹
QQ,只好跑安裝程式了
?
就一直全形驚嘆號的那個阿
不懂,這裡沒有驚嘆號啊
.................
🌝
不知道我在說誰就算了
喔好他終於打開了
[sticker](media:AAQBABOcbe8vAAR3B73YU8V5O48NAAIC@telegram)
喔好吧
!
我覺得沒人在看直播惹:D
<-沒網路
你現在用的不是網路
好的
我應該可以幫你改一下直播介面
走開
Q
沒吃到飽
RIP
我覺得VNR沒上去很靠背
很好很棒
VNR上去了
[sticker](media:AAQFABOPGMEyAAQemZqjAAHSdeGiEwACAg@telegram)
[photo](media:AgADAQADracxG4zaiERnILDlqux5c8-K3i8ABO0PwggqVZNGecQBAAEC@telegram)
[sticker](media:AAQBABOcbe8vAAR3B73YU8V5O48NAAIC@telegram)
Orz
我覺得越來越快,是錯覺嗎?
這弟弟吧
我也是這樣想
我還以為那是未婚夫(#
剛剛發現一件事
原來我家附近的OK以前是全家
為什麼要改成OK rrrrr
全家倒了
Ok來開的吧?
中地、商域理論 (#
商ㄕㄤ閾ㄏㄨㄛˋ (#
幹當年我們班都念商或 超好笑www
商ㄩˋ
中地、商域理論是非常有趣的東西(?
我的地理學帶給我最大的收穫是如何玩好都市開發遊戲
感覺我的地理課沒學到東西
hls.js is compatible with browsers supporting MSE with 'video/MP4' inputs. As of today, it is supported on:

Chrome for Android 34+
Chrome for Desktop 34+
Firefox for Android 41+
Firefox for Desktop 42+
IE11+ for Windows 8.1+
Edge for Windows 10+
Opera for Desktop
Vivaldi for Desktop
Safari for Mac 8+ (beta)
理論上我的直播
支援這些
手機版chrome沒辦法自動播放,所以要自己戳
難怪我不能qwq
你是用三小
IE 吧?
IE 11+在支援內
Safari
IE9
手機
safari
u有錢真好
我之後想辦法讓safari支援好了.-.
畢竟是原生支援的瀏覽器
自己賺的啊qwq
有錢真好
還有你幹嘛用Safari
因為
ios上
不管什麼瀏覽器
都是safari
喔對後
幫QQ
@as2174 有看看能不能播了?
譴責iOS (#
所以這樣做的好處是什麼
只需要相容一個瀏覽器
而且用戶不管用那個都有最基本的體驗
可以owo
你ios逆
度啊
有錢真好
撿同學不要的垃圾
可是 safari不是很IE嗎
他在ios上還不差
至少對觸控操作支援還不錯
效能之類的不論啦
因為也沒得比
@as2174 所以可不可以啦
不會啊
電腦板的效能也不差
而且很省電
不是效能
支援度啦
還好吧
他是webkit
chrome是從webkit改來的
他支援一些別人不支援的怪東東
你覺得支援能差到哪裡去
像是背景模糊
只有 safari 支援
HLS
那為什麼大家都在罵
只有edge和safari原生支援
有嗎,我只有看到大家說macbook噴電很快時
大家都在說關掉chorme打開safari
沒有吧
對 XDD
我怎麼記得大家都說他是IE
要比也是 edge
是說這啥
就是把背景模糊這樣
[sticker](media:AAQFABMLYMoyAARhGAYCho7BLAVPAAIC@telegram)
CSS 本來要寫到死的,Safari 一行搞定
好像有點厲害
甚麼鬼都沒有
目前最簡單的做法是載入兩張圖片,一張模糊一張沒有模糊,然後設定背景這樣🌚
Fetch API 都是最新版才有
🌝 可是你用黑蘋果
超髒ww
沒辦法我窮
應該是可以了
chrome 也可以喔
應該?
反正有看到一張圖片就對了
[sticker](media:AAQBABOcbe8vAAR3B73YU8V5O48NAAIC@telegram)
filter: blur(3px)
Azure Table 真的好黑魔法
欸不對 我說的應該是js的支援度欸
對owo
不知道有沒有播放XD
剛剛才突然想到webkit好像是排版引擎
不然我來放個音樂好了
好owo
在播音樂惹,有聽到ㄇ
我直播沒特別調過音質,所以大概很一般
PCM 直播衝啊

我頂多拉到ACC 256k
現在好像是128
拍拍 我最新版本的電台支援 PCM 喔
我正在思考要怎麼做觀看人數
用js定時戳後端應該可以,可是有沒有更簡單的
好吧既然ios支援沒問題,我直播要關惹.-
Google Analytics
+ custom event
這要怎麼用?
很不會用.-.
或是 keen.io 也可
tag manager
keen.io 啦 很簡單
GA的custom event可以收集資料,但是能取出資料讓訪客看?
keen.io 我研究看看
話說我還需要去自幹播放控制呢(?
不然沒辦法首棟選畫質
他會連上面的文字啥的一起模糊😢
應該不行吧
弄兩層疊上去就好
可以
還不是很髒🌚
最近更新支援了喔?
一直都可以
CSS filter 的話
我說單純的背景模糊😂
他會被ublock擋住
正確來說是EasyPrivacy
那是人的問題
EasyPrivacy連GA也會擋所以確實是人的問題吧.-.
[photo](media:AgADBQADyqcxGziGgFTS6Sfnu3vrIMcQzDIABPav8c7N98CofXkBAAEC@telegram)
@licson keen.io 用來計算觀看次數沒問題,可是他有辦法弄成正在觀看的人數?
有 看你怎麼 Query 而已
how to?
你可以先記錄播放的 Event
然後不看了的時候就記錄觀看完畢的 Event
但是不看了不就關閉分頁,這樣還能發送event?
那您的 Query 就是找出那些開始播放的 Event 並沒有相對應的停止 Event
那就可以知道觀看人數了
可以
sendBeacon
他預設被ublock禁用的樣子喔
看起來就很不可靠
那也是人的問題好嗎
就沒有可靠一點的方法嗎
sync AJAX 啊
但是你真的會想用?
你可以用 Canvas Fingerprinting 的方式來獲取每個用戶的獨特 ID
簡單來說開一個看不到的 Canvas 畫一些東西然後輸出為 PNG 在取得 PNG 結尾的 CRC32 拿那個當 Unique ID
也就是自幹後端然後讓前端算出UID然後一直呼叫後端說正在觀看的意思
後端就是 keen.io
當然你可以寫個 PHP 的 handler 來接受你的 Sync AJAX

Streaming server自幹
就能從server上直接統計人數啦(?
然後那邊把資料丟 keen
看 Log
也是可以
不過呢
可是那是HLS,丟資料給user是nginx的責任阿
而且這樣判斷資料只有IP和UA
MDN 變漂亮了 我很久沒去看
我還以為是變醜了
你要更多資料本來就會有被擋的問題啊
我只是要個用戶正在看的資料阿
你要的是怎樣的用戶資訊?
他正在看影片
就這樣
[sticker](media:AAQBABOcbe8vAAR3B73YU8V5O48NAAIC@telegram)
你HLS是直播? 還是點播?
直播
那是基於我部落格說過的 HLS Adaptive Streaming
y
直播的話server端不就很清楚誰再看了?
HLS
阿就說只有nginx的log阿
是拆開很多 HTTP 請求送出去
很夠了啊
所以光看 Log 根本沒頭緒
我知道啊
阿log就只有UA和IP阿
URL 那些
你可以假定每個片段都被放完啊
對,你是要我在url後面加hash當UID逆
有種東西叫cookie
不然其實是可以把 UID 塞在 URL 裏
也是可以w
還可以順便記錄平均觀看時間
[sticker](media:AAQBABOcbe8vAAR3B73YU8V5O48NAAIC@telegram)
而且
建議你後端用 InfluxDB(我在用的那個)
或是直接丟 keen.io
這兩個蠻多時候夠用了吧
了不起你多開remote port
我很不想去paste log
你可以用 Logstash
我自幹後端讓瀏覽器定時去戳都比較簡單吧
後端可以配 ElasticSearch
不過定時去戳也可以戳給keen.io就是了
可是keen.io會被擋很煩
人家規模大
啊client端不可信就只能跑server端啊
不然你就接受會被擋所以不準的事實ㄅ
因為 adsense 會被擋 所以不要用
你知道我可以自幹後端讓瀏覽器去戳嗎
這樣就不會被擋了阿
那 你就 做啊
就是很累所以才在找其他簡單的方法阿
然後我會幫忙上你專用的rule (X
你就上阿.-.
我決定放棄,我是說換播放器
我以為最多過熱,器官熱衰竭死掉
我決定把已經備份到GD的相片刪一刪
OWO
明明就有個叫做 .config 的資料夾阿
好像大部分軟體作者都習慣直接扔家目錄
Y
.config是從X來的習慣吧
非GUI還是沒放.config的w
http://home.mmis1000.me:8081/ide.html
真意外,居然還活著,然後是誰在上面跑nmap阿...
我原本以為一定會有人把它 rm -rf /* 之類毀掉的
有人需要 L Speed 完整繁化版嗎?
[photo](media:AgADBQAD1KcxGziGgFS4aeTr6XW1atMRzDIABF3_XzYbLMIB13oBAAEC@telegram)
[photo](media:AgADBQAD1acxGziGgFTlk6Ya3L4h1lgXzDIABFc22HMz7Ss5gYIBAAEC@telegram)
這是功能
[photo](media:AgADBQAD16cxGziGgFStrpWvfqwsPmcYzDIABHcMLzpE_2dgMX0BAAEC@telegram)
結果換了新播放器,還是沒有弄出觀看人數
有沒有人有 bt 的種子裡面有多層資料夾,而且大小又不大的?
自己建一個(O
拿 c92 比村的種子在測程式,但是速度實在不優
只有 1mb/s
OWO
要測什麼?
試看看剛打包的動畫全集?
剛剛自建種子測完了
如果我要寫一隻bt bot,我需要讓人可以選檔案嗎?
還是無所謂,全部下載打包就好?
可不可以直接 pipe 進去 gridfs(
這個嘛,可以直接pipe,可是這樣要用額外的記憶體buffer,因為bt回來的東西並不保證順序
而且這樣要zip之類會很麻煩
我不懂梅毒跟吐血什麼關係