NHÀ CUNG CẤP DỊCH VỤ CHUYÊN NGHIỆP
PHÁT TRIỂN
Luôn đồng hành cùng bạn!
Chuyên: WEBDESIGN - HOSTING - DOMAIN - CCTV
Hotline: 0903 880 905 - 0931 435 998


Lược dịch từ Krishnamurti with Alain Naudé 3 

Krishnamurti: Bạn biết đấy, một ngày nọ, Sidney Field đến gặp tôi. Anh trai của cậu ấy vừa mới chết. Bạn biết cậu ấy và chúng tôi cũng biết… chúng tôi đã gặp cậu ấy ở đây. Cậu ấy rất quan tâm đến việc liệu anh trai mình có còn sống hay không, liệu anh ấy có đang sống trong một tầng ý thức khác hay không, liệu John có phải là một thực thể được sinh ra ở kiếp sau hay không. Và tôi có tin tưởng vào sự tái sinh không, và nó có ý nghĩa gì … Cậu ấy có rất nhiều câu hỏi vì chính mình đang gặp khó khăn,… Tôi nghĩ từ cuộc trò chuyện đó có hai câu hỏi thú vị được rút ra. Cậu ấy đã đến đây vài lần vào giờ ăn trưa và chúng tôi đã thảo luận về cùng một vấn đề: Có một cái ngã thường hằng không? Nếu có một cái gì đó thường hằng thì mối liên hệ của nó từ hiện tại đến tương lai là gì? Tương lai là sự có mặt ở đời sau hoặc mười năm sau. Nghĩa là, nếu bạn thừa nhận, chấp nhận, tin tưởng hay khẳng định rằng có một cái ngã thường hằng thì sự tái sinh là hợp lý. Bởi vì cái ngã thường hằng, cái tôi – nếu nó thường hằng – có thể thay đổi trong thời gian mười năm. Nó có thể biểu hiện khác nhau trong thời gian đó.

Krishnamurti: You know, sir, the other day, Sidney Field came to see me. His brother died recently. You knew him and we knew… we met him here. He was very concerned whether his brother was living, whether he was living in a different level of consciousness, whether there was John as an entity born next life. And did I believe in reincarnation, and what did it mean, and so on – he had lots of questions because he was having a difficult time with himself because his brother whom he liked, whom we have known for years and years and years… So I think out of that conversation two things came out, rather interesting. One – on two occasions – this is not just on one occasion, he came twice – at lunchtime we discussed the same thing: Is there a permanent ego? If there is such thing as a permanent something then what is its relationship from the present to the future? The future being next life or ten years later. That is, if you admit or accept or believe or assert that there is a permanent ego, then reincarnation is plausible. Because the permanent ego, the me – if it is permanent – can be, in ten years time, be changed. It can incarnate differently in ten years time.

Người hỏi: Chúng ta luôn đọc được nhiều điều như thế trong kinh sách Ấn Độ, về những đứa trẻ nhớ lại kiếp trước, có những bé gái nói: “Tôi đang làm gì ở đây? Nhà tôi ở làng khác, tôi đã kết hôn với người này người nọ và tôi có ba đứa con.” Và trong nhiều trường hợp, tôi tin rằng điều đó đã được xác minh.
Questioner: We read this all the time in the Indian scriptures, sir. We read about children who remember the past life, we read about little girls who say, ‘What am I doing here? My home is in some other village, I am married to so-and-so and I have three children.’ And in many cases I believe that this has been verified.

Krishnamurti: Có chuyện như vậy. Nếu không có một thực thể thường hằng thì sự tái sinh là gì? Cả hai đều liên quan đến thời gian, đến sự chuyển động trong không gian – không gian là môi trường, mối quan hệ, áp lực – tất cả những thứ tồn tại trong thời-không đó. Đó là, văn hóa và vân vân. Phải không? Vậy liệu có một cái tôi thường hằng không? Rõ ràng là không. Nhưng Sidney nói, “Vậy điều gì làm tôi cảm thấy như thể John đang ở kế bên? Khi tôi bước vào phòng tôi biết anh ấy ở đó. Tôi không tự lừa dối mình. Tôi không tưởng tượng. Tôi cảm thấy anh ấy ở đó, cũng như tôi cảm thấy em gái mình ở trong căn phòng đó ngày hôm qua. Nó rõ ràng, chắc chắn như vậy.” …
Krishnamurti: That is, sir – I mean, I don’t know. So there is that. If there is no permanent entity then what is reincarnation? Both involve time, both involve a movement in space – space being environment, relationship, pressure – all the thing existing within that space, time. That is, culture and so on. Right. So is there a permanent me? Obviously not. But Sidney said, ‘Then what is it I feel, that John is with me? When I enter the room I know he is there. I’m not fooling myself. I’m not imagining. I feel him there, as I feel my sister who was in that room yesterday. It’s as clear, as definite as that.’ I don’t know… (inaudible)

Người hỏi: Ông vừa nói “Rõ ràng là không [có một cái tôi thường hằng]”, liệu ông có thể vui lòng giải thích điều đó?
Questioner: And also, sir, when you say, ‘Obviously not,’ would you mind explaining that?

Krishnamurti: Rồi chúng ta sẽ thấy. Cậu ấy nói “Anh trai tôi ở đó”. Tôi nói “Tất nhiên anh ta ở đó, bởi vì trước hết, cậu có những liên kết và ký ức về John và điều đó được phóng chiếu, và sự phóng chiếu đó là hồi tưởng của cậu”. “Và khi John còn sống, anh ấy đã gắn bó với cậu. Sự có mặt của anh ấy dính liền với cậu. Khi anh ấy còn sống, cậu có thể không nhìn thấy anh ấy cả ngày nhưng sự hiện diện của anh ấy luôn ở trong căn phòng đó”. Điều đó có thể xuất phát từ tôi hoặc John, người đã chết cách đây mười ngày – bầu không khí, tư tưởng, cách cư xử của người ấy vẫn còn đó. Về mặt vật lý, người ấy có thể đã rời đi.
Krishnamurti: We’ll see that. We’ll see. So he says, ‘My brother is there.’ I said, ‘Of course he is there, because first of all, you have your associations and memories of John and that is projected, and that projection is your remembrance.’ Now wait a minute. That’s one. ‘Or’ – not or – ‘and when John lived he was associated with you. His presence was with you. When he was living you might not have seen him all day but his presence was in that room.’ That may emanate from me or John, who died ten days ago – his atmosphere, his thoughts, his way of behaving was still remaining there. Physically he might have gone.

Người hỏi: Có phải ông đang nói rằng có một loại năng lượng, năng lượng của ý muốn, mà con người tỏa ra?
Questioner: Are you saying there is a sort of energy, for want of a different word, which human beings give off?

Krishnamurti: Rõ ràng là vậy. Bạn biết đấy, có một bức ảnh chụp từ một bãi đậu xe, nơi từng có nhiều chiếc ô tô, và bức ảnh cho thấy hình dáng của những chiếc xe, mặc dù không có chiếc nào ở đó cả. Đó là do nhiệt mà chúng để lại.
Krishnamurti: Obviously, obviously. You know, there was that photograph of a parking lot taken. A photograph was taken of a parking lot where there had been many cars, and the photograph showed, though there were no cars there, the form of the cars. That is, the heat which the car had left came on the negative.

Người hỏi: Đúng thế. Cũng vậy, một ngày nọ, khi tất cả chúng tôi đều sống ở thị trấn Gstaad – lần đầu tiên tôi đến gặp ông ở Gstaad, chúng tôi sống ở căn hộ Les Caprices – ông đã đi Mỹ trước bất cứ ai trong chúng tôi, và tôi đã đi vào căn hộ đó, sự hiện diện của ông ở đó vô cùng mạnh mẽ – trong khi ông vẫn còn sống và trên đường đến Mỹ. Sự hiện diện của ông trong căn hộ đó mạnh mẽ đến mức người ta cảm thấy có thể chạm vào và nói chuyện được. Điều này không đơn giản chỉ vì tôi đang nghĩ hoặc đã nghĩ đến ông trước khi bước vào căn hộ.
Questioner: Yes. And also, one day, when we were all living in Gstaad – the first time I was your guest in Gstaad, we were living at Les Caprices – you left for America before any of us left, and I went into that flat – you were still alive and you were on your way to America – and your presence was there, extremely strong. Your presence was in that flat so strongly that one felt one could touch and speak to you. This was not simply because I was thinking of you, because I had been thinking of you before I entered the flat.

