Jump to...
redirecting...

Log for OwO

[sticker](media:AAQFABO0WcoyAATcK8-Qt52E3tBOAAIC@telegram)
https://m.facebook.com/story.php?story_fbid=1182800108505150&substory_index=0&id=792303754221456

幹禁藥團跟彈力棒全部還在裡面拿救生圈
結果老蝴蝶跟厚黑全掛了
什麼鬼阿......

求翻譯
[sticker](media:AAQFABMQnLMyAARKdTNm7G43hm4BAAIC@telegram)
@gnehs_OwO 你无缘无辜的得罪我了😡
你家妹子欺负我😭
剛剛開還以為網頁死了
那是什么黑魔法,我电话都快爆炸了,电脑停止运行5分钟。。。
wwww
我电话好像要坏了。。。s7e表示
[photo](media:AgADBQADqacxG_ttEVT_smMqOV4KqBc9yjIABFwNs2l0VY9wssUAAgI@telegram)
。。。
这魔法应该是让游览器的url address bar爆炸吧
你可以看他原始碼阿
你很惠
幸好我电脑没死,不然我做到一半的project泡汤惹
才沒那麼容易死ww
要不是我原本就开着taskmgr,不然怎么能那么顺利的x掉chrome
不过是个好有威力的彩蛋😂
好潮的頻道
[photo](media:AgADBQADqqcxG_ttEVQmqMdjRBzId1oiyjIABML9gz5SyJPBv6UBAAEC@telegram)
[sticker](media:AAQCABOup4QqAASFGIQ3zYq86wosAAIC@telegram)
[sticker](media:AAQFABMNbb4yAAR7e8Lz8oz6FawUAAIC@telegram)
[photo](media:AgADBQADracxG_ttEVQ0drjZ_FSPQHRLyjIABEqnhK3tic35p8gAAgI@telegram)
[photo](media:AgADBQADrqcxG_ttEVRAREEwxMNivgI7yjIABK_oQmGVBpvb4sUAAgI@telegram)
Google 是會執行 JavaScript 沒錯,但是還真夭壽久
[sticker](media:AAQFABO0WcoyAATcK8-Qt52E3tBOAAIC@telegram)
你要炸他的spider也不是这样的😂
不是可以強制抓取嗎
不是
[sticker](media:AAQEABNZ5o8wAASphDJTwgXQjzk1AAIC@telegram)
沒辦法?
我是沒看過有這種方法
網站工具那個啊
好像在GA裡面
web console
沒辦法
Go有類似Koa那種東西嗎
Gin
那你弄後端都用什麼
Gin
Go 版的request
[sticker](media:AAQFABOaab4yAARw5hqISDK3QnUKAAIC@telegram)
node 的 request
HTTP Request?
你是指原生的 HTTP Request 嗎
npm 上的
那個 Go 有內建的
哇嗚好哦
我找找
等等
那種東西用 Express 不就可以了嗎?
我的意思是說如果你用 Express
那麼就是用 Express 的 send()
用 Gin 的話你可以直接用 Gin Send
看你要 Send JSON 還是 String
你在說什麼
Request 不是建立 HTTP 請求的套件嗎?
🤔 ..
分開問的啊
那麼就用 Golang 內建的 http 套件就好了
對啊你剛剛就這樣說
剛才突然搞錯你要的東西。
resp, err := http.Get("http://www.example.com/")
    if err != nil {
        // Error
    }
簡單
[sticker](media:AAQFABMnGL4yAATZjQ-lnFKkiXgcAAIC@telegram)
/go@mmis_js_bot package main

import (
"net/http"
)

func main() {
resp, err := http.Get("http://www.example.com/")
if err != nil {
panic(err)
}
}
/go
package owo
import "fmt", "http"
resp := http.Get("https://yami.io/")
fmt.Println(resp)
/go
package owo
import "fmt"
import "http"
resp := http.Get("https://yami.io/")
fmt.Println(resp)
/go
package owo
import "fmt"
import "net.http"
resp := http.Get("https://yami.io/")
fmt.Println(resp)
好 不是這樣喔
「」
/go@mmis_js_bot package main

import (
"net/http"
"fmt"
)

func main() {
// 發送請求
resp, err := http.Get("http://www.example.com/")
if err != nil {
panic(err)
}

// 讀取回應 Body
body, _ := ioutil.ReadAll(resp.Body)
fmt.Println("OK: ", string(body), resp)
}
喔幹
/go@mmis_js_bot package main

