我是沖著插圖買的這本書。買之前對它沒有多少了解,是從其他書上看到它的插圖精美才觸動了購買欲。當時只知道它居然有那么多的版本、那么多種的插圖,一本古希臘詩集能引發(fā)如此眾動的藝術(shù)創(chuàng)作力,也算一奇。
站在用戶的角度思考問題,與客戶深入溝通,找到弋陽網(wǎng)站設(shè)計與弋陽網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設(shè)計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:網(wǎng)站建設(shè)、成都做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、域名與空間、雅安服務(wù)器托管、企業(yè)郵箱。業(yè)務(wù)覆蓋弋陽地區(qū)。
買了之后,才知道這本書令人稱奇的地方還多著呢。
首先,此書譯名眾多。魯拜是波斯語書名Rubáiyát的漢譯名,波斯語本義是“四行詩”,另有中譯名柔巴依集、莪默絕句集、怒湃譯草等。外語發(fā)言,譯成漢語仁者見仁、智者見智,倒也算不上太奇怪。但它的四行詩的形式,天生與中國的絕句如此契合,令人稱奇。
其次,作者奧瑪伽音(也有譯成奧瑪海亞姆、莪默伽亞謨、歐瑪爾哈亞姆的)是大牛人。他生活在1048-1131年間,是波斯數(shù)學家、天文學家,在三次方程領(lǐng)域和歷法領(lǐng)域成就杰出,他提出太陽中心說,比哥白尼上三個多世紀。而寫詩只是他的業(yè)余愛好。他創(chuàng)作了一千多首“魯拜”,曾被郭沫若等稱為“波斯李白”,而本書的中文譯者黃克孫則稱他是“集沈括與蘇東坡于一身”。
還有,這本書的英譯本也很多,而愛德華菲茨杰拉德的譯本,不僅廣為傳誦,居然成為英國文學的巔峰之作,也算一奇。而黃克孫從英譯本轉(zhuǎn)為中譯,直接采用七絕的形式,居然如此妙合神契,可謂奇上加奇。錢鍾書稱其譯詩雅貼比美菲茨杰拉德原譯,”菲氏書札中論譯事屢云“寧為活麻雀,不作死老鷹”,況活鷹乎“。
試摘錄幾首:
3
And, as the Cock crew, those who stood before
The Tavern shouted — "Open then the Door!
You know how little while we have to stay,
And, once departed, may return no more. "
晨雞一唱起南柯, 門外羈人擊節(jié)歌: 『大地蒼天原逆旅, 怱怱客歲已無多』。
波斯原文如何不知道,給我也讀不懂。但這首英譯音節(jié)鏗鏘,朗朗上口。而黃克孫先生的中譯更是不拘于原文、不離于原旨,直接化用李白的“ 夫天地者,萬物之逆旅也;光陰者,百代之過客也 。而浮生若夢,為歡幾何?”且毫無滯澀,水到渠成。
4
Now the New Year reviving old Desires,
The thoughtful Soul to Solitude retires,
Where the white hand of Moses on the Bough
Puts out, and Jesus from the Ground suspires.
東風吹醒夢中人, 碧野平蕪物又新。 摩世手伸千樹白, 耶穌氣吐一山春。?
注:摩世(Moses),即摩西。可蘭經(jīng)云摩西手白如雪,故借喩白花。?
耶穌(Jesus)。據(jù)回敎傳說,耶穌氣息,能撫愈創(chuàng)傷。
以上是原注,這是用可蘭經(jīng)和回教的典故直接入詩,難得的是對仗工穩(wěn)精當,詩意貼合。
7
Come, fill the Cup, and in the Fire of Spring
Your Winter-garment of Repentance fling:
The Bird of Time has but a little way
To flutter — and the Bird is on the Wing.
春火珠紅酒里天, 心中塊壘碎尊前。 白駒此去無多路, 歲月無情已著鞭。
這就是將英國的典故轉(zhuǎn)化為中國的典故了。英譯說時間之鳥,而中國習慣稱白駒過隙。
10
Well, let it take them! What have we to do
With Kaikobád the Great, or Kaikhosrú?
Let Zál and Rustum bluster as they will,
Or Hátim call to Supper — heed not you.
汨羅江水傷心碧, 銅雀臺花寂寞紅。 醉眼只宜看白日, 干卿底事哭英雄。
原文中的名稱不知是波斯的哪任君主,而汨羅江、銅雀臺,黃先生這更是將波斯典故化用為中國人熟知的典故。干卿底事又用了南唐中主李璟和馮延巳君臣對答的典故,妙!
20
And this reviving Herb whose tender Green
Fledges the River-Lip on which we lean —
Ah, lean upon it lightly; for who knows
From what once lovely Lip it springs unseen!
芳茵綠遍淸江外, 弱草嬌柔人欲采。 寄語行人莫損傷, 離離草下知誰在。
這首懷古傷懷的令人感慨:行人腳步要輕,莫擾了草下長眠之人的清夢。
接下來幾首,不用看英譯,只看中譯都是絕對好詩,對仗精彩、用典天成,而意蘊濃厚,引人深思。
25
飯顆山頭飯顆生, 蓮花燈下蓮花起。 忽聞棒喝一聲來: 『道不在斯不在彼。』
這是禪家機鋒。
28
辜負高人細解蒙, 希夷妙道未能通。 此心本似無根草, 來是行云去是風。
這是浪子心聲。
30
生本無因死亦空, 前身后世影朦朧。 何如十斛蘭陵酒, 世界微塵一醉中。
這是劉伶酒話。
37
南山采土冶為甌, 土語啾啾說不休: 『我亦當年塵上客, 勞君雕琢要溫柔。』
這是輪回之道。
39
獨對山川高酌罷, 臨風細細酹余觴。 遙知幾滴馨香酒, 必有泥中醉鬼嘗。
這是神鬼相通。
42
綠酒朱唇空過眼, 微塵原自化微塵。 今朝我即明朝我, 昨日身猶此日身。
這是昭昭因果。
68
琉璃冰罩轉(zhuǎn)玲瓏, 巧鏤山河大匠功。 中有光明燈一盞, 紙人泥馬影憧憧。
這是滾滾紅塵。
70
眼看乾坤一局棋, 滿枰黑白子離離。 鏗然一子成何劫, 惟有蒼蒼妙手知。
這是當局者迷。
79
天賜人間自在身, 形骸放浪是元眞。 此生那有他生債, 未向蒼天借一文。
這是任俠者狂。
總之,魯拜集是一部奇書,堪讀堪品堪思量。
天賜人間自在身,?形骸放浪是元眞。?此生那有他生債,?未向蒼天借一文。
這是任俠者狂。
總之,魯拜集是一部奇書,堪讀堪品堪思量。
我買的這本是譯林出版社的精裝本,藍色封面,書口刷金,用了埃德蒙杜賴克和羅伯特斯圖爾特謝里夫斯兩位大家的精美插圖,美侖美奐,值得珍藏。
不久前,谷歌正式推出 Jetpack Compose 1.0 版本。近日,JetBrains 在此基礎(chǔ)上發(fā)布了 Compose Multiplatform Alpha 版本,旨在將 Compose 擴展到桌面和 Web 端。
Compose Multiplatform 由 Compose for Desktop 和 Compose for Web 組成,通過 Kotlin Multiplatform 支持許多不同的平臺。其中,Compose Desktop 采用 Google 的 Skia 圖形庫,來實現(xiàn)在 Windows、macOS 和 Linux 上的 UI 繪制,借此在所有支持的操作系統(tǒng)中提供統(tǒng)一的體驗,類似于 Flutter 的做法。
根據(jù) Kotlin 團隊的說法,相比起 Electron 框架,Compose Multiplatform 在內(nèi)存消耗、安裝大小和 UI 渲染性能等方面將有更明顯的優(yōu)勢。隨著 Alpha 版本的發(fā)布,Compose Multiplatform 還收獲了新的 Android Studio 插件,包括對在 IDE 中顯示組件預(yù)覽的支持以及許多附加功能。
我們希望通過本文幫助大家進一步了解 Compose 的跨平臺能力,以及 JetBrains 將 Compose 從 Android 擴展到這些其他平臺背后的主要驅(qū)動力是什么。
基于 Jetpack Compose 1.0
由谷歌打造的 Jetpack Compose 是一款用于在 Android 應(yīng)用程序之內(nèi)構(gòu)建用戶界面的官方框架,上周剛剛發(fā)布 1.0 版本。與此同時,Android Studio 代號“極狐”的首個穩(wěn)定版 2020.3.1 也正式亮相。
盡管才剛迎來 1.0,但谷歌表示“目前 Play Store 中已經(jīng)有超過 2000 款應(yīng)用程序在使用 Compose——更重要的是,就連 Play Store 這款應(yīng)用本身也在使用 Compose?!惫雀璺矫孢€表示,“我們一直在與一些頂級應(yīng)用的開發(fā)人員進行合作,他們的反饋和支持幫助我們使 1.0 版本更加強大?!?/p>
Jetpack Compose for Android 迎來 1.0 版本
Compose 基于 Kotlin 開發(fā),而 Kotlin 與 Android Studio(即官方指定的 Android IDE)均來自開發(fā)工具廠商 JetBrains。雖然 Jetpack Compose 專為 Android 打造(與谷歌的 Flutter 框架不同), 但 JetBrains 公司堅信 Compose 完全能夠獲得跨平臺能力 。
Compose for Desktop: 這只是開始
Compose Multiplatform 可以說是該框架面向 MacOS、Linux、Windows 以及 Web 開設(shè)的一個端口,目前剛剛發(fā)布 1.0 Alpha 版本。雖然尚處于早期開發(fā)階段,但 JetBrains 表示,其已經(jīng)“為開發(fā)人員帶來能夠基本安全使用的穩(wěn)定 API”。
TheRegister 就此事詢問了 JetBrains 公司 Compose 項目負責人 Nikolay Igotti,希望了解為什么該公司在擁有了已經(jīng)廣泛應(yīng)用于 IntelliJ IDEA IDE 及多種豐富變體的桌面應(yīng)用程序跨平臺 Java 框架之外,還要費力開發(fā) Compose for Desktop。Igotti 的回答是,“舊有 Java 框架基本上就是修改版的 Swing。Swing 屬于默認 JDK UI 框架,Swing 和 AWT(Abstract Windows Toolkit,抽象窗口工具包)。Compose 則完全是另一碼事,當然我們也在設(shè)計中考慮到了互操作性需求……Swing 這套框架太陳舊了,最早出現(xiàn)在上世紀九十年代末。多年來人們對于 UI 的設(shè)計思路已經(jīng)天翻地覆,Swing 顯然滿足不了要求了。”
JetBrains IDE 中的 Compose for Desktop 項目
Compose 與 Swing 有一個比較大的共同點:與其他使用本機控件的跨平臺框架,比如例如 Java 的 SWT(Standard Widget Toolkit)以及微軟的 Xamarin 有所不同,它們選擇自主繪制控件。Compose 使用的 Skia 開源圖形庫,也在谷歌 Chrome、Flutter 及其他眾多框架當中得到廣泛應(yīng)用。那這是否意味著 Compose 應(yīng)用程序?qū)]有自己的原生外觀?對此,Igotti 的回應(yīng)是,“這取決于開發(fā)人員的選擇,取決于他們?nèi)绾螢閼?yīng)用程序設(shè)置主題。在這方面,Compose 的情況與 Flutter 等其他框架沒什么區(qū)別?!?/p>
那 Compose for Desktop 應(yīng)用程序是否依賴于 JVM(Java Virtual Machine)運行?Igotti 表示,“我們也知道,JVM 應(yīng)用程序的發(fā)布情況可能比較棘手。因此我們提供自己的 Gradle 插件,其使用 jpackage 與 Jlink 以 JVM 應(yīng)用程序為基礎(chǔ)制作原生應(yīng)用程序。Mac 的.dmg、Windows 的 MSI、Linux 的 deb 包等均可實現(xiàn),大家用不著擔心 JVM?!?/p>
也就是說,開發(fā)成果將會是一款被精心包裹起來的 JVM 應(yīng)用程序。JetBrains 還有一款用于解決這個問題的 Kotlin/Native 編譯器,“預(yù)計將在未來發(fā)布,或者專門用于桌面開發(fā)?!?/p>
對應(yīng)用程序的另一種思考方式
那 Web 應(yīng)用程序方面呢?Igotti 回應(yīng)稱,“我們使用 Kotlin/JS 編譯器?!盋ompose 的 Web 版本不如桌面版先進,說明文檔中也警告稱“API 尚未最終確定,預(yù)計會發(fā)生重大變化?!贝送猓m然 Web 版本確實使用 Compose 模型,但 API 卻完全不同,而且會使用 HTML 與 CSS。所以,Web 版與 Compose for Desktop 之間能夠共享的代碼應(yīng)該比較少。
據(jù) Igotti 介紹,“Compose 代表著一種不同的應(yīng)用程序思考方式。狀態(tài)即 UI 的真實來源,而 UI 本身是無狀態(tài)的,其表達永遠由狀態(tài)計算得出。在這方面,Compose for Web 采用一組相同的原語,完全相同的狀態(tài)管理思路。但是對于具體的小部件集合與排列方式,Web 版與桌面版之間確實無法互通?!?/p>
說到這里,為什么要把 Compose for Android 擴展到多種其他平臺之上?“Compose 的目標受眾主要分為三類。首先是使用 Kotlin 與 Compose 的 Android 開發(fā)人員,他們希望把自己的開發(fā)成果交付至其他平臺;其二是純 Kotlin 開發(fā)人員,他們希望以‘一次編寫、隨處運行’的方式開發(fā)新的應(yīng)用程序;第三則是那些不太熟悉 Kotlin 或者 Compose,但又希望開發(fā)出精美 UI 的用戶,我們希望能為他們提供實現(xiàn)目標的工具?!?/p>
Igotti 并沒有給出具體的發(fā)布日期,但表示自己希望 Beta 版能在今年秋天發(fā)布,“我們也希望能在今年之內(nèi)推出 1.0 版本?!表椖勘旧硎峭耆_源的,“二十一世紀了,框架在大多數(shù)人們心目中就不應(yīng)該收費。我們只是想開發(fā)一款長期缺失的軟件”,補足 JetBrains 當前商業(yè)模式中的工具鏈。
那么,JetBrains 會在自己的其他工具中使用 Compose 嗎?事實上,他們的 JetBrains Toolbox(用于管理已安裝的 IDE)已經(jīng)在使用 Compose,但 Igotti 表示短時間內(nèi) Compose 還無法取代 IntelliJ IDEA 等現(xiàn)有框架?!熬庉嬈魇瞧渲凶顝?fù)雜也最重要的組件,經(jīng)歷了 20 年的發(fā)展演進,我們幾乎不可能在中途進行重寫了。無論是 JetBrains 還是我個人,都不打算強迫每個人都轉(zhuǎn)而使用 Compose。我們的目標是為原有框架選項滿足不了的用戶提供新的解決方案?!?/p>
寫在最后
那么,為什么除了 Flutter 之外,我們還需要另一個跨平臺框架?雖然谷歌的 Flutter 最開始主要面向移動設(shè)備,但現(xiàn)在也開始向桌面及 iOS 進軍,甚至比 Compose 還搶先了一步。不過,根據(jù) StackOverflow 的最新調(diào)查, Flutter 使用的語言為 Dart;盡管 Dart 語言的人氣正在增長(正是受到 Flutter 的推動),但仍然無法與 Kotlin 相提并論。
Compose 代表著一種獨特的 UI 構(gòu)建方法,也許最期待 Compose 跨平臺功能的受眾,正是那些曾在 Android 上使用過它、又特別喜歡這種 UI 構(gòu)建體驗的開發(fā)者。
想要進一步了解 Compose,國內(nèi) Android 開發(fā)者可訪問以下鏈接查看中文手冊:
延伸閱讀:
花費大概一個多月的時間,這個完全由Flutter編寫的Todo-List項目總算初步完成了!現(xiàn)在,它終于要被開源出來了。
在開始介紹之前,先來簡單的看一下真機運行效果吧
下面,針對使用者和開發(fā)者,我將來分別介紹一次
app中,可以在主題切換界面選擇各種主題顏色進行切換,app自帶六個默認主題,這些都是我經(jīng)過多次嘗試所挑選出來的顏色搭配。同時你也可以選擇自定義主題顏色
在app中,每項任務(wù)都會帶有一個圖標,而app提供了所有 Flutter 自帶的 Material design 風格的圖標。這些圖標,你同樣可以進行任意顏色的自定義
在app中,有多項其他的操作是你可以進行自定義的
比如說主頁測滑欄的頭部展示內(nèi)容。當然,還有一些其他的操作,就由你去自行體驗了
當你完成了一項任務(wù)后,這個任務(wù)就會從主頁轉(zhuǎn)移到完成列表頁面,在這里你可以看到任務(wù)的一些額外信息
那么,對于使用者的介紹就到這里結(jié)束
下面就是為廣大開發(fā)者們介紹的時間了!
各位開發(fā)者們請扶好你們的秀發(fā),下面就我來帶領(lǐng)各位參觀參觀這個項目的內(nèi)部構(gòu)造
項目中使用了一些非常優(yōu)秀的第三方庫,也特別感謝這些開發(fā)者們,讓我的發(fā)量保持健康
下面就是這些控件的信息
項目使用的狀態(tài)管理框架是 codeProvider/code ,而整個項目的架構(gòu)如下
看起來是不是和 Android 中的 MVP 模式很像呢?其實都差不多的,只是名字略有不同罷了,你也可以就把上面的模式當作是 MVP 模式。
Flutter 可以說是特別適合這種架構(gòu)模式的,因為視圖跟隨數(shù)據(jù)而變化,你基本上不用去關(guān)心View,只要去對數(shù)據(jù)進行操作就好了。
項目目錄結(jié)構(gòu)如下:
先說明一下除了 lib 外的其他目錄:
然后是 lib 目錄
項目創(chuàng)建于6月21日,到如今發(fā)布1.0.0版本花了三十多天的時間,雖然我做過很多測試,解決了很多bug,但是時間確實不充裕。紕漏也會在所難免
所以如果使用過程中遇到什么問題,或者對于項目有什么好的建議,歡迎在app中的反饋界面提出來,也可以在下面留下評論,又或者在github上提issue。
項目的UI設(shè)計與后臺接口均由我獨自一人完成,所以這也是為什么時間不夠的原因。不過目前項目中只是包含了兩個自己寫的接口,后續(xù)計劃中應(yīng)該會加入登錄功能,到時候會有很多接口操作。
若有興趣,請持續(xù)關(guān)注!
如果你覺得這個app不錯,或者這個項目有幫助到你,不妨給這個項目一個Star吧。項目后面也會持續(xù)保持更新和維護!
ToDo-List
UI項目地址
密碼:Aczh
.夏天的飛鳥,飛到我的窗前唱歌,又飛去了。
秋天的黃葉,它們沒有什么可唱,只嘆息一聲,飛落在那里?!?/p>
Stray birds of summer come to my window to sing and fly away.
And yellow leaves of autumn, which have no songs, flutter and fall there with a sign.
2.世界上的一隊小小的漂泊者呀,請留下你們的足印在我的文字里?!?/p>
A Troupe of little vagrants of the world, leave your footprints in my words.
3.世界對著它的愛人,把它浩翰的面具揭下了。
它變小了,小如一首歌,小如一回永恒的接吻。
The world puts off its mask of vastness to its lover.
It becomes small as one song, as one kiss of the eternal.
4.是大地的淚點,使她的微笑保持著青春不謝。
It is the tears of the earth that keep here smiles in bloom.
5.無垠的沙漠熱烈追求一葉綠草的愛,她搖搖頭笑著飛開了。
The mighty desert is burning for the love of a bladeof grass who
shakes her head and laughs and flies away.
6.如果你因失去了太陽而流淚,那么你也將失去群星了。
If you shed tears when you miss the sun, you also miss the stars.
7.跳舞著的流水呀,在你途中的泥沙,要求你的歌聲,你的流動呢。你肯挾
瘸足的泥沙而俱下么?
The sands in your way beg for your song and your movement, dancing
water. Will you carry the burden of their lameness?
8.她的熱切的臉,如夜雨似的,攪擾著我的夢魂?!?/p>
Her wishful face haunts my dreams like the rain at night.
9.有一次,我們夢見大家都是不相識的。
我們醒了,卻知道我們原是相親相愛的。
Once we dreamt that we were strangers.
We wake up to find that we were dear to each other.
10.憂思在我的心里平靜下去,正如暮色降臨在寂靜的山林中。
Sorrow is hushed into peace in my heart like the evening among
the silent trees.
11.有些看不見的手,如懶懶的微(風思)的,正在我的心上奏著
潺(氵爰)的樂聲。
Some unseen fingers, like an idle breeze, are playing upon my heart
the music of the ripples.
12.“海水呀,你說的是什么?”
“是永恒的疑問?!薄?/p>
“天空呀,你回答的話是什么?”
“是永恒的沉默?!薄?/p>
What language is thine, O sea?
The language of eternal question.
What language is thy answer, O sky?
The language of eternal silence.
13.靜靜地聽,我的心呀,聽那世界的低語,這是它對你求愛的表示呀。
Listen, my heart, to the whispers of the world with which it makes
love to you.
14.創(chuàng)造的神秘,有如夜間的黑暗--是偉大的。而知識的幻影卻不過如晨間
之霧。
The mystery of creation is like the darkness of night--it is great.
Delusions of knowledge are like the fog of the morning.
15.不要因為峭壁是高的,便讓你的愛情坐在峭壁上。
Do not seat your love upon a precipice because it is high.
使用這個版本的GetX寫了Demo之后,發(fā)現(xiàn)有幾個問題:
感覺不太像是穩(wěn)定版本,存在一些比較明顯的問題;而且2.0.6到2.0.7只是一個小版本,全局狀態(tài)管理邏輯似乎就有比較大的改動。
不支持響應(yīng)式編程,這個版本的狀態(tài)管理還是基于state的邏輯;因為想要比較高效的解耦頁面和邏輯,可能需要搭配響應(yīng)式編程框架。
相關(guān)功能可能比較少,沒有最新版本的功能那么全面。
Flutter是Google開源的構(gòu)建用戶界面(UI)工具包,幫助開發(fā)者通過一套代碼庫高效構(gòu)建多平臺精美應(yīng)用,支持移動、Web、桌面和嵌入式平臺。
Flutter 開源、免費,擁有寬松的開源協(xié)議,適合商業(yè)項目。Flutter已推出穩(wěn)定的2.0版本。
產(chǎn)生背景:
Flutter可以方便的加入現(xiàn)有的工程中。在全世界,F(xiàn)lutter 正在被越來越多的開發(fā)者和組織使用,并且 Flutter是完全免費、開源的。它也是構(gòu)建未來的 Google Fuchsia 應(yīng)用的主要方式。
Flutter組件采用現(xiàn)代響應(yīng)式框架構(gòu)建,這是從React中獲得的靈感,中心思想是用組件(widget)構(gòu)建你的UI。
組件描述了在給定其當前配置和狀態(tài)時他們顯示的樣子。當組件狀態(tài)改變,組件會重構(gòu)它的描述(description),F(xiàn)lutter 會對比之前的描述, 以確定底層渲染樹從當前狀態(tài)轉(zhuǎn)換到下一個狀態(tài)所需要的最小更改。
大家都知道 google 推出 Material Design 讓沒有多少設(shè)計經(jīng)驗的開發(fā)者也可以設(shè)計出精美界面。而且對 material design google 也投入了很多,輕松找到許多 iso 或 android 端的組件。當然 Flutter 官方也提供許多支持 Material Design 的組件。
這些組件我們輕松地在 Flutter 官網(wǎng)提供 Material Component Widgets 找到。
創(chuàng)建課件數(shù)據(jù)類,用于持有數(shù)據(jù),Tut 包含課件名稱、說明和課時以及圖片。
這里模擬數(shù)據(jù)集合,這一切都是為了演示做基礎(chǔ),為一些假數(shù)據(jù)。這里簡單用 express 啟動一個服務(wù)提供圖片,供 flutter 對圖片進行預(yù)覽。
創(chuàng)建 ListView 的視圖列表,調(diào)用其靜態(tài)方法 builder 來構(gòu)建 ListView,在 builder 方法傳入 itemCount 也就是條目數(shù),和 itemExtent 是列表條目的高度,itemBuilder 接受一個函數(shù)作為參數(shù),函數(shù)會得到 context 和 index(位置信息)的參數(shù)來構(gòu)建列表內(nèi)容,返回 Widget 就是列表條目的內(nèi)容。