Krishnamurti: Hãy lắng nghe điều này, nó khá thú vị – John tiếp tục bởi vì anh ấy là thế giới của sự dung tục, của tham lam, của đố kỵ, của rượu chè, tình dục, của ganh đua. Đó là khuôn mẫu chung của con người. Khuôn mẫu chung đó vẫn tiếp tục, mặc dù John đã chết và John có thể được đồng hóa với điều đó hoặc chính là điều đó. Bởi vì đó là điều chung của thế giới, anh ấy thuộc về thế giới, và thế giới sẽ biểu hiện. Tức là một khối lượng đông đảo con người – họ bị cuốn vào dòng chảy, dòng chảy sẽ tiếp tục. Tôi không biết liệu bạn có thấy không. Tôi có thể có một đứa con trai là một phần của dòng chảy đó, và trong dòng chảy đó có John, với tư cách một con người bị cuốn vào đó, và con trai tôi có thể nhớ một số thái độ của John. Mãi mãi như vậy, trừ khi anh ta thoát khỏi nó, thoát khỏi dòng chảy là một người không còn dung tục. Chúng ta hãy sử dụng từ ngữ dung tục để đại diện cho tất cả điều tham lam, đố kỵ, quyền lực, địa vị, hận thù, ham muốn. Bây giờ, nếu tôi không thoát khỏi sự dung tục, tôi sẽ tiếp tục đại diện cho toàn bộ dòng chảy đó. Vì vậy, tôi sinh vào vào sự dung tục đó. Phải không? Bạn theo dõi kịp chứ? Nghĩa là, điều đầu tiên là tôi có thể phóng hiện ra John, người anh trai tôi.
Krishnamurti: That is, John – listen to this, it is rather interesting – John continues because he is the world of vulgarity, of greed, of envy, of drinking, sex, of competition. That is the common pattern of man. That common pattern continues, though John… and John may be identified with that, or is that… Because that is a common thing of the world, he is of the world, and the world does incarnate. That is, take the mass of people – they are caught in this stream, and that stream goes on. I don’t know if you see. I may have a son who is part of that stream, and in that stream there is John also, as a human being who is caught in it, and my son may remember some of John’s attitudes. Forever, unless he breaks away from it, breaks away from the stream. Sir, wait a minute. A man who is not vulgar – let’s use that word vulgar, vulgarity, to represent all this – greed, envy, power, position, hatred, desires – all that. Now, unless I am free from the vulgar I will continue representing the whole of vulgarity, the whole vulgarity of man. Therefore, I incarnate in that vulgarity. Right? You follow? That is, first I can project John, my brother.

Lược dịch bốn khả năng: Vậy điều gì làm tôi cảm thấy như thể John ở kế bên? (1) Tôi phóng chiếu nó ra khỏi ký ức và tâm thức của tôi. Hoặc (2) tôi bắt được năng lượng còn sót lại của John như mùi, vị, lời nói của anh ấy. Hoặc (3) tư tưởng của John, tàn dư của John vẫn còn đó. Tôi, hoặc bạn sống trong một căn phòng trong nhiều năm hoặc bạn đã quen thuộc, và hiện diện… căn phòng đó chứa đựng năng lượng và những tư tưởng, cảm xúc của tôi – tất cả đều ở đó. Và một khả năng khác là (4) tư tưởng của John, những ham muốn, ở đó trong không khí, trong dòng chảy của sự dung tục. Bởi vì John bám víu vào cuộc sống. Và ý tưởng về John, người đã mất đi cơ thể vật lý, tồn tại trong chính tư tưởng của anh ấy.
Summary of four possibilities: Then what is it I feel, that John is with me? So there are four possibilities. That is, (1) I project it out of my remembrance and consciousness. Or (2) I pick up residual energy of John: his smell, his taste, his sayings, the words. Or (3) John’s thought, John’s existence is still there. I live in a room, or you live in a room for a number of years or you are familiar, and the presence of… that room contains my energy, my thoughts, my feelings – it’s all there. And the other is (4) John’s thought, John’s desires, are there in the air, in the stream of vulgarity. Because John clings to life. And the idea that John, whose physical body is gone, exists in his own thought.

Người hỏi: Bây giờ, câu hỏi là về điều thứ năm. Có hay không một thực thể tư duy có thể ý thức được?
Questioner: Now, the question is about the fifth. Is there a conscious thinking entity…

Krishnamurti: Đó là điều tôi đang hướng tới. Bạn hỏi: Liệu John, với thi thể đã bị hỏa táng, liệu thực thể đó có tiếp tục sống không? Khi bạn nói, “Anh John của tôi đã chết rồi” và hỏi liệu anh ấy có đang sống – sống, như bạn đã biết, như một ý thức riêng biệt – tôi tự hỏi liệu anh ấy có bao giờ tách rời khỏi dòng chảy. Khi còn sống, John có khác với dòng chảy không? Dòng chảy của sự giận dữ, căm ghét, ghen tị, tìm kiếm quyền lực, địa vị, lừa dối, tham nhũng, ô nhiễm. Khi tồn tại về mặt vật lý anh ta có một cơ thể, nhưng về mặt tâm lý anh ta thuộc về dòng chảy này. Vì vậy, liệu anh có bao giờ khác biệt với dòng chảy? Hoặc chỉ khác biệt về vật chất, và do đó nghĩ rằng anh ấy khác biệt. Bạn có theo kịp điểm này? Vì thế cái chết là thân xác, và sự tiếp nối của John là một phần của dòng chảy đó. Tôi, với tư cách là anh trai của anh ấy, muốn coi anh ấy là một người tách biệt, bởi vì anh ấy sống với tôi riêng rẽ về mặt vật lý. Nhưng bên trong anh ấy thuộc về dòng chảy. Vậy có một John nào khác với dòng chảy? Và nếu anh ta khác thì chuyện gì sẽ xảy ra? Bạn có theo kịp không? Đó là một câu hỏi hay hơn nhiều. Tôi không biết liệu bạn có hiểu được điều tôi muốn nói hay không.
Krishnamurti: That’s what I’m coming to. Now you are asking a question, which is: Does John, whose body is burned, cremated, does that entity continue to live? When you say, ‘My brother John is dead,’ and ask whether he is living – living, you know, as a separate consciousness – I question whether he was ever separate from the stream. When John was alive, was he different from the stream? The stream of humanity is anger, hate, jealousy, seeking power, position, cheating, corrupt, polluted – that is the stream. Right? When he existed physically, he may have had a physical body, but psychologically he was of this. Therefore, was he ever different from this, from the stream? Or only physically different, and therefore thinking he was different. You follow my point? Therefore what is dead is the body, and the continuation of John is part of that stream. I, as his brother, would like to think of him being separate, because he lived with me as a separate… physically. But inwardly he was of the stream. Therefore, was there a John who was different from the stream? And if he was different then what happens? You follow? That’s a much better question. I don’t know if you follow what I mean.

Người hỏi: Bản chất của bản ngã là không thường hằng.
Questioner: The nature of the ego is impermanence.

Krishnamurti: Không, nhưng tất cả những người theo chủ nghĩa tái sinh, toàn bộ châu Á và những người hiện đại, những người nào đó tin vào nó, đều nói rằng có một bản ngã thường hằng.
Krishnamurti: No, but all the reincarnationists, the whole of Asia and the modern people, certain people who believe in it, say there is a permanent ego.

Người hỏi: Đúng vậy, hoặc ít nhất là họ nói rằng nó kéo dài.
Questioner: Yes, or at least a lasting one – at least it lasts, they say.

Krishnamurti: Đúng vậy, nó kéo dài – sẽ phải mất nhiều kiếp sống để nó có thể tan biến và hòa nhập vào Phạm Thiên hay vào Niết Bàn hay vào ánh sáng hay vào cái này hay cái khác. Bây giờ, ngay từ đầu, liệu có một thực thể thường hằng, một thực thể kéo dài hàng thế kỷ không? Rõ ràng là không có thực thể thường hằng như vậy. Tôi thích nghĩ rằng tôi là thường hằng. Sự thường hằng của tôi được đồng hóa với của cải của tôi, với vợ, với chồng… Tất cả chúng đều là những từ ngữ và hình ảnh của tư tưởng. Tôi thực sự không sở hữu chiếc ghế đó. Tôi gọi nó là của tôi.
Krishnamurti: Yes, it is lasting – it’ll take many lives so that it can become dissolved and be absorbed in Brahman or in Nirvana or in light or in something or other. Now, is there, from the beginning, a permanent entity, an entity that lasts centuries and centuries and centuries? There is no such permanent entity, obviously. I like to think I am permanent. My permanence is identified with my furniture, with my wife, with my husband… They’re all words and images of thought. I don’t actually possess that chair. I call it mine.