import (
"net/http"
"fmt"
"io/ioutil"
)

func main() {
// 發送請求
resp, err := http.Get("http://www.example.com/")
if err != nil {
panic(err)
}

// 讀取回應 Body
body, _ := ioutil.ReadAll(resp.Body)
fmt.Println("OK: ", string(body), resp)
}
用js腦寫Go
timeout 🌚
/go@mmis_js_bot package main

import (
"net/http"
"fmt"
"io/ioutil"
)

func main() {
// 發送請求
resp, err := http.Get("http://www.google.com/")
if err != nil {
panic(err)
}

// 讀取回應 Body
body, _ := ioutil.ReadAll(resp.Body)
fmt.Println("OK: ", string(body), resp)
}
wwwq
🌚🌚🌚🌚🌚???
這隻 BOT 是有沒有網路功能
/go@mmis_js_bot package main

import (
"net/http"
"fmt"
"io/ioutil"
)

func main() {
// 發送請求
resp, err := http.Get("http://icanhazip.com/")
if err != nil {
panic(err)
}

// 讀取回應 Body
body, _ := ioutil.ReadAll(resp.Body)
fmt.Println("OK: ", string(body), resp)
}
來試試看能不能開一堆 Goroutine
process上限50
@.@
🌚👎
岔練。
/go@mmis_js_bot package main

import (
"fmt"
"strconv"
)

func main(){
for i := 0; i < 100; i++ {
go func(){
fmt.Println(i)
for j := 0; i < 100; i++ {
go func(){
fmt.Println(strconv.Itoa(i) + "." + strconv.Itoa(j))
}()
}
}()
}
}
[sticker](media:AAQFABOaab4yAARw5hqISDK3QnUKAAIC@telegram)
岔lan。
/go@mmis_js_bot package main

import (
"fmt"
"strconv"
)

func main(){
for i := 0; i < 10; i++ {
go func(){
fmt.Println(i)
}()
}
}
[sticker](media:AAQFABODGL4yAARYp60tsWgyG6MXAAIC@telegram)
dllm
/go@mmis_js_bot package main

import (
"fmt"
)

func main(){
for i := 0; i < 10; i++ {
go func(){
fmt.Println(i)
}()
}
}
[sticker](media:AAQBABOdp-8vAARbS2O2HSQxaWcwAAIC@telegram)
阿幹
林老師。
我忘記阻塞
程式直接結束啦幹
怎麼阻塞
用頻道
/go@mmis_js_bot
package main

import (
"fmt"
"strconv"
)

func main(){
// 建立「完成」頻道。
done := make(chan bool)

for i := 0; i < 100; i++ {
go func(){
fmt.Println(i)
for j := 0; i < 100; i++ {
go func(){
fmt.Println(strconv.Itoa(i) + "." + strconv.Itoa(j))
}()

if j == 100 {
// 向「完成」頻道發送資訊。
done <- true
}
}
}()
}

// 除非「完成」頻道接收到任何訊息,否則卡在這裡。
<-done
}
[sticker](media:AAQFABODGL4yAARYp60tsWgyG6MXAAIC@telegram)
完成了一半
/go@mmis_js_bot package main

import (
"fmt"
"strconv"
)

func main(){
// 建立「完成」頻道。
done := make(chan bool)

for i := 0; i < 100; i++ {
go func(){
fmt.Println(i)
for j := 0; i < 100; i++ {
go func(){
fmt.Println(strconv.Itoa(i) + "." + strconv.Itoa(j))
}()

if j == 99 {
// 向「完成」頻道發送資訊。
done <- true
}
}
}()
}

// 除非「完成」頻道接收到任何訊息,否則卡在這裡。
<-done
}
[sticker](media:AAQFABODGL4yAARYp60tsWgyG6MXAAIC@telegram)
啊。
topus.
Version 2
/go@mmis_js_bot package main

import (
"fmt"
"strconv"
)

