Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537
磊 發自 凹非寺
量子位 | 公眾號 QbitAI
程序員要“肛”起來,真是沒誰了。
事情還得從前幾天國際象棋界曝出的驚天丑聞說起。
當時,世界冠軍Magnus Carlsen(老卡哥)直播對戰19歲新秀Hans Niemann(小漢斯),結果敗了。
隨后老卡哥選擇退出比賽,并發推文暗指小漢斯在比賽過程中作弊。
而小漢斯在此之前確實有過線上比賽的作弊史,于是網絡上“靠肛珠作弊”的聲音甚囂塵上。
就連馬斯克也一度參與到討論中,暗有所指地來了句“it’s in ur butt”。
然后這件事引發了一位荷蘭程序員Ron Sijm(西姆哥)極大的興趣:“這丑聞,我一直在follow”。
于是在周末閑暇之余,西姆哥就研究起了“肛珠作弊”,竟然還把代碼給開源了!
項目名曰“ButtFish”:
把國際象棋走法的摩斯密碼,輕松送進你的屁股里。
這可真是硬核“煉肛”的節奏啊……
西姆哥煉肛,第一步做的就是在GitHub上搜尋是否有可以借鑒的項目。
不幸的是,他并沒有找到可以直接拿來可以用的,倒是有個較為接近項目,叫SockFish。
這個項目我們之前有聊到過,大致就是用樹莓派連上鞋墊做成一個作弊器:
輸入要靠鞋里安裝的壓力傳感器,輸出則靠振動馬達,溝通靠的就是摩斯密碼。
雖然原理上有點那味兒了,但西姆哥認為這東西想塞進屁屁里是不太現實的。
于是乎,他又搜尋了一圈,發現有個叫Buttplug.io的開源項目,同樣也可以通過震動來產生摩斯密碼。
至于震動的“介質”是個啥,咱們就不深聊了,大家可以自行腦補(好羞好羞)……
在做好調研工作之后,西姆哥還深入思考了一個問題——誰會去搞這么個“智能肛珠”。
在他看來,研究“智能肛珠”的人需得滿足下面這三個條件:
你得對屁屁相關的東西感興趣吧,得會下國際象棋吧,最關鍵的你還得會編程,是吧?
西姆哥覺得能滿足這三個條件的人微乎其微,所以他一咬牙、一跺腳:
這個“天選之子”,放著我來!
簡單來說,西姆哥的方法主要分為三個步驟。
首先,通過讀取棋盤FEN字符串,來確定下一步棋的最佳走法。
其次,把最佳走法編碼成摩斯密碼。
最后,摩斯密碼發送到連接的設備。
由于西姆哥沒有找到非常合適的肛珠,所以他在演示的過程中,用自家的球形大燈來代替——燈泡閃爍一次相當于肛珠震一次。
(也是相當有那個味道了)
至于智能肛珠產生的震動,如何聯動使用者作弊,接下來我們淺談一下。
國際象棋8x8的格子一般橫向編為小寫的a-h、縱向編為1-8,棋子則根據英文單詞首字母命名,如后(Queen)就是大寫Q,象(Bishop)就是大寫B,另外小寫x代表吃子。
這樣一來,每一步棋都可以寫成類似“Bxg2”(把象移動到g2格子并吃子)的簡短編碼形式,這也是一種通用的國際象棋記譜方法。
……
不過有一說一,西姆哥也表態說,目前還沒有確鑿的證據表明小漢斯是通過智能肛珠來作弊,所以這個項目也只是他興趣使然。
關于這場智能肛珠作弊的風波,老卡哥在這兩天發表了一項最新聲明。
在這份聲明中,老卡哥直言道:
小漢斯(Hans Niemann)作弊的次數比他公開承認的次數還要多。
如果沒有小漢斯的明確允許,我能公開發言的內容是有限的。我只能通過我的行動來表明,我不愿意和他下棋。
不管這件事的結果是什么,我都希望真相可以公之于眾。
這份聲明之下,網友們的評論也是觀點不一。
有人認為老卡的做法是在毀了一個19歲少年的大好前程:
如果你有證據證明這孩子作弊了,那就把證據亮出來。
也有網友認為,官方需要在比賽之前,對選手做一個TSA身體掃描,檢查一下是否有智能肛珠這樣的作弊設備:
總之,國際象棋界的這場智能肛珠作弊風波目前尚未有明確的結果,事件還需靜候進一步的發展。
這位煉肛大師名叫Ron Sijm,是一位來自荷蘭的程序員。
據個人主頁信息顯示,他通常在一家IT解決方案公司DotNet工作,不過目前Appical公司擔任程序開發人員。
還記得剛才咱們提到的那個妙不可言的網站吧?
西姆哥現在一直在和上面的用戶積極交流,希望能夠找到擁有設備,還想嘗試一下他軟件的那位“天選之子”。
Emmmm……有點意思。
參考鏈接:
[1]https://github.com/RonSijm/ButtFish
[2]https://incoherency.co.uk/blog/stories/sockfish.html
[3]https://buttplug.io/
[4]https://www.vice.com/en/article/5d3w9z/did-hans-neimann-cheat-at-chess-with-a-sex-toy-this-coder-is-attempting-to-find-out
[5]https://gizmodo.com/chess-cheating-magnus-carlsen-hans-niemann-chess24-1849585332
— 完 —
量子位 QbitAI · 頭條號簽約
關注我們,第一時間獲知前沿科技動態
了軟硬件和網絡通訊協議上的漏洞,近年來我們還見到了各種稀奇古怪的 PC 數據竊取方案,比如通過芯片工作時的電磁波、或人耳難以察覺的揚聲器 / 麥克風方案來泄露數據。近日,以色列本·古里安大學的研究人員更是突發奇想,演示了如何通過風扇振動和智能手機,成功地從 PC 上竊取數據。
即便是物理上相互隔離、且沒有接入到互聯網,這套被稱作 AiR-ViBeR 的方案,還是能夠以人們難以察覺的方式來泄露數據。
理論上,我們可以將 CPU、GPU、機箱風扇等機電組件的振動模式與特殊的惡意軟件結合使用,以直接操控風扇的轉速。
AiR ViBeR Exfiltrating Data from Air-Gapped Computers(via)
概念驗證期間,研究人員使用了一部和計算機放在同一張桌面上的智能機。盡管兩者之間沒有物理和常見的無線連接,但手機仍可通過加速度計來記錄振動的變化。
三星 Galaxy S10 等高端設備,其內置的傳感器已擁有足夠的精確度,分辨率達到了 0.0023956299 m / s2 。
這種方式的另一個優點,就是攻擊者無需破解任何移動設備 —— 無需在 Android / iOS 設備上啟用特殊的權限,即可在后臺神不知鬼不覺地讀取加速度計的數據。
相關代碼甚至可以借助 Web 瀏覽器的 JavaScript 腳本來實現,不過目前這項研究的最遠傳輸距離也只有 1.5 米、且速度相當緩慢,因此大家沒必要太過擔心。
迎來到我的CSS3專題系列文章,更多精彩內容持續更新中,歡迎關注 :)
CSS3 3D在大多的項目中應用還是挺廣泛的,今天我將繼續為大家分享一個新的3D交互效果。
先來看我們今天要實現的效果吧!看似好復雜,1招教你搞定它,沒錯,就是通過關鍵幀動畫來搞,我們一步步的來分析看
一個3D翻轉的圖集
老規矩,先布局,這個就比較簡單了。一個容器里面放N個div,依次絕對定位,使其所有的圖片疊在一起!
然后讓它們的父級設置為3D空間,并設置景深。
值得注意的是,不要忘了設置旋轉基點為底部。
絕對定位后,我們還要設置每一張圖片的層級,倒序
從gif圖中可以看出來。每張圖片都會有一個倒影的效果。在CSS3中我們是采用的box-reflect來實現倒影效果
box-reflect:none | <direction> <offset>? <mask-box-image>
第一個參數為:我們要設置的倒影的方向,它的取值有:
第二個參數offset是用來設置生成倒影與對象(原圖)之間的間距,其取值可以是固定的像素值,也可以是百分比值
第三個參數是用來設置倒影的遮罩效果,可以是背景圖片,也可以是漸變生成的背景圖像
來看一個示例:
demo中設置是的10px ,gif圖中是0
注意:box-reflect屬性并不是一個標準的css3屬性,所以我們需要加上webkit內核前綴。不加的話,效果出不來。
圖中的動畫效果我是采用的CSS3的幀動畫來完成的,我們先來看看幀動畫的語法。
要想使用幀動畫,首先我們得先定義一個動畫幀,我們通過@keyframes關鍵字來定義它
語法:
@kyeframes 動畫名稱{ 0%{ ... } 10%{ } 100%{ //.. } }
我們在動畫幀函數里面可以精準的定義動畫的每一幀的變化情況。我們可以使用百分比的形式,也可以使用關鍵字,from to
定義完成后,我們可以在元素身上設置動畫相關的屬性
animation:動畫名稱 動畫時間 延遲時間 動畫運動形式 ...
我們先來實現一個簡單的demo看看
運動一次,運動完成后,又回到了第一幀,一般來說,我們希望它停留在動畫的最后一幀。我們一般在animation上再加一個forwards即可。
當我們點擊下一張的時候,當前的圖片向前翻轉消失,下一張出現,所以我們需要定義兩個幀動畫效果。
當下一張圖片出現后,圖片本身一個輕微的振動效果,這里我們也是通過多定義幾個動畫幀來實現的具體的代碼如下:
最后我們來實現點擊的邏輯。當我們點擊下一張的時候,我們需要將當前的一張的動畫設置成hide,下一張圖片設置成show
這里我使用的是iNow變量來表示當前是第幾張圖片。
源碼請私信我
效果完成。
這里是【暢哥聊技術】CSS3專題的系列文章,更多精彩內容持續更新中……
未完待續。。。
*請認真填寫需求信息,我們會在24小時內與您取得聯系。