Người hỏi: Chính xác. Người ta nghĩ rằng đó là một chiếc ghế và sở hữu nó.
Questioner: Exactly. You think that it’s a chair and that you own it.

Krishnamurti: Tôi thích nghĩ rằng tôi sở hữu nó, nhưng đó chỉ là một ý tưởng. Vì thế – hãy quan sát điều đó – vậy là không có cái ngã thường hằng. Nếu có một cái ngã thường hằng thì đó sẽ là dòng chảy này. Bây giờ, nhận ra rằng mình cũng giống như phần còn lại của thế giới, không có K riêng biệt hay John riêng biệt là anh tôi, thì tôi có thể hóa thân nếu bước ra khỏi đó. Hóa thân theo nghĩa, sự thay đổi có thể diễn ra bên ngoài dòng chảy. Trong dòng chảy không có sự thay đổi nào cả.
Krishnamurti: I like to think I own it, but that’s just an idea. So – watch it – so there is no permanent self. If there was a permanent self, it would be this stream. Now, realising that I am like the rest of the world, that there is no separate K or separate John as my brother, then I can incarnate if I step out of it. Incarnate in the sense, the change can take place away from the stream. In the stream there is no change.

Người hỏi: Do đó, nếu có một thực thể thì nó phải ngoài dòng chảy. Liệu có thực thể nào không. Nhưng chúng ta nói rằng tất cả các thực thể, như chúng ta biết, đều thuộc dòng chảy.
Questioner: Therefore, if there is an entity then it must be out of the stream. If there is any entity at all. But we say all entities, as we know them, are of the stream.

Krishnamurti: Không thể có được. Hãy thấy điều đó, nó rất quan trọng.
Krishnamurti: There can’t be. See that, it’s very important.

Người hỏi: Vâng, đó là tự ngã. Vì vậy, sự thật, cái thường hằng, không phải là một cái gì đó.
Questioner: Yes, this is self. Therefore, that which is true, that which is permanent, is not a something.

Krishnamurti: Không có trong dòng chảy.
Krishnamurti: Is not in the stream.

Người hỏi: Đúng vậy.
Questioner: That’s right.

Krishnamurti: Dòng chảy và lưu lượng của nó vừa chuyển lại vừa hằng [semi-permanent]. Khi Naudé [một trong số những người khách] chết, nếu anh ta còn thuộc về dòng chảy. Nó sẽ tiếp tục như thế. Nhưng nếu bây giờ Naudé nói, “Tôi sẽ hóa thân – không phải ở kiếp sau, bây giờ, ngày mai, có nghĩa là tôi sẽ bước ra khỏi dòng chảy” – anh ấy không còn thuộc về dòng chảy nữa, do đó không có gì thường hằng.
Krishnamurti: When Naudé dies, as long as he belongs to the stream, that stream and its flow is semi-permanent. It goes on. But if Naudé now says, ‘I will incarnate – not in the next life, now, tomorrow, which means I will step out of the stream’ – he is no longer belonging to the stream, therefore there is nothing permanent.

Người hỏi: Vì thế không có gì để tái sinh.
Questioner: Therefore there is nothing to reincarnate.

Krishnamurti: Vì vậy, nếu không có John hay K hay N hay Z thường hằng thì chuyện gì sẽ xảy ra? Bạn có nhớ – tôi nghĩ tôi đã đọc trong truyền thống Tây Tạng hoặc một số truyền thống khác – rằng khi một người sắp chết, vị linh mục hoặc nhà sư bước vào, đuổi cả nhà ra ngoài, khóa cửa lại, và nói với người sắp chết rằng “Nhìn xem, con sắp chết. Hãy xả bỏ. Hãy xả bỏ mọi dính mắc, mọi điều trần tục, mọi tham vọng của con – hãy buông bỏ. Bởi vì con sẽ gặp một vùng ánh sáng mà con sẽ nhập vào đó nếu con buông xả. Nếu không, con sẽ quay lại.” Nghĩa là, trở lại dòng chảy thế tục – bạn sẽ lại là dòng chảy đó.
Krishnamurti: So, sir, we see that. Then what happens? If there is no permanent John or K or N or Z, what happens? You remember, sir – I think I read in the Tibetan tradition or some other tradition – that when a person dies, is dying, the priest comes in or the monk comes in and pushes, sends all the family away, locks the door, and says to the dying man, ‘Look, you’re dying. Let go. Let all your attachments, all your worldliness, all your ambitions – let go. Because you are going to meet a light in which you will be absorbed if you let go. If not, you’ll come back.’ Which is, come back to the stream – you will be the stream again.

Vậy điều gì sẽ xảy ra với bạn nếu bước ra khỏi dòng chảy? Việc bước ra là hóa thân. Bây giờ, chuyện gì xảy ra? Bạn theo kịp chứ? Bạn, Naudé, đã bước ra khỏi dòng chảy. Điều gì xảy ra? Hãy lắng nghe điều này. Bạn không phải là một nghệ sĩ, bạn không phải là một doanh nhân, bạn không phải là một chính trị gia, bạn không phải là một nhạc sĩ – tất cả sự đồng hóa đó là một phần của dòng chảy. Thưa bạn, điều đó rất thú vị bởi vì chẳng hạn như Napoléon, hay bất kỳ ai trong số những người được gọi là lãnh đạo thế giới, họ đã giết, họ tàn sát, họ đã làm mọi thứ khủng khiếp có thể tưởng ra được. Họ sống và chết trong dòng chảy. Họ thuộc về dòng chảy. Điều đó rất đơn giản và rất rõ ràng.
So what happens to you if you step out of the stream? The stepping out is the incarnation. Now, what happens? You follow? You, Naudé, have stepped out of the stream. Just a minute, sir, follow it. You, Naudé, stepped out of the stream. What happens? You are not an artist – listen to this – you are not a businessman, you are not a politician, you are not a musician – all that identification is part of the stream. Sir, that’s very interesting because, say, for instance, Napoleon, or any of these so-called world leaders, they killed, they butchered, they did every horror imaginable. They live and die in the stream. They are of the stream. That’s very simple and very clear.

Bạn thấy đấy, không ai trong chúng ta bước ra khỏi dòng. Và trong dòng đó, chúng ta luôn cố gắng sang bờ bên kia.
You see, none of us step out of the river. And we are always, from the river, trying to reach the other shore.

Người hỏi: Giống như người ta nói về giấc ngủ sâu khi đã thức giấc.
Question: It’s like people talking about deep sleep from awakeness.

Krishnamurti: Đúng thế, thưa bạn. Tất cả chúng ta đều thuộc về dòng chảy này. Một người thuộc về dòng chảy. Và từ dòng chảy này người đó muốn vươn tới bờ bên kia, nhưng không bao giờ rời khỏi bờ bên này, dòng chảy này. Bây giờ, người đó nói, “Được rồi, tôi thấy điều sai trái này, điều vô lý trong vị thế này, điều vô lý khi có một ý tưởng như thế”. Vì vậy tôi bỏ lại điều đó. Và tâm thức nói “Bước ra”. Điều gì xảy ra?
Krishnamurti: That’s it, sir. We belong to the stream, all of us. Man does belong to the stream. And from the stream he wants to reach that shore – never leaving the shore, this river. Now, the man says, ‘All right, I see the fallacy of this, the absurdity of my position, absurdity of stating even such an idea’. So I leave that. So the mind says, ‘Out,’ steps out. What takes place? Don’t say it is not…

Người hỏi: Điều duy nhất mà người ta có thể nói về nó, về mặt dòng chảy, là sự im lặng. Bởi vì đó là sự im lặng của dòng chảy. Và cũng có thể nói đó là cái chết của dòng chảy. Và vì thế, xét về dòng chảy, có khi gọi là lãng quên, có khi gọi là…
AN: The only thing that one can say about it, in terms of the stream, is silence. Because it is the silence of the stream. And one can also say it is the death of the stream. And therefore, in terms of the stream, it is sometimes called oblivion, it is sometimes called…