func main(){
// 建立「完成」頻道。
done := make(chan bool)

// 將迴圈丟到另一個行程執行。
go func() {

// 第一層 Goroutine 迴圈。
for i := 0; i < 100; i++ {
go func(){

// 輸出層數。
fmt.Println(i)

// 將迴圈丟到另一個行程執行。
go func() {

// 第二層 Goroutine
for j := 0; i < 100; i++ {

// 輸出層數。
go func(){
fmt.Println(strconv.Itoa(i) + "." + strconv.Itoa(j))
}()

// 如果是最後的迴圈則發送完成資訊。
if j == 100 {
// 向「完成」頻道發送資訊。
done <- true
}
}
}()
}()
}
}()

// 除非「完成」頻道接收到任何訊息,否則卡在這裡。
<-done
}
[sticker](media:AAQFABMNbb4yAAR7e8Lz8oz6FawUAAIC@telegram)
我的邏輯真的有夠讚
幹我嗆到wwwwwwwwwwww
匯率(
/go@mmis_js_bot package main

import (
"fmt"
"strconv"
)

func main() {
// 建立「完成」頻道。
done := make(chan bool)

// 將迴圈丟到另一個行程執行。
go func() {

// 第一層 Goroutine 迴圈。
for i := 0; i < 100; i++ {
go func(i int) {

// 輸出層數。
fmt.Println(i)

// 將迴圈丟到另一個行程執行。
go func() {

// 第二層 Goroutine
for j := 0; i < 100; i++ {

// 輸出層數。
go func() {
fmt.Println(strconv.Itoa(i) + "." + strconv.Itoa(j))
}()

// 如果是最後的迴圈則發送完成資訊。
if j == 100 {
// 向「完成」頻道發送資訊。
done <- true
}
}
}()
}(i)
}
}()

// 除非「完成」頻道接收到任何訊息,否則卡在這裡。
<-done
}
🤔
/go@mmis_js_bot package main

import (
"fmt"
"strconv"
)

func main() {
// 建立「完成」頻道。
done := make(chan bool)

// 將迴圈丟到另一個行程執行。
go func() {

// 第一層 Goroutine 迴圈。
for i := 0; i < 100; i++ {
go func(i int) {

// 輸出層數。
fmt.Println(i)

// 將迴圈丟到另一個行程執行。
go func(i int) {

// 第二層 Goroutine
for j := 0; i < 100; i++ {

// 輸出層數。
go func(i, j int) {
fmt.Println(strconv.Itoa(i) + "." + strconv.Itoa(j))
}(i, j)

// 如果是最後的迴圈則發送完成資訊。
if j == 100 {
// 向「完成」頻道發送資訊。
done <- true
}
}
}(i)
}(i)
}
}()

// 除非「完成」頻道接收到任何訊息,否則卡在這裡。
<-done
}
🌚👍
改好了,最終版本。
/go@mmis_js_bot package main

import (
"fmt"
"strconv"
)

func main() {
// 建立「完成」頻道,容量能夠容納所有迴圈的訊息。
done := make(chan bool, 100*100)
// 建立「全部都已完成」頻道。
allDone := make(chan bool)

// 將迴圈丟到另一個行程執行。
go func() {

// 第一層 Goroutine 迴圈。
for i := 0; i < 100; i++ {
go func(i int) {

// 輸出層數。
fmt.Println(i)

// 將迴圈丟到另一個行程執行。
go func(i int) {

// 第二層 Goroutine
for j := 0; i < 100; i++ {

// 輸出層數。
go func(i, j int) {
fmt.Println(strconv.Itoa(i) + "." + strconv.Itoa(j))
}(i, j)

// 如果是最後的迴圈則發送完成資訊。
if j == 100 {
// 向「完成」頻道發送資訊。
done <- true
}
}
}(i)
}(i)
}
}()

// 用來偵測所有迴圈是否結束的迴圈。
go func(done chan bool) {
// 無限執行的迴圈,不斷地偵測頻道是否已滿。
for {
// 如果完成頻道全滿,就表示所有迴圈都已經完成了。
if len(done) == cap(done) {
allDone <- true
}
}
}(done)

// 除非「完成」頻道接收到任何訊息,否則卡在這裡。
<-done
fmt.Println("All done!")
}
🌚🌚🌚🌚🌚👎
/go@mmis_js_bot package main

import "fmt"

func main() {
a := "wow, such var"
{
a = "wow, such block"
fmt.Println(a)
}
fmt.Println(a)
}
[sticker](media:AAQFABPWX74yAAQWVoH9uglM3fsLAAIC@telegram)
/go@mmis_js_bot package main

import "fmt"

func main() {
a := "wow, such var"
{
a := "wow, such block"
fmt.Println(a)
}
fmt.Println(a)
}
[sticker](media:AAQFABN2dcoyAASCWsUX3CfIhQ8vAAIC@telegram)
差在哪
我不懂
/go@mmis_js_not package main

import "fmt"

// User 包含了使用者資料。
type User struct {
Username string
Password string
}

// RemovePassword 移除使用者資料內的密碼欄位。
func (u *User) RemovePassword() {
u.Password = ""
}

func main() {
// 建立使用者建構體,並儲存資料。
user := &User{
Username: "Yami Odymel",
Password: "test",
}

// 移除使用者內的密碼。
user.RemovePassword()

// 輸出密碼內容。
fmt.Println("使用者的密碼是:" + user.Password)
}
[sticker](media:AAQFABN2dcoyAASCWsUX3CfIhQ8vAAIC@telegram)
一個是 a = 另一個是 a :=
Golang 裡面沒有 Class,都用建構體或是 interface 溝通。
哦哦哦
建構體就像是一個 Object。
所以比起把 Object 丟給 Class 處理,

Go 讓你能夠直接操作 Object。
u *User
超巫術
這就是GoLang有趣的地方(X
*User 指回去原本的 User 建構體,這樣你就不用
user = user.RemovePassword()


可以直接
user.RemovePassword()
🌚👍
把 obj 丟給 class 是什麼概念
js有人這麼做嗎
物件導向不都這樣嗎
[sticker](media:AAQFABOaab4yAARw5hqISDK3QnUKAAIC@telegram)
看個語言的style
如果你要把資料放入資料庫,不都是傳遞給 Database Class
反正丟丟丟
例如說你要建立使用者,你會把使用者丟給 User->create($userData)
然後丟到最後你就會忘記 $userData 裡面到底有什麼資料。
不要PHP
User.create(userData)
[sticker](media:AAQFABOaab4yAARw5hqISDK3QnUKAAIC@telegram)
typeof User.create
幹不是啦
User.create 是幹嘛的
[sticker](media:AAQFABOaab4yAARw5hqISDK3QnUKAAIC@telegram)
把資料丟進DB?
處理使用者資料,最終可能會在裡面呼叫 DB.createUser(userData)
我有哪裡誤解了嗎
[sticker](media:AAQFABO0WcoyAATcK8-Qt52E3tBOAAIC@telegram)
這貼圖很...
可愛?
[sticker](media:AAQFABMnGL4yAATZjQ-lnFKkiXgcAAIC@telegram)
可愛
整天…
把愛改成笑我很能接受
[sticker](media:AAQFABPTZb4yAAQwM3Z7X_GnMwERAAIC@telegram)
我以為這是 koru style
會access DB 的都弄成DB class 方法
不是應該再弄一個userManager 然後裡面放DB insert 嗎
bug 1130
是啊?
GoLang語法簡單到我不太習慣www
我不了解…這貼圖哪裡可笑…
我是有簡化,不過 DB.create

不就是 DB Class 麼?
很有趣,看了很歡樂
不過實際上應該叫做 model.create()
mongoose
太恐怖了
那不是應該叫做 DB.insert 嗎
「」
好吧,我應該說 model.create()
哇嘎裡媽san
棒三小
這edited
如果是在 Golang 的話就可以直接給予 User 建構體一個 create() 函式,

然後這個函式可以直接幫你插入一筆新的資料到資料庫。
所以就不用把他傳來傳去。
new User(data).create()
user := &User{Username: "Yami Odymel"}
user.Create()
js 也可以啊
JS 可以在 Object 裡面建立新的 Function 吧
可以啊
prototype 來著?
Y
喔好
無限的self = this
[sticker](media:AAQFABNK6sAyAATy_cgKuo2_7ykaAAIC@telegram)
或是 var that = this;
[sticker](media:AAQFABO0WcoyAATcK8-Qt52E3tBOAAIC@telegram)
不過世界上最好的語言,當然還是——
真的沒有
[photo](media:AgADBQADsacxG_ttEVRAGS_3uXgWhWNFyjIABIGRdkSo5jN248kAAgI@telegram)
🌚🌚🌚🌚
[photo](media:AgADBQADsqcxG_ttEVTXfTVXOleON1dCyjIABLAoQWiLtxFuHscAAgI@telegram)
你指在個WebHosting幫自己挖礦嗎(X
提到 Web Hosting,PHP 好像真的蠻方便的
Arr you sure?
🌚🌚🌚🌚
C is the best。
Yami是世界上邏輯最好的人
🌚👎
匯率是世界上最好懂的東西
求懶人包
[photo](media:AgADBQADs6cxG_ttEVSKZegRFI2GvCZTyjIABPzq9upj27ewm8gAAgI@telegram)
🌚👎
我沒有跟到那次啦
QQ
有次我才談比特幣跟以太幣的匯率
比特幣一天漲幅 $2USD
然後以太幣一天漲幅 $0.34USD
然後我說什麼去了
靠邀忘記
[sticker](media:AAQFABO0WcoyAATcK8-Qt52E3tBOAAIC@telegram)
No foul languages
我覺得GoLang跟我很合w
[sticker](media:AAQFABO0WcoyAATcK8-Qt52E3tBOAAIC@telegram)
支持多元成家
[sticker](media:AAQFABODGL4yAARYp60tsWgyG6MXAAIC@telegram)
...說到多元成家,有人拿它做deep learning?
Go?
沒錯
但是GoLang不這麼認為
Deep learning 應該不會用 Go 吧
Go 比較適合網路服務。
[sticker](media:AAQBABMfue8vAAQP7Rcavf6GObIzAAIC@telegram)
[photo](media:AgADBQADuacxG2WTEVT1fXzlJMikTwNUyjIABEdfmbDNTcR2jMcAAgI@telegram)
「」
R?
啊?
RRRRR?
[sticker](media:AAQFABO0WcoyAATcK8-Qt52E3tBOAAIC@telegram)
你不知道喔
Sssssss
我承認我摸這些語言都不深
但是Python我真的覺得很討厭
很討厭
工撒小
#define 奇葩 討厭
Python好嚴格QQ
不過,Python要把Code寫好看絕對棒棒的w
這三小www
我喜歡縮排語言
[sticker](media:AAQFABODGL4yAARYp60tsWgyG6MXAAIC@telegram)
或許Node.js跟GoLang一樣比較適合網路服務QQ
说个笑话
始春
有什麼是 PHP 做不到的? 🌚
Node.js 不是本來就是寫網路服務的?
@zypeh (這樣
有辦法寫桌面應用
我之前有看到 Node OS
「」
但是你會發現你大多數時間都在處理C/C++ Addon
我是支持 JavaScript 回前端就是了
[sticker](media:AAQFABODGL4yAARYp60tsWgyG6MXAAIC@telegram)
C萬歲
C/C++萬歲
感覺入手很難
希望無論前後端都支援以C編寫(#
至少不要 JavaScript
[sticker](media:AAQFABNDkb8yAATaLsE9OJaHK28pAAIC@telegram)
有一堆東西還真的可以讓你辦到
C我可以寫簡單的web server
前端真的不曉
C 應該有東西可以轉成 JavaScript 吧?
[Warning]您有尚未處理的重大更新
很多語言不都有這種東西
[sticker](media:AAQFABMnGL4yAATZjQ-lnFKkiXgcAAIC@telegram)
嘿阿
^
前端...不太能,不過網路服務的話用C/C++絕對沒問題ww
老人(指
莫名其妙的,那種老東西很猛
很多遊戲伺服器都用
C有錯嘛
不然C#也不錯(逃
不過C/C++有入手可能嗎...我覺得我入手起來很有障礙
👏🌝
QwQ
可4很好用啊qwq
我到現在覺得入手最簡單的還是Node.js...
我很清楚
話說香港今天有第一個5G示範
玩 C + Go
[photo](media:AgADBQADuqcxG2WTEVQsG_jJYLJaSMFYyjIABEnW0z5oTrdZtcYAAgI@telegram)
🌚🌚🌚🌚
這到底蝦毀
我只開發環境
seago
\拿來寫預測www(?/
\拿來寫預測www(?/
希狗
seadog
老實說寫到最後可能AI都實現了(X
5G 4x4 MIMO 平均速度 5.7Gbps
正式版換作 8x8 MIMO 以後有望可達 10Gbps 速度
應該很難(?
頂多他現在能預測一些比較簡單的qwq
如果用台灣網路去檢視的話:不限速全台灣電話線不夠你們用
有很多人做很多方面的Machine Learning...
有望5G可在2020年普及
以後用機器學習,資料只要傳一半,另一半自己的電腦幫你組起來
哇,網路流量又省下來了
🌚👍
thx machine learning
🌚👎
然後香港繼第一個地方做4G商用以後
傳開頭結尾標籤,電腦幫你生好
🌚👍👍
5G也要搶頭香(
[sticker](media:AAQEABNRMZEwAATAAVTBQomjhN84AAIC@telegram)
網頁都幫你生
TeaMeow傳標題、作者,電腦幫你生好
[sticker](media:AAQBABM2X-8vAATPtGbRqIWt0L46AAIC@telegram)