Krishnamurti: Thưa bạn, bạn có biết bước ra khỏi dòng có ý nghĩa gì không? Không còn một đặc tính nào cả, bởi vì ngay khi có một đặc tính thì lập tức bạn thuộc vào dòng. Khoảnh khắc bạn nói bạn có đức hạnh thì bạn thuộc vào dòng – nghĩa là không còn đức hạnh nữa. Bước ra khỏi dòng là bước ra khỏi toàn bộ cấu trúc này. Bạn theo kịp không?
Krishnamurti: Sir, sir, do you know what it means to step out of the stream? No character, because the moment you have a character it’s of the stream. The moment you say you are virtuous you are of the stream – or not virtuous. To step out of the stream is to step out of this whole structure – moral, ethical. You follow?

Vì vậy, sự sáng tạo như chúng ta biết đang ở trong dòng – Mozart, Beethoven – bạn theo kịp chứ? – hoặc các họa sĩ – tất cả họ đều ở bờ bên này. Bây giờ tôi đang tự nhủ: Điều gì xảy ra với người thực sự bước ra ngoài? Bên bờ này, trong dòng chảy, năng lượng đang trong xung đột, mâu thuẫn, phân chia, tất cả điều đó đang diễn ra. Khi người ta bước ra khỏi nó, không có xung đột, không có sự phân chia như đất nước của tôi, đất nước của bạn. Vậy chất lượng của con người, tâm trí, khi không bị phân chia là gì? Đó là năng lượng thuần khiết, phải không, có thể biểu hiện tới… có thể chỉ ra dòng chảy, những điểm mà nó cần… – tất cả những thứ còn lại. Vì vậy mối quan tâm của chúng ta là dòng chảy và việc bước ra khỏi nó, không phải điều gì xảy ra. Phải không?
So, creation as we know it is in the stream – Mozart, Beethoven – you follow? – or the painters – they are all here. Now I am saying to myself: What happens to the man who really steps out? Here, in the river, in the stream, energy is in conflict, in contradiction, in strife. The division, all that’s going on there. When he steps out of it, there is no conflict, there is no division as my country, your country – no division. So what is the quality of that man, that mind, that has no sense of division? It is pure energy, isn’t it, which can express to the… which can show to the river, points where it should… – all the rest of it. So our concern is the stream and the stepping out of it, not what happens. Right?

Người hỏi: Chắc chắn rồi, thưa ông. Và đó là Thiền, đó là sống thực, bởi vì dòng sông thế tục không phải là cuộc sống. Dòng sông thế tục hoàn toàn mang tính máy móc.
Question: Absolutely, sir. And that is meditation, that is real living, because the stream is not life. The stream is totally mechanical.

Krishnamurti: Bạn thấy đấy, điều đó có nghĩa tôi phải chết đi đối với dòng sông thế tục. Và do đó tôi không được vướng mắc vào John, người đang ở trong dòng chảy. Và khi tôi rời dòng chảy… Bạn biết đấy, tôi há hốc,… mà không có nước mắt. Đó là tất cả. Đó là những gì diễn ra. Tôi nghĩ đó là lòng Từ Bi. Như vậy, bạn thấy đấy, việc luân hồi, tái sinh lặp đi lặp lại ở trong dòng chảy này. Đây không phải là một điều dễ chấp nhận. Bạn theo kịp chứ? Tôi đến gặp bạn với người anh trai đã chết ngày hôm qua và bạn nói với tôi điều này. Tôi gọi bạn là một người đàn ông cực kỳ nhẫn tâm. Nhưng bạn đang khóc. Tôi thì đang khóc cho chính mình. Bạn thì đang khóc cho tôi, cho dòng chảy, cho loài người. Nhưng tôi gọi bạn là tàn nhẫn vì tôi đang khóc cho chính mình, cho sự mất mát của chính mình. Bạn thấy đấy, đó thực sự là lý do tại sao mọi người không muốn biết. Tôi thích nghĩ rằng tôi muốn biết nhưng tôi thực sự không muốn biết liệu anh trai tôi đã chết hay chưa…
Krishnamurti: You see, that means I must die to the stream. And therefore I must deny – see, sir – not deny – I must not get entangled with John, who is in the stream. I see John belonging to this. I see my brother belonging to this. And as I move away from the stream… You know, my mouth is open, my… no tears. That’s all. That’s what takes place. I think that is compassion. So, sir, you see, reincarnation, that is, incarnating over and over again, is in the stream. This is not a very comforting thing, this. You follow? I come to you with… my brother died yesterday and you tell me this. I call you a terribly cruel man. But you are weeping. I am weeping for myself. You follow, sir? You are weeping for me, for the stream, for the people. You follow? But I call you cruel because I’m weeping for myself, for my loss. You see, that’s why people don’t want to know, really. I like to think I want to know. You follow? I really don’t want to know if my brother is dead...

Thưa bạn, có một điều khác khá thú vị, đó là, Aldous Huxley có lần đã kể với tôi, sau khi người vợ đầu tiên của ông ấy qua đời, ông ấy đã đến… Bằng cách nào đó, ông ấy sống chung một người đồng cốt. Người đồng cốt mà ông chưa từng gặp trước đây đột nhiên nói: “Tôi có một thông điệp dành cho ông Huxley.” Và Huxley, Aldous nói rằng vợ ông, người đã chết, đã nói với ông điều gì đó mà chỉ có ông và người vợ biết.
Sir, some other thing which is quite interesting, which is, Aldous Huxley told me once, after his first wife died, he went to… it happened somehow that he was with a medium. That medium, whom he had not met before, suddenly said, ‘I’ve a message for Mr Huxley.’ And Huxley, Aldous said that his wife, who was dead, told him something which he and the wife only knew and nobody else.

Người hỏi: Như thế nào, thưa ông?
AN: How, sir?

Krishnamurti: Điều đó khá đơn giản. Aldous Huxley đang còn sống. Người vợ đầu tiên của ông, tên là X, đã chết. Người vợ liên lạc về điều gì đó mà ông đã quên nhưng người vợ còn nhớ. Hai vợ chồng có một bí mật, chẳng hạn chìa khóa két sắt nằm dưới tấm thảm. Chỉ có điều ông đã quên. Ông ta đang tìm kiếm, suy nghĩ và nói “Trời ơi, chiếc chìa khóa đó ở đâu?” Vậy chuyện gì xảy ra? Người vợ đã chết vẫn nghĩ đến chiếc chìa khóa đó vì sự lo nghĩ của ông. Và cũng muốn nói với ông rằng chiếc chìa khóa ở dưới tấm thảm. Và người đồng cốt đã giúp đỡ. Và do đó, họ nghĩ người vợ còn sống. Bạn theo kịp điều tôi muốn nói chứ? Hoặc là lấy ra từ tiềm thức của ông ta hoặc từ người vợ trước khi chết – khi cô ấy sắp chết, cô ấy không có thời gian hoặc cô ấy không… – có một cảm giác cô ấy phải nói với ông ta. Cảm giác đó vẫn còn đọng lại trong không khí.
Krishnamurti: Well, that’s fairly simple. Aldous Huxley was living. His first wife, called X was living… His first wife died. The first wife had a contact between themselves there is something which he had forgotten but the wife remembered. Say, for instance, the husband and the wife had a secret: key to the safe is under the carpet. Only he had forgotten it. He was looking for it, thinking about it, saying, ‘For God’s sake, where is that key?’ So what happens? The wife who is dead still thinks of that key because he is worried. And also is wanting to tell him the key is under the carpet. And the medium helps that. And they think, therefore, the wife lives. You follow what I mean? Either picked it out of his subconscious or the wife before dying – as she was dying, she hadn’t time or she hasn’t… – there was that feeling she must tell him. That feeling must remain in the air.

Người hỏi: Nói cách khác, những gì chúng ta nhớ được trong ký ức là những gì chúng ta lấy ra từ không khí.
Question: In other words, what we remember of memory is what we pick up from the air.

Krishnamurti: Cái tôi góp nhặt những điều nó đã làm và không làm của ngày hôm qua. Tất nhiên rồi. Bạn thấy đấy, thật khủng khiếp biết bao khi phải đối mặt với thứ mà chúng ta đã bám vào. Bạn có dõi theo chứ? Rằng anh tôi và tôi là những thực thể riêng biệt, khi cả hai thuộc về dòng chảy. Khoảnh khắc bạn bước ra khỏi nó, bạn phủ nhận, bạn rời xa toàn bộ dòng chảy đó. Sau đó bạn có thể khóc. Nhưng còn trong dòng mà khóc cho những gì xảy ra thì chỉ là sự tủi thân – bạn biết tất cả những điều đó.
Krishnamurti: Myself, I pick up yesterday’s what I did, what I didn’t do. Of course. You see, sir, how terrible it is to face something to which we have clung to. You follow? That my brother is a separate entity, I am a separate entity, when I and my brother belong to the stream. You follow? The moment you step out of it you deny, you move away from the whole river. Then you can cry. But to cry what happens in the stream is just self-pity – you know, all that stuff.


Như bạn đã biết, có một tiện ích tiện dụng như thế này là một trong những cách tốt nhất để thu hút khách truy cập trang web theo dõi bạn trên phương tiện truyền thông xã hội . Chúng giúp đối tượng của bạn tìm thấy các nguồn tài nguyên khác của bạn và trên hết, chúng là một công cụ tiện dụng để xây dựng mối quan hệ tốt hơn với đối tượng của bạn trên mọi nền tảng.

Đây là tin tốt cho tất cả các nhà tiếp thị Internet vì bất kể bạn sử dụng nền tảng lưu trữ nào (ví dụ: WordPress, Blogger hay Wix), bạn đều có thể nhúng tiện ích đăng ký nhỏ tiện dụng này vào trang web của mình.

Vào năm 2018, sự tích hợp liền mạch giữa nhiều kênh tiếp thị là một trong những yếu tố quan trọng nhất dẫn đến thành công.

Có một bài đăng trên blog trên trang web của bạn là điều tuyệt vời, nhưng nếu bạn sử dụng YouTube làm kênh tiếp thị, bạn cần liên kết bài đăng đó với trang web của mình để người đọc có thể tìm thấy nội dung video hoặc danh mục đầu tư của bạn dễ dàng hơn.

Bất cứ khi nào bạn có khách truy cập vào trang web của mình, bạn cũng có cơ hội thêm người đăng ký mới vào kênh YouTube của mình. Khi bạn quyết định thêm nút đăng ký vào trang web của mình, nó sẽ tạo ra cầu nối giữa trang web và nội dung video của bạn.

Nút đăng ký YouTube có sẵn cho tất cả các kênh — lớn hay nhỏ. Không cần phải nói, điều này sẽ tiết kiệm rất nhiều thời gian cho khách truy cập vì họ sẽ không phải tìm kiếm xung quanh để tìm nội dung của bạn.

Chúng ta hãy cùng tìm hiểu lý do tại sao bạn ở đây.
Làm thế nào để nhúng nút đăng ký YouTube vào trang web của bạn?

Sau đây là hướng dẫn nhanh về cách nhúng nút kênh YouTube vào trang web của bạn.Truy cập trình tạo mã nhúng HTML của Google tại đây.
Nhập tên người dùng YouTube của bạn (không phải tên kênh), ID người dùng hoặc ID kênh. Sử dụng tính năng lấy ID kênh ở bảng bên trái.
Chọn bố cục và tùy chọn bạn muốn cho nút.
Google sẽ tự động tạo mã cho bạn.
Sao chép toàn bộ mã.
Dán nó vào HTML của trang web của bạn.

Hãy nhớ rằng các mẫu trang web tùy chỉnh có thể cần nhiều bước hơn. Hãy tham khảo nhà phát triển trang web của bạn nếu đó là trường hợp. Đây là giao diện của trang sau khi bạn nhập đúng ID kênh hoặc tên người dùng.




Điều khoản sử dụng của YouTube cho Tiện ích Nút Đăng ký

Để phòng ngừa, trước khi thêm tiện ích đăng ký YouTube này, chúng tôi khuyên bạn nên đọc và tìm hiểu các điều khoản sử dụng của YouTube. Chúng tôi đã phác thảo các điểm liên quan bên dưới:Nút đăng ký phải được hiển thị rõ ràng trên trang web của người dùng.
Người dùng không được phép quảng cáo giải thưởng và phần thưởng cho mọi người để đổi lấy việc nhấp vào đăng ký.
Người dùng bị nghiêm cấm sử dụng nút này để theo dõi hoặc lưu dữ liệu thuê bao.

Có nhiều ứng dụng khác tạo ra các plugin trang web như thế này, nhưng xét về góc độ tiếp thị nội dung, việc tích hợp giữa YouTube và trang web của công ty có giá trị rất lớn trong việc cải thiện trải nghiệm của khách truy cập.
Lợi ích của việc thêm nút Đăng ký vào trang web của bạnNếu bạn sử dụng cả trang web và YouTube làm kênh tiếp thị nội dung, sự tích hợp này sẽ là cầu nối kết nối cả hai lại với nhau.
Theo góc độ UX, nó giúp người dùng tiết kiệm được một cú nhấp chuột để đăng ký kênh của bạn.
Thực ra việc này rất dễ thực hiện nên bạn cứ làm đi.


NHÀ CUNG CẤP DỊCH VỤ CHUYÊN NGHIỆP
PHÁT TRIỂN
WEBDESIGN - HOSTING - DOMAIN
Lỗi: This CKEditor 4.22.1 version is not secure. Consider upgrading to the latest one, 4.24.0-lts
Xuất hiện khu vực: Nội dung (*) 

Trong thời gian chờ, anh có thể làm theo hướng dẫn này để tạm ẩn đi cảnh báo:
- Mở file: assets/editors/ckeditor/config.js
- Thêm dòng: config.versionCheck = false; // (như ảnh)
Sửa Lỗi: This CKEditor 4.22.1 version is not secure - Khu vực: Nội dung (*)


NHÀ CUNG CẤP DỊCH VỤ CHUYÊN NGHIỆP
PHÁT TRIỂN
WEBDESIGN - HOSTING - DOMAIN

Dù sử dụng công nghệ hiện đại, đa số ổ cứng HDD có tuổi thọ trung bình chưa đến 3 năm trước khi gặp sự cố.

Bề mặt chứa đĩa từ của ổ cứng HDD. Ảnh: Unsplash.

Bề mặt chứa đĩa từ của ổ cứng HDD. Ảnh: Unsplash.

Theo khảo sát của công ty cung cấp dịch vụ sao lưu dữ liệu Backblaze trên 17.155 ổ cứng HDD bị lỗi, tuổi thọ trung bình trước khi gặp sự cố là 2 năm 6 tháng. Thời gian trên khá ngắn so với suy nghĩ của nhiều người.

Kết quả được Backblaze công bố sau khi kiểm tra số giờ bật nguồn của tất cả ổ cứng gặp lỗi. Công ty đã ghi nhận ngày xảy ra sự cố, model, mã hiệu, dung lượng, loại lỗi và giá trị SMART (Self-Monitoring, Analysis, and Reporting Technology) - các thông số dùng để phân tích ổ cứng.

Theo Ars Technica, 17.155 mẫu khảo sát gồm 72 model ổ cứng với nhà sản xuất và dung lượng khác nhau, chủ yếu đến từ Seagate, Western Digital và Toshiba. Các ổ cứng không khởi động, không có giá trị SMART hoặc dữ liệu vượt quá giới hạn đều bị loại bỏ.

Các ổ cứng hỏng nhiều nhất trong khảo sát của Backblaze với số mẫu gặp lỗi và tuổi thọ trung bình. Ảnh: Backblaze.
O cung HDD bi loi anh 1

Các ổ cứng hỏng nhiều nhất trong khảo sát của Backblaze với số mẫu gặp lỗi và tuổi thọ trung bình. Ảnh: Backblaze.

Mẫu khảo sát được Backblaze thu thập từ nhiều nguồn, trong đó có 3.379 ổ cứng lấy từ trung tâm dữ liệu của công ty. Nếu chỉ tính các sản phẩm này, tuổi thọ của chúng lâu hơn một chút, đạt 2 năm 7 tháng.

Vào tháng 3, khảo sát của công ty khôi phục dữ liệu Secure Data Recovery cũng cho kết quả tương tự. Với 2.007 mẫu gồm các loại ổ cứng HDD gặp sự cố, tuổi thọ trung bình trước khi bị lỗi là 2 năm 10 tháng.

Không chỉ đo tuổi thọ trung bình, Backblaze còn lập danh sách 30 model ổ cứng gặp lỗi nhiều nhất (50 sản phẩm trở lên) và tuổi thọ trung bình của từng model.

Dựa trên danh sách, có 2.023 ổ cứng Seagate ST12000NM0007 12 TB bị lỗi, thời gian sử dụng trung bình 1 năm 6 tháng. Trong khi đó, model Seagate ST400DM000 4 TB có 5.249 sản phẩm lỗi, tuổi thọ trung bình 3 năm 3 tháng.

Toàn bộ ổ cứng 1 TB, 1,5 TB, 2 TB, 3 TB và 5 TB trong mẫu thu thập của Backblaze không còn khả năng hoạt động. Trong khi đó, đa số ổ cứng dung lượng lớn vẫn hoạt động dù gặp lỗi.

Vì vậy, tuổi thọ khảo sát có thể thay đổi trong thực tế nếu các ổ cứng dung lượng cao bị hỏng hoàn toàn.

Nhiều người hiện không còn sử dụng ổ cứng HDD mà chuyển sang SSD do giá ngày càng giảm. Tuy nhiên, người dùng vẫn được khuyến cáo thường xuyên sao lưu dữ liệu để tránh sự cố đáng tiếc.

Nguồn: https://zingnews.vn/bat-ngo-voi-tuoi-tho-o-cung-hdd-post1428916.html


NHÀ CUNG CẤP DỊCH VỤ CHUYÊN NGHIỆP
PHÁT TRIỂN
WEBDESIGN - HOSTING - DOMAIN

[Quản lý web với google sheet] In dữ liệu từ google sheet - back to basic

Tiếp theo series quản lý web với google sheet, 2 bài trước mình đã hướng dẫn các bạn thu thập thông tin vào google sheet, giờ bài này mình sẽ hướng dẫn các bạn in dữ liệu từ google sheet ra như in từ database ra nhé 

2 bài trước mình đều hướng dẫn các bạn xử lý không dùng ngôn ngữ backend nào, hoàn toàn hướng dẫn sử dụng script, nhờ đó mà không cần nhiều kiến thức ngôn ngữ backend vẫn có thể làm được. Bài này mình cũng có 1 cách chỉ sử dụng js, không dùng ngôn ngữ backend. Tuy nhiên nhược điểm của cách này là lộ hết code, và lộ cả link google sheet của bạn nữa (sohai). Vậy nên mình khuyến khích mọi người sử dụng cách 2: sử dụng ngôn ngữ backend, xử lý đọc dữ liệu hết trước khi in ra web cho người dùng đọc, tại đây mình sử dụng ngôn ngữ đơn giản - PHP với những hàm đơn giản thôi, và không sử dụng đến google API vì nó khá phức tạp.

Chuẩn bị

Tất nhiên là cần phải chuẩn bị dữ liệu trên google sheet để có cái mà in ra rồi :v.

Để dễ dàng và đơn giản nhất, các bạn nên coi 1 file google sheet làm DB của 1 web, mỗi sheet lưu nội dung của 1 "bảng" trong DB đó. Tất nhiên có thể chia ra nhiều file google khác nhau cũng được, nhưng như vậy mất công chúng ta tìm kiếm và mở nhiều file thôi 

Với mỗi sheet, mình quy định như sau: mỗi cột chính là 1 Field - trường dữ liệu, mỗi hàng là 1 bản ghi. Lấy ví dụ bảng News của mình như sau nhé:

Giờ khi có các "bảng" dữ liệu rồi, các bạn lưu ý các thông tin sau nhé:

  • URL sheet => lấy ra google sheet code. Bạn cần phải lấy mã của google sheet, hướng dẫn như sau: Link google sheet của bạn sẽ có dạng như thế này: https://docs.google.com/spreadsheets/d/1DjUVVsMdYsajrMRmR-3YPaQ7akiRvK1njJIAPf5EOXI/edit#gid=1150305447 thì bạn sẽ trích xuất google sheet code như sau:

  • Page number: Để lấy thông tin đúng bảng, thì ngoài google sheet code ở trên, phải lưu ý lấy đúng số thứ tự sheet nhé. Số thứ tự sẽ đếm từ 1, VD như sheet News của mình thì page number sẽ là 2

  • Cuối cùng, các bạn lưu ý thứ tự các cột - Field đúng với thứ tự bạn mong muốn nhé

Sử dụng JS

Xử lý URL lấy dữ liệu

Để có thể truy cập dữ liệu trong google sheet bằng web của bạn, tất nhiên là phải public cho phép xem trước. Để public được, bạn vào File -> Publish to the web như dưới đây:

Sau đó chọn public Public to the Web các sheet bạn muốn (lưu ý trang nào muốn lấy dữ liệu phải được public rồi đã), hoặc cả google sheet đó luôn 😄.

, khi đó đường link public RSS URL sẽ trông như sau:

https://spreadsheets.google.com/feeds/cells/YOURGOOGLESHEETCODE/SHEETPAGENUMBER/public/values

Tuy nhiên để thuận tiện cho việc đọc dữ liệu dễ dàng, thì dạng JSON sẽ giúp cho việc phân tách dữ liệu các hàng / các cột thuận tiện hơn, vậy nên URL để lấy dữ liệu cần có chút thay đổi để trở thành public JSON URL như sau:

https://spreadsheets.google.com/feeds/cells/YOURGOOGLESHEETCODE/SHEETPAGENUMBER/public/values?alt=json-in-script

Bạn có thể test xem dữ liệu in ra JSON ra sao rồi bằng cách vào đường dẫn xem thử và thêm Json formater cho dễ nhìn nhé Do tính chất bất đồng bộ của JS, vậy nên việc đọc dữ liệu từ google sheet kia có thể mất chút thời gian. Để đảm bảo cho sau khi đọc được hết dữ liệu từ file google sheet của bạn rồi bạn mới tiến hành xử lý dữ liệu, thì hãy thêm 1 function callback sẽ chạy hàm xử lý dữ liệu doData vào URL nữa nhé:

https://spreadsheets.google.com/feeds/cells/YOURGOOGLESHEETCODE/SHEETPAGENUMBER/public/values?alt=json-in-script&callback=doData

Vậy là đã có link sử dụng để đọc dữ liệu từ google sheet trả về Json để xử lý rồi, việc tiếp theo sẽ là xử lý đám dữ liệu này hiển thị ra cho đúng cách và đúng chỗ nhé.

Chuẩn bị chỗ chèn dữ liệu (Xử lý html tại vị trí sẽ chèn dữ liệu)

Trong file HTML của mình, mình sẽ đặt 1 <div id="data"></div> và dữ liệu sau khi xử lý sẽ insert vào trong div này nhé:

<!DOCTYPE html>
<html>
<head>
    <title></title>
    <script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <script src="https://spreadsheets.google.com/feeds/cells/YOURGOOGLESHEETCODE/SHEETPAGENUMBER/public/values?alt=json-in-script&callback=doData"></script>
</head>
<body>
    <h1>Lấy dữ liệu từ google sheet</h1>
    <table>
        <tbody id="data"></tbody>
    </table>
</body>
</html>

Xử lý dữ liệu để in ra

Giờ tất nhiên là công việc phức tạp nhất: xử lý dữ liệu in ra sao cho đúng ý muốn của bạn. Mình sẽ khởi tạo 1 biến để lưu dữ liệu từ google sheet, sau đó sử dụng hàm doData để 'nhét' dữ liệu mình cần vào nhé:

var spData = null;
function doData(json) {
    spData = json.feed.entry;
    //nếu cần kiểm tra thì thử console.log phát xem dữ liệu đang có dạng như nào nhé
    console.log(spData);
}

Vì sao lại là json.feed.entry? Để biết vì sao thì bạn thử truy cập URL lấy dữ liệu và xem thử hàm doData trả lại dữ liệu JSON như nào nhé: https://spreadsheets.google.com/feeds/cells/YOURGOOGLESHEETCODE/SHEETPAGENUMBER/public/values?alt=json-in-script&callback=doData

Như các bạn thấy và click thử vào các đối tượng dữ liệu kia, thì nội dung của "bảng" mà chúng ta cần nằm trong doData->feed->entry. Ở kia mỗi item trong entry chính là thông tin của 1 ô dữ liệu.

Việc tiếp theo là xử lý dữ liệu để in ra. Tất nhiên là với dữ liệu JSON kia đã đọc được rồi thì các bạn cũng có thể tự nghĩ cách xử lý cho phù hợp, ở đây mình hướng dẫn đơn giản làm ví dụ vừa in dữ liệu vừa in HTML cho đẹp nhé:

Sử dụng 1 hàm readData() để xử lý. Hàm này sẽ được gọi đến sau khi toàn bộ trang web và dữ liệu đã được xử lý hết, như vậy bảo đảm đã có các thành phần khác, đọc dữ liệu cũng đã xong, đã có dữ liệu và chỉ việc 'mổ xẻ' nó thôi:

function readData() {
    var data = spData;
    var strData = ''; //biến này chứa đoạn mã html sẽ in ra
    //Xử lý code ở đây (xem nội dung phần dưới)
    $('#data').after(strData); //in đám html lưu trong strData vào trong div có id là data
}
$(document).ready(function() {
    readData();
});

Giờ bắt đầu phân tích này: Như đã nói ở trên, mỗi 1 item trong json.feed.entry chỉ là 1 ô dữ liệu thôi, vậy làm thế nào để lọc ra mỗi hàng, ứng với mỗi bản ghi? Sau đó lặp lại để xử lý html y hệt với bản ghi tiếp theo? Nếu mở các item ra, sẽ thấy nội dung của ô được lưu trong gs$cell:

Trong này có 3 item cần chú ý:

  • row: hàng số 2 - bản ghi thứ 2 trong "Bảng"
  • col: cột số 2 - Trường ở vị trí thứ 2 theo thứ tự trong "Bảng" (như đã lưu ý từ đầu, chú ý đúng thứ tự nhé)
  • $t: nội dung bên trong ô

Vậy là giờ cần phân tích từng item trong entry kia, xét hàng và cột của nó để biết nội dung nó đang chứa là cái gì. Thực tế bạn chủ yếu chỉ cần chú ý vào số cột, vì dữ liệu được đọc theo thứ tự từ trái sang đến ô dữ liệu cuối, sau đó lại lộn xuống hàng thứ 2 và tiếp tục như vậy. Vậy thì cứ xử lý tới cột cuối cùng thì coi như đã xong 1 bản ghi, xử lý tiếp theo sẽ là dữ liệu của bản ghi tiếp theo rồi 😄. Tất nhiên điều này có nghĩa là bạn phải nắm được cột 1 chứa gì, cột 2 chứa gì, cột cuối cùng là cột số bao nhiêu, như vậy xử lý mới chính xác được. Hơi "hard code" tí nhưng mà các bạn có thể làm nó "logic" hơn, nhưng sẽ dài hơn và ở đây mình hướng dẫn đơn giản thôi nhé.

Giờ phân tích từng ô dữ liệu (ứng với từng gs$cell), như trong dữ liệu mẫu của mình thì hàng đầu tiên là tên trường - mình sẽ để là <th>, hoặc các bạn bỏ qua, tùy ý. Và tổng cộng mình có 4 trường dữ liệu tất cả. Như vật mình sẽ tách ra xử lý hàng đầu tiên riêng, và xử lý các hàng tiếp theo sẽ giống nhau (cùng là bản ghi dữ liệu), đồng thời tổng cộng xử lý là 4 cột trường dữ liệu để in ra.

for (var r = 0; r < data.length; r++) {
    var cell = data[r]["gs$cell"]; //gán nội dung cần lấy - gs$cell vào biến để xử lý
    if (r >= 0 && r < 4) { // từ ô đầu tiên tới số thứ 4 xử lý riêng vì là hàng lưu tên trường dữ liệu, nếu không thích có thể bỏ qua việc ghi tên cột lên hàng 1, hoặc bỏ qua xử lý đoạn này. 
        if (cell["col"] == "1") { //cột đầu tiên mình lưu ID
            strData += '<tr class="row">';
            strData += '<th class="col-md-1"><b>' + cell["$t"] + '</b></th>'; //nội dung nằm trong gs$cell->$t
        } else if (cell["col"] == "2") { //cột thứ 2 mình lưu title
            strData += '<th class="col-md-1"><b>' + cell["$t"] + '</b></th>';
        } else if (cell["col"] == "3") {  //cột thứ3 mình lưu link ảnh, với th thì vẫn in bình thường, nhưng xuống tới dưới sẽ in thành hình ảnh nhé
            strData += '<th class="col-md-1"><b>' + cell["$t"] + '</b></th>';
        } else if (cell["col"] == "4") { //cột cuối lưu mô tả ngắn cho bài
            strData += '<th class="col-md-2"><b>' + cell["$t"] + '</b></th>';
            strData += '</tr>';
        }
    } else { //xử lý các bản ghi dữ liệu bình thường
        if (cell["col"] == "1") {
            strData += '<tr class="row">';
            strData += '<td class="col-md-1">' + cell["$t"] + '</td>';
        } else if (cell["col"] == "2") {
            strData += '<td class="col-md-1">' + cell["$t"] + '</td>';
        } else if (cell["col"] == "3") {
            strData += '<td class="col-md-1"><img width="100%" src="' + cell["$t"] + '"></td>';
        } else if (cell["col"] == "4") {
            strData += '<td class="col-md-2">' + cell["$t"] + '</td>';
            strData += '</tr>';
        }
    }
}

Chạy thử sẽ thấy kết quả như dưới đây nhé:

Dưới đây là toàn bộ code demo cho các bạn thử, nhớ thay link google sheet của các bạn vào nhé:

<!DOCTYPE html>
<html>
<head>
    <title></title>
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/css/bootstrap.min.css">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/js/bootstrap.min.js"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
    <script type="text/javascript">
        var spData = null;

        function doData(json) {
            spData = json.feed.entry;
        }
        function readData() {
            var data = spData;
            var strData = '';
            // consolr.log
            for (var r = 0; r < data.length; r++) {
                var cell = data[r]["gs$cell"];
                if (r >= 0 && r < 4) {
                    if (cell["col"] == "1") {
                        strData += '<tr class="row">';
                        strData += '<th class="col-md-1"><b>' + cell["$t"] + '</b></th>';
                    } else if (cell["col"] == "2") {
                        strData += '<th class="col-md-1"><b>' + cell["$t"] + '</b></th>';
                    } else if (cell["col"] == "3") {
                        strData += '<th class="col-md-1"><b>' + cell["$t"] + '</b></th>';
                    } else if (cell["col"] == "4") {
                        strData += '<th class="col-md-2"><b>' + cell["$t"] + '</b></th>';
                        strData += '</tr>';
                    }
                } else {
                    if (cell["col"] == "1") {
                        strData += '<tr class="row">';
                        strData += '<td class="col-md-1">' + cell["$t"] + '</td>';
                    } else if (cell["col"] == "2") {
                        strData += '<td class="col-md-1">' + cell["$t"] + '</td>';
                    } else if (cell["col"] == "3") {
                        strData += '<td class="col-md-1"><img width="100%" src="' + cell["$t"] + '"></td>';
                    } else if (cell["col"] == "4") {
                        strData += '<td class="col-md-2">' + cell["$t"] + '</td>';
                        strData += '</tr>';
                    }
                }
            }
            $("#data").after(strData);
        }
        $(document).ready(function() {
            readData();
        });
        
    </script>
    <script src="https://spreadsheets.google.com/feeds/cells/YOURGOOGLESHEETCODE/SHEETPAGENUMBER/public/values?alt=json-in-script&callback=doData"></script>
</head>
<body>
<table style="width: 80%">
    <tbody id="data">
        <!-- Content Here -->
    </tbody>
</table>
</body>
</html>

Sử dụng PHP

Như đã nói từ đầu, sử dụng js như đoạn code trên mặc dù đơn giản, "ăn liền" nhưng chỉ cần Inspect code lên cái là lộ luôn cái file google sheet của bạn rồi (capcuu). Chính vì vậy mình khuyến khích các bạn sử dụng thêm 1 ngôn ngữ backend, mình sử dụng PHP, để xử lý hết dữ liệu rồi mới in ra màn hình. Cách làm thì cũng đơn giản 😃

Lại là xử lý URL

Tương tự như trên, chúng ta cũng xử lý dữ liệu dạng json nhé, URL để sử dụng cũng na ná như trên kia thôi, khác tí tẹo 😄

https://spreadsheets.google.com/feeds/cells/YOURGOOGLESHEETCODE/SHEETPAGENUMBER/public/values?alt=json

Tất nhiên là vào thử link thấy dữ liệu cũng như trên, tức là thông tin cần lấy ở feed->entry->gs$cell

Về HTML

Lợi thế của PHP chính là tính linh động (hay cũng là sự "trông xấu" của PHP 😄 ), vì vậy bạn cứ chỗ nào muốn in dữ liệu thì viết mã PHP để in vào đó, xong xuôi lại đóng thẻ PHP viết tiếp HTML là được, không cần lằng nhằng vẽ cột, chèn vào vị trí như trên.

Lấy dữ liệu ra và "mổ xẻ thêm mắm muối"

<?php
    $url = 'http://spreadsheets.google.com/feeds/cells/YOURGOOGLESHEETCODE/SHEETPAGENUMBER/public/values?alt=json';
    $file = file_get_contents($url); //lấy dữ liệu từ URL trên
    $json = json_decode($file); //Đọc dữ liệu dạng JSON
    $rows = $json->{'feed'}->{'entry'}; //Lấy nội dung cần thiết trong entry
?>

Giờ đã có 1 tập dữ liệu của từng ô như bên trên rồi. Tiếp theo lại là phân tích các tập dữ liệu này, tùy thuộc vào ô đó thuộc cột bao nhiêu để lấy được dữ liệu tương ứng viết vào đúng chỗ.

$i = 1; //Hàng đầu tiên
foreach ($rows as $row) {
    if ($i == 1) { //nếu là hàng đầu tiên thì xử lý nó thành th, hoặc bỏ qua, như phía trên
        switch ($row->{'gs$cell'}->{'col'}) {
            case '1': //cột 1 là cột mở hàng tr
            ?>
            <tr class="row">
                <th class="col-md-1"><b> <?php echo $row->{'gs$cell'}->{'$t'} ?></b></th>
            <?php
            break;
            case '4': //cột 4 là cột kết thúc hàng tr
        ?>
            <th class="col-md-2"><b> <?php echo $row->{'gs$cell'}->{'$t'} ?></b></th>
        </tr> 
        <?php
            default: //với các cột khác là nhân của tr - tức th bình thường ?>
                <th class="col-md-1"><b> <?php echo $row->{'gs$cell'}->{'$t'} ?></b></th> <?php
        }
    } else {
        switch ($row->{'gs$cell'}->{'col'}) {
            case '1': //cột 1 là cột mở hàng tr
            ?>
            <tr class="row">
                <td class="col-md-1"><?php echo $row->{'gs$cell'}->{'$t'} ?></td>
            <?php
            break;
            case '4': //cột 4 là cột kết thúc hàng tr
            ?>
                <td class="col-md-2"><?php echo $row->{'gs$cell'}->{'$t'} ?></td>
            </tr> 
        <?php
            break;
            default: //với các cột khác là nhân của tr - tức th bình thường ?>
                <td class="col-md-1"><?php echo $row->{'gs$cell'}->{'$t'} ?></td> <?php
        }
    }
}//end foreach

Ồ, vậy đoạn code trên chạy in đúng như mong muốn, bởi vì các cột đã được xếp đúng thứ tự muốn in. Nhưng nhỡ các cột chưa đúng thứ tự in ra, VD in cột 3 trước khi in cột 4, hoặc muốn in cột 3 vài lần thì sao?

Extra: Xử lý gom dữ liệu thành các đối tượng bản ghi

Để xử lý trường hợp in không đúng thứ tự, in nhiều lần 1 giá trị trong cột, hay xử lý chuyên nghiệp hơn với các bản ghi, thì suy luận đơn giản là gom hết các dữ liệu mỗi hàng thành 1 mảng con, và đẩy vào 1 mảng 2 chiều thôi

$i = 0; //Khởi tạo phần tử thứ 0 của mảng
foreach ($rows as $row) { //Với mỗi nội dung ô trong item của entry 
    if ($row->{'gs$cell'}->{'col'} == '1') { //nếu là cột đầu tiên - tức trường đầu tiên của 1 bản ghi
        $new[$i] = []; //Khởi tạo phần tử thứ i là 1 mảng rỗng
        array_push($new[$i], $row->{'gs$cell'}->{'$t'}); //đẩy nội dung $t vào thành phần tử đầu tiên của mảng $new[$i]
    } elseif ($row->{'gs$cell'}->{'col'} == '4') { //cột cuối cùng của mình là cột 4, nên nếu phân tích tới cột cuối thì sẽ cộng cho i thêm 1, để chuyển sang đẩy dữ liệu vào item chứa nội dung bản ghi tiếp theo
        array_push($new[$i], $row->{'gs$cell'}->{'$t'});
        $i++;
    } else { //còn nếu ko phải cột đầu, cũng chả phải cột cuối thì cứ tuần tự nhét nội dung 'field' - trường vào mảng chứa nội dung bản ghi đang được ghi lại
        array_push($new[$i], $row->{'gs$cell'}->{'$t'});
    }
}

Như trên là ta đã có mảng đa chiều $new chứa tất cả các bản ghi rồi:

$new[0] => như của mình chứa nội dung tiêu đề cho các cột - tức tên 'Field'
$new[1] => Chứa bản ghi - nội dung dòng dữ liệu đầu tiên (của mình là hàng 2 đấy =)))
$new[3] => Chứa bản ghi - nội dung dòng dữ liệu đầu tiên (của mình là hàng 3 đấy =)))
...
Và 
$new[1][0] => chứa id của bản ghi 1
$new[1][1] => chứa title của bản ghi 1
$new[1][2] => chứa link ảnh minh họa cho bản ghi 1
...

Đã gom hàng xong. Giờ chạy vòng lặp foreach $new để xử lý là được:

foreach ($new as $item) {
    echo $item[0]; //=> in ra ID này, chèn html gì tùy mọi người nhé, mình lười viết rồi
    //xử lý chèn html gì đấy
    echo $item[4]; // in ra cái mô tả ngắn
    //xử lý chèn html gì đấy
    echo $item[2]; // in ra cái ảnh minh họa cho đẹp
    //xử lý chèn html gì đấy
    echo $item[0]; //lại in ra id lần nữa này, chắc là để lấy id làm link dẫn sang bài viết chi tiết =))
... //đừng có gõ 3 chấm vào code ko lỗi nhé
}

Đấy cũng có khó đâu, đỡ 'lộ hàng' hơn JS kia nhé, mỗi tội là phải cài thêm môi trường backend chứ ko 'ăn ngay' như JS được thôi. Lười mà không sợ lộ file google sheet thì dùng JS cũng được nhé 😄

Kết

Series này của mình đã hướng dẫn cách 'Lười' - sử dụng google spread sheet làm DB, và sử dụng JS (có thể kết hợp với ngôn ngữ backend đơn giản - không framework hay hàm phức tạp) để các bạn đỡ mất công cài môi trường cho SQL hay cho framework backend. Tất nhiên cách quản lý và xây dựng web này có nhiều nhược điểm:

  • Chỉ dùng được cho web site nội dung đơn giản, thu thập dữ liệu dạng đơn giản từ web, chủ yếu là lấy dữ liệu để in ra như mong muốn
  • Yêu cầu chặt chẽ trong google sheet: đúng thứ tự sheet, đúng thứ tự cột, đúng - đủ dữ liệu ứng với các cột (tất cả các bản ghi đều ghi đến đúng cột số mà bạn quy định là cuối, bản ghi nào mà ghi thêm là tất cả đằng sau sẽ lệch dữ liệu hết) => cần tuân thủ rule, ko thể tùy tiện thay đổi thứ tự hay thêm cột mới - dẫn đến thay đổi cả code.
  • Dễ lộ DB của bạn: do phải public dữ liệu để web có thể lấy được nên file của bạn sẽ dễ bị lộ. Có thể hạn chế bằng cách khóa các sheet, chỉ public cho xem 1 số sheet thôi. Và tất nhiên là không nên lưu trữ dữ liệu cần bảo mật vào đây nhé.
  • Chỗ code trên chưa bao gồm 1 ít phòng chống injection nào cả, vì vậy để tăng tính bảo mật các bạn chú ý xử lý thêm dữ liệu nội dung cả khi thu thập lẫn khi in ra nhé, tất nhiên là được 1 vài lớp cơ bản thôi, không thể hoàn hảo như Framework được.
  • Không nên sử dụng nếu lượng dữ liệu cho web quá lớn

Mặc dù có nhiều nhược điểm, nhưng google sheet thì Free; UI, UX thì dễ dùng cho người quản lý content; và nó còn lưu lại lịch sử chỉnh sửa, đề phòng lỡ tay xóa linh tinh rồi không biết làm sao để revert 😄; và dạng JSON kia thì dễ xử lý nữa; nên mình thấy chủ đề quản lý web bằng google sheet vẫn khá là hay ho để tìm hiểu. Hy vọng series này có thể giúp những người 'ít biết code' có thể xây dựng website đơn giản cho riêng mình 😄


NHÀ CUNG CẤP DỊCH VỤ CHUYÊN NGHIỆP
PHÁT TRIỂN
WEBDESIGN - HOSTING - DOMAIN

Translate

Quan tâm nhiều

Theo thời gian

Biểu mẫu liên hệ

Tên

Email *

Thông báo *